FB_MBUS_SVM_F22_Ext

FB_MBUS_SVM_F22_Ext 1:

This block is used to read heat meters from Metrima:

-F22 (as FB_MBUS_SVM_F22(), but with the extended output values arrAcountAccums and arrMonthlyAccums.)

FB_MBUS_SVM_F22_Ext 2:

This block is not suitable for BC/BX.

The block can only be executed together with the block FB_MBUSKL6781().

Functionality of the block

VAR_INPUT

usiAddress      : USINT;
stSecAdr        : ST_MBUS_SecAdr;
eBaudrate       : E_MBUS_Baudrate := eMBUS_Baud2400;
bStart          : BOOL;
bSND_NKE        : BOOL := TRUE;
bReadInit       : BOOL := TRUE;
tMinSendTime    : TIME := t#2s;
usiUnit         : USINT;
bDisabled       : BOOL := FALSE;
bMonthstorages  : BOOL;
byMonthstorages : BYTE;

usiAddress: Primary address of the meter to be read with this block.

stSecAdr: Secondary address of the meter to be read with this block (see ST_MBUS_SecAdr).

eBaudrate: 300, 2400, 9600 baud (see E_MBUS_Baudrate).

bStart: A positive edge of this input triggers one reading of the meter.

bSND_NKE: TRUE initializes the meter for each read operation and sets the meter to the first telegram (SND_NKE).

bReadInit: If the PLC is restarted, the meter is read once.

tMinSendTime: Standard t#2s. The meter is read again, once the time set here has elapsed. If t#0s the meter is not read and can be read manually with bStart.

usiUnit: Unit of the energy values to be output by the block. 0=W(h) / 1=KW(h) / 2 =MW(h) / 3=GW(h).

bDisabled: TRUE = deselection of the block.

bMonthstorages: =False, cutoff dates and monthly values are not read (arrAccountAccums and arrMonthlyAccums) / =TRUE, cutoff dates and monthly values are read (arrAccountAccums and arrMonthlyAccums). The number of monthly values (arrMonthlyAccums) can be changed and depends on the variable byMonthstorages.

byMonthstorages: Number of monthly values (arrMonthlyAccums), maximum 37 values. Only applies if byMonthstorages =TRUE.

VAR_OUTPUT

bBusy            : BOOL;
bReady           : BOOL;
bError           : BOOL;
eError           : E_MBUS_ERROR;
dwIdNumber       : DWORD;
byStatus         : BYTE;
byGEN            : BYTE;
byCounter        : BYTE;
usiRecivedAdr    : USINT;
eMedium          : E_MBUS_Medium;
sMan             : STRING(3);
stEnergy         : ST_MBus_Info;
stVolume         : ST_MBus_Info;
stVolume2        : ST_MBus_Info;
stForwardTemp    : ST_MBus_Info;
stReturnTemp     : ST_MBus_Info;
stDiffTemp       : ST_MBus_Info;
stFlow           : ST_MBus_Info;
stPower          : ST_MBus_Info;
stPulsecounter1  : ST_MBus_Info;
stPulsecounter2  : ST_MBus_Info;
arrAccountAccums : ARRAY [1..2] OF ST_MBus_F22;
arrMonthlyAccums : ARRAY [1..37] OF ST_MBus_F22;

bBusy: The bBusy output is TRUE while the meter is being read.

bReady: The bReady output is TRUE for one cycle, once meter reading is completed.

bError: this output goes TRUE as soon as an error occurs. This error is described via the variable eError.

eError: In the event of an error the output issues an error code (see E_MBUS_ERROR). bError goes TRUE at the same time.

dwIdNumber: Serial number of the meter (secondary address).

byStatus: Device status.

byGEN: Software version of the device.

byCounter: Number of times the master has accessed data of the respective slave.

usiRecivedAdr: Received primary address (0-250).

eMedium: Medium (see E_MBUS_Medium).

sMan: Manufacturer code.

stEnergy: Meter reading, energy consumption (see ST_MBus_Info).

stVolume: Meter reading, water consumption (see ST_MBus_Info).

stVolume2: Accumulated volume. Energy calculation (see ST_MBus_Info).

stForwardTemp: Flow temperature (see ST_MBus_Info).

stReturnTemp: Return temperature (see ST_MBus_Info).

stDiffTemp: Temperature difference (see ST_MBus_Info).

stFlow: Current water consumption (see ST_MBus_Info).

stPower: Current energy consumption, power (see ST_MBus_Info).

stPulsecounter1: Pulse counter 1 (see ST_MBus_Info).

stPulsecounter2: Pulse counter 2 (see ST_MBus_Info).

arrAccountAccums: 2 cutoff date values (energy, volume 1, volume 2, pulse counter 1, pulse counter 2, date). Values are only read if bMonthstorages =TRUE (see ST_MBus_F22).

arrMonthlyAccums: Maximum 37 monthly values (energy, volume 1, volume 2, pulse counter 1, pulse counter 2, date). Values are only read if bMonthstorages =TRUE. The number of values depends on the variable byMonthstorages (see ST_MBus_F22).

VAR_IN_OUT

stCom : ST_MBUS_Communication; 

stCom: This structure is used to link the block FB_MBUSKL6781() with the meter blocks (see ST_MBUS_Communication).

Requirements

Development environment

required TC3 PLC library

TwinCAT from v3.1.4020.14

Tc2_MBus from 3.3.4.0