比较二进制_FANUC PMC功能指令详解(06):比较指令二

这篇博客详细介绍了FANUC PMC中的比较指令,包括1字节到4字节的二进制比较(如GEB、GEW、GED)、范围比较(RNGB、RNGW、RNGD)以及数值大小判别等功能,通过不同的功能号SUB进行操作,并提供了指令格式、参数说明和示例应用。
摘要由CSDN通过智能技术生成

63a347185d5ac0b59887cfcc491599e7.png

8c7b8cfcafaee04ccfba03674b5e12f0.png

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字节长度数据

指令格式:

81cbf1ec28ffaadc1935ebb3ad74e839.png

控制条件:

(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为例)

4af0bc0bd6832ab03c48a493222e4241.png

该程序指令中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字节长度数据

指令格式:

b8d6a5450f56f91f5ae73586c07a4f06.png

控制条件:

(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为例)

15255dd4e670bf6b37cf62f5b5725de2.png

该程序指令中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字节长度数据

指令格式:

ecb44b8d36b75d390602ceea0bd65864.png

控制条件:

(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为例)

37e34874db6ff58ba4a790dc25987f32.png

该程序指令中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)中。

指令格式:

706fec463d26349db85bdaf7340d3007.png

控制条件:

(a) 输入信号

ACT=0:指令不执行。

ACT=1:指令执行。

参数:

(a) 格式指定

指定1、2、4字节的数据长度以及输入数据(“常数”或者“地址数据”)。

feabf138ed25123d7da6301700038e5a.png

(b) 输入数据

指定用于比较的输入数据的地址。

(c) 比较数据

指定比较数据,以地址或者常数形式指定。

运算结果寄存器(R9000)

数据的计算结果输出到该寄存器中,寄存器各位的具体含义如下:

c5017cb16d681b970b2722664ac4db23.png

以下表格显示了输入数据,比较数据和操作寄存器相关位的关系

R9000.5

R9000.1

R9000.0

输入数据=比较数据

0

0

1

输入数据>比较数据

0

0

0

输入数据<比较数据

0

1

0

溢出

1

0

0

指令示例:

85cff459bd7e2d2a0296952260f46f81.png

R9000.5

R9000.1

R9000.0

R1000<R1010

0

1

0

该程序指令中参数1001表示比较的数据为1字节的二进制数以地址形式进行指定,参数R1000为输入数据地址,设其值为1000;R1010为比较数据地址,设其值为1001。则当R100.0为1的时候

23COMP(数值大小判别 :SUB 15)

该指令用于BCD码大小的比较。

指令格式:

568dd07f24178b0386a462aad71436e4.png

控制条件:

(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:输入数据≤比较数据。

指令示例:

6dc42eefee0ba0ab55b87cc42c208313.png

程序指令中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码编码。

指令格式:

b20220f182d499354b35b66475b0eb23.png

控制条件:

(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:输入数据=比较数据。

指令示例:

a18139324a53f005624701a57e093e7b.png

程序指令中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数控技术

dc863fb8e30a49f87401323df9d2a473.png
欢迎关注知乎:数控驿站
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值