<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to CANOpen Stack and configuration of nodes</title><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/364b18d510/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/CODESYS-V2/thread/364b18d510/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/CODESYS-V2/thread/364b18d510/</id><updated>2020-02-27T23:13:03.245000Z</updated><subtitle>Recent posts to CANOpen Stack and configuration of nodes</subtitle><entry><title>CANOpen Stack and configuration of nodes</title><link href="https://forge.codesys.com/forge/talk/Codesys%2520V2.3/thread/364b18d510/?limit=25#8aac" rel="alternate"/><published>2020-02-27T23:13:03.245000Z</published><updated>2020-02-27T23:13:03.245000Z</updated><author><name>spfeif</name><uri>https://forge.codesys.com/u/spfeif/</uri></author><id>https://forge.codesys.comefeb7d6075a19697a2650576c5bb3ccb8aca306c</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I have noticed that nodes will not be sent configuration data if the following is true:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;You have a check mark next to No Initialization in the Nodes PLC configuration.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The particular OD refernce will not be configured if it doesn't differ from the defualt value of the eds file and create all SDO's is not checked.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If a node does not send a bootup guard message that has 0 as the status, ie    cobid = 701  byte0 = 00 (701 00) bootup message.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the CANOpen Master does not have a status  = 3. Basically at boot up of the PLC.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If a node responds to a SDO request to OD x1000 and the value is different from that found in the EDS file. &lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I have a CANOpen DS406 encoder that when first powered up sends an empty emergency message 81  then sends 701 7F to tell the PLC it is in pre-operational after an RTR nodeguard from the Master. Otherwise just an empty emergency message. Also this device is powered up at a different time then the main PLC. The next step by CoDeSys (because the node is pre-op) is to start the node by issuing an NMT Start Node message cobid = 0 byte0 = 01 byte1 = 01 (00 01 01). It never configures the encoder. But if I use my can dongle and send the command manually cobid = 701 byte0 = 00. Then CoDeSys configures the encoder using all the configured SDO's from the PLC configuration.&lt;/p&gt;
&lt;p&gt;Why is the configuration trigger in CoDeSys on the node state 00 = bootup and/or when the CANOpen Master status = 3 ? Can this be something that is configurable in the future through the PLC configuration?&lt;/p&gt;
&lt;p&gt;What do you think is the best method to get the encoder configured? I can manually monitor the change of node state (nStatus) from 7F (pre-op) to 5 (op) and then send a manual CANOpen message 701 00 or I can maybe try pCANOpenNode&lt;span&gt;[0]&lt;/span&gt;.SetNodeStatus := 0;&lt;/p&gt;
&lt;p&gt;So really what I am asking is how to configure a node long after the PLC CANOpen master has already booted and this node doesn't send a bootup message 701 00 but instead the first guard report is 701 7F?&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>