[西门子] SCL编程实例100例-089-电机正反转和点动控制

[复制链接]
查看23793 | 回复0 | 2024-11-26 09:40:08 | 显示全部楼层 |阅读模式
1 | 题目



编写程序实现电机正反转和点动控制的功能,优先级停止最高、点动其次、启动最低,正反同时操作时,禁止输出。

2 | 设计分析



对于非点动控制通过IF..ELSIF..ELSE语句实现优先级的设计,点动控制则使用RETURN语句进行隔离从而确保其拥有较高的优先级。

3 | 创建功能或功能块



创建功能块FB,命名为“MotorFRJ”。

4 | 定义接口变量



具体接口变量定义见下图:


定义数据类型为布尔型的输入变量jogFwd、jogRev、startFwd、startRev和stop分别作为正转点动、反转点动、正转启动、反转启动和停止功能的输入。定义数据类型为布尔型的输出变量fwdQ和revQ分别作为正转和反转的输出。

5 | 程序代码



编写程序代码。如下图:



电机正反转和点动控制实现方法非常多,此处为了满足学习需求选用以上方式,通过本例的练习也可以看到SCL语言的表达方式较为简洁和严谨。
声明:以上代码只能用作学习和教学使用,不能应用于实际场景,如发生事故与本文作者无关。

6 | 代码测试



在循环OB中调用FB-“MotorFRJ”,调用时会自动创建背景数据块,命名为“InstMotorFRJ”,该背景数据块可以用来监视和修改数据。转至在线并监控程序。如下图:


此处不一一展示各个功能的测试过程,只展示了stop拥有最高的操作优先级。

7 | 总结



学习IF..ELSIF..ELSE语句的使用;

学习异或(XOR)操作符的使用;
学习RETURN语句在程序代码中的作用。


本帖子中包含更多资源

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

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

本版积分规则