在使用GSM MODEM無(wú)線模塊時(shí),上位PC對(duì)"/>
變頻器: | 西門子代理商 |
觸摸屏: | 西門子一級(jí)代理 |
伺服電機(jī): | 西門子一級(jí)總代理 |
單價(jià): | 面議 |
發(fā)貨期限: | 自買家付款之日起 天內(nèi)發(fā)貨 |
所在地: | 廣東 惠州 |
有效期至: | 長(zhǎng)期有效 |
發(fā)布時(shí)間: | 2023-12-14 12:41 |
最后更新: | 2023-12-14 12:41 |
瀏覽次數(shù): | 138 |
采購(gòu)咨詢: |
請(qǐng)賣家聯(lián)系我
|
在上位PC的人機(jī)界面中,串口的設(shè)置是通過(guò)下拉選擇框選擇出所連接的串口后由程序自動(dòng)讀取。在使用GSM MODEM無(wú)線模塊時(shí),上位PC對(duì)遠(yuǎn)程PLC鏈接呼叫時(shí)采用的是AT指令。程序語(yǔ)句為:MSComm1.Output=“ATDT”&Trim (Text1.Text)& vbCrLf//Text1文本框內(nèi)為欲連接的掛機(jī)的AT指令為:MSComml.Output=“ATDT”&“+++”& vbCrLf。串口數(shù)據(jù)格式的設(shè)定語(yǔ)句為:MSComml.SetTIngs=“9600. N,8.1”,與TC35iGSM MODEM無(wú)線通訊模塊和遠(yuǎn)程PLC自由口的串行數(shù)據(jù)通訊格式一致。
3.3 通訊數(shù)據(jù)格式的約定
由于遠(yuǎn)程PLC采用的是自由口用戶通訊方式,這里對(duì)每次收發(fā)數(shù)據(jù)字節(jié)暫約定為18個(gè)字節(jié),數(shù)據(jù)字節(jié)的多少可根據(jù)實(shí)際需要而酌情約定。本系統(tǒng)中18個(gè)字節(jié)的約定:Bybbb為數(shù)據(jù)的總字節(jié)數(shù);Bvte2為數(shù)據(jù)開(kāi)始特征字;Bvte3為數(shù)據(jù)讀或?qū)懱卣髯郑築yte4為數(shù)據(jù)類型特征字;Bvte5~Byte8為PLC數(shù)據(jù)地址;Bvte9~Bybbb6為PLC數(shù)據(jù)的數(shù)值;Bybbb7為收發(fā)數(shù)據(jù)的校驗(yàn)碼;Bvbbb8為數(shù)據(jù)結(jié)束特征字。串口數(shù)據(jù)的傳輸除數(shù)據(jù)地址字節(jié)和數(shù)據(jù)數(shù)值字節(jié)用ASCII碼表示外,其他均以十六進(jìn)制方式表示。因而在上位PC的編程中需涉及大量的進(jìn)制轉(zhuǎn)換操作。特別要注意的是由于PLC中的實(shí)數(shù)采用32位單精度數(shù)表示,并按照ANSI/IEEE745 1985標(biāo)準(zhǔn)格式以雙字長(zhǎng)度來(lái)存取,所以無(wú)論是上位的PC或是下位的PLC在編程時(shí)對(duì)實(shí)數(shù)數(shù)據(jù)的處理均需嚴(yán)格遵循ANSI/IEEE7451985標(biāo)準(zhǔn)格式的規(guī)定,否則將不可能讀到正確的數(shù)據(jù)。
通訊數(shù)據(jù)的校驗(yàn)方式采用BCC塊進(jìn)行XOR校驗(yàn),即約定為從每次數(shù)據(jù)包的Byte2到Bybbb6的字節(jié)進(jìn)行校驗(yàn),Bvbbb7存放校驗(yàn)結(jié)果。上位或下位在接收數(shù)據(jù)時(shí),首先對(duì)所接收的數(shù)據(jù)進(jìn)行校驗(yàn)并將計(jì)算結(jié)果與Bvbbb7所存放的數(shù)值進(jìn)行比較,如不一致時(shí)則按約定要求重發(fā),以保障每次傳輸數(shù)據(jù)的正確性。
3.4 遠(yuǎn)程PLC自由口通訊初始化編程
由于遠(yuǎn)程PLC采用的是自由口用戶通訊協(xié)議,所以對(duì)PLC的自由口通訊必須做如下初始化設(shè)置:
遠(yuǎn)程PLC經(jīng)上述設(shè)置后,在其運(yùn)行期間每當(dāng)接收到一組數(shù)據(jù)后便自動(dòng)產(chǎn)生中斷請(qǐng)求,在中斷服務(wù)的子程序中,設(shè)定一標(biāo)志位(如MO.0)置位,用來(lái)表示允許進(jìn)入中斷服務(wù),在主程序中通過(guò)檢測(cè)M0.O的狀態(tài)來(lái)確定是否轉(zhuǎn)入讀數(shù)據(jù)操作的子程序,讀數(shù)據(jù)操作完畢后及時(shí)將接收數(shù)據(jù)標(biāo)志M0.0復(fù)位,從而完成一次讀數(shù)據(jù)過(guò)程。PLC數(shù)據(jù)的上傳則是根據(jù)所讀數(shù)據(jù)的內(nèi)容來(lái)響應(yīng)上位的請(qǐng)求,上傳數(shù)據(jù)的編碼和字節(jié)均依照約定的格式寫入,每次的讀寫操作僅在PLC一個(gè)掃描周期內(nèi)(數(shù)毫秒)完成,系統(tǒng)的響應(yīng)是實(shí)時(shí)的。
3.5 遠(yuǎn)程PLC數(shù)據(jù)的讀寫操作
PLC數(shù)據(jù)的讀寫是依據(jù)約定的數(shù)據(jù)類型實(shí)施操作的。對(duì)于字節(jié)、字、雙字、實(shí)數(shù)及I/0端口各自有約定的數(shù)據(jù)類型特征字,在下位PLC程序中通過(guò)對(duì)數(shù)據(jù)類型特征字的解析后來(lái)確定讀取數(shù)據(jù)的字節(jié)數(shù)。對(duì)I/0端口的讀寫操作則是根據(jù)約定的地址編碼直接讀寫出相應(yīng)的狀態(tài)信息。每組收發(fā)數(shù)據(jù)的存儲(chǔ)單元從VBl00到VBll7共18個(gè)字節(jié)。由前述的數(shù)據(jù)發(fā)送量的約定可知,每組數(shù)據(jù)的Byte5~Byte8表示PLC數(shù)據(jù)的地址,由于每次讀寫的地址是不同的,所以Byte5~Byte8字節(jié)給定的就是地址指針,在PLC編程中就要以此指針采用間接尋址的方式,假設(shè)Byte5~Byte8存放在PLC的VB104~VBl07單元,其間址指令則為:
MOVD &VBl04,ACl讀取該地址內(nèi)容時(shí)則根據(jù)數(shù)據(jù)類型的不同而有所區(qū)別,假如讀寫字節(jié)時(shí)指令為:MOVB*ACl,VBl60;則讀寫字的指令為:MOVW *ACl,VWl60;讀寫雙字的指令為:MOVD *ACl,VDl60;讀寫實(shí)數(shù)的指令則為:MOVR *ACl,VDl60。
4 結(jié)束語(yǔ)
本系統(tǒng)經(jīng)實(shí)際測(cè)試基本達(dá)到了預(yù)期效果。遠(yuǎn)程PLC在省際間距離的測(cè)控響應(yīng)與在本市區(qū)地域的測(cè)控響應(yīng)基本相同,通過(guò)對(duì)PLC I/O的讀寫、模擬量數(shù)據(jù)的讀寫、單字節(jié)、雙字節(jié)及實(shí)數(shù)的讀寫,均未出現(xiàn)數(shù)據(jù)差錯(cuò)現(xiàn)象,遠(yuǎn)程的響應(yīng)速度基本上是對(duì)上位的指令立即響應(yīng),操作人基本感覺(jué)不出時(shí)間的延時(shí)。在PLC中,由于本遠(yuǎn)程測(cè)控程序字節(jié)量較少,可以嵌入在PLC的過(guò)程控制程序中運(yùn)行,由于在自由口通訊中,
對(duì)上位PC讀寫的響應(yīng)采用的是中斷方式快速響應(yīng),所以對(duì)PLC的過(guò)程控制程序的實(shí)時(shí)性基本無(wú)影響
在上一次發(fā)表的
1、 配置OPC服務(wù)器
對(duì)于服務(wù)器的配置與同步通訊的配置一樣,這里不需再講解,若有不清楚的,可以參閱之前發(fā)布的
2、 OPC編程
變量組、項(xiàng)的命名規(guī)則與同步通訊的一樣,這里不再描敘,下面主要就開(kāi)發(fā)一個(gè)異步通訊類 AsynServer來(lái)講解如何編程。MD0由字節(jié)MB0~MB3組成,MB0為最高字節(jié),MB3為字節(jié)。這個(gè)順序可能和別的PLC或計(jì)算機(jī)的編程語(yǔ)言的規(guī)定剛好相反!
在MB0中,M0.7最高位,接著為M0.6……M0.0位。MD0中各位的排列順序如下,M0.7為最高位,M3.0為位。
M0.7、0.6、0.5、0.4、0.3、0.2、0.1、0.0,M1.7、1.6、1.5、1.4、1.3、1.2、1.1、1.0
M2.7、2.6、2.5、2.4、2.3、2.2、2.1、2.0,M3.7、3.6、3.5、3.4、3.3、3.2、3.1、3.0
用變量表監(jiān)控MD0,可以驗(yàn)證此結(jié)論,顯示格式中HEX是十六進(jìn)制,BIN為二進(jìn)制。