作者:海為用戶 王工
概述:本文主要介紹了海為PLC與三菱FX2N系列進行通訊的實驗情況。
關鍵字:海為PLC FX2N 自由通訊 CRC校驗
第一部分:研究情況簡介
2012年的時候,我任某公司技術部部長,期間有個客戶需要與公司的某防護裝置進行通訊,需要使用海為PLC讀取三菱PLC上的某些數據。為此就對海為PLC與三菱PLC通訊問題展開實驗研究。
海為PLC通訊特點介紹:Haiwell PLC各種型號的主機都內置Modbus RTU/ASCII協議、自由通訊協議以及海為公司的HaiwellBus高速通訊協議。HaiwellBus高速通訊協議屬于海為PLC與海為PLC內部通訊協議,因此不能使用。能應用到對外通訊的是Modbus協議以及自由通訊協議。
三菱PLC通訊特點介紹:三菱PLC對外通訊為無協議自由通訊,用于與計算機,條形碼閱讀器,打印機等帶有RS232接口的設備進行全雙工方式的串行數據通訊。
如上圖所示,FX2N通過232IF與海為PLC的通訊擴展模塊相連,采用無協議通訊方式,帶CRC校驗,最多一次發送512字節,接收256字節數據,通訊口資料格式設置為9600,N 8 2 RTU。
具體性能如下:
有效通訊距離:15米,實際試驗過。
數據響應時間:傳輸的數據越多,掃描周期越長,傳輸相應越慢。當前程序掃描周期為26ms,傳送0數據時為17ms,CRC校驗用時14ms。傳送一個字需要占用2ms。
發送的數據如上圖所示,FX2N的D199存放數據D200,D201,D202的CRC校驗碼,接收端PLC將接收到的D200,D201,202進行CRC校驗,若數據一致則說明通訊正常,允許接收數據。若不一致,則認為出現干擾,拒絕接收。D212中存放的是一個以秒為周期進行變化的十進制數據,若接收端PLC在2秒的時間內接收到的D211中的數據沒發生變化,則認為通訊中斷。
第二部分:FX2N通訊程序介紹
程序說明:該部分設置通訊格式和其他情況,具體情況參照通訊用戶手冊。本案例中取消發送報文,發送報尾,接收報頭,接收報尾,否則海為PLC接收的數據為亂碼。
程序說明:激活發送指令,如果設置位M8012,則會發生發送數據響應不及時,部分時刻傳輸數據丟失的情況。M101繼電器用于下文TO指令傳送中。
程序說明:設置發送字節數,要發送的數據
程序說明:對D200進行以10ma為周期的數據變化,以模擬數據變化。
程序說明:指令傳送
程序說明:以上為CRC校驗程序,介紹略。
程序說明:發送數據。
第三部分:海為通訊程序介紹
程序說明:如果1秒接收的數據相同,則認為通訊中斷。
第四部分:調試心得
在調試中,最大的困難來源于三菱PLC程序,需要編寫相當長的通訊指令以及CRC校驗程序,雖然在網絡上搜索到了上述程序的實例,但是編寫成自己的程序并且調試完畢,仍然花費了很長的時間。別人調試好的程序到你手里不一定能用,需要你再次調試。CRC校驗程序到底是怎么回事至今不明白,反正是抄寫來了,而且能用,幸好沒有抄錯。
海為PLC在進行通訊的時候就兩條指令,自由通訊指令COMM以及CRC校驗指令,簡單的不能再簡單,其他的程序都是很簡單的輔助程序。
在三菱PLC與海為PLC通訊成功的基礎上,為公司幾款主流安全防護設備用海為PLC增加了Modbus通訊功能。不僅組態王,易控等組態軟件可以與公司設備通訊,其他廠家設備中的PLC也可以與公司設備進行通訊,使得公司設備的應用更加靈活,更受用戶青睞。
海為PLC在組網通訊上確實是一大亮點,三菱PLC做這個通訊的時候寫了233條指令,用了三四天的功夫。海為PLC只用了2個指令。可以說海為PLC的出現讓通訊程序不再是難題。
海為公眾號
海為云APP
廈門海為科技有限公司
0592-3278716 (技術) | 4000-360-362 (商務)
海為總部:廈門市集美區軟件園三期C03棟13-14層 | 制造中心:廈門市翔安區火炬高新區(翔安)產業區垵邊南路336-2號4樓