Process data object re-mapping procedures
Process data object (PDO) mapping is an essential feature of CANopen that describes which individual process variables in the data field of a PDO is transmitted. CiA 301, in particular, requires a dedicated re-mapping procedure.
The process data object (PDO) service allows exchanging one or several process variables in one single CAN message. The PDO mapping parameter describes which objects in the CANopen object dictionary are transmitted by the sender. The PDO receiver also uses a PDO mapping parameter, which specifies where to store the received process data in the CANopen object dictionary. The PDO mapping parameter of the transmitter and the sender may use different pointers (16-bit index and 8-bit sub-index) depending on the CANopen profile.
In some simple devices, the user cannot configure the PDO mapping parameters, which is called static PDO mapping. More sophisticated devices allow variable PDO mapping, which means the system designer can re-configure the default PDO mapping or generate new PDOs. Normally, this is done in the network management (NMT) pre-operational state when the PDOs are disabled. Of course, the user can also reconfigure the PDO mapping in the NMT operational state, but it is necessary to avoid inconsistencies in the PDO mapping on the producer and the consumer side. To avoid this, the PDO must not be produced until the entire reconfiguration is finished.
The CiA 301 application layer specification requires a dedicated re-mapping procedure that involves five steps:
- "Destroy" the transmit process data object (TPDO) by setting the valid bit to 1b of sub-index 01h of the TPDO communication parameter.
- Disable PDO mapping by setting the sub-index 00h of the PDO mapping parameter to 00h.
- Modify PDO mapping by changing the values of the corresponding sub-indices of the PDO mapping parameters.
- Enable PDO mapping by setting the sub-index 00h to the number mapped process data.
- "Create" a TPDO by setting the valid bit to 0b of sub-index 01h of the TPDO communication parameter.
If the CANopen device detects that the index and sub-index of the mapped object does not exist or the object cannot be mapped during step 3, the CANopen device responds with the service data object (SDO) abort transfer service (abort code: 0602 0000h or 0604 0041h).
If the CANopen device detects that the RPDO mapping is not valid or not possible during step 4, the CANopen device responds with the SDO abort transfer service (abort code: 0602 0000h or 0604 0042h). This is tested in the CANopen conformance test.
Normally, the receiving process data object (RPDO) mappings need to be re-configured. This should be done before the TPDO is enabled again. Between steps 4 and 5, all related RPDO mappings should be reconfigured, if necessary. Of course, the user can also first re-map all RPDO mappings, which should be done between steps 1 and 2 or between steps 2 and 3).
The re-mapping in the NMT operational state is called dynamic PDO mapping. If the CANopen device is correctly implemented, the RPDO re-mapping follows the same procedure as the TPDO re-mapping: "Destroy" the RPDO, disable the RPDO mapping, modify the RPDO mapping, enable the RPDO mapping, and finally "create" the RPDO. Of course, this should be done for all TPDO-corresponding RPDOs, if the TPDO is sent in multi- or broad-cast.
If the CANopen device receives a PDO that has more data bytes than the number of mapped data bytes (length), then the CANopen device uses the first data bytes up to the length and sends an emergency object (EMCY) message. If a CANopen device receives a PDO with less data bytes than the number of mapped data bytes (length), then the CANopen device sends an EMCY message with the error code 8210h.
If the TPDO or RPDO re-mapping procedure is not followed, the CANopen device should not change the mapping entries and abort the SDO write service. The device should do this, for example, if the PDO has not been "destroyed" or the mapping has not been disabled. Note: The system designer is responsible for the consistency of the TPDO and the RPDO mapping parameters.
Holger Zeltwanger is managing director, CAN in Automation (CiA). CAN in Automation is a CFE Media content partner. Edited by Chris Vavra, production editor, Control Engineering, CFE Media, firstname.lastname@example.org.
See additional stories from CAN in Automation linked below.