This commit is contained in:
2026-04-07 09:51:38 +08:00
parent ecba4d726a
commit 00dcd6b6cc
36 changed files with 2857 additions and 505 deletions

143
tests/pd_service.py Normal file
View File

@ -0,0 +1,143 @@
import sys
import os
import math
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from hardware.transmitter import TransmitterController
class PdService:
def __init__(self):
print('派单测试初始化')
self.transmitter_controller=TransmitterController()
# self.pd_record_bll=PDRecordBll()
def get_fact_volumn_12(self,block_number:str='') -> float:
"""获取实际派单发量"""
# _now_volume=0
if not block_number:
print('分块号不能为空')
return
_pd_volume=0
_init_lower_weight=self.transmitter_controller.read_data(2)
if _init_lower_weight is None:
print(f'获取重量异常,上料斗传感器错误')
print(f'获取重量异常,上料斗传感器错误')
return None
print(f'get_fact_volumn当前重量{_init_lower_weight}')
_per_volume=2480
_left_volume=_init_lower_weight/_per_volume
if block_number=='B1':
_left_volume=_left_volume-0.5
if _left_volume>0:
_pd_volume=1.6-_left_volume
_pd_volume=math.ceil(_pd_volume*10)/10
else:
_pd_volume=1.6
elif block_number in ['B3','L1']:
_pd_volume=1.5
elif block_number=='B2':
#浇B3
_pd_volume=1.6
# self.prev_pd_volume=2
#调整
elif block_number=='L2':
if _init_lower_weight>950 and _init_lower_weight<=1350:
_pd_volume=1.5
elif _init_lower_weight>1350 and _init_lower_weight<=1600:
_pd_volume=1.4
elif _init_lower_weight<=950 and _init_lower_weight>800:
_pd_volume=1.6
else:
#1.9方大约L2和F的量
_pd_volume=1.9
# if _weight>1300:
#留0.15 math.floor(_now_volume*10)/10 保留一位小数,丢掉其他的
# if prev_pd_volume>0:
# _pd_volume=_pd_volume-(_left_volume+prev_pd_volume-1.86)
# else:
#不知道上一块叫的多少
_pd_volume=_pd_volume-(_left_volume+1.6-1.46)
_pd_volume=math.ceil(_pd_volume*10)/10+0.1
# _pd_volume=math.ceil(_pd_volume*10)/10
if _pd_volume>2.1:
_pd_volume=2.1
elif _pd_volume<0.8:
_pd_volume=0.8
return _pd_volume
def get_fact_volumn(self,block_number:str='') -> float:
"""获取实际派单发量"""
# _now_volume=0
if not block_number:
print('分块号不能为空')
return
_pd_volume=0
_init_lower_weight=self.transmitter_controller.read_data(2)
if _init_lower_weight is None:
print(f'获取重量异常,上料斗传感器错误')
print(f'获取重量异常,上料斗传感器错误')
return None
print(f'get_fact_volumn当前重量{_init_lower_weight}')
_per_volume=2480
_left_volume=_init_lower_weight/_per_volume
if block_number=='B1':
_left_volume=_left_volume-0.6
if _left_volume>0:
_pd_volume=2-_left_volume
_pd_volume=math.ceil(_pd_volume*10)/10
else:
_pd_volume=2
elif block_number in ['B3','L1']:
_pd_volume=1.9
elif block_number=='B2':
#浇B3
_pd_volume=2
# self.prev_pd_volume=2
#调整
elif block_number=='L2':
if _init_lower_weight>1250 and _init_lower_weight<=1650:
_pd_volume=1.9
elif _init_lower_weight>1650 and _init_lower_weight<=1900:
_pd_volume=1.8
elif _init_lower_weight<=1250 and _init_lower_weight>1100:
_pd_volume=2
else:
#2.4方大约L2和F的量
_pd_volume=2.4
# if _weight>1300:
#留0.15 math.floor(_now_volume*10)/10 保留一位小数,丢掉其他的
# if prev_pd_volume>0:
# _pd_volume=_pd_volume-(_left_volume+prev_pd_volume-1.86)
# else:
#不知道上一块叫的多少
_pd_volume=_pd_volume-(_left_volume+1.9-1.86)
_pd_volume=math.ceil(_pd_volume*10)/10+0.1
# _pd_volume=math.ceil(_pd_volume*10)/10
if _pd_volume>2.1:
_pd_volume=2.1
elif _pd_volume<0.8:
_pd_volume=0.8
return _pd_volume
if __name__ == "__main__":
system = PdService()
volume= system.get_fact_volumn('L2',1.9)
print("派单方量:",volume)

View File

@ -7,13 +7,14 @@ import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import pytest
import time
from core.system_state import SystemState
from core.system_state import SystemState,PD_StatusEnum
from core.system import FeedingControlSystem
from busisness.models import ArtifactInfo,FreqRecordModel
from busisness.blls import FreqRecordBll
from hardware.relay import RelayController
system=FeedingControlSystem()
system.state.current_mould=ArtifactInfo(MouldCode="SHR2B3-5")
system.state.current_mould=ArtifactInfo(MouldCode="SHR2F-8")
def test_pd_record_send():
"""测试派单记录发送"""
@ -22,12 +23,24 @@ def test_pd_record_send():
def test_api_process():
system._process_api_db()
def test_freq_record_send():
"""测试频率记录发送"""
bll=FreqRecordBll()
record_id=bll.insert_freq_record(FreqRecordModel(ArtifactID='12',ArtifactActionID=1,MouldCode="SHR2B3-5",Freq=100.0))
assert record_id > 0
def test_upper_to_jbl():
"""测试上料斗到搅拌楼"""
relay = RelayController()
relay.control_upper_to_jbl()
def test_upper_to_zd():
"""测试上料斗到料斗"""
relay = RelayController()
relay.control_upper_to_zd()
def add(a, b):
@ -89,11 +102,21 @@ if __name__ == "__main__":
# 运行所有测试
system.opcua_client_feed.start()
system.start_opc_queue_thread()
test_pd_record_send()
system.opcua_client_feed.start_accept()
# system.start_opc_queue_thread()
# system.start_pd_thread()
# time.sleep(10)
# system.state.pd_status=PD_StatusEnum.PD_Ready
# test_pd_record_send()
# pytest.main([f'{__file__}::test_api_process'])
# pytest.main([f'{__file__}::test_freq_record_send'])
# pytest.main([f'{__file__}::test_upper_to_jbl'])
# relay = RelayController()
# relay.control(relay.UPPER_TO_ZD, 'close')
# relay.control(relay.UPPER_TO_JBL, 'close')
# pytest.main([f'{__file__}::test_upper_to_zd'])
while True:
time.sleep(1)