RE: CANOpen NMT Modes

"John Dammeyer" <[email protected]>
Newsgroups gmane.comp.hardware.bus.can
Message-ID <B72B596140484884A77191E4A3E01E09@asus>
Thanks Heikki,

In this case I built a list of node IDs and a mask in my main controller 
that identifies which are valid nodes and which have to be issuing 
Heartbeats in PRE-OPERATIONAL module before the master will change 
everyone to OPERATIONAL.

While I was walking the dog this evening, thinking about the problems, I 
realized that I should be able to look at any node and examine the Object 
Dictionary for key items like 1017h the producer heartbeat time.

I think I have a grasp of how it all fits together.

Thanks

John Dammeyer




"ELS! The Solution"
Automation Artisans Inc.
http://www.autoartisans.com/ELS/
Ph. 1 250 544 4950


-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of 
[email protected]
Sent: Monday, December 17, 2012 9:57 PM
To: [email protected]
Subject: Re: [CANLIST] CANOpen NMT Modes



Hi John,

Typically, when you are designing your CANopen-system, you'll have a 
CANopen project describing
the structure of your system. If you have excellent devices, you can just 
download configuration device
by device from DCF-files to the devices. More common is, that for e.g. 
PLCs, you have to have a
generator reading through the CANopen project and producing an abstraction 
layer for the project as
IEC-code. Slave assignment is typically an important part of it, as long 
as the NMT-master is not
implemented in the PLC runtime. All mobile PLCs I have seen, need 
NMT-master implemented as
IEC-code.

According to CiA-301, it should be configurable if the NMT-master should 
issue a global restart or just
start the failed device. NMT-startup cannot be performed if "mandatory" 
devices are missing. "Optional"
devices are typically started for specified time. The principle is, that 
if an exception is met, a new NMT-
start will be issued (even with flying-master).

Everything in CANopen should be implemented so, that the actual executable 
code is stable and only
its behavior is adjusted by modifying parameter values through the object 
dictionary. Or, as I wrote before
from PLCs, sometimes something need to be performed via code generation. 
But the idea is, that the
CANopen-project is edited and then the changes are automatically 
transferred further.

Best regards,

-H





"John Dammeyer"


		From:        "John Dammeyer" <[email protected]>
To:        "'CANLIST'" <[email protected]>
Date:        18.12.2012 06:25
Subject:        [CANLIST] CANOpen NMT Modes
Sent by:        [email protected]


  _____




Hi everyone,

I'm trying to come up with an optimal solution for dealing with CANOpen 
devices that arrive on the network after the master has already told the 
existing nodes that they are to go from PRE-OPERATIONAL mode to 
OPERATIONAL mode.

To review for those who don't know much about CANOpen.  Each node starts 
in the BOOT mode.  Once it's done booting I believe it's supposed to 
automatically go into PRE-OPERATIONAL mode or state.

At this point the node will respond to SDO (Service Data Objects) from the 
master that could configure it with additional project specific value. 
However, the node remains dormant as far as broadcasting PDO type messages 
(Process Data Objects).  It may not even execute it's dedicated functions.

During the PRE-OPERATIONAL state the node sends out a periodic heartbeat 
with the PRE-OPERATIONAL state in the first byte of the message.  A system 
master will see this and decide what it needs to do with that node before 
issuing either a specific GO OPERATIONAL message or sending a global 
EVERYONE GO OPERATIONAL message.

So say everyone is OPERATIONAL and a new node shows up.  Or one that has 
been reset by a user.  Should the master recognize that a node out there 
is PRE-OPERATIONAL and if allowed send it OPERATIONAL or should the master 
periodically send out an EVERYONE GO OPERATIONAL as a matter of course.

From my perspective, I'd think the nodes shouldn't be allowed to go 
OPERATIONAL until told.  And the Master should note the arrival of a new 
(or previously OPERATIONAL) node and reconfigure it if needed before 
sending the OPERATIONAL message.

Or should the system go through a RESET if one node that was OPERATIONAL 
suddenly shows up as BOOT and then PRE-OPERATIONAL.

How are these issues being handled by integrators?  I realize it's 
somewhat project specific but I'm just looking for general operations.

Thanks

John Dammeyer




"ELS! The Solution"
Automation Artisans Inc.
 <http://www.autoartisans.com/ELS/> http://www.autoartisans.com/ELS/
Ph. 1 250 544 4950







This e-mail is confidential and it is intended only for the addressees. 
Any review, dissemination, distribution, or copying of this message by 
persons or entities other than the intended recipient is prohibited. If 
you have received this e-mail in error, kindly notify us immediately by 
telephone or e-mail and delete the message from your system. The sender 
does not accept liability for any errors or omissions in the contents of 
this message which may arise as a result of the e-mail transmission.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.