2.2 基本功能指令
松下PLC的基本功能指令包括定时器指令、计数器指令和寄存器移位指令三类。
定时器和计数器的功能相当于继电器控制系统中的时间继电器和计数器,而寄存器移位则是PLC特有的。FP1的基本功能指令如表2-3所示。
表2-3 FP1系列PLC基本功能指令表
辅助定时器、加/减计数器、左右移位寄存器将在第3章中讲述。
1.定时器指令TMR、TMX、TMY
(1)指令功能
TMR:以0.01s为计时单位设置定时时间的定时器;
TMX:以0.1s为计时单位设置定时时间的定时器;
TMY:以1s为计时单位设置定时时间的定时器。
操作数为SV和常数。
【例2-10】 编程实例
程序指令如下所示:
0 ST X0
1 TM X2
K 50
4 ST T2
5 OT Y0
实例程序梯形图及时序图如图2-12所示。
当X0为“ON”时,定时器开始延时,5s后定时器n的常开触点闭合(ON),Y0得电输出(ON)。
图2-12 实例梯形图及时序图
a)梯形图 b)时序图
(2)指令使用说明
1)TM指令是一个减计数型定时器,在定时器线圈被接通后开始计时,延时时间到,则相应的定时器常开触点闭合,常闭触点断开。每一个定时器都有一个对应的设定值存储单元SV。和经过值(当前值)存储单元EVn,n为该定时器的编号,默认设置下的范围是0~99。
2)如果定时器数量不够,可以通过系统寄存器5调整计数器的起始编号来改变定时器和计数器的数量分配。
3)定时器预置时间为:定时器计时单位×预置值(K)。上述程序中的定时时间为(TMX2K50):0.1s×50=5s。
4)采用十进制常数设定预置值(见图2-13)。
①当PLC工作方式为RUN时,设定的十进制常数“K50”被传送到设定值存储单元SV2中;
②在输入端X0为“ON”的瞬间,SV2中的设定值传送到经过值(当前值)存储单元EV2中;
③当输入端X0为“ON”时,PLC每一次扫描,经过的时间从EV2中减去;
④当前值存储单元EV2中的数据减为0时,定时器T2的触点闭合,Y0得电输出。
5)采用“SVn”设定预置值(见图2-14)。
图2-13 采用十进制常数设定预置值
图2-14 采用“SVn”设定预置值的步骤
①使用高级指令F0[MV]直接设定定时器的设定值。在输入端X0为“ON”时,F0[MV]将设定值由“SV1”传送到“EV1”中;
②当输入端X1处于为“ON”状态时,PLC每一次扫描,经过的时间从EV1中减去;
③当EV1中的数据减为0时,定时器触点T1接通,Y0得电输出。
6)采用F0[MV]指令改变定时器设定值(见图2-15)。
使用编程工具可改变预置区(SV)的值,甚至在RUN方式下也能改变。工作过程为若Ⅻ没有闭合只闭合X1时延时为5s,先闭合X0后闭合X1时延时为2s,而先闭合X1后闭合X0时延时仍为5s,即预置的直接设定值具有优先权。
(3)关于定时器的其他说明
1)在定时器工作期间,如果定时器的输入信号断开,则定时器被复位。
2)定时器预置区EV是定时器预置时间的存储区。
3)当EV中的数据减到0时,定时器的触点动作,常开的闭合,常闭的断开。
图2-15 修改定时器中设定的预置值
4)每个SV、EV为一个字,即16位存储器,并与定时器的编号对应。
5)在定时器工作期间,如果PLC掉电或者工作方式由RUN切换到PROG,则定时器复位。若想保持运行中的状态,可以通过设置系统寄存器6来实现。
6)定时器操作是在定时器指令扫描期间执行,因此使用定时器时,应保证TMX指令在每个扫描周期只能扫描一次(在使用INT、JP、LOOP指令时要注意)。
7)定时器可以串联使用,也可以并联使用。串联使用时,第二个定时器在第一个定时器计到0时开始定时;并联使用可以按不同的时间去控制不同的对象,如图2-16所示。
图2-16 定时器的串联和并联
2.计数器指令CT
(1)指令功能
采用减计数型的计数方式,在每个计数触发信号的上升沿进行计数,当前值减1。当计数值减为0时,计数器为“ON”,对应的触点动作(常开触点闭合,常闭触点断开)。
【例2-11】 编程实例
程序指令如下:
0 ST X0
1 ST X1
2 CT 100
K 6
5 ST C100
6 OT Y0
实例梯形图、时序图如图2-17所示。
当系统检测到触发信号X0的第6个上升沿时,计数器为“ON”,C100触点闭合,Y0得电输出并保持。当复位信号X1接通时,当前值“EV100”复位,Y0失电。在X1断开后重新恢复计数。
(2)指令使用说明
1)CT为减计数型计数器。
图2-17 实例梯形图及时序图
a)梯形图 b)时序图
2)如果计数器数量不够,可以通过系统寄存器5调整计数器的起始编号来改变定时器和计数器的数量分配。
3)采用十进制常数设定预置值(设定值)时,如图2-18所示。
①当PLC的工作方式为RUN时,设定的十进制常数K6被传送到设定值存储单元SV100中。
②当复位端X1由“ON”为“OFF”时,SV100中的预置值(设定值)传送到当前值存储单元EV100中。
③在触发端Ⅻ的每一个上升沿(由“OFF”变为“ON”)到来时,EV100中的数值减1。
④当EV100中的数据减为0时,计数器触点C100接通,Y0得电输出。
⑤当复位信号X1接通(由“OFF”变为“ON”)时,EV100复位,Y0失电。在复位信号X1断开(由“ON”变为“OFF”)时,SV100中的设定值再次传送到EV100中。
4)采用“SVn”设定预置值(执行过程见图2-19)。
图2-18 采用十进制常数设定预置值
图2-19 采用“SVn”设定预置值
①当PLC工作方式为RUN,且复位端X1为“OFF”时,SV100中的设定值(由外部设定,假设为20)传送到当前值存储单元EV100中。
②在触发端X0的每一个上升沿到来时,EV100中的数值减1。
③当:EV100中的数值减为0时,计数器常开触点C100接通,Y0得电。
④当复位信号X1接通(由“OFF”变为“ON”)时,计数器复位,Y0失电。在复位信号X1断开(由“ON”变为“OFF”)时,SV100中的设定值再次传送到EV100中。
5)采用F0[MV]指令改变计数器设定值(见图2-20)。
利用编程工具可改变设定值SV,而且在RUN方式下也能改变。在图2-20中,当X2接通时,将原来设定的数值100改为30,即预置的直接设定值具有优先权。若X2没闭合,则计数值仍为100。
(3)关于计数器指令的其他事项
1)在使用计数器指令时,一定要分别输入触发信号和复位信号。
2)计数器预置区是计数器预置参数的存储区。
3)当EV中的数值减到0时,计数器触点动作,常开触点闭合,常闭触点断开。
图2-20 修改计数器预置值
4)每个计数器都有一对编号与计数器相同的字存储单元SV、EV。
5)在计数器工作期间,如果PLC失电或者工作方式由RUN切换到PROG,计数器的当前值仍然保持,计数器不会复位。若需要将计数器设置为非保持型,可以通过改变系统寄存器6的设置来实现。
6)当触发信号和复位信号同时到达时,复位信号优先。
3.寄存器移位指令SR
(1)指令功能
SR相当于一个串行输入移位寄存器,在移位脉冲上升沿到来时将16位的内部继电器WR中的数据逐位左移一位,最高位溢出。当移位脉冲信号前沿到来时,若数据输入端为“ON”,则向最低位Rx0移入“1”,反之则移入“0”。复位信号到来时,移位的内容全部复位为0。SR指令的操作数为WR。
【例2-12】 编程实例
程序指令如下:
0 ST X0
1 ST X1
2 ST X2
3 SR WR3
梯形图、时序图如图2-21所示。
图2-21 实例程序的梯形图及时序图
a)梯形图 b)时序图
在X2为“OFF”时,移位输入X1接通,WR3(即内部继电器1t30到D3F)中的数据依次向左移一位。如果数据输入X0为“ON”,左移一位后R30置1;如果X0为“OFF”。左移一位后R30置0。在复位输入X2的上升沿,WR3被复位(WR3的所有位变为0)。
(2)指令使用说明
1)移位操作是在移位触发信号(触发脉冲)的作用下,将操作数的每一位由低位向相邻的高位移动一位,输入信号进入最低位,最高位被移出。如图2-22所示。
图2-22 移位操作
2)复位操作,见图2-23。
图2-23 复位操作
3)使用SR指令编程时,必须有数据输入、移位和复位触发信号,而且三者互相独立。