User Tools

Site Tools


registers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
registers [2021/07/22 15:04] – [Bulk operations] emozolyakregisters [2023/12/04 14:12] (current) emozolyak
Line 1: Line 1:
 +{{ network:menu-icon-registers.png?nolink&40|}}
 ====== Working with registers ====== ====== Working with registers ======
 ===== General information ===== ===== General information =====
Line 4: Line 5:
  
 Registers in the WEBHMI project correspond to similar concepts in automation systems - 'tag', 'variable' and indicate what data from the respective devices we are going to work on (read / write), in addition, they have additional attributes controlling how they will be displayed and processed by the system settings of these registers. The registers can be of two types - Registers in the WEBHMI project correspond to similar concepts in automation systems - 'tag', 'variable' and indicate what data from the respective devices we are going to work on (read / write), in addition, they have additional attributes controlling how they will be displayed and processed by the system settings of these registers. The registers can be of two types -
-  ***internal** (from internal WebHMI memory) +  ***internal** (from internal WebHMI memory, see the [[webhmi_internal_registers|options]]
   ***external** (containing data from connected devices).    ***external** (containing data from connected devices). 
  
 Register settings in WebHMI arranged in 6 tabs, which will be explained later in details: Register settings in WebHMI arranged in 6 tabs, which will be explained later in details:
  
-{{ ::reg_settings_tabs.png?direct&600 |}}+{{ network:reg_settings_tabs.png?direct&600 |}}
  
   ***Basic info** tab - specifies key addtibutes like name of the register, its connection, memory address etc.    ***Basic info** tab - specifies key addtibutes like name of the register, its connection, memory address etc. 
Line 23: Line 24:
 To create a register, go to the //Setup//-> //Registers// menu and click the Add New Register button (or '+' sign in the connection name end). To create a register, go to the //Setup//-> //Registers// menu and click the Add New Register button (or '+' sign in the connection name end).
  
-{{ ::add_register_methods.png?direct&600 |}}+{{ network:add_register_methods.png?direct&600 |}}
  
 ===== Basic tab ===== ===== Basic tab =====
  
-{{ ::basic_tab_overview.png?direct&600 |}}+{{ network:basic_tab_overview.png?direct&600 |}}
  
   ***Connection** the registers belongs to    ***Connection** the registers belongs to 
Line 33: Line 34:
   ***Address** The address in the address space of this connection. While entering value, the address validation is being made. Address assignment format depends upon protocol type and usually comprised of a 'letter + digit' sequence. The letter indicates memory address space and the digit is an offset in this memory. See [[supported_protocols]].   ***Address** The address in the address space of this connection. While entering value, the address validation is being made. Address assignment format depends upon protocol type and usually comprised of a 'letter + digit' sequence. The letter indicates memory address space and the digit is an offset in this memory. See [[supported_protocols]].
   ***Description** - description field for the register   ***Description** - description field for the register
 +<wrap em>As of 4.1 fw version, the description is also shown right on the register tree when hovering mouse pointer over the registers' title </wrap>
 +{{ network:title_hint.png?direct&600 |}}
 +
   ***Category** - the name of the group to which the register will be included.   ***Category** - the name of the group to which the register will be included.
 +
 +<wrap em>As of 4.1 fw version, there is inline category renaming option</wrap>
 +
 +The ability to set categories for objects has existed in WebHMI for a long time and is a convenient tool for structuring a project. As a rule, if you enter the correct name for a category right away, it remains unchanged. However, it turned out that renaming categories is not a very simple matter, especially when you need to do a lot of renaming – for this you had to create another category and transfer the necessary objects to it. (in this case, the project was also reinitialized). Now this can be done by simply clicking on the edit icon in the category name.
 +
 +{{ network:rename_cat_inline.gif?direct |}}
 +
   ***Priority** - polling priority. This option is used in conjunction with the Strict scan function. Registers with high priority will be polled first, registers with priority normal in the second turn. If part of the registers with normal priority does not fit during the scan, this part is polled in the next scan, etc. Registers from internal connections are polled last (after registers on external connections) regardless of this setting, since they are read quickly on the local bus of the WebHMI device. If you do not need read current register in normal operation mode you can select "Read on demand" priority. In this case register will be read only when operator will request it manually.   ***Priority** - polling priority. This option is used in conjunction with the Strict scan function. Registers with high priority will be polled first, registers with priority normal in the second turn. If part of the registers with normal priority does not fit during the scan, this part is polled in the next scan, etc. Registers from internal connections are polled last (after registers on external connections) regardless of this setting, since they are read quickly on the local bus of the WebHMI device. If you do not need read current register in normal operation mode you can select "Read on demand" priority. In this case register will be read only when operator will request it manually.
   ***Script alias** - This name can be used in lua scripts.   ***Script alias** - This name can be used in lua scripts.
Line 39: Line 50:
   ***Communication interval override** - Override the default polling time for this register (Setup / Settings menu). Adjustable in steps of 500 ms. Up to 1 hour.   ***Communication interval override** - Override the default polling time for this register (Setup / Settings menu). Adjustable in steps of 500 ms. Up to 1 hour.
   ***Send real time data to WebHMI cloud** checknox - Specifies whether to send data to the cloud-based level2 system.   ***Send real time data to WebHMI cloud** checknox - Specifies whether to send data to the cloud-based level2 system.
 +
 +<wrap em>Starting from 4.1 fw there are extra functions:</wrap>
 +=== Read/Write mode settings ===
 +
 +There is now a convenient function for assigning register access mode – “read / write”, “read-only”, “write-only”. There are devices for some registers of which only writing is possible, for example, the control word of some frequency converters, refrigeration controllers, etc. For these devices a custom protocol.
 +Read-only mode is also useful for distributed systems with shared data. For example, this situation can arise when using the MQTT protocol, when the user can inadvertently override the data of another device.
 +{{ network:rw_mode_.png?direct&600 |}}
 +
 +=== Save and Apply ===
 +
 +When editing a project, it is often necessary to make several edits in different places in the project. Before, each small change was accompanied by re-initialization of the system, which in turn caused a heavy load on the processor in large projects. Now, there is a tool that allows you to make many edits and then apply them in one go, which ultimately speeds up the time to complete these operations.
 +
 +{{ network:save_apply.png?direct&400 |}}
  
  
Line 47: Line 71:
 Value tab of the register edit page is used to set the type and format of register data. These settings affect how the read binary data from the registers of the connected device are interpreted for display or recording.  Value tab of the register edit page is used to set the type and format of register data. These settings affect how the read binary data from the registers of the connected device are interpreted for display or recording. 
  
-{{ ::value_tab_new.png?direct&600 |}}+{{ network:value_tab_new.png?direct&600 |}}
  
 ==== Data type ==== ==== Data type ====
Line 55: Line 79:
   *Double word - reading in double words. For double words there is an option to change normal word order to reverse:   *Double word - reading in double words. For double words there is an option to change normal word order to reverse:
  
-{{::revers_order_for_dw.png?direct&500|}}+{{network:revers_order_for_dw.png?direct&500|}}
  
   *Unix time - format used in PHP, is set as Y-m-d H:i:s, e.g., to display the date as day - month - year (DD-MM-YYYY), you set format string like this d-m-Y.     *Unix time - format used in PHP, is set as Y-m-d H:i:s, e.g., to display the date as day - month - year (DD-MM-YYYY), you set format string like this d-m-Y.  
Line 75: Line 99:
 When setting the bitmask to the register, the value from the register will be compared with the sum of corresponding weights 2^p (p - bit position, starting from 0) of the selected bits.  When setting the bitmask to the register, the value from the register will be compared with the sum of corresponding weights 2^p (p - bit position, starting from 0) of the selected bits. 
  
-{{::bit_mask_1.png?direct&600|}}+{{network:bit_mask_1.png?direct&600|}}
  
 In the above picture 2 highest bits are selected, so when there is a value greater or equal to 128 (2^7) + 64 (2^6) = 192 in the source register, WebHMI's copy of this register will have 3. Usually this feature is used to check only one bit, so WebHMI register has either 0 or 1 value clearly indicating if certain bit in the source register is reset or set.  In the above picture 2 highest bits are selected, so when there is a value greater or equal to 128 (2^7) + 64 (2^6) = 192 in the source register, WebHMI's copy of this register will have 3. Usually this feature is used to check only one bit, so WebHMI register has either 0 or 1 value clearly indicating if certain bit in the source register is reset or set. 
Line 83: Line 107:
 ==== Delta format ==== ==== Delta format ====
 Allows you to convert register data into increment or derivative.  Allows you to convert register data into increment or derivative. 
-{{::delta_format.png?direct&600|}}+{{network:delta_format.png?direct&600|}}
  
 In the first case (delta value), the register will be equal to the difference of the current subtracted value and the previous one. In the second (Delta value / Delta time) - delta value, divided by the time between polls, i.e. Derivative with respect to time. In the first case (delta value), the register will be equal to the difference of the current subtracted value and the previous one. In the second (Delta value / Delta time) - delta value, divided by the time between polls, i.e. Derivative with respect to time.
Line 91: Line 115:
  
 ==== Dictionary ==== ==== Dictionary ====
 +{{ network:menu-icon-dictionaries.png?nolink&40|}}
 +
 Contains the enumeration of pairs 'value, text word(s)', when you select a dictionary for the register, the values ​​read from the device are compared with the data of the dictionary and, if the word matches, the word corresponding to the value will be found. If there is a mismatch, the register will contain the value itself. The dictionaries are created and edited in the menu Setup -> Dictionary. Contains the enumeration of pairs 'value, text word(s)', when you select a dictionary for the register, the values ​​read from the device are compared with the data of the dictionary and, if the word matches, the word corresponding to the value will be found. If there is a mismatch, the register will contain the value itself. The dictionaries are created and edited in the menu Setup -> Dictionary.
  
-{{ :dict_menu_entry_fw40.png?direct&600 |}}+{{ network:dict_menu_entry_fw40.png?direct&600 |}}
  
-{{ ::dict_example.png?direct&600 |}}+{{ network:dict_example.png?direct&600 |}}
  
 <WRAP center round info 60%> <WRAP center round info 60%>
Line 122: Line 148:
 Simplest way is to set up register write at regular intervals of time and view them on graphs. Then it is enough to enable this option, select color and choose time intervals: Simplest way is to set up register write at regular intervals of time and view them on graphs. Then it is enough to enable this option, select color and choose time intervals:
  
-{{ ::setup_only_graph_data.png?direct&600 |}}+{{ network:setup_only_graph_data.png?direct&600 |}}
  
 This method suitable for slowly changing parameters like temperature, pressure, humidity etc. which are the most typical parameters in a system monitored with WebHMI.  This method suitable for slowly changing parameters like temperature, pressure, humidity etc. which are the most typical parameters in a system monitored with WebHMI. 
Line 131: Line 157:
   *it can be a source of data for graphs   *it can be a source of data for graphs
   *has special analytic tool to view when and how register changed. After selecting the option 'Enable Log', you can track register changes in the menu item Analytics / Registers Log.    *has special analytic tool to view when and how register changed. After selecting the option 'Enable Log', you can track register changes in the menu item Analytics / Registers Log. 
-{{ ::reg_value_link.png?direct&200 |}}+{{ network:reg_value_link.png?direct&200 |}}
  
 == Adjusting logging intensity == == Adjusting logging intensity ==
  
-{{ ::log_fields2.png?direct |}}+{{ network:log_fields2.png?direct |}}
   ***Change tolerance** -'Tolerance' (absolute value or %) is the difference between new and previous register value, , if exceeded, its value will be written to the log. If the field is left blank, the record will occur upon any change. The recording frequency will be determined by the settings of the following items.   ***Change tolerance** -'Tolerance' (absolute value or %) is the difference between new and previous register value, , if exceeded, its value will be written to the log. If the field is left blank, the record will occur upon any change. The recording frequency will be determined by the settings of the following items.
   ***Min log interval** - serves as a filter for data, limiting recording frequency to this interval, so that time between two records will not exceed this interval   ***Min log interval** - serves as a filter for data, limiting recording frequency to this interval, so that time between two records will not exceed this interval
Line 148: Line 174:
  
 **Send log data to Level2 system**  - allows sending log and graph data to level2 **Send log data to Level2 system**  - allows sending log and graph data to level2
 +
 +=== Register's Log analytics tool ===
 +After you set up log options for the register, a special tool will be available. Plese refer to the [[registers_log?s[]=log|following]] article.
 +
 +
 +
  
 ===== Resources tab ===== ===== Resources tab =====
Line 153: Line 185:
 ---- ----
  
-Selection allows to send register value as a resource meter. There are special tools in WebHMI & [[level2:setup_resource_meters_and_resources_consumption_analysis  | Level2]] cloud system to generatate resource consumption reports. +Selection allows to send register value as a resource meter. There are special tools in [[resource_local_tool |WebHMI]] & [[level2:setup_resource_meters_and_resources_consumption_analysis  | Level2]] cloud system to generatate resource consumption reports. 
  
-{{ ::resource_property.png?nolink |}}+{{ network:resource_property.png?nolink |}}
  
 ===== States tab ===== ===== States tab =====
Line 178: Line 210:
 Here an example of static settings, min. and max. are constants: Here an example of static settings, min. and max. are constants:
  
-{{ ::dis_state_example_.png?direct&600 |}}+{{ network:dis_state_example_.png?direct&600 |}}
  
 With dynamic state settings end points of range are floating (//Delta// values are constants which are added or subtracted to dynamic margins): With dynamic state settings end points of range are floating (//Delta// values are constants which are added or subtracted to dynamic margins):
  
-{{ ::dyn_alert_state_.png?direct&600 |}}+{{ network:dyn_alert_state_.png?direct&600 |}}
  
 All states have identical settings. All states have identical settings.
Line 194: Line 226:
 To overview places where the register is used.  To overview places where the register is used. 
  
-{{ ::x-ref.png?direct&600 |}}+{{ network:x-ref.png?direct&600 |}}
  
 ====== Managing register list ====== ====== Managing register list ======
Line 201: Line 233:
 The list of registers is multi-level, when you minimize the list with the **>** signs, only the list of connections  and categories is displayed.  The list of registers is multi-level, when you minimize the list with the **>** signs, only the list of connections  and categories is displayed. 
  
-{{ list_overview2.png?direct&800 }}+{{ network:list_overview2.png?direct&800 }}
  
 Format of the register list: Format of the register list:
Line 208: Line 240:
   ***Title** - Name of the connection / register or the category.    ***Title** - Name of the connection / register or the category. 
  
-{{ ::category_example.png?direct&500 |}}+{{ network:category_example.png?direct&500 |}}
  
   ***Interval** - polling interval for the register   ***Interval** - polling interval for the register
Line 229: Line 261:
 When the cursor hovers over the connection name, a checkbox appears to the right of it for selecting or deselecting registers in this connection. Only the visible register will be selected, which are not folded in the categories. To select all register you have to expand all categories inside the connection.  When the cursor hovers over the connection name, a checkbox appears to the right of it for selecting or deselecting registers in this connection. Only the visible register will be selected, which are not folded in the categories. To select all register you have to expand all categories inside the connection. 
  
-{{ ::selection_options_.png?direct&600 |}}+{{ network:selection_options_.png?direct&600 |}}
  
 There are some group operations inside **Tools** sub-menu for selected register - see below.  There are some group operations inside **Tools** sub-menu for selected register - see below. 
  
-{{ ::tools_drop_down_.png?direct&600 |}}+{{ network:tools_drop_down_.png?direct&600 |}}
   ***Import registers** - import registers from an external *.csv file    ***Import registers** - import registers from an external *.csv file 
   ***Export registers** - export selected register in a *.csv file to have a template or make some bulk modification using convenient spreadsheet editor   ***Export registers** - export selected register in a *.csv file to have a template or make some bulk modification using convenient spreadsheet editor
Line 245: Line 277:
 **Import registers** makes reverse to export operation with csv - file containing prepared list of register. **Import registers** makes reverse to export operation with csv - file containing prepared list of register.
  
-{{ ::import_register_dialog_.png?direct&600 |}}+{{ network:import_register_dialog_.png?direct&600 |}}
  
   ***Move to connection** - Allows you to use the connection ID (ID) from the csv file OR put registers in an existing connection.   ***Move to connection** - Allows you to use the connection ID (ID) from the csv file OR put registers in an existing connection.
-{{  ::move_to_conn_list.png?direct |}}+{{  network:move_to_conn_list.png?direct |}}
   ***Overwrite existent registers** - If the option is selected, if there are already registers with the given ID when importing the list in the project, they will be overwritten, otherwise registers with matching IDs from the list will receive new IDs.   ***Overwrite existent registers** - If the option is selected, if there are already registers with the given ID when importing the list in the project, they will be overwritten, otherwise registers with matching IDs from the list will receive new IDs.
  
Line 255: Line 287:
 These operations are also made on selections sets. These operations are also made on selections sets.
  
-{{ ::bulk_only_selected.png?direct&200 |}}+{{ network:bulk_only_selected.png?direct&200 |}} 
 + 
 +=== Edit === 
 +With this you can edit same properties over the register selection set.  
 + 
 +{{ network:bulk_edit_basic.png?direct&600 |}} 
 + 
 +=== Disable, Enable, Delete === 
 +Makes respective action over the selected set of registers. 
 + 
 +=== Change connection=== 
 + 
 +Move selected register to another connection or category.
  
-  ***Edit** - edits same properties over the register selection set +{{ network:change_category_.png?direct&600 |}}
-  ***Disable** - disable polling of the selected register +
-  ***Enable** - enable polling of the selected register +
-  ***Delete** - delete selected register +
-  ***Change connection** - move selected register to another connection or category+
  
  
Line 269: Line 309:
 The order of reading connections can differ from the order in which they are shown in Connection / Register list. Some serial devices may not "like" co-existing with certain devices in adjacent polls. With this tool you can sort the devices in the polling list. The order of reading connections can differ from the order in which they are shown in Connection / Register list. Some serial devices may not "like" co-existing with certain devices in adjacent polls. With this tool you can sort the devices in the polling list.
  
-{{ ::setup_plc_order.png?direct&600 |}}+{{ network:setup_plc_order.png?direct&600 |}}
  
 The communication will work from the list's top to the bottom. The communication will work from the list's top to the bottom.
Line 276: Line 316:
 With this tool you can make a overview of current memory map of the internal WebHMI registers.  With this tool you can make a overview of current memory map of the internal WebHMI registers. 
  
-{{ register_map.png?direct&600 }}+{{ network:register_map.png?direct&600 }}
  
 Sometimes after intensive work with bulk import and export operation due to errors made during edition some register might be placed into wrong addresses and cause overlapping. (shown red in the above picture) Sometimes after intensive work with bulk import and export operation due to errors made during edition some register might be placed into wrong addresses and cause overlapping. (shown red in the above picture)
registers.1626966266.txt.gz · Last modified: 2021/07/22 15:04 by emozolyak

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki