一、內容簡介
本篇內容主要介紹Node-Red通過node-red-contrib-modbus插件與ModbusTCP設備進行通訊,這里Profinet轉ModbusTCP網關作為從站設備,Node-Red作為主站分別從0地址開始讀取10個線圈狀態和10個保持寄存器,分別用Modbus-Read、Modbus-Getter、Modbus-Flex-Getter三個節點以不同的方式來實現。
二、設置Profinet轉ModbusTCP網關參數
首先打開網關配置軟件“Gateway Configuration Studio”新建項目選擇PN2MTS
設置網關在Profinet一側的設備名稱及IP地址(注意不要和Modbustcp一側沖突但可以是不同網段)
點擊ModbusTCP設置網關在Modbus一側的地址
完成后將配置下載進網關即可。
三、配置網關在PLC中的組態設置
新建項目,添加PLC。點擊選項-管理通用站描述文件(GSD)
選擇GSD所在文件夾位置(注意是文件夾位置而不是文件)
將模塊添加到組態,設置好網關在Profinet一側的設備名稱及IP地址(注意不要與ModbusTCP一側的地址沖突)
雙擊網關模塊進入設備視圖,添加網關輸入輸出對應的長度及IQ地址
到此網關在PLC側的配置完成下載進PLC。
四、安裝node-red-contrib-modbus插件
在Node-Red工作臺點擊右上角的菜單按鈕,選擇“節點管理”菜單項,再在彈出的對話框左邊選擇“控制板”標簽,然后在該頁面選擇上面的“安裝”標簽,在搜索框中輸入“modbus”,在搜索結果中找到“node-red-contrib-modbus”插件,并點擊插件右下角的“安裝”按鈕。
此時會彈出確認安裝的確認對話框,點擊“安裝”按鈕,稍等片刻即可安裝完成。
安裝完成之后,左側面板顯示已經安裝的節點。
五、設置Modbus-Read節點
1. 讀線圈
將Modbus-Read節點拖動到工作臺的默認流程,此處為“流程1”,雙擊節點,在彈出的對話框中找到FC下拉框,選擇“FC1:Read Coil Status”,在Address輸入框中輸入“0”,在Quantity輸入框中輸入“10”,在Poll Rate輸入框中輸入“1”,在隨后的下拉框中選擇單位“seconds(s)”,其它值保持默認,如圖所示。
接下來添加Modbus-client節點,點擊“Server”最右邊的筆形按鈕,彈出設置對話框,默認選擇“Settings”標簽,在“Type”下拉框中選擇“TCP”選項,在Host輸入框中輸入“網關ModbusTCP一側的IP地址”,Port設置為“502”,TCP Type選擇“DEFAULT”選項,其它保持默認值,如下圖所示,最后點擊右上角的“添加”按鈕確定。
添加完modbus-client節點之后回到Modbus-Read編輯界,點擊右上角的“完成”按鈕完成編輯。
添加一個debug節點到流程,將Modbus-Read的第一個輸出點與之連接。
點擊工作臺右上角的“部署”按鈕,右側邊欄切換到調試窗口,可以看到接收的數據,點擊debug節點后面的“尾巴”可以隱藏當前節點的調試信息,立即生效,不需要重新部署。
2.讀保持寄存器
從左側邊欄再拖動一個Modbus-Read節點到流程中,雙擊節點彈出設置對話框,在FC下拉框選擇“FC 3: Read Holding Registers”選項,在Address輸入框輸入“0”,在Quantity輸入框輸入“10”,Poll Rate設置為“1”,單位選擇“second(s)”,Server下拉框選擇已添加的“從站IP地址”選項,點擊“完成”按鈕確定。
從左側面板拖動一個debug節點到流程中,連接剛設置好的Modbus-Read節點,部署之后可以看到調試信息,改變西門子PLC中相應保持寄存器的值。