<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > MODBUS通信總結

MODBUS通信總結

作者: 時(shí)間:2016-12-19 來(lái)源:網(wǎng)絡(luò ) 收藏

西門(mén)子S7-200PLC在與英威騰變頻器Modbus通訊時(shí),采用自己編制主站通訊程序,參照西門(mén)子USS程序格式做成庫程序,在多個(gè)項目上應用,效果還是不錯。

本文引用地址:http://dyxdggzs.com/article/201612/331471.htm

西門(mén)子S7-200自由口通訊確實(shí)很自由,可以編制任何通訊。

西門(mén)子自帶的Modbus主站程序,用在變頻器控制上,不方便。要求是能向USS庫程序一樣有多個(gè)控制的位信號輸入,在速度設定值變化是發(fā)送速度值,平時(shí)要讀變頻器的運行狀態(tài)(包括故障狀態(tài)),還想讀變頻器運行時(shí)的電流。于是,自己根據英威騰變頻器的通訊協(xié)議,編制了Modbus主站通訊程序。

Modbus通訊協(xié)議要求:

讀寫(xiě)都是8個(gè)字節,只是功能碼的不同和讀是讀得長(cháng)度,寫(xiě)是寫(xiě)的數據值

發(fā)送

VB1600

VB1601

VB1602

VB1603

VB1604

VB1605

VB1606

VB1607

VB1608

8個(gè)字節

發(fā)送長(cháng)度8

從站地址

功能碼

數據地址高字節

數據地址低字節

數據字長(cháng)高字節

數據字長(cháng)低字節

CRC校驗低字節

CRC校驗高字節

從上面的通訊結構可以看出:數據地址、字長(cháng)和CRC都是一個(gè)字,其中地址和長(cháng)度或數據高低字節與西門(mén)子定義一致,即低地址高字節。CRC不一樣,是低地址低字節,與計算機上的定義一致。這點(diǎn)必需注意。

變頻器寫(xiě)返回:

接受

VB1609

VB1610

VB1611

VB1612

VB1613

VB1614

VB1615

VB1616

VB1617

8個(gè)字節

接受長(cháng)度8

從站地址

功能碼

數據地址高字節

數據地址低字節

數據值 高字節

數據值 低字節

CRC校驗低字節

CRC校驗高字節

返回與發(fā)送時(shí)一樣,表示通訊數據接受成功,并已執行。

我只需讀5個(gè)字的參數或1個(gè)字的狀態(tài),變頻器讀返回:

接受

VB1609

VB1610

VB1611

VB1612

VW1613

……

VW1621

VB1623

VB1624

N個(gè)字節

接受長(cháng)度n

從站地址

功能碼

數據字節字節數

數據1 數值

。。。。。

數據5 數值

CRC校驗低字節

CRC校驗高字節

讀狀態(tài)返回7個(gè)字節,讀5個(gè)字返回15個(gè)字節。

程序要求:定義通訊優(yōu)先級別是先寫(xiě),后讀。寫(xiě)命令(運行,停止,復位等)發(fā)送級別最高,其次是寫(xiě)頻率設定。寫(xiě)通訊發(fā)送后,判斷返回值,確定是否寫(xiě)成功,若寫(xiě)成功則不再寫(xiě),只要控制狀態(tài)或頻率改變時(shí),再次寫(xiě)。讀為一次讀變頻器狀態(tài),一次讀當前運行參數,輪流讀取。

根據上述要求,確定了以下幾個(gè)子程序和中斷程序:

1. 初始化子程序:對自由口通訊配置波特率、偶校驗等

2. 變頻器控制子程序:輸入運行、停止、復位、地址、頻率設定等入口。輸出變頻器狀態(tài)、通訊故障碼、當前運行頻率、電流等。程序中要根據上次通訊結果判斷當前應寫(xiě)還是讀。并發(fā)出XMT通訊指令,開(kāi)通發(fā)送完成中斷。

3. CRC校驗子程序:運算發(fā)送的CRC碼。

4. 發(fā)送完成中斷程序:根據發(fā)送的內容,確定接受的長(cháng)度,關(guān)閉接受中斷,開(kāi)通接受完成中斷。

5. 接受完成中斷程序:判斷接受信號是否正常,若不正常送出相應的故障碼。將接收到的正確信號,送入對應暫存區內,供控制子程序輸出,關(guān)閉接受中斷。


關(guān)鍵詞: MODBUS通信總結變頻

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>