[西门子] 西门子SCL编程实例——电机一用一备的编程思路

[复制链接]
查看309 | 回复0 | 2024-4-25 16:57:15 | 显示全部楼层 |阅读模式
实际项目中可能会遇到风机/水泵一用一备的工艺要求。比如:有两台水泵作为一个工作组,一台作为主泵,另一台作为备用泵。正常情况下,按下启动按钮时,主泵运行。当主泵故障时,备用泵自动启动运行。另外为了防止备用泵长时间不使用导致问题,还可以设置两台泵间隔某一时间交替运行。今天这篇文章跟大家分享我写的一个电机一用一备的函数块(FB)。

函数块FB5010_Motor1Use1Spare可实现如下工艺要求:
  • 两台电机/水泵作为一个工作组,其中一台作为主电机,另一台作为备用电机;
  • 按下启动按钮,电机组运行。此时主电机先运行,若主电机故障,则备用电机自动运行;按下停止按钮,电机组停止;
  • 如有需要,可设置电机组两台电机交替运行。间隔时间默认为1小时,最大可设置时间为:24d_20h_31m_23s_647ms;
  • 该函数块使用到之间介绍的函数块:电机控制函数(FB5001_MotorControl)、按位读写字变量函数(FC5003_GetWordBitValue和FC5004_PutWordBitValue),相关文章:西门子SCL编程实例——按位读写字变量、西门子SCL编程实例——带反馈监视的电机控制
在博途开发环境下创建函数块FB5010_Motor1Use1Spare,声明输入/输出参数如下:

声明静态变量如下:

声明临时变量如下:

该函数块代码比较长,我将其分成五个部分:注释、获取电机状态、主电机控制、备用电机控制、输出,各部分代码如下:
注释:

主电机控制代码:

备用电机控制代码:

输出控制代码:

这个代码我已经测试过,能够实现文章开头要求的工艺功能。欢迎各位小伙伴测试、交流。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则