Skip to content

Commit 1bbc502

Browse files
committed
pymodbus compatability
modified: classes/transports/modbus_base.py modified: classes/transports/modbus_rtu.py modified: classes/transports/modbus_tcp.py
1 parent 5ae2ec3 commit 1bbc502

File tree

4 files changed

+14
-11
lines changed

4 files changed

+14
-11
lines changed

classes/transports/modbus_base.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -502,11 +502,12 @@ def read_modbus_registers(self, ranges : list[tuple] = None, start : int = 0, en
502502
if retry < 0:
503503
retry = 0
504504

505-
#combine registers into "registry"
506-
i = -1
507-
while(i := i + 1 ) < range[1]:
508-
#print(str(i) + " => " + str(i+range[0]))
509-
registry[i+range[0]] = register.registers[i]
505+
if(register.count > 0):
506+
#combine registers into "registry"
507+
i = -1
508+
while(i := i + 1 ) < range[1]:
509+
#print(str(i) + " => " + str(i+range[0]))
510+
registry[i+range[0]] = register.registers[i]
510511

511512
return registry
512513

classes/transports/modbus_rtu.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
except ImportError:
1010
from pymodbus.client import ModbusSerialClient
1111

12+
1213
from .modbus_base import modbus_base
1314
from configparser import SectionProxy
1415
from defs.common import find_usb_serial_port, get_usb_serial_port_info, strtoint
@@ -66,13 +67,14 @@ def __init__(self, settings : SectionProxy, protocolSettings : protocol_settings
6667
stopbits=1, parity='N', bytesize=8, timeout=2
6768
)
6869
else:
69-
self.client = ModbusSerialClient(port=self.port,
70+
self.client = ModbusSerialClient(
71+
port=self.port,
7072
baudrate=int(self.baudrate),
7173
stopbits=1, parity='N', bytesize=8, timeout=2
7274
)
7375

7476
#add to clients
75-
self.clients[client_str] = self.client
77+
modbus_base.clients[client_str] = self.client
7678

7779
def read_registers(self, start, count=1, registry_type : Registry_Type = Registry_Type.INPUT, **kwargs):
7880

@@ -84,9 +86,9 @@ def read_registers(self, start, count=1, registry_type : Registry_Type = Registr
8486
kwargs['slave'] = kwargs.pop('unit')
8587

8688
if registry_type == Registry_Type.INPUT:
87-
return self.client.read_input_registers(start, count, **kwargs)
89+
return self.client.read_input_registers(address=start, count=count, **kwargs)
8890
elif registry_type == Registry_Type.HOLDING:
89-
return self.client.read_holding_registers(start, count, **kwargs)
91+
return self.client.read_holding_registers(address=start, count=count, **kwargs)
9092

9193
def write_register(self, register : int, value : int, **kwargs):
9294
if not self.write_enabled:

classes/transports/modbus_tcp.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def __init__(self, settings : SectionProxy, protocolSettings : protocol_settings
4242
self.client = ModbusTcpClient(host=self.host, port=self.port, timeout=7, retries=3)
4343

4444
#add to clients
45-
self.clients[client_str] = self.client
45+
modbus_base.clients[client_str] = self.client
4646

4747
super().__init__(settings, protocolSettings=protocolSettings)
4848

protocols/voltronic/voltronic_bms_2020_03_25.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"baud" : "9600",
44
"send_holding_register" : "true",
55
"send_input_register" : "false",
6-
"batch_size" : 21,
6+
"batch_size" : 7,
77
"batch_delay" : 1.4,
88
"cell_voltage_state_codes" :
99
{

0 commit comments

Comments
 (0)