2026-02-09 11:36:37 +08:00
|
|
|
|
import minimalmodbus
|
2025-12-12 18:00:14 +08:00
|
|
|
|
import time
|
|
|
|
|
|
|
2026-02-09 11:36:37 +08:00
|
|
|
|
from serial import SerialException
|
2025-12-12 18:00:14 +08:00
|
|
|
|
|
2026-02-09 11:36:37 +08:00
|
|
|
|
# 设置频率为55Hz并启动变频器
|
|
|
|
|
|
def start_inverter_55hz():
|
2025-12-12 18:00:14 +08:00
|
|
|
|
try:
|
2026-02-09 11:36:37 +08:00
|
|
|
|
# 1. 连接到变频器
|
|
|
|
|
|
# COM3: 串口地址
|
|
|
|
|
|
# 1: 从站地址
|
|
|
|
|
|
inverter = minimalmodbus.Instrument('COM3', 1)
|
|
|
|
|
|
|
|
|
|
|
|
# 2. 配置串口参数
|
|
|
|
|
|
inverter.serial.baudrate = 9600 # 波特率
|
|
|
|
|
|
inverter.serial.bytesize = 8 # 数据位
|
|
|
|
|
|
inverter.serial.parity = 'N' # 无校验
|
|
|
|
|
|
inverter.serial.stopbits = 1 # 停止位
|
|
|
|
|
|
inverter.serial.timeout = 1.0 # 超时时间
|
|
|
|
|
|
inverter.mode = minimalmodbus.MODE_RTU # RTU模式
|
|
|
|
|
|
|
|
|
|
|
|
print("✅ 已连接到变频器")
|
|
|
|
|
|
|
|
|
|
|
|
# 3. 设置频率为55Hz
|
|
|
|
|
|
# 假设最大频率为50Hz,55Hz对应110% = 11000
|
|
|
|
|
|
# # 如果您的最大频率不同,请调整下面的计算
|
|
|
|
|
|
# frequency_value = int(70 * 100)
|
|
|
|
|
|
# inverter.write_register(0x1000, frequency_value)
|
|
|
|
|
|
# print(f"✅ 频率设置为200Hz")
|
|
|
|
|
|
|
|
|
|
|
|
frequency_value = int(210 * 100)
|
|
|
|
|
|
inverter.write_register(0x7310, frequency_value)
|
|
|
|
|
|
|
|
|
|
|
|
# freq = inverter.read_register(0x7310)
|
|
|
|
|
|
# print(f" 读取到的频率值: {freq}")
|
|
|
|
|
|
|
|
|
|
|
|
# max_freq = 300
|
|
|
|
|
|
# target_freq = 230
|
|
|
|
|
|
# frequency_value = int(target_freq / max_freq * 100 * 100) # = 2333
|
|
|
|
|
|
# inverter.write_register(0x1000, frequency_value)
|
|
|
|
|
|
|
|
|
|
|
|
# time.sleep(0.5) # 等待一下
|
|
|
|
|
|
|
|
|
|
|
|
# 4. 启动变频器(正转运行)
|
|
|
|
|
|
inverter.write_register(0x2000, 1) # 1=正转运行
|
|
|
|
|
|
print("✅ 变频器已启动(正转运行)")
|
|
|
|
|
|
|
|
|
|
|
|
# time.sleep()
|
|
|
|
|
|
|
|
|
|
|
|
# inverter.write_register(0x2000, 6) # 1=正转运行
|
|
|
|
|
|
# print("✅ 变频器已停止(正转运行)")
|
|
|
|
|
|
|
|
|
|
|
|
# 5. 检查状态
|
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
|
#读取3000H可直接读取变频器的当前状态(0001:正转运行;0002:反转运行;0003:停机;0004:电机参数辨识;0005:故障)。
|
|
|
|
|
|
status = inverter.read_register(0x3000)
|
|
|
|
|
|
|
|
|
|
|
|
if status == 1:
|
|
|
|
|
|
print("✅ 变频器正在正转运行")
|
|
|
|
|
|
elif status == 5:
|
|
|
|
|
|
print("⚠️ 变频器故障")
|
|
|
|
|
|
else:
|
|
|
|
|
|
print(f"📊 变频器状态码: {status}")
|
|
|
|
|
|
|
|
|
|
|
|
except SerialException:
|
|
|
|
|
|
print('无法连接或打开串口')
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
|
print(f"❌ 错误: {e}")
|
|
|
|
|
|
print("请检查:")
|
|
|
|
|
|
print("1. COM3端口是否正确?")
|
|
|
|
|
|
print("2. 变频器电源和通信线是否连接正常?")
|
|
|
|
|
|
print("3. 变频器地址和波特率设置是否正确?")
|
|
|
|
|
|
|
2025-12-12 18:00:14 +08:00
|
|
|
|
finally:
|
2026-02-09 11:36:37 +08:00
|
|
|
|
print("脚本执行完成")
|
2025-12-12 18:00:14 +08:00
|
|
|
|
|
2026-02-09 11:36:37 +08:00
|
|
|
|
# 运行
|
2025-12-12 18:00:14 +08:00
|
|
|
|
if __name__ == "__main__":
|
2026-02-09 11:36:37 +08:00
|
|
|
|
start_inverter_55hz()
|