Balaboum
2007-10-23 10:10:06 UTC
Hello,
I am actually creating a second application using Labview and CANOpen library. In this one, I create PDOs objects at beginning and I have two loops running in paralell receiving and emitting these PDOs to refresh machine Input/Output image. I use SYNC messages ( every 20ms ) to guarantee timing in reception of the PDOs. This works fine.
I have a third loop ( state machine ) to handle machine cycle. In order to drive other CAN devices than the IOs, I create temporarly other PDOs within this loop. In other words, in several states, I have a subvi which creates another set of PDOs, does the job with them and releases them before returning.
This does not work perfectly. Indeed, time to time, my subvi fails always when creating a TxPDO with the following error message :
Error -1074388969 occurred at CANopen PDO Create.vi
Possible reason(s):
NI-CAN: (Hex 0xBFF62017) This attribute's value must be provided prior to the Open. Solutions: Set the attribute using the Config function before the Open, and do not set the attribute at any later time; Do not configure multiple CAN Objects for the same ID.
Of course I checked the node ID and it is different from the PDOs used in my first two loops. So my conclusion is that I do not create multiple CAN Object for the same ID.
"Multiple CAN Object", does that include also SDOs ?
As it exists limitations in the number of PDOs, are there some rules to follow when creating/using/deleting them ?
Should I better integrate these PDOs in the Rx/Tx loops ?
I hope I am clear enough. Please post answer if this is not the case. Thanks in advance for your messages.
I am actually creating a second application using Labview and CANOpen library. In this one, I create PDOs objects at beginning and I have two loops running in paralell receiving and emitting these PDOs to refresh machine Input/Output image. I use SYNC messages ( every 20ms ) to guarantee timing in reception of the PDOs. This works fine.
I have a third loop ( state machine ) to handle machine cycle. In order to drive other CAN devices than the IOs, I create temporarly other PDOs within this loop. In other words, in several states, I have a subvi which creates another set of PDOs, does the job with them and releases them before returning.
This does not work perfectly. Indeed, time to time, my subvi fails always when creating a TxPDO with the following error message :
Error -1074388969 occurred at CANopen PDO Create.vi
Possible reason(s):
NI-CAN: (Hex 0xBFF62017) This attribute's value must be provided prior to the Open. Solutions: Set the attribute using the Config function before the Open, and do not set the attribute at any later time; Do not configure multiple CAN Objects for the same ID.
Of course I checked the node ID and it is different from the PDOs used in my first two loops. So my conclusion is that I do not create multiple CAN Object for the same ID.
"Multiple CAN Object", does that include also SDOs ?
As it exists limitations in the number of PDOs, are there some rules to follow when creating/using/deleting them ?
Should I better integrate these PDOs in the Rx/Tx loops ?
I hope I am clear enough. Please post answer if this is not the case. Thanks in advance for your messages.