2.3 存储器的数据类型与寻址方式
CP1H系列PLC的内部元器件的功能相互独立,在数据存储器区中都有一对应的地址,可依据存储器地址来存取数据。
2.3.1 数制及数据格式
(1)数据长度
计算机中使用的都是二进制数,在PLC中,通常使用位、字节、字、双字来表示数据,它们占用的连续位数称为数据长度。
位(bit)指二进制的一位,它是最基本的存储单位,只有“0”和“1”两种状态。在PLC中一个位可对应一个继电器,如某继电器线圈得电时,相应位的状态为“1”;若继电器线圈失电或断开时,其对应位的状态为“0”。8位二进制数构成一个字节(Byte),其中第7位为最高位(MSB),第0位为最低位(LSB)。两个字节构成一个字(Word),在PLC中字又称为通道(CH),一个字含16位,即一个通道(CH)由16个继电器组成。两个字构成一个汉字,即双字(Double Word),在PLC中它由32个继电器组成。
(2)数制
数制也称计数制,是用一组固定的符号和统一的规则来表示数值的方法。如在计数过程中采用进位的方法,则称为进位计数制。进位计数制有数位、基数、位权三个要素。数位,指数码在一个数中所处的位置。基数,指在某种进位计数制中,数位上所能使用的数码的个数,例如,十进制数的基数是10,二进制的基数是2。位权,指在某种进位计数制中,数位所代表的大小,对于一个R进制数(即基数为R),若数位记作j,则位权可记作Rj。
人们通常采用的数制有十进制、二进制、八进制和十六进制。在CP1H系列PLC中使用的数制主要是二进制、十进制、十六进制。
(3)数据格式
在CP1H系列PLC的CPU中处理的数据主要有无符号BIN数据、带符号BIN数据、BCD码数据、单精度浮点数和双精度浮点数。
2.3.2 I/O存储器区域及通道编号
I/O存储器区域是指通过指令表的操作数可进入的区域,它由通道I/O(CIO)、内部辅助继电器(WR)、保持继电器(HR)、特殊辅助继电器(AR)、数据存储器(DM)、定时器区(TIM)、计数器区(CNT)、任务标志(TK)、变址寄存器(IR)、数据寄存器(DR)、状态标志、时钟脉冲等构成。CP1H系列PLC的I/O存储区及通道编号如表2-10所示。下面对各区域进行简要说明。
(1)通道I/O(CIO)
通道I/O区域又称为CIO,它是在地址指定时前面不附带有英文字母符号的区域。CIO可与各单元进行I/O刷新等数据交换,该区域又分为以下区域。
①输入输出继电器 输入输出继电器是用于分配到CP1H CPU单元的内置输入输出以及CPM1A系列扩展I/O单元的继电器区域。其中,输入继电器的通道编号为0.00~16.15(0CH~16CH);输出继电器的通道编号为100.00~116.15(100CH~116CH)。未使用的输入继电器及输出继电器可作为内部辅助继电器使用。
表2-10 CP1H系列PLC的I/O存储区及通道编号
②内置模拟输入输出继电器 内置模拟输入继电器仅限于CP1H-XA型CPU单元,它用于分配CP1H CPU单元XA型的内置模拟输入输出的继电器区域。其中,内置模拟输入继电器的通道编号为200CH~203CH;内置模拟输出继电器的通道编号为210CH~211CH。内置模拟输入继电器不能作为内部辅助继电器使用。
③数据链接继电器 数据链接继电器用作Controller链接网中的数据链接或PLC链接。该继电器区域的通道编号为1000CH~1199CH,未使用的数据链接继电器可作为内部辅助继电器使用。
④CPU总线单元继电器 CPU总线单元继电器在连接CJ系列CPU总线单元时使用。该继电器区域的通道编号为1500CH~1899CH,它有400CH,共6400点。每25CH归为1个单元,最多16个单元,某单元的编号范围为:1500+单元号×25~1500+单元号×25+24。例如0单元的编号范围为:1500+0×25~1500+0×25+24,即1500CH~1524CH。未使用的CPU总线单元继电器可作为内部辅助继电器使用。
⑤特殊I/O单元继电器 特殊I/O单元继电器在连接CJ系列CPU总线单元时使用。该继电器区域的通道编号为2000CH~2959CH,它有960CH,共15360点。每10CH归为1个单元,最多96个单元,某单元的编号范围为:2000+单元号×10~2000+单元号×10+9。例如0单元的编号范围为:2000+0×10~2000+0×10+9,即2000CH~2009CH。未使用的特殊I/O单元继电器可作为内部辅助继电器使用。
⑥串行PLC链接继电器 串行PLC链接继电器在PLC串行链接中使用,用于与其他CP1H CPU单元或CJ1M CPU单元进行数据链接。该继电器区域的通道编号为3100CH~3189CH,它有90CH,共1440点。未使用的串行PLC链接继电器可作为内部辅助继电器使用。
⑦DeviceNet继电器 使用CJ系列DeviceNet单元的远程I/O主站功能时,该继电器区域作为从站区域。该继电器区域的通道编号为3200CH~3799CH,它有600CH,共9600点。未使用的DeviceNet继电器可作为内部辅助继电器使用。
⑧内部辅助继电器 CIO区的内部辅助继电器区域是只能在程序中使用的继电器区域,不能与外部输入输出端子进行输入输出交换。如果需要在程序中使用内部辅助继电器,应优先使用内部辅助继电器(WR),再考虑本区域(CIO)的内部辅助继电器。CIO区的内部辅助继电器分为两部分:1200CH~1499CH(它有300CH,共4800点)和3800CH~6143CH(它有2344CH,共37504点)。
(2)内部辅助继电器(WR)
内部辅助继电器(WR)区域是只能在程序中使用的继电器区域,不能与外部输入输出端子进行输入输出交换。它作为内部辅助继电器,在程序中基本上优先使用该区域。该继电器区域的通道编号为W000CH~W511CH,它有512CH,共8192点。
(3)保持继电器(HR)
保持继电器用于各种数据的存储与操作,它可以字或位访问,但要在字号或位号前加“H”,以区别其他的区。它与内部继电器相同,只能在程序中使用,在电源复位(ON→OFF→ON)时或者工作模式变更(程序模式←→运行或监视模式)时,可保持其之前的ON/OFF状态。该继电器区域的通道编号为H000CH~H511CH,它有512CH,共8192点。
(4)特殊辅助继电器(AR)
特殊辅助继电器用于存储PLC的工作状态信息,该继电器区域的通道编号为A000CH~A959CH,它有9600CH,共15360点。
(5)暂存继电器(TR)
暂存继电器在电路的分支点暂时存储程序ON/OFF状态。该继电器区域的通道编号为TR00CH~TR15CH,共16CH。
(6)数据存储器(DM)
在电源复位(ON→OFF→ON)时或者工作模式变更(程序模式←→运行或监视模式)时,数据存储器DM可保持电源断之前或模式变更之前的数据。数据存储器不能按位为单位进行读写操作,只能以字为单位进行数据的读写操作。该继电器区域的通道编号为D00000CH~D32767CH,分为以下4个区。
①CJ系列特殊I/O单元用区:D20000CH~D29599CH(96单元,每单元100CH)。
②CJ系列CPU总线单元用区:D30000CH~D31599CH(16单元,每单元100CH)。
③Modbus-RTU简易主站用区:D32200CH~D32299CH(串行端口1);D32300CH~D32399CH(串行端口2)。
④普通DM区:在D00000CH~D32767中,除①~③已使用区域外为普通DM区。
(7)定时器区(TIM)
定时器用于需要定时或延时产生动作的场合,该继电器区域的通道编号为T0000CH~T4095CH(共4096个)。
(8)计数器区(CNT)
计数器用于需要计数达到一定值产生动作的场合,该继电器区域的通道编号为C0000CH~C4095CH(共4096个)。
(9)任务标志(TK)
任务标志为只读标志,当某循环任务在执行时,则相应的任务标志为1(ON);没执行或PLC为待机状态时,则相应的任务标志为0(OFF)。该任务标志的编号为TK00CH~TK15CH(共16个)。在电源复位(ON→OFF→ON)时或者工作模式变更(程序模式←→运行或监视模式)时,任务标志不清除。
(10)变址寄存器(IR)
变址寄存器用于间接寻址,是保存I/O存储器物理地址的专用寄存器。每个变址寄存器存储一个字存储单元地址,该地址是I/O存储区中一个字的绝对地址。该继电器区域的通道编号为IR00CH~IR15CH(共16个)。
(11)数据寄存器(DR)
数据寄存器用于存储间接寻址的偏移量,在间接寻址时,可使用数据寄存器来偏移变址寄存器中的地址。该继电器区域的通道编号为DR00CH~DR15CH(共16个)。
(12)状态标志
状态标志主要反映各指令的执行结果,如出错(ER)标志、进位(CY)标志等。CP1H CPU的状态标志如表2-11所示。
表2-11 CP1H CPU的状态标志
(13)时钟脉冲
时钟脉冲由系统产生,它有5种时基脉冲,如表2-12所示。各时钟脉冲的占空比(高电平脉冲宽度与周期脉冲宽度的比值)为50%。时钟脉冲的ON/OFF时间不能更改,只能读取。
表2-12 时钟脉冲
2.3.3 地址指定
在CP1H CPU的I/O存储器区域中,地址的指定主要是针对位和通道(字)进行的。
(1)位地址的指定
位地址的指定如图2-8所示,I/O存储器区名称为可选项,例如CIO区的I/O存储器区名称省略,保持继电器的I/O存储器区名称为H;通道地址用来指定使用I/O存储器区的字地址;位地址指定位的位置。
图2-8 位地址的指定
图2-9 0101CH的位05的表示方法
例2-1 0101CH的位05的表示方法如图2-9所示,所指定的I/O存储器区地址如图2-10所示。
图2-10 101.05CH指定的I/O存储器区地址
例2-2 保持继电器(HR)中H010CH的位08的表示方法如图2-11所示。
图2-11 H010CH的位08的表示方法
(2)通道地址的指定
通道地址的指定如图2-12所示,每个字由16个位构成,即每个字地址包括16位(bit0~bit15)。
图2-12 通道地址的指定
例2-3 输入继电器(CIO)的0010CH(bit0~bit15)的通道地址表示为10CH;内部辅助继电器(WR)的W010CH的通道地址表示为W10CH;数据存储器(DM)的D03120CH的通道地址表示为D3120CH。