1、plc 的基本数据结构 三菱FX 系列 PLC 内部的编程元件从物理实质上来说是电子电路及存储器,按通俗叫法分别称为输入继电器、输出继电器、辅助继电器、定时器、计数器等,鉴于它们的物理属性,称之为软继电器或软元件, 它们与真实元件之间有很大的差别。这些编程用的继电器的工作线圈没有工作电压等级、功耗大小和电磁惯性等问题,触点也没有数量限制、机械磨损和电蚀等问题。在不同的指令操作下,其工作状态可以无记忆,也可以有记忆,还可以作脉冲数字元件使用。一般情况下,这些编程元件分为位元件和字元件两种。 1. 位元件 FX 系列 PLC 有 4 种基本编程位元件,为了分辨各种编程位元件,给它们指定了专用的字母符号: X :代表输入继电器,用于直接输入给 PLC 的物理信号。 Y :代表输出继电器,用于从 PLC 直接输出物理信号。 M (辅助继电器)和 S (状态继电器): PLC 内部的运算标志。 上述的各 种元件称为 “ 位( bit )元件 ” ,它们只有两种不同的状态,即 ON 和 OFF ,可以分别用二进制 1 和 0 来表示这两种状态。 2. 字元件 8 个连续的位组成一个字节( byte ), 16 个连续的位组成一个字( word ), 32 个连续的位组成一个双字( double word )。定时器和计数器的当前值和设定值均为有符号字,高位(第十五位)为符号位,正数的符号位为 0 ,负数的符号位为 1 。 2、输入继电器(X)与输出继电器(Y) 1. 输入继电器( X ) PLC 的输入端子是从外部开关接受信号的窗口, PLC 内部与输入端子连接的输入继电器( X ) 是光电隔离的电子继电器,它通常采用八进制编码, 线圈的吸合或释放只取决于 PLC 外部触点的状态 。内部有常开/常闭两种触点供编程时随时使用,且使用次数不限。各基本单元都是八进制输入的地址,输入为 X000 ~ X007 , X010 ~ X017 , X020 ~ X027 ,……,多 128 点,它们一般位于机器的上端。 图 为 PLC 系统输入继电器与输出继电器示意图。 2. 输出继电器( Y ) PLC 的输出端子是向外部负载输出信号的窗口。输出继电器的线圈由程序控制,且其外部输出主触点接到 PLC 的输出端子上供外部负载使用,而其余常开 / 常闭触点供内部程序使用。输出继电器常开 / 常闭触点的使用次数不限。各基本单元都是按八进制编码输出,输出为 Y000 ~ Y007 , Y010 ~ Y017 , Y020 ~ Y027 ,……,多 128 点,它们一般位于机器的下端。 图 输入继电器与输出继电器示意图 3、辅助继电器(M) PLC 内部有很多辅助继电器,其动作原理与输出继电器一样,只能由程序驱动。辅助继电器也称中间继电器,它没有向外的任何联系,只供内部编程使用,且其常开 / 常闭触点使用次数不受限制。辅助继电器不能直接驱动外部负载,外部负载的驱动必须通过输出继电器来实现。辅助继电器主要包含以下 3 类: 1 . 通用辅助继电器 在 FX 系列 PLC 中,除了输入继电器和输出继电器的元件号采用八进制编码外,其它编程元件的元件号均采用十进制编码。 通用辅助继电器的线圈由用户程序驱动,若 PLC 在运行过程中突然断电,输出继电器和通用辅助继电器将全部变为 OFF 。若电源再次接通,除了因外部输入信号而变为 ON 的以外,其余的仍将保持为 OFF 。 FX 2N 的 PLC 内部共有通用辅助继电器 500 点,从 M0 ~ M499 。 2. 锁存(断电保持)辅助继电器 某些控制系统要求记忆电源中断瞬间时的状态,重新通电后再现其状态,锁存辅助继电器就可以用于这种场合。 FX 2N 的 PLC 内部共有锁存继电器 2572 点,从 M500 ~ M3071 。 在电源中断时, PLC 用锂电池保持 RAM 中寄存器的内容,它们只是在 PLC 重新上电后的个扫描周期保持断电瞬时的状态。为了利用它们的断电记忆功能,可以采用有记忆功能的电路。设图 中的 X0 和 X1 分别是起动按钮和停止按钮, M600 通过 Y0 控制外部的电动机,若电源中断时 M600 为 ON 状态,因为电路的记忆作用,重新通电后 M600 将保持 ON 状态,从而使 Y0 继续为 ON ,电动机重新开始运行。这时若断开 X1 ,则 M600 失电, Y0 为 OFF 。 图 锁存辅助继电器的保持功能 3 .特殊辅助继电器 辅助继电器中 M8000 ~ M8255 共 256 点为特殊辅助继电器,它们用来表示 PLC 的某些状态,提供时钟脉冲和标志(如进位、借位标志),设定 PLC 的运行方式,或用于步进顺控、禁止中断、设定计数器是加计数器或是减计数器等。特殊辅助继电器可分为以下两类: ( 1 )触点利用型 由 PLC 的系统程序来驱动特殊辅助继电器的线圈,在用户程序中直接使用其触点,但是不能出现它们的线圈,例如: M8000 (运行监视):当 PLC 执行用户程序时 M8000 为 ON ,停止执行时 M8000 为 OFF ,如图 所示。 M8002( 初始化脉冲 ) : M8002 仅在 M8000 由 OFF 变为 ON 状态时的一个扫描周期内为 ON ,如图 6.10 所示,可以用 M8002 的常开触点来使有断电保护功能的元件复位或给它们置初始值。 图 时序图 M8011 ~ M8014 分别是 10ms 、 100ms 、 1s 和 1min 时钟脉冲,见图 6.10 。 M8005 (锂电池电压降低时用):电池电压下降至规定值时变为 ON ,可以用它的触点驱动输出继电器和外部指示灯,从而提醒工作人员更换锂电池。 ( 2 ) 线圈驱动型 由用户程序驱动其线圈,从而使 PLC 执行特定的操作,因此用户并不使用它们的触点。例如: M8030 的线圈 “ 通电 ” 后, “ 电池电压降低 ” 发光二极管熄灭; M8033 的线圈 “ 通电 ” 后, PLC 进入 STOP 状态后,所有输出继电器的状态保持不变; M8034 的线圈 “ 通电 ” 后,禁止所有的输出; M8039 的线圈 “ 通电 ” 后, PLC 以 D8039 中指定的 扫描时间工作。 4、状态继电器(S) 状态继电器是用于编制顺序控制程序的一种编程元件(状态标志),常与 STL 指令(步进梯形指令)配合使用,主要用于编程过程中顺控状态的描述和初始化。它与 STL 指令组合使用,容易编制出易懂的顺控程序。当不对状态继电器使用步进梯形指令时,可以把它们当作普通辅助继电器( M )使用,其地址码按十进制编码。 FX 2N 系列 PLC 的状态继电器通常分为以下几类: 初始化用: S0 ~ S9 ( 10 点); 返回原点状态器: S10 ~ S19 ( 10 点); 通用型: S20 ~ S499 ( 480 点); 断电保持型: S500 ~ S899 ( 400 点); 报警型: S900 ~ S999 ( 100 点)。 5、定时器(T)与计数器(C) FX 1N 、 FX 2N 系列 PLC 内部可提供 256 个定时器和 256 个计数器,定时器的编号为 T000 ~ T255 ,计数器的编号为 C000 ~ C255 。定时器和计数器不能直接产生输出,必须通过输出继电器才能输出。 1. 定时器( T ) 定时器在 PLC 中的作用相当于一个时间继电器, PLC 内的定时器是根据时钟脉冲的累积形式,将 PLC 内的 1ms 、 10ms 、 100ms 等时钟脉冲进行加法计数,当所计时间达到规定的设定值时,其输出触点动作,定时范围为 0.001 ~ 3276.7s 。定时器可以用用户程序存储器内的常数 K 作为设定值,也可以用数据寄存器( D )的内容作为设定值。定时器的元件号及其设定值如下: ( 1 ) 100ms 定时器 T0 ~ T199 ,共 200 点,计时范围: 0.1 ~ 3276.7 秒; ( 2 ) 10ms 定时器 T200 ~ T245 ,共 46 点,计时范围: 0.01 ~ 327.67 秒; ( 3 ) 1ms 积算定时器 T246 ~ T249 ,共 4 点,计时范围: 0.001 ~ 32.767 秒; ( 4 ) 100ms 积算定时器 T250 ~ T255 ,共 6 点,计时范围: 0.1 ~ 3276.7 秒。 定时器的定时值=设定值×时钟,定时器指令符号和时序图如下图所示。 在上图中,当定时器线圈 T0 的驱动输入 X0 接通时, T0 的当前值计数器对 100ms 的时钟脉冲每隔 100ms 加 1 ,当该值与设定值 K100 相等时,定时器的输出触点动作,即输出触点是在驱动线圈后的 10 秒( 100 × 100ms=10s )时才动作, T0 的常开触点闭合后, Y0 就有输出。当驱动输入 X0 断开或发生停电时,定时器就复位,输出触点也复位。 在 FX 1N 、 FX 2N 系列 PLC 中,积算定时器一共有 10 点, 1ms 积算定时器有 4 点,从 T246 ~ T249 ; 100ms 积算定时器有 6 点,从 T250 ~ T255 。 积算定时器的指令形式和时序图如下图所示。该图中,定时器线圈 T250 的驱动输入 X0 接通时, T250 的当前值计数器开始对 100ms 的时钟脉冲进行累积计数,当该值与设定值 K100 相等时,定时器的输出触点动作。在计数过程中,即使输入 X0 断电,它也会把当前值(如图中的 6s )保持下来,当 X0 通电时,再继续累积 4s ,当累积时间为 10s ( 100 × 100 ms =10s )时触点动作, Y0 闭合。因为积算定时器的线圈断电时不会复位,所以需要用复位指令 RST 使其强制复位,如下图,当复位输入 X1 接通时,定时器就复位,输出触点也复位。 2. 计数器( C ) FX 2N 系列 PLC 的计数器是在执行扫描操作时对内部元件 X 、 Y 、 M 、 S 、 T 、 C 的触点通断次数进行积算式定时方式计数。当计数次数达到计数器的设定值时,计数器触点动作,使控制系统完成相应的控制作用。计数器的设定值可由常数 K 设定,也可以由指定的数据寄存器 D 的存储数据来设定。 计数器分为如下 5 类: ( 1 ) 16 位通用加计数器 C0 ~ C99 ,共 100 点,设定值: 1 ~ 32767 , 16 位是指其设定值寄存器为 16 位。 ( 2 ) 16 位锁存加计数器 C100 ~ C199 ,共 100 点,设定值: 1 ~ 32767 。 ( 3 ) 32 位通用加 / 减双向计数器 C200 ~ C219 ,共 20 点,设定值:- 2147483648 ~ +2147483647 , 32 位是指其设定值寄存器为 32 位,。 ( 4 ) 32 位锁存加 / 减双向计数器 C220 ~ C234 ,共 15 点,设定值:- 2147483648 ~ +2147483647 。 ( 5 ) 32 位加 / 减双向高速计数器 C235 ~ C255 ,共 21 点,设定值:- 2147483648 ~ +2147483647 。 C200 ~ C255 以上加 / 减双向计数器的计数方向由特殊辅助继电器 M8200 ~ M8255 设定,对应的特殊辅助继电器为 ON 时,为减计数器,反之为加计数器。 如下图所示,当 X3 为 OFF 时, M8200 为 OFF ,此时由 M8200 将计数器 C200 设定为加计数器。计数输 入X0 每次驱动 C200 线圈时,计数器的当前值加 1 ,当第 5 次执行线圈指令时,计数器 C200 的输出常开触点闭合, Y0 为 ON ,之后即使计数器输入 X0 再给计数器线圈送信号,计数器的当前值也保持不变。当复位输入 X1 接通( ON )时,执行 RST 指令,计数器的当前值为 0 ,输出接点 C200 也复位, Y0 为 OFF 。应注意的是,对于计数器 C100 ~ C199 ,即使 PLC 断电,当前值与输出触点的动作状 态或复位状态也能保持。 6、数据寄存器(D) 数据寄存器主要用来存储参数及工作数据,包括模拟量控制、位置控制、数据输入 / 输出等工作中所用到的数据。 FX 系列中每一个数据寄存器都是 16 位(高位为符号位)二进制数或一个字,可以用两个相邻数据寄存器合并起来存储 32 位(高位为符号位)二进制数或两个字。数据寄存器分为 4 种类型: 1. 通用数据寄存器 FX 2N 可编程控制器中的 D0 ~ D199 是通用数据寄存器,共 200 点。 数据寄存器中数据的写入一般采用传送指令,只要不往通用数据寄存器写入新数据,已写入的数据就不会变化。但是, PLC 运行状态由 RUN → STOP 时,全部数据均清零。(若特殊辅助继电器 M8033 已被驱动,则数据不被清零。) 2. 锁存数据寄存器 FX 2N 可编程控制器中的 D200 ~ D7999 为锁存数据寄存器,共 7800 点(不同机型,该点数不同)。 锁存数据寄存器有断电保持功能, PLC 由 RUN 状态进入 STOP 状态时,锁存数据寄存器中的值保持不变。 3. 文件寄存器 FX 2N 可编程控制器中的 D1000 ~ D7999 为文件寄存器,共 7000 点。 文件寄存器是用户程序存储器( RAM 、 EEPROM 、 EPROM )内的一个存储区,以 500 点为一个单位,多可在参数设置时达到 7000 点。它只能用外部设备进行写入操作,在 PLC 运行时,可用 BMOV 指令将其读到通用数据寄存器中,但是不能用指令将数据写入文件寄存器。用 BMOV 将数据写入 RAM 后,再从 RAM 中读出。将数据写入 EEPROM 盒时,需要花费一定的时间,请务必注意。 4. 特殊数据寄存器 FX 2N 可编程控制器中的 D8000 ~ D8255 为特殊数据寄存器,共 256 点。 特殊数据寄存器用来监控 PLC 内部的各种工作方式和元件,例如电池电压、扫描时间等。其内容是在 PLC 上电时,写入的初始化值(一般先清零,然后由系统 ROM 来写入)。如 D8000 用来存放警戒监视时钟,其时间是由系统 ROM 设定的。若需要改变,应用传送指令将目的时间送入 D8000 。该值在由运行转为停止时,保持不变。 此外, FX 系列 PLC 内部的编程元件还有变址寄存器( V 、 Z )。 变址寄存器( V 、 Z )除了和普通的数据寄存器有相同的使用方法外,还常用于修改器件的地址编号。变址寄存器由 V0 ~ V7 及 Z0 ~ Z7 共 16 点 16 位的数据寄存器构成,可进行数据的读写,当进行 32 位操作时,将 V 和 Z 合并,其中 Z 为低 16 位。 7、内部 指针与常数 内部指针( P/I )包括分支和子程序用的指针( P )和中断用的指针( I )。在梯形图中,指针放在左侧母线的左边。 内部指针( P/I )是在程序执行到内部时用来改变执行流向的元件。分支指令有 P0 ~ P127 ,它们可用来指定条件跳转、子程序调用等,其中 P63 表示跳转结束。中断指令有 I0 ~ I8 ,输入中断 I △ 0 □,△表示输入号,取值范围为 0 ~ 5 ,□ =0 表示下降沿中断,□ =1 表示上升沿中断,每个输入只能用一次,以接受来自对应的输入编号( X0 ~ X5 )的输入信号。定时器中断 I △□□,△表示定时器中断号,取值范围为 6 ~ 8 ,□□表示定时时间,取值范围为 10 ~ 99ms ,中断指令根据 IRET 指令返回。 常数 K 用来表示十进制常数, 16 位常数的范围为- 32768 ~+ 32768 , 32 位常数的范围为- 2147483648 ~+ 2147483647 。 常数 H 用来表示十六进制常数, 16 位常数的范围为 0 ~ FFFF , 32 位常数的范围为 0 ~ FFFFFFFF 。 PLC 内部的编程元件都有确定的地址编号,不同厂家,不同型号的 PLC ,其编程元件的数量、种类、地址编号都不一样,这对编程者是很重要的,下表 以 FX 2N 系列 PLC 为例,列出了其相关的编程元件。 表 FX 2N 系列 PLC 内部各继电器的编号 元件名称符号元件编号点数输入继电器XX000 ~ X177( 八进制 )128 点输出继电器YY000 ~ Y177( 八进制 )128 点辅助继电器通用辅助继电器MM0 ~ M499500 点锁存辅助继电器M500 ~ M30712572 点特殊辅助继电器M8000 ~ M8255256 点状态继电器初始化状态继电器SS0 ~ S910 点通用状态继电器S10 ~ S499490 点锁存状态继电器S500 ~ S899400 点信号报警器S900 ~ S999100 点定时器100ms 定时器TT0 ~ T199200 点10ms 定时器T200 ~ T24546 点1ms 积算定时器T246 ~ T2494 点100ms 积算定时器T250 ~ T2556 点计数器16 位通用加计数器CC0 ~ C99100 点16 位锁存加计数器C100 ~ C199100 点32 位通用加减计数器C200 ~ C21920 点32 位锁存加减计数器C220 ~ C23415 点高速计数器C235 ~ C25521 点数据寄存器通用数据寄存器DD0 ~ D19916 位 200 点锁存数据寄存器D200 ~ D799916 位 7800 点文件寄存器D1000 ~ D79997000 点,以 500 个为单位设置文件寄存器特殊寄存器D8000 ~ D825516 位 256 点变址寄存器V0 ~ V7 , Z0 ~ Z716 位 16 点跳步指针跳步和子程序调用PP0 ~ P127128 点常数十进制常数K-16 位:- 32768 ~ +3276832 位:- 2147483648 ~ +2147483647十六进制常数H16 位 : 0 ~ FFFF32 位 : 0 ~ FFFFFFFF |