最近做小项目发现一个现象:
用TP700触摸屏分别读取S7-1200(1214C)和S7-200SMART的数据,均显示一个变量的状态(用颜色来表示位变量的值:0——红色,1——绿色)。程序的做法都是先用一个命令置位(set),再用另一个条件(Reset)。200SMART用的是V区,1200用DB块。
发现一个现象:TP700显示SMART200的时候,因为变量被复位,一直为红色,而1200经常会出现闪烁(一会绿一会红)。
程序差异有两个方面:
1、200SMART的秒计时用的是SM0.5加上升沿来实现,1200用的是OB32(1s定时中断);
2、200SMART调用PID用的是SM0.0,1200调用PID在OB35内(100ms)。
出现这种情况可能与通讯机制有关,也可能是由于定时中断的原因。不论是什么情况,在做1200/1500编程的时候,尽量要更全面地考虑逻辑。