新聞中心

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

        基于VB的伺服驅動器串口通信的實現

        作者: 時間:2015-06-02 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/275075.htm

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

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

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

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

          

         

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

          其中報頭由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é)在后。

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

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

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

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

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 瓮安县| 织金县| 繁峙县| 广安市| 乌什县| 通河县| 东乡县| 旌德县| 英吉沙县| 友谊县| 长汀县| 科技| 青海省| 安泽县| 定州市| 吉林省| 南京市| 南川市| 乳源| 五寨县| 长海县| 平阳县| 瑞安市| 磐安县| 信丰县| 明溪县| 始兴县| 原平市| 安徽省| 浦江县| 德清县| 孟州市| 福清市| 鹿邑县| 永定县| 锡林郭勒盟| 惠州市| 巴彦县| 仲巴县| 五常市| 宁陕县|