Open ghost opened 7 years ago
The only thing I can think is that I am either not understanding the data types properly or there is some setting on the PLC restricting me from actually writing to the device although it says Read/Write.
I would recommend trying to write to a Tag specified in a more "global" namespace of the PLC, first, to validate that everything is working.
The name 'Local:1:I.Data' will be parsed into two "symbolic" names: 'Local:1:I' and 'Data' by Cpppo; I don't know if that is correct; perhaps these type of Tags require the rest of the names to be also broken into separate "symbolic" address segments. Perhaps try specfiying 'Local.1.I.Data', to force Cpppo to parse each name component? Just a guess.
Better yet, capture a wireshark trace of some other EtherNet/IP CIP application reading/writing that attribute, and look at what kind of addressing it is using to accomplish the I/O. This will tell us how to formulate the request.
Unfortunately, the documentation for EtherNet/IP CIP is so bad, that this is how I've had to develop pretty much the entire Cpppo project...
I've been working on getting this library to properly write to my PLC for the past couple of days. Now this is not a device I myself programmed, but something I am trying to control with a python script. I have connected directly to it and the images below are from RSLinx Data Monitoring on the program to grab the tag names. I can read information from the device with the proxy.read interface. For example below:
Is there something I am missing? Based on these images that tag is classified as Read/Write so I should be able to change this value from 0 -> 1, and thus turning on the PLC actions.