<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于VB的伺服驅(qū)動器串口通信的實現(xiàn)

          基于VB的伺服驅(qū)動器串口通信的實現(xiàn)

          作者: 時間:2015-05-28 來源:網(wǎng)絡 收藏

            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‘從接收緩沖區(qū)copy字符upper_limit = ubound(input_buffer)

          本文引用地址:http://www.ex-cimer.com/article/274877.htm

            ‘收到數(shù)據(jù)的個數(shù)for i = 0 to upper_limit input_to_hex = hex(input_buffer(i))

            ‘將接收到的數(shù)據(jù)轉(zhuǎn)化為十六進制if len(input_to_hex)《2 then’將不滿兩位的十六進制值前補0 input_to_hex =“0”input_to_hex end if if i = 0 then‘每開始新的一次接收,清空顯示文本框txtreceivedata.text =“”

            end if txtreceivedata.text = txtreceivedata.text input_to_hex“”

            ‘顯示接收的內(nèi)容next end sub讀寫命令實例及注意事項有了上面的基礎,就可以根據(jù)sis協(xié)議的數(shù)據(jù)格式來實時讀寫indradrive的內(nèi)部參數(shù),如讀取位置反饋值參數(shù)s-0-0051的值,首先將參數(shù)號51轉(zhuǎn)化為十六進制數(shù)33,即在用戶數(shù)據(jù)頭的第四、五兩個字節(jié)分別寫入3300(注意:高字節(jié)在后,低字節(jié)在前);其它字節(jié)可以相繼得出,因是讀參數(shù)值,所以不需寫用戶數(shù)據(jù);從而發(fā)送內(nèi)容應為:02 02 05 05 00 80 01 01 3c 01 00 33 00.如果通信正常,則會接收到類似的字節(jié)內(nèi)容:02 20 07 07 10 80 01 01 00 3c 01 4e ac 07 00,其中后4個字節(jié)即為位置反饋值(注意:高字節(jié)在后,低字節(jié)在前),十六進制表示應為7ac4e,將其轉(zhuǎn)化為十進制為502862,實際的位置值應為50.2862(位置值的分辨率為0.0001)。在寫參數(shù)時,和讀參數(shù)的不同的地方就是用到用戶數(shù)據(jù),也就是將欲寫入的值寫到用戶數(shù)據(jù)的位置。如將100.0000寫入最大行程值參數(shù)s-0-0278,首先將參數(shù)號278轉(zhuǎn)化為十六進制數(shù)116,即在用戶數(shù)據(jù)頭的第四、五兩個字節(jié)分別寫入16 11;再將1000000(注意不是100.0000)轉(zhuǎn)化為十六進制為f4240,即在用戶數(shù)據(jù)的四個字節(jié)依次寫入40 42 0f 00;其它字節(jié)可以相繼得出;發(fā)送內(nèi)容應為:02 76 09 09 00 8f 01 01 3c 01 00 16 01 40 42 0f 00.如通信正常,則會接收到:02 1a 03 03 10 8f 01 01 00 3c 01,表示改寫參數(shù)成功。

            值得注意的是,除了在數(shù)據(jù)格式上遵從sis協(xié)議之外,操作過程中還應注意以下幾點:通信波特率應為115200 bps.寫參數(shù)時,應先使indradrive處于pm(參數(shù)模式)。通過置位參數(shù)s-0-0420(激活參數(shù)模式)的bit1、bit0,就可以將indradrive切換到pm;而在改寫參數(shù)s-0-0420時,不需在pm;在將s-0-0420的bit1和bit0置位后,不要忘了再將其復位,這樣便進入pm,便可以隨意改寫參數(shù)了。在配置完參數(shù)后,應該跳出pm,進入om(操作模式),通過參數(shù)s-0-0422(跳出參數(shù)模式)來完成,配置過程與s-0-0420類似。

            (3)讀參數(shù)時無論indradrive處于pm和om均可讀取,沒有限制。

            (4)讀參數(shù)時,接收到內(nèi)容的第11個字節(jié)以后的內(nèi)容為用戶數(shù)據(jù);而寫參數(shù)時,接收到的內(nèi)容中沒有用戶數(shù)據(jù)部分,只要通信正常,均會收到相同內(nèi)容02 1a 03 03 10 8f 01 01 00 3c 01.(5)如果正在上位機用indraworks調(diào)試indradrive,則讀寫參數(shù)時,應使indraworks離線,否則會提示串口被占用。

            結(jié)語

            本文所闡述的串口通信方法已成功應用于調(diào)試博世力士樂indradrive的實驗中,靈活方便,達到了實時修改的參數(shù)的要求;適當改進即可應用于地鐵站臺屏蔽門系統(tǒng)和安全門系統(tǒng)以及自動門系統(tǒng)的上位機監(jiān)控,具有較好的實際價值和可擴展性。

          數(shù)字通信相關文章:數(shù)字通信原理


          通信相關文章:通信原理



          上一頁 1 2 下一頁

          關鍵詞: 伺服 驅(qū)動器

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();