西門子6SL3060-4AF10-0AA0
1 系統(tǒng)組成概述
系統(tǒng)硬件主要由上位計(jì)算機(jī)、TC35iGSM MODEM無線通訊模塊和遠(yuǎn)程Siemens S7—200 PLC 3部分組成,,具體結(jié)構(gòu)如圖1所示,。系統(tǒng)軟件分為上位PC和下位PLC兩部分,上位PC部分提供人機(jī)交互操作界面和相應(yīng)的數(shù)據(jù)選擇,、處理等,;下位PLC則通過自由口通訊,以中斷方式快速響應(yīng)上位機(jī)對(duì)PLC變量存儲(chǔ)器數(shù)據(jù)的讀寫操作或?qū)?/span>I/0口讀寫操作需求,。由于上位計(jì)算機(jī)與遠(yuǎn)程PLC的通訊載體是通過TC35i建立在GSM網(wǎng)絡(luò)基礎(chǔ)上的,,從而打破了地域的限制,即便遠(yuǎn)端PLC設(shè)備在千里之遙,,實(shí)施數(shù)據(jù)采集,、測(cè)控的如同咫尺。

2 系統(tǒng)硬件設(shè)計(jì)
2.1 TC35i無線通訊模塊
系統(tǒng)組成如圖1所示,,系統(tǒng)硬件主要是TC5i無線通訊模塊的應(yīng)用,。TC35i是Siemens公司推出的新一代無線通信GSM模塊,TC35i雙頻工作(EGSM900/GSMl800),,電源范圍在3.3~4.8 V,,發(fā)送功率分別為2W(Class4 EGSM900)和lW(Classl GSMl800 MHz),TC35i的數(shù)據(jù)接口采用串行異步收發(fā),,符合ITU-TRS-232接口電路標(biāo)準(zhǔn),。數(shù)據(jù)接口配置為8位數(shù)據(jù)位,、1位停止位、無校驗(yàn)位,,可以在300~115 kb/s的波特率下運(yùn)行,,支持的自動(dòng)波特率為4.8~115 kb/s,符合ETSI標(biāo)準(zhǔn)GSM0707和GSM0705,,且易于升級(jí)為GPRS模塊,。該模塊集射頻電路和基帶于一體,向用戶提供標(biāo)準(zhǔn)的AT命令接口,。為數(shù)據(jù),、語音和短消息提供快速、可靠,、安全的傳輸,,方便用戶的應(yīng)用開發(fā)及設(shè)計(jì)。TC35i有40個(gè)引腳,,通過ZIF連接器引出,。這些引腳可劃分為5類,即電源,、數(shù)據(jù)輸入/輸出,、SIM卡、音頻接口和控制,。TC35i內(nèi)部電路如圖2所示,。

ZIF40PIN的引腳1~14為電源部分,其中引腳l~5為電源電壓輸入端VBATT+,,引腳6~10為電源地GND,,引腳11~12為充電端,引腳13為對(duì)外輸出電壓(供外部電路使用),,引腳14 ACCU/TEMP接負(fù)溫度系數(shù)的熱敏電阻,;引腳24~29為SIM卡連接端;引腳33~40為語音接口用來接電話手柄,。引腳15,、30、31和32為控制部分,,引腳15為啟動(dòng)線IGT(Ig-niTIon),。當(dāng)TC35i通電后必須給IGT一個(gè)大于100 mV的低電平,模塊才能啟動(dòng),。引腳30為RTC back up,;引腳3l為掉電控制:引腳32為SYNC,引腳16~23為數(shù)據(jù)輸入/輸出端,。TC5i無線通訊模塊的主要外圍電路的連接如圖3所示,。數(shù)據(jù)通信電路以MAX232為核心實(shí)現(xiàn)電平轉(zhuǎn)換及串口通信,。

2.2 系統(tǒng)硬件連接
系統(tǒng)硬件的連接可參考圖1可知,,上位計(jì)算機(jī)的串口輸出與由TC35i構(gòu)成的GSM MODEM中的9芯RS232口直接連接,;遠(yuǎn)程的GSM MODEM與PLC連接時(shí)則必須通過RS232到RS485的轉(zhuǎn)換,這是Siemens PLC的通訊口數(shù)據(jù)和PPI編程電纜連接的必要條件,。另一方面必須注意的是,,在與遠(yuǎn)程GSM MODEM的RS-232串口連接時(shí),還必須將RS232串口中的RXD和TXD對(duì)換連接,,否則將不能正常通訊,。
2.3 遠(yuǎn)程PLC的選型
該系統(tǒng)選用西門子S7—200 PLC,在西門子PLC中SIMATIC S7—200是一個(gè)系列,,其中包括多種型號(hào)的CPU,,這里選用CPU-222,由于CPU不提供模擬量的輸入輸出,,為檢測(cè)對(duì)模擬量數(shù)據(jù)的遠(yuǎn)程讀寫,。因此在遠(yuǎn)程PLC系統(tǒng)中擴(kuò)展一型號(hào)為EM-235的4輸入1輸出模擬量模塊。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 系統(tǒng)上位計(jì)算機(jī)人機(jī)界面
系統(tǒng)上位的人機(jī)界面是用VB編程,,提供人機(jī)交互操作界面及數(shù)據(jù)選擇和相應(yīng)的數(shù)據(jù)處理等功能,。系統(tǒng)上位的操作界面如圖4所示。在操作界面的左上部是通訊鏈接控制框,,這里只需要正確選擇PC的串口并輸入遠(yuǎn)程PLC所連接的后即可撥號(hào)鏈接,,遠(yuǎn)程的無線GSM MODEM模塊摘機(jī)響應(yīng)一般設(shè)置為鈴響后自動(dòng)摘機(jī),通訊鏈接建立后,,當(dāng)上位PC檢測(cè)到串口端的數(shù)據(jù)載波DCD信號(hào)后,,通訊鏈接控制框中的“鏈接狀態(tài)"指示燈由紅變綠,表示通訊鏈路已成功建立,。撥號(hào)或掛機(jī)的操作均是通過對(duì)GSM MODEM模塊發(fā)送AT指令執(zhí)行的,。

對(duì)PLC數(shù)據(jù)的讀寫操作如操作界面的右上部所示,在相應(yīng)文本框內(nèi)填寫好數(shù)據(jù)的類型,、地址,、數(shù)值和操作方式后點(diǎn)擊“發(fā)送"即可執(zhí)行對(duì)PLC的讀或?qū)懖僮鳌=缑娴南掳氩糠诛@示的是PC串口發(fā)送和接收的代碼以及當(dāng)前操作的結(jié)果,。
3.2 系統(tǒng)上位計(jì)算機(jī)的串口設(shè)置
西門子6SL3060-4AF10-0AA0
由于遠(yuǎn)程PLC采用的是自由口用戶通訊方式,,這里對(duì)每次收發(fā)數(shù)據(jù)字節(jié)暫約定為18個(gè)字節(jié),數(shù)據(jù)字節(jié)的多少可根據(jù)實(shí)際需要而酌情約定,。本系統(tǒng)中18個(gè)字節(jié)的約定:Bytel為數(shù)據(jù)的總字節(jié)數(shù),;Bvte2為數(shù)據(jù)開始特征字;Bvte3為數(shù)據(jù)讀或?qū)懱卣髯郑?/span>Byte4為數(shù)據(jù)類型特征字,;Bvte5~Byte8為PLC數(shù)據(jù)地址,;Bvte9~Bytel6為PLC數(shù)據(jù)的數(shù)值,;Bytel7為收發(fā)數(shù)據(jù)的校驗(yàn)碼;Bvtel8為數(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)度來存取,所以無論是上位的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到Bytel6的字節(jié)進(jìn)行校驗(yàn),,Bvtel7存放校驗(yàn)結(jié)果,。上位或下位在接收數(shù)據(jù)時(shí),首先對(duì)所接收的數(shù)據(jù)進(jìn)行校驗(yàn)并將計(jì)算結(jié)果與Bvtel7所存放的數(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)置位,,用來表示允許進(jìn)入中斷服務(wù),在主程序中通過檢測(cè)M0.O的狀態(tài)來確定是否轉(zhuǎn)入讀數(shù)據(jù)操作的子程序,,讀數(shù)據(jù)操作完畢后及時(shí)將接收數(shù)據(jù)標(biāo)志M0.0復(fù)位,,從而完成一次讀數(shù)據(jù)過程。PLC數(shù)據(jù)的上傳則是根據(jù)所讀數(shù)據(jù)的內(nè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程序中通過對(duì)數(shù)據(jù)類型特征字的解析后來確定讀取數(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