这两条指令为什么是错误的?
这两条指令为什么是错误的?
在STEP 7的语句表编辑器中输入下面两条指令:
L PQB0
T PIB0
它们将会变为红色,表示指令出错,它们为什么是错误的指令?
如果输入下面两条指令:
L QB0
T IB0
它们不会变红,这又是为什么?
答案如下:
PQ区用来直接访问输出模块,可以将它视为外部的输出模块。因此只能改写、不能读取PQ区的地址,即PQ区是只写的。
指令“L PQB0”想读取PQB0,将PQB0的值传送到累加器1,因此是错误的。
PI区用来直接访问输入模块,可以将它视为外部的输入电路。因此只能读取、不能改写PI区的地址,即PI区是只读的。
指令“T PIB0”想改写PIB0,将累加器1中的数据传送到PIB0,因此也是错误的。
过程映像输入/输出区(I/Q区)本质上是CPU存储器中的区域,它们只是外部输入/输出的“映像”(镜中花、水中月),不能等同于输入模块和输出模块。因此可以像其他系统存储区(例如M区)一样读写它们,指令“L QB0”和“T IB0”都是正确的。可以做下面的实验:在STEP 7中生成I0.0的线圈(想用程序改写I0.0),不会出错。
I/Q区的功能如下:I区用来保存扫描循环周期开始时批量读取的输入信号。在执行用户程序的过程中将逻辑运算的结果保存到Q区,在扫描循环周期开始时将Q区的数据批量传送到输出模块。