新手必讀,人機(jī)界面的ModBus通訊詳解
網(wǎng)站:bbs.21ic.com
最近需要搞一個(gè)小東西,用信捷的帶人機(jī)界面的PLC和一個(gè)變頻器通訊,控制電機(jī)的轉(zhuǎn)動(dòng)。雖然咱的主業(yè)是搞單片機(jī)的,可是咱也要搞呀,因此把通訊過程做一個(gè)備忘,方便以后進(jìn)行查詢和使用。
首先給大家看看這個(gè)人機(jī)界面長啥樣,前面帶一塊192×64像素的3.7寸LCD,多達(dá)26個(gè)功能鍵,PLC部分帶10個(gè)輸入,8個(gè)輸出,足以滿足一般的控制場合。關(guān)鍵是這玩意比較便宜,才400來塊錢。對于工控上需要控制和人機(jī)界面交互的場合,開發(fā)是相當(dāng)?shù)目旖菅健?/span>
下面直接上干貨。
首先是Modbus通訊口的配置。XP2有兩個(gè)接口,一個(gè)是是下載口,一個(gè)是通訊口。在XCPro軟件中,串口1是下載口,串口2是485通訊口。
通訊參數(shù)由FD寄存器控制,可以通過XCPro軟件修改。
1.PLC數(shù)據(jù)監(jiān)控-直接修改寄存器的值-寄存器是斷電保存的
2.PLC設(shè)置-PLC串口設(shè)置中,串口2的設(shè)置
我們一般通過方式2進(jìn)行通訊參數(shù)的配置。
下載口和ModBus的默認(rèn)通訊參數(shù)如下所示:
下載口的參數(shù)我們直接默認(rèn)即可,串口2我們需要配置為modbus的通訊參數(shù),這里我們PLC用作主機(jī),變頻器做從機(jī)使用。
在PLC設(shè)置-PLC串口設(shè)置中修改參數(shù)即可,注意修改參數(shù)后需要重啟PLC。
通訊參數(shù)配置完畢后,就是使用Modbus的通訊指令進(jìn)行通訊了。
Modbus指令的描述可以在數(shù)據(jù)手冊中找到 (XP-18一體機(jī)用戶手冊中有講述,42頁)(XC系列可編程序控制器用戶手冊(基本指令篇),261頁)
我們在這里主要示范一下讀從機(jī)2個(gè)數(shù)據(jù)的操作。Modbus指令的插入,按下快捷鍵F8調(diào)出其他指令,找到通訊指令插入即可。
下面是一個(gè)寫好的Modbus指令-Modbus讀寄存器指令。
REGR的幾個(gè)參數(shù)含義如下所示:
注意:這幾個(gè)參數(shù)的含義是相當(dāng)重要的,弄懂了他們,就基本上搞Modbus通訊了。
S1:指的是從機(jī)的站號(hào),也就是所謂的從機(jī)modbus地址
S1:指的是從機(jī)寄存器地址
D2:指的是PLC或者一體機(jī)自帶的三個(gè)串口中的哪個(gè)串口,這里用到的是通訊口2,所以這里固定是K2
每個(gè)參數(shù)的實(shí)際含義如下:
K3:modbus的從機(jī)地址是3
K1:從機(jī)modbus的寄存器地址是4
K2:連續(xù)讀取兩個(gè)寄存器
D1:數(shù)據(jù)讀到PLC寄存器D1的中
K2:使用的PLC端口2,這個(gè)是固定的
為了更方便的講清楚這個(gè)通訊,我把模擬從機(jī)的參數(shù)也貼上了,用Modbus Slave模擬的從機(jī)。
讀取數(shù)據(jù)后PLC主機(jī)的寄存器數(shù)據(jù)如下所示:
可以看到我們給PLC寄存器D1中寫數(shù)據(jù),但由于每個(gè)寄存器是16位的,我們寫32位的數(shù)據(jù),所以低位直接寫到PLC寄存器D2中。
信捷PLC寄存器32位數(shù)據(jù)的構(gòu)造如下:
信捷PLC32位的數(shù)據(jù)格式是高位在后,低位在前。但是我們用HMI軟件指定顯示32位數(shù)據(jù)的時(shí)候,一般都是從低位寄存器開始指定,然后指定寄存器個(gè)數(shù)。
這樣得到的數(shù)據(jù),和我們實(shí)際高低字節(jié)是相反的,因此需要使能字節(jié)交換功能。在菜單設(shè)置OP系列的快捷菜單中可以開啟字節(jié)交互功能。
這樣設(shè)置雙字交換以后,就能正常的顯示讀到的32位數(shù)據(jù)了。
至此,一個(gè)標(biāo)準(zhǔn)的Modbus通訊過程就完成了。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場,如有問題,請聯(lián)系我們,謝謝!