FB_BACnet_RemoteProgram
The following function block is used for linking a remote BACnet object of the local BACnet client. The function block for the corresponding BACnet object is linked with the aid of process data. The data exchange with the remote BACnet server takes place via BACnet with the aid of WOC (Write-On-Change) and COV (Changes-On-Value) or via polling (not recommended).
The process data can be created manually in the BACnet object, linked manually, or they can be generated automatically via PLC automapping. The comments required for PLC automapping ( (* ~ (BACnet... | ??? | ??? ) *) ) are already included in the declaration of the function block.
Use
The function block "FB_BACnet_RemoteProgram" can be used for read and write access to a remote BACnet object of type Program (PROG). To this end the remote BACnet object was added to a local BACnet client.
VAR_INPUT
bEnablePV : BOOL;
ePV : E_BACnetProgramRequest;
bRetrigger : BOOL; (* execute selected request on raising edge again *)
bEnablePV: Enables the value of input ePV. If the input is set to TRUE, the value of ePV is written to the property Program_Change of the object. If the input is set to FALSE, 0xFFFF is written to the process data of the property Program_Change of the object. The value 0xFFFF prevents writing to the remote server and therefore writing to the remote object.
ePV: Request to the remote program object. If bEnablePV was set to TRUE, the value of the input is written to the property Program_Change (see also Transition diagram).
bRetrigger: A change from FALSE to TRUE triggers writing of the input ePV to the property Program_Change, if input bEnablePV is set to TRUE.
VAR_OUTPUT
bReady : BOOL;
ePrgState : E_BACnetProgramState;
ePrgReasonHalt : E_BACnetProgramError;
bOverridden : BOOL;
bOutOfService : BOOL;
bFault : BOOL;
bInAlarm : BOOL;
bError : BOOL;
nErrorId : UINT;
bReady: Notification of general readiness. If this output is set, the other status outputs are valid (ProgramState, Overridden ...). If the output is FALSE, the corresponding function block FB_BACnet_RemoteDevice reports "not operational", the block instances was not linked correctly in the System Manager or the remote server cannot be reached (gateway cannot be reached, no Ethernet link).
ePrgState: Feedback of the current program state (see also Transition diagram).
ePrgChangeReq: Feedback on the state of the current program request (see also Transition diagram).
ePrgReasonHalt: Error feedback on program cancellation.
bOverridden, bOutOfService, bFault, bInAlarm: See BACnet specification DIN EN ISO 16484-5 for BACnet object Program and property Status_Flags.
bProcessError, bOtherFault: See BACnet specification DIN EN ISO 16484-5 for BACnet object Program and property Reliability.
bError: An error is pending.
nErrorId: Error number
0 = no error
1 = function block of the corresponding client (RemoteDevice) is not called or not called regularly enough from the PLC program.
2 = incorrect process data mapping detected (check mapping in the System Manager; if necessary compile complete PLC project and reload)
3 = the corresponding BACnet client is not ready (bOperational = FALSE at instance of the FB_BACnet_RemoteDevice)
The error numbers can be queried as block constants via the FB instance (FB_BACnet_Remote???.nERR_xxx).
VAR_IN_OUT
RemoteDevice : FB_BACnet_RemoteDevice;
RemoteDevice: Block instance of the corresponding remote BACnet device object. The remote BACnet device object of a remote BACnet server has been added under a local BACnet client. Local client and remote server are linked via BACnet. Any number of clients can be linked via BACnet adapter. See FB_BACnet_Adapter and FB_BACnet_RemoteDevice for further information.