姜 川,盧建寧,孟祥宇,栗中夏,張世超
(北京機械工業自動化研究所,北京 100120)
二十世紀六十年代,世界首臺可編程邏輯控制器(PLC),誕生于在美國DEC公司。七十年代,這一技術被日本和西歐一些國家引進,并得到了長足的發展。2015年政府發布的《中國制造2025》報告中提到,建設重點領域智能工廠/數字化車間,必將把PLC的應用推向新的高度。
西門子作為全球電子電氣工程專業領頭羊公司,其生產的小型可編程邏輯控制器S7-200系列,具有極高的穩定性、多種內置功能和強勁的通訊能力,在工業、農業、化工業等領域得到了廣泛的應用。
S7-200本身配置了兩個通訊/編程接口,具有Pointto-Point Interface模式、Multi Point Interface模式及自由口通訊三種通訊模式。三種方式均可實現與計算機的通訊,但MPI和PPI模式多用于對程序的編譯與傳輸,自由口通訊方式更多的完成與第三方設備的通訊任務。
Multi Point Interface(簡稱MPI)多點通訊,是一種保密的通訊協議。應用的系統對通訊速率要求不高、通訊量不大時,MPI通信不失為一種簡約經濟的通訊方式。其網絡的通信速率為19.2Kbps~12Mbps,能夠連接最高32個節點,通信距離亦可通過中繼器來進行擴展。
Point-to-Point Interface(簡稱PPI)點對點接口,是PLC中央處理器的默認通訊協議。其采用了一種主從式通訊方式,主站設備發出控制指令,從站設備響應,但從站設備不主動發出信息[2]。
選擇自由端口通訊方式,編譯者可以通過發送中斷、接收中斷、RCV指令、XMT指令來
控制通信端口的操作,用戶可自行定義通訊協議。自由口除了可以連接組態工具監控PLC,也可以讀寫變量存儲區(V區)、位存儲區(M區)等存儲區域內的數據。使用自由口通訊,可以將多種兼容RS232接口的設備連接到PLC上,應用更加靈活。
本例硬件配置依托于某型視覺檢測系統,通過S7-200PLC本體的兩個串口實現PLC與上位系統及下位數據采集設備之間的信息交互。具體為Port 0端口用于PLC與數據采集設備通訊,Port 1端口執行PLC與上位系統的數據交互任務。其他電平信號與PLC的過程映像寄存器(I/O)連接。
上位系統計算機串口與PLC串口均為RS485接口,可利用屏蔽電纜將兩設備直接連接。
下位數據采集設備采用RS232接口,例如SYMBOL MS1204固定式掃碼器。數據采集設備與PLC連接時需要信號轉換。該信號轉換通過RS 232/RS 485通信協議轉換模塊實現,PLC、轉換器、掃碼器的接線示意如圖1所示。

圖1 RS232/RS485轉換器

圖2 通訊流程圖
2.2.1 通訊端口設置
PLC串口設置自由口通訊方法,如表1所示。
2.2.1 使能中斷
LD 系統位_始終為1:SM0.0
ATCH INT_8_FORT0接收:INT8, 8
ATCH INT_9_PORT0發送完:INT9, 9
ENI
LD 系統位_始終為1:SM0.0
ATCH INT_25_PORT1接收:INT25, 25
ATCH INT_26_PORT1發送完:INT26, 26
ENI
2.2.2 端口0接收數據
當接收字符不是回車、換行時,當前中斷接收的字符拼接在接收字符串的最后一個,并將指針VD690、接收計數器VW694分別自加1

圖3 數據采集算法流程圖
LDB<> SMB2, 13
AB<> SMB2, 10
MOVB SMB2, *VD690
INCD VD690
INCW VW694
端口0接收到回車時,表示接收結束,置位PORT0接收完成標志M4.3,清空入口SN條碼區;將接收字符計數器VW694賦給入口SN條碼區的首字節VB1500、將接收區VB660的接收字符串賦給入口SN條碼區的字符區;對指針、接收字符計數器設定初始值。
LDB= SMB2, 13
LPS
S 狀態_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的初始化設置
AENO
MOVW +0, VW694
2.2.3 端口1接收數據
當接收字符不是;時,當前中斷接收的字符拼接在接收字符串的最后一個,并將指針VD650、接收字符計數器VW654分別自加1。
LDB<> SMB2, 59
MOVB SMB2, *VD650
INCD VD650
INCW VW654
PLC檢測到;時PORT1接收結束,將PORT1接收完成標志M4.4置位;清空入口SN條碼區;將接收字符計數器VW654以字節的形式存在VB640中,對指針VD650、接收字符計數器VW654賦初值。
LDB= SMB2, 59
S 狀態_PORT1視覺接收完成:M4.4, 1
MOVB 0, *VD650
ITB VW654, VB640
MOVD &VB641, VD650
AENO
MOVW +0, VW654
PORT1的接收數據最終輸出在VB640開始的若干字節中,且VB640存放的是該字串的長度。因此字串長度賦值對像是VB640,而對指針VD650賦初值時,是指定VB641的地址作為VD650的初值的,這一點與PORT0不同。
2.2.4 端口1發送數據
使用XMT指令通過PORT1向視覺PC發送拍照前查詢型號指、拍照/坐標指令等。此處以發送預先設置好的復位指令”RESET;”為例;
LD 視覺發送復位:V15.2
EU
XMT VB600, 1
R 狀態_PORT1視覺發送完成:M4.6, 1
發送完成觸發中斷26,置位PORT1發送完成狀態位M4.6。
LD 系統位_始終為1:SM0.0
S 狀態_PORT1視覺發送完成:M4.6, 1
本文對S7-200的串口通訊方式進行分析研究。結合理論,應用性價比高、易操作的器件,將自由通訊模式應用到工程實例中。經過工程驗證,此種通訊方式編程簡單,易于移植,運行穩定,安全可靠。
[1] PLC的發展歷程淺析[OL].中國工控網,2014.
[2] 潘必勝.西門子PLC的PPI通訊協議協議研究[J].單片機與嵌入式系統應用,2009(12).
[3] 西門子S7-200可編程控制器系統手冊,2008.