北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章465 浏览4821746

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

实际项目中可能会遇到风机/水泵一用一备的工艺要求。比如:有两台水泵作为一个工作组,一台作为主泵,另一台作为备用泵。正常情况下,按下启动按钮时,主泵运行。当主泵故障时,备用泵自动启动运行。另外为了防止备用泵长时间不使用导致问题,还可以设置两台泵间隔某一时间交替运行。今天这篇文章跟大家分享我写的一个电机一用一备的函数块(FB)。

cover.png

函数块FB5010_Motor1Use1Spare可实现如下工艺要求:

  • 两台电机/水泵作为一个工作组,其中一台作为主电机,另一台作为备用电机;

  • 按下启动按钮,电机组运行。此时主电机先运行,若主电机故障,则备用电机自动运行;按下停止按钮,电机组停止;

  • 如有需要,可设置电机组两台电机交替运行。间隔时间默认为1小时,最大可设置时间为:24d_20h_31m_23s_647ms;

  • 该函数块使用到之间介绍的函数块:电机控制函数(FB5001_MotorControl)、按位读写字变量函数(FC5003_GetWordBitValue和FC5004_PutWordBitValue),相关文章:西门子SCL编程实例——按位读写字变量西门子SCL编程实例——带反馈监视的电机控制

在博途开发环境下创建函数块FB5010_Motor1Use1Spare,声明输入/输出参数如下:

接口参数.png

声明静态变量如下:

静态变量.png

声明临时变量如下:

临时变量.png

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

注释:

comment.png

获取电机状态:

获取电机状态.png

主电机控制代码:

主电机代码.png

备用电机控制代码:

备用电机代码.png

输出控制代码:

输出代码.PNG

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

我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》有很多SCL编程的案例,如果你感兴趣的话,可以看看下面的链接:

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论

牛年到,祝福到!

祝愿大家在新的一年里,身体健康,工作顺利,财运滚滚,牛年大吉!

×