FB_init
Short Summary
The constructor FB_init is needed to create an unique hash code.
The hash code is a pseudo random number create with a xorshift_ algorithm.
It can be overwritten on derivations, because it will be called implicit, SUPER^.FB_init() is not required.
For more information check: Behavoir with derived function blocks_
.. _Behavoir with derived function blocks: https://infosys.beckhoff.com/content/1033/tc3_plc_intro/5482088715.html?id=6983869892358031022 .. _xorshift: https://en.wikipedia.org/wiki/Xorshift
parameters
- Return type:
BOOL
Parameters
| Name | Type | Comment | Kind |
|---|---|---|---|
| bInitRetains | BOOL | if TRUE, the retain variables are initialized (warm start / cold start) | input |
| bInCopyCode | BOOL | if TRUE, the instance afterwards gets moved into the copy code (online change) | input |
| rootNode | INodeApi | first node, e.g. Workflow or Station (can be 0) | input |
| safety | CNM_OpModeHandlingInterfaces.ISafetyReleaseDistributor | safety to subscribe | input |
Code
Declaration
METHOD FB_init : BOOL
VAR_INPUT
(* if TRUE, the retain variables are initialized (warm start / cold start)*)
bInitRetains : BOOL;
(* if TRUE, the instance afterwards gets moved into the copy code (online change) *)
bInCopyCode : BOOL;
(* first node, e.g. Workflow or Station (can be 0) *)
rootNode :INodeApi := 0;
(* safety to subscribe *)
safety :CNM_OpModeHandlingInterfaces.ISafetyReleaseDistributor;
END_VAR
Implementation
IF ( THIS^.isObjectValid( rootNode ) ) THEN
THIS^.root := rootNode;
ELSE
THIS^.root := 0;
END_IF
IF THIS^.isObjectValid(safety) THEN
safety.subscribe(THIS^);
END_IF