From e1781cbce0c062ab4119350509968e3abff8ce18 Mon Sep 17 00:00:00 2001 From: Patrick McDonagh Date: Tue, 10 Jan 2017 14:18:10 -0600 Subject: [PATCH] Able to read all current registers and coils. Test script works --- Modbus Map.xlsx | Bin 69924 -> 64092 bytes analog.json | 302 ++++++++++++++++++++++++----------------------- arraylist.json | 17 ++- digital.json | 34 ++---- plc_to_mongo.py | 16 +-- poc_to_modbus.py | 102 +++++++++------- test.py | 177 +++++++++++++++++++++------ 7 files changed, 387 insertions(+), 261 deletions(-) diff --git a/Modbus Map.xlsx b/Modbus Map.xlsx index 4818ce1780a4122a61a66234e6a52b1378e81f49..a50f72c6fc89c2bec67ad613af7fe69ec908a302 100644 GIT binary patch delta 55450 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 delta 61344 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%0D^um4Tv;<1%`?>e+RbTo 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 lcKR8LgY{3-#Kyu3#muZw{tJ 1: - for i in range(address, address + count): - tag_found = tags.find_one({'register_number': i, 'register_type': self.register_type}) - print("{} = {}".format(tag_found['tag_name'], tag_found['val'])) - super(DigitalTagDataBlock, self).setValues(address, tag_found['val']) - else: - tag_found = tags.find_one({'register_number': address, 'register_type': self.register_type}) - print("{} = {}".format(tag_found['tag_name'], tag_found['val'])) - super(DigitalTagDataBlock, self).setValues(address, tag_found['val']) + # client = MongoClient() + # db = client.tag_data + # tags = db.tag_vals + # + # for i in range(address, address + count): + # tag_found = tags.find_one({'register_number': i, 'register_type': self.register_type}) + # print("{} = {}".format(tag_found['tag_name'], tag_found['val'])) + # super(DigitalTagDataBlock, self).setValues(address, tag_found['val']) return super(DigitalTagDataBlock, self).getValues(address, count=count) @@ -133,50 +139,56 @@ class AnalogTagDataBlock(ModbusSparseDataBlock): ''' values = {} self.register_type = register_type - register_values = {} + register_values = [] for t in tag_list: - builder = BinaryPayloadBuilder(endian=Endian.Little) try: - if t['tag_type'] == 'SINT': - builder.add_8bit_int(t['val_actual']) - elif t['tag_type'][:3] == 'INT': - builder.add_16bit_int(t['val_actual']) + if t['tag_type'][-3:] == 'INT': + register_values.append({"r_num": t['register_number'], "r_vals": integer_to_byte(t['val'])}) elif t['tag_type'] == 'REAL': - builder.add_32bit_float(t['val_actual']) - - register_values[t['register_number']] = builder.to_registers + register_values.append({"r_num": t['register_number'], "r_vals": float_to_bytes(t['val'])}) + elif t['tag_type'] == 'ARRAY': + arr_vals = [] + for i in range(0, len(t['val'])): + arr_vals = arr_vals + float_to_bytes(t['val'][i]) + register_values.append({"r_num": t['register_number'], "r_vals": arr_vals}) except KeyError: - register_values[t['register_number']] = [] print("No value for register #{} - {}".format(t['register_number'], t['tag_name'])) - + register_values.sort(key=lambda x: x['r_num']) + values = [0] + for x in register_values: + values = values + x['r_vals'] - # print("Initialized AnalogTagDataBlock for {} with values {}".format(self.register_type, values)) super(AnalogTagDataBlock, self).__init__(values) def getValues(self, address, count=1): client = MongoClient() db = client.tag_data tags = db.tag_vals - - if count > 1: + try: for i in range(address, address + count): tag_found = tags.find_one({'register_number': i, 'register_type': self.register_type}) + val_registers = [] if tag_found: + if tag_found['tag_type'][-3:] == 'INT': + val_registers = integer_to_byte(tag_found['val']) + elif tag_found['tag_type'] == 'REAL': + val_registers = float_to_bytes(tag_found['val']) + elif tag_found['tag_type'] == 'ARRAY': + val_registers = [] + for k in range(0, len(tag_found['val'])): + val_registers = val_registers + float_to_bytes(tag_found['val'][k]) + for j in range(0, len(val_registers)): + super(AnalogTagDataBlock, self).setValues(i + j, val_registers[j]) print("{} = {}".format(tag_found['tag_name'], tag_found['val'])) - super(AnalogTagDataBlock, self).setValues(address, tag_found['val']) - super(AnalogTagDataBlock, self).setValues(address + 3, 0) - else: - tag_found = tags.find_one({'register_number': address, 'register_type': self.register_type}) - if tag_found: - print("{} = {}".format(tag_found['tag_name'], tag_found['val'])) - super(AnalogTagDataBlock, self).setValues(address, tag_found['val']) - super(AnalogTagDataBlock, self).setValues(address + 3, 0) + except Exception as e: + print(e) return super(AnalogTagDataBlock, self).getValues(address, count=count) def setValues(self, address, value): - ''' Sets the requested values of the datastore + ''' + Sets the requested values of the datastore :param address: The starting address :param values: The new values to be set diff --git a/test.py b/test.py index a412199..556e384 100644 --- a/test.py +++ b/test.py @@ -10,6 +10,7 @@ from pymodbus.client.sync import ModbusTcpClient as ModbusClient # ---------------------------------------------------------------------------# from pymongo import MongoClient import unittest +import struct # ---------------------------------------------------------------------------# # configure the client logging @@ -44,44 +45,65 @@ def close_enough(a, b): return False +def lebyte_to_float(word_list): + ''' + Converts list of little-endian bytes to float + ''' + packed_string = struct.pack("HH", *word_list) + unpacked_float = struct.unpack("f", packed_string)[0] + return unpacked_float + + +def lebyte_to_integer(word_list): + ''' + Converts list(size = 1) of little-endian bytes to Integer + ''' + try: + packed_string = struct.pack("H", *word_list) + unpacked_int = struct.unpack("h", packed_string)[0] + except Exception as e: + print("Unable to convert {} to integer".format(word_list)) + return False + return unpacked_int + + # ---------------------------------------------------------------------------# # specify slave to query # ---------------------------------------------------------------------------# -class TestStringMethods(unittest.TestCase): +class TestModbusDatabaseValues(unittest.TestCase): def test_holding_registers(self): modbus_client.connect() tag_in_db = mongo_tags.find({"register_type": 'hr'}) for db_tag in tag_in_db: try: - database_actual_value = float(db_tag['val_actual']) database_value = db_tag['val'] - if db_tag['scale_type'] == 0: - database_calc_value = float(db_tag['val']) / float(db_tag['scale_multiplier']) - else: - database_calc_value = float(db_tag['val']) * float(db_tag['scale_multiplier']) except KeyError: print("No value in DB for {}".format(db_tag['tag_name'])) - + reg = [] try: - reg = modbus_client.read_holding_registers(db_tag['register_number'] - 1, 5).registers + if db_tag['tag_type'][-3:] == 'INT': + reg = modbus_client.read_holding_registers(db_tag['register_number'] - 1, 1).registers + elif db_tag['tag_type'] == 'REAL': + reg = modbus_client.read_holding_registers(db_tag['register_number'] - 1, 2).registers # print(reg) except AttributeError: print("Could not get register {} for {}".format(db_tag['register_number'], db_tag['tag_name'])) - self.assertTrue(1 == 0) - next() + continue if reg: - modbus_value = reg[0] - if int(reg[1]) == 0: - modbus_actual_value = float(modbus_value) / float(reg[2]) - elif int(reg[1]) == 1: - modbus_actual_value = float(modbus_value) * float(reg[2]) + if len(reg) == 2: + # r = reg.reverse() + modbus_value = lebyte_to_float(reg) + else: + modbus_value = lebyte_to_integer(reg) # print("Modbus Actual: {}".format(modbus_actual_value)) # print("Database Actual: {}".format(database_actual_value)) # print("Database Calc: {}".format(database_calc_value)) - # print("Modbus Scaled: {}".format(modbus_value)) - # print("Database Scaled: {}".format(database_value)) - self.assertTrue(modbus_actual_value == database_calc_value) + if not modbus_value == database_value: + print("---- {}: {} ----".format(db_tag['tag_name'], db_tag['register_number'])) + print(reg) + print("Modbus Scaled: {}".format(modbus_value)) + print("Database Scaled: {}".format(database_value)) self.assertTrue(modbus_value == database_value) modbus_client.close() @@ -90,37 +112,118 @@ class TestStringMethods(unittest.TestCase): tag_in_db = mongo_tags.find({"register_type": 'ir'}) for db_tag in tag_in_db: try: - database_actual_value = float(db_tag['val_actual']) database_value = db_tag['val'] - if db_tag['scale_type'] == 0: - database_calc_value = float(db_tag['val']) / float(db_tag['scale_multiplier']) - else: - database_calc_value = float(db_tag['val']) * float(db_tag['scale_multiplier']) except KeyError: print("No value in DB for {}".format(db_tag['tag_name'])) - + reg = [] try: - reg = modbus_client.read_input_registers(db_tag['register_number'] - 1, 5).registers + if db_tag['tag_type'][-3:] == 'INT': + reg = modbus_client.read_input_registers(db_tag['register_number'] - 1, 1).registers + elif db_tag['tag_type'] == 'REAL': + reg = modbus_client.read_input_registers(db_tag['register_number'] - 1, 2).registers + elif db_tag['tag_type'] == 'ARRAY': + continue + # print(reg) except AttributeError: print("Could not get register {} for {}".format(db_tag['register_number'], db_tag['tag_name'])) continue if reg: - modbus_value = reg[0] - if int(reg[1]) == 0: - modbus_actual_value = float(modbus_value) / float(reg[2]) - elif int(reg[1]) == 1: - modbus_actual_value = float(modbus_value) * float(reg[2]) + if len(reg) > 0: + if len(reg) == 2: + # r = reg.reverse() + modbus_value = lebyte_to_float(reg) + elif len(reg) == 1: + modbus_value = lebyte_to_integer(reg) - # print("Modbus Actual: {}".format(modbus_actual_value)) - # print("Database Actual: {}".format(database_actual_value)) - # print("Database Calc: {}".format(database_calc_value)) - # print("Modbus Scaled: {}".format(modbus_value)) - # print("Database Scaled: {}".format(database_value)) - self.assertTrue(modbus_actual_value == database_calc_value) - self.assertTrue(modbus_value == database_value) + # print("Modbus Actual: {}".format(modbus_actual_value)) + # print("Database Actual: {}".format(database_actual_value)) + # print("Database Calc: {}".format(database_calc_value)) + if not modbus_value == database_value: + print("---- {}: {} ----".format(db_tag['tag_name'], db_tag['register_number'])) + print(reg) + print("Modbus Scaled: {}".format(modbus_value)) + print("Database Scaled: {}".format(database_value)) + self.assertTrue(modbus_value == database_value) modbus_client.close() + def test_arrays(self): + modbus_client.connect() + tag_in_db = mongo_tags.find({"register_type": 'ir'}) + for db_tag in tag_in_db: + try: + database_value = db_tag['val'] + except KeyError: + print("No value in DB for {}".format(db_tag['tag_name'])) + reg = [] + array_values = [] + try: + if db_tag['tag_type'] == 'ARRAY': + array_regs = [] + db_vals = db_tag['val'] + reg_len = db_tag['arr_len'] * 2 + get_len = 125 + num_gets = int(reg_len) / get_len + last_get = reg_len % get_len + for x in range(0, num_gets): + inp_register = (int(db_tag['register_number']) - 1) + (get_len * x) + read_registers = modbus_client.read_input_registers(inp_register, get_len).registers + array_regs = array_regs + read_registers + if last_get > 0: + array_regs = array_regs + modbus_client.read_input_registers((db_tag['register_number'] - 1) + (get_len * num_gets), last_get).registers + + for i in range(0, reg_len, 2): + array_values.append(lebyte_to_float([array_regs[i], array_regs[i + 1]])) + else: + continue + + except AttributeError: + print("Could not get register {} for {}".format(db_tag['register_number'], db_tag['tag_name'])) + continue + if not array_values == db_vals: + if len(array_values) > 0: + for i in range(0, len(array_values)): + print("{} = {} - {}".format(i, array_values[i], db_vals[i])) + self.assertTrue(array_values == db_vals) + modbus_client.close() + + def test_coils(self): + modbus_client.connect() + tag_in_db = mongo_tags.find({"register_type": 'co'}) + for db_tag in tag_in_db: + try: + database_value = db_tag['val'] + except KeyError: + print("No value in DB for {}".format(db_tag['tag_name'])) + + try: + reg = modbus_client.read_coils(db_tag['register_number'] - 1, 1).bits + if not database_value == reg[0]: + print("{} =/= {}".format(database_value, reg[0])) + self.assertTrue(database_value == reg[0]) + + except AttributeError: + print("Could not get register {} for {}".format(db_tag['register_number'], db_tag['tag_name'])) + continue + + def test_digital_inputs(self): + modbus_client.connect() + tag_in_db = mongo_tags.find({"register_type": 'di'}) + for db_tag in tag_in_db: + try: + database_value = db_tag['val'] + except KeyError: + print("No value in DB for {}".format(db_tag['tag_name'])) + + try: + reg = modbus_client.read_discrete_inputs(db_tag['register_number'] - 1, 1).bits + if not database_value == reg[0]: + print("{} =/= {}".format(database_value, reg[0])) + self.assertTrue(database_value == reg[0]) + + except AttributeError: + print("Could not get register {} for {}".format(db_tag['register_number'], db_tag['tag_name'])) + continue if __name__ == '__main__': unittest.main()