CPU型号:CPU 1511-1 PN
订货号:6ES7 511-1AK01-0AB0
博图V14+仿真软件
今天做了一段程序,是采用脉冲每次对一个数字+0.1,然后采集运算结果进行平均值计算。采用内部时钟配合上升沿指令(P_TRIG: 扫描 RLO 的信号上升沿)来实现上升沿周期性数据计算和数据采集。
设置了10个数据存储数,第一个数据存储数永远存储当前的运算结果,第二个数据存储数存储上一次的运算结果,以此类推。适用MOVE指令传送存储。然后连续计算10次运算的平均值。分别在FC和OB30中做相同的程序却有不同的结果。下面分别说一下,请各位老师帮忙看下问题出在哪里。
FC是在OB1中调用的,但是OB30是直接编写的,没有调用。
1:在FC中实现功能
在FC中,能实现梯次数据的采集传送,但是每加法指令仅在采集开始的第一个周期是加0.1,以后都不是增加0.1,而是增加0.2。本来是1位小数运算,但是运行8个周期后就出现了好几位的小数值(仿真了好几次都是这样的规律)。

2:然后我怕编程有问题,又从新在新的FC下作了单独的加法运算,这次每次都是加0.1,但是运行8个周期后就出现了好几位的小数值(仿真了好几次都是这样的规律)。
3:在OB30中运算确实是每次加0.1,但是运行8个周期后也是出现了好几位的小数值的情况(仿真了好几次都是这样的规律)。同时数据却不传送,数据一直是0。
请问问题出现在哪里呢?为什么相同的程序在FC和OB30中表现不一样呢?
另外还请教1500中有没有像欧姆龙那样的上升沿传送和运算指令(就是指在信号发生上升沿是执行一次)呢。

补充说一下,我用的是破解的V14。我想这个跟是否正本应该没有关系吧。