蘇蓓蓓,杜 亮
(無錫科技職業學院物聯網技術學院,江蘇 無錫 214028)
姿態傳感器[1]是一種常用的傳感器,安裝于待測物體后,通過輸出俯仰角、橫滾角和方位角3個互相垂直軸向的角度,確定待測物體的姿態。在工業自動化領域,經常用可編程邏輯控制器(Programmable Logic Controller,PLC)將姿態傳感器的數據進行解析[2-3],并通過觸摸屏進行顯示,從而可以直觀觀測物體的姿態。現以一個西門子PLC結合北京昆侖通態自動化軟件科技有限公司研發的監視與控制通用系統(Monitor and Control Generated System,MCGS)觸摸屏,解析、顯示姿態傳感器角度數據的系統為例進行研究分析。
系統構成見圖1。姿態傳感器輸出姿態角度數據(含俯仰角、橫滾角和方位角),PLC解析出數據,存放于內部寄存器,同時送MCGS觸摸屏進行顯示。MCGS觸摸屏除了顯示數據,還可以進行數據存儲、曲線顯示等。

圖1 系統構成
姿態傳感器選用無錫詠為傳感科技有限公司提供的LCM346T-M型三維電子羅盤,這是一款40°傾角補償三維電子羅盤[4],輸出俯仰角和橫滾角精度為0.2°,方位角精度為1°。數據通信協議采用的是MODBUSRTU通信協議[5],與西門子PLC對接方便。PLC選用西門子S7-200 SMART型,它是西門子公司開發的一款小型PLC,功能齊全,使用方便,包含1個RS485接口,可通過MODBUSRTU通信協議與傳感器進行通信。觸摸屏選用MCGSTPC1061Hn型,它是一套以先進的Cortex-A8 CPU(主頻為1 GHz)為核心的高性能嵌入式一體化觸摸屏,采用了259.08 mm(即10.2 in)高亮度薄膜場效應晶體管(Thin Film Transistor,TFT)液晶顯示屏(分辨率為1 024×600)。該產品接口豐富,同時具有一路RS232通信接口、兩路RS485通信接口、一路局域網(Local Area Network,LAN)網絡接口。
LCM346T-M型三維電子羅盤通過串口連接PLC,TXD線連接PLC串口頭的3腳,RXD線連接PLC串口頭的8腳,二者之間通過MODBUSRTU通信協議進行數據通信。PLC和MCGS之間通過網線連接,二者網際互連協議(Internet Protocol,IP)設置在同一LAN網段,即IP前3位保持一致,第4位保持不同即可。
LCM346T-M型三維電子羅盤采用問答式工作模式,即PLC按一定時間周期向LCM346T-M型三維電子羅盤發送十六進制數據“01 03 00 01 00 06 94 08”,其中01表示地址,03是功能碼,00 01是寄存器地址,00 06是寄存器數量,94 08是循環冗余校驗(Cyclic Redundancy Check,CRC)。LCM346 T-M型三維電子羅盤接收到該指令后,會返回一組十六進制數據,例如“01 03 0CBDA3 D7 0A 3FBD 70 A4 43 87 01 48 0A B5”,其中01表示地址,03是功能碼,0C是字節數,BD A3 D7 0A是俯仰角值,為32 b浮點數形式,同理3FBD 70 A4是橫滾角值,43 87 01 48是方位角值,0A B5是CRC。按照ANSI/IEEEStd 754-1985《二進制浮點數算術標準》,可將數據轉化為十進制浮點數形式(取到小數點后2位小數)。
俯仰角:(0xBDA3D70A)=-0.08°
橫滾角:(0x3FBD70A4)=1.48°
方位角:(0x43870148)=270.01°
PLC在MODBUS RTU通信時,首先要進行MBUS_CTRL指令初始化操作,見圖2。

圖2 MBUS_CTRL指令初始化操作程序梯形圖
SM0.0始終為1,EN設置為1,每次掃描時均執行該指令,Mode設置為1,啟用MODBUSRTU通信協議,波特率選擇9 600 b/s,Parity取0表示無奇偶校驗,Port取0表示采用CPU中集成的RS485通信接口,超時時間設為100 ms。指令完成時,V100.0設置為1;如發生錯誤,錯誤代碼存放于VB101。
V100.0置位后,啟用T37進行100 ms延時,確保初始化完成。利用內部繼電器M0.1和M0.2形成振蕩時鐘,周期為20 ms,占空比為1∶1,見圖3。


圖3 振蕩時鐘程序梯形圖與波形圖
由于MODBUSRTU通信協議規定兩條數據幀之間應至少大于3.5 B的時間,在9 600 b/s波特率下,該時間為3.5×(1/9 600)×11 s=0.004 s,為了留下足夠余量,LCM346T-M型三維電子羅盤將此時間提高到大于10 ms,因此每條數據幀之間至少留下10 ms的時間間隔。PLC中設置的時間為20 ms,從而可以確保每個周期內有足夠的時間進行數據解析。
MODBUSRTU通信MBUS_MSG指令配置見圖4,振動時鐘M0.2驅動EN和First。EN輸入接通時,MBUS_MSG指令會向Modbus從站 (即LCM346T-M型三維電子羅盤)發起主站請求。有新請求要發送時,將參數First設置為接通,并僅保持一個掃描周期。First輸入以脈沖方式通過邊沿檢測元素(例如上升沿),這將導致程序發送請求一次。在本設計中M0.2持續20 ms的時間,確保每次數據交互時間充裕。

圖4 MBUS_MSG指令配置程序梯形圖
因為LCM346T-M型三維電子羅盤地址默認為1,所以Slave設置為1。RW設置為0,表示PLC讀取LCM346T-M型三維電子羅盤數據。數據從LCM346T-M型三維電子羅盤的寄存器中讀取,起始地址為40002,長度共12 B。DataPtr用于存放從LCM346T-M型三維電子羅盤中讀取的原始數據,存放地址為:&VB0,表示從VW0開始存放,一直到VW10。其中讀取的有效數值分別存放于VD0,VD4,VD8,數據類型為浮點數。完成標志位為V100.1;如有錯誤代碼,存放于VB102。
在設備組態中添加“西門子_Smart200”通信組件,PLC的IP地址為192.168.2.1,MCGS的IP設置為同一網段,例如設置為192.168.2.2。設置3個變量X,Y,Z,分別連接通道VDF000,VDF004,VDF008,對應與PLC數據存放地址VD0(VB0),VD4和VD8。MCGS設備組態設置界面見圖5。

圖5 MCGS設備組態設置界面
MCGS顯示界面見圖6,分別包含主界面、曲線界面和歷史數據界面。主界面顯示俯仰角X(Pitch)、橫滾角Y(Roll)和方位角Z(Head);曲線界面顯示數據曲線值,直觀觀察數據變化情況;歷史數據界面顯示設定的一段時間內數據情況,并可使用U盤保存,存儲格式為EXCEL表格形式。注意事項中主要注明觸摸屏使用方法及技巧。

圖6 MCGS顯示界面
系統調試主要包括LCM346T-M型三維電子羅盤與PLC的通信調試、PLC與MCGS的通信調試。
先確保LCM346T-M型三維電子羅盤與PLC硬件連接正確,然后調試程序,在PLC上位機的軟件仿真運行中進行程序狀態監控,觀察程序運行情況,同時監視狀態圖表,觀測VD0,VD4和VD8中浮點類型角度數據,PLC調試界面見圖7。如有異常則進行程序調整,直到正常為止。

圖7 PLC調試界面
PLC與MCGS用網線連接好,IP設置一定要確保無誤,另外顯示文本中的變量輸出格式要設置正確,見圖8。變量名稱鏈接正確,設置為數值型,保留兩位小數位,都設置好后,文本可正確顯示PLC解析出的角度數據值。

圖8 MCGS變量輸出設置界面
綜上所述,系統通過PLC解析出LCM346T-M型三維電子羅盤姿態傳感器的角度數據,并送MCGS觸摸屏進行了顯示,主要技術要點包含了PLC的MODBUSRTU通信編程和MCGS觸摸屏通信及數據顯示設置。此外,PLC解析出角度數據后,除了送MCGS觸摸屏顯示,還可以將數據應用于其他方面,例如與繼電器、電機等連接,用于控制相關器件,從而可以設計出功能更強大的自動化系統。