python上位机开发,写电机类

当我们在界面上想驱动一个电机的启动和停止。不是简单的设置两个按钮就可以的。通常我们还要了解这些电气的其它一些状态和一些保护措施。就是所谓的输入信号,比如合闸信号,运行信号,故障信号,过流信号,跑偏信号(皮带机用)。如果想根据电流来改变频率,还要有输出设置。这些情况在实际项目中如何处理呢?我通常喜欢写个类,代码如下:

from PyQt5.QtCore import QObject,pyqtSignal



class Motor(QObject):
    start_motor_signal=pyqtSignal(int,bool)
    input_signal=pyqtSignal(int,int,int)
    def __init__(self,*args,**kwargs):
        super(Motor, self).__init__(*args,**kwargs)
        self.is_on=None
        self.running = None
        self.error = None
        self.input_signal.connect(self.get_input_singals)

    def get_input_singals(self,is_on:int,running:int,eror:int)->None:#合闸,运行,故障
        self.is_on=is_on
        self.running=running
        self.error=eror

    def start_stop_mortor(self,addr:int,val:bool):
        if self.running:
            return
        self.start_motor_signal.emit(addr,val)


if __name__=='__main__':
    def run_motor(addr,data):
        if data==True:
            print(f'{addr}-motor is running')
        else:
            print(f'{addr}-mortor in stopping')
    mortor1=Motor()
    mortor1.start_motor_signal.connect(run_motor)
    mortor1.input_signal.emit(1,0,1)

    # print(mortor1.is_on)
    # print(mortor1.running)
    # print(mortor1.error)

    import time
    import random
    while True:
        a=random.randint(1,10)
        b=random.randint(0,1)
        mortor1.start_stop_mortor(MOTOR_6,b)
        time.sleep(1)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值