日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SICK LMS511 利用串口数据采集

發布時間:2024/3/26 编程问答 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SICK LMS511 利用串口数据采集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

應用LMS511或其它版本施克激光雷達時,可以通過SOPAS ET軟件對LMS511進行設置,測量數據輸出。更多的時候為了定制化產品,我們需要通過串口技術發送命令對LMS511進行設置和數據的輸出。此時官方提供的Developers Guide手冊對于開發者是重要的,手冊涵蓋了串口通訊、數據處理、參數設置等大量命令介紹。這篇博文就從如何利用串口進行數據采集進行講解,博文里涉及的電文/命令都來源于Developers Guide。

(Telegrams)電文介紹

電文/電報/報文,通過終端以ASCII(也以十六進制)或二進制文件的形式向LMS511發送命令,傳感器總是用他的語言進行反饋。我們可以用二進制、十六進制、ASCII,這里就建議使用ASCII,因為更直觀、更容易記憶一些。



這里給出了基礎的ASCII、Hex和Binary的命令和描述。

發送指令的步驟



(1)登陸設備(2)設置掃描頻率和分辨率(3)設置掃描輸出內容(4)存儲參數(5)運行并接受掃描數據

登陸設備


LMS511 內有三個權限的賬戶可供使用。”Maintenance”,在此權限下,用戶不可以更改 LMS 參數,但可通過指令獲取測量數據。”Authorised client”在此權限下,用戶可更改 LMS 的大部分參數如掃描頻率、角度分辨率、輸出內容等。“service”在此權限下,用戶 可更改 LMS 的所有參數,但不建議客戶使用,(存在由于參數設置錯誤而導致系統故障, 如需使用,請在 SICK 專業人員指導下進行使用)。


此時,若 LMS 返回值為“1“則代表登陸成功。LMS 前面板的”STOP”燈亮,表示停止測量 并開始準備接受參數修改指令。

設置掃描頻率與分辨率



這里修改的 LMS 掃描頻率為 50Hz,角度分辨率為 0.5(這里的的例子是LMS1xx的)。LMS511點開始角和終止角可以按照上述例子設置。



這里是LMS511反饋的角度分辨率與掃描頻率電文。

設置掃描輸出電文


修改 LMS 掃描頻率為 50Hz,起始角度為 0 度,結束角度為 90 度。

存儲參數



存儲數據

返回數據

運行并接受掃描數據



注銷并啟用設備,輸入此指令后,LMS 前面板指示燈變綠,提示此時 LMS 處于正常測量狀態。


返回狀態

看到這里你肯定了解基礎電文的用途,記不下來沒關系,用到的時候翻開開發者手冊查詢一下就好了。 講了那么多,了解了一些電文的作用功能,但是如何使用這些電文,甚至在哪里輸入上面這些電文你肯定還不知道,下面內容如何利用電文獲取數據幀的兩種方式與數據幀的含義一定是你想要的。

LMS511返回數據幀及含義

TCP/IP

在講解發送指令獲得數據之前,有必要了解一下TCP/IP的概念,因為在基于MATLAB對LMS設置讀取數據時候使用的就是這個技術。
網絡由下往上分為物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。 IP協議對應于網絡層,TCP協議對應于傳輸層,也可以說,TPC/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸。有時候也會看到Socket的概念,實際上Socket是對 TCP/IP協議的封裝和應用。Socket本身并不是協議,而是一個調用接口(API)。 通過Socket,才能使用TCP/IP協議。Socket編程接口在設計的時候,就希望也能適應其他的網絡協議。所以說,Socket的出現只是使得程序員更方便地使用TCP/IP協議棧而已,是對TCP/IP協議的抽象,從而形成了我們知道 的一些最基本的函數接口,比如create、listen、connect、accept、send、read和write等等。

數據獲取發送指令過程

LMS 可通過指令返回單次測量和連續測量的數據。
單次測量:發送指令后 LMS 會返回當前 LMS 的測量數據,執行后只返回一幀數據,具體用ASCII還是HEX自己選擇就好了。

指令 ASCII:sRN LMDscandata 指令 HEX:02 73 52 4E 20 4C 4D 44 73 63 61 6E 64 61 74 61 03

連續測量:發送指令后,LMS 會實時返回其測量數據

指令 ASCII:sEN LMDscandata 1 指令 HEX:02 73 45 4E 20 4C 4D 44 73 63 61 6E 64 61 74 61 20 31 03

連續測量停止:發送指令后,LMS 停止向外發送測量數據

指令 ASCII:sEN LMDscandata 0 指令 HEX:0273454E204C4D447363616E64617461203003

數據幀含義

單次測量和連續測量所返回的數據數據結構相同例如。
sRA LMDscandata 1(版本號) 1(設備號) 89A271(序列號) 0 0(設備狀態) C44(指令 計數) 5CA(掃描計數) E1CED(開始時間) E2775(發送時間) 0 0(數字量輸入) 7 0(數字量輸出) 0(保留) 9C4(2500HZ) 168(每次掃描頻率) 0(沒有編碼器) 1(輸出通 道 1) DIST1(輸出內容) 3F800000(系數) 00000000(系數偏移量) FFF92230(開始角 度) 9C4(角度分辨率) 43A(掃描點個數) 44F(第一個掃描點:1103mm) 445 451 440 451 450 44F 459 45B 474 45B 47B 46E 470 483 49B 481 48C 4A3 49D 4B3 4B7 4B1 4C7 4C1 4C2 4D4 4DD 4E4 4EB 4FA 511 505 504 50E 522 529 544 537 53C 54F 55A 564 56C 586 587 583 5A1 5B2 5A4 5AD 5C9 5CE 5ED 5FB 5F6 5FF 609 … … 48 56 4D 4D 3C 43 45 44 44 46 4C 56 39 48 41 4B 43 52 50 3E 60 73 66 88 88 9F AA B2 B3 CD E6 105 10D 12D 145 196 1A1 1C1 1B1 1E3 1E3 1E4 1DE 1E7 1EB 1F0 1E4 1F1 1F7 1FE 206 1F5 1FA 206 1F9 200 203 20A 21C 210 20C 20D 205 21D 219 21A 222 217 22E 229 225 237 22D 22D 0 0 0 0 0 0

通過終端獲取數據幀


通過MATLAB獲取數據幀并顯示

有關TCP/IP的例子

使用 instrhelp tcpip命令,可以看到tcpip函數的及參數的完整介紹。

% MATLAB example using TCP/IP (matlab_tcpip_example.m) % This simple code example demonstrates how you can use MATLAB to exchange data % with a remote application not developed in MATLAB. This code example is taken % from a MATLAB Digest technical article written by Edward J. Mayhew from % George Mason University. While HTTP was used as the higher-level protocol in % this example, you can use other protocols, as was the case in the project. % MATLAB supports TCP/IP using Instrument Control Toolbox. Requires MATLAB and % Instrument Control Toolbox. % % On line 14, substitute "www.EXAMPLE_WEBSITE.com" with an actual website with % which you wish to communicate.% Create TCP/IP object 't'. Specify server machine and port number. t = tcpip('192.168.1.1', 80); % Set size of receiving buffer, if needed. set(t, 'InputBufferSize', 30000); % Open connection to the server. fopen(t); % Transmit data to the server (or a request for data from the server). fprintf(t, 'GET /'); % Pause for the communication delay, if needed. pause(1) % Receive lines of data from server while (get(t, 'BytesAvailable') > 0) t.BytesAvailable DataReceived = fscanf(t) end % Disconnect and clean up the server connection. fclose(t); delete(t); clear t



MATLAB中獲取的實時廓線

通過MATLAB獲取數據幀后,提取DIST1后的距離數據,將十六進制的距離數據轉化為十進制距離數據,根據掃描角度計算廓線xy坐標。



SOPAS ET中實時獲取的廓線信息。

總結

可以看到MATLAB中通過電文實時獲取的廓線與SOPAS ET中實時廓線一致,說明幀數據獲取、解算的正確性。

參考

http://blog.csdn.net/guomutian911/article/details/41206663
http://blog.csdn.net/u012736279/article/details/41479123
http://www.cnblogs.com/qq78292959/archive/2009/09/22/2077085.html
http://www.cnblogs.com/rouwawa/p/6959009.html
http://www.cnblogs.com/fuyuanming/articles/4848250.html

總結

以上是生活随笔為你收集整理的SICK LMS511 利用串口数据采集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。