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": {
"oilInFlowRate": 4005,
"waterInFlowRate": 4000
"oilInFlowRate": 3995,
"waterInFlowRate": 3984
},
"cdu_digital_list": {
"valve1OpenStatus": [
@ -164,11 +164,11 @@
"tank_pdu_list": {
"pduTank1": [
1,
"n"
"y"
],
"pduTank2": [
2,
"n"
"y"
],
"pduTank3": [
3,

View File

@ -1,18 +1,18 @@
{
"cmd": "none",
"get_data_interval": 2,
"set_zero_flow": "n",
"valve1": "Off",
"valve2": "Off",
"inverter": {
"inverter1": "Off",
"inverter1Frq": 50,
"inverter1Acc": 5.0,
"inverter1Dec": 10.0,
"inverter1Acc": 10,
"inverter1Dec": 5,
"inverter1Frq": 40,
"inverter2": "Off",
"inverter2Frq": 40,
"inverter2Acc": 5.0,
"inverter2Dec": 10.0
"inverter2Acc": 10,
"inverter2Dec": 5,
"inverter2Frq": 20
},
"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 입니다.)
runtime: python3.9
stackbase:
tagName: v2.0.4 # Stackbase(gitea)에 릴리즈 태그명 입니다.
tagName: v2.0.5 # Stackbase(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
pre_dict = {}
init_flag = 0
frq1, acc1, dec1, frq2, acc2, dec2 = 0, 0, 0, 0, 0, 0
while isThread:
evt.wait()
@ -84,7 +85,7 @@ def get_modbus(evt, serial_obj):
pub_dict[j] = ((cdu_analog.registers[i] - 4000) / 16000) * 100
elif j == 'oilOutTemp' or j == 'waterOutTemp':
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':
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'
elif run_status & 0x08:
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)
inverter_status[3] = res.registers[0] / 100 # frequncy
inverter_status[4] = get_inverter_errorcode(res.registers[5]) # errorcode
@ -118,12 +126,14 @@ def get_modbus(evt, serial_obj):
inverter_status[5] = 'running'
elif run_status & 0x08:
inverter_status[5] = 'error'
for i, j in enumerate(p_col):
pub_dict[j] = inverter_status[i]
except Exception as e:
inverter_status[3] = -9999
inverter_status[4] = 'CLOST'
inverter_status[5] = 'error'
print(f'Inverter Status Error: {e}')
for i, j in enumerate(p_col):
pub_dict[j] = inverter_status[i]
try:
if control_data['mode'] == 'auto':
if control_data['cmd'] == 'init':
@ -193,6 +203,17 @@ def get_modbus(evt, serial_obj):
cmd_status = 'act1'
cmd_sub_status = 'closeValve2'
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':
cmd_status = 'act1'
@ -235,10 +256,10 @@ def get_modbus(evt, serial_obj):
cmd_sub_status = 'startPump1'
elif cmd_sub_status == 'startPump1':
frq = int(control_data['inverter']['inverter1Frq'] * 100)
acc = int(control_data['inverter']['inverter1Acc'] * 10)
dec = int(control_data['inverter']['inverter1Dec'] * 10)
client1.write_registers(address=4, values=[frq, 194, acc, dec], slave=10)
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)
cmd_sub_status = 'startingPump1'
elif cmd_sub_status == 'startingPump1':
@ -263,7 +284,18 @@ def get_modbus(evt, serial_obj):
cmd_status = 'act2'
cmd_sub_status = 'closeValve1'
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':
cmd_status = 'act2'
cmd_sub_status = 'stopPump1'
@ -305,10 +337,10 @@ def get_modbus(evt, serial_obj):
cmd_sub_status = 'startPump2'
elif cmd_sub_status == 'startPump2':
frq = int(control_data['inverter']['inverter2Frq'] * 100)
acc = int(control_data['inverter']['inverter2Acc'] * 10)
dec = int(control_data['inverter']['inverter2Dec'] * 10)
client1.write_registers(address=4, values=[frq, 194, acc, dec], slave=11)
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)
cmd_sub_status = 'startingPump2'
elif cmd_sub_status == 'startingPump2':
@ -332,39 +364,32 @@ def get_modbus(evt, serial_obj):
elif control_data['mode'] == 'manual':
if control_data != pre_dict:
pub_dict['cmd'] = 'manual'
if control_data['inverter']['inverter1'] == 'On' and cmd_status[0] == 0:
frq = int(control_data['inverter']['inverter1Frq'] * 100)
acc = int(control_data['inverter']['inverter1Acc'] * 10)
dec = int(control_data['inverter']['inverter1Dec'] * 10)
client1.write_registers(address=4, values=[frq, 194, acc, dec], slave=10)
cmd_status[0] = 1
elif control_data['inverter']['inverter1'] == 'Off' and cmd_status[0] == 1:
# print(control_data)
if control_data['inverter']['inverter1'] == 'On':
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 control_data['inverter']['inverter1'] == 'Off':
client1.write_registers(address=5, values=[193], slave=10)
cmd_status[0] = 0
if control_data['inverter']['inverter2'] == 'On' and cmd_status[1] == 0:
frq = int(control_data['inverter']['inverter1Frq'] * 100)
acc = int(control_data['inverter']['inverter1Acc'] * 10)
dec = int(control_data['inverter']['inverter1Dec'] * 10)
client1.write_registers(address=4, values=[frq, 194, acc, dec], slave=10)
cmd_status[1] = 1
elif control_data['inverter']['inverter2'] == 'Off' and cmd_status[1] == 1:
client1.write_registers(address=5, values=[193], slave=10)
cmd_status[1] = 0
if control_data['inverter']['inverter2'] == 'On':
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 control_data['inverter']['inverter2'] == 'Off':
client1.write_registers(address=5, values=[193], slave=11)
if control_data['valve1'] == 'On' and cmd_status[2] == 0:
if control_data['valve1'] == 'On':
valve_status[0] = True
cmd_status[2] = 1
elif control_data['valve1'] == 'Off' and cmd_status[2] == 1:
elif control_data['valve1'] == 'Off':
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
cmd_status[3] = 1
elif control_data['valve2'] == 'Off' and cmd_status[3] == 1:
elif control_data['valve2'] == 'Off':
valve_status[1] = False
cmd_status[3] = 0
res = serial_obj.write_coils(address=0, values=valve_status, slave=5)
else: