基于VB的伺服驅動(dòng)器串口通信的實(shí)現
dim input_buffer as variant dim upper_limit as integer dim input_to_hex as string dim i as integer input_buffer = mscomm_com1.input‘從接收緩沖區copy字符upper_limit = ubound(input_buffer)
本文引用地址:http://dyxdggzs.com/article/274877.htm‘收到數據的個(gè)數for i = 0 to upper_limit input_to_hex = hex(input_buffer(i))
‘將接收到的數據轉化為十六進(jìn)制if len(input_to_hex)《2 then’將不滿(mǎn)兩位的十六進(jìn)制值前補0 input_to_hex =“0”input_to_hex end if if i = 0 then‘每開(kāi)始新的一次接收,清空顯示文本框txtreceivedata.text =“”
end if txtreceivedata.text = txtreceivedata.text input_to_hex“”
‘顯示接收的內容next end sub讀寫(xiě)命令實(shí)例及注意事項有了上面的基礎,就可以根據sis協(xié)議的數據格式來(lái)實(shí)時(shí)讀寫(xiě)indradrive的內部參數,如讀取位置反饋值參數s-0-0051的值,首先將參數號51轉化為十六進(jìn)制數33,即在用戶(hù)數據頭的第四、五兩個(gè)字節分別寫(xiě)入3300(注意:高字節在后,低字節在前);其它字節可以相繼得出,因是讀參數值,所以不需寫(xiě)用戶(hù)數據;從而發(fā)送內容應為:02 02 05 05 00 80 01 01 3c 01 00 33 00.如果通信正常,則會(huì )接收到類(lèi)似的字節內容:02 20 07 07 10 80 01 01 00 3c 01 4e ac 07 00,其中后4個(gè)字節即為位置反饋值(注意:高字節在后,低字節在前),十六進(jìn)制表示應為7ac4e,將其轉化為十進(jìn)制為502862,實(shí)際的位置值應為50.2862(位置值的分辨率為0.0001)。在寫(xiě)參數時(shí),和讀參數的不同的地方就是用到用戶(hù)數據,也就是將欲寫(xiě)入的值寫(xiě)到用戶(hù)數據的位置。如將100.0000寫(xiě)入最大行程值參數s-0-0278,首先將參數號278轉化為十六進(jìn)制數116,即在用戶(hù)數據頭的第四、五兩個(gè)字節分別寫(xiě)入16 11;再將1000000(注意不是100.0000)轉化為十六進(jìn)制為f4240,即在用戶(hù)數據的四個(gè)字節依次寫(xiě)入40 42 0f 00;其它字節可以相繼得出;發(fā)送內容應為:02 76 09 09 00 8f 01 01 3c 01 00 16 01 40 42 0f 00.如通信正常,則會(huì )接收到:02 1a 03 03 10 8f 01 01 00 3c 01,表示改寫(xiě)參數成功。
值得注意的是,除了在數據格式上遵從sis協(xié)議之外,操作過(guò)程中還應注意以下幾點(diǎn):通信波特率應為115200 bps.寫(xiě)參數時(shí),應先使indradrive處于pm(參數模式)。通過(guò)置位參數s-0-0420(激活參數模式)的bit1、bit0,就可以將indradrive切換到pm;而在改寫(xiě)參數s-0-0420時(shí),不需在pm;在將s-0-0420的bit1和bit0置位后,不要忘了再將其復位,這樣便進(jìn)入pm,便可以隨意改寫(xiě)參數了。在配置完參數后,應該跳出pm,進(jìn)入om(操作模式),通過(guò)參數s-0-0422(跳出參數模式)來(lái)完成,配置過(guò)程與s-0-0420類(lèi)似。
(3)讀參數時(shí)無(wú)論indradrive處于pm和om均可讀取,沒(méi)有限制。
(4)讀參數時(shí),接收到內容的第11個(gè)字節以后的內容為用戶(hù)數據;而寫(xiě)參數時(shí),接收到的內容中沒(méi)有用戶(hù)數據部分,只要通信正常,均會(huì )收到相同內容02 1a 03 03 10 8f 01 01 00 3c 01.(5)如果正在上位機用indraworks調試indradrive,則讀寫(xiě)參數時(shí),應使indraworks離線(xiàn),否則會(huì )提示串口被占用。
結語(yǔ)
本文所闡述的串口通信方法已成功應用于調試博世力士樂(lè )indradrive伺服驅動(dòng)器的實(shí)驗中,靈活方便,達到了實(shí)時(shí)修改驅動(dòng)器的參數的要求;適當改進(jìn)即可應用于地鐵站臺屏蔽門(mén)系統和安全門(mén)系統以及自動(dòng)門(mén)系統的上位機監控,具有較好的實(shí)際價(jià)值和可擴展性。
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
評論