Closed Sr4l closed 5 years ago
Apologies for the delayed response, where is the server running ? Also on the same PC ?
Clients run on PC with versions and OSs mentioned above.
Server is running on a ABB Freelance AC700F (https://new.abb.com/control-systems/essential-automation/freelance/controller/ac700f)
I would suggest to have both the operations running in the same script with locks to do only one operation at a time. The problem could be that the programs are receiving wrong responses which are not intended for them . It could also be the limitation on the server ad it could not handle the requests fast. Connection reset is generally initiated by the other party. Please try with a longer intervals for read and write and see how the setup behaves.
I simply can't connect with a second process over the same IP only solution is to share the same connection.
I tried other ModbusTCP implementation as well. As long as there is one process in connected state, not even requesting or sending coils or registers. The second process can connect, but gets a broken pipe
or connection reset by peer
if he tries to use the connection.
Seems to be a problem/limitation on the server side, hardly fixable in an embedded PLC.
Thanks you for your time.
96 # Versions
Pymodbus Specific
Description
What i've done: Write one program requesting registers every 100ms (data recorder). Writer another program writing every 100ms a value (remote controller).
What happend: If started on different PCs all works fine.
If started on one PC, different Python Interpreters. The program started first works as expected. The second started program crash's. The error message differs in different pymodbus versions.
Code and Logs
pymodbus 2.2.0
pymodbus 1.5.2
Question and notes
Is this a known limitation?
I keep the connections in both programs open/alive. If I use one program for both task and share the connection it works. If I use two PCs, one for each program, it works.