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

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

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

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

    声明静态变量如下:

    声明临时变量如下:

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

    注释:

    获取电机状态代码:

    主电机控制代码:

    备用电机控制代码:

    输出控制代码:

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

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

    西门子S7-1200/1500 PLC SCL语言编程从入门到精通 图书 ¥54.71 购买