第八章 fx系列plc功能指令及其应用续.docx
《第八章 fx系列plc功能指令及其应用续.docx》由会员分享,可在线阅读,更多相关《第八章 fx系列plc功能指令及其应用续.docx(60页珍藏版)》请在冰豆网上搜索。
第八章fx系列plc功能指令及其应用续
8.3.6高速处理指令
高速处理指令一共有9条。
1.刷新指令
刷新指令名称、助记符、指令代码、操作数和程序步见表8-47。
表8-47刷新指令名称、助记符、指令代码、操作数和程序步
指令名称
助记符
指令代码
操作数
程序步
D
n
输入输出刷新指令
REF
FNC50
X、Y
K、H
REF、REF(P)
…5步
FX系列PLC是用I/O批处理的方法,即输入数据是在程序处理之前成批读人到输入映象寄存器的,而输出数据是在END结束指令执行后由输出映象寄存器通过输出锁存器到输出端子的。
刷新指令REF用于在某段程序处理时开始读入最新输入信息或者用于在某一操作结束之后立即将操作结果输出。
刷新又分输入刷新和输出刷新两种。
(1)输入刷新刷新指令用于输入时的使用说明参见图8-61。
当X0由OFF→ON时,输入X10~X17一共8点被刷新。
该指令有10ms的滤波器响应延迟时间,也就是说,若在REF刷新指令执行之前X10~X17已变为ON约10ms了,而执行REF指令时。
X10~X17的映象寄存器仍会变为ON。
(2)输出刷新刷新指令用于输出时的使用说明参见图8-61。
当X1由OFF→ON时,刷新指令REF执行,对Y0~Y7,Y10~Y17,Y20~Y27的24点输出刷新,与输出Y0~Y27对应的输出锁存器的数据立即传到输出端子,在输出响应延迟时间后输出接点动作。
要说明的是刷新指令操作数[D]所指定的首元件号必须是10的倍数。
如X0、X10、X20、…;Y0、Y10、Y20、…;而被刷新的点数必须是8的倍数,如:
8、16、24等,否则会出错。
图8-61刷新指令使用说明
2.刷新和滤波时间调整指令
刷新和滤波时间调整指令名称、助记符、指令代码、操作数和程序步见表8-48。
表8-48刷新和滤波时间调整指令名称、助记符、指令代码、操作数和程序步
指令名称
助记符
指令代码
操作数
程序步
n
刷新和滤波时间调整指令
REFF
FNC51
K、H
REFF、REFF(P)
…3步
为防止输入噪声的影响,PLC的输入端都有RC滤波器,滤波时间常数在10ms左右。
对于无触点的电子固态开关没有抖动噪声,可以高速输入。
对于这类高速输入,PLC输入端的滤波器又成了高速的障碍。
FX系列PLC的输入端X0~X7采用数字式滤波器,滤波时间可用REFF指令加以调整,调整的范围是0~60ms。
这些输入端也有RC滤波,其最小滤波时间不小于50μs。
刷新和滤波时间调整指令REFF的使用说明如图8-62所示。
图8-62REFF指令的使用
当X10由OFF→ON时,REFF指令执行,X0~X7的映象寄存器被刷新,并取滤波时间为1ms的最佳时间,而在REFF指令执行前滤波时间为10ms。
当M8000由OFF→ON时,REFF指令执行。
由于K取为20,所以这条指令执行以后的程序步,输入滤波时间为20ms。
X10为OFF时,REFF指令不执行.X0~X7的滤波时间为10ms。
需要指出的是,当X0~X7用作高速计数输入时或者使用FNC56速度检测指令、或者用作中断输入时,输入滤波器的滤波时间自动设置为50μs。
3.矩阵输入指令
矩阵输入指令名称、助记符、指令代码、操作数和程序步表8-49。
表8-49矩阵输入指令名称、助记符、指令代码、操作数和程序步
利用矩阵输入指令MTR可以构成连续排列的8点输入与n点输出组成的8列n行的输入矩阵。
MTR矩阵输入指令的使用说明如图8-63所示。
图8-63MTR指令的使用
由[S]指定的输入点开始的8个输入(X10~X17)和由[D1]指定的输出开始的n个晶体管输出点(此例中n为3,即Y20、Y21、Y22)三个输出点反复顺次接通。
当Y20为ON时,读入第—行的输入数据,存到M30~M37之中;当Y21为ON时,读入第二行的输入数据,存到M40~M47之中。
其余类推,反复执行。
对于每个输出,其I/O处理采用中断方式立即执行,时间间隔为20ms,允许输入滤波器的延迟时间为10ms。
利用矩阵输入MTR指令,占用8点输入和8点输出,可读入64个输入点的状态。
但读一次所需时间为20ms×8=l60ms,因而不适用于需要快速响应的输入。
如果输入点用X0~X7,则每行的读入时间可减至10ms,即64点的读入时间减到约80ms。
X0由OFF→ON,MTR矩阵输入指令执行。
X0变为OFF,M8029复位,M30~M57状态保持不变。
下面几点要特别注意:
①由于矩阵输入指令MTR包含有高速输入输出开关,对快速性有一定要求,该指令推荐用于晶体管输出模式的PLC。
②该指令的操作数指定的元件应是10的倍数,例如:
X0、X10、…,Y10、Y20、…,M30、M40、…。
4.高速计数器置位指令
高速计数器置位指令名称、助记符、指令代码、操作数和程序步见表8-50。
表8-50高速计数器置位指令名称、助记符、指令代码、操作数和程序步
高速计数器置位指令HSCS的使用说明如图8-64所示。
当C255的当前值由99变为100,或由101变为100时,Y10立即置1。
图8-64高速计数器置位指令
HSCS指令操作数[S2]指定的计数器是高速计数器。
高速计数器以中断方式对相应输入脉冲的个数计数。
当计数器当前值达到预置值时,计数器的输出接点立即动作。
利用该指令可以使置位和输出以中断方式立即执行。
5.高速计数器复位指令
高速计数器复位指令名称、助记符、指令代码、操作数和程序步见表8-51。
表8-51高速计数器复位指令名称、助记符、指令代码、操作数和程序步
高速计数器复位指令HSCR的使用说明如图8-65所示。
在此例中C255的当前值由199变为200或由201变为200时,Y10立即复位。
图8-65高速计数器复位指令
对于[D]可以像指定[S]一样指定相同的高速计数器。
这种情况下,高速计数器复位指令HSCR的应用如图8-66所示。
C255的当前值达到400时,立即复位。
C255的当前值达到300时,C255的输出接点接通,在当前值复位时,其输出接点断开。
图8-66HSCR指令的应用
6.高速计数器区间比较指令
高速计数器区间比较指令名称、助记符、指令代码、操作数和程序步见表8-52。
表8-52高速计数器区间比较指令名称、助记符、指令代码、操作数和程序步
高速计数器区间比较指令HSZ与传送比较功能指令组中的区间比较指令ZCP相类似,所不同的是高速计数器区间比较指令HSZ中的[S]是专门指定的高速计数器。
HSZ指令的使用说明如图8-67所示。
图8-67HSZ指令的使用图8-68高速→低速→停止控制
当X10为OFF时,Y10~Y12为OFF。
当X10为ON时,且C25l的当前值<K1000时,Y10为ON,其他输出为OFF。
K1000≤C251的当前值≤K1200时,Y11为ON,其他输出为OFF。
C251的当前值>K1200时,Y12为ON,其他输出为OFF。
计数、比较、外部输出均以中断方式进行,而高速计数器的区间比较指令HSZ仅在脉冲输入时才能执行,所以最初驱动应以区间比较指令ZCP来控制。
HSZ指令操作数[D]是三个连续元件被使用。
例如图8-66中的[D]指定的是Y10、Y11、Y12。
这里Y10、Y11、Y12三个输出可用作像高速、低速、停止控制,具体波形图如图8-68所示。
以上三条指令,即高速计数器置位指令HSCS、高速计数器复位指令HSCR、高速计数器的区间比较指令HSZ的梯形图格式类似,它们都是在脉冲送到输入端子时以中断方式执行,因此图8-69中若没有脉冲输入,即使X0为ON,且比较条件满足[S1]=[S2]。
输出Y10也不会动作。
图8-69
特殊辅助继电器M8025可用作外部复位标志,如图8-70所示。
当标志M8000由OFF→ON,M8025为ON,所有相关的高速比较指令在高速计数器的复位输入为ON时执行。
这就解决了上面的初始条件的问题,而开始时总是要复位的。
M8025标志适用于HSCS、HSCR、HSZ三条指令。
图8-70M8025的使用
7.速度检测指令
速度检测指令名称、助记符、指令代码、操作数和程序步见表8-53。
表8-53速度检测指令名称、助记符、指令代码、操作数和程序步
SPD指令是用来检测在给定时间范围内编码器的脉冲个数,从而计算速度,它的使用说明如图8-71所示。
图8-71SPD指令的使用
操作数[S1]指定计数脉冲输入点,即X0~X5。
操作数[S2]指定计数时间(以ms为单位)。
[D]指定计数结果存放处。
[D]占三个目标元件。
在图8-25中,D1对X0脉冲的上升沿计数,100ms以后计数结果存到D0中。
当结果存入D0时,D1复位,D1重新开始对X0的脉冲数计数。
D2用来计算存储剩余时间。
上面的过程是反复计数的,脉冲的个数正比于转速值,即r/min。
线速度
km/h
径向速度
r/min
需要特别指出的是该指令用到的输入不得用于其他高速处理。
8.脉冲输出指令
脉冲输出指令名称、助记符、指令代码、操作数和程序步见表8-54。
表8-54脉冲输出指令名称、助记符、指令代码、操作数和程序步
指令名称
助记符
指令代码
操作数
程序步
S1
S2
D
脉冲输出指令
PLSY
FNC57
K、H
KnX、KnY、KnM、KnS
T、C、D、V、Z
Y
PLSY
…7步
(D)PLSY
…13步
顾名思义.脉冲输出指令PLSY是产生指定数量脉冲。
PLSY指令的使用说明如图8-72所示。
[S1]指定脉冲频率(1~2000Hz)。
[S2]指定脉冲的个数,脉冲数范围:
16位指令,1~32767个脉冲;32位指令,1~2147483647个脉冲。
若指定脉冲数为“0”,则产生无穷多个脉冲。
图8-72PLSY指令的使用
[D]指定脉冲输出元件号。
脉冲占空比50%,脉冲以中断方式输出。
脉冲输出指令只用于晶体管输出的PLC,在一个扫描周期中使用一次,若脉冲指令用双字节形式DPLSY,则脉冲数由[D1、D0]来指定。
在指定脉冲数输出完成后,完成标志位M8029置1。
当PLSY指令从ON变为OFF时,M8029复位。
在指令执行过程中,X10变为OFF,则脉冲输出停止,X10再次变为ON时,脉冲再次输出,脉冲数从头开始计算。
在输出脉冲串期间X10变为OFF,则Y0也变为OFF。
[S1]中的数据在指令执行过程中可改变,但[S2]中数据的改变在本指令执行完成之前不生效。
该指令在程序中只能使用一次,而且只能用于晶体管输出型PLC。
9.脉宽调制指令
脉宽调制指令名称、助记符、指令代码、操作数和程序步见表8-55。
表8-55脉宽调制指令名称、助记符、指令代码、操作数和程序步
指令名称
助记符
指令代码
操作数
程序步
S1
S2
D
脉宽调制指令
PWM
FNC58
K、H
KnX、KnY、KnM、KnS
T、C、D、V、Z
Y
PWM
…7步
脉宽调制指令PWM用来产生的脉冲宽度和周期是可以控制的。
PWM指令的使用说明如图8-73所示。
图8-73PWM指令的使用
PWM脉冲宽度调制指令的操作数有三个。
[S1]:
指定脉冲宽度t,范围是0~32767ms;[S2]指定脉冲周期T0,范围是1~32767ms。
[S1]≤[S2]。
[D]指定脉冲输出元件Y的编号,对FX0、FXON型PLC,[D]只能指定Y1,而FX2、FX2C型PLC,[D]对所有Y都适用。
输出元件的ON/OFF状态用中断方式控制。
PWM脉宽调制指令在一个扫描周期中只能使用一次。
PWM脉宽调制指令只适用于FX型PLC是在晶体管输出的情况下。
8.3.7方便指令
1.初始状态指令
初始状态指令名称、助记符、指令代码、操作数和程序步见表8-56。
表8-56初始状态指令名称、助记符、指令代码、操作数和程序步
初始状态指令IST用于自动设置初始状态和特殊辅助继电器。
该指令的使用如图8-74所示。
图8-74方便指令
[S]指定操作方式输入的首元件,一共是8个连号的元件。
这些元件可以是X、Y、M和S。
本例中8个连号的元件是:
X20:
手动X21:
回原点
X22:
单步运行X23:
—个周期运行(半自动)
X24:
全自动运行X25:
回原点起动
X26:
自动运行起动X27:
停止
为了使X20~X24不会同时接通,推荐用选择开关。
[D1]:
指定在自动操作中实际用到的最小状态号;
[D2]:
指定在自动操作中实际用到的最大状态号。
当M8000由OFF→ON时,下列元件自动受控;若其后执行条件M8000变为OFF,这些元件的状态仍保持不变。
S0:
手动操作初始状态
S1:
回原点初始状态
S2:
自动操作初始状态
M8040:
禁止转移
M8041:
转移开始
M8042:
起动脉冲
M8047:
STL(步进顺控指令)监控有效
本指令在程序中只能使用1次,放在步进顺控指令STL之前编程。
由初始状态指令IST自动指定的初始状态S0~S2,根据运行方式的切换,按照图8-75的形式进行。
图8-75运行方式的切换
根据置初始状态IST指令自动动作的特殊辅助继电器M8040~8042和M8047的动作内容可用图8-76的梯形图来说明。
图8-76单步自动梯形图
M8040是禁止转移用辅助继电器,当M8040=ON时,就禁止所有状态转移。
手动状态下,M8040总是接通的。
在回原点、单周期运行时,按动停止按钮后一直到再按起动按钮期间,M8040一直保持为ON。
单步执行时,M8040常通,但是在按动起动按钮时,M8040=OFF,使状态可以顺序转移一步。
其他,当PLC由STOP→RUN切换时,M8040保持ON,按起动按钮后,M8040=OFF。
转移开始辅助继电器M8041,是从初始状态S2向另一状态转移的转移条件辅助继电器。
手动回原点M8041不动作;步进、单周期时,仅在按动起动按钮时动作,自动时,按起动按钮后保持为M8041=ON,按停止按钮后M804l=OFF。
起动脉冲辅助继电器M8042,是在起动按钮按下的瞬时接通。
特殊辅助继电器M8044是原点条件,M8043是回原点结束,这两个元件应由用户程序控制。
在图8-76中,当M8047=ON时,状态S0~S899中正在动作的状态器从最低号开始顺序存入特殊数据寄存器D8040~D8047,最多可存8个状态。
若选择开关在回原点完成辅助继电器M8043未置1之前改变运行方式,则所有输出将变为OFF。
2.数据检索指令
数据检索指令名称、助记符、指令代码、操作数和程序步见表8-57。
表8-57数据检索指令名称、助记符、指令代码、操作数和程序步
使用检索指令SER可以方便地查找一个指定值,根据元件的数据列表来查寻。
数据检索指令的使用说明如图8-77所示。
图8-77检索指令SER的使用
[S1]指定表首地址,数据存储第一个元件
[S2]指定检索值
[D]结果存放处
[n]表长,指检索项目数
图8-77中,检索项目表为10。
当X17=ON时,检索表D130~D139中的每一值,并与D24中内容符合的值进行比较,结果将存放在D35~D39这5个连号的数据寄存器中。
这5个“结果”指的是:
检索表中检索到的值的个数(如果未找到为0)。
找到的检索值中第一个在表中的数据(未找到为0)。
找到的检索值中最后—个在表中的数据(未找到为0)。
找到的检索值中最小的一个在表中的数据。
找到的检索值中最大的一个在表中的状态。
在图8-77中,若D24中的值为100,即(D24)=K100,则检索列表定义如表8-58所示,结论表示如表8-59所示。
表8-58检索列表
位置
检索表
比较数据
检索值
最大值
最小值
0
(D130)=K100
(D24)=K100
符合
1
(D131)=K111
2
(D132)=K100
符合
3
(D133)=K98
4
(D134)=K123
5
(D135)=K66
最小
6
(D136)=K100
符合
7
(D137)=K95
8
(D138)=K210
最大
表8-59结论列表
结论列表
内容
主要数据
结论列表
内容
主要数据
D35
3
符合个数
D38
5
表中最小值
D36
0
第一个符合值
D39
8
表中最大值
D37
6
最后一个符合值
3.绝对值凸轮顺控指令
绝对值凸轮顺控指令名称、助记符、指令代码、操作数和程序步见表8-60。
表8-60绝对值凸轮顺控指令名称、助记符、指令代码、操作数和程序步
指令名称
助记符
指令代码
操作数
程序步
S1
S2
D
n
绝对值凸轮顺控指令
ABSD
FNC62
KnX、KnY
KnM、KnS
(8的倍数)
T、C、D
C
(2个连续)
Y、M、S
(n个连续元件)
K、H
n≤64
ABSD
…9步
绝对值凸轮顺控指令ABSD产生一组对应于计数值变化的输出波形。
ABSD指令的使用说明如图8-78所示。
图8-78ABSD指令的使用
在此例中旋转台旋转一周期间M0~M3的ON、OFF状态变化是由程序控制的。
用MOV指令将对应数据写入D300~D307中,将开通点数据存入偶数元件,将关断点数据存入奇数元件,见表8-61。
表8-61开通关断表
开通点
关断点
输出
开通点
关断点
输出
D300=40
D301=140
M0
D304=160
D305=60
M2
D302=100
D303=200
M1
D306=240
D307=280
M3
在图8-78中,当执行条件X0由OFF→ON时,M0~M3的状态变化如图8-79所示。
通过重写D300~D307的数据可分别改变各开通点和关断点。
输出点的数目由n值决定。
若X0=OFF,则输出点的状态保持不变。
该指令只能用1次。
图8-79M0~M3的状态变化
4.增量凸轮顺控指令
增量凸轮顺控指令名称、助记符、指令代码、操作数和程序步见表8-62。
表8-62增量凸轮顺控指令名称、助记符、指令代码、操作数和程序步
指令名称
助记符
指令代码
操作数
程序步
S1
S2
D
n
增量式凸轮顺控指令
INCD
FNC63
KnX、KnY
KnM、KnS
T、C、D
C
(2个连号C)
Y、M、S
K、H
n≤64
INCD
…9步
增量凸轮顺控指令INCD是利用计数器对产生一组变化的输出。
INCD指令的使用说明如图8-80所示。
图8-80INCD指令的使用
此例中[n]为4.所以控制4个输出点M0~M3的变化。
预先用MOV指令将下列数写入[S1),即
D300=20,D301=30,D302=10,D303=40
增量凸轮顺控指令INCD的执行过程如图8-82所示。
当计数器C0的当前值依次达到D300~D303的没定值时自动复位。
过程计数器C1计算复位次数。
M0~M3按C1的值依次动作。
当由“n”(本例中n=4)指定的最后一过程完成后,标志位M8029置1,以后周期性重复。
如X0关断,C0和C1都复位,同时M0~M3关断。
当X0再接通后重新开始运行。
此指令只能使用一次。
图8-82INCD指令的执行过程
5.示教定时器指令
示教定时器指令名称;、助记符、指令代码、操作数和程序步见表8-63。
表8-63示教定时器指令名称;、助记符、指令代码、操作数和程序步
指令名称
助记符
指令代码
操作数
程序步
D
n
示教定时器指令
TTMR
FNC64
D
(双元件16位字用2个D)
K、H
N=0~2
TTMR
…5步
示教定时器指令TTMR可以将按钮按下的持续时间乘以系数后作为定时器的预置值,监控信号的持续性。
示教定时器指令TTMR的使用说明和波形图如图8-83所示。
X10由OFF→ON,示教定时器执行,其持续时间由D301记下,该时间乘以“n”指定值并存入D300。
X10可以是按钮,按钮X10按下的持续时间即为“τ0”S,存入D300的值按“n”指定值而变化。
n=K0,τ0→D300;n=K1,10τ0→D300;n=K2,100τ0→D300,X10关断时,D30l复位,D300保持不变。
6.特殊定时器指令
特殊定时器指令名称、助记符、指令代码、操作数和程序步见表8-64。
表8-64特殊定时器指令名称、助记符、指令代码、操作数和程序步
指令名称
助记符
指令代码
操作数
程序步
S
n
D
特殊定时器指令
STMR
FNC65
T
T0~T199(100ms)
K、H
n=1~32767
Y、M、S
(4个连号)
STMR
…7步
特殊定时器指令STMR是用来产生延时断开定时、单脉冲定时和闪动定时的作用。
STMR指令的使用说明如图8-84所示。
图8-84STMR指令的使用图8-85M3的接法
[n]的指定值是[S]指定的定时器设定值。
M0是延时断开定时器。
M1是单脉冲定时器。
M2、M3是为闪动而设立的。
M3的连接法如图8-85所示。
M2和M1产生闪动输出。
当X0=OFF,M0、M1、M3经过设定值的时间后关断,T10同时复位。
需要指出的是,在这里用到的定时器在其他程序中不能再使用。
7.交替输出指令
交替输出指令名称、助记符、指令代码、操作数和程序步见表8-65。
表8-65交替输出指令名称、助记符、指令代码、操作数和程序步
指令名称
助记符
指令代码
操作数
程序步
D
交替输出指令
ALT
FNC66
Y、M、S
ALT、ALT(P)
…3步
交替输出指令ALT的使用说明如图8-86所示。
当X0从OFF→ON时,M0的状态改变一次。
若用连续交替输出指令ALT时,M0的状态每个扫描周期改变一次。
应用交替输出指令ALT就能做到用一个按钮就可以控制负载的起动和停止,如图8-87所示。
第一次按下按钮X0时,起动输出Y1置1;再次按下X0,停止输出Y0动作,如此反复交替进行。
图8-86ALT交替指令的使用图8-87ALT指令用于起动和停止控制
用M0作为M1的ALT指令的驱动输入可产生分频效果,如图8-88所示。
图8-88
8.斜坡信号输出指令(表8-66)
斜坡信号输出指令名称、助记符、指令代码、操