История
29 декабря 2023
Нет описания правки
−6
Нет описания правки
−75
Новая страница: «==Useful links== * [https://habr.com/p/772308/ Upgrading Modbus: arbitration, bus scanning, events] - an article with details on implementing the extension * [https://github.com/wirenboard/wb-modbus-ext-scanner/blob/main/protocol.md Extension description on GitHub] * Modbus protocol description * [https://github.com/wirenboard/wb-modbus-ext-scanner Scanning utility repository]»
−219
Новая страница: «{| border="1" class="wikitable" ! Device || Firmware version where scanning was introduced |- | WB-MRx, WB-MWAC | 1.19.0 |- | WB-MDM3 | 2.6.0 |- | WB-LED, WB-MRGBW-D | 3.2.0 |- | WB-MSx, WB-MSWx, WB-MIR, WB-M1W2 | 4.23.0 |- | WB-MAI11 | not supported |- | WB-MAI6 | 2.0.0 |- | WB-MAO4 | 2.2.0 |- | WB-MAPx | 2.4.0 |- | WB-MIO | 1.6.0 |- | WB-REF-U | 1.4.0 |- | WB-REF-DF | 1.1.0 |- |}»
−125
Новая страница: «=== Support for scanning in firmware ===»
−88
Новая страница: «# Install the utility using the command: <code> #:<syntaxhighlight lang="bash"> apt update && apt install wb-modbus-ext-scanner </syntaxhighlight> </code> # Stop the wb-mqtt-serial driver using the command: <code> #:<syntaxhighlight lang="bash"> systemctl stop wb-mqtt-serial </syntaxhighlight> </code> # Execute the command: <code> #:<syntaxhighlight lang="bash"> wb-modbus-scanner -d /dev/ttyRS485-1 -b 115200 -s 4267937719 -i 3 </syntaxhighlight> </code> # Wh...»
−122
Новая страница: «To change the device's address, connect to the controller via SSH.»
−113
Новая страница: «===Changing Modbus Device Addresses=== For devices that support Fast Modbus, you can set new addresses by accessing the device using its unique serial number. This is convenient when multiple devices with the same address are detected on the bus. Changing addresses is done using the ''wb-modbus-scanner'' utility and is currently not supported through the web interface. Detailed commands and the reference implementation of the utility are available in the [ht...»
−389
Новая страница: «When the scanning function is launched in the controller's web interface, it first performs a quick scan, followed by a slow scan. This can be observed in the scanning status.»
−187
Новая страница: «Current scanning capabilities in the web interface: *displaying all Wiren Board devices connected to the controller, *detecting devices with identical addresses on the same bus, *detecting devices with different communication parameters on the same bus.»
−262
Новая страница: «The scanning function is available in the controller's web interface under the section '''Settings → Scanning'''.»
−124
Новая страница: «Quick scanning is performed much faster and allows to detect devices supporting Fast Modbus almost instantly. In quick scanning mode, the master sends a broadcast request to the bus, and devices respond with data about themselves one by one. The order is determined by the arbitration.»
−337
Новая страница: «In slow scanning, a script is used that iterates through all possible addresses on the bus and waits for a response from them within a certain time frame. The process takes several minutes and depends on the communication settings of the devices: speed, stop bits, etc. The slow scanning mode is preserved to support devices with older firmware versions.»
−337
Новая страница: «Therefore, with the Fast Modbus extension, scanning works in two modes: fast and slow.»
−140
Новая страница: «==Scanning devices on the bus== 300px|thumb|right|Scanning devices on the ''Settings → Scanning'' tab Usually, an installation includes several slave devices on one RS-485 bus inside a panel or in the field. Each device has an address that the user can change. During installation, the addresses of slave devices are written down from the device casing and manually entered into the master configuration. This is not very convenient....»
−580
Новая страница: «===Support for events in firmware=== The table below shows the devices and firmware versions that introduced support for events. {| border="1" class="wikitable" ! Device || Firmware version with event support |- | WB-MRx, WB-MWAC | 1.20.0 |- | WB-MDM3 | 2.7.0 (in testing) |- | WB-LED, WB-MRGBW-D | 3.4.0 |- | WB-MSWx | 4.31.0 (in testing) |- | WB-M1W2 | 4.32.0 (in testing) |- |}»
−212
Новая страница: «Please note that for event generating registers, the time specified in the polling interval field does not matter. Event queries will be executed every 50 ms. However, the actual response time to events will depend on the number of devices on the bus and events, as well as the presence of errors. Nevertheless, this time will be significantly shorter than when using standard commands.»
−315
Новая страница: «It is possible to set the priority in the web interface of the controller, in the settings of the serial device driver. If any value other than "In order" is specified for the polling period parameter, the register will have a high priority.»
−231
Новая страница: «However, it is possible to assign a high priority to an individual device or multiple devices. In this case, devices with high priority will be polled ahead of others even if their slave ID is higher. If multiple devices have a high priority, arbitration will first be conducted among them, and then among devices with low priority.»
−369
Новая страница: «===Event polling priority=== 500px|thumb|right|Setting event polling priority in the web interface of the Wiren Board controller Only one device can respond to an event request at a time. Therefore, if multiple devices generate events, the one with the lower slave ID will be the first to respond to the request. Devices perform arbitration to determine this, which is described in detail on [https://github.com/wirenboard/wb-mod...»
−342
Новая страница: «In templates for devices that support fast Modbus, event handling is enabled for all registers where event generation makes sense. In some cases, it may be necessary to disable events, for example, if the use of non-standard protocol functions is prohibited by the company's security policy. There are currently no specific tools for working with events in the controller's web interface. To disable events, you can do the following: #In the device template, cha...»
−719
Новая страница: «===How to disable events?===»
−75
Новая страница: «If a device on the bus does not support the extension, it will still function and respond to standard queries. Similarly, if a device with Fast Modbus is polled by a master that is unaware of the extension, it will be polled using standard read and write functions.»
−493
Новая страница: «If the register value changed multiple times between events, for example, if the click counter increased by several units, only one event will be generated, and the latest actual value of the counter will be passed during the poll.»
−280
Новая страница: «Events are transmitted in a list. If there have been multiple events in the device since the last query, they will be delivered in a single response during the next request. The packet size is limited to 256 bytes. If certain events could not fit into the transmission, they will be delivered in the next packet.»
−268
Новая страница: «'''The event polling will only work if there are no devices on the network with the same slave ID.''' This is due to the fact that the arbitration of devices during event polling is done based on its Modbus address, not the device's serial number like for other Quick Modbus functions.»
−231
Новая страница: «The master receives a response from the device and sends a confirmation that the message has been received. Only after that, the device will reset the occurred event. If there is no confirmation, the device will send the same response again during the next request.»
−229
Новая страница: «===How does it work?=== 500px|thumb|right|Polling of registers in Fast Modbus and standard protocol 500px|thumb|right|Distribution of event polling time Every 50 ms, the master sends a broadcast request on the bus, which is received by all devices on the bus. If a device generates an event, it sends a response containing the event identifier, its type, and additional data. If there are multiple d...»
−423
Новая страница: «#When changing the value of the register that supports events. #When rebooting the device. This is the only event that occurs immediately after device startup.»
−200
Новая страница: «Events occur in two cases:»
−91
Новая страница: «Not all registers generate events. Registers that support events can be distinguished by the ⚡ symbol in the tables of Modbus device registers.»
−155
Новая страница: «==Bus events== Events are data packets in response to broadcast requests from the master, and are generated when the value of the modbas register changes in the device.»
−245
Новая страница: «Article with technical details: [https://habr.com/ru/companies/wirenboard/articles/772308/ Boosting Modbus: arbitration, bus scanning, events].»
−141
Новая страница: «Below are described the new features of the Fast Modbus extension: '''bus events''' and '''fast scanning''' of devices. All information applies only to Wiren Board devices.»
−178
Новая страница: «Fast Modbus is available in the current controller software release and in Wiren Board devices with the latest firmware.»
−113
Новая страница: «Broadcast commands are a reserved function of Modbus and do not violate compatibility with the standard protocol. Devices that do not support Fast Modbus function without any issues.»
−218
Новая страница: «The extension uses broadcast commands, which allow to avoid polling each register one by one.»
−191
Новая страница: «{{DISPLAYTITLE: Fast Modbus ⚡}} ===General information=== We produce devices that operate on the standard Modbus RTU protocol. The protocol is old and reliable, but its operation is based on sequentially polling all the registers on the bus. Unfortunately, this limits the polling speed when there are a large number of devices. We have decided to address this limitation and have released our own protocol extension called "Fast Modbus".»
+19 977