From 756ba2175da058759b0c70092cea0f67f73f8a23 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Mon, 8 Jul 2019 09:28:33 +0100 Subject: [PATCH] changes for xy-md02 --- snippets/test6b.py | 6 ++++-- snippets/test6c.py | 6 +++--- snippets/test7.py | 21 +++++++++++++++------ 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/snippets/test6b.py b/snippets/test6b.py index 505dd97..05fb932 100644 --- a/snippets/test6b.py +++ b/snippets/test6b.py @@ -2,14 +2,16 @@ from pymodbus.client.sync import ModbusSerialClient import RS485Ext import time -ser=RS485Ext.RS485Ext(port='/dev/ttyAMA0', baudrate=1200, stopbits=1) +ser=RS485Ext.RS485Ext(port='/dev/ttyAMA0', baudrate=9600, stopbits=1) client = ModbusSerialClient(method='rtu') client.socket = ser client.connect() try: - result = client.read_holding_registers(address=0x9c48, count=1, unit=4) + result = client.read_holding_registers(address=0x9c43, count=1, unit=4) + # result = client.read_holding_registers(address=0x0102, count=1, unit=5) + # result = client.read_input_registers(address=0x0002, count=1, unit=5) # result = client.read_discrete_inputs(address=0x0000, count=1, unit=4) print(result) print(result.registers) diff --git a/snippets/test6c.py b/snippets/test6c.py index 9417764..e6d108b 100644 --- a/snippets/test6c.py +++ b/snippets/test6c.py @@ -2,15 +2,15 @@ from pymodbus.client.sync import ModbusSerialClient import RS485Ext import time -ser=RS485Ext.RS485Ext(port='/dev/ttyAMA0', baudrate=1200, stopbits=1) +ser=RS485Ext.RS485Ext(port='/dev/ttyAMA0', baudrate=9600, stopbits=1) client = ModbusSerialClient(method='rtu') client.socket = ser client.connect() try: - # result = client.write_register(address=0x0000, unit=4, value=1) - result = client.write_coil(address=0x0000, unit=4, value=1) + result = client.write_register(address=0x9c47, unit=4, value=0x8000) + # result = client.write_coil(address=0x0000, unit=4, value=1) print(result) except Exception as e: print("ERROR: %s" % str(e)) diff --git a/snippets/test7.py b/snippets/test7.py index b7e2083..c9a799e 100644 --- a/snippets/test7.py +++ b/snippets/test7.py @@ -54,16 +54,18 @@ reqs = [ # ModbusRequestDefinition(1, 0x2000, 2, 'F', 'Voltage'), # ModbusRequestDefinition(1, 0x2020, 2, 'F', 'Frequency'), # ModbusRequestDefinition(1, 0x2060, 2, 'F', 'Current'), - ModbusRequestDefinition('H', 3, 0x0004, 2, 'RF', 'Resistance Channel 1'), - ModbusRequestDefinition('H', 3, 0x000C, 2, 'RF', 'Temperature Channel 1'), - ModbusRequestDefinition('H', 3, 0x0014, 2, 'RF', 'Resistance Channel 2'), - ModbusRequestDefinition('H', 3, 0x001C, 2, 'RF', 'Temperature Channel 2'), +# ModbusRequestDefinition('H', 3, 0x0004, 2, 'RF', 'Resistance Channel 1'), +# ModbusRequestDefinition('H', 3, 0x000C, 2, 'RF', 'Temperature Channel 1'), +# ModbusRequestDefinition('H', 3, 0x0014, 2, 'RF', 'Resistance Channel 2'), +# ModbusRequestDefinition('H', 3, 0x001C, 2, 'RF', 'Temperature Channel 2'), ModbusRequestDefinition('D', 4, 0x0000, 1, '', 'Discrete Input'), + ModbusRequestDefinition('I', 5, 0x0001, 1, '', 'Temperature'), + ModbusRequestDefinition('I', 5, 0x0002, 1, '', 'Humidity'), ] def getSerial(): - return RS485Ext.RS485Ext(port='/dev/ttyAMA0', baudrate=1200, stopbits=1, + return RS485Ext.RS485Ext(port='/dev/ttyAMA0', baudrate=9600, stopbits=1, timeout=1) client = ModbusSerialClient(method='rtu') @@ -71,7 +73,7 @@ client.socket = getSerial() client.connect() delay = 0.05 -period = 1.0 +period = 0.5 while True: for req in reqs: @@ -94,6 +96,13 @@ while True: if type(result) in [ExceptionResponse, ModbusIOException]: raise ModbusException(result) print("{0}: {1!s}".format(req.label, result.bits)) + elif req.kind == 'I': + result = client.read_input_registers(address=req.address, + count=req.count, + unit=req.unit) + if type(result) in [ExceptionResponse, ModbusIOException]: + raise ModbusException(result) + print("{0}: {1}".format(req.label, result.registers)) except ModbusException as e: print("ERROR when querying '{0}': {1!s}".format(req.label, e)) if client.socket is None: