Comments (3)
I suggest trying the "-S" (--simple) option, and see what happens.
Only PLCs that handle routing requests to other devices generally handle "routing" Unconnected requests. By specifying -S, Cpppo avoids using these types of requests. This is typically required for EtherNet/IP end devices, such as PowerFlex, MicroLogix, etc., which are typically only connected to sensors, and not other PLCs. Perhaps this is the case with SoftLogix?
from cpppo.
pjkundert,
Thank you for the reply.
I have tried the -S option with the 3 different ENIP commands with the same results:
$ python -m cpppo.server.enip.client -S -a 192.168.159.140 "Pump1"
08-15 16:42:52.155 MainThread enip.cli WARNING validate Client Single Read Tag Pump1 returned non-zero status: Status 4
Pump1 == None: 'Status 4 '
$ python -m cpppo.server.enip.get_attribute '@4/1/1' -a 192.168.159.140 -S
Mon Aug 15 16:43:06 2016: 0: Single G_A_S '@4/1/1' == None
$ python -m cpppo.server.enip.get_attribute 'Pump1' -a 192.168.159.140 -S
Mon Aug 15 16:43:14 2016: 0: Single G_A_S 'Pump1' == None
Previously I thought this maybe an issue with the virtual backplane, but I can verify the tags with a tag monitor and I can see the tags inside the controller. For cpppo to read tag data are the tags required to be produce or consumed? Read/Write attributes are a given, but I am just tugging at wires here, I have tried almost everything I have ready about, including using the proxy you previously posted:
$ python
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
from cpppo.server.enip.get_attribute import proxy_simple
product_name, = proxy_simple( '192.168.159.140' ).read( [('Pump1','BOOL')] )
product_name
Any ideas, I have been stuck here for weeks.
from cpppo.
Unfortunately, in my years of developing Cpppo, the documentation available for EtherNet/IP CIP itself, and for most devices has been essentially useless.
Most of the time, I resort to using Wireshark or Ethereal or 'tcpdump' to trace the raw communications between two working devices, or between some working software and the target device. Then, I try to manually parse the communications (or follow the Ethereal or Wireshark parse output, which often only partially decodes the communications, if at all). Usually, that gives me the information I need to implement some more of the protocol.
So; if you have any software that successfully talks to the SoftLogix using "Unconnected" communications (eg. RSLogix), you should sniff its communications while it accesses those tags, and see what it's doing...
Sorry I can't be more helpful! I've been shaking my head in disbelief for, literally, years while developing Cpppo...
from cpppo.
Related Issues (20)
- Connection manager: unconnected send
- Receiving (not pulling or writing) data from AB Compact GuardLogix PLC
- Question: Getting single attribute
- Question: read an array of structures in one request
- Question: write to structure field
- CIP Class 0x66
- AssertionError on harvest HOT 1
- Simulate Omron Adapter
- (Question) Duplicate Responses to CIP Discovery Packet HOT 3
- Sending SINT write request using client results in error
- Python 3.11 import problem HOT 1
- Question: What is the meaning of "Tag communications capability"
- Question: CPPPO Server configuration as Generic Ethernet Module in Studio 5000
- Client import problem HOT 1
- SMC JXC91 write HOT 5
- Question: How to call vendor specific services?
- Question: How to send Instance Service "reset (0x05)" instead of "get_attributes_all (0x01)" using Cpppo? HOT 1
- AssertionError: Failed to receive any response
- Implicit (cyclic) communication for lower latency
- Can we have a simple example of writing a single register to a ControlLogix please
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cpppo.