本人刚学plc,看程序的时候有些东西弄不懂,特向论坛里面的前辈求助一下。关于FB块里面置位指令S 的一些问题,如图所示,FB41和FB42都调用了FB780块,在FB780块里面有一个置位输出 #A_DGate_Not_Open ,为临时数据(TEMP),我在程序里面查找了一下,这个置位输出没有相应复位指令。我想问的是这个指令在这种情况下是不是不需要复位指令就能复位啊?看了一下资料,因为TEMP使用的是L堆栈,会不会被其他数据后来占用使得 #A_DGate_Not_Open 置位输出自动复位啊?有点一知半解的,希望前辈指点一下,谢谢。
问题补充:
“临时变量使用需要先赋值后使用,且只在本次扫描周期内数据有效,数据不能保存.所以可不需要复位.
回答者:HUANGZE75- 助理工程师 第8级”
感谢您的回答,我觉得也是这样的,但是我弄了个简单的程序模拟了一下,如图(D1)所示,但是发现Q0.1一直都会有输出,不知道是个这么回事?
--------------------------------------------------------------------------------
“他有背景数据块。例如MX1,是DB300,那么 #A_DGate_Not_Open 对应DB300.DBX3.6.可以查看外部程序有没有复位
回答者:小苏州- 助理工程师 第8级”
MX1对应的背景数据块是DB300,但是临时数据(temp)不存到DB背景数据块的,程序里面也没有 DB300.DBX3.6 这个复位。
图片说明:
最佳答案
临时变量使用需要先赋值后使用,且只在本次扫描周期内数据有效,数据不能保存.所以可不需要复位.
提问者对于答案的评价:
谢谢,现在已经搞清楚了,是自己当时看程序不仔细,#A_DGate_Not_Open 的地址为L3.6,FB41和FB42调用FB780时候提供了一个LW2的值来进行复位,谢谢各位的帮助
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc232511.html