FB_GENIbusGetMValue

This function block reads a measured value from a GENIbus device. The operation is limited exclusively to values of class 2. Only the ID code of the high-byte and the length of the measured value need to be specified; the type of scaling and the unit of the measured value are determined by an internal INFO query. A structure at the stMValue output provides all important information about the value.
Inputs
VAR_INPUT
bStart : BOOL;
byAddr : BYTE := 0;
byIDCode : BYTE := 0;
eDataSize : E_GENIBusMDataSize;
eCommandPriority : E_GENIbusCommandPriority := eGENIbusCommandPriorityMiddle;
END_VAR
Name | Type | Description |
---|---|---|
bStart | BOOL | The reading process is initiated by a rising edge at this input. |
byAdress | BYTE | Address of the GENIbus device to be addressed: valid entries: 1 - 200. This corresponds to the setting as is made directly on the GENIbus device. Conversion to the actual address range 32 - 231 takes place within the function block (see GENIbus standard). A broadcast command via address 255 is naturally not permitted. |
byIDCode | BYTE | ID code of the value to be read. In the case of 16, 24 and 32-bit values, the ID of the high-byte must be specified here and the following order is always assumed: ID = hi, ID+1 = lo1, ID+2 = lo2, ID+3 = lo3. |
eDataSize | Data size of the measured value: 8, 16, 24 or 32 bit. | |
eCommandPriority | Priority (high, medium or low) with which the command is processed by the PLC library. |
Example: Read the total volume of water pumped. For this case is:
- byIdCode = 121
- eDataSize = eGENIbusMSize32Bit

Source: Grundfos documentation "Operating the MAGNA3 and MGE model H/I via the GENIpro interface - Edition 01.00.35 - April 2015".
Inputs/outputs
VAR_IN_OUT
stCommandBuffer : ST_GENIbusCommandBuffer;
END_VAR
Name | Type | Description |
---|---|---|
stCommandBuffer | Reference to the structure for communication (buffer) with the FB_GENIbusCommunication() function block |
Outputs
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
udiErrorId : UDINT;
udiErrorArg : UDINT;
stMValue : ST_GENIbusMValue;
END_VAR
Name | Type | Description |
---|---|---|
bBusy | BOOL | Starting with the edge at bStart, this output remains TRUE until the command has been processed. |
bError | BOOL | This output is switched to TRUE as soon as an error occurs during the execution of a command. The command-specific error code is contained in udiErrorId. |
udiErrorId | UDINT | Contains the command-specific error code of the most recently executed command (see error codes). It is set back to 0 by the reactivation of the function block via the bStart input. |
udiErrorArg | UDINT | If applicable, contains an extended description of the error code. |
stMValue | Output of the read value. |
Requirements
Development environment | PLC library to include |
---|---|
TwinCAT from v3.1.4020.14 | Tc2_GENIbus from v3.3.0.0 |