PMC比较指令如下:
序号 |
指令名称 |
功能号 |
功能 |
1 |
EQB |
200 |
1字节二进制比较(=) |
2 |
EQW |
201 |
2字节二进制比较(=) |
3 |
EQD |
202 |
4字节二进制比较(=) |
4 |
NEB |
203 |
1字节二进制比较(≠) |
5 |
NEW |
204 |
2字节二进制比较(≠) |
6 |
NED |
205 |
4字节二进制比较(≠) |
7 |
GTB |
206 |
1字节二进制比较(>) |
8 |
GTW |
207 |
2字节二进制比较(>) |
9 |
GTD |
208 |
4字节二进制比较(>) |
10 |
LTB |
209 |
1字节二进制比较(<) |
11 |
LTW |
210 |
2字节二进制比较(<) |
12 |
LTD |
211 |
4字节二进制比较(<) |
13 |
GEB |
212 |
1字节二进制比较(≥) |
14 |
GEW |
213 |
2字节二进制比较(≥) |
15 |
GED |
214 |
4字节二进制比较(≥) |
16 |
LEB |
215 |
1字节二进制比较(≤) |
17 |
LEW |
216 |
2字节二进制比较(≤) |
18 |
LED |
217 |
4字节二进制比较(≤) |
19 |
RNGB |
218 |
范围比较(1字节) |
20 |
RNGW |
219 |
范围比较(2字节) |
21 |
RNGD |
220 |
范围比较(4字节) |
22 |
COMPB |
32 |
二进制数值大小判别 |
23 |
COMP |
15 |
数值大小判别 |
24 |
COIN |
16 |
一致性检测 |
13GEB(1字节二进制比较(≥):SUB 212)
14GEW(2字节二进制比较(≥):SUB 213)
15GED(4字节二进制比较(≥):SUB 214)
这组指令用于比较数据1是否大于等于数据2,根据操作数的字节不同分为3种指令:
指令名称 |
指令号 |
数据类型 |
|
13 |
GEB |
212 |
1字节长度数据 |
14 |
GEW |
213 |
2字节长度数据 |
15 |
GED |
214 |
4字节长度数据 |
指令格式:
控制条件:
(a) 输入信号(ACT)
ACT=0:指令不执行,输出W1=0。
ACT=1:指令执行,结果输出到W1中。
参数:
(a) 数据1
(b) 数据2
数据1和数据2均可以以常数或者是存储地址形式指定,数据的有效范围如下:
GEB:-128至127
GEW:-32768至32767
GED:-2147483648至2147483647
输出(W1):
W1=1:当ACT=1且数据1≥数据2。
W1=0:当不执行比较指令时(也就是ACT=0时);
当执行数据比较指令(ACT=1)且数据1<数据2时。
指令示例:(以SUB212为例)
该程序指令中R1000为数据1的存储地址,假设数据1为1000;R1010为数据2的存储地址,假设数据2为1001。当R100.0为1时指令执行,输出R0101.0=0(数据1<数据2)。
R1000
1000 |
R1010
1001 |
输出结果为
R0101.0 |
0 |
16LEB(1字节二进制比较(≤):SUB 215)
17LEW(2字节二进制比较(≤):SUB 216)
18LED(4字节二进制比较(≤):SUB 217)
这组指令用于比较数据1是否小于等于数据2,根据操作数的字节不同分为3种指令:
指令名称 |
指令号 |
数据类型 |
|
16 |
LEB |
215 |
1字节长度数据 |
17 |
LEW |
216 |
2字节长度数据 |
18 |
LED |
217 |
4字节长度数据 |
指令格式:
控制条件:
(a) 输入信号(ACT)
ACT=0:指令不执行,输出W1=0。
ACT=1:指令执行,结果输出到W1中。
参数:
(a) 数据1
(b) 数据2
数据1和数据2均可以以常数或者存储地址形式指定,数据的有效范围如下:
LEB:-128至127
LEW:-32768至32767
LED:-2147483648至2147483647
输出(W1):
W1=1:当ACT=1且数据1≤数据2。
W1=0:当不执行比较指令时(也就是ACT=0时);
当执行数据比较指令(ACT=1)且数据1>数据2时。
指令示例:(以SUB215为例)
该程序指令中R1000为数据1的存储地址,假设数据1为1000;R1010为数据2的存储地址,假设数据2为1001。当R100.0为1时指令执行,输出R0101.0=1(数据1<数据2)。
R1000
1000 |
R1010
1001 |
输出结果为
R0101.0 |
1 |
19RNGB(范围比较(1字节):SUB 218)
20RNGW(范围比较(2字节):SUB 219)
21RNGD(范围比较(4字节):SUB 220)
这组指令用于进行范围的比较,当满足如下条件时W1的输出将变为1。
数据1≤输入数据≤数据2或者数据2≤输入数据≤数据1,根据操作数节数的不同分为3种指令:
指令名称 |
指令号 |
数据类型 |
|
19 |
RNGB |
218 |
1字节长度数据 |
20 |
RNGW |
219 |
2字节长度数据 |
21 |
RNGD |
220 |
4字节长度数据 |
指令格式:
控制条件:
(a) 输入信号(ACT)
ACT=0:指令不执行,输出W1=0。
ACT=1:指令执行,结果输出到W1中。
参数:
(a) 数据1
(b) 数据2
数据1和数据2均可以以常数或者存储地址的形式指定,数据的有效范围如下:
NEB:-128至127
NEW:-32768至32767
NED:-2147483648至2147483647
输出(W1):
W1=1:当不执行比较指令时(也就是ACT=0时);
当执行数据比较指令(ACT=1)且输入数据大小不在数据1和数据2之间时。
W1=0:当ACT=1且数据1≤输入数据≤数据2;
当ACT=1且数据2≤输入数据≤数据1。
指令示例:(以SUB218为例)
该程序指令中R1000为比较的下限值存储地址(假设为50),R1100为比较的上限值存储地址(假设为100),R1200为比较数据的存储地址,假设为70,则当R100.0为1的时候输出R101.0=1(数据1≤输入数据≤数据2)。
下限数据R1000
50 |
上限数据R1100
100 |
比较数据
70 |
输出结果为:
R101.0 |
0 |
22COMPB(二进制数值大小判别:SUB 32)
该指令用于比较1、2、4字节数据的大小,结果将输出至运算结果输出寄存器(R9000)中。
指令格式:
控制条件:
(a) 输入信号
ACT=0:指令不执行。
ACT=1:指令执行。
参数:
(a) 格式指定
指定1、2、4字节的数据长度以及输入数据(“常数”或者“地址数据”)。
(b) 输入数据
指定用于比较的输入数据的地址。
(c) 比较数据
指定比较数据,以地址或者常数形式指定。
运算结果寄存器(R9000)
数据的计算结果输出到该寄存器中,寄存器各位的具体含义如下:
以下表格显示了输入数据,比较数据和操作寄存器相关位的关系
R9000.5 |
R9000.1 |
R9000.0 |
|
输入数据=比较数据 |
0 |
0 |
1 |
输入数据>比较数据 |
0 |
0 |
0 |
输入数据<比较数据 |
0 |
1 |
0 |
溢出 |
1 |
0 |
0 |
指令示例:
R9000.5 |
R9000.1 |
R9000.0 |
|
R1000<R1010 |
0 |
1 |
0 |
该程序指令中参数1001表示比较的数据为1字节的二进制数以地址形式进行指定,参数R1000为输入数据地址,设其值为1000;R1010为比较数据地址,设其值为1001。则当R100.0为1的时候
23COMP(数值大小判别 :SUB 15)
该指令用于BCD码大小的比较。
指令格式:
控制条件:
(a) 指定数据(BYT)
BYT=0:2位BCD码数据比较。
BYT=1:4位BCD码数据比较。
(b) 输入信号(ACT)
ACT=0:指令不执行,W1不改变。
ACT=1:指令执行,结果输出到W1。
参数:
(a) 格式指定
0:指定输入数据为常数。
1:指定输入数据为地址。
(b) 输入数据
“输入数据”通过“格式指定”指定为整数或者是存储该值的地址。
(c) 比较数据地址
指定比较数据的存储地址。
输出(W1):
W1=0:输入数据>比较数据。
W1=1:输入数据≤比较数据。
指令示例:
程序指令中R9091.0为常0信号,这样BYT=0操作数为2位BCD码,参数0001指定了操作数通过地址指定,R1000为输入数据地址设其值为34, R2000为比较数据地址设其值为45。当R100.0=1是输出R300.0=1。
输出数据R1000
34 |
比较数据R2000
45 |
输出结果为:
R300.0 |
1 |
24COIN(一致性检测 :SUB 16)
一致性检测功能指令将对输入数据和比较数据进行一致性比较,数据均为BCD码编码。
指令格式:
控制条件:
(a) 指定数据类型(BYT)
BYT=0:1字节BCD码数据比较。
BYT=1:2字节BCD码数据比较。
(b) 输入信号(ACT)
ACT=0:指令不执行,W1不改变。
ACT=1:指令执行,结果输出到W1中。
参数:
(a) 格式指定
0:指定输入数据为常数。
1:指定输入数据为地址。
(b) 输入数据
输入数据可以指定为整数或者是存储该值的地址,通过“格式指定”进行选择。
(c) 比较数据地址
指定比较数据的地址。
输出(W1):
W1=0:输入数据≠比较数据。
W1=1:输入数据=比较数据。
指令示例:
程序指令中R9091.0为常0信号,则BYT=0为2位的BCD码,参数0001表示为操作数以地址形式表示,R1000为输入数据地址设其值为34,R2000为比较数据地址设定为34,则当R100.0=1时输出R300.0=1(输入数据=比较数据)。
输入数据R1000
34 |
比较数据R2000
34 |
输出结果为:
R300.0 |
1 |
本文转自:FANUC数控技术
相关链接:
问答社区 发起问答 报警查询 技术文章 维修服务 资料下载 加交流群 申请 VIP
本文转载来自【北京FANUC】,仅供大家学习交流,如侵权请联系站长删文。
评论列表(1条)