CPU 在每个扫描周期的初期将物理外设的数字量输人信号扫描到数字量输人映像区(DI)中,程序在运行过程中的数字量输出值暂存在数字量输出映像区(DO)中,并在扫描周期的末期将数字量输出映像区的值刷新到物理输出模块。数字量输入/输出映像区是可读且可写的,在程序中对某些数字量输人位进行写操作,便可以模拟外部的数字量输入信号。CPU 对模拟量的处理有所不同,模拟量的值存放在模拟量输入/输出存储区中。
注意:模拟量的存放区被称为“存储区”而不是“映像区”或者“缓存区”。对于程序中
使用的模拟量,是直接从存储区进行读取或写入的。模拟输入(AI)存储区是只读的,模拟量输出(AO)存储区是只写的;变量存储区(V)用来存放程序在运行过程中的中间变量或者需要的配方数据;标志存储区(M)用来存放逻辑运算的中间结果。其实,在编程时,变量存储区和标志存储区没有明显的界限,也可以用变量存储区来存放逻辑运算的中间结果。两者都可以位、字节、字或者双字的方式进行访问,其区别在于变量存储区(V)比标志存储区(M)要大很多。比如,在 CPU ST40 中,变量存储区的范围为 VB0 ~VB16383,而标志存储区的范围为 MB0~MB31。程序运行过程中需要的配方数据,需要在数据块编辑器中设置并存放在变量存储区(V)中。
① 定时器用来计时。S7-200 SMART 定时器的时间基准有 1ms、10ms 和 100ms 三种。定时器有两种变量:当前值和定时器位。当前值是一个16位的无符号整数,用来记录当前的时间;定时器位是一个位,用来记录定时器是否已经被触发(当前值大于设定值)。以定时器的地址(T 编号)既可以访问当前值,也可以访问定时器位,取决于访问指令的类型。位操作指令访问的是定时器的位,字操作指令访问的是定时器的当前值。以图 3-19 为例:段程序是读取定时器 T3 的当前值,并将其存放到 VW10,属于字操作;二段程序是读取定时器 T3 的位,并将其输出到 Q0.0,属于位操作。
定时器的字操作与位操作
图3 -19 定时器的字操作与位操作
① 计数器用来进行计数。S7-200 SMART 提供三种计数器:向上计数器、向下计数器和上下计数器。与定时器类似,计数器也有一个当前值(16 位无符号整数)和一个计数器位,其地址以字母 C加上编号表示(比如 C10)。使用字操作指令可以访问计数器的当前值,使用位操作指令可以访问计数器的的位。S7-200 SMART 的 CPU 大支持 256个计数器(编号C0~C255)。
② 高速计数器 与普通的计数器不同,它不受 CPU 扫描周期的限制,可以用来对高速信号(比如脉冲)进行计数。高速计数器的值是一个32 位的有符号整数,其性质为只读,可以通过高速计数器的地址(HC 编号)进行访问。
③ 累加器 可以用来传递参数或存放指令运算的中间结果。S7-200SMART提供4个32 位的累加器(ACO~AC3)。累加器可以字节、字或者双字的方式进行访问。