99精品久久这里只有精品,三上悠亚免费一区二区在线,91精品福利一区二区,爱a久久片,无国产精品白浆免费视,中文字幕欧美一区,爽妇网国产精品,国产一级做a爱免费观看,午夜一级在线,国产精品偷伦视频免费手机播放

    <del id="eyo20"><dfn id="eyo20"></dfn></del>
  • <small id="eyo20"><abbr id="eyo20"></abbr></small>
      <strike id="eyo20"><samp id="eyo20"></samp></strike>
    • 首頁 > 文章中心 > 正文

      VxWorks高速通信的具體實現(xiàn)

      前言:本站為你精心整理了VxWorks高速通信的具體實現(xiàn)范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

      VxWorks高速通信的具體實現(xiàn)

      基本概述

      為保證工件臺上步進電機在運動過程中速度和加速度沒有突變,減小沖擊,提高步進電機運動的穩(wěn)定性,本文采用兩種常用的測試曲線——S-曲線和正弦曲線來測試工件臺步進電機加減速控制[3]。正弦以及S-曲線的生成參數(shù)需通過上位機傳給下位機進而傳遞給運動控制卡,而數(shù)據(jù)采集卡通過激光干涉儀采集的數(shù)據(jù)也要通過下位機傳遞給上位機。下位機內(nèi)嵌的vxworks是嵌入式實時操作系統(tǒng),Windows是一般用戶操作系統(tǒng),要實現(xiàn)兩者之間的高速、高可靠性網(wǎng)絡(luò)通信,一方面需要有好的硬件條件作保證,另一方面需要制定良好的通信規(guī)則。為了達到以上目的,本論文首先討論了如何制定通信協(xié)議,再進一步討論如何加強傳輸?shù)姆€(wěn)定性。下位機VxWorks中采用了輔助時鐘中斷,實現(xiàn)了在0.2ms周期內(nèi)完成一次數(shù)據(jù)采集,并將數(shù)據(jù)封裝,使其符合上下位機同一的通信規(guī)則,發(fā)送給上位機。

      高速通信的具體實現(xiàn)

      1通信規(guī)則的制定

      VxWorks支持流式套接字(streamsocket)、數(shù)據(jù)報套接字(datagramsocket)和zbuf套接字[4]。為了保證可靠性,與上位機通信時使用的是流式套接字,針對于TCP/IP協(xié)議。為了使通信雙方可以互相理解對方傳遞過來的字符串,必須實現(xiàn)建立通信協(xié)議。規(guī)定特定位置上字符所表示的含義,以保證下傳命令和返回信息能夠得到正確的接收和解釋。通信過程中存在數(shù)據(jù)和命令的傳送,但都是用同一個通信規(guī)則。通信的具體規(guī)則如下幀頭:標志著一幀數(shù)據(jù)的到來,作為判斷標志,由此開始接收一幀數(shù)據(jù)。可以消除干擾,消除亂碼,保證傳輸數(shù)據(jù)的準確性。幀類型:一個8位數(shù)據(jù),范圍為:00-FF,用來區(qū)分數(shù)據(jù)和指令的標志。規(guī)定:若此位為01,則表示傳遞的為數(shù)據(jù);若此為為02-FF之間的任一個數(shù),則表示傳遞的為指令,不同的數(shù)字表示不同的指令。這樣,就可以通過這一位判斷出傳遞的信息類型。幀數(shù)據(jù)的長度:分兩種情況:(1)若傳遞的為數(shù)據(jù),則此位為要傳遞的數(shù)據(jù)的長度加1(其中1代表幀類型傳遞時也要占用1位);(2)若傳遞的為指令,如果指令中不包含數(shù)據(jù),則此位為1,若指令中包含數(shù)據(jù),則此位為數(shù)據(jù)的長度加1。數(shù)據(jù):要傳遞的數(shù)據(jù)。要注意在傳遞過程中,要以字符的形式進行發(fā)送。幀尾:表示一幀數(shù)據(jù)的結(jié)束,作為判斷標志。由于下位機為嵌入式CPU板,資源比較緊張,為保證高速、可靠地傳輸,這里把上位機為服務(wù)器端,減少網(wǎng)絡(luò)通信對于下位機資源的占有量。

      2通信方案的實現(xiàn)

      2.1下位機的數(shù)據(jù)接收上位機向下位機發(fā)送的不僅有數(shù)據(jù),還有各種各樣的命令。由前面的通信協(xié)議可以看出,通過幀類型可以進行區(qū)分然后由下位機進行相應(yīng)的處理。具體各任務(wù)執(zhí)行流程為:首先系統(tǒng)進行網(wǎng)絡(luò)、變量和激光干涉儀以及板卡的初始化,啟動根任務(wù),生成(taskSpawn)網(wǎng)絡(luò)接收任務(wù)(tNetRecv)、網(wǎng)絡(luò)監(jiān)視任務(wù)(tNetCheckLink),優(yōu)先級前者大于后者,下位機一直等待接收數(shù)據(jù),當接收到命令寫入緩沖隊列[5]后,根據(jù)表3-1,表3-2,表3-3提供的通信協(xié)議來解析接收到信息的具體類型,將解析后參數(shù)以消息隊列方式傳送給數(shù)據(jù)表生成任務(wù)(tDataCreat)調(diào)用正弦、S-曲線函數(shù)生成數(shù)據(jù)表,同時啟動輔助時鐘調(diào)用數(shù)據(jù)處理函數(shù)rdisrl,即發(fā)送數(shù)據(jù)給上位機和各個運動控制卡。同時在整個流程中都有網(wǎng)絡(luò)監(jiān)視任務(wù)運行,當接收、發(fā)送或者硬件出現(xiàn)強制結(jié)束等信號時都會強制執(zhí)行關(guān)閉套接字(close),釋放(free)緩沖隊列等操作使整個流程強制結(jié)束,以達到預(yù)防突發(fā)事件的目的。

      2.2下位機數(shù)據(jù)發(fā)送下位機得到上位機的曲線生成命令生成的S-曲線、正弦曲線數(shù)據(jù)表以及從各運動控制卡、數(shù)據(jù)采集卡上讀取的數(shù)據(jù)都要傳遞給上位機。與接收不同,下位機向上位機發(fā)送的主要是數(shù)據(jù)。可以把不同板卡上的數(shù)據(jù),以及求出的S-曲線、正弦曲線的數(shù)據(jù)綁定在一起進行發(fā)送。通過該結(jié)構(gòu)體綁定將數(shù)據(jù)發(fā)送給上位機,上位機按位接收,逐個處理。另外,本課題要求以0.2ms為周期發(fā)送一次數(shù)據(jù),從高實時、高精度角度考慮,可以利用另外一種獲得更高分辨率時鐘的機制——輔助時鐘[6],它可以啟動一個與系統(tǒng)時鐘不同的硬件定時器,掛接用戶自己的中斷處理函數(shù),獲得更高的時鐘精度。

      2.3上位機數(shù)據(jù)的接收在TServerSocket組件的OnRead事件中調(diào)用ReceiveBuf()函數(shù),此函數(shù)的原型如下:int__fastcallReceiveBuf(void*Buf,intBufSize,intFlags=0);此函數(shù)共有三個參數(shù):第一個是要將數(shù)存入的數(shù)組,第二個是要讀取的字節(jié)數(shù),第三個一般省略。函數(shù)返回實際讀取到的字節(jié)數(shù)。當讀取到數(shù)據(jù)后經(jīng)過進一步的處理將下位機發(fā)過來的數(shù)據(jù)最后解析完成后存入MsgList容器中。數(shù)據(jù)保存:實際上在基類中已經(jīng)將收到的原始消息保存。為了能更清楚的看到解析完成后的數(shù)據(jù),可以在應(yīng)用程序中創(chuàng)建txt文件對數(shù)據(jù)進行保存。步驟如下:首先將數(shù)據(jù)取出保存到intDataFromBoard[4];//板卡上的數(shù)據(jù);unsignedcharSin[4],SCurve[4];//sin()和SCurve()四個數(shù)組。其次,定義文件指針fp,通過fopen()創(chuàng)建文件并打開,然后即可將讀取的數(shù)據(jù)保存。曲線顯示:這里主要利用TChart組件,首先將解析完成的消息取出,保存的各自的數(shù)組中,然后調(diào)用DrawCurve(TChart*ChartMid,doubleX,floatY,doubleWindowWidth)函數(shù)在TChart組件中進行顯示,基本流程圖如下:

      2.4上位機數(shù)據(jù)的發(fā)送利用TBaseSocket中的方法int__fastcallSendBuf(void*Buf,intBufSize,intFlags=0);此函數(shù)共有三個參數(shù):第一個是要將數(shù)發(fā)送到的數(shù)組,第二個是要發(fā)送的字節(jié)數(shù),第三個一般省略。函數(shù)返回實際發(fā)送的字節(jié)數(shù),當數(shù)據(jù)發(fā)出后再由下位機接收解析。

      實驗結(jié)果

      上位機發(fā)送的曲線參數(shù)分別為:正弦曲線:預(yù)定的正弦參數(shù)為頻率20Hz,初始相角為0,幅值為10.5;S-曲線:最大加速度:0.8m/s^2,最大加速度比為2,行程為30.0(參數(shù)精度可達到18~19為有效數(shù)字)。下位機接收到參數(shù)后生成數(shù)據(jù)表然后發(fā)給上位機,然后上位機采用MATLAB仿真得出實際輸出曲線和仿真輸出曲線。如下圖所示:正弦曲線采樣5000個點,每0.2ms發(fā)送一次;S-曲線采樣28648個點,每0.2ms發(fā)送一次。由仿真圖可看出:實際輸出與仿真結(jié)果完全吻合、數(shù)據(jù)無丟失。

      結(jié)束語

      通過本論文的闡述,得到了一種保證數(shù)據(jù)傳輸準確高速的通信規(guī)則,體現(xiàn)VxWorks所具有的實時性和靈活的任務(wù)間通信等優(yōu)點,為接下來本課題中工件臺做正弦、S-曲線和精確定位運動提供了保證,具有很高的工程實踐意義。

      作者:王公峰徐仁新李聰李星陳興林單位:哈爾濱工業(yè)大學(xué)控制科學(xué)與工程系華北電力大學(xué)(北京)控制與計算機工程學(xué)院

      文檔上傳者
      国产日韩AV无码免费一区二区| 伊人激情av一区二区三区| 无码少妇一区二区三区芒果| 在线视频中文字幕乱人伦 | 欧美xxxxx在线观看| 丰满岳妇乱一区二区三区| 无遮挡十八禁在线视频国产制服网站 | 久久人人玩人妻潮喷内射人人| 免费高清日本中文| 国产又色又爽的视频在线观看91| 激情人妻另类人妻伦| 99久久综合精品五月天| 欧美日韩亚洲成色二本道三区| 亚洲一区久久久狠婷婷| 亚洲中文字幕人妻久久| 国产精品熟女视频一区二区| 亚洲精品有码在线观看| 亚洲一区二区女优视频| 米奇欧美777四色影视在线| 国产成人一区二区三区影院动漫| 久久亚洲高清观看| 一区二区三区四区国产亚洲| 欧美精品欧美人与动人物牲交| 亚洲av综合色区无码一二三区| 免费一级a毛片在线播出| 视频区一区二在线观看| 精品无人码麻豆乱码1区2区| 亚洲av第一成肉网| 国产不卡一区二区三区视频| 亚洲另类丰满熟妇乱xxxx| 伊在人天堂亚洲香蕉精品区| 国产精品亚洲片夜色在线| 81久久免费精品国产色夜| 国产a√无码专区亚洲av| 亚洲欧洲日产国码无码久久99| 婷婷成人亚洲综合国产| 一区二区国产av网站| 中年熟妇的大黑p| 久久与欧美视频| 亚洲激情一区二区三区不卡| 亚洲av片在线观看|