Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table Table of Contents

Table of Contents
excludeTable of Contents

...

AttributesFunction
Object TypeGeneric-Registers
Parent(s)System → Clients → Automated_Processing → Processes
Instance0


NOTE: Every row in the Process table points to a Report definition that creates an output Report file. Therefore, the Reports section and at least one Report definition must be defined before the Data Process Table can be configured.

Data Process TableValues
ChannelMaster Channel used for process logic and obtaining RTDB data.
RTU

Field Unit address used for process logic and obtaining RTDB data.

Type

For the Generic-Registers process, the options include:

  • Generic Data Block – generic process for creating Report out of RTDB or file data.
  • DISABLE THIS ROW – use this to temporarily disable one or more process rows.
CommStatReg

RTDB register address containing the first of 5 Field Unit communication status registers (register should contain 7=good, 0=bad comms). If the communication status is checked and found to be in a failed state, the processing on this row will be skipped.

Following the convention of the Field Unit's Comm Status Holdreg, use a 40,xxx register to point to the communication status register in the System Status RTU, or use a 30,xxx register to point to the communication status register in the Field Unit's own RTDB.

Set CommStatReg to 0 to check protocol status of the Master Channel's protocol driver instead of a Comm Status Holdreg register.

Set CommStatReg to -1 to ignore the communication status. Process logic for this row will occur regardless of comms status.

ReportSelect one Report definition to define the structure of the output data report produced by this process row.
DataRegs 

If this row uses a Process-RTDB-Report or Process-PBuf-Report type:

If DataRegs is non-zero, that RTDB register in Channel/RTU is used as the "base register" for Report generation. The Report defines offsets from DataRegs.

This option may be used when more than one block of similar data is stored in the RTDB; thus, the same Report can be reused by setting DataRegs to the starting register of each block of registers. (For example: Field Units 1 and 2 each have analogous blocks of data at 40001-40020 and 40101-40120. Four rows could be defined in Generic Registers with different RTU address (1 and 2) and DataRegs column (starting address 40001 and 40101), and Report defined with data elements at Offset 0 through 19; the same Report would be called four different times using data from different units and different blocks of data).

If DataRegs is zero, the Report must be defined using actual register addresses in the RTDB.

This option might be used, for example, if a set of numbered addresses with similar data is used in multiple Channel/RTU/RTDB. The registers do not have to be in a contiguous block of addresses. (For example: Field Units 1 through 10 each have an analogous data at 10001-5 and 40001-40020. Ten rows could be defined in Generic Registers with different RTU addresses, DataRegs set to 0, and the Report defined with data elements at fixed register locations 10001-10005 and 40001-40020; the same Report would be called ten different times using data from different units).

If this row uses a Process-FILE-Report type:

DataRegs should be the RTDB register of a STRING type value, where the Tag Name of the register must be defined as the name of the text file containing data to process. The directory "/tmp/director/" is added to the beginning of the Tag Name, plus a suffix "_CC_RRRRR" is automatically appended to the Tag Name (where CC is the Channel and RRRRR is RTU/Field Unit address configured on this row, each with leading zeros as needed). The contents of the specified DataRegs RTDB register is unused.

For instance, assume there is a text file containing ASCII data, stored with the filename of  /tmp/director/MyData_01_0005. For this row, configure Channel=1 and RTU=5. If DataRegs is configured as 48001, then the Channel 1, unit 5, Tag Names object should have register 48001 defined with a Tag Name of "MyData". The above filename will be opened and used to generate the output Report.

TrigMode 

The TrigMode option selects a method for triggering the Report generation. See below for more information on the TrigMode options.

For instance, the Report generation logic could be triggered based on timing (day, minute, or hour), on a register value matching a certain condition, or any change in the value of any register in a block of registers.

TrigReg RTDB address in Channel/RTU containing some value to trigger on. See below for a discussion on the TrigMode options.
TrigValue Constant value to use for trigger comparison, or RTDB register containing a value for "Compare Register" TrigMode. See below for a discussion on the TrigMode options.
TrigAdjust 

If a Report generation logic is "triggered," the trigger value in the TrigReg can be modified based on the TrigAdjust option (e.g., to prevent the Report from being immediately triggered again). TrigAdjust options are:

  • None - no modification to TrigReg after Report generation.
  • REMOTE INCREMENT - Increment the trigger value and write it to remote Channel/RTU/TrigReg register. Set TrigWrap and Parm1 to handle roll-over.
  • REMOTE DECREMENT - Decrement the trigger value and write it to remote Channel/RTU/TrigReg register. Once the value decrements to zero, it will not be decremented further.
  • REMOTE ZERO - Set the trigger value to zero and write it to remote Channel/RTU/TrigReg register.
  • RTDB INCREMENT - Increment the trigger value and set the Channel/RTU/TrigReg RTDB register. Set TrigWrap and Parm1 to handle roll-over.
  • RTDB DECREMENT - Decrement the trigger value and set the Channel/RTU/TrigReg RTDB register. Once the value decrements to zero, it will not be decremented further.
  • RTDB ZERO - Set the trigger value to zero and set the Channel/RTU/TrigReg RTDB register.
TrigWrap 

If the TrigAdjust "INCREMENT" option is used, TrigWrap tells at what point the value should roll over to its low ("WrapTo") value. If TrigWrap is greater than 20000, it is used as a register point to a maximum "Increment" value. If less than 20001, it is a constant value.

For instance, if TrigWrap is set to 40001, and the value in 40001 is 30000, then if the TrigReg register will be incremented to 30000, then after the next Report trigger, it will be set to the value in Parm1.

Run The Run value is unused in processing, but it can be used as part of the Report filename (MQTT topic) using the ${RUN#} variable.
Parm1 

If the TrigAdjust "INCREMENT" option is used, Parm1 contains the "WrapTo" value. Once the value rolls over at its maximum limit, it will be set to the constant integer contained in Parm1.

For instance, this may be used to set the minimum roll-over value to 1 instead of 0, if a particular trigger value requires it.

COUNT DataRegs 

(This is the "Parm2" parameter.)

If the TrigMode "CRC" option is used, this value determines the number of sequential registers starting at DataRegs that will be calculated for the CRC, to determine if any of the registers has changed. See below for a discussion on the TrigMode options.

Inhibit Reg Unused
Inhibit Test Unused
Proc-Logic Unused
Comment Optional column, allowing a descriptive comment to be entered for each row in the table. The Comment field is unused in the configuration.

...

  • NONE
    No modification of the TrigReg register.

  • REMOTE INCREMENT, REMOTE DECREMENT, REMOTE ZERO
    When Report is generated, write a value to the field device via its Poll Table, using the Channel/RTU/TrigReg address. The value to be written is either the existing TrigReg value incremented or decremented by 1, or a zero (0). When using REMOTE DECREMENT, the value decreases down to zero and remains there (no wrapping).
    Additional options:
    TrigWrap contains the maximum value for the REMOTE INCREMENT option. If TrigWrap is set to a number >20000, it points to an RTDB register that contains the maximum value; otherwise, the TrigWrap column itself is the (constant) maximum value.
    Parm1 contains the constant "WrapTo" value for the REMOTE INCREMENT option. After the value increments positively past the maximum value, it will be set to Parm1.
    TrigWrap and Parm1 columns are unused for REMOTE DECREMENT or ZERO options.
    For both INCREMENT and DECREMENT options, the TrigReg register value is set directly in the RTDB, in addition to writing the value to the remote device.

  • RTDB INCREMENT, RTDB DECREMENT, RTDB ZERO
    When Report is generated, write a value to the RTDB register configured in Channel/RTU/TrigReg (not sent to the remote device). The value to be written is either the existing TrigReg value incremented or decremented by 1, or a zero (0). When using REMOTE DECREMENT, the value decreases down to zero and remains there (no wrapping).
    Additional options:
    TrigWrap contains the maximum value for the REMOTE INCREMENT option. If TrigWrap is set to a number >20000, it points to an RTDB register that contains the maximum value; otherwise, the TrigWrap column itself is the (constant) maximum value.
    Parm1 contains the constant "WrapTo" value for the REMOTE INCREMENT option. After the value increments positively past the maximum value, it will be set to Parm1.
    TrigWrap and Parm1 columns are unused for REMOTE DECREMENT or ZERO optionsINCREMENT option. After the value increments positively past the maximum value, it will be set to Parm1.
    TrigWrap and Parm1 columns are unused for REMOTE DECREMENT or ZERO options.


Read-ProtoBuff-Payload Process

Image Added

The Read-ProtoBuff-Payload process object is used for parsing Google Protobuf-formatted payload messages, typically received through an MQTT subscription.

To publish a Google Protobuf payload, see the Generic-Registers process object instead.


Attributes
Function
Object TypeRead-ProtoBuff-Payload
Parent(s)System → Clients → Automated_Processing → Processes
Instance0


Every row in the Process table points to a Report definition that describes a received Protobuf message. Therefore, the Reports section and at least one Report definition must be defined before the Data Process Table can be configured.


Data Process Table
Values
ChannelMaster Channel used for storing RTDB data.
RTU

Field Unit address used for storing RTDB data.

Type

For the Generic-Registers process, the options include:

  • V2 Read Protobuff Payloads – use Report definition to parse a Protobuf message into RTDB.
  • IGNORE THIS ROW – use this to temporarily disable one or more process rows.
CommStatReg

RTDB register address containing the first of 5 Field Unit communication status registers (register should contain 7=good, 0=bad comms). If the communication status is checked and found to be in a failed state, the processing on this row will be skipped.

Following the convention of the Field Unit's Comm Status Holdreg, use a 40,xxx register to point to the communication status register in the System Status RTU, or use a 30,xxx register to point to the communication status register in the Field Unit's own RTDB.

Set CommStatReg to 0 to check protocol status of the Master Channel's protocol driver instead of a Comm Status Holdreg register.

Set CommStatReg to -1 to ignore the communication status. Process logic for this row will occur regardless of comms status.

ReportSelect one Report definition to define the structure expected from the subscribed data for this process row.
DataRegs 

If DataRegs is non-zero, that RTDB register in Channel/RTU is used as the "base register" for Report generation. The Report defines offsets from DataRegs.

This option may be used when more than one block of similar data is stored in the RTDB; thus, the same Report can be reused by setting DataRegs to the starting register of each block of registers. (For example: Field Units 1 and 2 each have analogous blocks of data at 40001-40020 and 40101-40120. Four rows could be defined in Read-ProtoBuff-Payload with different RTU address (1 and 2) and DataRegs column (starting address 40001 and 40101), and Report defined with data elements at Offset 0 through 19; the same Report would be called four different times using data from different units and different blocks of data).

If DataRegs is zero, the Report must be defined using actual register addresses in the RTDB.

This option might be used, for example, if a set of numbered addresses with similar data is used in multiple Channel/RTU/RTDB. The registers do not have to be in a contiguous block of addresses. (For example: Field Units 1 through 10 each have an analogous data at 10001-5 and 40001-40020. Ten rows could be defined in Read-ProtoBuff-Payload with different RTU addresses, DataRegs set to 0, and the Report defined with data elements at fixed register locations 10001-10005 and 40001-40020; the same Report would be called ten different times using data from different units).

TrigMode 

The TrigMode option selects a method to use in response to a receiving and parsing a Protobuf payload message. If either of the "WRITE" options are selected, it can be used by another process to indicate that we have received a message, and perhaps to take some further action. TrigMode options are:

  • DON'T Write to TrigReg – do nothing after parsing message.
  • WRITE CONSTANT TrigVal to TrigReg – after parsing message, store the constant value configured in the TrigValue column into an RTDB register configured in the TrigReg column.
  • WRITE TrigVal REGISTER to TrigReg – after parsing message, take the value from an RTDB register (configured in the TrigValue column) and store it into an RTDB register configured in the TrigReg column. This allows a variable value to be used, which could be set by some other process logic.
TrigReg RTDB address in Channel/RTU to write a trigger value, indicating a received message, if configured by TrigMode.
TrigValue If TrigMode selects a trigger action, this should either be a constant value to write, or an RTDB register address containing a value to write.
TrigAdjust 

Unused

TrigWrap 

Unused

Run Unused
Parm1 

Unused

Parm2 

Unused

Inhibit Reg Unused
Inhibit Test Unused
Proc-Logic Unused
Comment Optional column, allowing a descriptive comment to be entered for each row in the table. The Comment field is unused in the configuration.


Device TimeSync Process

The Time-Syncs process object uses special program logic to synchronize the clock in either an Omni Modbus-compatible flow computer or an Allen Bradley PLC.

...

Data Process TableValues
ChannelMaster Channel of the Omni or Allen Bradley device.
RTU

Field Unit address useof the Omni or Allen Bradley device.

Type

For the Time-Syncs process, the options include:

  • Omni Time Sync – special logic for sending time to Omni flow computer 
  • DF1 Time Sync – special logic for sending time to Allen Bradley PLC
  • Ignore This Row – use this to temporarily disable one or more process rows.
CommStatReg

RTDB register address containing the first of 5 Field Unit communication status registers (register should contain 7=good, 0=bad comms). If the communication status is checked and found to be in a failed state, the processing on this row will be skipped.

Following the convention of the Field Unit's Comm Status Holdreg, use a 40,xxx register to point to the communication status register in the System Status RTU, or use a 30,xxx register to point to the communication status register in the Field Unit's own RTDB.

Set CommStatReg to 0 to check protocol status of the Master Channel's protocol driver instead of a Comm Status Holdreg register.

Set CommStatReg to -1 to ignore the communication status. Process logic for this row will occur regardless of comms status.

ReportUnused
DataRegs 

Starting register in the RTDB for the device timestamp registers polled from the Omni or Allen Bradley device. In the Allen Bradley, some custom programming is required to place the timestamp into six consecutive registers (Year, Month, Day, Hour, Minute, Second), and a seventh register is written to by the RediGate, which the PLC must take the new timestamp and store into the PLC's clock. For the Omni, the RediGate will read the standard six timestamp registers (Omni registers 3867-3872: Hour, Minute, Second, Month, Day, Year).

TrigMode 

Unused

TrigReg 

RTDB address in Channel/RTU containing a trigger to synchronize the time whenever the TrigReg register is non-zero. This can be used, for instance, to read the "Power Fail" flag (Omni register 1829).

TrigValue Constant value to write to the device after the time has been synchronized. The value is written via the RTDB register (and Poll Table) specified in the TrigWrap column. This can be used, for instance, to write to the "Reset Power Failed" flag (Omni register 1713).
TrigAdjust Unused
TrigWrapRTDB register to write the TrigValue after the time has been synchronized (sent to the device via the Poll Table).
Hour

(This is the "Run" parameter.)

Optional parameter, can be used to automatically write the timestamp to the device once/day at a certain Hour and Minute.

Minute

(This is the "Parm1" parameter.)

Optional parameter, can be used to automatically write the timestamp to the device once/day at a certain Hour and Minute.

Parm2 Unused
Inhibit Reg Unused
Inhibit Test Unused
Proc-Logic Unused
Comment Optional column, allowing a descriptive comment to be entered for each row in the table. The Comment field is unused in the configuration.

...

AttributesFunction
Object TypeHeart-Beat-Monitor
Parent(s)System → Clients → Automated_Processing → Processes
Instance0


Every row in the Process table handles the heartbeat monitoring for one field device. The Heart-Beat-Monitor process is an exception, in that it does not require a Report object to be defined.

Data Process TableValues
ChannelMaster Channel used for the PLC.
RTU

Field Unit address used for the PLC.

Type

For the Heart-Beat-Monitor process, the options include:

  • Heartbeat Monitor – special logic for PLC heartbeat monitoring and MQTT death certificates
  • Ignore This Row – use this to temporarily disable one or more process rows.
CommStatReg

RTDB register address containing the first of 5 Field Unit communication status registers (register should contain 7=good, 0=bad comms). If the communication status is checked and found to be in a failed state, the processing on this row will be skipped.

Following the convention of the Field Unit's Comm Status Holdreg, use a 40,xxx register to point to the communication status register in the System Status RTU, or use a 30,xxx register to point to the communication status register in the Field Unit's own RTDB.

Set CommStatReg to 0 to check protocol status of the Master Channel's protocol driver instead of a Comm Status Holdreg register.

Set CommStatReg to -1 to ignore the communication status. Process logic for this row will occur regardless of comms status.

ReportUnused
DataRegs 

Unused

TrigMode Unused
TrigReg RTDB address in Channel/RTU containing the heartbeat value polled from the PLC.
TrigValue Constant number of seconds, after which an unchanging heartbeat value will trigger the fail condition and send MQTT death certificate.
TrigAdjust Unused
TrigWrap 

Unused

Run Unused
Parm1 

Unused

Parm2 

Unused

Inhibit Reg Unused
Inhibit Test Unused
Proc-Logic Unused
Comment Optional column, allowing a descriptive comment to be entered for each row in the table. The Comment field is unused in the configuration.

...

Data Process TableValues
ChannelMaster Channel of the Omni Modbus unit used for process logic and obtaining RTDB data.
RTU

Field Unit address of the Omni Modbus unit used for process logic and obtaining RTDB data.

Type

For the Omni-Modbus-Archives process, the options include:

  • OMNI Modbus Archive – logic to retrieve and publish batch/ticket archives for an Omni Modbus flow computer.
  • Spirit Modbus Archive – logic for Spirit flow computer (same as Omni Modbus logic?)
  • Ignore This Row – use this to temporarily disable one or more process rows.
CommStatReg

RTDB register address containing the first of 5 Field Unit communication status registers (register should contain 7=good, 0=bad comms). If the communication status is checked and found to be in a failed state, the processing on this row will be skipped.

Following the convention of the Field Unit's Comm Status Holdreg, use a 40,xxx register to point to the communication status register in the System Status RTU, or use a 30,xxx register to point to the communication status register in the Field Unit's own RTDB.

Set CommStatReg to 0 to check protocol status of the Master Channel's protocol driver instead of a Comm Status Holdreg register.

Set CommStatReg to -1 to ignore the communication status. Process logic for this row will occur regardless of comms status.

ReportSelect one Report definition to define the structure of the output data report produced by this process row. Because the Omni-Modbus-Archives process deals with Modbus register-based polling, the Report must be a Process-RTDB-Report type.
DataRegs 

If DataRegs is non-zero, that RTDB register in Channel/RTU is used as the "base register" for Report generation. The Report defines offsets from DataRegs. For the Omni-Modbus-Archives process, this will generally be the block of data containing the latest archive record.

This option may be used when more than one block of similar data is stored in the RTDB; thus, the same Report can be reused by setting DataRegs to the starting register of each block of registers. (e.g., Field Units 1 and 2 each have an analogous block of data at 40001-40020 and 40101-40120. If more than one archive is obtained, multiple rows can be defined in this table for the same RTU address, and rows for each Modbus flow computer, with each row calling one or more Report definitions.

If DataRegs is zero, the Report must be defined using actual register addresses in the RTDB.

TrigMode 

Unused

TrigReg RTDB address in Channel/RTU containing the first of three registers containing the Max, Current, and Requested Record for the archive.
TrigValue Unused
TrigAdjust 

Unused

TrigWrap Unused
RunThe Run value is unused in processing, but it can be used as part of the Report filename (MQTT topic) using the ${RUN#} variable to identify the run number if the flow meter contains archives for multiple flow.
SOS-Enable

(This is the "Parm1" parameter.)

This must be set to the RTDB register used in the SOS table that enables and disables the poll for the actual archive data record. The processing logic will set this register to True (or 1) to enable the archive poll, and set it to False (or 0) once the record has been received.

Parm2 Unused
Inhibit Reg Unused
Inhibit Test Unused
Proc-Logic Unused
Comment Optional column, allowing a descriptive comment to be entered for each row in the table. The Comment field is unused in the configuration.

...

Data Process TableValues
ChannelMaster Channel of the Omni Modbus unit used for process logic and obtaining CMD 65 file data.
RTU

Field Unit address of the Omni Modbus unit used for process logic and obtaining CMD 65 file data.

Type

For the Generic Registers process, the options include:

  • OMNI-7K Batch ASCII Archive – logic to retrieve and publish batch/ticket archive for Omni 7000 using Cmd65.
  • OMNI-7K Snapshot ASCII Archive – logic for to retrieve and publish Snapshot archive for Omni 7000 using Cmd65.
  • OMNI-6K Batch ASCII Archive – logic to retrieve and publish batch/ticket archive for Omni 6000 using Cmd65.
  • OMNI-7K ALARM – logic to retrieve and publish Alarm archive for Omni 7000 using Cmd65.
  • OMNI-7K AUDIT MEASUREMENT – logic to retrieve and publish Measurement Audit archive for Omni 7000 using Cmd65.
  • OMNI-7K AUDIT SYSTEM – logic to retrieve and publish System Audit archive for Omni 7000 using Cmd65.
  • Ignore This Row – use this to temporarily disable one or more process rows.
CommStatReg

RTDB register address containing the first of 5 Field Unit communication status registers (register should contain 7=good, 0=bad comms). If the communication status is checked and found to be in a failed state, the processing on this row will be skipped.

Following the convention of the Field Unit's Comm Status Holdreg, use a 40,xxx register to point to the communication status register in the System Status RTU, or use a 30,xxx register to point to the communication status register in the Field Unit's own RTDB.

Set CommStatReg to 0 to check protocol status of the Master Channel's protocol driver instead of a Comm Status Holdreg register.

Set CommStatReg to -1 to ignore the communication status. Process logic for this row will occur regardless of comms status.

ReportSelect one Report definition to define the structure of the output data report produced by this process row. Because the Omni-Cmd65-File process deals with ASCII text files, the Report must be a Process-FILE-Report type.
FileNameReg

(This is the "DataRegs" parameter.)

The FileNameReg should typically be a STRING type register in the RTDB, which is used by the Poll Table to specify the name of the file created by the Modbus CMD 65 data acquisition of the raw ASCII report. The Tag Name of this register identifies the filename; the retrieved file to be processed will be stored in /tmp/director/ with a filename of TagName_CC_RRRRR, where "TagName is the tag of the FileNameReg, "CC" is the Master Channel number and RRRRR is the Modbus unit ID (the Omni CMD 65 poll automatically appends these numbers with the underscores).

TrigMode 

Unused

TrigReg 

RTDB address in Channel/RTU containing data to trigger when the raw ASCII text file has been acquired and is ready to be processed.

  • For Omni 7K (Batch, Prover): TrigReg must point to the 1st of 9 registers in the RTDB used by Cmd65 data acquisition (1st register=Request ID, 8th register=Number of records, 9th register=Newest record ID).
  • Omni 7K Snapshot: TrigReg indicates when new Snapshot ASCII file has been acquired (for instance, the first 128 bytes of Snapshot report could be polled, containing header lines of ASCII file, and use Timestamp option to update 32-bit timestamp when the header data changes → use the Timestamp for TrigReg).
  • For Omni 6K: TrigReg is a register that changes when a new ASCII report is available (for instance, could be a Timestamp register generated based on data changing in the poll for ASCII data from Omni).
TrigValue RTDB register containing CRC-32 of the raw ASCII file, stored by the Modbus Poll Table (CMD 65) after completing the read. Used by Omni-Cmd65-File process to determine when the report is available for processing – after CRC-32 changes, process and publish the Report.
TrigAdjust 

Unused

ACK Register

(This is the "TrigWrap" parameter.)

  • Omni 7K – RTDB register containing feedback of requesting ASCII file report ID, to indicate when the report is ready. Register will contain 0=Report ready, 1=Pending (in process), 2=Error.
  • Omni 6K – Unused
HistRecord

(This is the "Run" parameter.)

RTDB register for writing the "Count HistRecords" parameter, below, used to request a count of historical archives for certain types of Cmd65 reports (Alarm, Audit).

Otherwise, the HistRecord parameter is unused, other than optional use in an MQTT topic using the "${RUN}" variable.

SOS-Enable

(This is the "Parm1" parameter.)

This must be set to the RTDB register used in the SOS table that enables and disables the poll for the actual archive data record. The processing logic will set this register to True (or 1) to enable the archive poll, and set it to False (or 0) once the record has been received.

Count HistRecords

(This is the "Parm2" parameter.)

This is the count of historical records needed in the request for certain types of historical archives. This is the value written into HistRecord, above.

Inhibit Reg This is a Boolean register in the RTDB which is used for certain types of historical archives (Snapshot, Status, Product, Alarm, Measurement Audit, System Audit, Initialization), to prevent more than one archive request from operating at the same time. Each of these report processes uses Omni register 16303 as the Report Command register, so the Omni-Cmd65-File process will set the Inhibit Reg while one archive file is being retrieved and clear the register when finished, so other processes can acquire their own archive.
Inhibit Test Unused
Proc-Logic Unused
Comment Optional column, allowing a descriptive comment to be entered for each row in the table. The Comment field is unused in the configuration.

...

Report Name Wildcards

The Report Name property in the Process-RTDB-Report or Process-FILE- Report object may include wildcard variables. Any variables shown with one or more "#" symbols indicate that an integer number will be substituted for the variable, with the minimum number of digits specified, using leading zeros where needed according to the number of "#" characters.

...

The Output Mode property of the Process - Report object defines the overall structure of the report being generated. Generally speaking, each row in the Report's Definition Table creates one data element in the Report file that is created. Below is a description of the different Output Mode options:

...

10025 enable = 1 (true)
41110 type = 100
41111-41114 poll = 1, 2, 0, 3
42113 ana = 3.1415
45005 name = Hello

Report DefinitionDescription

...Configure the main properties in the Process-PBuf-Report object as follows.

Report Name: MQTT topic on which to publish or subscribe this message
Output Mode: Publish GOOGLE ProtoBuffer (or Subscribe)
Publisher Process: Chose which MQTT instance number to use for publish or subscribe
Definition Table: Configure according to Protobuf message structure

DataReg OffsetSrcReg CountOutput FormatSwappingNamePBuf TagComment
450051Text StringNoname1String variable, message tag 1.
100251BooleanNoenable2Boolean, message tag 2.
04ARRAY STARTNoPollType3Start of repeated enum, tag 3. The SrcReg Count is the number of enum values to include in the message.
41111132bit UnsignedNopoll1For a simple packed primitive type (int, float), the PBuf Tag is not used.
Consecutive  Consecutive registers are used, starting at 41111.
01ARRAY ENDNo+
End of repeated section. DataReg Offset, SrcReg Count, Name, and PBuf Tag are not used for ARRAY END.
01NESTING STARTNosubmessage4Sub-message, tag 4. SrcReg Count is not used.
41110132bit UnsignedNotype1Tag 1 inside sub-message.
42113132bit Floating PointNoana2Tag 2 inside sub-message.
01NESTING ENDNo+
End of sub-message. DataReg Offset, SrcReg Count, Name, and PBuf Tag are not used for ARRAY END.


Publish/Subscribe Configuration

...

Using the Protobuf message structure, Report, and data values shown above results in yields the following Protobuf payload.

See the Google Protocol Buffers documentation for more detail on the protocol.

0a 05 48 65 6c 6c 6f 10 01 1a 04 01 02 00 03 22 07 08 64 15 56 0e 49 40


Interpretation of Protobuf payload:
0a 05 48 65 6c 6c 6f — 0a (tag 1, string type), 05 (5 bytes), followed by ASCII bytes of string
10 01 — 10 (tag 2, varint type), 01 = true
1a 04 01 02 00 03 — 1a (tag 3, packed repeated field type), followed by integer bytes (1, 2, 0, 3)
22 07 — 22 (tag 4, embedded message type), 07 (7 bytes of data to follow)
    08 64 — 08 (tag 1 of sub-message, varint type), x64 = value of 100 decimal
    15 56 0e 49 40 — 15 (tag 2 of sub-message, float type), followed by 4-byte floating point value




...

Proc-Scripts Placeholder

The Proc-Scripts placeholder is the parent object of all individual Proc-Script-Text objects.

...