Discussion:
CANOpen Labview library exhibits ~5ms delay between SDOs?
(too old to reply)
dre99gsx
2008-01-18 19:10:08 UTC
Permalink
Using a CAN analyzer, I seemed to have found a slight delay in SDO single packet transmissions.  Using NI's CANOpen Library SDO Write in a while loop (after creation of the CAN oobjects), I pass a simple write parameter to index 6040.  I noticed that the analyer reports the SDO reply (581 ID) at 1ms or less from the SDO transmit packet (601).  But, the next SDO transmit happens 5ms later. 
 
I attempted to do this with a different CAN library and was getting 1ms delays between SDO transmits (smallest while loop itteration from windows..). 
 
I attempted to remove the llb call within SDO write so that it does not wait for an SDO response, but got an error with a SDO Obejct invalid after attempting the 2nd transmit.
 
Any advice would be appreciated, thanks.
DirkW
2008-01-21 18:40:08 UTC
Permalink
The CANopen Library uses a special CANopen Services DLL in the backround and only deleting something from the VIs doesn't change the way it works.
SDO is classified as not time critical and therefore it should not matter how fast multiple SDO Writes are executed.
There is no way to improve the SDO performance for the CANopen Library.
You could use NI-CAN directly and write your own SDO routines. This way you could certainly reach the 1 ms rate for multiple requests.
Is there a reason for using SDO transfers that fast?
 
DirkW
Chris G in AE
2008-01-25 17:10:08 UTC
Permalink
Howdy bono02,Assuming you are using LabVIEW, the examples should be located in the LabVIEW directory (normally Program Files\LabVIEW 8.5\examples\CANopen).  There you will find the SDO Read and SDO Write examples.  Enjoy!
body { margin: 0 0 0 0; padding:0 0 0 0 }
td,div { font-family:Microsoft Sans Serif;font-size:8pt;vertical-align:top }
body { margin: 0 0 0 0; padding:0 0 0 0 }
.transcript { background-color:#d2d2d2; }
.messageBlock { margin-left:4px; margin-bottom:3px }
.message { margin-left:100px; word-wrap:break-word; white-space:-moz-pre-wrap; _white-space:pre; }
.messageCont { margin-left:100px; word-wrap:break-word; white-space:-moz-pre-wrap; _white-space:pre;}
.other { color:#39577a;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; }
.myself { color:#da8103;font-style:normal;font-weight:bold;font-style:normal;float:left; width:95px; }
.otherCont { font-size:8px;text-align:right; color:#39577a;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; }
.myselfCont { font-size:8px;text-align:right; color:#da8103;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; }
.system { margin-left:4px; word-wrap:break-word;color:#da8103;font-style:normal;font-weight:normal; white-space:-moz-pre-wrap; _white-space:pre; }
.showTimestamp { margin-right:3px; float:right; color:#999999;font-style:normal;font-weight:normal; }
.other1 { color:#ac2000;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; }
.otherCont1 { font-size:8px;text-align:right; color:#ac2000;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; }
.other2 { color:#3c9fa8;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; }
.otherCont2 { font-size:8px;text-align:right; color:#3c9fa8;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; }
.other3 { color:#e25614;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; }
.otherCont3 { font-size:8px;text-align:right; color:#e25614;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; }
.other4 { color:#0b6ac8;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; }
.otherCont4 { font-size:8px;text-align:right; color:#0b6ac8;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; }
.other5 { color:#b23290;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; }
.otherCont5 { font-size:8px;text-align:right; color:#b23290;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; }
.other6 { color:#02e7c7;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; }
.otherCont6 { font-size:8px;text-align:right; color:#02e7c7;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; }
.other7 { color:#5b3284;vertical-align:top;font-weight:bold;font-style:normal;float:left; width:95px; }
.otherCont7 { font-size:8px;text-align:right; color:#5b3284;font-family:Arial,Lucida Grande;font-style:normal;vertical-align:top;font-weight:bold;float:left; width:95px; }
.tsDisplay { display:block }

Loading...