Difference between revisions of "Modbus Master"

From ESS-WIKI
Jump to: navigation, search
 
(37 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
 
= Introduction =
 
= Introduction =
  
Line 7: Line 8:
 
<span style="font-size:medium;">Modbus Service is a Windows/Linux system service for WISE Agent to read&nbsp;sensor data from Modbus device or write data into Modbus device. After sensor data are acquired, WISE Agent will upload the data to the WISE-PaaS Cloud.</span>
 
<span style="font-size:medium;">Modbus Service is a Windows/Linux system service for WISE Agent to read&nbsp;sensor data from Modbus device or write data into Modbus device. After sensor data are acquired, WISE Agent will upload the data to the WISE-PaaS Cloud.</span>
  
 +
&nbsp;
  
 +
&nbsp;
  
 
= Features =
 
= Features =
Line 15: Line 18:
 
<span style="font-size:medium;">Feature:</span>
 
<span style="font-size:medium;">Feature:</span>
  
*<span style="font-size:medium;">Support connection with multiple Modbus slave.</span>
+
*<span style="font-size:medium;">Support connection with multiple Modbus slave.</span>  
*<span style="font-size:medium;">Support access both Modbus TCP and RTU in one service.</span>
+
*<span style="font-size:medium;">Support access both Modbus TCP and RTU in one service.</span>  
*<span style="font-size:medium;">Support individual&nbsp;read interval by connection.</span>
+
*<span style="font-size:medium;">Support individual&nbsp;read interval by connection.</span>  
*<span style="font-size:medium;">Configurable sensor alias.</span>
+
*<span style="font-size:medium;">Configurable sensor alias.</span>  
*<font size="3">Support byte swap.</font>
+
*<font size="3">Support byte swap.</font>  
*<span style="font-size:medium;">Currently support up-link Modbus Coil, Descrete input, Input register & Holding register data&nbsp;to WISE-PaaS , not support down-link from WISE-PaaS.</span>
+
*<span style="font-size:medium;">Support Modbus Coil, Descrete input, Input register & Holding register data.</span>  
*<font size="3">Support maximal 10 links, 10 devices for each link, and 30 sensors for each device.</font>
+
*<font size="3">Support maximal 10 links, 5&nbsp;devices for each link, and 10 sensors for each device.</font>  
  
 
= How to =
 
= How to =
  
== Software Requirements ==
+
== Login ==
 
 
*<span style="font-size:medium;">MQTT broker ([https://www.dropbox.com/s/cijybdsex900737/MQTTBrokerSetup_1.0.4.exe?dl=0 download link])</span>
 
*<span style="font-size:medium;">WISE Agent and enabled its connection with&nbsp;DeviceOn server&nbsp;</span>
 
 
 
== Installation ==
 
  
<span style="font-size:medium;">'''Windows:'''</span>
+
Step 1. Launch a web browser (Google Chrome, Microsoft Edge ...) and open iEdge local web '''[http://127.0.0.1:8080 http://127.0.0.1:8080]'''
  
<span style="font-size:medium;">1. Download Modbus-Master&nbsp;for Windows from [http://ess-wiki.advantech.com.tw/view/Modbus-Master#Release Release] Table.</span>
+
Step 2. Login iEdge local web:
  
<span style="font-size:medium;">2. Double click the&nbsp;installer to launch the installer to install it to the machine.</span>
+
Account: '''root'''
  
<span style="font-size:medium;">'''Debian:'''</span>
+
Password: '''P@ssw0rd'''
  
<span style="font-size:medium;">1. Download Modbus-Master&nbsp;for Debian from [http://ess-wiki.advantech.com.tw/view/Modbus_Master#Release Release] Table.</span>
+
[[File:Ros2-iedge-plugin-config-01.png|frameless|900x520px|Ros2-iedge-plugin-config-01.png]]
  
<span style="font-size:medium;">2. Launch the installer to install it to the machine.</span>
+
&nbsp;
<pre>sudo ./device-modbus-master-3.0.1-Debian_9.9-rk3399.run
 
</pre>
 
  
 
== Configuration ==
 
== Configuration ==
  
<span style="font-size:medium;">EdgeSense Modbus Master can manage multiple Modbus Slave setting and individual sensor's parameters, below settings are default after Modbus Master installation.</span>
+
=== How to config Model ===
 
 
 
 
  
<span style="font-size:medium;">1. Device Configuration: &lt;Install_folder&gt;\config\industry\device-industry.yaml</span>
+
Step 1. Go to "Plug-ins" / Plugin Config to select Modbus-Master Plug-in
<pre>metadata:&nbsp;
 
&nbsp; name: "Modbus devices"
 
&nbsp; labels: ["Modbus"]&nbsp;
 
&nbsp; Description: "Modbus TCP/RTU devices with 3 sensors in holding register area 40001~40003"
 
&nbsp; UpdateData: 2020-01-08-14:25:30
 
  
# LinkInfo: You can add a new link with unique name
+
[[File:Modbus config bQUoHri.png|border|800x480px|Modbus config bQUoHri.png]]
&nbsp; # <LinkName>: Unique Link Name
 
&nbsp; &nbsp; # Params: Serial Port or Network parameters
 
&nbsp; &nbsp; # Info: Time interval of polling data & check link&nbsp;
 
&nbsp; &nbsp; # DevList: Device list which defined in DeviceInfo section
 
  
LinkInfo:&nbsp;
+
Setp 2. From Modbus-Master Configuration, open Model Management tab, click "+" to add new Model.
&nbsp; TCP-IP-1:
 
&nbsp; &nbsp; Params:&nbsp;
 
&nbsp; &nbsp; &nbsp; Driver: Modbus-TCP
 
&nbsp; &nbsp; &nbsp; ConnectType: Net
 
&nbsp; &nbsp; &nbsp; IP: 127.0.0.1
 
&nbsp; &nbsp; &nbsp; Port: 502
 
&nbsp; &nbsp; &nbsp; Timeout: 1000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# A request timeout in milliseconds
 
&nbsp; &nbsp;
 
&nbsp; &nbsp; Info:&nbsp;
 
&nbsp; &nbsp; &nbsp; PollingInterval: 3000 &nbsp;# Polling interval in milliseconds
 
&nbsp; &nbsp; &nbsp; Retry: 3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Count of retry min:0 max:3
 
&nbsp; &nbsp; &nbsp; AliveTime: 10 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# Link Timeout in second: SDK will release this link if there are any request over this AliveTime ( second )
 
&nbsp; &nbsp; &nbsp; CheckLinkInterval: 2 &nbsp; # Check link status interval (second)
 
  
&nbsp; &nbsp; DevList:
+
[[File:Modbus config qpMUDCj.png|border|800x480px|modbus_config_qpMUDCj.png]]
&nbsp; &nbsp; &nbsp; - Device-1
 
  
&nbsp; COM1:
+
Setp 3. Input Model name and Description for new Model.
&nbsp; &nbsp; Params:
 
&nbsp; &nbsp; &nbsp; Driver: Modbus-RTU
 
&nbsp; &nbsp; &nbsp; ConnectType: Serial
 
&nbsp; &nbsp; &nbsp; PortName: COM1
 
&nbsp; &nbsp; &nbsp; BaudRate: 9600
 
&nbsp; &nbsp; &nbsp; DataBits: 8
 
&nbsp; &nbsp; &nbsp; StopBits: 1
 
&nbsp; &nbsp; &nbsp; Parity: None
 
&nbsp; &nbsp; &nbsp; Timeout: 1000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# A request timeout in milliseconds
 
&nbsp; &nbsp;&nbsp;
 
&nbsp; &nbsp; Info:&nbsp;
 
&nbsp; &nbsp; &nbsp; PollingInterval: 3000 &nbsp;# Polling interval in milliseconds&nbsp;
 
&nbsp; &nbsp; &nbsp; Retry: 3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Count of retry min:0 max:3
 
&nbsp; &nbsp; &nbsp; AliveTime: 10 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Link Timeout in second: SDK will release this link if there are any request over this AliveTime ( second )
 
&nbsp; &nbsp; &nbsp; CheckLinkInterval: 2 &nbsp; # Check link status interval (second)
 
  
&nbsp; &nbsp; DevList:&nbsp;
+
[[File:Modbus config XLSJYyn.png|border|800x480px|modbus_config_XLSJYyn.png]]
&nbsp; &nbsp; &nbsp; - Device-2
 
  
 +
Step 4. Click "+" to add Sensor - Input Sensor Name - Select Address Space, Access mode, Data Type, Data Format and input Address, Data Length, Minimal/Maximal Value for new sensor's attributes. - Input below timing attributes:&nbsp;Period (second) . Delay (ms, range: 0~1000ms)&nbsp; and&nbsp;Retry (range: 0~5)
  
# DeviceInfo: You can add a new device with unique name
+
*Click "Save" button to save the new sensor.
&nbsp; # <DeviceName>: Unique Device Name
 
&nbsp; &nbsp; # Params: Station number
 
&nbsp; &nbsp; # Profile: Profile file name
 
  
DeviceInfo:
+
[[File:Modbus config qsox6hM.png|border|800x480px|modbus_config_qsox6hM.png]]
&nbsp; Device-1:
 
&nbsp; &nbsp; Params:&nbsp;
 
&nbsp; &nbsp; &nbsp; Station: 1
 
  
&nbsp; &nbsp; Profile: MODBUS_DEVICE_01.yaml
+
Step 5. Repeat Step 4 to add another sensor.
  
&nbsp; Device-2:
+
[[File:Modbus config DPdBICk.png|border|800x480px|modbus_config_DPdBICk.png]]
&nbsp; &nbsp; Params:
 
&nbsp; &nbsp; &nbsp; Station: 2
 
  
&nbsp; &nbsp; Profile: MODBUS_DEVICE_02.yaml
+
Step 6. Click "Save" button to save the new sensors.
  
</pre>
+
[[File:Modbus config oXbCCsc.png|border|800x480px|modbus_config_oXbCCsc.png]]
  
 +
Step 5. Click "Save" button to save the new model.
  
 +
[[File:Modbus config kXoLU5M.png|border|800x480px|modbus_config_kXoLU5M.png]]
  
<span style="font-size:medium;">2. Sensor&nbsp;Configuration for Device-1: &lt;Install_folder&gt;\config\industry\Profile\MODBUS_DEVICE_01.yaml</span>
+
<br/> &nbsp;
<pre>
 
metadata:&nbsp;
 
&nbsp; name: MODBUS_DEVICE_01.yaml
 
&nbsp; labels: ["MODBUS"]&nbsp;
 
&nbsp; Description: This profile is for Modbus device 01
 
&nbsp; version: 1.0.1
 
&nbsp; UpdateData: 2020-01-08-14:25:30
 
  
Sensor:
+
=== How to config Link ===
&nbsp; Temperature:
 
&nbsp; &nbsp; Params:
 
&nbsp; &nbsp; &nbsp; Address: 0 &nbsp; &nbsp;# Address
 
&nbsp; &nbsp; &nbsp; Length: 1 &nbsp;
 
&nbsp; &nbsp; &nbsp; DataType: int16
 
&nbsp; &nbsp; &nbsp; DataFormat: ABCD
 
  
&nbsp; &nbsp; Info:
+
Step 1. From Modbus-Master Configuration, open Link Management tab, click "+" to add a new Link.
&nbsp; &nbsp; &nbsp; v: -1
 
&nbsp; &nbsp; &nbsp; asm: rw &nbsp; &nbsp; &nbsp; # Access Right: r, w, rw
 
&nbsp; &nbsp; &nbsp; min: -10 &nbsp; &nbsp; &nbsp;# Minimum Value&nbsp;
 
&nbsp; &nbsp; &nbsp; max: 100 &nbsp; &nbsp; &nbsp;# Maximum Value
 
&nbsp; &nbsp; &nbsp; u: "celsius" &nbsp;# Unit
 
  
&nbsp; Humidity:
+
[[File:Modbus config Sz3fL8f.png|border|800x480px|modbus_config_Sz3fL8f.png]]
&nbsp; &nbsp; Params:
 
&nbsp; &nbsp; &nbsp; Address: 1
 
&nbsp; &nbsp; &nbsp; Length: 1 &nbsp;
 
&nbsp; &nbsp; &nbsp; DataType: int16&nbsp;
 
&nbsp; &nbsp; &nbsp; DataFormat: ABCD
 
  
&nbsp; &nbsp; Info:
+
Step 2. Input Link Name, Link Type for the new Link.
&nbsp; &nbsp; &nbsp; v: -1
 
&nbsp; &nbsp; &nbsp; asm: rw &nbsp; &nbsp; &nbsp; # Access Right: r, w, rw
 
&nbsp; &nbsp; &nbsp; min: 0 &nbsp; &nbsp; &nbsp; &nbsp;# Minimum Value&nbsp;
 
&nbsp; &nbsp; &nbsp; max: 100 &nbsp; &nbsp; &nbsp;# Maximum Value
 
&nbsp; &nbsp; &nbsp; u: "percent" &nbsp;# Unit
 
  
</pre>
+
for Modbus-TCP link, set parameters: - IP - Port
  
 +
for Modbus-RTU link, set parameters: - COM port - Baudrate - Data bits - Stop bits - Parity mode
  
 +
Click "+" icon to add a new device.
  
<span style="font-size:medium;">2. Sensor&nbsp;Configuration for Device-2: &lt;Install_folder&gt;\config\industry\Profile\MODBUS_DEVICE_02.yaml</span>
+
[[File:Modbus config Dvkgjc2.png|border|800x480px|modbus_config_Dvkgjc2.png]]
<pre>metadata:&nbsp;
 
&nbsp; name: MODBUS_DEVICE_02.yaml
 
&nbsp; labels: ["MODBUS"]&nbsp;
 
&nbsp; Description: This profile is for Modbus device 02
 
&nbsp; version: 1.0.1
 
&nbsp; UpdateData: 2020-01-08-14:25:30
 
  
Sensor:
+
Step 3. Input Device Name, Station Id and select Model Profile for the new device. Model Profile should be added by upper Model Management steps.
&nbsp; X-Axis:
 
&nbsp; &nbsp; Params:
 
&nbsp; &nbsp; &nbsp; Address: 0 &nbsp; # Address
 
&nbsp; &nbsp; &nbsp; Length: 1 &nbsp;
 
&nbsp; &nbsp; &nbsp; DataType: int16
 
&nbsp; &nbsp; &nbsp; DataFormat: ABCD
 
  
&nbsp; &nbsp; Info:
+
Click "Save" button to save the new device.
&nbsp; &nbsp; &nbsp; v: -1
 
&nbsp; &nbsp; &nbsp; asm: rw &nbsp; &nbsp; &nbsp;# Access Right: r, w, rw
 
&nbsp; &nbsp; &nbsp; min: -10 &nbsp; &nbsp; # Minimum Value&nbsp;
 
&nbsp; &nbsp; &nbsp; max: 100 &nbsp; &nbsp; # Maximum Value
 
&nbsp; &nbsp; &nbsp; u: "mm/sec" &nbsp;# Unit
 
  
&nbsp; Y-Axis:
+
[[File:Modbus config CkZoH3H.png|border|800x480px|modbus_config_CkZoH3H.png]]
&nbsp; &nbsp; Params:
 
&nbsp; &nbsp; &nbsp; Address: 1
 
&nbsp; &nbsp; &nbsp; Length: 1 &nbsp;
 
&nbsp; &nbsp; &nbsp; DataType: int16&nbsp;
 
&nbsp; &nbsp; &nbsp; DataFormat: ABCD
 
  
&nbsp; &nbsp; Info:
+
Step 4. Click "Save" button to save the new link.
&nbsp; &nbsp; &nbsp; v: -1
 
&nbsp; &nbsp; &nbsp; asm: rw &nbsp; &nbsp; &nbsp;# Access Right: r, w, rw
 
&nbsp; &nbsp; &nbsp; min: -100 &nbsp; &nbsp;# Minimum Value&nbsp;
 
&nbsp; &nbsp; &nbsp; max: 100 &nbsp; &nbsp; # Maximum Value
 
&nbsp; &nbsp; &nbsp; u: "mm/sec" &nbsp;# Unit&nbsp;
 
  
</pre>
+
[[File:Modbus config jGIBhIa.png|border|800x480px|modbus_config_jGIBhIa.png]]
  
= Demonstration =
+
Step 5. Click "Apply" button to apply the new link.
  
<span style="font-size:medium;">1. Open Modbus Simulator: Launch&nbsp;[https://www.win-tech.com/html/modsim32.htm ModSim32]&nbsp;and click "New" in program&nbsp;menu to create a new simulator page.</span>
+
[[File:Modbus config YudsLa4.png|border|800x480px|modbus_config_YudsLa4.png]]
  
[[File:Modbus-Slave Modsim32 04.png|border|700x400px|Modbus-Slave Modsim32 04.png]]
+
Apply new settings Successfully
  
 +
[[File:Modbus config 7rvJoo5.png|border|800x480px|modbus_config_7rvJoo5.png]]
  
 +
Step 6. Go to Plugin List and select Modbus-Master plugin, the new sensor will be shown in this page
  
<span style="font-size:medium;">2. Set parameter as below:</span>
+
[[File:Modbus config Sys1ZZH.png|border|800x480px|modbus_config_Sys1ZZH.png]]
  
*<span style="font-size:medium;">Device Id: 1</span>
+
<br/> &nbsp;
*<span style="font-size:medium;">Address: 0001</span>
 
*<span style="font-size:medium;">Length: 2</span>
 
*<span style="font-size:medium;">Modbus Point Type: INPUT&nbsp;REGISTER</span>
 
  
<span style="font-size:medium;">[[File:Modsim-ir-01.png|520x400px|Modbus-Slave Modsim32 01.png]]</span>
+
=== How to import plugin settings ===
  
 +
Step 1. Click Import button from Modbus-Master Configuration
  
 +
[[File:Modbus config T6zjSoj.png|border|800x480px|modbus_config_T6zjSoj.png]]
  
<span style="font-size:medium;">3. Enable Auto Simulation:</span>
+
Step 2. Select target file you like to import
  
*<span style="font-size:medium;">Double click on the sensor address 30001</span>
+
[[File:Modbus config ZYeZTw5.png|border|800x480px|modbus_config_ZYeZTw5.png]]
*<span style="font-size:medium;">Click&nbsp;"Auto Simulation"</span>
 
  
 +
Import successful
  
 +
[[File:Modbus config k3N8BQO.png|border|800x480px|modbus_config_k3N8BQO.png]]
  
[[File:Modbus-Slave Modsim32 02.png|300x200px|Modbus-Slave Modsim32 02.png]]
+
Step 3. Click APPLY to use imported configuration
  
 +
[[File:Modbus config JTgo9CB.png|border|800x480px|modbus_config_JTgo9CB.png]]
  
 +
Apply new settings Successfully
  
 +
[[File:Modbus config WZGsmXR.png|border|800x480px|modbus_config_WZGsmXR.png]]
  
 +
<br/> &nbsp;
  
<span style="font-size: medium;">4. Set simulation parameters:</span>
+
=== How to export plugin settings ===
  
*<span style="font-size:medium;">Check&nbsp;"Enable"</span>
+
Step 1. Click Export button from Modbus-Master Configuration
*<span style="font-size:medium;">Simulation Type: Increment</span>
 
*<span style="font-size:medium;">Change Interval (secs): 5</span>
 
*<span style="font-size:medium;">Step VAlue: 1</span>
 
*<span style="font-size:medium;">Low Limit: 10</span>
 
*<span style="font-size:medium;">High Limit: 20</span>
 
  
[[File:Modbus-Slave Modsim32 03.png|360x280px|Modbus-Slave Modsim32 03.png]]
+
[[File:Modbus config tH3zFyI.png|border|800x480px|modbus_config_tH3zFyI.png]]
  
 +
Step 2. Explore the exported file
  
 +
[[File:Modbus config IU83MxX.png|border|800x480px|modbus_config_IU83MxX.png]]
  
<span style="font-size:medium;">5. Do the same step for the address 30002 and set simulation parameter as below:</span>
+
<br/> &nbsp;
  
*<span style="font-size:medium;">Simulation Type: Increment</span>
+
== Use case ==
*<span style="font-size:medium;">Low Limit: 60</span>
 
*<span style="font-size:medium;">High Limit: 80</span>
 
  
<span style="font-size:medium;">[[File:Modbus-Slave Modsim32 05.png|360x280px|Modbus-Slave Modsim32 05.png]]</span>
+
=== Connect and upload data for Modbus Temperature and Humidity sensor ===
  
 +
Use Modsim32 to simulate a modbus TCP device with a temperature sensor and a humidity sensor, config Modbus-Master to read these two sensors and upload iEdge cloud.
  
 +
&nbsp;
  
 +
&nbsp;
  
 +
==== Config Modbus simulator ====
  
<span style="font-size:medium;">6. Set Connection to Modbus/TCP Svr:</span>
+
Step1. Open Modbus Simulator: Launch ModSim32 and click "New" in program menu to create a new simulator page.
  
<span style="font-size:medium;">[[File:Modsim-ir-02.png|520x400px|Modbus-Slave Modsim32 06.png]]</span>
+
[[File:Modbus config GskBtAL.png|800x480px|Modbus config GskBtAL.png]]
  
 +
Step2. Set parameter as below:
  
 +
*Device Id: '''1'''
 +
*Address: '''0001'''
 +
*Length: '''2'''
 +
*Modbus Point Type: '''INPUT REGISTER'''
  
 +
[[File:Modbus config wVMbXWs.png|800x480px|Modbus config wVMbXWs.png]]
  
 +
Step3. Enable Auto Simulation:
  
 +
*Double click on the sensor address 30001
 +
*Click "Auto Simulation"
  
 +
[[File:Modbus config PaxcEE3.png|320x200px|Modbus config PaxcEE3.png]]
  
<span style="font-size:medium;">7. Edit Device Configuration for the demo: &lt;Install_folder&gt;\config\industry\device-industry.yaml</span>
+
Step4. Set simulation parameters:
<pre>metadata:&nbsp;
 
&nbsp; name: "Modbus devices"
 
&nbsp; labels: ["Modbus"]&nbsp;
 
&nbsp; Description: "Modbus TCP/RTU devices with 3 sensors in holding register area 40001~40003"
 
&nbsp; UpdateData: 2020-01-08-14:25:30
 
  
# LinkInfo: You can add a new link with unique name
+
*Check "Enable"
&nbsp; # <LinkName>: Unique Link Name
+
*Simulation Type: Increment
&nbsp; &nbsp; # Params: Serial Port or Network parameters
+
*Change Interval (secs): 5
&nbsp; &nbsp; # Info: Time interval of polling data & check link&nbsp;
+
*Step VAlue: 1
&nbsp; &nbsp; # DevList: Device list which defined in DeviceInfo section
+
*Low Limit: 10
 +
*High Limit: 20
  
LinkInfo:&nbsp;
+
[[File:Modbus config maLqhtS.png|600x320px|Modbus config maLqhtS.png]]
&nbsp; TCP-IP-1:
 
&nbsp; &nbsp; Params:&nbsp;
 
&nbsp; &nbsp; &nbsp; Driver: Modbus-TCP
 
&nbsp; &nbsp; &nbsp; ConnectType: Net
 
&nbsp; &nbsp; &nbsp; IP: 127.0.0.1
 
&nbsp; &nbsp; &nbsp; Port: 502
 
&nbsp; &nbsp; &nbsp; Timeout: 1000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# A request timeout in milliseconds
 
&nbsp; &nbsp;
 
&nbsp; &nbsp; Info:&nbsp;
 
&nbsp; &nbsp; &nbsp; PollingInterval: 3000 &nbsp;# Polling interval in milliseconds
 
&nbsp; &nbsp; &nbsp; Retry: 3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # Count of retry min:0 max:3
 
&nbsp; &nbsp; &nbsp; AliveTime: 10 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# Link Timeout in second: SDK will release this link if there are any request over this AliveTime ( second )
 
&nbsp; &nbsp; &nbsp; CheckLinkInterval: 2 &nbsp; # Check link status interval (second)
 
  
&nbsp; &nbsp; DevList:
+
Step5. Do the same step for the address 30002 and set simulation parameter as below:
&nbsp; &nbsp; &nbsp; - Device-1
 
  
</pre>
+
*Simulation Type: Decrement
 +
*Change Interval (secs): 5
 +
*Step VAlue: 1
 +
*Low Limit: 60
 +
*High Limit: 80
  
 +
[[File:Modbus config K98RWgN.png|600x320px|Modbus config K98RWgN.png]]
  
 +
Step6. Set Connection to Modbus/TCP Svr:
  
<span style="font-size:medium;">8. Edit Sensor Configuration for the demo: &lt;Install_folder&gt;\config\industry\Profile\MODBUS_DEVICE_01.yaml</span>
+
*Click Connection
<pre>metadata:&nbsp;
+
*Click Modbus/TCP Svr to simulate Modbus TCP connection
&nbsp; name: MODBUS_DEVICE_01.yaml
 
&nbsp; labels: ["MODBUS"]&nbsp;
 
&nbsp; Description: This profile is for Modbus device 01
 
&nbsp; version: 1.0.1
 
&nbsp; UpdateData: 2020-01-08-14:25:30
 
  
Sensor:
+
[[File:Modbus config ZhpooZd.png|800x480px|Modbus config ZhpooZd.png]]
&nbsp; Temperature:
 
&nbsp; &nbsp; Params:
 
&nbsp; &nbsp; &nbsp; Address: 0 &nbsp; &nbsp;# Address
 
&nbsp; &nbsp; &nbsp; Length: 1 &nbsp;
 
&nbsp; &nbsp; &nbsp; DataType: int16
 
&nbsp; &nbsp; &nbsp; DataFormat: ABCD
 
  
&nbsp; &nbsp; Info:
+
Step7. Config Modbus-Master
&nbsp; &nbsp; &nbsp; v: -1
 
&nbsp; &nbsp; &nbsp; asm: r &nbsp; &nbsp; &nbsp; # Access Right: r, w, rw
 
&nbsp; &nbsp; &nbsp; min: -10 &nbsp; &nbsp; &nbsp;# Minimum Value&nbsp;
 
&nbsp; &nbsp; &nbsp; max: 100 &nbsp; &nbsp; &nbsp;# Maximum Value
 
&nbsp; &nbsp; &nbsp; u: "celsius" &nbsp;# Unit
 
  
&nbsp; Humidity:
+
*Config Modbus-Master plugin as upper steps to complete the settings.
&nbsp; &nbsp; Params:
 
&nbsp; &nbsp; &nbsp; Address: 1
 
&nbsp; &nbsp; &nbsp; Length: 1 &nbsp;
 
&nbsp; &nbsp; &nbsp; DataType: int16&nbsp;
 
&nbsp; &nbsp; &nbsp; DataFormat: ABCD
 
  
&nbsp; &nbsp; Info:
+
&nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; v: -1
 
&nbsp; &nbsp; &nbsp; asm: r &nbsp; &nbsp; &nbsp; # Access Right: r, w, rw
 
&nbsp; &nbsp; &nbsp; min: 0 &nbsp; &nbsp; &nbsp; &nbsp;# Minimum Value&nbsp;
 
&nbsp; &nbsp; &nbsp; max: 100 &nbsp; &nbsp; &nbsp;# Maximum Value
 
&nbsp; &nbsp; &nbsp; u: "percent" &nbsp;# Unit
 
 
 
<span style="font-size:medium;">9. Restart Modbus Master services</span></pre>
 
 
 
 
 
 
 
*<span style="font-size:medium;">Open Windows Task Manager</span>
 
*<span style="font-size:medium;">Restart service: device-modbus-protocol</span>
 
*<span style="font-size:medium;">Restart service: device-modbus-master</span>
 
 
 
 
 
 
 
 
 
 
 
<span style="font-size:medium;">10. Verify sensor data at DeviceOn Monitor Sensor Data page</span>
 
 
 
[[File:Modbus-Slave Modsim32 07.png|border|800x400px|Modbus-Slave Modsim32 07.png]]
 
 
 
= Release =
 
 
 
<span style="font-size:larger;">This is an overview that displays Modbus Service&nbsp;versions and some stats and numbers for each release.</span>
 
 
 
{| border="1" cellspacing="1" cellpadding="1" style="width: 1203px;"
 
|-
 
| style="width: 47px; text-align: center;" | <span style="font-size:larger;">Index</span>
 
| style="width: 63px; text-align: center;" | <span style="font-size:larger;">Version</span>
 
| style="width: 85px; text-align: center;" | <span style="font-size:larger;">Date</span>
 
| style="width: 78px; text-align: center;" | <span style="font-size:larger;">Platform</span>
 
| style="width: 103px; text-align: center;" | <span style="font-size:larger;">OS</span>
 
| style="width: 433px; text-align: center;" | <span style="font-size:larger;">Release Note</span>
 
| style="width: 357px; text-align: center;" | <span style="font-size:larger;">Installer</span>
 
|-
 
| style="width: 47px; text-align: center;" | <span style="font-size:larger;">1</span>
 
| style="width: 63px; text-align: center;" | <span style="font-size:larger;">v3.0.1</span>
 
| style="width: 85px; text-align: center;" |
 
<font size="3">2020/01/21</font>
 
 
 
| style="width: 78px; text-align: center;" | <span style="font-size:larger;">x86_64 CPU</span><br/>
 
| style="width: 103px; text-align: center;" | <span style="font-size:larger;">Windows 10</span><br/>
 
| style="width: 433px;" |
 
*<span style="font-size:medium; text-align: left;">Support connection for multiple Modbus slave.</span>
 
*<span style="font-size:medium; text-align: left;">Support Modbus TCP and RTU in one configuration.</span>
 
*<span style="font-size:medium; text-align: left;">Support individual read&nbsp;interval by connection.</span>
 
*<span style="font-size:medium; text-align: left;">Support only get Modbus data.</span>
 
 
 
| style="width: 357px;" | <span style="font-size:larger;">[file://eossfs/ESS-Release/EdgeSense/Software/Modbus-Master device-modbus-master-3.0.1.exe]</span>
 
|-
 
| style="width: 47px; text-align: center;" | <span style="font-size:larger;">2</span>
 
| style="width: 63px; text-align: center;" | <span style="font-size:larger;">v3.0.1</span>
 
| style="width: 85px; text-align: center;" |
 
<font size="3">Coming soon</font>
 
 
 
| style="width: 78px; text-align: center;" | <span style="font-size:larger;">ARM CPU</span><br/>
 
| style="width: 103px; text-align: center;" | <span style="font-size:larger;">Debian</span><br/>
 
| style="width: 433px;" |
 
*<span style="font-size:medium; text-align: left;">Support connection for multiple Modbus slave.</span>
 
*<span style="font-size:medium; text-align: left;">Support Modbus TCP and RTU in one configuration.</span>
 
*<span style="font-size:medium; text-align: left;">Support individual read interval by connection.</span>
 
*<span style="font-size:medium; text-align: left;">Support only get Modbus data.</span>
 
 
 
| style="width: 357px;" | <span style="font-size:larger;">[file://eossfs/ESS-Release/EdgeSense/Software/Modbus-Master device-modbus-master-3.0.1-Debian_9.9-rk3399.run]</span>
 
|-
 
| style="width: 47px; text-align: center;" | <span style="font-size:larger;">3</span>
 
| style="width: 63px; text-align: center;" | <span style="font-size:larger;">v3.0.2</span>
 
| style="width: 85px; text-align: center;" |
 
<font size="3">2020/02/17</font>
 
 
 
| style="width: 78px; text-align: center;" | <span style="font-size:larger;">x86_64 CPU</span><br/>
 
| style="width: 103px; text-align: center;" | <span style="font-size:larger;">Windows 10</span><br/>
 
| style="width: 433px;" |
 
*<span style="font-size:medium; text-align: left;">Support network link lost-reconnect feature.</span>
 
*<span style="font-size:medium; text-align: left;">Support serial port link lost-reconnect feature.</span>
 
*<span style="font-size:medium; text-align: left;">Support modbus slave lost-reconnect feature.</span>
 
*<span style="font-size:medium; text-align: left;">Support resume from S3/S4 feature.</span>
 
 
 
| style="width: 357px;" | <span style="font-size:larger;">[file://eossfs/ESS-Release/EdgeSense/Software/Modbus-Master device-modbus-master-3.0.2.exe]</span>
 
|-
 
| style="width: 47px; text-align: center;" | <span style="font-size:larger;">4</span>
 
| style="width: 63px; text-align: center;" | <span style="font-size:larger;">v3.0.2</span>
 
| style="width: 85px; text-align: center;" |
 
<font size="3">2020/02/17</font>
 
 
 
| style="width: 78px; text-align: center;" | <span style="font-size:larger;">ARM CPU</span><br/>
 
| style="width: 103px; text-align: center;" | <span style="font-size:larger;">Debian</span><br/>
 
| style="width: 433px;" |
 
*<span style="font-size:medium; text-align: left;">Support network link lost-reconnect feature.</span>
 
*<span style="font-size:medium; text-align: left;">Support serial port link lost-reconnect feature.</span>
 
*<span style="font-size:medium; text-align: left;">Support modbus slave lost-reconnect feature.</span>
 
*<span style="font-size:medium; text-align: left;">Support resume from S3/S4 feature.</span>
 
 
 
| style="width: 357px;" | <span style="font-size:larger;">[file://eossfs/ESS-Release/EdgeSense/Software/Modbus-Master device-modbus-master-3.0.2-Debian_9.9-rk3399.run]</span>
 
|}
 
 
 
<span style="font-size:larger;">Above files are available at local server, please paste file's&nbsp;url in File Explorer&nbsp;to copy file. ([[EdgeSense_FAQ|How to access to EOSSFS file server]]&nbsp;)</span>
 

Latest revision as of 05:24, 8 August 2023

Introduction

Modbus enables communication among many devices connected to the same network, for example, a system that measures temperature and humidity and communicates the results to a computer. Modbus is often used to connect a supervisory computer with a remote terminal unit (RTU) in supervisory control and data acquisition (SCADA) systems.

Many of the data types are named from its use in driving relays: a single-bit physical output is called a coil, and a single-bit physical input is called a discrete input or a contact.

Modbus Service is a Windows/Linux system service for WISE Agent to read sensor data from Modbus device or write data into Modbus device. After sensor data are acquired, WISE Agent will upload the data to the WISE-PaaS Cloud.

 

 

Features

EdgeSense Modbus-Master aims to collect data from Modbus Slave.

Feature:

  • Support connection with multiple Modbus slave.
  • Support access both Modbus TCP and RTU in one service.
  • Support individual read interval by connection.
  • Configurable sensor alias.
  • Support byte swap.
  • Support Modbus Coil, Descrete input, Input register & Holding register data.
  • Support maximal 10 links, 5 devices for each link, and 10 sensors for each device.

How to

Login

Step 1. Launch a web browser (Google Chrome, Microsoft Edge ...) and open iEdge local web http://127.0.0.1:8080

Step 2. Login iEdge local web:

Account: root

Password: P@ssw0rd

Ros2-iedge-plugin-config-01.png

 

Configuration

How to config Model

Step 1. Go to "Plug-ins" / Plugin Config to select Modbus-Master Plug-in

Modbus config bQUoHri.png

Setp 2. From Modbus-Master Configuration, open Model Management tab, click "+" to add new Model.

modbus_config_qpMUDCj.png

Setp 3. Input Model name and Description for new Model.

modbus_config_XLSJYyn.png

Step 4. Click "+" to add Sensor - Input Sensor Name - Select Address Space, Access mode, Data Type, Data Format and input Address, Data Length, Minimal/Maximal Value for new sensor's attributes. - Input below timing attributes: Period (second) . Delay (ms, range: 0~1000ms)  and Retry (range: 0~5)

  • Click "Save" button to save the new sensor.

modbus_config_qsox6hM.png

Step 5. Repeat Step 4 to add another sensor.

modbus_config_DPdBICk.png

Step 6. Click "Save" button to save the new sensors.

modbus_config_oXbCCsc.png

Step 5. Click "Save" button to save the new model.

modbus_config_kXoLU5M.png


 

How to config Link

Step 1. From Modbus-Master Configuration, open Link Management tab, click "+" to add a new Link.

modbus_config_Sz3fL8f.png

Step 2. Input Link Name, Link Type for the new Link.

for Modbus-TCP link, set parameters: - IP - Port

for Modbus-RTU link, set parameters: - COM port - Baudrate - Data bits - Stop bits - Parity mode

Click "+" icon to add a new device.

modbus_config_Dvkgjc2.png

Step 3. Input Device Name, Station Id and select Model Profile for the new device. Model Profile should be added by upper Model Management steps.

Click "Save" button to save the new device.

modbus_config_CkZoH3H.png

Step 4. Click "Save" button to save the new link.

modbus_config_jGIBhIa.png

Step 5. Click "Apply" button to apply the new link.

modbus_config_YudsLa4.png

Apply new settings Successfully

modbus_config_7rvJoo5.png

Step 6. Go to Plugin List and select Modbus-Master plugin, the new sensor will be shown in this page

modbus_config_Sys1ZZH.png


 

How to import plugin settings

Step 1. Click Import button from Modbus-Master Configuration

modbus_config_T6zjSoj.png

Step 2. Select target file you like to import

modbus_config_ZYeZTw5.png

Import successful

modbus_config_k3N8BQO.png

Step 3. Click APPLY to use imported configuration

modbus_config_JTgo9CB.png

Apply new settings Successfully

modbus_config_WZGsmXR.png


 

How to export plugin settings

Step 1. Click Export button from Modbus-Master Configuration

modbus_config_tH3zFyI.png

Step 2. Explore the exported file

modbus_config_IU83MxX.png


 

Use case

Connect and upload data for Modbus Temperature and Humidity sensor

Use Modsim32 to simulate a modbus TCP device with a temperature sensor and a humidity sensor, config Modbus-Master to read these two sensors and upload iEdge cloud.

 

 

Config Modbus simulator

Step1. Open Modbus Simulator: Launch ModSim32 and click "New" in program menu to create a new simulator page.

Modbus config GskBtAL.png

Step2. Set parameter as below:

  • Device Id: 1
  • Address: 0001
  • Length: 2
  • Modbus Point Type: INPUT REGISTER

Modbus config wVMbXWs.png

Step3. Enable Auto Simulation:

  • Double click on the sensor address 30001
  • Click "Auto Simulation"

Modbus config PaxcEE3.png

Step4. Set simulation parameters:

  • Check "Enable"
  • Simulation Type: Increment
  • Change Interval (secs): 5
  • Step VAlue: 1
  • Low Limit: 10
  • High Limit: 20

Modbus config maLqhtS.png

Step5. Do the same step for the address 30002 and set simulation parameter as below:

  • Simulation Type: Decrement
  • Change Interval (secs): 5
  • Step VAlue: 1
  • Low Limit: 60
  • High Limit: 80

Modbus config K98RWgN.png

Step6. Set Connection to Modbus/TCP Svr:

  • Click Connection
  • Click Modbus/TCP Svr to simulate Modbus TCP connection

Modbus config ZhpooZd.png

Step7. Config Modbus-Master

  • Config Modbus-Master plugin as upper steps to complete the settings.