0.软元件
编程软元件就是PLC在软件设计中所需要的各种各样的逻辑器件和运算器件。
PLC通过程序的运行实施控制的过程其实质就是对存储器中的数据进行操作或处理的过程,PLC把存储器分为若干个区域和种类,这些由用户使用的每一个内部存储单元统称为软元件。 各种软元件有其不同的功能,有固定的地址。 软元件的数量决定了PLC的规模和数据处理能力,每一种PLC的软元件数量是有限的。
编程时,用户只需要记住软元件的地址即可。 每个软元件都有一个地址与之一一对应,其中软继电器的地址编排采用区域号加区域内编号的方式。 PLC内部根据软元件的功能不同,分成了许多区域,如输入继电器X、输出继电器Y、定时器T、计数器C、辅助继电器M、状态器S、数据寄存器D等。 当有多个同类软元件时,在区域号字母的后面加以数字编号,该数字也是元件的存储地址。 其中输入继电器和输出继电器用八进制数字编号,其他均采用十进制数字编号。
1.输入继电器(X000~X267)
输入继电器也就是输入映像寄存器。 每个PLC的输入端子都对应一个输入继电器,它用于接收外部的开关信号,其状态唯一地由其对应的输入端子的状态决定。 在程序中其常开触点闭合,常闭触点断开。 这些触点可以编程时任意使用,使用数量(次数)不受限制。
FX系列PLC的输入继电器以八进制数字进行编号,FX2N 输入继电器的编号范围为X000~X267(184点)。 需要注意的是,基本单元的输入继电器的编号是固定的,扩展单元和扩展模块的输入继电器是按离基本单元最近的数开始编号的。 例如,基本单元FX2N-64M的输入继电器编号为X000~X037(32点),如果接有扩展单元或扩展模块,则扩展的输入继电器从X040开始编号。
2.输出继电器(Y000~Y267)
输出继电器也就是输出映像寄存器,每个PLC的输出端子对应一个输出结果。 当CPU通过程序使得输出继电器线圈“得电”时,PLC上的输出端开关闭合,它可以作为控制外部负载的开关信号。 在程序中其常开触点闭合,常闭触点断开。 这些触点可以在编程时任意使用,使用次数不受限制。 输出继电器的线圈只能用于程序中,而不能用于直接驱动外部负载。
在PLC内部,输出映像寄存器与输出端子之间还有一个输出锁存器。 在每个扫描周期的输入采样、程序执行等阶段,并不把输出结果信号直接送到输出锁存器,而是送到输出映像存储器,只有在每个扫描周期的末尾才将输出映像寄存器中的结果信号几乎同时送到输出锁存器,对输出点进行刷新。
3.辅助继电器(M)
一般的辅助继电器与继电器控制系统中的中间继电器相似。 辅助继电器不能直接驱动外部负载。 辅助继电器采用M与十进制数字共同组成编号。
1)通用辅助继电器(M0~M499)
FX2N系列共有500点通用辅助继电器。 通用辅助继电器在PLC运行时,如果电源突然断电,则全部线圈均为OFF。 当电源再次接通时,除了因外部输入信号而变为ON的以外,其余仍将保持OFF状态,它们没有断电保护功能。 通用辅助继电器常在逻辑运算中作辅助运算、状态暂存、移位等。 根据需要可通过程序设定,将M0~M499变为断电保持辅助继电器。
2)断电保持辅助继电器(M500~M3071)
FX2N系列有M500~M3071共2572个断电保持辅助继电器。 它与普通辅助继电器不同的是具有断电保护功能,即能记忆电源中断瞬时的状态,并在重新通电后再现其状态。 它之所以能在电源断电时保持其原有的状态,是因为电源中断时用PLC中的锂电池保持其映像寄存器中的内容。 其中M500~M1023可由软件将其设定为通用辅助继电器。
3)特殊辅助继电器
PLC内有大量的特殊辅助继电器,它们都有各自的特殊功能。 FX2N系列中有256个特殊辅助继电器,可分成触点型和线圈型两大类。
(1)触点型。 该类特殊辅助继电器的触点为只读型,用户可读取该触点来监视PLC的运行或获取时钟等状态。 例如:
M8000——运行监视器(在PLC运行中接通),M8001与M8000的逻辑相反。
M8002——初始脉冲(仅在PLC从STOP到RUN时,瞬时接通一个扫描周期),M8003与M8002的逻辑相反。
M8011、M8012、M8013和M8014分别是产生10ms、100ms、1s和1min时钟脉冲的特殊辅助继电器。
(2)线圈型。 由用户程序驱动线圈后PLC执行特定的动作。 例如:
M8033——若使其线圈得电,则PLC停止时保持输出映像存储器和数据寄存器内容。
M8034——若使其线圈得电,则将PLC的输出全部禁止。
M8039——若使其线圈得电,则PLC按D8039中指定的扫描时间工作。
4.状态器(S)
状态器是对工序步进型控制进行编程的重要软元件,也称为顺序继电器。 与步进指令STL组合使用,也可作为一般的辅助继电器使用。
1)初始状态器(S0~S9)初始状态即为步进指令开始时的状态,存储初始状态的状态器称为初始状态器。 在并行分支中最多可以有10个初始状态被同时选中。
2)普通型(S10~S499)/断电保持型(S500~S899)
普通型状态器在电源断开后,都变为OFF状态。 而断电保持型状态器的状态可记忆断电前的ON/OFF状态,所以,恢复供电后可以从中途工序开始运行。 在应用指令(FNC60)IST的使用中,S10~S19被用做指示回零状态。
3)信号报警器型状态器(S900~S999)
信号报警器型状态器也称故障报警状态,主要用做外部故障诊断。
5.定时器(T)
定时器又称计时器,用于时间控制。 根据设定时间值与当前时间值的比较,使定时器触点动作,也可以将当前时间值作为数值读取用于控制。 不使用的定时器,可用做数据寄存器。
计时器对PLC内部的1ms、10ms和100ms等时钟进行计数,并将计数值存储于当前时间值寄存器中,在当前时间值寄存器中的数值等于或大于时间设定值寄存器中的设定值时,该定时器触点动作。
定时器(T)的地址号与功能见表
定时器的定时常数可采用立即数设定,也可用数据寄存器D间接寻址方法设定。
(1)立即数设定如图所示。 当X003=ON,则将十进制整数K100赋予定时器T10的时间设定值寄存器,同时启动T10定时器,对PLC内部的100ms时基进行计数。
(2)间接寻址方法设定如图所示。 当X001=ON,则将十进制整数K100赋予数据寄存器D5,当X003=ON,将D5的数值(K100)赋予定时器T10的时间设定值寄存器,同时启动T10定时器,对PLC内部的100ms时基进行计数。
FX2N系列PLC的定时器分为通用定时器和积算型定时器两类。
(1)通用定时器
通用定时器的特点是不具备断电保持功能,即当输入电路断开或停电时定时器复位。 通用定时器有100ms和10ms两种。
① 100ms通用定时器(T0~T199)共200点。 其中T192~T199为子程序和中断服务程序专用定时器。 这类定时器是对100ms时钟累积计数,设定值为1~32767,所以其定时范围为0.1~3276.7s。
② 10ms通用定时器(T200~T245)共46点。 这类定时器是对10ms时钟累积计数,设定值为1~32767,所以其定时范围为0.01~327.67s。
(2)积算型定时器
积算型定时器具有计数累积的功能。 在定时过程中如果断电或定时器线圈变为OFF,积算型定时器将保持当前值,通电或定时器线圈变为ON后继续累积,只有将积算型定时器复位,其当前值才变为0。
① 1ms积算型定时器(T246~T249)共4点。 这类定时器对1ms时钟脉冲进行累积计数的定时时间范围为0.001~32.767s。
② 100ms积算型定时器(T250~T255)共6点。 这类定时器对100ms时钟脉冲进行累积计数的定时时间范围为0.1~3276.7s。
6.计数器(C)
计数器用于对X、Y、M、S、T和C等变量元件的触点通断次数进行计数。 计数器与定时器相同,可以根据设定计数值与当前计数值的比较结果输出触点信号,也可以读取计数器的当前值用于控制。 不使用的计数器,可用做数据寄存器。
当用MOV等应用指令将小于当前值寄存器的数据写入设定值寄存器时,则在下次计数输入到来时,计数器触点立即接通,当前值寄存器的数值变为设定值。
计数器的地址号与功能见表(最高位是符号位)
FX2N系列计数器分为内部计数器和高速计数器两类。
1)内部计数器
内部计数器是在执行扫描操作时对内部信号(如X、Y、M、S、T等)进行计数。 内部输入信号的接通和断开时间应比PLC的扫描周期稍长。
(1)16位增计数器(C0~C199)共200点。 这类计数器为递加计数,应用前先对其设置一设定值,当输入信号(上升沿)个数累加到设定值时,计数器动作,即其常开触点闭合、常闭触点断开。 计数器的设定值为1~32767(16位二进制)。 设定值除了用常数K设定外,还可间接通过指定数据寄存器设定。
(2)32位增/减计数器(C200~C234)共有35点,其中C200~C219(共20点)为通用型,C220~C234(共15点)为断电保持型。 这类计数器与16位增计数器除位数不同外,还在于它能通过控制实现加/减双向计数。 设定值范围均为-2147483648~+2147483647(32位)。
C200~C234是增计数还是减计数,分别由特殊辅助继电器M8200~M8234设定。 对应的特殊辅助继电器被置为ON时为减计数,置为OFF时为增计数。
32位计数器的设定值与16位计数器一样,可直接用常数K或间接用数据寄存器D的内容作为设定值。 在间接设定时,要用编号紧连在一起的两个数据寄存器。
2)高速计数器(C235~C255)
高速计数器与内部计数器相比除允许输入频率高之外,应用也更为灵活。 高速计数器均有断电保持功能,通过参数设定也可变成非断电保持。 FX2N有C235~C255共21点高速计数器。 适合用来作为高速计数器输入的PLC输入端口有X000~X007。 X000~X007不能重复使用,即某一个输入端已被某个高速计数器占用,则既不能再用于其他高速计数器,也不能用作它用。
各高速计数器对应的输入端如下表,U为加计数输入,D为减计数输入,B为B相输入,A为A相输入,R为复位输入,S为启动输入。 X006、X007只能用作启动信号,而不能用做计数信号。
高速计数器可分为如下4类。
(1)单相单计数输入高速计数器(C235~C245)。 其触点动作与32位增/减计数器相同,可进行增或减计数(取决于M8235~M8245的状态)。
(2)单相双计数输入高速计数器(C246~C250):这类高速计数器具有两个输入端,一个为增计数输入端,另一个为减计数输入端。 利用M8246~M8250的ON/OFF动作可监控C246~C250的增计数/减计数动作。
(3)双相高速计数器(C251~C255):A相和B相信号决定计数器是增计数还是减计数。 如图2.18所示,当A相为ON时,B相由OFF到ON,则为增计数;当A相为ON时,B相由ON到OFF,则为减计数。 当X012接通时,C251计数开始。
高速计数器的计数频率较高,它们的输入信号的频率受两方面的限制。 一是全部高速计数器的处理时间,因采用中断方式,所以计数器用的越少,则计数频率就越高; 二是输入端的响应速度,其中X000、X002、X003最高频率为10kHz,X001、X004、X005最高频率为7kHz。
7.数据寄存器(D)
数据寄存器为16位,最高位为符号位。 可用两个数据寄存器来存储32位数据,最高位仍为符号位。 PLC在进行I/O处理、模拟量控制、位置控制时,需要许多数据寄存器存储数据和参数。
数据寄存器有以下几种类型。
1)通用数据寄存器(D0~D199)
通用数据寄存器共200点。 当M8033为ON时,D0~D199有断电保护功能; 当M8033为OFF时则无断电保护,即当PLC由RUN→STOP或停电时,数据全部清零。
2)断电保持数据寄存器(D200~D7999)
断电保持数据寄存器共7800点,其中D200~D511(共312点)有断电保持功能,可以利用外部设备的参数设定改变通用数据寄存器与有断电保持功能数据寄存器的分配; D490~D509供通信用; D512~D7999的断电保持功能不能用软件改变,但可用指令清除其内容。 根据参数设定可以将D1000以上的数据寄存器作为文件寄存器。
3)特殊数据寄存器(D8000~D8255)
特殊数据寄存器共256点。 特殊数据寄存器的作用是监控PLC的运行状态,如扫描时间、电池电压等。 未加定义的特殊数据寄存器,用户不能使用。 具体情况可参见用户手册。
8.变址寄存器(V/Z)
FX2N系列PLC有V0~V7和Z0~Z7共16个变址寄存器,都是16位的寄存器。 变址寄存器V/Z实际上是一种特殊用途的数据寄存器,其作用相当于计算机中的变址寄存器,用于改变元件的编号(变址)。 例如,设V0=5,则执行D20V0时,被执行的数据寄存器的地址编号为D25(D20+5)。 变址寄存器可以像他数据寄存器一样进行读写,需要进行32位操作时,可将V、Z串联使用(Z为低位,V为高位)。
9.指针(P、I)
在FX系列中,指针用来指示分支指令的跳转目标和中断程序的入口标号,分为分支用指针、输入中断指针、定时中断指针和计数中断指针。
1)分支用指针(P0~P127)
分支用指针用来指示跳转指令(CJ)的跳转目标或子程序调用指令(CALL)调用子程序的入口地址。 FX2N有P0~P127共128点分支用指针。
2)中断指针(I0□□~I8□□)
中断指针用来指示某一中断程序的入口位置。 执行中断后遇到IRET(中断返回)指令,则返回主程序。 中断用指针有以下3种类型。
(1)输入中断指针(I00□~I50□)共6点,用来指示由特定输入端的输入信号而产生中断的中断服务程序的入口位置,这类中断不受PLC扫描周期的影响,可以及时处理外界信息。输入中断指针的编号格式如下所示
例如,当输入X001从OFF→ON变化时,执行以I101为标号的后面的中断程序,并根据IRET指令返回。
(2)定时中断指针(I6□□~I8□□)共3点,用来指示周期定时中断的中断服务程序的入口位置,这类中断的作用是PLC以指定的周期定时执行中断服务程序,定时循环处理某些任务,处理的时间也不受PLC扫描周期的限制。□□表示定时范围,可在10~99ms中选取。
(3)计数中断指针(I010~I060)共6点,用在PLC内置的高速计数器中。根据高速计数器的计数当前值与计数设定值的关系确定是否执行中断服务程序,常用于利用高速计数器优先处理计数结果的场合。
10.常数(K、H)
K是表示十进制整数的符号,主要用来指定定时器或计数器的设定值及应用功能指令操作数中的数值。
H是表示十六进制数的符号,主要用来表示应用功能指令的操作数值。
例如,20用十进制表示为K20,用十六进制则表示为H14。
评论
查看更多