三菱PLC编程技术及工程案例精选(第2版)
上QQ阅读APP看书,第一时间看更新

3.2 CPU的存储区

3.2.1 数制

基本型QCPU采用“0”断和“1”通的状态来表达数值字母等数据,这种用“0”和“1”表达的数据称为二进制数BIN。基本型QCPU也可以采用将二进制数按每4位为一组表达的十六进制数HEX和二-十进制数BCD码。

1.从外部向基本型QCPU的数值输入

用数字开关从外部向基本型QCPU设置数值时,可以用BCD码(二-十进制数)进行和十进制数同样的设置。但是,由于基本型QCPU采用BIN进行运算,因此,如果将采用BCD码设置的数值照原样使用就会用不同于设置值的数值进行运算。为了将采用BCD码设置的数值变换为基本型QCPU所使用的BIN数值,需要用到“BIN指令”。

当然,如果在顺控程序中事先编写好将数值数据变换为BIN的程序,那么,从外部设置数值数据时就可以不考虑是否是BIN数据。

2.从基本型QCPU向外部的数值输出

需要将基本型QCPU上运算的数值在外部显示时,可以使用数字显示器。基本型QCPU用于运算的BIN数据照原样输出到数字显示器上,也不能正确地显示。为了将采用BIN进行运算的数据变换为BCD码,需要用到“BCD指令”。

同样,如果在顺控程序中事先编写好将数值数据变换为BCD的程序,那么,就可以和十进制数同样在外部显示了。

3.2.2 基本数据类型

在PLC内部结构和用户应用程序中使用着大量的数据。这些数据从结构或数制上具有以下几种形式。

1.二进制数BIN(Binary Code)

BIN是采用0(断)和1(通)表达的数值。十进制数从0开始加数到9后,接下去就产生进位,成为10。BIN在0、1之后就产生进位,成为10(十进制数的2)。

BIN的数值表达

1)各寄存器(数据寄存器、通信寄存器等)由16位构成。各寄存器的各个位分配为2n的数值。但是最高位因用作正负判别不能使用无符号的BIN。

BIN中最高位为“0”时,数值为正;最高为为“1”时,数值为负。各寄存器的数值表达如图3-12所示。

978-7-111-36359-0-Chapter03-17.jpg

图3-12 各寄存器的数值表达

2)可以使用的数值数据

采用图3-12所示的数值表达方法可以表达-32768~32767范围内的数值。因此各寄存器中可以存储从-32768~32767的数值。

2.十六进制数HEX(HEX Decimal)

HEX是将4位BIN数据作为1位表达的方法。由于BIN采用0~15表达1位,因此9之后的10采用字母A表达,11采用字母B表达,F(15)之后产生进位。

HEX的数值表达:各寄存器(数据寄存器、通信寄存器)等由16位构成。因此各寄存器中可以存储的数值用HEX表达时的范围为0~FFFFH。

3.二-十进制数BCD(Binary Coded Decimal)

BCD采用二进制数的表达,但附加有类同于十进制数的进位。BCD和HEX一样采用4位表达,但不使用HEX的A~F。

BCD的数值表达:各寄存器(数据寄存器、通信寄存器)等由16位构成。因此各寄存器中可以存储的数值用BCD表达的范围为0~9999。

4.实数(浮点数据)

在顺序控制程序中,实数通过E()指定。分单精度浮点数据和双精度浮点数据两种。下面分别进行讲述。

(1)单精度浮点数据使用两个字软元件,用式(3-1)表示。

[符号]1.[变量部分]×2[指数部分] (3-1)

(2)位配置和浮点小数数据的内部代表意义如图3-13所示。

978-7-111-36359-0-Chapter03-18.jpg

图3-13 单精度浮点数位的构成及含义

注意:1.位b31表示符号,数值为“0”,表示正;数值为“1”,表示负。

2.指数部分2n中的n是根据b23~b30的BIN值的不同来取值的,n的值见表3-3。

表3-3 n的取值

978-7-111-36359-0-Chapter03-19.jpg

(3)双精度浮点数据使用4个字软元件,位的构成及含义如图3-14所示。

978-7-111-36359-0-Chapter03-20.jpg

图3-14 双精度浮点数位的构成及含义

注意:1.位b63表示符号:数值为“0”,表示正;数值为“1”,表示负。

2.指数部分2n中的n是根据b52~b62的BIN值的不同来取值的,n的值如表3-4所示。

表3-4 n的取值

978-7-111-36359-0-Chapter03-21.jpg

3.2.3 系统存储器

一般PLC的系统存储器包括三个区域,分别如下:

1.系统程序存储区

在系统程序存储区中存放着类似于计算机操作系统的系统程序。由PLC制造商设计,包括监控程序、管理程序、命令解释程序、系统诊断程序及功能程序等,被制造商固化在EPROM中,用户不能直接存取。

2.系统RAM存储区

系统RAM存储区包括I/O映像区以及各种软设备。PLC中的RAM或E2PROM等存储器除存放编译后的用户程序外,还可作为内部存储器存放各种数据和逻辑、状态变量等。一般情况下,PLC内部存储器可分为:I/O映像区、内部辅助存储区、特殊存储器区和数据区。每个区分配一定数量的存储器单元,并按不同的区进行编号。每个存储器单元一般是16位,也可按位进行编号。在I/O映像区中一个开关量I/O占一个位(bit),一个模拟量I/O占一个字(16bit)。因此,整个I/O映像区可分为开关量I/O映像区和模拟量I/O映像区两个部分。

3.用户程序存储区

用户程序存储区存放用户编制的用户程序,实现不同功能的用户程序,其存储容量也各不相同。

3.2.4 CPU中的寄存器

1.用户存储器

用户存储器就是基本型QCPU的存储器中可以由用户通过GX Developer/顺控程序进行读写的存储器。用户存储器有以下几种:程序存储器、标准ROM。此外Q00/Q01 CPU上还有内置标准RAM。

(1)程序存储器

这是基本型QCPU用于存储进行实际运算的程序存储器。存储在标准ROM中的程序引导(读出)到程序存储器中后进行运算(引导运行)。此外,程序存储器中的参数程序也可以统一复制到标准ROM中。

(2)标准ROM

这是基本型QCPU上进行ROM运行时存储参数、程序等数据的存储器。

(3)标准RAM

这是存储文件寄存器的数据存储器。标准RAM的文件寄存器可以实现和数据寄存器同样的高速存取。

2.基本型QCPU中可存储的数据

基本型QCPU的程序存储器,标准RAM、标准ROM中可以存储的数据见表3-5。

表3-5 标准RAM、ROM中可以存储的数据

978-7-111-36359-0-Chapter03-22.jpg

①可存储程序、参数、智能功能模块参数和软元件注释各1个。

②可存储文件寄存器文件1个。

③可存储程序、参数、智能功能模块参数和软元件注释各1个。

标准ROM中存储的参数、程序在系统电源打开时/CPU模块复位时被传送到程序寄存器中,并在程序寄存器内执行(引导运行设置时)。