Sujune: Upload

This commit is contained in:
sujunelee 2025-05-28 14:37:03 +09:00
parent 310f0b507d
commit fe68e4e7e0
4 changed files with 79 additions and 54 deletions

View File

@ -6,8 +6,8 @@
] ]
}, },
"ref_zero_point": { "ref_zero_point": {
"oilInFlowRate": 4005, "oilInFlowRate": 3995,
"waterInFlowRate": 4000 "waterInFlowRate": 3984
}, },
"cdu_digital_list": { "cdu_digital_list": {
"valve1OpenStatus": [ "valve1OpenStatus": [
@ -164,11 +164,11 @@
"tank_pdu_list": { "tank_pdu_list": {
"pduTank1": [ "pduTank1": [
1, 1,
"n" "y"
], ],
"pduTank2": [ "pduTank2": [
2, 2,
"n" "y"
], ],
"pduTank3": [ "pduTank3": [
3, 3,

View File

@ -1,18 +1,18 @@
{ {
"cmd": "none",
"get_data_interval": 2, "get_data_interval": 2,
"set_zero_flow": "n",
"valve1": "Off",
"valve2": "Off",
"inverter": { "inverter": {
"inverter1": "Off", "inverter1": "Off",
"inverter1Frq": 50, "inverter1Acc": 10,
"inverter1Acc": 5.0, "inverter1Dec": 5,
"inverter1Dec": 10.0, "inverter1Frq": 40,
"inverter2": "Off", "inverter2": "Off",
"inverter2Frq": 40, "inverter2Acc": 10,
"inverter2Acc": 5.0, "inverter2Dec": 5,
"inverter2Dec": 10.0 "inverter2Frq": 20
}, },
"mode": "auto", "mode": "auto",
"cmd": "none" "set_zero_flow": "n",
"valve1": "Off",
"valve2": "Off"
} }

View File

@ -8,5 +8,5 @@ spec:
package: requirements.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.) package: requirements.txt # 설치할 Python 패키지 정보 파일입니다.(기본 값은 requirement.txt 입니다.)
runtime: python3.9 runtime: python3.9
stackbase: stackbase:
tagName: v2.0.4 # Stackbase(gitea)에 릴리즈 태그명 입니다. tagName: v2.0.5 # Stackbase(gitea)에 릴리즈 태그명 입니다.
repoName: aquarack-sensor-collector # Satackbase(gitea)에 저장될 저장소 이릅니다. repoName: aquarack-sensor-collector # Satackbase(gitea)에 저장될 저장소 이릅니다.

103
main.py
View File

@ -23,6 +23,7 @@ def get_modbus(evt, serial_obj):
valve_status = [False] * 8 valve_status = [False] * 8
pre_dict = {} pre_dict = {}
init_flag = 0 init_flag = 0
frq1, acc1, dec1, frq2, acc2, dec2 = 0, 0, 0, 0, 0, 0
while isThread: while isThread:
evt.wait() evt.wait()
@ -84,7 +85,7 @@ def get_modbus(evt, serial_obj):
pub_dict[j] = ((cdu_analog.registers[i] - 4000) / 16000) * 100 pub_dict[j] = ((cdu_analog.registers[i] - 4000) / 16000) * 100
elif j == 'oilOutTemp' or j == 'waterOutTemp': elif j == 'oilOutTemp' or j == 'waterOutTemp':
scale = ((cdu_analog.registers[i] - 4000) / 16000) # need to edit for temperature sensor scale = ((cdu_analog.registers[i] - 4000) / 16000) # need to edit for temperature sensor
pub_dict[j] = (scale * 100) - 20 pub_dict[j] = (scale * 100)
elif j == 'oilInPress' or j == 'waterInPress': elif j == 'oilInPress' or j == 'waterInPress':
pub_dict[j] = ((cdu_analog.registers[i] - 4000) / 16000) # need to edit for pressure sensor pub_dict[j] = ((cdu_analog.registers[i] - 4000) / 16000) # need to edit for pressure sensor
@ -107,7 +108,14 @@ def get_modbus(evt, serial_obj):
inverter_status[2] = 'running' inverter_status[2] = 'running'
elif run_status & 0x08: elif run_status & 0x08:
inverter_status[2] = 'error' inverter_status[2] = 'error'
except Exception as e:
inverter_status[0] = -9999
inverter_status[1] = 'CLOST'
inverter_status[2] = 'error'
print(f'Inverter Status Error: {e}')
try:
# M100
res = client1.read_holding_registers(address=9, count=6, slave=11) res = client1.read_holding_registers(address=9, count=6, slave=11)
inverter_status[3] = res.registers[0] / 100 # frequncy inverter_status[3] = res.registers[0] / 100 # frequncy
inverter_status[4] = get_inverter_errorcode(res.registers[5]) # errorcode inverter_status[4] = get_inverter_errorcode(res.registers[5]) # errorcode
@ -118,12 +126,14 @@ def get_modbus(evt, serial_obj):
inverter_status[5] = 'running' inverter_status[5] = 'running'
elif run_status & 0x08: elif run_status & 0x08:
inverter_status[5] = 'error' inverter_status[5] = 'error'
for i, j in enumerate(p_col):
pub_dict[j] = inverter_status[i]
except Exception as e: except Exception as e:
inverter_status[3] = -9999
inverter_status[4] = 'CLOST'
inverter_status[5] = 'error'
print(f'Inverter Status Error: {e}') print(f'Inverter Status Error: {e}')
for i, j in enumerate(p_col):
pub_dict[j] = inverter_status[i]
try: try:
if control_data['mode'] == 'auto': if control_data['mode'] == 'auto':
if control_data['cmd'] == 'init': if control_data['cmd'] == 'init':
@ -193,6 +203,17 @@ def get_modbus(evt, serial_obj):
cmd_status = 'act1' cmd_status = 'act1'
cmd_sub_status = 'closeValve2' cmd_sub_status = 'closeValve2'
pub_dict['cmd'] = 'startAct1' pub_dict['cmd'] = 'startAct1'
elif cmd_sub_status == 'workingPump1':
if pub_dict['pump1StatusRunning'] == 'running':
cmd_status = 'none'
cmd_sub_status = 'workingPump1'
pub_dict['cmd'] = 'workingAct1'
control_data['cmd'] = 'none'
frq1 = int(control_data['inverter']['inverter1Frq'] * 100)
acc1 = int(control_data['inverter']['inverter1Acc'] * 10)
dec1 = int(control_data['inverter']['inverter1Dec'] * 10)
client1.write_registers(address=4, values=[frq1, 194, acc1, dec1], slave=10)
elif cmd_sub_status == 'workingPump2': elif cmd_sub_status == 'workingPump2':
cmd_status = 'act1' cmd_status = 'act1'
@ -235,10 +256,10 @@ def get_modbus(evt, serial_obj):
cmd_sub_status = 'startPump1' cmd_sub_status = 'startPump1'
elif cmd_sub_status == 'startPump1': elif cmd_sub_status == 'startPump1':
frq = int(control_data['inverter']['inverter1Frq'] * 100) frq1 = int(control_data['inverter']['inverter1Frq'] * 100)
acc = int(control_data['inverter']['inverter1Acc'] * 10) acc1 = int(control_data['inverter']['inverter1Acc'] * 10)
dec = int(control_data['inverter']['inverter1Dec'] * 10) dec1 = int(control_data['inverter']['inverter1Dec'] * 10)
client1.write_registers(address=4, values=[frq, 194, acc, dec], slave=10) client1.write_registers(address=4, values=[frq1, 194, acc1, dec1], slave=10)
cmd_sub_status = 'startingPump1' cmd_sub_status = 'startingPump1'
elif cmd_sub_status == 'startingPump1': elif cmd_sub_status == 'startingPump1':
@ -263,7 +284,18 @@ def get_modbus(evt, serial_obj):
cmd_status = 'act2' cmd_status = 'act2'
cmd_sub_status = 'closeValve1' cmd_sub_status = 'closeValve1'
pub_dict['cmd'] = 'startAct2' pub_dict['cmd'] = 'startAct2'
elif cmd_sub_status == 'workingPump2':
if pub_dict['pump2StatusRunning'] == 'running':
cmd_status = 'none'
cmd_sub_status = 'workingPump2'
pub_dict['cmd'] = 'workingAct2'
control_data['cmd'] = 'none'
frq2 = int(control_data['inverter']['inverter2Frq'] * 100)
acc2 = int(control_data['inverter']['inverter2Acc'] * 10)
dec2 = int(control_data['inverter']['inverter2Dec'] * 10)
client1.write_registers(address=4, values=[frq2, 194, acc2, dec2], slave=11)
elif cmd_sub_status == 'workingPump1': elif cmd_sub_status == 'workingPump1':
cmd_status = 'act2' cmd_status = 'act2'
cmd_sub_status = 'stopPump1' cmd_sub_status = 'stopPump1'
@ -305,10 +337,10 @@ def get_modbus(evt, serial_obj):
cmd_sub_status = 'startPump2' cmd_sub_status = 'startPump2'
elif cmd_sub_status == 'startPump2': elif cmd_sub_status == 'startPump2':
frq = int(control_data['inverter']['inverter2Frq'] * 100) frq2 = int(control_data['inverter']['inverter2Frq'] * 100)
acc = int(control_data['inverter']['inverter2Acc'] * 10) acc2 = int(control_data['inverter']['inverter2Acc'] * 10)
dec = int(control_data['inverter']['inverter2Dec'] * 10) dec2 = int(control_data['inverter']['inverter2Dec'] * 10)
client1.write_registers(address=4, values=[frq, 194, acc, dec], slave=11) client1.write_registers(address=4, values=[frq2, 194, acc2, dec2], slave=11)
cmd_sub_status = 'startingPump2' cmd_sub_status = 'startingPump2'
elif cmd_sub_status == 'startingPump2': elif cmd_sub_status == 'startingPump2':
@ -332,39 +364,32 @@ def get_modbus(evt, serial_obj):
elif control_data['mode'] == 'manual': elif control_data['mode'] == 'manual':
if control_data != pre_dict: if control_data != pre_dict:
pub_dict['cmd'] = 'manual' pub_dict['cmd'] = 'manual'
if control_data['inverter']['inverter1'] == 'On' and cmd_status[0] == 0: # print(control_data)
frq = int(control_data['inverter']['inverter1Frq'] * 100) if control_data['inverter']['inverter1'] == 'On':
acc = int(control_data['inverter']['inverter1Acc'] * 10) frq1 = int(control_data['inverter']['inverter1Frq'] * 100)
dec = int(control_data['inverter']['inverter1Dec'] * 10) acc1 = int(control_data['inverter']['inverter1Acc'] * 10)
client1.write_registers(address=4, values=[frq, 194, acc, dec], slave=10) dec1 = int(control_data['inverter']['inverter1Dec'] * 10)
cmd_status[0] = 1 client1.write_registers(address=4, values=[frq1, 194, acc1, dec1], slave=10)
elif control_data['inverter']['inverter1'] == 'Off' and cmd_status[0] == 1: elif control_data['inverter']['inverter1'] == 'Off':
client1.write_registers(address=5, values=[193], slave=10) client1.write_registers(address=5, values=[193], slave=10)
cmd_status[0] = 0
if control_data['inverter']['inverter2'] == 'On' and cmd_status[1] == 0: if control_data['inverter']['inverter2'] == 'On':
frq = int(control_data['inverter']['inverter1Frq'] * 100) frq2 = int(control_data['inverter']['inverter2Frq'] * 100)
acc = int(control_data['inverter']['inverter1Acc'] * 10) acc2 = int(control_data['inverter']['inverter2Acc'] * 10)
dec = int(control_data['inverter']['inverter1Dec'] * 10) dec2 = int(control_data['inverter']['inverter2Dec'] * 10)
client1.write_registers(address=4, values=[frq, 194, acc, dec], slave=10) client1.write_registers(address=4, values=[frq2, 194, acc2, dec2], slave=11)
cmd_status[1] = 1 elif control_data['inverter']['inverter2'] == 'Off':
elif control_data['inverter']['inverter2'] == 'Off' and cmd_status[1] == 1: client1.write_registers(address=5, values=[193], slave=11)
client1.write_registers(address=5, values=[193], slave=10)
cmd_status[1] = 0
if control_data['valve1'] == 'On' and cmd_status[2] == 0: if control_data['valve1'] == 'On':
valve_status[0] = True valve_status[0] = True
cmd_status[2] = 1 elif control_data['valve1'] == 'Off':
elif control_data['valve1'] == 'Off' and cmd_status[2] == 1:
valve_status[0] = False valve_status[0] = False
cmd_status[2] = 0
if control_data['valve2'] == 'On' and cmd_status[3] == 0: if control_data['valve2'] == 'On':
valve_status[1] = True valve_status[1] = True
cmd_status[3] = 1 elif control_data['valve2'] == 'Off':
elif control_data['valve2'] == 'Off' and cmd_status[3] == 1:
valve_status[1] = False valve_status[1] = False
cmd_status[3] = 0
res = serial_obj.write_coils(address=0, values=valve_status, slave=5) res = serial_obj.write_coils(address=0, values=valve_status, slave=5)
else: else: