变频器控制查询语音播报运行状态的python代码

import modbus_tk.modbus_rtu as modbus_rtu
import pyttsx3
import serial
import time

# 创建modbus通讯连接
master = modbus_rtu.RtuMaster(
    serial.Serial(port='COM3',  # 连接端口
                  baudrate=9600,  # 连接波特率
                  bytesize=8,  # 数据位
                  parity='N',  # 奇偶校验位
                  stopbits=1))  # 停止位
master.set_timeout(5.0) # 连接超市
master.set_verbose(True)

语音播报 = pyttsx3.init() # 语音播报器初始化


class 三科变频:
    def __init__(self,slave,starting_address,quantity_of_x):
        self.机号 = slave
        self.起始地址 = starting_address  # 寄存器开始地址
        self.读取长度 = quantity_of_x


    def 控制(self,output_value):
        try:
            master.execute(slave=self.机号,function_code=6,starting_address=self.起始地址,quantity_of_x=self.读取长度,output_value=output_value)

        except Exception as exc:
            print(str(exc))
    def 查询(self):
        try:
            read = master.execute(slave=self.机号,function_code=3,starting_address=self.起始地址,quantity_of_x=self.读取长度)
            print("通讯测试正常", read, type(read))  # 打印获取的数据
            a = f'当前运行频率为{read[0] / 100}赫兹,母线电压{read[1]/10}伏,输出电压{read[2]}伏,输出频率{read[6]/100}赫兹,输出电流{read[7]/10}安'
            print(a)
            语音播报.say(a)
            语音播报.runAndWait()
        except Exception as exc:
            print(str(exc))
    def 运行状态查询(self):
        try:
            read = master.execute(slave=self.机号,function_code=3,starting_address=self.起始地址,quantity_of_x=1)
            if read[0]==3:
                语音播报.say("变频器未启动")
                语音播报.runAndWait()
            elif read[0]==2:
                语音播报.say("变频器反转运行中");
                语音播报.runAndWait()
            else:
                语音播报.say('变频器正传运行中')
                语音播报.runAndWait()

        except Exception as exc:
            print(str(exc))
三科变频(1,0x1000,8).控制(5000)
三科变频(1,0x2000,8).控制(5)
time.sleep(4)
三科变频(1,0x1001,8).查询()
三科变频(1,0x3000,1).运行状态查询()

工控行业以实用为主,所以大多数一线工控人懂应用,却对技术原理理解薄弱,专业的程序员往往又缺乏具体的实践机会对具体的需求了解不足,那么工控行业的技术创新要如何进行呢?本文案例以python代码实现对变频器的通讯控制,旨在为一线工控人提供创新灵感,抛砖引玉。代码测试以三科SKI90变频器进行,其他型号变频器测试需修改Modbus地址。感谢观看!! 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值