[西门子] FC程序块中的3个“坑”

[复制链接]
查看343 | 回复0 | 2024-6-26 09:20:08 | 显示全部楼层 |阅读模式
>导读:在我们实际的自动化设备中,通常会把一个比较大的项目拆分成小单元,这样的话就可以让我们编程变得更加有条理。比如一个“上下料”自动化设备,这个设备中可能包含了气缸、伺服、变频器等设备。那基于这些设备的编程,我们可以把这些设备的控制划分在不同程序块当中,比如FC1程序块编写气缸控制程序,FC2程序块编写伺服控制程序,这样就可以把一个相对较大的系统划分成逐个的小单元。那划分好了单元之后,在编写FC程序块的时候,难免会有一些“坑”让我们的程序达不到控制要求,哪有哪些“坑”呢,我们一起来盘点一下!

第一个坑:
在定义接口变量为“OUT”时,如图1和图2 所示,当你接通了外部的“启动”按钮时,它这个程序是无法自锁的,因为这个“OUT”接口变量只能“写”的功能,无法读取到“OUT”的状态,所以对于这种又要“读”又要“写”的变量需要使用图3这种编程方式(也就是定义在“INOUT”中)。

图1

图2

图3
第二坑:
当你觉得使用自锁的方式来编写这个程序时,你觉得行不通,那置位的方式总可以吧,其实也是不可以,可以看图4和图5中,当“启动”接通了,“电机”也确实置位了,但是当“启动”断开了,“电机”信号却没有一直置位,但是在程序中也没见到复位指令:那是因为“OUT”接口中的变量,每执行完一次FC程序,会将“OUT”接口中的变量复位为初始值。

图4

图5
第三坑:
想着没法用置位的方式,那用传送的指令应该可以吧,看图6和图7中,当“M0.1”接通了后,把数据传送给到了“MW10”中,而当M0.1断开了“MW10”中数据却又为“0”了,其实原理和“第二个坑”是一样的。
所以大家在使用FC程序块编程的时候一定要注意“OUT”接口变量的使用。

图6

图7


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

本帖子中包含更多资源

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

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

本版积分规则