测试模块
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -51,6 +51,11 @@ class InverterController:
|
||||
|
||||
def control(self, action):
|
||||
"""控制变频器启停"""
|
||||
# 先检查动作是否有效
|
||||
if action not in ['start', 'stop']:
|
||||
print(f"无效操作: {action}")
|
||||
return False
|
||||
|
||||
try:
|
||||
if not self.relay_controller.modbus_client.connect():
|
||||
print("无法连接网络继电器Modbus服务")
|
||||
@ -70,9 +75,6 @@ class InverterController:
|
||||
slave=self.config['slave_id']
|
||||
)
|
||||
print("停止变频器")
|
||||
else:
|
||||
print(f"无效操作: {action}")
|
||||
return False
|
||||
|
||||
if isinstance(result, Exception):
|
||||
print(f"控制失败: {result}")
|
||||
|
||||
Binary file not shown.
BIN
tests/__pycache__/test_relay_controller.cpython-39.pyc
Normal file
BIN
tests/__pycache__/test_relay_controller.cpython-39.pyc
Normal file
Binary file not shown.
155
tests/hardware_test.py
Normal file
155
tests/hardware_test.py
Normal file
@ -0,0 +1,155 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
现场硬件测试脚本
|
||||
用于测试实际控制器的功能,包括:
|
||||
- 继电器控制(各种开关控制)
|
||||
- 变频器控制(启动/停止、频率设置)
|
||||
- 变送器数据读取(重量测量)
|
||||
"""
|
||||
|
||||
import time
|
||||
from hardware.relay import RelayController
|
||||
from hardware.inverter import InverterController
|
||||
from hardware.transmitter import TransmitterController
|
||||
|
||||
|
||||
def test_relay_controls(relay):
|
||||
"""测试继电器控制功能"""
|
||||
print("\n=== 继电器控制测试 ===")
|
||||
|
||||
# 测试上料斗滑动门
|
||||
print("测试上料斗滑动门开启...")
|
||||
relay.control(relay.DOOR_UPPER, 'open')
|
||||
time.sleep(1)
|
||||
|
||||
print("测试上料斗滑动门关闭...")
|
||||
relay.control(relay.DOOR_UPPER, 'close')
|
||||
time.sleep(1)
|
||||
|
||||
# 测试上料斗出砼门
|
||||
print("测试上料斗出砼门开启...")
|
||||
relay.control(relay.DOOR_LOWER_1, 'open')
|
||||
time.sleep(1)
|
||||
|
||||
print("测试上料斗出砼门关闭...")
|
||||
relay.control(relay.DOOR_LOWER_1, 'close')
|
||||
time.sleep(1)
|
||||
|
||||
# 测试下料斗出砼门
|
||||
print("测试下料斗出砼门开启...")
|
||||
relay.control(relay.DOOR_LOWER_2, 'open')
|
||||
time.sleep(1)
|
||||
|
||||
print("测试下料斗出砼门关闭...")
|
||||
relay.control(relay.DOOR_LOWER_2, 'close')
|
||||
time.sleep(1)
|
||||
|
||||
# 测试上料斗破拱
|
||||
print("测试上料斗破拱开启...")
|
||||
relay.control(relay.BREAK_ARCH_UPPER, 'open')
|
||||
time.sleep(1)
|
||||
|
||||
print("测试上料斗破拱关闭...")
|
||||
relay.control(relay.BREAK_ARCH_UPPER, 'close')
|
||||
time.sleep(1)
|
||||
|
||||
# 测试下料斗破拱
|
||||
print("测试下料斗破拱开启...")
|
||||
relay.control(relay.BREAK_ARCH_LOWER, 'open')
|
||||
time.sleep(1)
|
||||
|
||||
print("测试下料斗破拱关闭...")
|
||||
relay.control(relay.BREAK_ARCH_LOWER, 'close')
|
||||
time.sleep(1)
|
||||
|
||||
# 测试状态读取
|
||||
print("读取当前继电器状态...")
|
||||
status = relay.get_status()
|
||||
print(f"继电器状态: {status}")
|
||||
|
||||
|
||||
def test_inverter_controls(inverter):
|
||||
"""测试变频器控制功能"""
|
||||
print("\n=== 变频器控制测试 ===")
|
||||
|
||||
# 测试启动
|
||||
print("测试启动变频器...")
|
||||
result = inverter.control('start')
|
||||
print(f"启动结果: {result}")
|
||||
time.sleep(2)
|
||||
|
||||
# 测试设置不同频率
|
||||
frequencies = [100.0, 200.0, 300.0, 400.0]
|
||||
for freq in frequencies:
|
||||
print(f"测试设置频率 {freq}Hz...")
|
||||
result = inverter.set_frequency(freq)
|
||||
print(f"设置频率 {freq}Hz 结果: {result}")
|
||||
time.sleep(2)
|
||||
|
||||
# 测试停止
|
||||
print("测试停止变频器...")
|
||||
result = inverter.control('stop')
|
||||
print(f"停止结果: {result}")
|
||||
time.sleep(1)
|
||||
|
||||
# 测试无效操作
|
||||
print("测试无效操作...")
|
||||
result = inverter.control('invalid')
|
||||
print(f"无效操作结果: {result}")
|
||||
|
||||
|
||||
def test_transmitter_reading(transmitter):
|
||||
"""测试变送器数据读取功能"""
|
||||
print("\n=== 变送器数据读取测试 ===")
|
||||
|
||||
# 测试读取上料斗重量
|
||||
print("测试读取上料斗重量...")
|
||||
weight = transmitter.read_data(1)
|
||||
print(f"上料斗重量: {weight}kg")
|
||||
time.sleep(1)
|
||||
|
||||
# 测试读取下料斗重量
|
||||
print("测试读取下料斗重量...")
|
||||
weight = transmitter.read_data(2)
|
||||
print(f"下料斗重量: {weight}kg")
|
||||
time.sleep(1)
|
||||
|
||||
# 测试连续读取
|
||||
print("连续读取重量数据 5 次...")
|
||||
for i in range(5):
|
||||
upper_weight = transmitter.read_data(1)
|
||||
lower_weight = transmitter.read_data(2)
|
||||
print(f"第{i+1}次读取 - 上料斗: {upper_weight}kg, 下料斗: {lower_weight}kg")
|
||||
time.sleep(1)
|
||||
|
||||
# 测试无效ID
|
||||
print("测试读取无效ID...")
|
||||
weight = transmitter.read_data(99)
|
||||
print(f"无效ID读取结果: {weight}")
|
||||
|
||||
|
||||
def main():
|
||||
"""主测试函数"""
|
||||
print("现场硬件测试开始...")
|
||||
|
||||
try:
|
||||
# 初始化控制器
|
||||
print("初始化控制器...")
|
||||
relay = RelayController(host='192.168.0.18', port=50000)
|
||||
inverter = InverterController(relay_controller=relay)
|
||||
transmitter = TransmitterController(relay_controller=relay)
|
||||
|
||||
# 执行各项测试
|
||||
test_relay_controls(relay)
|
||||
test_inverter_controls(inverter)
|
||||
test_transmitter_reading(transmitter)
|
||||
|
||||
print("\n所有测试完成!")
|
||||
|
||||
except Exception as e:
|
||||
print(f"测试过程中发生错误: {e}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user