From 8dbb6c0ba5e45bc5f2d741a6bbdf3c95015a1f76 Mon Sep 17 00:00:00 2001 From: KwanghoKim Date: Fri, 15 Dec 2023 15:49:53 +0900 Subject: [PATCH] edit mulfunction --- cnt_collector_485.py | 97 ++++++++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 45 deletions(-) diff --git a/cnt_collector_485.py b/cnt_collector_485.py index 87f927c..4153f5c 100644 --- a/cnt_collector_485.py +++ b/cnt_collector_485.py @@ -84,33 +84,44 @@ def Read_Temperature(client, ch_num): id = 3 name = 'tempFn3' - result = client.read_holding_registers(address=2003, count=2, slave=id) + result = client.read_holding_registers(address=2002, count=1, slave=id) if not result.isError(): # print(f'Temperature: {ch_num} {result.registers}') value = (result.registers[0])/10 + + data = { + "assetCode": info['mqtt']['assetCode'], + "timestamp": int(time.time()), + "dataType": "DATA", + "data": { + name: value + } + } + + Publish_mqtt(data) else: print(f'Temperature Err: {ch_num} \n {result}') - data = { - "assetCode": info['mqtt']['assetCode'], - "timestamp": int(time.time()), - "dataType": "DATA", - "data": { - name: value - } - } - - Publish_mqtt(data) - -def Set_Temperature(client, ch_num, value): +def Set_Temperature(client, ch_num, order, val=None): if ch_num == 1: id = 1 elif ch_num == 2: id = 2 else: # ch_num == 3 id = 3 + + if order == 'start': + client.write_register(address=2336, value=val, slave=id) # H.SP_L1 + client.write_register(address=2338, value=val, slave=id) # H.TSP_L1 + client.write_register(address=2340, value=1440, slave=id) # H.TM - return 0 + client.write_register(address=2315, value=1, slave=id) # MODE + elif order == 'change': + client.write_register(address=2336, value=val, slave=id) # H.SP_L1 + client.write_register(address=2338, value=val, slave=id) # H.TSP_L1 + client.write_register(address=2340, value=1440, slave=id) # H.TM + else: # order == 'stop' + client.write_register(address=2315, value=0, slave=id) # MODE def Read_Power(client, ch_num): if ch_num == 1: @@ -127,26 +138,27 @@ def Read_Power(client, ch_num): s_power_rate = client.read_input_registers(address=306, count=1, slave=id) t_power_rate = client.read_input_registers(address=307, count=1, slave=id) - max_power = 23036 + if not r_power_rate.isError() and not s_power_rate.isError() and not t_power_rate.isError(): + max_power = 23036 - mean_power_rate = ( - (r_power_rate.registers[0] + - s_power_rate.registers[0] + - t_power_rate.registers[0]) / 30000) + mean_power_rate = ( + (r_power_rate.registers[0] + + s_power_rate.registers[0] + + t_power_rate.registers[0]) / 30000) - value = (max_power * mean_power_rate) / 1000 - # print(value) - - data = { - "assetCode": info['mqtt']['assetCode'], - "timestamp": int(time.time()), - "dataType": "DATA", - "data": { - name: value + value = (max_power * mean_power_rate) / 1000 + # print(value) + + data = { + "assetCode": info['mqtt']['assetCode'], + "timestamp": int(time.time()), + "dataType": "DATA", + "data": { + name: value + } } - } - # print(data) - Publish_mqtt(data) + # print(data) + Publish_mqtt(data) result = [] def Read_GasDetector(client, ch_num): @@ -218,18 +230,10 @@ def Read_GasDetector(client, ch_num): def Set_FlowPump(client, value): id = 31 - # print(f'Set_FlowPump In!: {value}') val = int(float(value) * 1000) register_value = val * 8 + 10000 - # print(f'register_value: {register_value}') - client.write_registers(address=40004, values=register_value, slave=id) - - try: - result = client.read_holding_registers(address=40004, count=1, slave=id) - # print(f'result: {result.registers}') - except Exception as e: - print(e) + client.write_registers(address=3, values=register_value, slave=id) def Publish_mqtt(data): send_mqtt_data = json.dumps(data, indent=4) @@ -262,14 +266,17 @@ def Command_Read(): Set_FlowPump(client=client4, value=float(cmd['cmd']['precAc'])) if cmd['cmd']['tempFn1'] != 'null': - Set_Temperature(client=client1, ch_num=1, value=float(cmd['cmd']['tempFn1'])) + Set_Temperature(client=client1, ch_num=1, order=cmd['type'], val=float(cmd['cmd']['tempFn1'])) if cmd['cmd']['tempFn2'] != 'null': - Set_Temperature(client=client2, ch_num=2, value=float(cmd['cmd']['tempFn1'])) + Set_Temperature(client=client2, ch_num=2, order=cmd['type'], val=float(cmd['cmd']['tempFn2'])) if cmd['cmd']['tempFn3'] != 'null': - Set_Temperature(client=client2, ch_num=3, value=float(cmd['cmd']['tempFn1'])) + Set_Temperature(client=client3, ch_num=3, order=cmd['type'], val=float(cmd['cmd']['tempFn3'])) else: # 'stop' in cmd['type] + Set_Temperature(client=client1, ch_num=1, order=cmd['type']) + Set_Temperature(client=client2, ch_num=2, order=cmd['type']) + Set_Temperature(client=client3, ch_num=3, order=cmd['type']) Set_FlowPump(client=client4, value=0.0) cmd = { @@ -289,12 +296,12 @@ while True: # Need to add a function call for reading control.json Command_Read() - # # Read Temperature + # Read Temperature Read_Temperature(client1, 1) Read_Temperature(client2, 2) Read_Temperature(client3, 3) - # # Read Power + # Read Power Read_Power(client1, 1) Read_Power(client2, 2) Read_Power(client3, 3)