除了DB,FB,FC,OB也可以使用优化块的访问方式。
在优化OB中,临时变量将被缩减,比如OB1,以前有很我们经常用到的三个临时变量
OB1_PREV_CYCLE 上一次扫描时间
OB1_MIN_CYCLE 最小扫描时间
OB1_MAX_CYCLE 最大扫描时间
在优化访问方式下,被缩减了,但是仍然有其它方法读取CPU扫描时间。
1:采用调用RUNTIME ,在OB1开始和结束处调用该指令,2者的结果相减即可,该指令还可以用于 测量任何 语句和程序块执行所用的时间。
2:调用RT_INFO函数通过模式1、2、3可以读出CPU的上次扫描、最小、最大扫描时间
使用块的优化访问方式,体现了标签化,符号化的编程风格(就像一些语言,我们不关心变量存放在计算机内存的什么地方)。在TIA PORTAL中,FB,OB,FC的编号也支持CPU由自己管理了。在新建FC,FB等程序块时,会出现一个关于程序块编号的选项,自动还是手动,自动时,程序只需要新建程序块,定义程序块名称即可,至于是FB109还是FB1099程序员不要关心,当然程序员还可以按照以前的习惯手动个程序块一个编号。
在TIA PORTAL中程序块下面可以自己新建文件夹,这样把相关的程序块和数据块进行分类分组,而不像STEP7 V5.x下所有程序块数据块全在Blocks一个文件夹下,这样程序结构看的更清晰。
块的优化访问,程序块编号由CPU自己管理,UDT的编号也由CPU来管理,体现了标签化的编程方式(个人理解),以前一些由程序员来做的工作,现在全部托管给CPU也在一定程度上让编程变的更简单,适应了当今潮流。
本人由于工作需要学习了一段时间的GE PACSystem的PLC编程,相对以前GE-Fanuc的90-30,90-70系列PLC,PAC平台下,它们的编程风格也是完全标签化(除了一些过程映像区和R区等),程序块也是仅靠名称,干脆没有所谓的编号。标签变量也是没有偏移地址的,一些间接寻址也仅靠array [“index”]的方式来处理,但是同样可以编写出和西门子一样的程序(实际上自己就是按照西门子程序进行转换的)。
所以,对于S7-1500和TIA PORTAL一些创新的地方,我们应该勇于接受,抛弃旧思维,来对待新事物!