伺服驅動器是構成伺服系統(tǒng)的基本部件,廣泛應用于各種電力傳動自動控制系統(tǒng)中,如:數控機床、柔性制造系統(tǒng)、機器人驅動、火炮隨動系統(tǒng)、雷達控制、艦船推進、車輛驅動、印刷設備、紡織設備、縫紉設備等。在應用伺服驅動器的過程中,實時讀取和修改各個控制參數來達到實時控制,是對伺服系統(tǒng)的基本要求。
本文即針對德國博世力士樂的伺服驅動器indradrive,采用靈活易用的vb6.0編程語言,通過indradrive本身所帶的rs232串行通信接口,實現了上位pc機與伺服驅動器的串行通信,完成了對伺服驅動器內部各控制參數的實時控制。
indradrive的通信協議
indradrive采用sis通信協議,它是一種二進制通信協議,含有完整的報文格式和返回校驗格式。針對博世力士樂的各種產品(plc、伺服驅動器等),sis協議的通信格式是統(tǒng)一的。
sis協議采用的數據格式為:1位起始位,8位數據,1位或2位停止位,無校驗位;通信傳輸數據的波特率為115200bps。sis協議采用十六進制數據格式來表示各種指令代碼及數據,其軟件通信指令經過優(yōu)化設計后,只有兩條,一條為讀指令,一條為寫指令,兩條指令使得上位機軟件編寫非常方便。
sis協議的報文格式如附表所示。
附表 sis協議的報文格式
其中報頭由8個字節(jié)組成,它們的意義如下:
第一個字節(jié)stz:起始位,默認為0x02;
第二個字節(jié)cs:用于校驗數據,它的值是除此字節(jié)外,所有的數相加后的低8位值異或ff,再加1后的值;
第三個字節(jié)datl:除去報頭后所有數據的長度(字節(jié)的個數);
第四個字節(jié)datlw:重復第三個字節(jié)的內容;
第五個字節(jié)cntrl:決定錯誤返回類型,默認為0x00;
第六個字節(jié)service:服務類型(讀參數寫0x80,寫參數寫0x8f);
第七個字節(jié)adrs:驅動器地址;
第八個字節(jié)adre:驅動器地址。
用戶數據頭包含5個字節(jié),意義如下:
第一個字節(jié)control byte:操作參數值,默認為0x3c;
第二個字節(jié)device address(unit address):驅動器地址;
第三個字節(jié)parameter type:參數類型,對于驅動器其值為0x00;
第四、五字節(jié)parameter number:參數號,對于驅動器的s參數,直接寫參數號的十六進制值;對于p參數,寫“215+參數號”的十六進制值。
用戶數據的數據長度取決于操作參數的數據類型,如操作參數為int型,寫2個字節(jié);為dword型,寫4個字節(jié)。寫的時候注意低位字節(jié)在前,高位字節(jié)在后。
轉載請注明出處。