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