Function Blocks ¶ Network management NMT (FunctionBlock) RECV_EMCY (FunctionBlock) RECV_EMCY_DEV (FunctionBlock) Own node id GET_LOCAL_NODE_ID (FunctionBlock) Query state GET_CANOPEN_KERNEL_STATE (FunctionBlock) GET_STATE (FunctionBlock) SDO access SDO_READ4 (FunctionBlock) SDO_READ_DATA (FunctionBlock) SDO_WRITE4 (FunctionBlock) SDO_WRITE_DATA (FunctionBlock) obsolete (only for compatibility) SDO_READ (FunctionBlock) SDO_WRITE (FunctionBlock)
Network management ¶ NMT (FunctionBlock) RECV_EMCY (FunctionBlock) RECV_EMCY_DEV (FunctionBlock)
NMT (FB) ¶ FUNCTION_BLOCK NMT EXTENDS CiA405Base This function block provides NMT services. The NMT request will be sent to the NodeID specified in input DEVICE . If NMT request should be addressed to all devices (including NMT master and sending device) set DEVICE to 0 . If all devices but not NMT master and sending device should be addressed use the additional flag TRANSITION_STATE.ALL_EXCEPT_NMT_AND_SENDER . InOut: Scope Name Type Initial Comment Inherited from Input NETWORK USINT 1 CAN network number the function block should operate on. Note: It is not the same like the network number in CANBus configurator. The CiA405 NETWORK is calculated by NetID + 1. Example: 1 = CAN0, 2 = CAN1, 3 = CAN2, … CiA405Base ENABLE BOOL FALSE Enables the function block on rising edge. Aborts operation on falling edge. CiA405Base TIMEOUT UDINT 0 Timeout in ms; 0 means no timeout CiA405Base Output CONFIRM BOOL FALSE TRUE : function block finished without error CiA405Base ERROR CANOPEN_KERNEL_ERROR CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_NO_ERROR Error code: see CANOPEN_KERNEL_ERROR for further details CiA405Base Input DEVICE DEVICE 0 NodeID of destination device (local or remote). 0 means all devices. STATE TRANSITION_STATE 0 The NMT transition which should be performed.
RECV_EMCY (FB) ¶ FUNCTION_BLOCK RECV_EMCY EXTENDS CiA405Base Function block checks if an emergency object has been received from any DEVICE . If the function block has finished its action without any error, output CONFIRM is changed to TRUE and ERROR to 0. If DEVICE is 0 all devices are error free. If an EMCY is pending or an EMCY error reset was received output DEVICE contains the NodeID of the corresponding device and ERRORINFO contains the EMCY information. Note An EMCY will be returned as long as it is pending. An EMCY error reset (Variable EMCY_ERROR_CODE of EMCY_ERROR is zero) is returned only once. If an error occurred while checking for an emergency, CONFIRM is set to FALSE and ERROR is set to the corresponding error value. InOut: Scope Name Type Initial Comment Inherited from Input NETWORK USINT 1 CAN network number the function block should operate on. Note: It is not the same like the network number in CANBus configurator. The CiA405 NETWORK is calculated by NetID + 1. Example: 1 = CAN0, 2 = CAN1, 3 = CAN2, … CiA405Base ENABLE BOOL FALSE Enables the function block on rising edge. Aborts operation on falling edge. CiA405Base TIMEOUT UDINT 0 Timeout in ms; 0 means no timeout CiA405Base Output CONFIRM BOOL FALSE TRUE : function block finished without error CiA405Base ERROR CANOPEN_KERNEL_ERROR CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_NO_ERROR Error code: see CANOPEN_KERNEL_ERROR for further details CiA405Base DEVICE DEVICE 0 EMCY received: DEVICE contains the NODEID of the sending device; no EMCY received: value is 0 ERRORINFO EMCY_ERROR EMCY information
RECV_EMCY_DEV (FB) ¶ FUNCTION_BLOCK RECV_EMCY_DEV EXTENDS CiA405Base Function block checks if an emergency object has been received from NodeID specified by input DEVICE . If the function block has finished its action without any error, output CONFIRM is changed to TRUE and ERROR to 0. Member EMCY_ERROR_CODE of output ERRORINFO is unequal zero if an EMCY is pending. If EMCY_ERROR_CODE equals zero no EMCY is currently pending. Note A received emergency is not cleared and it is delivered with each call of the function block until the device sends an emergency reset. If an error occurred while checking for an emergency, CONFIRM is set to FALSE and ERROR is set to the corresponding error value. InOut: Scope Name Type Initial Comment Inherited from Input NETWORK USINT 1 CAN network number the function block should operate on. Note: It is not the same like the network number in CANBus configurator. The CiA405 NETWORK is calculated by NetID + 1. Example: 1 = CAN0, 2 = CAN1, 3 = CAN2, … CiA405Base ENABLE BOOL FALSE Enables the function block on rising edge. Aborts operation on falling edge. CiA405Base TIMEOUT UDINT 0 Timeout in ms; 0 means no timeout CiA405Base Output CONFIRM BOOL FALSE TRUE : function block finished without error CiA405Base ERROR CANOPEN_KERNEL_ERROR CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_NO_ERROR Error code: see CANOPEN_KERNEL_ERROR for further details CiA405Base Input DEVICE DEVICE 0 NodeID of device Output ERRORINFO EMCY_ERROR EMCY information; if member EMCY_ERROR_CODE is zero, no EMCY is pending.
Own node id ¶ GET_LOCAL_NODE_ID (FunctionBlock)
GET_LOCAL_NODE_ID (FB) ¶ FUNCTION_BLOCK GET_LOCAL_NODE_ID EXTENDS CiA405Base Function block returns the NodeID of the local device (= CANopenManager) InOut: Scope Name Type Initial Comment Inherited from Input NETWORK USINT 1 CAN network number the function block should operate on. Note: It is not the same like the network number in CANBus configurator. The CiA405 NETWORK is calculated by NetID + 1. Example: 1 = CAN0, 2 = CAN1, 3 = CAN2, … CiA405Base ENABLE BOOL FALSE Enables the function block on rising edge. Aborts operation on falling edge. CiA405Base TIMEOUT UDINT 0 Timeout in ms; 0 means no timeout CiA405Base Output CONFIRM BOOL FALSE TRUE : function block finished without error CiA405Base ERROR CANOPEN_KERNEL_ERROR CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_NO_ERROR Error code: see CANOPEN_KERNEL_ERROR for further details CiA405Base DEVICE DEVICE 0 NodeID of local device
Query state ¶ GET_CANOPEN_KERNEL_STATE (FunctionBlock) GET_STATE (FunctionBlock)
GET_CANOPEN_KERNEL_STATE (FB) ¶ FUNCTION_BLOCK GET_CANOPEN_KERNEL_STATE EXTENDS CiA405Base Gets the current state of the CANopen Kernel. As long as CANopen network is running correctly the function block returns CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_NO_ERROR for output STATE . The function block detects bus errors, configuration errors, guarding errors and internal system errors (e.g. out of system memory). InOut: Scope Name Type Initial Comment Inherited from Input NETWORK USINT 1 CAN network number the function block should operate on. Note: It is not the same like the network number in CANBus configurator. The CiA405 NETWORK is calculated by NetID + 1. Example: 1 = CAN0, 2 = CAN1, 3 = CAN2, … CiA405Base ENABLE BOOL FALSE Enables the function block on rising edge. Aborts operation on falling edge. CiA405Base TIMEOUT UDINT 0 Timeout in ms; 0 means no timeout CiA405Base Output CONFIRM BOOL FALSE TRUE : function block finished without error CiA405Base ERROR CANOPEN_KERNEL_ERROR CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_NO_ERROR Error code: see CANOPEN_KERNEL_ERROR for further details CiA405Base STATE CANOPEN_KERNEL_ERROR CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_NO_ERROR Current stack state.
GET_STATE (FB) ¶ FUNCTION_BLOCK GET_STATE EXTENDS CiA405Base Function block returns the CANopen state of device with NodeID DEVICE . The ourput STATE is defined as follows: If guarding/heartbeat is not active for the selected DEVICE : DEVICE_STATE.NOT_AVAIL is returned if DEVICE doesn’t respond in configuration phase. DEVICE_STATE.UNKNOWN is returned in all other cases even if a boot-up message was received. If guarding/heartbeat is not active but at least one cyclic synchronous TPDO is configured for the selected DEVICE : DEVICE_STATE.NOT_AVAIL is returned if DEVICE doesn’t respond in configuration phase. DEVICE_STATE.OPERATIONAL is returned if cyclic synchronous TPDOs are received correctly DEVICE_STATE.UNKNOWN is returned in all other cases. If guarding/heartbeat is active: If there is no guarding/heartbeat error (due to timeout) received NMT state is returned. DEVICE_STATE.NOT_AVAIL is returned if device is not responding or in case of huarding/heartbeat error. InOut: Scope Name Type Initial Comment Inherited from Input NETWORK USINT 1 CAN network number the function block should operate on. Note: It is not the same like the network number in CANBus configurator. The CiA405 NETWORK is calculated by NetID + 1. Example: 1 = CAN0, 2 = CAN1, 3 = CAN2, … CiA405Base ENABLE BOOL FALSE Enables the function block on rising edge. Aborts operation on falling edge. CiA405Base TIMEOUT UDINT 0 Timeout in ms; 0 means no timeout CiA405Base Output CONFIRM BOOL FALSE TRUE : function block finished without error CiA405Base ERROR CANOPEN_KERNEL_ERROR CANOPEN_KERNEL_ERROR.CANOPEN_KERNEL_NO_ERROR Error code: see CANOPEN_KERNEL_ERROR for further details CiA405Base Input DEVICE DEVICE 0 NodeID of device; 0 means local device (= CANopenManager) Output STATE DEVICE_STATE 0 contains current NMT state