Function Blocks ¶ CANopenDeviceSIL2 (FunctionBlock) Cyclic-Methods-state-independent State-Machine State Transitions States CheckConfiguration CheckConfiguration and Stopped Operational
CANopenDeviceSIL2 (FB) ¶ FUNCTION_BLOCK CANopenDeviceSIL2 EXTENDS CSB.CANopenSafetyBase This function block implements a CANopen Safety Slave SIL2 I/O driver which is realized through a black channel approach. It sits on top of an unsafe CANopen Slave Stack. Communication between both stacks is realized over shared memory. The function block can be enabled/disabled by S_xEnable . When S_xEnable gets TRUE the function block checks all conditions for safe communication each bus cycle: Unsafe stack is in OPERATIONAL state Configuration valid object (16#13FE) is set to 16#A5 Safety configuration signatures are correct Consistency of SRDO configuration data If a configuration error is detected (e.g. CRC mismatch) S_eError changes from NO_ERROR to the corresponding error code. If every condition is fulfilled the function block tries starting safe communication. Output S_xActive gets TRUE if all SRDOs are sent/received at least one time without any error. When communication error occurs (e.g. SCT/SRVT timeout, data mismatch, …), all SRDO communication is stopped: S_xActive = FALSE , S_eError <> NO_ERROR . Errors can be acknowledged by a rising edge of S_xErrorAck . Safe communication will be continued. Note Do not instantiate this function block. It will be instantiated implicitly. InOut: Scope Name Type Initial Comment Input S_xEnable BOOL TRUE TRUE : SRDO communication enabled; FALSE : SRDO communication stopped S_xErrorAck BOOL FALSE Pending error ( S_eError <> NO_ERROR ) can be acknowledged with rising edge. Output S_xActive BOOL FALSE TRUE : safe communication active; FALSE : safe communication inactive (in case of error or S_xEnable = FALSE ) S_eError CST.ERROR CST.ERROR.NO_ERROR Error code of pending error or NO_ERROR . Structure: Cyclic-Methods-state-independent State-Machine State Transitions States CheckConfiguration CheckConfiguration and Stopped Operational
State Machine ¶ Methods implementing the state machine. State Transitions States CheckConfiguration CheckConfiguration and Stopped Operational
Cyclic Methods (state independent) ¶ Methods called every cycle independent of state.
3S CANopenSafety Library Documentation ¶ Company 3S - Smart Software Solutions GmbH Title 3S CANopenSafety Version 3.5.14.0 Categories Intern|CANbus; Docs|Fieldbus|CAN Namespace _3SCOSS Author 3S - Smart Software Solutions GmbH Placeholder 3S CANopenSafety Description 1 ¶ CANopenSafety stack provided by 3S Smart Software Solutions GmbH. The stack uses the the unsecure CANopenStack as grey communication channel. Contents: ¶ _3SCANopenSafety BufferSizes (ParamList) Function Blocks Indices and tables ¶ 1 Based on _3SCANopenSafety.library, last modified 11.12.2018, 09:18:30. LibDoc 4.4.0.0-b.27 The content file _3SCANopenSafety.clean.json was generated with CODESYS V3.5 SP14 on 11.12.2018, 09:18:32.
_3SCANopenSafety ¶ BufferSizes (ParamList) Function Blocks CANRemoteDeviceSafe (FunctionBlock) Cyclic-Methods-state-independent Initialization State-Machine State Transitions States CheckConfiguration CheckConfiguration and Stopped Operational CANopenManagerSIL2 (FunctionBlock)
BufferSizes (PARAMS) ¶ Library parameters for Tx and RxSRDO buffer sizes. High Limit defines the highest array index. Values will be set by the configurator. InOut: Scope Name Type Initial Comment Constant gc_TXSRDOBUFFER_HIGH_LIMIT BYTE 63 maximal number of TxSRDOs = gc_TXSRDOBUFFER_HIGH_LIMIT + 1 gc_RXSRDOBUFFER_HIGH_LIMIT BYTE 63 maximal number of RxSRDOs = gc_RXSRDOBUFFER_HIGH_LIMIT + 1
Function Blocks ¶ CANRemoteDeviceSafe (FunctionBlock) Cyclic-Methods-state-independent Initialization State-Machine State Transitions States CheckConfiguration CheckConfiguration and Stopped Operational CANopenManagerSIL2 (FunctionBlock)
CANRemoteDeviceSafe (FB) ¶ FUNCTION_BLOCK CANRemoteDeviceSafe This function block implements the logic of a CANopen Safety Remote Device. All instances are managed by the CANopenManagerSIL2 in a simple chained list and called on StartBusCycle. The function block gets its SRDO config in SetupSDROs and has its own pointer to the Safety Exchange. Function block can be enabled/disabled by S_xEnable. When S_xEnable gets TRUE the function block checks every bus cycle all conditions for safe communication: Unsafe stack is in OPERATIONAL state CRCs read back from device are correct Consistency of SRDO configuration data If a configuration error is detected (e.g. CRC mismatch) S_eError changes from NO_ERROR to a corresponding error code. If every condition is fulfilled the function block tries starting safe communication. S_xActive gets TRUE if all SRDOs are sent/received at least one time without any error. When communication error occurs (SCT/SRVT timeout, data mismatch, …), all SRDO communication is stopped: S_xActive = FALSE, S_eError <> NO_ERROR Errors can be acknowledged by a rising edge of S_xErrorAck. Safe communication will be continued. InOut: Scope Name Type Initial Comment Input S_xEnable BOOL TRUE TRUE: SRDO communication enabled; FALSE: SRDO communication stopped S_xErrorAck BOOL FALSE Pending error (S_eError <> NO_ERROR) will be acknowledged on rising edge. Output S_xActive BOOL FALSE TRUE: safe communication active; FALSE: safe communication inactive (in case of error or S_xEnable = FALSE) S_eError CST.ERROR CST.ERROR.NO_ERROR pending error Structure: Cyclic-Methods-state-independent Initialization State-Machine State Transitions States CheckConfiguration CheckConfiguration and Stopped Operational
CANopenDevice.SwitchToStopped (METH) ¶ METHOD SwitchToStopped : BOOL Switches the slave to CANOPEN_STATE.STOPPED . As defined by CiA-301 following services will be performed in this state: NMT State transition is only possible in CANOPEN_STATE.PREOPERATIONAL or CANOPEN_STATE.OPERATIONAL . InOut: Scope Name Type Comment Return SwitchToStopped BOOL TRUE if state transition was possible