请各位帮帮忙,这个问题困扰我很久,但是我又描述不太出来,我想做一个程序,就是每分钟变量值加30,我用下面的程序写的,我发现接通一秒钟的过程中该程序其实已经执行了很多次,怎么样才能一分钟只加一次,也就是让这段程序只执行一次?
A #ramp_up
FP #FP120
A #TEMP //temp每次接通1s
FP #FP122
JCN l001
L "EPICS_AODO".Frequency4104_SET
L 1.5e+2
<R
JCN l002
L 7.0e-2
L "EPICS_AODO".Frequency4104_SET
+R
T #temp1
JU l003
l001: A #ramp_down
FP #FP120
A #TEMP
FP #FP122
JCN l002
A(
L "EPICS_AODO".Frequency4104_SET
L 1.5e+2
<=R
)
A(
L "EPICS_AODO".Frequency4104_SET
L 0.0e+0
>=R
)
JCN l002
L "EPICS_AODO".Frequency4104_SET
L 7.0e-2
-R
T #temp1
l003: L #temp1
T "EPICS_AODO".Frequency4104_SET
l002: NOP 0
另外我之前发的帖子问的问题,好像也是扫描多次的问题
http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=133713&cid=1077
图片说明:
最佳答案
我们需要看的不是你的代码,你找不出来问题,应该不是代码的问题,你需要看你的代码在哪里调用的,比如ob1它是循环扫描的,一分钟要扫描很多次。你需要明确你的这个程序在1s接通的过程中会被扫描多少次。
你的程序应该使用循环中断组织块(ob35等,设置周期是1s),在这些ob中调用你的这部分程序。
论坛上有人提过同样的问题,我还给出了代码,应该就是你吧?
提问者对于答案的评价:
谢谢!!!
专家置评
在循环终端中调用,如果循环中断的周期仍然比较短的话,通过编程实现累加一定次数之后再触发一次你的程序。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc167376.html