程序中的多个点为操作数赋值是错误的根源。相应的操作在博途中将会发出报错信息。
在s7-300/s7-400中,可以给iec timer 编程然后再给它的输出分配另外的时间。这样,如图01显示,就可以重置iec timer,在编译时不会有错误报出。
然而,这样编程是错误的根源!
如果一个操作数,在程序中不同的地方进行 set、reset 或者赋值,它的状态就不再是*的。
图. 01
在s7-1200/s7-1500,给 iec timer 编程然后再给它的输出分配另外的时间时,这个分配会立即显示红框并报错。如此,如果尝试编译程序,这个不被允许的分配会在窗口中报错:“the tag is read-only”。
图. 02
如果想要将其从s7-300/s7-400 移植到 s7-1200/s7-1500,iec timer 的输出必须不能被再次赋值,分配另外一个时间。
控制器之间的另一个不同是在定时器标签的更新上。
s7-300/s7-400中定时器标签q和 et 在定时器被调用的时候被更新。s7-1200/s7-1500定时器会在被调用或者定时器标签被访问时更新。更多信息
关于“iec timer”的更多信息可以在条目id:67585220,54684852和2443515中找到。
创建环境
本faq中的截图是在step 7 (tia portal) v13中创建的。