一、硬件連線
對(duì)于第三方的設備,如掃碼槍、打印機、儀表等,爲非标準的總線協議(yì)、自(zì)定義的協議(yì),稱之爲自(zì)由口協議(yì)。在啓動程序編寫之前,首先要明(míng)确第三方的設備的串口類型。
1.通信接口
A. 第三方設備串口爲232的SMART CPU本體串口爲RS-485,欲與232設備進行通信,中間需加一個232to485的轉換器。常見連線如圖1。
圖1 RS-232設備
B. 第三方設備串口爲485的
SMART CPU和(hé)第三方設備串口皆爲485時(shí),可用(yòng)直連。常見連線如圖2。
圖2 RS-485設備
C. 第三方設備串口爲422的
第三方設備串口爲422的,需将422該爲485接法。常見連線如圖3。
圖3 RS-422設備
在複雜(zá)的工(gōng)業現(xiàn)場或長距離通訊的情況下(xià),建議(yì)選擇優質的總線連接器和(hé)電纜。億維自(zì)動化的總線連接器自(zì)帶終端電阻和(hé)偏置電阻,在此情況下(xià),可提高(gāo)通訊的穩定和(hé)抗幹擾能(néng)力。
總線連接器和(hé)電纜,訂貨号如表4。
表4 總線鏈接器&電纜
3.爲什(shén)麽選擇總線連接器和(hé)總線電纜
衆所周知(zhī),網線有超五類和(hé)超六類之分,超五類傳輸帶寬可高(gāo)達1000Mb/s,但(dàn)一般隻應用(yòng)在100Mb/s的網絡中;超六類主要應用(yòng)在千兆網絡中,在傳輸性能(néng)上(shàng)遠遠高(gāo)于超五類網線标準。超五類,超六類的電纜直觀區(qū)别就是電纜銅芯線徑不同,超六類銅芯明(míng)顯粗于超五類。
同理(lǐ)推測,億維自(zì)動化的總線電纜,回路阻抗:<150R/KM,優于一般通訊電纜。線阻小(xiǎo),通訊距離長,抗幹擾能(néng)力強。
億維自(zì)動化的總線連接器,自(zì)帶終端電阻和(hé)偏置電阻,同樣可以提高(gāo)通訊的質量。
建議(yì)組網方式如圖5:
圖5總線接頭
終端和(hé)偏置電阻如圖6:
圖6 終端和(hé)偏置電阻
二、通信機制
了(le)解清楚通信機制,理(lǐ)清程序思路,才能(néng)編程順利。常見的通信機制如下(xià):
A. CPU隻接受不發送,即第三方設備隻發送不接收。常見的如掃碼槍。
B. CPU隻發送不接收,即第三方設備隻接收不發送。常見的如打印機。
C. CPU先發送,再接收,再發送,再接收。CPU通信機制類似主站(zhàn)機制,如Modbus RTU Master。
D. CPU先接收,再發送,再接收,再發送。CPU通信機制類似從(cóng)站(zhàn)機制,如Modbus RTU Slave。
E.通信邏輯自(zì)定義。
三、通信報(bào)文(wén)
通信報(bào)文(wén),即發送和(hé)接收的數據格式。如Modbus通信,通信格式有明(míng)确定義。通信的雙方要按照約定的格式及長度發送、接收響應的數據。
CPU做主站(zhàn),以Modbus RTU主站(zhàn)報(bào)文(wén)爲例,CPU發送的數據格式如下(xià):
而第三方設備,接收到(dào)CPU報(bào)文(wén)後,需響應的數據格式如下(xià):
上(shàng)面示例主要要說明(míng)的是,理(lǐ)解通訊雙方約定的通訊數據每一個字節所代表的含義。隻有理(lǐ)解清楚了(le)數據的含義,才能(néng)對(duì)數據進行讀取或封裝。
四、PLC控制字
在編寫程序之前,還有一項準備工(gōng)作(zuò),理(lǐ)解定義串口/通訊方式的控制字。
A.串口控制字
SMB30 和(hé) SMB130 分别組态通信端口 0 和(hé) 1 以進行自(zì)由端口操作(zuò),并提供波特率、奇偶校驗和(hé)數據位數的選擇。下(xià)圖顯示了(le)自(zì)由端口控制字節。對(duì)于所有組态,都生成一個停止位。
SMB30\SMB130數據位格式:
SMB30\SMB130數據定義:
B.通訊控制字&狀态字
五、PLC隻收不發
A.主程序上(shàng)電串口初始化
2#00 0 010 01 SMB30 8-N-1 9600 自(zì)由口
2#01110000 SMB87
接收數據的表頭位爲A5,表尾爲5A
接收長度10個字節 SMB94
B. 打開(kāi)接收完成中斷
C. 觸發接收指令,接收到(dào)的數據放(fàng)置在VB200開(kāi)始的寄存器區(qū)。
D. 接收完成中斷程序中,打開(kāi)接收。
控制字中,接收數據長度設爲10,接收到(dào)的數據存放(fàng)在VB201開(kāi)始的10個字節,VB200爲接收到(dào)字節計(jì)數器。
六、 PLC隻發不收
A.串口初始化
B.組織要發送的數據
C.觸發發送指令
起始字節即VB100爲發送的字節長度
D.報(bào)文(wén)監控
發送長度不同時(shí)的報(bào)文(wén)
七、PLC先發後收
邏輯類似Modbus主站(zhàn),也(yě)可用(yòng)自(zì)由口模式,編輯Modbus 通訊。
A.串口初始化,一般要定義接收的字符長度,或結束字符,以判斷接收結束。
初始化時(shí),連接發送完成中斷,接收完成中斷。
B.組織發送數據
本例發送長度10個字節,VB100=10,VB100-VB110爲發送的數據
C.程序邏輯
D.發送&超時(shí)判斷
若超時(shí),關閉接收,即複位SM87.7
超時(shí)标志位下(xià)降沿,重新打開(kāi)接收,即置位SM87.7,并再次觸發發送。
E.發送完成,打開(kāi)接收
F.接收完成,再次觸發發送
G.報(bào)文(wén)分析
發送完成,PLC未接收到(dào)數據,超時(shí)後繼續發送。如報(bào)文(wén)前五行。
發送完成,PLC收到(dào)數據,立即觸發下(xià)一次發送。如第六第7行報(bào)文(wén)。
八、PLC先收後發
邏輯和(hé)上(shàng)一章節類似,邏輯類似Modbus 從(cóng)站(zhàn)。
九、接收字符中斷
串口初始化,可忽視(shì)接收字符長度,結束字符等,編程更靈活。
A.串口初始化
連接接收字符中斷
B.組織發送報(bào)文(wén),觸發發送指令
接收字符中斷,蔣接收到(dào)的數據存放(fàng)至目标寄存器
十、問題排查
通訊異常時(shí),建議(yì)從(cóng)以下(xià)幾個方面排查:
A.确保通訊電纜連接正确,參考第一章節,重點關注1.1章節。
B.确保通訊參數一緻。
C.用(yòng)電腦(nǎo)串口助手軟件,監控通訊報(bào)文(wén),定位是PLC沒有發出數據,還是設備沒有響應數據,參考第三章節。
監控通訊報(bào)文(wén):将電腦(nǎo)485的A、B并聯在通訊鏈路上(shàng),軟件推薦串口助手。
圖15 電腦(nǎo)監聽