許 靜,朱曉民,程 金,李文娟,張 希
(北京機械工業自動化研究所,北京 100120)
小型可編程控制器,一般結構小巧、多功能、價格低廉,本身集成CPU、I/O點、電源并且還提供了簡潔、開放的通訊功能。性價比、通訊和實時性等方面的優點,使它成為制定較復雜自動化系統解決方案的理想之選。本文介紹的系統應用在奇瑞汽車廠缸蓋裝配線線上掃描條碼識別機型。
系統要求根據條碼錄用數據判斷出產品裝配工件的型號,從而執行該型號工件裝配的相應程序段。條碼信息可在人機界面上直接顯示,使操作者一目了然。并且可以翻閱查看歷史工件的相關信息。
控制單元采用西門子的CPU226。CPU226集成兩個串口,port0端口作為連接人機界面和CPU的接口,另一端口port1用于連接條碼掃描槍,集成的I/O點用于控制裝配的執行機構。由于條碼掃描槍為232接口,而自由通訊口為485口,所以還需一個232-485轉換模塊,系統中選用了一根西門子編程電纜線。但是一般串口掃描儀大多用于與計算機相連,線的插頭通常為孔狀,而可編的接口也為孔狀,因此需用一根兩頭針狀的交叉式連接轉接線(2,3交叉,5直通)否者通訊出現錯誤。
S7-226有兩個接口port0口,port1口,它們可以是PPI接口,也可以是自由通訊接口。可以通過程序來自由設定它們的通訊形式。
1)控制字寄存器SM130: port1口的通訊模式協議通過SMB130設置,SMB130各位的含義如下圖所示。本系統中設置SMB130為00001001即自由口協議,波特率為9600,數據長度8位,無校驗。

圖1 寄存器SM130
2)通訊接收字符緩沖器SMB2:SMB2是一個暫態寄存器,用于存放在自由通訊方式下接收到的當前字符,在下一步應從這里取走其中內容,通過編程控制將接收到的字符一個一個由SMB2移入接收緩存區。
3)通訊校驗結果標志位SM3.0:PLC按SM130規定的奇偶校驗方式對所接收到的數據作校驗。如果校驗有錯,PLC自動將SM3.0置1,SM3.0表示奇偶校驗正確。根據這個標志,決定對當前信息的取舍,在出錯的情況下,將此錯誤位發給條碼,請求重發。
4)工作方式標志位SM0.7:S7-200系列PLC只有處于運行(RUN)方式時才能進行自由口模式通訊,而在停止(STOP)方式時只能已PPI模式通訊。當PLC處于RUN方式是SM0.7=1,否則SM0.7=0,通過SM0.7的狀態來確認自由口通訊的狀態。
S7-200PLC的通訊port0口具有三個中斷事件:接收字符8號中斷,發送結束9號中斷,接收信息23號中斷。在用戶程序中可用ENI指令開放全局中斷,用DISI指令禁止所有中斷;在全局中斷開放的前提下,單個中斷可用ATCH、DTCH指令獨立的開放和禁止。通訊port1口具有24,25,26號三個中斷事件。本系統中調用24號中斷接收字符,程序如圖2所示。
1)SM0.1第一掃描周期接通,給port1口初始化。SMB130:00001001即波特率為9600,自由口協議。系統中SMB187=11110000。

3)SMB188=‘b’檢測條碼掃描槍的開始碼為‘b’后開始記錄數據。條碼槍設置開始識別符為“b”。
4)SMB189=‘e’檢測條碼掃描槍結束符為‘e’為信息字符的結束。條碼槍設置結束識別符為“e”。
5)SMB190為檢測空閑時間5ms。在空閑時間結束后接收的新的字符為新信息的開始。

圖3 接口定義
6)SMB194為接收字符的最大數。
7)接收完成事件連接到中斷。
8)允許用戶中斷。
9)端口1的接收信箱緩沖區指向VB200。
在中斷程序中調用9)語句,執行中斷時,即將條碼輸送到VB200開始的寄存器中。
在人機界面上定義一個字符形式輸出域,域變量為VB200,20個字符顯示。那么每當掃描一次條碼后人機界面上就可顯示本次條碼的值,方便、清晰。
本例中還可查詢上一次錄用的值。指令如圖4所示。

圖4 指令
當Q0.1的下降延到達時把本次的條碼由VB200寄存器區存儲到VB300開始的寄存器區,在此之前把VB300寄存器區的內容已傳給VB400寄存器區存儲。VB300為本次數據,而VB400為上一次數據。簡單的做了一個數據存儲。
那么在人機界面上定義兩個字符形式輸出域,域變量分別為VB300和VB400,即可查閱到本次條碼和上次條碼。同理還做多一些數據的存儲。
本文介紹了利用SIEMENS S7-226 PLC集成的自由通訊接口與條碼掃描槍通訊的實例,闡述了自由接口通訊的相關知識。系統在奇瑞汽車廠缸蓋裝配線上運行多年,PLC與條碼掃描槍間通訊安全可靠。整個系統成本低廉,體現了小型可編的優越性,為低成本實現通訊提供了一種解決方法。