我是小庄,初入工控行业,目前正努力钻研、提高。即日起,借“塞北名驼”这个平台,不定期更新一些学习心得,借以鞭策自己。一、循环程序处理的顺序
OB1是执行用户程序的入口,用于循环程序处理。其程序处理顺序如下:
图1OB1:循环程序处理的顺序
二、过程映像为了在循环程序处理期间,CPU具有一致的过程信号映像,CPU不是直接在I/O模块上寻址输入(I)和输出(Q)地址区,而是寻址包含输入、输出映像的CPU内部存储区,该存储区就是过程映像。
如图1所示,循环开始后,操作系统首先将过程映像输出表(PIQ)写入输出模块,然后读取输入状态到过程映像输入表(PII)。将过程映像输出表写入输出模块以及读入过程映像输入表均有操作系统独立完成。
与直接访问输入/输出模块相比,过程映像访问的主要优点在于在一个程序周期的持续时间,CPU具有过程信号的一致性。如果在程序执行期间,输入模块的信号状态发生了变化,过程映像中的信号状态仍被保持,直到下一个周期过程映像进行更新。在用户程序中周期性的扫描输入信号的过程中,确保了总有一致的输入信息。同时,由于过程映像位于CPU的内存中,因此,访问过程映像比直接访问信号模块更节省时间。三、扫描循环时间扫描循环时间是OB1完整执行一次所需要的时间,该时间被系统监视。由于OB1在执行过程中可能被其他组织块中断,因此,每个周期中的扫描时间TC不尽相同,如图2所示。
图2扫描循环时间
图2中,由于当前周期中OB1被时间中断OB10中断,因此,其扫描循环时间TC1相比TC2要大一些。
1、最大监视时间
为了保证程序执行的实时性和准确性,通常要规定最大周期监视时间。STEP7中定义了默认的最大监视时间,此时间可根据需要修改。如果超出最大监视时间,CPU要么进入STOP模式,要么调用OB80。在OB80中可通过编程指定CPU如何响应该出错。
2、最小扫描周期
当我们现场的信号动作没那么频繁,也就是我们不需要经常更新过程映像表的时候,可以规定最小扫描周期,当然,只有400系列的CPU才可以指定最小的扫描周期。如图3所示,当扫描时间小于最小扫描周期时,CPU在执行完循环任务后,自动等待一段时间(红框中),然后再开始下一次循环任务。在等待过程中,中断任务正常执行,但循环任务(OB1)则停止执行,直到下一次扫描周期。
图3最大扫描周期和最小扫描周期