西門子PLC維修市場發展現狀分析
西門子PLC維修隨著中國工業經濟的發展,西門子PLC維修在中小型自動化設備的日益普及應用,對于設備制造廠商或生產技術管理部門來說,如何以zui快捷的方式響應現場設備維護方面的需求,迅速檢測生產現場運行設備的狀態,及時解決生產現場反映的問題,已是多數上位技術管理者的切實需求。如何采用經濟實用的方式來實施遠程西門子PLC維修設備數據采集或測控,這也是探索解決此問題的初衷。
1 系統組成概述
西門子PLC維修系統硬件主要由上位計算機、TC35iGSM MODEM無線通訊模塊和遠程Siemens S7—200 PLC 3部分組成,具體結構如圖1所示。系統軟件分為上位PC和下位西門子PLC維修兩部分,上位PC部分提供人機交互操作界面和相應的數據選擇、處理等;下位西門子PLC維修則通過自由口通訊,以中斷方式快速響應上位機對PLC變量存儲器數據的讀寫操作或對I/0口讀寫操作需求。由于上位計算機與遠程西門子PLC維修的通訊載體是通過TC35i建立在GSM網絡基礎上的,從而打破了地域的限制,即便遠端西門子PLC維修設備在千里之遙,實施數據采集、測控的如同咫尺。
2 西門子PLC維修系統硬件設計
2.1 TC35i無線通訊模塊
系統組成如圖1所示,系統硬件主要是TC5i無線通訊模塊的應用。TC35i是Siemens公司推出的新一代無線通信GSM模塊,TC35i雙頻工作(EGSM900/GSMl800),電源范圍在3.3~4.8 V,發送功率分別為2W(Class4 EGSM900)和lW(Classl GSMl800 MHz),TC35i的數據接口采用串行異步收發,符合ITU-TRS-232接口電路標準。數據接口配置為8位數據位、1位停止位、無校驗位,可以在300~115 kb/s的波特率下運行,支持的自動波特率為4.8~115 kb/s,西門子PLC維修符合ETSI標準GSM0707和GSM0705,且易于升級為GPRS模塊。該模塊集射頻電路和基帶于一體,向用戶提供標準的AT命令接口。為數據、語音和短消息提供快速、可靠、安全的傳輸,方便用戶的應用開發及設計。TC35i有40個引腳,通過ZIF連接器引出。這些引腳可劃分為5類,即電源、數據輸入/輸出、SIM卡、音頻接口和控制。
西門子PLC維修系統硬件連接
系統硬件的連接可參考圖1可知,上位計算機的串口輸出與由TC35i構成的GSM MODEM中的9芯RS232口直接連接;遠程的GSM MODEM與PLC連接時則必須通過RS232到RS485的轉換,這是Siemens PLC的通訊口數據和PPI編程電纜連接的必要條件。另一方面必須注意的是,在與遠程GSM MODEM的RS-232串口連接時,還必須將RS232串口中的RXD和TXD對換連接,否則將不能正常通訊。
2.3 西門子PLC維修的選型
該系統選用西門子S7—200 PLC,在西門子PLC中SIMATIC S7—200是一個系列,其中包括多種型號的CPU,這里選用CPU-222,由于CPU不提供模擬量的輸入輸出,為檢測對模擬量數據的遠程讀寫。因此在遠程西門子PLC維修系統中擴展一型號為EM-235的4輸入1輸出模擬量模塊。
3 系統軟件設計
3.1 系統上位計算機人機界面
系統上位的人機界面是用VB編程,提供人機交互操作界面及數據選擇和相應的數據處理等功能。系統上位的操作界面如圖4所示。在操作界面的左上部是通訊鏈接控制框,這里只需要正確選擇PC的串口并輸入遠程PLC所連接的后即可撥號鏈接,遠程的無線GSM MODEM模塊摘機響應一般設置為鈴響后自動摘機,通訊鏈接建立后,當上位PC檢測到串口端的數據載波DCD信號后,通訊鏈接控制框中的“鏈接狀態”指示燈由紅變綠,表示通訊鏈路已成功建立。撥號或掛機的操作均是通過對GSM MODEM模塊發送AT指令執行的。
西門子PLC維修數據的讀寫操作
西門子PLC維修數據的讀寫是依據約定的數據類型實施操作的。對于字節、字、雙字、實數及I/0端口各自有約定的數據類型特征字,在下位西門子PLC維修程序中通過對數據類型特征字的解析后來確定讀取數據的字節數。對I/0端口的讀寫操作則是根據約定的地址編碼直接讀寫出相應的狀態信息。每組收發數據的存儲單元從VBl00到VBll7共18個字節。由前述的數據發送量的約定可知,每組數據的Byte5~Byte8表示PLC數據的地址,由于每次讀寫的地址是不同的,所以Byte5~Byte8字節給定的就是地址指針,在西門子PLC維修編程中就要以此指針采用間接尋址的方式,假設Byte5~Byte8存放在PLC的VB104~VBl07單元,其間址指令則為:
MOVD &VBl04,ACl讀取該地址內容時則根據數據類型的不同而有所區別,假如讀寫字節時指令為:MOVB*ACl,VBl60;則讀寫字的指令為:MOVW *ACl,VWl60;讀寫雙字的指令為:MOVD *ACl,VDl60;讀寫實數的指令則為:MOVR *ACl,VDl60。