I have a system that has a few nodes that are powered on at the same time as the PLC. I also have a few more nodes that get powered at a latter time. If the nodes that get powered at a latter time have a check next to initialize in the Node configuration of the PLC Configuration then the PLC will never start operational if the nodes are not found. So I am guessing that I set these nodes to optional. I then can use the CANOpen_Node FB from the CANOpen Library to monitor when the nodes have been turned on (They will send an emergency object with error code 0) I can then trigger an SDO initialization. Does this sound correct? I'm just not sure about the CANOpen_Node FB. It has nSendSDO as an int? I am currently looking for information on this library. Is there a better way to perform an initialization at a latter time on a node?
I think I found my answer to this question. There is a manual I just found from my PLC provider barried in a CD I thought was worthless. I guess not. "CANOpen for 3S Runtime Systems". It seems it gives me a lot of information that I wasn't aware of. The use of CANOpen implicit variables can be used for what I am trying to accomplish.
But I do have one other question. In the manual it states that the index to the CANOpen implicit variable array is not the Node ID. If it is not the node ID then how do you know what index goes with what node? My guess is it doesn't matter as you can loop through the indexes and read the node ID? Also is there any documentation to the objects that the implicit variable arrays expose?
Log in to post a comment.