Which products are affected?
EVS93xx-EI (Servo PLC V6.x)
EVS93xx-ET (Servo PLC V6.x with technology function)
What happens?
Among other things the position of the free identifier area provided for data reception is defined via the L_CanInit function of the DDS library LenzeCanDrv.lib. The L_GetRelocCobId function returns this defined position as value.
Irrespective of the free identifier area provided for data reception set via the L_CanInit function, the L_GetRelocCobId function always returns the value 0.
When does the problem occur?
The Servo PLC V2.x can only receive specific identifiers at the same time. By means of a freely shiftable identifier area provided for data reception consisting of 64 identifiers, the Servo PLC V2.x can also receive identifiers which otherwise could not be received.
The Servo PLC V6.x can receive identifiers out of the complete identifier area from 0 to 2047. In case of the Servo PLC V6.x the L_GetRelocCobId function always returns the smallest valid identifier, i. e. the value 0.
Possible diagnostics?
Check the Servo PLC firmware version via code C0099.
Short-term measures/recommendations?
Do not use the L_GetRelocCobId function in order to check the defined position of the free identifier area provided for data reception.
Evaluation:
The Servo PLC V6.x can receive all identifiers. It is no longer necessary to define the free identifier area provided for data reception and thus to use the L_GetRelocCobId function. Due to this function restriction the Servo PLC V6.x is not unrestrictedly compatible with Servo PLC V2.x. However, in projects solved with Servo PLC V2.x the L_GetRelocCobId function has only rarely been used, too.