Greetings! I'm playing with a Moeller XC201 PLC, and am trying to sort out communications via CANOpen with a Moeller XV442 HMI, and am not having any luck. I'm new to this type of network communications, so I'm wondering if someone can advise if I've missed something obvious.
PLC
HMI
When programs sent to PLC and HMI, I can see the CAN led on the HMI flicker at about 1 Hz, which seems to indicate something is happening, but no data is transferred, and HMI indicates 'Communications Error' with SendByte address.
I have the Moeller manuals, which is what has got me this far, but I'm stumped at the moment. Any hints would be most appreciated!
PLC
- Programmed via Xsoft (CoDeSys)
- in PLC Config, I right-clicked on the tree, and added CANMaster, Node ID 1, auto-start. Various CANopen libraries are automatically added to the resources tree at this point.
- Under Global Variables, created two new categories, called Network_Transmit and Network_Receive.
- Network_Transmit is configured as Write, Cyclic, Transmit on Change, COB_ID=250.
- Network_Receive is configured as Read, Request on bootup, COB-ID=200.
- Under the Network_Transmit category, I've declared a BYTE variable "PLC_Inputs", which I'm attempting to send to the HMI.
- Under the Network_Receive category, I've declared a BYTE variable "TestByte", to be received from the HMI.
HMI
- Programmed via Galileo.
- Under 'Select PLC' page in Config menu, I've selected 'CAN Open - polling', as it seems the best fit. Info pages says it's configured for CANOpen Slave, SDO Polling, 4 bytes (DWord) memory alignment.
- Under 'Tags', a SendByte and ReceiveByte tag were created.
- SendByte tag address format is "Index %d,Sub %d.%d". It's been set to 200.0.0, in the hopes the first number is the COB-ID to match the Receive on PLC end. There's no mention of COB-ID in the Galileo software, so I'm grasping at straws here...
- ReceiveByte tag address is set to 250.0.0 for same reason as above.
When programs sent to PLC and HMI, I can see the CAN led on the HMI flicker at about 1 Hz, which seems to indicate something is happening, but no data is transferred, and HMI indicates 'Communications Error' with SendByte address.
I have the Moeller manuals, which is what has got me this far, but I'm stumped at the moment. Any hints would be most appreciated!