User Tools

Site Tools


multiplexing_connections_technique

Reading selected device on user demand


In a very large systems, there are sometimes hundreds of devices (usually identical), with hundreds of even thousands of registers in each of them. If all these parameters were declared in a WebHMI register list, this would heavily load the system, increase scan time, increase processing time etc.

In fact, each device has only few parameters to monitor - regarding object being monitored itself, while the rest (and most) are just settings like delays, hysteresys, scaling coefficients, sensors types and so on, being rarely accessed.

There are tools right in the register list, to disable/enable any connection and set communication address, so it is possible to have only one copy of the duplicated device full memory map and acitvate any device on demand. But this applies only to cases when the developer / operator / service engineer are the same person.

Usually the developer has to provide a convinient device setup tool for end user (operator or service staff).

This task can be easily built with WebHMI tools - dashboards and scripts. The idea is illustrated in the below figure:

Each device (temperature controller) has two main parameters: process value and setpoint, that's enough for process control. There is also a bunch of “unwanted for constant scan” setting registers 1..100. We want to access “unwanted” registers on-demand, not interfering main scan where more importand data is placed.

  • Dashboard has a listbox control (recipe select control) to select devices
  • Listbox is linked with script(s), which does the following:
    • enables connection
    • sets respective network address for the connection using SetConnectionAddress function
    • switches visibility bit to temporarily hide control box - this is to avoid conflict in a multi-user system. After timer-out the connection is disabled again, the timer restarts if user activity detected (modifying values )
multiplexing_connections_technique.txt · Last modified: 2023/02/22 13:15 by emozolyak

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki