在與英威騰(INVT)變頻器Modbus通訊時,采用自己編制主站通訊程序,參照西門子USS程序格式做成庫程序,在多個項目上應用,效果還是不錯。
S7-200自由口通訊確實很自由,可以編制任何通訊。
西門子自帶的Modbus主站程序,用在變頻器控制上,不方便。要求是能向USS庫程序一樣有多個控制的位信號輸入,在速度設定值變化是發(fā)送速度值,平時要讀變頻器的運行狀態(tài)(包括故障狀態(tài)),還想讀變頻器運行時的電流。于是,自己根據(jù)英威騰變頻器的通訊協(xié)議,編制了Modbus主站通訊程序。
Modbus通訊協(xié)議要求:
讀寫都是8個字節(jié),只是功能碼的不同和讀是讀得字長度,寫是要寫入的數(shù)據(jù)值
發(fā)送 VB1600 VB1601 VB1602 VB1603 VB1604 VB1605 VB1606 VB1607 VB1608
8個字節(jié) 發(fā)送長度8 從站地址 功能碼 數(shù)據(jù)地址高字節(jié) 數(shù)據(jù)地址低字節(jié) 數(shù)據(jù)字長高字節(jié) 數(shù)據(jù)字長低字節(jié) CRC校驗低字節(jié) CRC校驗高字節(jié)
從上面的通訊結構可以看出:數(shù)據(jù)地址、字長和CRC都是一個字,其中地址和長度或數(shù)據(jù)高低字節(jié)與西門子定義一致,即低地址高字節(jié)。CRC不一樣,是低地址低字節(jié),與計算機上的定義一致。這點必需注意。