1.输入软元件X
输入(X)是用来通过开关、切换开关、限位开关、数字开关等外围设备,向CPU模块发送数据或命令,如图3-4所示。
2.输出软元件Y
输出是指将程序的控制结果通过PLC输出器件(继电器、晶体管、晶闸管等输出器件)向外部的信号灯、接触器、数字显示器、电磁开关(接触器)等负载进行输出。如图3-4所示。
图3-4 输入/输出软元件
3.辅助继电器(M)
内部继电器是指在CPU模块内部使用的辅助继电器。
PLC中有多个辅助继电器,这些辅助继电器的线圈与输出继电器相同,是通过PLC中的各种软元件的触点来驱动。
辅助继电器有无数的电子常开触点和常闭触点,可在PLC中任意使用,但是不能通过这个触点直接驱动外部负载,外部负载必须通过输出继电器进行驱动。
辅助继电器(M)的编号见表3-3(编号以10进制数分配)。
表3-3 FX3U/FX3UC辅助继电器(M)编号(不同FX系列PLC的M范围不同)
①非停电保持区域。根据设定的参数,可以更改为停电保持(保持)区域。
②停电保持区域(保持)。根据设定的参数,可以更改为非停电保持。
③关于停电保持的特性可以通过参数进行变更。
使用简易N∶N网络和并联链接的情况下,一部分的辅助继电器被占用为链接使用。
(1)一般用
一般用的辅助继电器的编号从M0~M499,当PLC的电源断开后,一般用的辅助继电器都变为OFF。(当希望保留停电之前的状态时,根据设定的参数可以更改为停电保持用辅助继电器),如图3-5所示。
图3-5 辅助继电器M回路
如当X0接通时,M0接通,当X0断开时,M0断开,再次上电M0状态为OFF。
(2)停电保持用
若在PLC的运行过程中断开电源,输出继电器和一般继电器全部变为OFF,当再次上电时,根据控制对象的不同,也可能出现停电之前的状态被记住,再次运行时重新再现的情况。在这样的情况下,使用停电保持辅助继电器。停电保持用软元件是通过PLC内置的后备电池执行停电保持的,如图3-6所示。
图3-6 停电保持辅助继电器(自保持回路)
1)X000为ON,M600动作变为ON。
2)X000断开,M600动作自我保持。
3)停电断开X000,当再次上电运行的时候,M600会继续之前的动作为ON,如果X001开路M600则不会动作。
4)将停电保持专用继电器作为一般用继电器使用的方法:将停电保持专用的辅助继电器作为一般用的辅助继电器使用时,请在程序的开头步附近设置如图3-7所示。
(3)特殊作用继电器
图3-7 软元件复位
特殊作用继电器是PLC预先准备的内置功能动作的软元件,软元件编号M8000~M8511(FX3U、FX3UC),根据不同的用途有相应的继电器对应。如M8000为RUN监控,M8002初始脉冲,更多的特殊软元件功能参见附录2。
1)RUN监控,(M8000,M8001)
PLC运行状态的RUN状态(M8000,M8001),可以作为指令的驱动条件,也可以在显示“正常运行中”的外部显示中使用。
a)程序举例,如图3-8所示。
图3-8 M8000 RUN监控
b)标志位的动作时序(见图3-9):M8001在RUN中一直为OFF。
2)初始脉冲(M8002、M8003)
图3-9 标志位的动作时序
初始脉冲(M8002、M8003)在PLC开始运行以后,仅瞬间(1个运算周期)为ON,或是为OFF。这个脉冲可以作为程序的初始化或者写入规定值等程序中的初始设定信号使用。
a)程序举例(见图3-10):M8003仅仅在RUN后的一瞬间(1个运算周期)为OFF。
图3-10 M8002初始脉冲
b)标志位的动作时序,如图3-9所示。
3)电池电压过低(M8005、M8006)
检测内存备份用的锂电池电压过低的特殊软元件。
当PLC检 测 出 电 池 电 压 过 低 时,M8005、M8006状态接通,同时BATT LED灯亮。如通知外部设备编制如图3-11所示(程序举例)。
4)内部时钟(M8011~M8014)
当PLC上电时,M8011~M8014分别产生10ms、100ms、1s、60s周期的时钟信号,M8011~M8014是PLC内部时钟脉冲,与PLC是否运行无关。内部时钟时序如图3-12所示。
图3-11 电池电压过低监控
图3-12 内部时钟时序
注意:即使PLC停止时,时钟也保持运作。因此,RUN监控(M8000)的上升沿和时钟的开始时间不同步。
5)看门狗定时器时间(D8000)
看门狗定时器监视PLC的运算(扫描)时间,在规定的时间内没有完成时,使ERROR LED灯亮,所有的输出都变为OFF。
上电时从系统传送200ms的初始值,但如果执行的程序超出这个时间时,必须在程序中更改D8000的值。WDT时间的设定如图3-13所示(程序举例)。
图3-13 WDT时间的设定
4.状态(S)
状态(S)是对工序步进控制进行简易编程所需的软元件,可以与步进梯形图指令STL组合使用,而且在使用SFC图的编程方式中也可以使用状态。
状态(S)的编号见表3-4(编号以10进制数分配)。
表3-4 FX3U/FX3UC状态编号(不同FX系列PLC的S范围也不同)
①非停电保持区域。根据设定的参数,可以更改为停电保持(保持)区域。
②停电保持区域(保持)。根据设定的参数,可以更改为非停电保持区域。
③关于停电保持的特性可以通过参数进行变更。
图3-14 工序步进控制
(1)一般用
工序步进控制如图3-14所示。
当启动信号X000为ON后,状态S20被置位,下降电磁阀Y000工作。如果X001为ON,状态S21被置位,夹紧电磁阀Y001工作。夹紧限位开关X002为ON,状态S22就会置位ON,随着动作的转移,状态也自动地复位成移动前的状态。当PLC的电源断开后,一般用的状态都变为OFF。
状态继电器(S)与辅助继电器(M)相同,有无数个常开触点和常闭触点,可以在顺控程序中随意使用。而且,不用于步进梯形图指令的时候,状态也和辅助继电器(M)相同,可以在一般的顺控中使用,如图3-15所示。
(2)停电保持用
停电保持用的状态就是,即使在PLC的运行过程中断开电源,也能记住停电之前的ON/OFF状态,且再次运行的时候可以从中途的工序开始重新运行,通过PLC中的后备电池执行停电保持。
将停电保持用状态作为一般用状态使用时,请通过程序进行复位,如图3-16所示。
图3-15 状态继电器(S)同辅助继电器(M)使用
图3-16 停电保持用状态复位
(3)信号报警器用
信号报警器用状态,可以作为诊断外部故障用的输出使用,对应状态为S900~S999,驱动特殊辅助继电器M8049后,监控有效,当S900~S999中任何一个状态为ON,则特殊辅助继电器M8048动作为ON。同时,特殊数据寄存器D8049中存储S900~S999的动作中的最小编号,有关步进梯形图指令及状态(S)的使用,参看第4章的内容。
5.定时器(T)
从线圈变为ON时开始计时,定时器开始定时,如果当前值达到了设置值,定时器将变为“时间到”状态,同时常开触点变为ON。常闭触点变为OFF。定时器(T)的编号见表3-5(编号以10进制数分配)。不作为定时器使用的定时器编号,也可以作为存储数值用的数据寄存器使用。
表3-5 定时器(T)的编号
①FX3U、FX3UC系列PLC累计型定时器是通过电池进行停电保持的定时器,就是用加法计算PLC中的1ms、10ms、100ms等的时钟脉冲,当加法计算的结果达到所指定的设定值时(设定值可以直接指定或间接指定),输出触点就动作的软元件驱动输入断开或是停电,定时器会被复位并且输出触点也复位。
根据基础的时钟脉冲,一个定时器可以测量的范围为0.001~3276.7s。
T192~T199是子程序和中断子程序专用的定时器,T250~T255是100ms的基准时钟的定时器,但是其当前值是累计方式的,所以定时器线圈的驱动输入即使是OFF也能保持当前值,进行累计。
(1)一般用(见图3-17)
当定时器线圈T200的驱动输入X000为ON时,T200用的当前值计数器就对10ms的时钟脉冲进行加法,如果这个值等于设定值K123时,输出触点动作。
驱动X000断开,或是停电,定时器会被复位并且输出触点也复位。
(2)累计型(见图3-18)
当定时器线圈T250驱动X001为ON时,T250的当前值计数器就对100ms的时钟脉冲进行加法运算,如果这个值等于设定值K345,定时器输出触点动作。在计数过程中,即使出现输入X001为OFF或停电的情况,当再次运行时也能继续计数。其累计时间为34.5s,复位输入X002为ON,定时器会被复位并且输出触点也复位。
图3-17 一般用定时器
图3-18 累计型定时器
(3)设定值的指定方法(见图3-19)
1)指定常数(K)
T10是以100ms(0.1s)为单位的定时器。将常数指定为100,则0.1s×100=10s的定时器工作。
2)间接指定
间接指定的数据寄存器的内容,或是预先在程序中写入,或是通过数字式开关等输入。指定了停电保持(电池保持)用寄存器的时候,如果电池电压下降,设定值就有可能会变得不稳定,需要注意。
图3-19 定时器设定
(4)子程序中的使用
1)在子程序和中断子程序中,请使用T192~T199的定时器。这种定时器在执行线圈指令的时候,或是执行END指令的时候进行计时。如果达到设定值,则在执行线圈指令,或是执行END指令的时候输出触点动作。由于一般的定时器,仅仅在执行线圈指令的时候进行计时(参考下面的[定时器动作的详细内容和定时器精度]),所以只有在某种条件下,才执行线圈指令的子程序和中断子程序,如果使用该定时器计时就不能执行,不能正常动作。
2)在子程序和中断子程序中,如果使用了1ms累计型定时器,当它达到设定值以后,在最初执行的线圈指令处输出触点会动作。请务必注意。
(5)定时器动作的详细内容和定时器的精度
除中断执行型定时器以外,线圈被驱动后开始计时,到时间以后,在最初执行的线圈指令处输出触点动作,如图3-20所示。
图3-20 定时器精度
从上面图3-11所示的动作图可以得知,从驱动线圈开始到触点动作为止的定时器触点的动作精度大致可以用下面的公式表示:
式中,α是根据1ms、10ms、100ms定时器分别为0.001s、0.01s、0.1s;T是定时器设定时间(s);T0是运算周期(s)。
即T-α≤实限动作时间≤T+T0
如果在编程时,触点在定时器线圈前面的话,最大误差情况为+2T0。
此外,定时器的设定值为0时,在下一个循环中,线圈指令执行时,输出触点动作。
另外,中断执行型的1ms定时器是在线圈指令执行后,以中断方式对1ms的时钟脉冲进行计数。
6.计数器(C)
计数器是一种在顺控程序中对输入条件脉冲前沿进行计数的软元件。
计数器的编号(C)见表3-6(编号以10进制数分配)。
表3-6 FX3U、FX3UC计数器编号
①非停电保持区域。根据设定的参数,可以更改为停电保持(保持)区域。
②停电保持区域(保持)。根据设定的参数,可以更改为非停电保持区域。
不作为计数器使用的计数器编号,可以作为保存数值用的数据寄存器使用。
(1)计数器的特点
16位计数器和32位计数器的特点如下所示。可以按照计数方向的切换,以及计数范围等的使用条件不同而分开使用,见表3-7计数器特性。
(2)相关软元件(增/减的指定)[32位计数器]
增减计数切换用的辅助继电器,若ON时为减计数器,若OFF时为增计数器,见表3-8计数器相关软元件。
表3-7 计数器特性
表3-8 计数器相关软元件
(3)计数器的用途
根据目的和用途不同,可以分开使用。
1)计数器(保持)用
计数器是PLC的内部信号用的,其响应速度通常为几十赫兹以下。
a)16位计数器:增计数器,计数范围1~32767(10进制常数),一般用计数器的情况下,PLC电源断开,则计数值会被清除,但停电保持用计数器情况下,会记住停电之前的数值,所以能够在上一次的值上进行累计计数,如图3-21所示。
图3-21 16位增计数器
通过计数输入X011,每驱动一次C0线圈,计数器的当前值就会增加,在第10次执行线圈指令的时候,输出触点动作。此后,即使计数输入X011动作,计数器的值不会变化。如果输入复位X010为ON,执行RST指令时,计数器的当前值变为0,输出触点也复位。
b)32位计数器:增计数/减计数用,计数范围为-2147483648~+2147483647可以使用辅助继电器M8200~M8234指定增计数/减计数的方向,对应C200~C234,对于C△△△,驱动M8△△△后为减计数,不驱动的时候为增计数。
根据常数K或是数据寄存器D的内容,设定值可以使用正负的值。使用数据寄存器D的情况下,将编号连续的软元件视为一组,将32位数据作为设定值,如图3-22所示。
图3-22 32位增/减计数器
①使用计数输入X014驱动C200线圈的时候,由X012控制可以增计数,也可以减计数。计数器当前值由“-6”增加到“-5”的时候,输出触点被置位,在由“-5”减少到“-6”的时候复位。
②如果复位输入X013为ON,执行RST指令,此时计数器当前值为0,输出触点也复位。
③停电保持用的情况下,计数器的当前值和输出触点的动作、复位状态都会被停电保持。
④当前值的增减与输出触点的动作无关,如果从2147483647开始增计数则变成-2147483648。同样,如果从-2147483648开始减计数,就变成2147483647。(像这样的动作称为环形计数。)如果复位输入X013为ON,执行RST指令,此时计数器的当前值变为0,输出触点也复位。
2)设定值的指定方法
a)16位计数器
①指定常数(K),如图3-23所示。
图3-23 指定常数
②间接指定(D),如图3-24所示。
b)32位计数器
①指定常数(K),如图3-25所示。
②间接指定(D),如图3-26所示。
3)计数器的响应速度
图3-26 间接指定
计数器就是在对PLC的内部信号X、Y、M、S、C等触点的动作执行循环运算的同时进行计数。例如,X011作为计数输入时,它的ON和OFF的持续时间必须要比PLC的扫描时间还要长(通常是几十赫兹以下)。
对于这个问题,后面将要提及的高速计数器,就是用中断处理对特定的输入计数,与扫描时间无关,执行几千赫兹的计数,详见第6章。
(4)高速计数器
高速计数器是通过输入基本单元输入端子或输入高速输入特殊适配器(选件)信号进行计数。高速计数器与PLC的扫描无关,根据中断处理进行高速动作。关于高速计数器的软元件以及使用请参考第6章。
7.数据寄存器(D)
数据寄存器就是保存数据的软元件。FX系列PLC的数据寄存器是16位(最高位是符号位),组合两个寄存器后可以处理32位数据。和其他软元件相同,数据寄存器也有一般用、停电保持用和特殊用的。
1)数据寄存器、文件寄存器(D)的编号见表3-9(编号以10进制数分配)。
表3-9 FX3U、FX3UC数据寄存器编号
①非停电保持区域。根据设定的参数,可以更改为停电保持(保持)区域。
②停电保持区域(保持)。根据设定的参数,可以更改为非停电保持区域。
③关于停电保持的特性不能通过参数进行变更。
④根据设定的参数,可以将D1000以后的数据寄存器以500点为单位作为文件寄存器。
2)16位数据寄存器(D)为可对数值数据(-32768~32767或0000H~FFFFH)进行存储的存储器。16位字结构如图3-27所示。
图3-27 16位字结构
一般情况下,使用应用指令对数据寄存器的数值进行读出/写入。
此外,也可以用人机界面、显示模块、编程工具直接进行读出/写入。
3)在32位指令中使用数据寄存器时,使用两个相邻的数据寄存器(Dn和Dn+1)作为处理对象。低16位对应于顺控程序中指定的数据寄存器编号(Dn),高16位对应于顺控程序中指定的数据寄存器编号+1。
a)数据寄存器的高位编号大,低位编号小;
b)变址寄存器的V为高位,Z为低位。
据此,32位数据可以处理-2147483648~+2147483647的数值。32位字结构如图3-28所示。
图3-28 32位字结构
(1)一般用/停电保持用
数据寄存器中的数据一旦被写入,在其他数据未被写入之前都不变化。在RUN→STOP时以及停电时,一般用寄存器的所有数据都被清除为0。但是,如果驱动特殊辅助继电器M8033,即使RUN→STOP时也能保持。
停电保持数据寄存器,在RUN→STOP以及停电时都能保持其内容。
将停电保持用寄存器作为一般的使用时,需使用RST或是ZRST指令在程序的开头设置如图3-29所示的停电保持用数据寄存器复位的复位梯形图。
图3-29 停电保持用数据寄存器复位
(2)特殊用
写入特定目的的数据,预先写入特定内容的数据寄存器。该内容在每次上电时被设置为初始值(一般被清零,带初始值的通过系统ROM写入)。例如,系统ROM对D8000中WDT时间进行初始设定,但如果要更改,使用传送指令MOV可以向D8000写入目的时间。特殊用数据寄存器数据的修改如图3-30所示(更多的特殊软元件功能参见附录2)。
图3-30 特殊用数据寄存器数据的修改
8.文件寄存器(R)以及D1000之后的数据寄存器,扩展文件寄存器(ER)
文件寄存器(R)是数据寄存器(D)的扩展软元件。通过电池实现掉电保持。而且,使用存储器盒的时候,还可以将扩展寄存器(D)的内容保存到扩展文件寄存器(ER)中,但是只有在使用存储器盒的时候才可以使用这个扩展文件寄存器。
文件寄存器和数据寄存器相同,都可以用于处理16位、32位数值数据的各种控制。
根据PLC参数设定,可以将数据寄存器D1000以后的停电保持专用的数据寄存器设定为文件寄存器。最多可设定7000点。
①参数的设定,可以指定1~14个块(每个块相当于500点的文件寄存器),但是这样每个块就减少了500步的程序内存区域。
②希望将D1000以后的一部分设定为文件寄存器时,剩余的寄存器可以作为停电保持专用的数据寄存器使用。
(1)文件寄存器的动作
当PLC上电时和STOP→RUN时,在内置存储器、或是存储器盒中设定的文件寄存器区域([A]部)会被一并传送至系统RAM的数据内存区域[B]部中。
因此,数据寄存器区域[B]部为停电保持软元件,如通过参数设定为文件寄存器,当PLC上电时或STOP→RUN时,程序内存中的文件寄存器区域[A]部会被传送。所以,执行电源复位或者STOP→RUN的操作后,在数据内存中更改的内容会被初始化。如果需要通过顺控程序,在数据内存中保存更改的数据时,请利用后述的BMOV(FNC 15)指令的同编号寄存器更新模式,将文件寄存器区域[A]部更新成更改后的值,如图3-31所示。
图3-31 文件寄存器的动作
BMOV(FNC 15)指令和其他指令的区别:针对文件寄存器(D1000以后)的BMOV(FNC 15)指令和其他指令的区别见表3-10。
表3-10 BMOV(FNC 15)指令和其他指令的区别
被设定为文件寄存器的数据寄存器,在上电时数据会自动地从文件寄存器区域[A]部复制到数据寄存器区域[B]部。
通过外围设备对文件寄存器进行监控时,读出数据内存中的数据寄存器区域[B]部。
此外,在外围设备上执行文件寄存器软元件的[更改当前值]、[强制复位]或是[PLC存储器的全部清除]的时候,先对程序内存中的文件寄存器区域[A]部进行更改,然后自动传送给数据寄存器区域[B]部。因此,执行文件寄存器软元件改写时,程序内存需要在[内置存储器]、或是[存储器盒]的“写保护开关OFF”的状态。存储器盒的写保护开关如果为ON,就不能从外围设备上进行更改。
(2)文件寄存器(D)→数据寄存器<使用BMOV(FNC 15)指令更新相同编号>
BMOV(FNC 15)指令的(S)、(D)都指定为相同的文件寄存器,该指令就会变成同编号寄存器更新模式,会执行以下的动作。数据寄存器的更新如图3-32所示。
更新相同编号的文件寄存器的时候,必须将文件寄存器的编号设定为(S)=(D)。
图3-32数据寄存器的更新
此外,设定的时候以n指定的传送点数不能超出文件寄存器区域。如超出文件寄存器区域,会出运算错误,而不能执行指令。
对(S)(D),采用变址修饰时,实际的软元件编号要在文件寄存器区域内,与此同时,只有当传送点数在文件寄存器区域范围内,才能执行指令。
(3)数据寄存器→文件寄存器<使用BMOV(FNC 15)指令写入>
对BMOV(FNC 15)指令的目标操作数指定了文件寄存器(D1000以后)时,可以直接写入程序内存的文件寄存器区域[A]部,如图3-33所示。
图3-33 数据寄存器→文件寄存器(www.xing528.com)
a)程序X001为ON后,如图3-34所示,将数据传送至数据寄存器区域[B]部和文件寄存器区域[A]部中。此外,当[A]部由于存储器盒的写保护开关为ON而不能写入的时候,只能对[B]部进行写入。使用一般应用指令,在(D)中指定文件寄存器软元件的时候,只将数据传送到数据寄存器区域[B]部中。
b)也可以在(S)中指定文件寄存器,但是如果指定了和(D)相同的编号时,就变成相同编号更新模式。
通过控制BMOV(FNC 15)的BMOV反方向传送M8024,就可以在1个程序中实现双向传送,如图3-35所示。
图3-34 单向传送程序
图3-35 双向传送程序
(S)→(D)数据寄存器的成批传送M8024(OFF):D1100块数据到D200块数据。
(S)←(D)数据寄存器的成批传送,以及文件寄存器的写入M8024(ON):D200块数据到D1100块数据。
(4)使用文件寄存器(D)注意事项
即使对BMOV(FNC 15)指令的源操作数指定文件寄存器(D1000以后),如在目标操作数中不指定相同编号的文件寄存器(同编号寄存器更新模式以外),不会读出程序内存中的文件寄存器区域[A]部的内容。
1)在源操作数中指定文件寄存器,目标操作数中指定数据寄存器的情况,如图3-36所示。
图3-36 源操作数中指定文件寄存器,目标操作数指定数据寄存器
如图3-37所示,程序X000为ON后,如图3-36所示,读出数据寄存器区域[B]部的内容。也可以在(D)中指定文件寄存器,但是如果指定了和(S)相同的编号的话,会变成同编号更新模式。
2)源操作数和目标操作数指定了不同的软元件编号的文件寄存器的情况,图3-38所示。
图3-37 读取文件寄存器
图3-38 源操作数和目标操作数指定了不同的软元件编号的文件寄存器
如图3-39所示,程序X001为ON后,如图3-38所示,数据寄存器区域[B]部的数据会被传送到数据寄存器区域[B]部和文件寄存器区域[A]部中。此外,当[A]部由于存储器盒的写保护开关为ON而不能写入的时候,只能对[B]部进行写入。
图3-39 文件寄存器间传送
9.扩展文件寄存器(R),扩展文件寄存器(ER)
文件寄存器(R)是数据寄存器(D)的扩展软元件。通过电池实现掉电保持。而且,使用存储器盒的时候,还可以将扩展寄存器(D)的内容保存到扩展文件寄存器(ER)中,但是,只有在使用存储器盒的时候才可以使用这个扩展文件寄存器。
1)扩展寄存器(R)和扩展文件寄存器(ER)的编号见表3-11(编号以10进制数分配)。
表3-11 扩展寄存器(R)和扩展文件寄存器(ER)的编号
①仅在使用存储器盒的时候可以使用(保存在存储器盒的闪存中)。
2)数据的访问方法,见表3-12。
表3-12 可访问的数据
3)文件寄存器(R),扩展文件寄存器(ER)的初始化。
即使执行了[电源OFF]和[STOP→RUN的操作],文件寄存器的内容也通过内置电池被保持。对文件寄存器的内容初始化时,请通过使用顺控程序或是GX Developer执行数据清除的操作。
a)在程序中执行的方法:例如,将R0~R199初始化(清除)的时候,如图3-40所示。
图3-40 文件寄存器(R)数据清除
以段为单位初始化扩展寄存器以及扩展文件寄存器。
例如,R0~R4095和ER0~ER4095的初始化(R0和ER0的起始2段的初始化),如图3-41所示的扩展文件寄存器清除。
图3-41 扩展文件寄存器
b)在GX Developer中执行的方法:在GX Developer中,选择[Online]→[Clear PLC memory]后,清除[Data device]。但是,执行这个操作的时候,定时器、计数器、数据寄存器、文件寄存器以及扩展寄存器的内容都被初始化。
c)扩展寄存器的功能和动作实例:文件寄存器、扩展寄存器和数据寄存器相同,都可以用于处理数值数据的各种控制。
①基本指令中的文件寄存器:文件寄存器指定为定时器和计数器的设定值如图3-42所示。
计数器和定时器将被指定的数据寄存器的内容作为各自的设定值而动作。
②应用指令中的文件寄存器使用如图3-43所示。
图3-42 文件寄存器指定为定时器和计数器的设定值
图3-43 应用指令中的文件寄存器使用
d)扩展文件寄存器:扩展文件寄存器(ER),通常可以作为记录数据的保存位置和设定数据的保存位置使用。只有使用扩展文件寄存器控制的专用指令才可以使用这种软元件(见表3-13)。如果通过其他指令使用数据内容时,请将内容读出到相同软元件编号的文件寄存器后,再使用文件寄存器一侧的软元件。
表3-13 扩展文件寄存器的功能和动作专用指令
(续)
①扩展文件寄存器和扩展寄存器的关系如图3-44所示。
图3-44 扩展文件寄存器和扩展寄存器的关系
10.变址寄存器(V、Z)
变址寄存器是除了可与数据寄存器的使用方法相同外,还可以通过在应用指令的操作数中组合使用其他的软元件编号和数值,从而在程序中更改软元件的编号和数值内容的特殊寄存器。在寄存器中,被称为变址(修饰)用的有V、Z两种寄存器。
(1)变址寄存器(V、Z)的编号见表3-14。(编号以10进制数分配),仅仅指定变址寄存器(V)或是(Z)的时候,分别作为V0、Z0处理。
结构:
a)16位数据:变址寄存器结构如图3-45所示,具有和数据寄存器相同的结构。
表3-14 变址寄存器(V、Z)的编号
①关于停电保持的特性可以通过参数进行变更。
图3-45 变址寄存器结构
b)32位数据:32位变址寄存器结构如图3-46所示。
修饰32位的应用指令中的软元件时,或者及处理超出16位范围的数值时必须使用Z0~Z7。
如图3-46所示的V、Z组合,由于FX系列PLC将Z侧作为32位寄存器的低位动作,所以即使只指定了高位侧的V0~V7也不会执行修饰。此外,作为32位指定时,会同时参考V(高位)、Z(低位),因此一旦V(高位)侧中留存有别的用途中的数值时,会变成相当大的数值,从而出现运算错误。
32位变址寄存器的写入,如图3-47所示。
即使32位应用指令中使用的变址值没有超出16位数值范围,请按照图3-47所示在对Z进行数值的写入时,使用DMOV指令等的32位运算指令,同时改写V(高位)、Z(低位)。
图3-46 32位变址寄存器结构
(2)可以被修饰的软元件
V、Z是附加在其他软元件上的:
1)10进 制 数 软 元 件(M、S、T、C、D、R、KnM、KnS等)
图3-47 32位变址寄存器的写入
当[V0,Z0=5时],D100V0=D105,C20Z0=C25,软元件编号+V□或Z□的值。
2)修饰十进制常数(K)
当指定K30V0时,被执行指令的是作为10进制的数值K35(30+5)。
3)8进制数软元件(X、Y、KnX、KnY)
当[Z1=8],执行X0Z1时,对应软元件编号为X10。
4)16进制常数(H)
当[V5=K30],指定常数H30V5时,被视为H4E(30H+K30)。
数据寄存器和变址寄存器可用于间接指定定时器和计数器的设定值,以及用于应用指令中。
11.指针(P、I)
指针(P、I)的编号见表3-15(编号以10进制数分配)。
此外,使用输入中断用指针时,分配给指针的输入编号,不能和使用相同输入范围的[高速计数器]以及[脉冲密度(FNC 56)]等一起使用。在指针中,有分支用和中断用两种。
表3-15 指针(P、I)的编号
(1)分支用指针(P)
分支用指针(P)是用于指定CJ跳转条件转移和CALL子程序调用的对象目的地。此外注意P63是使用CJ指令跳转到END步的特殊指针,如图3-48所示。
当X001为ON,跳转到CJ指令指定的标签位置,执行之后程序。
CALL子程序调用如图3-49所示。
图3-48 CJ跳转条件
当X001为ON,执行CALL指令指定标签位置的子程序,使用SRET指令返回到原来位置。
(2)中断用指针(I)
中断用指针(I)是用于指定输入中断(6点),定时器中断(3点)或是计数器中断(6点)的中断子程序。
1)输入中断
不受扫描周期影响,接收来自特定的输入编号的输入信号中,触发该输入信号,执行中断子程序。由于输入中断可以处理比运算周期更短的信号,因此可在顺控过程中作为需要优先处理或者短时间。脉冲处理控制时使用。中断指针对应外部信号编号见表3-16。
图3-49 CALL子程序调用
表3-16 中断指针对应外部信号编号
①从RUN→STOP时清除输入中断的延迟功能在输入中断中,有以1ms为单位延迟执行中断子程序的功能。
输入信号的ON脉宽或是OFF脉宽在5μs以上。
通过执行图3-50格式的程序来指定要延迟的时间。
使用了这种延迟功能后,在调节输入中断使用的传感器的安装位置时,可以无需挪动实际的位置而进行电气上的调节。
在图3-50中间的程序,必须要写在中断程序的开头处,这个程序是模板程序,使用时只需要修改延时时间①,这个时间的指定,只能使用常数(K)或是数据寄存器(D)。
PLC通常为禁止中断的状态。使用EI指令允许中断后,在扫描程序过程中,X000或X001为ON,执行中断子程序①或②,然后通过IRET指令返回到主程序。
中断用指针(I∗∗∗),在编程时请务必作为标记放在FEND指令后。外部输入中断程序如图3-51所示。
图3-50 设定中断延迟时间
图3-51 外部输入中断程序
2)定时器中断(3点)
每隔指定的中断循环时间(10~99ms),执行中断子程序。
用于与PLC的扫描周期不同的需要循环中断处理的控制中。定时器中断编号见表3-17。
表3-17 定时器中断编号
①从RUN→STOP时清除。
如图3-52所示,EI指令以后定时器中断变为有效。此外,不需要定时器中断的禁止区间时,就
不需要编写DI(禁止中断指令)。FEND表示主程序的结束。中断子程序必须
编写在FEND后面。每隔20ms执行中断子程序。
使用IRET指令返回到主程序。3)计数器中断(6点)根据高速计数器用比较置位指令(DHSCS)
的比较结果,执行中断子程序,用于使用高速计
数器优先处理计数结果的控制。计数器中断编号
见表3-18。计数器中断程序如图3-53所示。EI指令以
后允许中断,编写主程序。驱动高数计数器的线圈,在DHSCS指令
(FNC53)中指定中断指针。C255的当前值在999~1000或1001、1000
中变化的时候,执行中断子程序。
图3-52 定时器中断程序
表3-18 计数器中断编号
注:仅对应FX3U、FX3UC系列PLC。①从RUN→STOP时清除。
图3-53 计数器中断程序
12.常数K、H、E(10进制数/16进制数/实数)以及8进制数,BCD码等的指定方式
(1)10进制数(DEC:DECIMAL NUMBER)K表示10进制数常数
a)定时器和计数器的设定值(K常数);
b)辅助继电器(M)、定时器(T)、计数器(C)、状态等的编号(软元件编号);
c)应用指令的操作数中的数值指定和指令动作的指定(K常数)。
10进制常数的指定范围如下:
①使用字数据(16位)时,范围为K-32768~K32767;
②使用两个字数据(32位)时,范围为K-2147483648~K2147483647。
(2)16进制数(HEX:HEXADECIMAL NUMBER)H表示16进制数
主要用于指定应用指令的操作数的数值。(例如H1234)而且各位数在0~9的范围内使用的时候,各位的状态(1或0)和BCD代码相同,因此可以指定BCD数据。
①使用字数据(16位)时,H0~HFFFF(BCD数据的时候为H0~H9999);
②使用两个字数据(32位)时,H0~HFFFFFFFF(BCD数据的时候为H0~H99999999)。
(3)2进制数(BIN:BINARY NUMBER)
对定时器、计数器或是数据寄存器的数值指定,是按照上述的10进制数和16进制数执行的,但是在PLC的内部,这些数值都以2进制数进行处理。
负数的处理:在PLC内部,负数是以2的补码来表现的。
(4)8进制数(OCT:OCTAL NUMBER)
FX系列PLC中,输入继电器、输出继电器的软元件编号都是以8进制数分配的。由于在8进制数中,不存在[8,9]所以按[0~7、10~17、…70~77、100~107]上升排列。
(5)BCD(BCD:BINARY CODE DECIMAL)
BCD就是将构成10进制数的各位上0~9的数值以四位的BIN来表现的形式。
由于各位便于使用,所以使用于BCD输出型的数字式开关和7段码显示器控制等用途中。
(6)实数(浮点数数据)E表示实数(浮点数)
[E]是表示实数(浮点数数据)的符号,主要用于指定应用指令的操作数的数值。
例如,E1.234或是E1.234+3。
实数的指定范围为-1.0×2128~-1.0×2-126、0、1.0×2-126~1.0×2128
在顺控程序中,实数可以指定“普通表示”和“指数表示”两种。
1)普通表示:就将设定的数值指定。
例如,10.2345就以E10.2345指定。
2)指数表示:设定的数值以(数值)×10n指定。
例如,1234以E1.234+3指定。
[E1.234+3]的[+3]表示10的n次方(+3为10的3次方)。
FX3U、FX3UC系列PLC,具有能够执行高精度运算的浮点数运算功能。
采用2进制浮点数(实数)进行浮点运算,并采用了10进制浮点数(实数)进行监控。
(7)数值的转换
FX系列PLC中处理的数值,可以按照表3-19的内容进行转换。
表3-19 各进制的数值转换
(续)
在PLC中使用的各种数值中,K表示10进制数,H表示16进制数,E表示实数(浮点数),这些都用做定时器和计数器的设定值及当前值,或是应用指令的操作数。
此外,在实际编程中,也有用位软元件表示字的方法,如K2M0表示M0~M7的八个状态构成的二进制值。
(8)字符串
在字符串中,包括在应用指令的操作数中直接指定字符串的字符串常数和字符串数据。
1)字符串常数(“ABC”)
字符串是顺控程序中直接指定字符串的软元件。以“”框起来的半角字符(例如,“ABCD1234”)指定。字符串中可以使用JIS8代码。但是,字符串最多可以指定32个字符。即使是位软元件,通过组合使用后也可以处理数值。在这种情况下,以位数Kn和起始软元件的编号的组合来表示。位数为4位单位的K1~K4(16位数据)、K1~K8(32位数据)。例如,K2M0,由于是M0~M7,所以是2位数的数据。向K1M0~K3M0传送16位数据后,数据长度不足的高位部分不被传送。与32位数据的情况相同。
2)字符串数据
字符串的数据,从指定软元件开始,到NUL代码(00H)为止以字节为单位被视为一个字符串。但是,在指定位数的位软元件中体现(认识)字符串数据的时候,由于指令为16位长度,所以包含指示字符串数据结束的NUL代码(00H)的数据也需要是16位。参考下面b)中的例2。总之,如下情况时,应用指令中会出现运算错误(错误代码为K6706)。
①在应用指令的源程序中指定的软元件编号以后,相应软元件范围内未设定[00H]的情况。
②在应用指令的嵌套中指定的软元件中,保存字符串数据(包含了表示字符串数据的末尾的[00H]或[0000H])用的软元件数不够的情况。
a)字软元件中保存的字符串数据:
①能够识别为字符串数据的例子,如图3-54所示;
②不能识别为字符串数据的例子,如图3-55所示。
图3-54 正确的字符串数据(字软元件)
图3-55 无法识别的字符串(字软元件)
b)位数指定的位软元件中保存的字符串数据:
①能够识别为字符串数据的例子,如图3-56所示;
②不能识别为字符串数据的例子,如图3-57所示。
图3-56 正确的字符串数据(位软元件)
图3-57 无法识别的字符串数据(位软元件)
13.位的位数指定(Kn□∗∗∗)
位软元件的处理:即使是位软元件,通过组合使用后也可以处理数值。在这种情况下,以位数Kn和起始软元件的编号的组合来表示。
位数为4位单位的K1~K4(4~16位数据)、K1~K8(4~32位数据)。例如,K2M0,由于是M0~M7,所以是8位数的数据。K2M0位数据传输如图3-58所示。
图3-58 K2M0位数据传输
14.字软元件的位指定(D□.b)
指定字软元件的位,可以将其作为位数据使用。
指定字软元件的位时,请使用字软元件编号和位编号(16进制数)进行设定。
例如,D0.0表示数据寄存器0的0位编号。
在软元件编号、位编号中不能执行变址修饰。
字软元件的对象:数据寄存器或特殊数据寄存器。
位编号:0~F(16进制),如图3-59所示。
图3-59 字软元件的位指定
15.缓冲寄存器的直接指定(U□\G□)
可以直接指定特殊功能模块和特殊功能单元的BFM(缓冲存储器)。
BFM为16位或32位的字数据,主要用于应用指令的操作数。
例如,U0\G10表示模块号为0的特殊功能模块或特殊功能单元的BFM#10号。
指定范围如下所示:
单元号(U):0~7
BFM编号(\G):0~32766
此外,在BFM编号中可以进行变址修正。缓冲寄存器的直接指定(U□\G□)如图3-60所示。
图3-60 缓冲寄存器的直接指定(U□\G□)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。