pymodbus-dev / pymodbus

A full modbus protocol written in python
Other
2.16k stars 889 forks source link

Serial Communication Drops After Few Messages on Ubuntu #2206

Closed cobear333 closed 2 weeks ago

cobear333 commented 1 month ago

Versions

Pymodbus Specific

Description

I'm experiencing issues with serial communication in an Ubuntu environment. The communication works fine initially, but after exchanging a few messages, the connection drops unexpectedly. The Modbus simulator reports a "Timeout on Message Receive. Dumping Data" error. The same setup works perfectly on a Windows environment.

Code and Logs

# code and logs here.
import time
from pymodbus.client import ModbusSerialClient
from pymodbus import ModbusException

def start():
    client = ModbusSerialClient(
        port = "/dev/ttyS0",
        baudrate=9600,
        bytesize=8,
        parity="N",
        stopbits=1,
        timeout=1,
        strict=False,
    )

    client.connect()

    count = 0
    while(True):
        count = count + 1
        try:
            result = client.read_holding_registers(2 - 1, 1, 1)
        except ModbusException as exc:
            print(f"Received ModbusException({exc})")
            client.close()
            return

        print(count,result.registers)
        time.sleep(1)

if __name__ == "__main__":
    start()
1 [17]
2 [17]
3 [17]
4 [17]
5 [17]
6 [17]
7 [17]
8 [17]
9 [17]
10 [17]
11 [17]
12 [17]
13 [17]
14 [17]
15 [17]
Traceback (most recent call last): File "/home/cobear3333/modbus/why2.py", line 34, in <module> start()
  File "/home/cobear3333/modbus/why2.py", line 28, in start
    print(count,result.registers)
                ^^^^^^^^^^^^^^^^
AttributeError: 'ModbusIOException' object has no attribute 'registers'

2024-05-29 17:29:10,794 DEBUG logging:103 Awaiting connections server_listener
2024-05-29 17:29:10,795 INFO  logging:97 Server listening.
2024-05-29 17:29:10,797 DEBUG logging:103 Connected to server
2024-05-29 17:29:15,325 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:15,326 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:15,326 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:15,327 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:15,327 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:15,327 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:15,327 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:15,327 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:15,328 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:16,341 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 0x0 0x1 old_data:  addr=None
2024-05-29 17:29:16,343 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:16,344 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:16,344 DEBUG logging:103 Frame - not ready
2024-05-29 17:29:16,358 DEBUG logging:103 recv: 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:16,359 DEBUG logging:103 Handling data: 0xd5 0xca
2024-05-29 17:29:16,360 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:16,360 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:16,360 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:16,360 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:16,360 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:16,360 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:16,361 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:17,374 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:17,376 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:17,377 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:17,377 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:17,378 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:17,378 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:17,379 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:17,379 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:17,379 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:18,408 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 0x0 old_data:  addr=None
2024-05-29 17:29:18,410 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1 0x0
2024-05-29 17:29:18,410 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0
2024-05-29 17:29:18,410 DEBUG logging:103 Frame - not ready
2024-05-29 17:29:18,425 DEBUG logging:103 recv: 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:18,426 DEBUG logging:103 Handling data: 0x1 0xd5 0xca
2024-05-29 17:29:18,427 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:18,427 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:18,427 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:18,428 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:18,428 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:18,428 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:18,428 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:19,445 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:19,447 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:19,447 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:19,447 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:19,448 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:19,448 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:19,448 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:19,448 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:19,449 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:20,475 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 old_data:  addr=None
2024-05-29 17:29:20,476 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1
2024-05-29 17:29:20,476 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1
2024-05-29 17:29:20,477 DEBUG logging:103 Frame - not ready
2024-05-29 17:29:20,491 DEBUG logging:103 recv: 0x0 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:20,492 DEBUG logging:103 Handling data: 0x0 0x1 0xd5 0xca
2024-05-29 17:29:20,492 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:20,492 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:20,493 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:20,493 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:20,493 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:20,493 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:20,493 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:21,512 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:21,513 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:21,513 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:21,514 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:21,514 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:21,514 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:21,515 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:21,515 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:21,515 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:22,539 DEBUG logging:103 recv: 0x1 0x3 0x0 old_data:  addr=None
2024-05-29 17:29:22,540 DEBUG logging:103 Handling data: 0x1 0x3 0x0
2024-05-29 17:29:22,541 DEBUG logging:103 Processing: 0x1 0x3 0x0
2024-05-29 17:29:22,555 DEBUG logging:103 recv: 0x1 0x0 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:22,556 DEBUG logging:103 Handling data: 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:22,556 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:22,556 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:22,557 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:22,557 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:22,557 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:22,557 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:22,557 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:23,570 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:23,571 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:23,572 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:23,572 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:23,572 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:23,572 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:23,573 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:23,573 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:23,573 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:24,596 DEBUG logging:103 recv: 0x1 0x3 old_data:  addr=None
2024-05-29 17:29:24,597 DEBUG logging:103 Handling data: 0x1 0x3
2024-05-29 17:29:24,598 DEBUG logging:103 Processing: 0x1 0x3
2024-05-29 17:29:24,611 DEBUG logging:103 recv: 0x0 0x1 0x0 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:24,612 DEBUG logging:103 Handling data: 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:24,613 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:24,613 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:24,613 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:24,613 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:24,613 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:24,614 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:24,614 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:25,634 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:25,636 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:25,636 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:25,636 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:25,636 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:25,636 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:25,636 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:25,636 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:25,637 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:26,666 DEBUG logging:103 recv: 0x1 old_data:  addr=None
2024-05-29 17:29:26,667 DEBUG logging:103 Handling data: 0x1
2024-05-29 17:29:26,667 DEBUG logging:103 Processing: 0x1
2024-05-29 17:29:26,681 DEBUG logging:103 recv: 0x3 0x0 0x1 0x0 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:26,683 DEBUG logging:103 Handling data: 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:26,683 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:26,684 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:26,684 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:26,684 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:26,684 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:26,684 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:26,685 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:27,704 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:27,705 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:27,705 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:27,705 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:27,706 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:27,706 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:27,706 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:27,707 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:27,707 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:28,744 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca old_data:  addr=None
2024-05-29 17:29:28,745 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:28,746 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:28,746 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:28,746 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:28,746 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:28,747 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:28,747 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:28,747 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:29,762 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 old_data:  addr=None
2024-05-29 17:29:29,763 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5
2024-05-29 17:29:29,764 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5
2024-05-29 17:29:29,764 DEBUG logging:103 Frame - not ready
2024-05-29 17:29:29,779 DEBUG logging:103 recv: 0xca old_data:  addr=None
2024-05-29 17:29:29,780 DEBUG logging:103 Handling data: 0xca
2024-05-29 17:29:29,781 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5 0xca
2024-05-29 17:29:29,781 DEBUG logging:103 Getting Frame - 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:29,781 DEBUG logging:103 Factory Request[ReadHoldingRegistersRequest': 3]
2024-05-29 17:29:29,781 DEBUG logging:103 Frame advanced, resetting header!!
2024-05-29 17:29:29,782 DEBUG logging:103 validate: fc-[3] address-2: count-1
2024-05-29 17:29:29,782 DEBUG logging:103 getValues: fc-[3] address-2: count-1
2024-05-29 17:29:29,782 DEBUG logging:103 send: 0x1 0x3 0x2 0x0 0x11 0x78 0x48
2024-05-29 17:29:30,804 DEBUG logging:103 recv: 0x1 0x3 0x0 0x1 0x0 0x1 old_data:  addr=None
2024-05-29 17:29:30,805 DEBUG logging:103 Handling data: 0x1 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:30,806 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1
2024-05-29 17:29:30,806 DEBUG logging:103 Frame - not ready
2024-05-29 17:29:30,807 DEBUG logging:103 recv: 0xd5 old_data:  addr=None
2024-05-29 17:29:30,808 DEBUG logging:103 Handling data: 0xd5
2024-05-29 17:29:30,808 DEBUG logging:103 Processing: 0x1 0x3 0x0 0x1 0x0 0x1 0xd5
2024-05-29 17:29:30,808 DEBUG logging:103 Frame - not ready
janiversen commented 1 month ago

As you can see in the last lines of the log, the last message is received in pieces, could indicate a problem with you pr usb-rs485.

Windows might be working well because it is quite a bit slower.

janiversen commented 2 weeks ago

Closing, assuming fixed.