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