在與英威騰(INVT)變頻器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)必需注意。