瞬时值单位为Nm3/h
L 3.600000e+003
L #SCAN //1S
/R
T #ELK
L #VALUE //瞬时值 Nm3/h
L #NORM //norm设定值为1000
/R
L 1.000000e+003
*R
L #ELK
/R
L #Q //Nm3
+R
T #Q
请问这段代码在对瞬时值以S为采样周期累加时,瞬时值先除1000后又乘1000是什么作用啊?
问题补充:
我是在OB35里调用的,OB35的周期改成1000ms
最佳答案
你的这段程序在什么周期的ob中调用呢?和调用它的ob块的周期有关,只是从程序上理解,除以1000再乘以1000是没有用的。比如你在ob35(周期100ms)中调用,则可以
L 0.0
L #VALUE //瞬时值 Nm3/h
<R//瞬时流量大于0才累计,否则不累计
JCN M1
L 36000.0
/R
L #Q
+R
T #Q
M1:NOP 0
你的这个程序很多废话呀
1、36000.0除以1保存到ELK中,ELK还是3600.0
2、value除以norm(1000)再乘以1000.0等于没有操作,还是value的值。
3、后面又除以ELK这里才是真正有用的,value除以ELK后转换成一个扫描周期的信号值,然后加到Q上。
你把我说的那些废话都删除后就变成了我上面的程序。只是我的是100ms除以的36000.0,你是1s除以3600.0。
提问者对于答案的评价:
谢谢,这程序是以前别人编的,我觉得有问题,所以咨询下,我按你的意见优化下。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc231355.html