- AIRIOT物聯(lián)網(wǎng)平臺開發(fā)框架應(yīng)用與實戰(zhàn)
- 袁寧主編
- 4769字
- 2021-08-12 17:28:25
3.4 基于Modbus TCP的遠程數(shù)據(jù)采集及控制
本節(jié)基于Modbus TCP及ModSim32模擬軟件介紹數(shù)據(jù)采集與控制功能,并實現(xiàn)電機狀態(tài)監(jiān)控仿真。
3.4.1 遠程數(shù)據(jù)采集
1.模型添加及配置
(1)模型添加及基本信息設(shè)置
添加“電機”“軸承”“繞組”三個模型,并設(shè)置“軸承”和“繞組”為電機的子模型?!半姍C”“軸承”“繞組”的基本信息設(shè)置分別如圖3-2、圖3-3和圖3-4所示。
圖3-2 “電機”基本信息設(shè)置
圖3-3 “軸承”基本信息設(shè)置
圖3-4 “繞組”基本信息設(shè)置
模型基本信息設(shè)置完成后的模型列表如圖3-5所示。
圖3-5 模型基本信息設(shè)置完成后的模型列表
(2)模型設(shè)備配置
由于“電機”為“軸承”和“繞組”的父模型,因此,先分別進行“軸承”和“繞組”設(shè)備配置,最后進行“電機”設(shè)備配置。
1)“軸承”模型設(shè)備配置。“軸承”模型設(shè)備配置中驅(qū)動配置如圖3-6所示,設(shè)備驅(qū)動選擇Modbus/TCP,驅(qū)動配置下設(shè)備IP為服務(wù)器物理IP,端口為502,站號為2,由于有些設(shè)備點表比設(shè)備實際地址小1,勾選“自動化地址”后會自動減1,實現(xiàn)設(shè)備點表和設(shè)備地址一致。
圖3-6 “軸承”模型設(shè)備配置中驅(qū)動配置
添加“X軸振動烈度”“Y軸振動烈度”“軸承溫度”3個數(shù)據(jù)點,“軸承”數(shù)據(jù)點關(guān)鍵信息如圖3-7所示,讀取區(qū)域均為“3”,表示讀取“保持寄存器”;數(shù)據(jù)類型“FloatBE”表示浮點數(shù),低位在前;寄存器個數(shù)均為2,表示每個數(shù)據(jù)點需2個寄存器存儲數(shù)據(jù);偏移地址分別為1、3和5分別對應(yīng)3個數(shù)據(jù)點的起始地址;烈度單位為mm/s,小數(shù)位數(shù)2,溫度單位為℃,小數(shù)位數(shù)1。
圖3-7 “軸承”數(shù)據(jù)點關(guān)鍵信息
2)“繞組”模型設(shè)備配置。“繞組”模型設(shè)備配置中驅(qū)動配置如圖3-8所示,不同模型對應(yīng)不同資產(chǎn),因此站號不同,“繞組”模型站號為3,其余配置同“軸承”模型。
圖3-8 “繞組”模型設(shè)備配置中驅(qū)動配置
添加“A相電壓”“B相電壓”“C相電壓”“A相電流”“B相電流”“C相電流”6個數(shù)據(jù)點,“繞組”數(shù)據(jù)點關(guān)鍵信息如圖3-9所示,讀取區(qū)域均為“3”,表示讀取“保持寄存器”;數(shù)據(jù)類型“FloatBE”表示浮點數(shù),低位在前;寄存器個數(shù)均為2,表示每個數(shù)據(jù)點需2個寄存器存儲數(shù)據(jù);偏移地址1、3、5、7、9和11分別對應(yīng)6個數(shù)據(jù)點的起始地址;電壓單位為V,小數(shù)位數(shù)1,電流單位為A,小數(shù)位數(shù)2。
圖3-9 “繞組”數(shù)據(jù)點關(guān)鍵信息
3)“電機”模型設(shè)備配置。“電機”模型設(shè)備配置中驅(qū)動配置如圖3-10所示,站號設(shè)置為1,其余配置同“軸承”模型。
圖3-10 “電機”模型設(shè)備配置中驅(qū)動配置
添加1個“起?!睌?shù)據(jù)點,表示電機起停狀態(tài),“電機”數(shù)據(jù)點關(guān)鍵信息如圖3-11所示,讀取區(qū)域為“1”,表示讀取“線圈狀態(tài)”;數(shù)據(jù)類型“UInt8”表示無符號整型;寄存器個數(shù)為1,表示該數(shù)據(jù)點需1個寄存器存儲數(shù)據(jù);偏移地址“1”對應(yīng)該數(shù)據(jù)點的地址;沒有單位和小數(shù)點。
圖3-11 “電機”數(shù)據(jù)點關(guān)鍵信息
在“計算節(jié)點”菜單下勾選“自動繼承子模型數(shù)據(jù)”,以繼承“軸承”模型和“繞組”模型的數(shù)據(jù)點,“電機”計算節(jié)點配置如圖3-12所示。
圖3-12 “電機”計算節(jié)點配置
在“參數(shù)列表”下添加“參數(shù)顯示列”,包括名稱、編號及所有參數(shù),添加完后的參數(shù)列表如圖3-13所示。
圖3-13 添加完后的參數(shù)列表
2.資產(chǎn)添加及配置
在“電機”模型下添加1個電機資產(chǎn),名稱“電機1”,編號“DJ01”;在“軸承”模型下添加1個軸承資產(chǎn),名稱“軸承1”,編號“ZC01”;在“繞組”模型下添加1個繞組資產(chǎn),名稱“繞組1”,編號“RZ01”。設(shè)置“軸承1”和“繞組1”為“電機1”的子資產(chǎn),“軸承1”“繞組1”和“電機1”基本信息如圖3-14所示。由于模型中已經(jīng)配置了驅(qū)動及數(shù)據(jù)點,資產(chǎn)無須再配置。
圖3-14 “軸承1”“繞組1”和“電機1”基本信息
3.參數(shù)匯總
為了便于觀察數(shù),添加電機參數(shù)匯總,如圖3-15所示。
圖3-15 電機參數(shù)匯總
4.ModSim32模擬仿真
(1)ModSim32簡介
Modbus采用主從式通信,日常應(yīng)用較多的是Modbus RTU和Modbus TCP兩種協(xié)議,在開發(fā)過程中需經(jīng)常用到Modbus調(diào)試工具,最常用是ModScan32和ModSim32,ModScan32 用于模擬主設(shè)備,ModSim32用于模擬從設(shè)備。此外,還有Modbus Master和Modbus Slave等。本書采用ModSim32模擬從設(shè)備。
(2)ModSim32通用設(shè)置
ModSim32初始界面如圖3-16所示,有File、Connection、View和Help四個菜單。單擊File→New新建模擬,新建模擬后界面如圖3-17所示,界面中Device Id為站號,默認值1,MODBUS Point Type為數(shù)據(jù)點類型,默認為03即保持寄存器,Address為數(shù)據(jù)點地址,默認值0100,Length為數(shù)據(jù)長度,默認值100。用戶可根據(jù)實際應(yīng)用修改上述參數(shù)。此外,菜單欄增加Display選項,用于設(shè)置顯示數(shù)據(jù)(Show Data)或數(shù)據(jù)流(Show Traffic)以及數(shù)據(jù)格式,數(shù)據(jù)格式包括二進制(Binary)、十進制(Decimal)、十六進制(HEX)、長整型(Long Integer)等,ModSim32將以設(shè)定的數(shù)據(jù)格式進行發(fā)送和接收。
圖3-16 ModSim32初始界面
圖3-17 新建模擬后界面
(3)電機狀態(tài)監(jiān)控中ModSim32的設(shè)置
根據(jù)上述設(shè)置,電機狀態(tài)監(jiān)測中共有三個從站,“電機1”站號為1,有一個無符號整形數(shù)據(jù)點“起?!?;“軸承1”站號為2,有“X軸振動烈度”“Y軸振動烈度”“軸承溫度”3個數(shù)據(jù)點,數(shù)據(jù)類型均為浮點數(shù),低位在前;“繞組1”站號為3,有三相電壓和三相電流共6個數(shù)據(jù)點,數(shù)據(jù)類型均為浮點數(shù),低位在前。因此需創(chuàng)建3個模擬對應(yīng)不同的從站,分別如圖3-18、圖3-19和圖3-20所示。雙擊相應(yīng)數(shù)據(jù)點可設(shè)置數(shù)據(jù)值,“繞組1”資產(chǎn)從站模擬中40001數(shù)據(jù)設(shè)置示例如圖3-21所示,Value為設(shè)定值,填入設(shè)定值后單擊“Update”按鈕即可更新數(shù)據(jù)。數(shù)據(jù)支持自動模擬,單擊“Auto Simulation”按鈕彈出自動模擬設(shè)置窗口,勾選“Enable”,填寫完相應(yīng)信息后,單擊“OK”按鈕即可完成自動模擬設(shè)置。本例中除了“起?!保捎米詣幽M。
圖3-18 “電機1”資產(chǎn)從站模擬
圖3-19 “軸承1”資產(chǎn)從站模擬
圖3-20 “繞組1”資產(chǎn)從站模擬
圖3-21 “繞組1”資產(chǎn)從站模擬中40001數(shù)據(jù)設(shè)置示例
(4)電機參數(shù)匯總
ModSim32設(shè)置完成后,打開AIRIOT系統(tǒng),在系統(tǒng)操作中重新加載Modbus TCP。然后打開前臺“電機參數(shù)匯總”頁面,即可實時查看電機數(shù)據(jù)點,電機參數(shù)匯總數(shù)據(jù)點實時顯示如圖3-22所示。至此,完成一臺電機狀態(tài)監(jiān)控仿真。
圖3-22 電機參數(shù)匯總數(shù)據(jù)點實時顯示
(5)設(shè)備調(diào)試
設(shè)備調(diào)試是AIRIOT的重要功能之一,可以實時查看數(shù)據(jù)收發(fā)狀態(tài),打開“儀表調(diào)試”頁面,單擊圖標,勾選要調(diào)試的資產(chǎn),即可顯示各資產(chǎn)數(shù)據(jù)收發(fā)情況,“儀表調(diào)試”頁面如圖3-23所示?!拜S承”調(diào)試信息示例如圖3-24所示,顯示了兩個采集周期的采集指令及收到的數(shù)據(jù)和數(shù)據(jù)解析。
圖3-23 “儀表調(diào)試”頁面
圖3-24 “軸承”調(diào)試信息示例
儀表調(diào)試右上角圖標功能如下。
1)連接狀態(tài)標識:表示設(shè)備是否連接,連接為綠色,否則為灰色。
2)查詢:單擊彈出查詢窗口,輸入信息可查詢。
3)調(diào)試的起動和停止:鼠標懸停,彈出起動和停止狀態(tài),單擊可切換狀態(tài)。
4)滾動顯示:設(shè)置自動滾動和不滾動(圖標為
),默認為滾動狀態(tài),信息自動滾動,單擊可切換。
5)清除日志:單擊可清除調(diào)試窗口內(nèi)的日志信息。
6)刪除調(diào)試設(shè)備:單擊可刪除當(dāng)前調(diào)試設(shè)備,若要查看,需再次添加。
除上述功能外,儀表調(diào)試還支持數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)解析,選中要轉(zhuǎn)換或解析的數(shù)據(jù),彈出“進制轉(zhuǎn)換”和“數(shù)值解析”對話框,單擊“進制轉(zhuǎn)換”,可進行十進制、二進制和十六進制之間的轉(zhuǎn)換,單擊“數(shù)值解析”彈出解析下拉列表,選擇相應(yīng)項可進行解析,數(shù)據(jù)解析示例如圖3-25所示。
圖3-25 數(shù)據(jù)解析示例
3.4.2 遠程控制
1.遠程起停控制
AIRIOT可直接控制PLC地址或根據(jù)一定協(xié)議發(fā)送指令實現(xiàn)設(shè)備遠程起??刂?。下面通過ModbusTCP發(fā)送指令實現(xiàn)電機起停控制。
(1)添加指令選中“電機”模型,單擊“設(shè)備配置”→“指令”下圖標,彈出添加指令窗口,如圖3-26所示,默認名稱為“指令×”,×表示當(dāng)前指令號,如已添加4個指令,則×為5。
1)名稱。一般根據(jù)功能自定義,如起動電機、停止電機、起停電機、轉(zhuǎn)速控制等。
2)添加指令。當(dāng)執(zhí)行的為固定值0和1時,直接添加指令即可,單擊指令右側(cè)圖標,可添加指令。“起動電機1”指令示例如圖3-27所示。
圖3-26 添加指令窗口
圖3-27 “起動電機1”指令示例
①名稱:“起動電機1”,添加1條,即“指令1”。
②寫入?yún)^(qū)域:即指令寫入?yún)^(qū)域,包括線圈狀態(tài)及保存寄存器兩種選擇,用戶根據(jù)設(shè)備的具體信息進行選擇。此處為“線圈狀態(tài)”,
③偏移地址:輸入內(nèi)容為阿拉伯?dāng)?shù)字,不可以為負數(shù),用戶根據(jù)設(shè)備的具體信息填寫,此處為“1”。
注意:寫入?yún)^(qū)域及偏移地址與“電機1”數(shù)據(jù)點“起?!钡亩x一致時,方可控制“電機1”的起停。
④數(shù)據(jù)類型:指寫入指令的數(shù)據(jù)類型,包括布爾值、數(shù)值以及字符串三種,用戶根據(jù)實際情況進行選擇。電機起停只有兩種狀態(tài),因此數(shù)據(jù)類型設(shè)置為“【Boolean】布爾型”。
⑤綁定表單項:若需要綁定表單項,要在當(dāng)前輸入框中輸入已經(jīng)添加完成的表單項的名稱,名稱必須與參數(shù)名保持一致。圖3-27中不綁定表單項。
⑥默認寫入值:一般情況先默認寫入值不需要進行特殊設(shè)定,此處“1”表示默認起動電機。
設(shè)置完成后單擊右下角“確定”按鈕,完成指令“起動電機1”的添加。同理,可添加指令“停止電機1”,默認寫入值為“0”,表示停止電機。指令配置完成后“指令”欄如圖3-28所示,在“指令”欄下方出現(xiàn)兩條指令,分別為“起動電機1”和“停止電機1”,單擊下方“保存”按鈕,保存配置。
圖3-28 指令配置完成后的“指令”欄
(2)刪除指令
單擊指令編輯欄右上角圖標,可刪除當(dāng)前指令。
(3)調(diào)試演示
配置完成后,首先單擊“系統(tǒng)維護”→“系統(tǒng)操作”→“Modbus/TCP重新加載”,完成協(xié)議重新加載。然后單擊“系統(tǒng)維護”→“設(shè)備調(diào)試”,打開設(shè)備調(diào)試頁面并添加調(diào)試設(shè)備“DJ01”?!癉J01”調(diào)試界面如圖3-29所示,光標置于“發(fā)送指令”按鈕處,出現(xiàn)“起動電機1”和“停止電機1”兩個按鈕,單擊“起動電機1”按鈕,發(fā)送起動電機1指令,彈出提示“發(fā)送命令成功”,此時“DJ01”調(diào)試界面及ModSim相應(yīng)值均變?yōu)?,表示電機已起動。單擊“起動電機1”按鈕后“DJ01”調(diào)試界面及ModSim相應(yīng)值如圖3-30所示。單擊“停止電機1”按鈕,可停止電機1。
圖3-29 “DJ01”調(diào)試界面
2.電機轉(zhuǎn)速控制
AIRIOT還可直接通過PLC地址或根據(jù)一定協(xié)議發(fā)送指令實現(xiàn)設(shè)備遠程控制。下面通過Modbus TCP發(fā)送指令實現(xiàn)電機轉(zhuǎn)速控制。
圖3-30 單擊“起動電機1”按鈕后“DJ01”調(diào)試界面及ModSim相應(yīng)值
(1)添加轉(zhuǎn)速數(shù)據(jù)點
在“電機1”模型下添加數(shù)據(jù)點“轉(zhuǎn)速”,“轉(zhuǎn)速”數(shù)據(jù)點定義如圖3-31所示。
圖3-31 “轉(zhuǎn)速”數(shù)據(jù)點定義
(2)添加指令
打開添加指令窗口,添加“轉(zhuǎn)速控制1”指令,為了自由設(shè)置轉(zhuǎn)速值,需添加表單項,轉(zhuǎn)速控制指令表單項配置如圖3-32所示。
圖3-32 轉(zhuǎn)速控制指令表單項
1)參數(shù)名。指令調(diào)用時需要的參數(shù)名稱,命名規(guī)則為漢字,參數(shù)名為二次確認對話框中顯示的名稱信息,此處為“轉(zhuǎn)速”。
2)數(shù)據(jù)類型。指表單項寫入設(shè)備的數(shù)據(jù)類型,包括數(shù)值、布爾值、字符串。
3)表單類型。表單類型為限定好的選項,包括默認、日期選擇器、時間選擇器和電子郵件輸入框,用戶根據(jù)自己的需求進行選擇即可,此處為“默認”。
4)選擇項值。選擇項值為阿拉伯?dāng)?shù)字,用于設(shè)定可選的變化值,可根據(jù)實際需要確定是否需要選擇項。為了實現(xiàn)轉(zhuǎn)速自由控制,此處不設(shè)定選擇項值。
5)選擇項文字。與設(shè)定的選擇項值的指令中文名稱一一對應(yīng),當(dāng)添加多個時,指令對應(yīng)可以通過下拉列表進行選擇。
6)默認值。默認值一般不寫或者寫0,為了防止出現(xiàn)事故,默認值一般不寫。
7)縮放比例。數(shù)值輸入及編譯后的縮放數(shù)值比例。
8)數(shù)值定義。與縮放比例配合使用,表示線性放縮的數(shù)值范圍。
“轉(zhuǎn)速控制1”配置完成后“指令”欄如圖3-33所示,在“指令”欄下方出現(xiàn)“轉(zhuǎn)速控制1”,如圖3-34所示,單擊下方“保存”按鈕,保存配置。
圖3-33 “轉(zhuǎn)速控制1”配置完成后的“指令”欄
圖3-34 “指令”欄下方出現(xiàn)“轉(zhuǎn)速控制1”
(3)調(diào)試演示
配置完成后,打開“DJ01”調(diào)試界面,光標置于“發(fā)送指令”按鈕處,出現(xiàn)“起動電機1”“停止電機1”“轉(zhuǎn)速控制1”三個按鈕,單擊“轉(zhuǎn)速控制1”,彈出“命令參數(shù)”窗口,如圖3-35所示,輸入轉(zhuǎn)速值,如1800,單擊“執(zhí)行”按鈕,彈出“發(fā)送命令成功”提示,此時“DJ01”調(diào)試界面及ModSim相應(yīng)值均變?yōu)?800,表示電機轉(zhuǎn)速為1800,實際上這里設(shè)置的電機轉(zhuǎn)速為給定值,電機控制系統(tǒng)接收到給定值之后執(zhí)行相應(yīng)轉(zhuǎn)速控制動作,使電機轉(zhuǎn)速保持在1800。轉(zhuǎn)速設(shè)置為1800后調(diào)試界面及ModSim相應(yīng)值如圖3-36所示。
圖3-35 “命令參數(shù)”窗口
圖3-36 轉(zhuǎn)速設(shè)置為1800后調(diào)試界面及ModSim相應(yīng)值
- Java語言程序設(shè)計
- 精通Nginx(第2版)
- 從零開始:數(shù)字圖像處理的編程基礎(chǔ)與應(yīng)用
- C語言程序設(shè)計案例教程(第2版)
- Learn to Create WordPress Themes by Building 5 Projects
- PyTorch自動駕駛視覺感知算法實戰(zhàn)
- 深入淺出PostgreSQL
- Symfony2 Essentials
- 青少年信息學(xué)競賽
- Visual FoxPro程序設(shè)計習(xí)題集及實驗指導(dǎo)(第四版)
- Learning jQuery(Fourth Edition)
- Beginning C++ Game Programming
- SQL Server 2008中文版項目教程(第3版)
- Mastering Android Studio 3
- Python程序設(shè)計教程