三菱FX PLC编程口通讯协议详解
因工程需要,需要了解三菱PLC編程口通訊協議,以為后續的上位機串口通訊打下相關基礎……
畢竟首次接觸此類通訊,對其原理不甚了解,導致走了不少彎路,故記下之,以免忘記。
?
需要工具與資料:
能找到此文章的,軟件各位應該都是備齊了,若沒有,請自行查找;
?
通訊協議? 下載地址(放兩個,以免失效):
?
通訊實戰鏈接:https://baijiahao.baidu.com/s?id=1580866577419831498&wfr=spider&for=pc
?
下述圖文為小子理解時的一些細節。
?
下述圖片為通訊協議中最重要的兩面截圖:
?
?
?
從上看出,所有發出的命令都為11個兩位數(如:02 30 31 30 31 34 30 32 03 35 41,數與數之間有一個空格),并且這些兩位數必須為16進制(H)的ASCII碼(在串口調試軟件中,發送與接收最好都設置為16進制狀態)……
?
如果要讀取?D10的值,那命令如下(下圖與協議中有細微區別,為方便理解):
請求:02? ? 規定如此,無論讀取還是寫入,此都為02
?
命令:30? ? 30為從PLC讀取數據,31為寫入數據;0的ASCII碼16進制表示為30,1的ASCII碼為31,見下圖
?
?
元件首地址:31 30 31 34? ? D10查表可得其地址的首地址為1014(行為1010,列4,1010+4=1014? 16進制的加法),詳見下圖,1位數字對應1位ASCII碼的16進制表示,1014即為31 30 31 34(1為31,0為30,4為34,注意中間的空格,在串口調試時一定不要忘記了中間的空格)
?
?BYTE數:30 32? ? ? 即02? ?因在三菱PLC中數據寄存器D為兩個字節的存儲,所以讀取時必須為2個字節,即02,0對應30,2對應32,即30? 32
?
結束:03? ? 協議如此,無論讀寫都如此
?
校驗和:35 42? ?按照前述照片協議校驗和為? ?30+31+30+31+34+30+32+03=15B(16進制加法),取15B后邊兩位即5B,5對應ASCII中對應16進制為35,B為42
?
?
?
將“02 30 31 30 31 34 30 32 03 35 42”? ?填入發送區文本框,點擊發送后,在接收區接收到? “02 33 30 37 35 03 44 32?”
?
02:開始符,即請求開始
?
33 30 37 35:這四位為D10存儲數據? ? 前兩位為數據為37? 35 ,37對應的ASC碼對應16進制為7,35為5,即75;后兩位數據為 33? 30 ,33為3,30為0,即30 (一定注意,此處的數據順序)? ? 33 30 37 35 轉化為ASCII中16進制為7530,10進制為30000
? ? ? ? ? 在PLC中通過監視,D10確實為30000
?
?
03:命令結束符
44 32 :校驗和? ?33+30+37+35+03=D2? ?D的ASCII 16進制為44,2為32
?
?
以上為D10讀取測試詳情(寫與此類似,詳細參考手冊),其他軟元件與此類似并注意以下事項:
?
?
總結
以上是生活随笔為你收集整理的三菱FX PLC编程口通讯协议详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《精通脚本黑客》读本书吧
- 下一篇: 目前流行的几种无线通信协议