<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于VB的伺服驅動(dòng)器串口通信的實(shí)現

基于VB的伺服驅動(dòng)器串口通信的實(shí)現

作者: 時(shí)間:2015-06-02 來(lái)源:網(wǎng)絡(luò ) 收藏

  是構成伺服系統的基本部件,廣泛應用于各種電力傳動(dòng)自動(dòng)控制系統中,如:數控機床、柔性制造系統、機器人驅動(dòng)、火炮隨動(dòng)系統、雷達控制、艦船推進(jìn)、車(chē)輛驅動(dòng)、印刷設備、紡織設備、縫紉設備等。在應用的過(guò)程中,實(shí)時(shí)讀取和修改各個(gè)控制參數來(lái)達到實(shí)時(shí)控制,是對伺服系統的基本要求。

本文引用地址:http://dyxdggzs.com/article/275081.htm

  本文即針對德國博世力士樂(lè )的indradrive,采用靈活易用的VB6.0編程語(yǔ)言,通過(guò)indradrive本身所帶的rs232串行通信接口,實(shí)現了上位pc機與伺服驅動(dòng)器的串行通信,完成了對伺服驅動(dòng)器內部各控制參數的實(shí)時(shí)控制。

  indradrive的通信協(xié)議indradrive采用sis通信協(xié)議,它是一種二進(jìn)制通信協(xié)議,含有完整的報文格式和返回校驗格式。針對博世力士樂(lè )的各種產(chǎn)品(plc、伺服驅動(dòng)器等),sis協(xié)議的通信格式是統一的。

  sis協(xié)議采用的數據格式為:1位起始位,8位數據,1位或2位停止位,無(wú)校驗位;通信傳輸數據的波特率為115200bps.sis協(xié)議采用十六進(jìn)制數據格式來(lái)表示各種指令代碼及數據,其軟件通信指令經(jīng)過(guò)優(yōu)化設計后,只有兩條,一條為讀指令,一條為寫(xiě)指令,兩條指令使得上位機軟件編寫(xiě)非常方便。

  sis協(xié)議的報文格式如附表所示。

  

 

  附表sis協(xié)議的報文格式

  其中報頭由8個(gè)字節組成,它們的意義如下:第一個(gè)字節stz:起始位,默認為0x02;第二個(gè)字節cs:用于校驗數據,它的值是除此字節外,所有的數相加后的低8位值異或ff,再加1后的值;第三個(gè)字節datl:除去報頭后所有數據的長(cháng)度(字節的個(gè)數);第四個(gè)字節datlw:重復第三個(gè)字節的內容;第五個(gè)字節cntrl:決定錯誤返回類(lèi)型,默認為0x00;第六個(gè)字節service:服務(wù)類(lèi)型(讀參數寫(xiě)0x80,寫(xiě)參數寫(xiě)0x8f);第七個(gè)字節adrs:驅動(dòng)器地址;第八個(gè)字節adre:驅動(dòng)器地址。

  用戶(hù)數據頭包含5個(gè)字節,意義如下:第一個(gè)字節control byte:操作參數值,默認為0x3c;第二個(gè)字節device address(unit address):驅動(dòng)器地址;第三個(gè)字節parameter type:參數類(lèi)型,對于驅動(dòng)器其值為0x00;第四、五字節parameter number:參數號,對于驅動(dòng)器的s參數,直接寫(xiě)參數號的十六進(jìn)制值;對于p參數,寫(xiě)“215+參數號”的十六進(jìn)制值。

  用戶(hù)數據的數據長(cháng)度取決于操作參數的數據類(lèi)型,如操作參數為int型,寫(xiě)2個(gè)字節;為dword型,寫(xiě)4個(gè)字節。寫(xiě)的時(shí)候注意低位字節在前,高位字節在后。

  VB實(shí)現pc機與indradrive的串行通信pc機與indradrive的通信常采用主從問(wèn)答方式,pc機始終具有初始傳送優(yōu)先權,所有的通信均由pc機來(lái)啟動(dòng)。每次通信都是由pc機通過(guò)發(fā)送(讀/寫(xiě)參數)命令啟動(dòng)通信,indradrive在接到pc機發(fā)送的命令后,首先檢查命令中的起始標志,然后檢查命令中的驅動(dòng)器地址是否與自己的驅動(dòng)器地址相符,如果不一致,說(shuō)明計算機是與其它的驅動(dòng)器進(jìn)行通信,從而忽略該命令;如果一致,就響應該命令,并將執行結果回送到pc機,一次通信過(guò)程結束。

  在VB的控件工具箱中提供了一個(gè)使用非常方便的串行通信控件mscomm,它全面地提供了使用串行通信上層開(kāi)發(fā)的所有細則,串行通信的實(shí)現既可以采用中斷方式,又可以采用查詢(xún)方式。mscomm控件提供了實(shí)現串行端口中斷功能的oncomm事件,該事件是唯一的,可以截取串口的任何消息,當有串口事件或錯誤發(fā)生時(shí),VB程序就會(huì )自動(dòng)轉入oncomm事件處理程序中。commevent屬性存有串口最近的事件或錯誤的數值代碼,可以在程序中隨時(shí)讀取commevent屬性值來(lái)了解通信情況,oncomm事件是和commevent屬性密切相關(guān)、一起使用,當任何一個(gè)oncomm事件或錯誤發(fā)生時(shí),都會(huì )使得commevent屬性值改變。在oncomm事件處理過(guò)程中,可以通過(guò)判斷commevent屬性值,對于不同的屬性值轉入不同的事件處理過(guò)程。

  根據sis通信協(xié)議的規定,VB程序中主要是針對mscomm控件的操作,主要有mscomm控件的初始化和oncomm事件的處理。

  mscomm控件的主要初始化代碼如下:mscomm_com1.commport = 1‘設定需要使用的串口mscomm_com1.settings =“115200,n,8,1”

  ‘設定傳輸的波特率和校驗方式mscomm_com1.portopen = true’打開(kāi)通信串口mscomm_com1.rthreshold = 1‘設置輸入緩沖區字符輸入門(mén)限oncomm事件的處理程序主要代碼如下:private sub mscomm_com1_oncomm()


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 伺服驅動(dòng)器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>