MODBUS通信總結(jié)

發(fā)布時(shí)間:2024-02-09
西門子s7-200plc在與英威騰變頻器modbus通訊時(shí),采用自己編制主站通訊程序,參照西門子uss程序格式做成庫(kù)程序,在多個(gè)項(xiàng)目上應(yīng)用,效果還是不錯(cuò)。
西門子s7-200自由口通訊確實(shí)很自由,可以編制任何通訊。
西門子自帶的modbus主站程序,用在變頻器控制上,不方便。要求是能向uss庫(kù)程序一樣有多個(gè)控制的位信號(hào)輸入,在速度設(shè)定值變化是發(fā)送速度值,平時(shí)要讀變頻器的運(yùn)行狀態(tài)(包括故障狀態(tài)),還想讀變頻器運(yùn)行時(shí)的電流。于是,自己根據(jù)英威騰變頻器的通訊協(xié)議,編制了modbus主站通訊程序。
modbus通訊協(xié)議要求:
讀寫都是8個(gè)字節(jié),只是功能碼的不同和讀是讀得長(zhǎng)度,寫是寫的數(shù)據(jù)值
發(fā)送
vb1600
vb1601
vb1602
vb1603
vb1604
vb1605
vb1606
vb1607
vb1608
8個(gè)字節(jié)
發(fā)送長(zhǎng)度8
從站地址
功能碼
數(shù)據(jù)地址高字節(jié)
數(shù)據(jù)地址低字節(jié)
數(shù)據(jù)字長(zhǎng)高字節(jié)
數(shù)據(jù)字長(zhǎng)低字節(jié)
crc校驗(yàn)低字節(jié)
crc校驗(yàn)高字節(jié)
從上面的通訊結(jié)構(gòu)可以看出:數(shù)據(jù)地址、字長(zhǎng)和crc都是一個(gè)字,其中地址和長(zhǎng)度或數(shù)據(jù)高低字節(jié)與西門子定義一致,即低地址高字節(jié)。crc不一樣,是低地址低字節(jié),與計(jì)算機(jī)上的定義一致。這點(diǎn)必需注意。
變頻器寫返回:
接受
vb1609
vb1610
vb1611
vb1612
vb1613
vb1614
vb1615
vb1616
vb1617
8個(gè)字節(jié)
接受長(zhǎng)度8
從站地址
功能碼
數(shù)據(jù)地址高字節(jié)
數(shù)據(jù)地址低字節(jié)
數(shù)據(jù)值 高字節(jié)
數(shù)據(jù)值 低字節(jié)
crc校驗(yàn)低字節(jié)
crc校驗(yàn)高字節(jié)
返回與發(fā)送時(shí)一樣,表示通訊數(shù)據(jù)接受成功,并已執(zhí)行。
我只需讀5個(gè)字的參數(shù)或1個(gè)字的狀態(tài),變頻器讀返回:
接受
vb1609
vb1610
vb1611
vb1612
vw1613
……
vw1621
vb1623
vb1624
n個(gè)字節(jié)
接受長(zhǎng)度n
從站地址
功能碼
數(shù)據(jù)字節(jié)字節(jié)數(shù)
數(shù)據(jù)1 數(shù)值
。。。。。
數(shù)據(jù)5 數(shù)值
crc校驗(yàn)低字節(jié)
crc校驗(yàn)高字節(jié)
讀狀態(tài)返回7個(gè)字節(jié),讀5個(gè)字返回15個(gè)字節(jié)。
程序要求:定義通訊優(yōu)先級(jí)別是先寫,后讀。寫命令(運(yùn)行,停止,復(fù)位等)發(fā)送級(jí)別最高,其次是寫頻率設(shè)定。寫通訊發(fā)送后,判斷返回值,確定是否寫成功,若寫成功則不再寫,只要控制狀態(tài)或頻率改變時(shí),再次寫。讀為一次讀變頻器狀態(tài),一次讀當(dāng)前運(yùn)行參數(shù),輪流讀取。
根據(jù)上述要求,確定了以下幾個(gè)子程序和中斷程序:
1. 初始化子程序:對(duì)自由口通訊配置波特率、偶校驗(yàn)等
2. 變頻器控制子程序:輸入運(yùn)行、停止、復(fù)位、地址、頻率設(shè)定等入口。輸出變頻器狀態(tài)、通訊故障碼、當(dāng)前運(yùn)行頻率、電流等。程序中要根據(jù)上次通訊結(jié)果判斷當(dāng)前應(yīng)寫還是讀。并發(fā)出xmt通訊指令,開通發(fā)送完成中斷。
3. crc校驗(yàn)子程序:運(yùn)算發(fā)送的crc碼。
4. 發(fā)送完成中斷程序:根據(jù)發(fā)送的內(nèi)容,確定接受的長(zhǎng)度,關(guān)閉接受中斷,開通接受完成中斷。
5. 接受完成中斷程序:判斷接受信號(hào)是否正常,若不正常送出相應(yīng)的故障碼。將接收到的正確信號(hào),送入對(duì)應(yīng)暫存區(qū)內(nèi),供控制子程序輸出,關(guān)閉接受中斷。
上一個(gè):白茶沖泡技法
下一個(gè):互毆能不能構(gòu)成正當(dāng)防衛(wèi)

金士頓機(jī)械硬盤多少錢,機(jī)械革命買到金士頓的硬盤
中國(guó)移動(dòng)怎么切換2g3g,4g網(wǎng)絡(luò)怎么變成2g網(wǎng)絡(luò)
為什么機(jī)械硬盤比固態(tài)硬盤便宜呢,固態(tài)硬盤和機(jī)械硬盤的區(qū)別優(yōu)勢(shì)在哪為什么這么貴
用于拆卸圓螺母的可調(diào)扭力預(yù)置扳手2000N.m
小鼠煙酰胺腺嘌呤二核苷酸磷酸elisa檢測(cè)試劑盒?洗滌方法
中興n880e犯卡怎么辦,我的手機(jī)中興U880經(jīng)常很卡為什么怎么解決一下
十字路口紅綠燈怎么看怎么走
買房需要攜帶的證件有哪些
厚聲0603WAF1913T5E電阻
電腦如何利用系統(tǒng)時(shí)間更改文件的創(chuàng)建時(shí)間
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos