Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1756-ENET broadcast support #294

Open
tlf30 opened this issue Jul 28, 2023 · 1 comment
Open

1756-ENET broadcast support #294

tlf30 opened this issue Jul 28, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@tlf30
Copy link
Contributor

tlf30 commented Jul 28, 2023

So, very close to the top of bugs in Rockwell's ENIP stack on older cards that drives me crazy is the 1756-ENET not correctly responding to a broadcast identity request.

What it does respond with is status 0x01 for service not supported. The correct thing to do at this point is to send an explicit CIP message to request its identity.

The current CIPDriver.broadcast method ignores ENET modules since they do not reply with a status of 0x00 and a valid identity CPF item. One of two things could be done here to support the ENET. First, the broadcast could simply have a way to return a list of unknown devices that responded, but not with a valid response. Or second, it could try a CIP identity request if the broadcast ENIP identity request returns a status of 0x01

Personally I opt for the first option as it is less invasive and has better backwards compatibility. A way to implement it without breaking compatibility would be to pass it an empty list (as an optional argument) of unknown devices that it could populate with ip addresses. The list would only contain the addresses of unknown devices. Another implementation option would be to simply add to the resulting list of devices an object (UnknownIdentity perhaps) that only contains the information known about the device, such as {'encap_protocol_version': 1, 'ip_address': '192.168.1.12'}

Thoughts?

Thanks,
Trevor Flynn

@tlf30 tlf30 added the enhancement New feature or request label Jul 28, 2023
@ottowayi
Copy link
Owner

ottowayi commented Aug 2, 2023

That is interesting and not at all surprising. But either method seems alright with me, I think requesting the CIP identity would be the most helpful from a user perspective. I'd imagine anyone getting identity-less discovery results would end up doing it themselves manually anyway, so doing it automatically is probably the way to go. But, could also add an arg in the discover method to enable/disable it and if disabled, just return without any identity info.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants