全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 工业控制 >

如何实现多个电机自动调度?

时间:2023-03-07 09:54

人气:

作者:admin

标签: 断路器    接触器  变频器 

导读:可设置每个电机的额定运行时间,当电机的实际运行时间大于额定运行时间时,则自动关闭并调度下一台可用电机;...

注:本文默认电机连接是使用断路器、接触器实现的直接启动电路,对于变频器类的控制需要做一些配置才能使用。

控制要求如下:

可设置每个电机的额定运行时间,当电机的实际运行时间大于额定运行时间时,则自动关闭并调度下一台可用电机;

当电机出现故障(比如断路器跳闸或超时无反馈),则电机状态变为不可用。不可用电机不参加调度;

当故障消除并复位后,电机状态重新变为可用,可重新参加调度;

具体如下:

打开博途开发环境,新建项目,添加用户自定义数据类型:typeMotorSchedule,如下图所示:

a6b6e804-bc6e-11ed-bfe3-dac502259ad0.png

其中:

Command:包括启动(start)和停止(stop),用来启动或停止电机;

Para:电机控制参数,包括反馈时间和额定运行时间,单位,秒;

ExtraSignal:外部信号,包括断路器和接触器反馈;

State:状态,包括:输出位(Q)、错误位(error)、释放(release,表示电机是否可用)、选中(selected,表示电机是否被选中)、状态(status,电机状态,非0等于出错)、实际运行时间(actualRunningTime,单位,秒);

添加函数块,命名为:FB5017_MotorScheduler,声明变量如下图所示:

a6bf6146-bc6e-11ed-bfe3-dac502259ad0.png

函数块代码比较长,我将其分成多个区域:

功能说明;

初始化(initialize);

复位(reset);

调度(sheduler);

具体如下:

功能说明:

a6c8d938-bc6e-11ed-bfe3-dac502259ad0.png

初始化:

a6da0bcc-bc6e-11ed-bfe3-dac502259ad0.png

复位:

a6e97224-bc6e-11ed-bfe3-dac502259ad0.png

调度:

a6f3a4b0-bc6e-11ed-bfe3-dac502259ad0.png

a700deb4-bc6e-11ed-bfe3-dac502259ad0.png

使用该函数块时需要先初始化,然后使能。当出现错误时,要进行复位。

可以在全局数据块中创建电机数组(typeMotorSchedule),然后将断路器、接触器的信号写入电机数组的ExtraSignal中,并将电机状态State.Q输出到硬件的输出通道中。

我创建了测试函数块及全局数据块对电机调度程序进行了测试,包括断路器的错误测试,结果是OK的。

a70ffe08-bc6e-11ed-bfe3-dac502259ad0.png


审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信