2.3 I/O存储器与分配
2.3.1 存储器区域
CP1系列PLC的存储器分为5部分:用户程序存储器、I/O存储器、参数区、内置闪存和存储盒。其中I/O存储器区是指通过指令的操作数可以进入的区域。I/O存储器区分为通道I/O(CIO)区、工作继电器区(WR)、保持继电器区(HR)、辅助继电器区(AR)、继电器区(TR)、定时器区(TIM)、计数器区(CNT)、数据存储器区(DM)、变址寄存器区(IR)、数据寄存器区(DR)、任务标志区(TK)等。
I/O存储器区主要是用来存储输入、输出数据和中间变量,提供定时器、计数器、寄存器等,还包括系统程序所使用和管理的系统状态和标志信息。
在对数据区进行操作时,DM区和DR区只能读取字,不能定义其中的某一位。而在CIO、H、A和W区中可以存取数据的字或位,这取决于操作数的指令。
(1)I/O存储器区域一览 I/O存储器区域是指通过指令的操作数可进入的区域。
由通道I/O(CIO)、内部辅助继电器、保持继电器、特殊辅助继电器、数据存储器(DM)、到时标志/当前值、计数结束标志/当前值、任务标志、变址寄存器、数据寄存器、状态标志、时钟脉冲构成。CP1H I/O存储器的分配见表2-19。CP1L和CP1H的内部存储器分配类似,CP1L CPU单元点数种类丰富,没有内置模拟量功能和不能连接CJ系列特殊I/O单元。
表2-19 I/O存储器详细内容
(2)各I/O存储器区域概要
①通道I/O区(CIO) 通道I/O区(CIO):其地址前面不必加英文字母符号。例如,零通道记为0000VH或0000,而不是CIO0000。而其他继电器区通道的前面一定要加相应区域的符号。可与各单元进行I/O刷新等数据交换。不可分配到各单元的区域可作为内部辅助继电器使用。如表2-20所示。
表2-20 通道I/O区
①空闲,基本上不使用。但是,内部辅助继电器不足时,可作为内部辅助继电器使用,将来也可扩展功能。因此,在内部辅助继电器(WR)空闲的情况下,推荐使用内部辅助继电器(WR)。
CIO区分为8部分。
a.输入/输出继电器区(输入:0~16CH,输出:100~116CH);可以直接对外输入/输出的继电器区域。
内置开关量输入/输出继电器区是CP1H CPU主机单元固有的输入/输出点,共40点。
24个输入点,占输入的两个通道:0.00~0.11,1.00~1.11。
16个输出点,占输出的两个通道:100.00~100.07,101.00~101.07。
扩展开关量输入/输出继电器区:当CP1H CPU主机单元连接CP1W或CPM1A扩展单元时,扩展单元所占的通道号。
扩展输入继电器,可占用的输入通道:15CH(2~16CH)。
扩展输出继电器,可占用的输出通道:15CH(102~116CH)。
不使用的继电器编号可作为内部辅助继电器使用。
b.内置模拟量输入/输出继电器区(仅限XA型),用于分配CP1H CPU单元XA型的内置模拟输入/输出的继电器区域。内置模拟量输入占用4CH:200~203CH,输出占用2CH,210~211CH。
c.数据链接继电器。占用3200位(200CH):1000~1199CH。用于Controller Link中的数据链接,或PLC链接系统中的PC链接。数据链接是指通过安装在各PLC上的Controller Link单元所构成的网络,自动地访问网络中其他PLC,实现链接区的数据共享。数据链接可以自动创建或人工创建。
d. CPU总线单元继电器,占用6400位(400CH):1500~1899CH。连接CJ系列CPU总线单元时使用,每单元25CH,最多16单元。某单元占用的通道号:1500+单元号×25~1500+单元号×25+24,即#0、#1、#3、…、#15单元分别占用1500~1524CH、1525~1549CH、1550~1574CH、…、1875~1899CH。
不使用的继电器编号可作为内部辅助继电器使用。
e.特殊I/O单元继电器,占用15360位(960CH):2000~2959CH。
连接CJ系列特殊I/O单元时使用,用于传送单元操作状态等数据。每单元分配10字,最多96单元。某单元占用的通道号:2000+单元号×10~2000+单元号×10+9,即#0、#1、#3、…、#95单元分别占用200~2009CH、2010~2019CH、2020~2029CH、…、2950~2959CH。
不使用的继电器编号可作为内部辅助继电器使用。
f.串行PLC连接继电器,占用1440位(90CH):3100~3189CH,是串行PLC连接中使用的区域,两个相同或不同PLC之间的数据连接,例如,CP1H之间或CP1H与CJ1M之间的数据连接。串行PLC连接通过RS-232C端口,进行CPU单元之间的数据交换。串行PLC连接区的通道分配需根据主站中的PLC系统设定而自动设定。不使用的继电器编号可作为内部辅助继电器使用。
g. DeviceNet继电器,占用9600位(600CH):3200~3799CH。
使用CJ系列DeviceNet单元的远程I/O主站功能时,各从站被分配的继电器区域。不使用时,该区域可作为内部辅助继电器使用。
h.内部辅助继电器区。CIO中的内部工作继电器区占用两部分:4800位(300CH):1200~1499CH;37504位(2344CH):3800~6143CH。
②内部辅助继电器(WR) 占用8192位(512CH):W000~W511CH。
工作继电器区是指不可以直接对外输入/输出的继电器区域。这些字只能在程序内使用,它们不能用于与外部I/O端子的I/O信息交换,可作为程序中的中间继电器使用。
③保持继电器(HR) 保持继电器用于存储/操作各种数据并可按字节或按位存取,在字号前要冠以“H”字符,以区别于其他区。
当系统操作方式改变、电源中断或PLC操作停止时,保证继电器能够保持其状态。
H512~H1535CH为功能块专用保持继电器。仅可在功能块FB实例区域(变量的内部分配范围)设定。
④辅助继电器(AR) 辅助继电器区用来存储PLC的工作状态信息,如特殊I/O单元的错误标志、连接系统操作错误标志、远程I/O主单元错误标志、从站机架错误标志、特殊I/O单元重启动、连接系统操作重启动、远程I/O单元重启动、时钟设置位及数据跟踪标志等。
辅助继电器包括系统自动设定的继电器和用户进行设定操作的继电器。由自诊断发现的异常标志、初始设定标志、操作标志、运行状态监视数据等构成。
⑤暂时存储继电器(TR) 在电路的分支点,暂存储ON/OFF状态的继电器。
⑥定时器(TIM) CP1H有定时器4096个:T0000~T4095,有计数器4096个:C0000~C4095。
定时器用于需要定时、延时ON及延时OFF等场合。计数器用于记录外部输入脉冲信号。计数器分为两种,一种是单向计数器,另一种是双向计数器,也称可逆计数器。双向计数器有两个脉冲输入端,当“加”脉冲输入端有一个脉冲输入时,计数器的存储器内容加1,当“减”脉冲输入端有一个脉冲输入时,计数器的存储器内容减1。
⑦数据存储器区(DM) 数据存储器区是一个只能以字节为单位存取的多用途数据区。数据存储器(DM)用于内部数据的存储和处理,如数据传送、数值运算、数据转换、数值比较的结果,逻辑指令、特殊指令、网络指令、串行通信指令、模拟量输入单元、模拟量输出单元、高速计数单元及定位控制单元的参数设定、处理结果等。数据存储器区只能进行字节操作,不能用于位操作。
欧姆龙公司的CP1H系列将数据存储器分为4个区:普通DM、CJ系列特殊I/O单元用区、CJ系列CPU总线单元用区和Modbus-RTU简易主站用区。
CJ系列特殊I/O单元占用:D20000~D29599(100CH×96单元)。
CJ系列CPU总线单元占用:D30000~D31599(100CH×16单元)。
Modbus-RTU简易主站固定分配区域:
D32200~D32299(串行端口1)、D32300~D32399(串行端口2)。
普通DM:D00000~D32767中,除上面已用的区域。
⑧索引寄存器(IR) 变址寄存器有16个:IR0~IR15,1个寄存器32位。用于间接寻址一个字,每个变址寄存器存储一个PLC存储地址,该地址是在I/O存储区中一个字的绝对地址。
⑨数据寄存器(DR) 数据寄存器有16个:DR0~DR15,1个寄存器16位。储存用于间接寻址的偏移值。
间接寻址中利用16个数据寄存器(DR0~DR15)来偏移变址寄存器的PLC存储地址。将数据寄存器中的值加到变址寄存器的PLC存储地址上,来指定一个位或字在I/O存储区中的绝对地址,数据寄存器中的数据取值范围为-32768~32767,偏移量的范围由此确定。
数据寄存器只能进行字操作,不能用于位操作。
⑩任务标志(TK) 任务标志有32个:TK00~TK31。
任务标志是只读标志,当相应的循环任务在执行时,则标志为ON;当对任务没有执行或为待机状态时,标志为OFF。
计数器(CNT) 计数器有计数结束标志(接点)及计数器当前值2 种。可使用C0~C4095 的4096 个计数器。
a.计数结束标志(C) 以接点(1 位)为单位来读取的区域。
经过设定值后,计数器转为ON。
b.计数器当前值(C) 以字(16 位)为单位来读取的区域。
当定时器工作时,PV 值增加/减少。
(3)I/O存储器的清除及保持 如表2-21所示。
表2-21 I/O存储器的清除及保持
(4)热启动/热结束功能
①工作模式变更时
a.热启动 运行开始时(“程序”→“监视”或“运行”模式),在保持I/O 存储器的不保持区域数据的情况下启动程序时,将特殊辅助继电器的I/O 存储器保持标志置于1(ON)。
b.热结束 运行停止时(“监视”或“运行”模式→“程序”的模式变更时),希望保持I/O 存储器的不保持区域的数据时,将特殊辅助继电器的I/O 存储器保持标志置于1(ON)。表2-22所示为相关特殊辅助继电器。
表2-22 相关特殊辅助继电器
因此,如将该标志置于1(ON),则运行停止时,可保持工作模式变更前的输出单元的输出状态。
这样,运行开始时,保持模式变更前的输出状态,执行指令[如将该标志置于0(OFF),会在指令执行前,先将输出清除一次,再执行指令]。
②电源为ON时 此外,电源接通(OFF→ON)时,要保持 I/O 存储器的不保持区域数据的情况下,将特殊辅助继电器的I/O存储器保持标志置于1(ON),并将PLC系统设定的电源为ON时保持设定“I/O 存储器保持标志”设定为“保持”。如表2-23所示。
表2-23 PLC系统设定
2.3.2 I/O区与I/O通道分配
输入输出继电器的分配如图2-27所示。
图2-27 输入输出继电器的分配
CP1H CPU 单元的内置输入占用0 CH 及1 CH,内置输出占用100 CH 及101 CH。
CPM1A 的扩展(I/O)单元的输入以输入继电器的2 CH 为开头,输出以输出继电器的102 CH 为开端,按照顺序以通道为单位进行分配。
2.3.3 内置模拟I/O区(仅限XA型)
CP1H CPU单元XA型的情况下,内置模拟输入及内置模拟输出如表2-24所示被固定地分配到200~211 CH。
表2-24 内置I/O区
以下情况被清除:
①工作模式变更(程序←→运行或监控模式)时;
②电源断复位(ON→OFF→ON)时;
③用CX-Programmer 进行清除操作时;
④因FALS 指令执行以外的运行停止异常发生导致的运行停止时(因FALS 指令执行导致的运行停止时被保持)。
模块切换时动作见表2-25。
表2-25 模式切换时动作
注:内置模拟输出在工作模式从“运行”或“监视”模式切换到“程序”模式时,出现以上动作。
2.3.4 数据连接区
使用CJ 系列Controller Link 单元与网络上的其他CPU 单元的数据连接时,或者进行PLC连接时使用。
Controller Link 单元中未将区域种类指定为连接继电器的情况下及不应用PLC连接的情况下,可作为内部辅助继电器使用。
数据连接区域的分配方法包括自动设定(每1 个节点的发送通道数都一样)以及任意设定(自由设定每个节点的分配区域、每1 个节点的发送通道数为任意,也可仅为发送或接收)。
该数据连接继电器在自动设定时可作为数据连接区域被自动地分配(任意设定时,可通过用户定义来分配该继电器)。图2-28为数据连接区。
图2-28 数据连接区
以下情况被清除。
①工作模式变更(程序←→运行或监视模式)时;
②电源断复位(ON→OFF→ON)时;
③用CX-Programmer 进行清除操作时;
④因FALS 指令执行以外的运行停止异常发生导致的运行停止时(因FALS 指令执行导致的运行停止时被保持)。
2.3.5 CPU总线单元区
使用CJ系列CPU总线单元时,可分配状态信息的继电器区域。每1 个单元为25 CH,根据单元编号被分配(25 CH×16 个机械号码=400 CH)。
与CJ 系列CPU 总线单元进行数据交换的计时为所有用户程序执行后的I/O 刷新时(每次刷新时及在IORF 指令下,不能进行指定)。图2-29所示为CPU总线单元区。
图2-29 CPU总线单元区
单元编号及分配CH 编号的关系如表2-26所示。
表2-26 单元编号及通道编号
关于CJ系列CPU总线单元的分配区域的内容,各单元不同。请参见各单元的用户手册。
不作为CJ系列CPU总线单元的分配区域使用的CH可作为内部辅助继电器使用。可进行强制置位/复位。
以下情况被清除。
①工作模式变更(程序←→运行或监视模式)时;
②电源断复位(ON→OFF→ON)时;
③用CX-Programmer 进行清除操作时;
④因FALS 指令执行以外的运行停止异常发生导致的运行停止时(因FALS 指令执行导致的运行停止时被保持)。
2.3.6 其他
其他区还包括如下内容:高功能单元区、串行PLC连接区、DeviveNet区、内部I/O区、保持区(H)、辅助区(A)、TR区、定时器和计数器、数据存储区、变址寄存器、数据寄存器等,具体内容请参见《欧姆龙CP1H CPU单元操作手册》。