姜 川,盧建寧,孟祥宇,栗中夏,張世超
(北京機械工業(yè)自動化研究所,北京 100120)
二十世紀六十年代,世界首臺可編程邏輯控制器(PLC),誕生于在美國DEC公司。七十年代,這一技術(shù)被日本和西歐一些國家引進,并得到了長足的發(fā)展。2015年政府發(fā)布的《中國制造2025》報告中提到,建設(shè)重點領(lǐng)域智能工廠/數(shù)字化車間,必將把PLC的應(yīng)用推向新的高度。
西門子作為全球電子電氣工程專業(yè)領(lǐng)頭羊公司,其生產(chǎn)的小型可編程邏輯控制器S7-200系列,具有極高的穩(wěn)定性、多種內(nèi)置功能和強勁的通訊能力,在工業(yè)、農(nóng)業(yè)、化工業(yè)等領(lǐng)域得到了廣泛的應(yīng)用。
S7-200本身配置了兩個通訊/編程接口,具有Pointto-Point Interface模式、Multi Point Interface模式及自由口通訊三種通訊模式。三種方式均可實現(xiàn)與計算機的通訊,但MPI和PPI模式多用于對程序的編譯與傳輸,自由口通訊方式更多的完成與第三方設(shè)備的通訊任務(wù)。
Multi Point Interface(簡稱MPI)多點通訊,是一種保密的通訊協(xié)議。應(yīng)用的系統(tǒng)對通訊速率要求不高、通訊量不大時,MPI通信不失為一種簡約經(jīng)濟的通訊方式。其網(wǎng)絡(luò)的通信速率為19.2Kbps~12Mbps,能夠連接最高32個節(jié)點,通信距離亦可通過中繼器來進行擴展。
Point-to-Point Interface(簡稱PPI)點對點接口,是PLC中央處理器的默認通訊協(xié)議。其采用了一種主從式通訊方式,主站設(shè)備發(fā)出控制指令,從站設(shè)備響應(yīng),但從站設(shè)備不主動發(fā)出信息[2]。
選擇自由端口通訊方式,編譯者可以通過發(fā)送中斷、接收中斷、RCV指令、XMT指令來
控制通信端口的操作,用戶可自行定義通訊協(xié)議。自由口除了可以連接組態(tài)工具監(jiān)控PLC,也可以讀寫變量存儲區(qū)(V區(qū))、位存儲區(qū)(M區(qū))等存儲區(qū)域內(nèi)的數(shù)據(jù)。使用自由口通訊,可以將多種兼容RS232接口的設(shè)備連接到PLC上,應(yīng)用更加靈活。
本例硬件配置依托于某型視覺檢測系統(tǒng),通過S7-200PLC本體的兩個串口實現(xiàn)PLC與上位系統(tǒng)及下位數(shù)據(jù)采集設(shè)備之間的信息交互。具體為Port 0端口用于PLC與數(shù)據(jù)采集設(shè)備通訊,Port 1端口執(zhí)行PLC與上位系統(tǒng)的數(shù)據(jù)交互任務(wù)。其他電平信號與PLC的過程映像寄存器(I/O)連接。
上位系統(tǒng)計算機串口與PLC串口均為RS485接口,可利用屏蔽電纜將兩設(shè)備直接連接。
下位數(shù)據(jù)采集設(shè)備采用RS232接口,例如SYMBOL MS1204固定式掃碼器。數(shù)據(jù)采集設(shè)備與PLC連接時需要信號轉(zhuǎn)換。該信號轉(zhuǎn)換通過RS 232/RS 485通信協(xié)議轉(zhuǎn)換模塊實現(xiàn),PLC、轉(zhuǎn)換器、掃碼器的接線示意如圖1所示。
圖1 RS232/RS485轉(zhuǎn)換器
圖2 通訊流程圖
2.2.1 通訊端口設(shè)置
PLC串口設(shè)置自由口通訊方法,如表1所示。
2.2.1 使能中斷
LD 系統(tǒng)位_始終為1:SM0.0
ATCH INT_8_FORT0接收:INT8, 8
ATCH INT_9_PORT0發(fā)送完:INT9, 9
ENI
LD 系統(tǒng)位_始終為1:SM0.0
ATCH INT_25_PORT1接收:INT25, 25
ATCH INT_26_PORT1發(fā)送完:INT26, 26
ENI
2.2.2 端口0接收數(shù)據(jù)
當(dāng)接收字符不是回車、換行時,當(dāng)前中斷接收的字符拼接在接收字符串的最后一個,并將指針VD690、接收計數(shù)器VW694分別自加1
圖3 數(shù)據(jù)采集算法流程圖
LDB<> SMB2, 13
AB<> SMB2, 10
MOVB SMB2, *VD690
INCD VD690
INCW VW694
端口0接收到回車時,表示接收結(jié)束,置位PORT0接收完成標(biāo)志M4.3,清空入口SN條碼區(qū);將接收字符計數(shù)器VW694賦給入口SN條碼區(qū)的首字節(jié)VB1500、將接收區(qū)VB660的接收字符串賦給入口SN條碼區(qū)的字符區(qū);對指針、接收字符計數(shù)器設(shè)定初始值。
LDB= SMB2, 13
LPS
S 狀態(tài)_PORT0讀碼接收完成:M4.3, 1
BMB 空字串長度:VB1900, 入口條碼_SN碼_長度:VB1500, 30
ITB VW694, 入口條碼_SN碼_長度:VB1500
AENO
BMB VB660, 入口條碼_SN碼_起始字:VB1501, 入口條碼_SN碼_長度:VB1500
LPP
MOVD &VB660, VD690
表1 端口0、端口1的初始化設(shè)置
AENO
MOVW +0, VW694
2.2.3 端口1接收數(shù)據(jù)
當(dāng)接收字符不是;時,當(dāng)前中斷接收的字符拼接在接收字符串的最后一個,并將指針VD650、接收字符計數(shù)器VW654分別自加1。
LDB<> SMB2, 59
MOVB SMB2, *VD650
INCD VD650
INCW VW654
PLC檢測到;時PORT1接收結(jié)束,將PORT1接收完成標(biāo)志M4.4置位;清空入口SN條碼區(qū);將接收字符計數(shù)器VW654以字節(jié)的形式存在VB640中,對指針VD650、接收字符計數(shù)器VW654賦初值。
LDB= SMB2, 59
S 狀態(tài)_PORT1視覺接收完成:M4.4, 1
MOVB 0, *VD650
ITB VW654, VB640
MOVD &VB641, VD650
AENO
MOVW +0, VW654
PORT1的接收數(shù)據(jù)最終輸出在VB640開始的若干字節(jié)中,且VB640存放的是該字串的長度。因此字串長度賦值對像是VB640,而對指針VD650賦初值時,是指定VB641的地址作為VD650的初值的,這一點與PORT0不同。
2.2.4 端口1發(fā)送數(shù)據(jù)
使用XMT指令通過PORT1向視覺PC發(fā)送拍照前查詢型號指、拍照/坐標(biāo)指令等。此處以發(fā)送預(yù)先設(shè)置好的復(fù)位指令”RESET;”為例;
LD 視覺發(fā)送復(fù)位:V15.2
EU
XMT VB600, 1
R 狀態(tài)_PORT1視覺發(fā)送完成:M4.6, 1
發(fā)送完成觸發(fā)中斷26,置位PORT1發(fā)送完成狀態(tài)位M4.6。
LD 系統(tǒng)位_始終為1:SM0.0
S 狀態(tài)_PORT1視覺發(fā)送完成:M4.6, 1
本文對S7-200的串口通訊方式進行分析研究。結(jié)合理論,應(yīng)用性價比高、易操作的器件,將自由通訊模式應(yīng)用到工程實例中。經(jīng)過工程驗證,此種通訊方式編程簡單,易于移植,運行穩(wěn)定,安全可靠。
[1] PLC的發(fā)展歷程淺析[OL].中國工控網(wǎng),2014.
[2] 潘必勝.西門子PLC的PPI通訊協(xié)議協(xié)議研究[J].單片機與嵌入式系統(tǒng)應(yīng)用,2009(12).
[3] 西門子S7-200可編程控制器系統(tǒng)手冊,2008.