故事作者:HITIAR

最近创作

看看TA的故事

【征文】通过一个小案例加深理解Temp参数的用法

已锁定

HITIAR

西门子1847工业学习平台

  • 帖子

    817
  • 精华

    5
  • 被关注

    49

论坛等级:奇侠

注册时间:2011-10-08

黄金 黄金 如何晋级?

【征文】通过一个小案例加深理解Temp参数的用法

3813

8

2019-08-09 08:12:45

在PL编程时,我们经常会忽略语句中临时参数重复使用的的问题,在调试程序时,分析当前语句好似没有问题,只有放到整个程序中检查才能发现,这是由于PLC循环扫描的工作机制导致的。这种现象的处理可以按下示方法解决。

问题程序

         现有示例程序如下:

 




 

在分析上述语句时,当”start”变量被置为”1”时,”on delay”接受能流,变量被置位,能够实现自锁。但在仿真时,程序段1中的”on delay”变量并没有被置位,而只有程序段2上的”on delay”变量被置位。仿真结果如下图所示。



可以看出,以上程序由于程序段1中的”on delay”变量无法被置位而不能实现自锁。

问题分析

         PLC的工作方式是从上到下、由左至右地循环扫描,而”on delay”变量属于Temp—临时变量,只有在PLC的一个循环周期内,”on delay”变量能够保持,一个循环周期结束后,分配给”on delay”变量的存储空间被释放。

在上述程序的第一个循环周期中,程序段1左边的变量”start”被置位,而”on delay”变量没有被置位,程序段1右边的变量”on delay”由于”start”被置位而接受能流;程序段2左边的变量”on delay”由于接受能流而被置位;一个循环周期结束后,”on delay”的存储空间被释放,”on delay”变量又被复位,在第二个循环周期中,程序段1左边的”on delay”变量依然不能被置位。

解决方案

         采用FB程序块对上述程序进行编程,并将”on delay”变量设为Static——静态变量,程序如下所示。




         实验结果如下所示。



         可见,程序段1中左侧的”on delay”变量被成功置位,改程序能够实现自锁。

总结

         临时变量可以用于所有块中 (OB, FC, FB)。当块执行的时候它们被用来临时存储数据,当退出该块时这些数据将丢失。因此, 在PLC扫描运行时, FC块中的临时变量Temp不能自锁。

如果FC块,可以使用全局变量(标志位和数据块)来存储数据,实现自锁。

如果FB块,除了全局变量之外,也可以使用静态变量来存储数据,实现自锁。

 


【征文】通过一个小案例加深理解Temp参数的用法 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3227条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。