-
-
yhyyttrt 发表于 2022/4/26 14:37:23
可以在循环OB内使用RUNTIME计算出OB的执行时间,然后根据执行时间来设置循环OB的时间;如果使用PID的话还需要考虑PID自身采样的时间
引用 yhyyttrt 2022/4/26 14:37:23 发表于2楼的内容
-
-
osmaosi 发表于 2022/4/26 14:38:03
循环OB内程序执行不完全是,你在OB3?中的程序没有执行完整?
建议在OB3?中不要编辑过多的程序段,仅仅编辑简单的调用标志位,再用这些标志位在其它FB/FC或者OB1中编辑控制程序,这样是比较优化的一种程序编辑方式。
引用 osmaosi 2022/4/26 14:38:03 发表于3楼的内容
-
-
hgggttrr 发表于 2022/4/26 14:38:47
在不影响其它工艺控制的前提下循环中断执行时间小于间隔时间就是可以的。这个根据精度慢慢调。
程序有指令可以改循环中断的间隔时间,用这个指令慢慢调,调得满足要求了,最后在组态中固定下来。
还有一些注意的地方
1、循环中断 + 延时中断数量 <= 4;
2、循环间隔时间1~60000ms,通过指令“SET_CINT”设置错误的时间将报错16#8091;
3、CPU 运行期间,可通过“SET_CINT”指令设置循环中断间隔时间、 相移时间;
4、如果“SET_CINT”指令的使能端 EN 为脉冲信号触发;则 CPU 的操作模式从 STOP 切换到 RUN 时执行一次,包括启动模式处于 RUN 模式时上电和执行 STOP 到 RUN 命令切换,循环中断间隔时间将复位为 OB 块属性中设置的数值;
5、如果循环中断执行时间大于间隔时间,将会导致时间错误。
http://www.ad.siemens.com.cn/productportal/Prods/S7-1200_PLC_EASY_PLUS/function/S7-1200_OB_block/OB30.htm
引用 hgggttrr 2022/4/26 14:38:47 发表于4楼的内容