最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

FANUC PMC功能详细介绍

IT圈 admin 47浏览 0评论

2024年2月19日发(作者:揭启颜)

PMC功能

PMC功能

讲述PMC功能和PMC程序编写的基本事项

这里讲述以下内容:

● PMC的基本功能

● 功能指令一览

 种类

编程语言

级数

第一级执行周期

基本指令处理速度

I/O Link最大信号点数

0i-D

0i-Mate D

T地址范围

C地址范围

K地址范围

D地址范围

A地址范围

符号

基本规格

扩展规格

基本规格

扩展规格

 “○B”为软件包B包的标准配置。

 I/O Link第二通道功能,为选项功能,需要指定。

 使用符号和指令扩展规格时,需要使用FANUC LADDER-III软件。

梯形图

3

4/8msec

25nsec/step

2048/2048

T0~T499,T9000~T9499

C0~C399,C5000~C5199

K0~K99,K900~K999

D0~D9999

A0~A249,A9000~A9249

3

1μsec/step

1024/1024

○B

T0~T79,T9000~T9079

C0~C79,C5000~C5039

K0~K19,K900~K999

D0~D2999

A0~A249,A9000~A9249

16字符

40字符

30字符

255字符

指令

- 151 -

PMC功能

 系统信号

地址

地址

梯形图

运行状态

扫描周期

梯形图运行开始信号

R9015.0

梯形图停止信号

R9015.1

梯形图运行状态

R9091.2

R9015

#7

#6

#5

#4

#3

#2

#1 #0

R9091

FL

FL2

RUN

ON

OFF

#7

#6

FL

#5

FL2

#4

#3

#2

RUN

#1

ON

#0

OFF

:1秒周期信号

:0.2秒周期信号

:PMC运行

:常1信号

:常0信号

(ON/OFF 比1:1)

(ON/OFF 比1:1)

STPR RUNR

STPR :梯形图停止信号

RUNR :梯形图运行信号

- 152 -

PMC功能

PMC的数据形式分为二进制形式、BCD码形式和位型三种。

 CNC和PMC间的接口信号为二进制形式。一般来说,PMC数据也采用二进制形式。

 带符号的二进制形式(Binary)

 可进行1字节,2字节,4字节的二进制处理

 可使用的数值范围如下

1字节

2字节

4字节

 在顺序程序中指令数据的长度和初始地址

 在诊断画面(PMCDGN)确认2字节,4字节的地址数据时,地址号大的为高位地址。

 由R100指定4字节长的数据时地址和位的对应关系如下:

-128~+127

-32768~+32767

-2147483648~+2147483647

采用2的补码表示

地址

地址

地址

地址

 用2字节表示-100和+100时

+0

2

+1

+2

+3

100

01100100

00000000

00000000

00000000

-100

10011100

11111111

11111111

11111111

最高位数

为1时为负数

R100

R101

R102

R103

#7

27

215

223

±

#6

26

214

222

230

#5

25

213

221

229

#4

24

212

220

228

#3

23

211

219

227

#2

22

210

218

226

#1

21

29

217

225

#0

20

28

216

224

- 153 -

PMC功能

 BCD形式:Binary Coded Decimal

 在十进制数的二-十进制中,用4位的二进制码表示十进数的各位。

 可处理2位或4位的十进制数,符号用其他信号进行处理。

+0

#7 #6 #5 #4 #3 #2 #1 #0

10位

80 40 20 10 8 4

个位

2 1

+1

1000位

8000 4000 2000 1000 800

100位

400 200 100

 例:63和1234的BCD码表示。

 BCD码和二进制数的变换通过DCNV,DCNVB指令来进行。

63

+0

+1

01100011

1234

00110100

00010010

 位型:Bit

 处理1位信号和数据时,在地址之后指令小数点的位号

地址

 例:X0001.2(地址X0001的第二位)

 可以以位为单位来读写数据表的部分数据部分。

xxxxx

#7

#6

#5

V

#4

#3

#2

#1

#0

- 154 -

PMC功能

 格雷码

 0~15的4位二进制表示如下。如果旋钮开关的触点信号使用二进制代码来表示,在切换触点时,存在有2位数据同时变化的情况,造成变化的不连续性。

 如下所示,如果采用4位格雷码表示,在旋钮开关触点进行切换时,相邻的触点只有一位数据进行变化,不存在不连续的现象。

 把由旋钮开关输入的格雷码信号转换为二进制数据,可成为正常处理用数值,这样程序更容易书写。

| g3(Xxxx.x) b3(Rxxx.x)|

*----||-------------------------------------------------------------()---*

| |

| b3 g2 b2 |

*----||-------|/|--*------------------------------------------------()---*

| |

| b3 g2 | |

*----|/|------||---* |

| |

| b2 g1 b1 |

*----||-------|/|--*------------------------------------------------()---*

| |

| b2 g1 | |

*----|/|------||---* |

| |

| b1 g0 b0 |

*----||-------|/|--*------------------------------------------------()---*

| |

| b1 g0 | |

*----|/|------||---* |

| |

0

0

0

0

0

1

0

0

0

1

2

0

0

1

0

3

0

0

1

1

4

0

1

0

0

5

0

1

0

1

6

0

1

1

0

7

0

1

1

1

8

1

0

0

0

9

1

0

0

1

10

1

0

1

0

11

1

0

1

1

12 13

1

1

0

0

1

1

0

1

14 15

1

1

1

0

1

1

1

1

0

0

0

0

0

1

0

0

0

1

2

0

0

1

1

3

0

0

1

0

4

0

1

1

0

5

0

1

1

1

6

0

1

0

1

7

0

1

0

0

8

1

1

0

0

9

1

1

0

1

10

1

1

1

1

11

1

1

1

0

12 13 14 15

1

0

1

0

1

0

1

1

1

0

0

1

1

0

0

0

 格雷码和二进制按照上述规律进行变换,使用格雷码旋钮开关,可以提高安全性。

- 155 -

PMC功能

 第1级

 第1级程序中,如果没有输入信号,只需要编写END1功能指令。

程序的开头到END1命令之间为第一级程序,系统每4/8msec执行一次。

主要是处理急停、跳转、超程等信号。

 第2级

 sequence是“顺序”的意思。

 在第二级程序上因为有同步输入信号存储器,所以输入脉冲信号时,其信号宽带应大于扫描

信号时间。

扫描时间显示在PMC诊断画面的标题栏上。

END1命令之后,END2命令之前的顺序程序为第二级程序。

第二级程序通常包括机床操作面板、ATC(自动换刀装置)程序等。

 第3级

 在编写顺序程序时可选择是否使用第3级程序,本教材不使用第3级。

END2命令和END3命令之间的程序为第三级程序。

第三级程序主要处理低速响应的信号。

- 156 -

PMC功能

 子程序

 将重复执行处理和模块化的程序作为子程序登录。

 子程序功能指令登录在END3命令和END命令之间。

子程序顺序程序,从SP命令开始到SPE命令结束,作为1组。可以登录5000或者512个子程序。

 不使用第3级时,子程序在END和END2之间进行编辑。

 顺序程序为附加选择功能,可选择将子程序用梯形图语言或顺序程序任意一种进行记述。

 在第2级程序中可使用条件调用命令CALL或无条件调用命令CALLU来调用子程序。

 第1级程序中不能调用子程序。

第一级

 急停

 超程

 跳转

END1

第二级

 运行转备

 运行方式切换

 手动进给

 手轮进给

 自动运行

 MST功能

 CALL命令

 信息显示

SP P10

END2

子程序

SP

SPE

END

CALL

CALLU

命令

SPE

- 157 -

PMC功能

定时器

TMR

TMRB

TMRC

TMRBF

计数器

CTR

CTRB

CTRC

数据传送

MOVB

MOVW

MOVD

MOVN

MOVE

MOVOR

XMOVB

XMOV

数值比较

COMPB

COMP

COIN

EQB

EQW

EQD

NEB

NEW

NED

GTB

GTW

GTD

LTB

LTW

LTD

SUB32

SUB15

SUB16

SUB200

SUB201

SUB202

SUB203

SUB204

SUB205

SUB206

SUB207

SUB208

SUB209

SUB210

SUB211

- 158 -

二进制数据比较

BCD数据比较

BCD一致性判断

1字节长二进制比较(=)

2字节长二进制比较(=)

4字节长二进制比较(=)

1字节长二进制比较(≠)

2字节长二进制比较(≠)

4字节长二进制比较(≠)

1字节长二进制比较(>)

2字节长二进制比较(>)

4字节长二进制比较(>)

1字节长二进制比较(<)

2字节长二进制比较(<)

4字节长二进制比较(<)

SUB43

SUB44

SUB47

SUB45

SUB8

SUB28

SUB35

SUB18

1字节数据传送

2字节数据传送

4字节数据传送

任意字节数据传送

逻辑乘后数据传送

逻辑加后数据传送

二进制变址修改数据传送

BCD变址修改数据传送

SUB5

SUB56

SUB55

计数器

追加计数器

追加计数器

SUB3

SUB24

SUB54

SUB77

延时定时器(上升沿触发)

固定延时定时器(上升沿触发)

延时定时器(上升沿触发)

固定延时定时器(下降沿触发)

PMC功能

GEB

GEW

GED

LEB

LEW

LED

RNGB

RNGW

RNGD

数据处理

DSCHB

DSCH

DIFU

DIFD

EOR

AND

OR

NOT

PARI

SFT

COD

CODB

DCNV

DCNVB

DEC

DECB

演算命令

ADDB

SUBB

MULB

DIVB

ADD

SUB

MUL

DIV

NUMEB

SUB212

SUB213

SUB214

SUB215

SUB216

SUB217

SUB218

SUB219

SUB220

SUB34

SUB17

SUB57

SUB58

SUB59

SUB60

SUB61

SUB62

SUB11

SUB33

SUB7

SUB27

SUB14

SUB31

SUB4

SUB25

SUB36

SUB37

SUB38

SUB39

SUB19

SUB20

SUB21

SUB22

SUB40

1字节长二进制比较(≥)

2字节长二进制比较(≥)

4字节长二进制比较(≥)

1字节长二进制比较(≤)

2字节长二进制比较(≤)

4字节长二进制比较(≤)

1字节长二进制比较(范围)

2字节长二进制比较(范围)

4字节长二进制比较(范围)

二进制数据检索

BCD数据检索

上升沿输出

下降沿输出

异或

逻辑乘

逻辑和

逻辑非

奇偶校验

移位寄存器

BCD码变换

二进制码变换

数据转换

扩展数据转换

BCD译码

二进制译码

二进制加法运算

二进制减法运算

二进制乘法运算

二进制除法运算

BCD加法运算

BCD减法运算

BCD乘法运算

BCD除法运算

二进制常数赋值

- 159 -

PMC功能

NUME

CNC相关

DISPB

EXIN

WINDR

WINDW

AXCTL

PSGNL

PSGN2

程序控制

COM

COME

JMP

JMPE

JMPB

JMPC

LBL

CALL

CALLU

CS

CM

CE

SP

SPE

END1

END2

END3

END

NOP

回转控制

ROT

ROTB

SUB23

SUB41

SUB42

SUB51

SUB52

SUB53

SUB50

SUB63

SUB9

SUB29

SUB10

SUB30

SUB68

SUB73

SUB69

SUB65

SUB66

SUB74

SUB75

SUB76

SUB71

SUB72

SUB1

SUB2

SUB48

SUB64

SUB

SUB6

SUB26

BCD常数赋值

信息显示

外部数据输入

CNC数据读取

CNC数据写入

PMC轴控制指令

位置信号

位置信号

公共线控制开始

公共线控制结束

跳转

跳转结束

标号跳转1

标号跳转2

标号

有条件子程序调用

无条件子程序调用

选择调用开始

选择子程序调用

选择调用结束

子程序开始

子程序结束

第1级程序结束

第2级程序结束

第3级程序结束

程序结束

无操作

BCD回转控制

二进制回转控制

 上述功能指令仅为0i-D系统的部分常用功能指令,且均为0i-D系统和0i-Mate D系统的标

准功能,其余的功能指令详见相关说明书。

- 160 -

PMC功能

定时器命令

 延时定时器(上升沿触发):SUB3/TMR

ACT为1并经过设定的时间后,输出W1为1。时间在PMC参数画面进行设定,所以

顺序程序编写完成后,用户也可以变更设定时间。ACT为0后,W1马上变为0。

ACT

SUB3

TMR

W1

定时器号

ACT

设定时间

W1

【控制条件】

ACT

=0 : 定时器输出W1为0

=1 : 启动定时器

【定时器号】(初始状态)

1~8 : 以48ms为单位,最大设定时间1572.8秒

: 以8ms为单位,最大设定时间262.1秒 9以上

 在定时器命令中指定定时器号。定时器设定时间在PMC维修画面的定时器画面进行设定。

所以顺序程序在编写完成之后,也可以方便的变更时间。

 定时器的个数根据PMC不同而不同。

定时器初始设定时间

48ms定时器

8ms定时器

0i-D

PMC

1到8

9到250

0i-D/0i Mate-D

PMC/L

1到8

9到40

 使用定时器号的自动分配功能时,可将没有使用的定时器号自动分配,非常方便。

 上述的定时器设定时间为原始值。软件操作时,可以根据下表的单位进行转换。

- 161 -

PMC功能

1msec

8msec

10msec

48msec

100msec

1秒

1分

1msec~32.7秒

8msec~262.1秒

10msec~327.7秒

48msec~1572.8秒

100msec~54.6分

1秒~546分

1分~546小时

定时器9以上初始值

定时器1~8初始值

 定时器的定时器精度,对应存储在T9000~T9499中,设值含义如下:

0

1

2

3

4

5

缺省(8msec/48msec)

1msec

10msec

100msec

1秒

1分

【输出】

W1 : ACT接通后,经过定时器设定的时间后,输出即接通为1。

【使用范例】

X0.0接通后再经过100ms,R0.0就接通为1。

 “精度”由T9000~T9499来决定,每个计数器占两个字节,同时也对应T9000~T9499的

相应两字节为“精度”设定地址,依次类推。对于1号计数器,对应为T9000~T9001设定

精度,如果T9000~T9001为0,则精度按缺省处理,为48ms。范例中T9000=3,即精度

等级为100,在此条件下,“设定时间”必须是100的倍数。

- 162 -

PMC功能

 固定延时定时器(上升沿触发):SUB24/TMRB

ACT为1后经过设定的时间,接通W1为1。在命令控制参数中指定设定时间。

主要用于程序编写完成之后,用户无需变更设定时间的情况。

ACT为0时,输出W1为0。

ACT

SUB24

TMRB

W1

定时器号

设定时间

ACT

设定时间

W1

【控制条件】

ACT

=0 : 定时器输出W1为0

=1 : 启动定时器

【控制参数】

定时器号

设定时间

: 1~500

: 以毫秒为单位进行设定(最大32,767,000)

 定时器的个数根据PMC类型不同而不同。

定时器初始设定数据

定时器号

设定时间

0i-D

PMC

1到500

0i-D/0i Mate-D

PMC/L

1到100

1到32,760,000(毫秒) 1到32,760,000(毫秒)

 固定延时定时器(上升沿触发)TMRB和固定延时定时器(下降沿触发)TMRBF共用定时

器号,注意不要重复。建议使用自动分配功能,更加方便。

 固定延时定时器TMRB和延时定时器TMR不共用定时器号,故不产生冲突。

【输出】

W1 : ACT接通后,经过定时器设定的时间后,输出即接通为1。

- 163 -

PMC功能

【使用范例】

·X0.0接通3秒之后,R0.0输出为1。

·在任意时间一旦X0.0为0,R0.0马上为0。

 延时定时器(上升沿触发):SUB54/TMRC

定时器精度范围扩展为以分为单位,可作为长时间定时器使用。

在控制参数中可以自由的指定定时器设定时间地址,所以没有定时器个数限制。

ACT

SUB54

TMRC

W1

定时器精度

定时器设定时间地址

定时器寄存器地址

ACT

设定时间

W1

【控制条件】

ACT

=0 : 定时器输出W1为0

=1 : 启动定时器

【控制参数】

定时器精度 :

种类

1msec

8msec

10msec

48msec

100msec

1秒

10秒

1分

定时器精度

5

0

6

1

7

2

3

4

- 164 -

设定时间范围

1msec~32.7秒

8msec~262.1秒

10msec~327.7秒

48msec~1572.8秒

100msec~54.6分

1秒~546分

10秒~91小时

1分~546小时

PMC功能

【定时器设定时间地址】

: 指定用于存储定时器设定值2字节长地址的首地址。

(通常使用D地址)

【定时器寄存器地址】

: 指定使用该命令时的4字节长地址的首地址。(通常使用R地址)

【输出】

W1 : ACT为1经过定时器设定的时间后,输出即接通为1。

【使用范例】

·本例定时器精度为8ms

·假设D100中数据为100,则定时器定时时间为100*8=800ms

·即X0.0接通经过800ms之后,R0.0接通为1.

·同样,在任意时间如果X0.0为0,则输出R0.0立即为0

·R100为系统作业区域

- 165 -

PMC功能

 固定延时定时器(下降沿触发):SUB77/TMRBF

固定延时定时器设定的时间是固定的,因此定时器的设定时间和顺序程序一同写入到

F-ROM中。

ACT

SUB77

TMRBF

W1

定时器号

设定时间

设定时间

ACT

W1

【控制条件】

ACT

=0 : 定时器输出W1为0

=1 : 启动定时器

【控制参数】

定时器号

设定时间

: 1~500

: 以msec为单位进行设定(最大32,767,000)

 定时器的个数根据PMC类型不同而不同

定时器初始设定数据

定时器号

设定时间

0i-D

PMC

1到500

0i-D/0i Mate-D

PMC/L

1到100

1到32,760,000(毫秒) 1到32,760,000(毫秒)

 固定延时定时器(上升沿触发)TMRB和固定延时定时器(下降沿触发)TMRBF共用定时

器号,注意不要重复。建议使用自动分配功能,更加方便。

- 166 -

【输出】

W1

: ACT为1后输出W1马上变为1.

ACT为0后经过设定时间,输出W1才为0。

PMC功能

计数器命令

 计数器:SUB5/CTR

 PMC参数画面的计数器数值为十进制表示,当内部数据形式为BCD和二进制形式时,

可通过系统参数画面进行选择。

是进行加减计数的计数器。作为预置型计数器时,首先设定计数器的计数上限,当计数

值和设定值相同的时候,输出信号。此外还可作为环形计数器,重复计数。

CN0

UPDOWN

RST

ACT

W1

SUB5

CTR

计数器号

【控制条件】

CN0

=0 : 计数器的初始值为0

=1 : 计数器的初始值为1

UPDOWN

=0 : 为加计数器

=1 : 为减计数器

=1 : 将计数器复位为初始值 RST

 加计数器时,复位为CN0设定的初始值;减计数器时,复位为计数器预置值。

ACT =1 : 收到信号的上升沿时进行1次计数,并更新计数值。

【控制参数】

计数器号

: 指定计数器号。

计数器的最大值和当前值均在PMC参数画面进行显示和设定。

- 167 -

PMC功能

 计数器号的最大值,根据PMC类型不同而不同。

计数器号

 计数器的数据形式为二进制时,计数范围为0~32767。为BCD形式时,计数范围为0~9999。

 计数器号使用自动分配功能时,将未使用的计数器号进行分配,十分方便。

0i-D

PMC

1到100

0i-D/0i Mate-D

PMC/L

1到20

【使用范例】

【输出】

W1

=1 : 为计数器输出信号。

加计数到最大值,减计数到最小值时输出为1。

 每个计数器占据4个字节,前两个字节为“设定值”,后两个字节为“现在值”。

如上例中,1号计数器地址为C0~C3,其中设定值地址为C0~C1,现在值地址为C2~C3。

·从1到20进行计数的计数器(设定值即为预置值)

·在X0.0的上升沿,“现在值”加1,当“现在值”到20时,R0.0输出为1

·当F1.1为1时,“现在值”复位为1

- 168 -

PMC功能

 固定计数器:SUB56/CTRB

在控制参数中指定预置值的计数器。计数值为二进制形式。

CN0

UPDOWN

RST

ACT

SUB56

CTRB

W1

计数器号(1~100)

预置值

【控制条件】

CN0

=1 : 计数器的初始值为1

=0 : 计数器的初始值为0

UPDOWN

=0 : 为加计数器

=1 : 为减计数器

=1 : 将计数器复位为初始值 RST

 加计数器时,复位为CN0设定的初始值;减计数器时,复位为计数器预置值。

【控制参数】

计数器号

计数器号

ACT =1 : 收到信号的上升沿时进行1次计数,并更新计数值。

0i-D

PMC

1到100

0i-D/0i Mate-D

PMC/L

1到20

预置值 :在0~32767内进行预置值指定。

 CTRB命令的计数值,在地址C5000以内,均占用2个字节。

【输出】

W1

=1 : 为计数器结束输出。

加计数到最大值,减计数到最小值时输出为1。

- 169 -

PMC功能

 计数器:SUB55/CTRC

为标准计数器的扩展形式。可利用数据表进行设置的计数器,计数值为二进制形式。

CN0

UPDOWN

RST

ACT

W1

SUB55

CTRC

计数器预置值地址

计数器寄存器地址

【控制条件】

CN0

=1 : 计数器的初始值为1

=0 : 计数器的初始值为0

UPDOWN

=0 : 为加计数器

=1 : 为减计数器

=1 : 将计数器复位为初始值 RST

 加计数器时,复位为CN0设定的初始值;减计数器时,复位为计数器预置值。

ACT =1 : 为1时进行计数。

【控制参数】

计数器预置值地址

: 指定2字节的存储器的首地址。(通常指令为D地址)

计数器寄存器地址

: 指定连续的4字节存储器的起始地址。

电源关断时仍需保存计数值,使用D地址指定;

无需保存时,使用R地址。

 使用R地址指令计数器寄存器地址时,当电源接通时,计数器的累计值为0

- 170 -

【输出】

W1 =1 : 为计数器输出。加计数到最大值,减计数到最小值时输出为1。

PMC功能

数据传送命令

 1字节长数据传送:SUB43/MOVB

把1字节的数据从被指令的传出位置地址传送到指定的传入位置地址。

ACT

SUB43

MOVB

传出位置地址

传入位置地址

【控制条件】

ACT =1 : 执行命令

【控制参数】

传出位置地址

: 1字节数据的存储位置地址

传入位置地址

: 1字节数据的传入位置地址

【使用范例】

当X0.0为1时,将D100的数据传送给R200

 2字节长数据传送:SUB44/MOVW

把2字节的数据从被指令的传出位置地址传送到指定的传入位置地址。

- 171 -

PMC功能

ACT

SUB44

MOVW

传出位置地址

传入位置地址

【控制条件】

ACT =1 : 执行命令

【控制参数】

传出位置地址

: 2字节数据的存储位置地址

传入位置地址

: 2字节数据的传入位置地址

【使用范例】

当X0.0为1时,将D100~D101的数据传送给R200~R201

 4字节长数据传送:SUB47/MOVD

把4字节长的数据从被指令的传出位置地址传送到指定的传入位置地址。

ACT

SUB47

MOVD

传出位置地址

传入位置地址

【控制条件】

ACT =1 : 执行命令

- 172 -

PMC功能

【控制参数】

传出位置地址

: 4字节数据的存储位置地址

传入位置地址

: 4字节数据的传入位置地址

 任意字节长数据传送:SUB45/MOVN

传送指定长度(1~200)的数据从指令源地址到目的地址。

ACT SUB45

MOVN

传送字节数(1~200)

传送源地址

传送目的地址

【控制条件】

ACT =1 : 执行命令

【控制参数】

传送字节数 : 指令需要传送的字节长度(1~200)

传送源地址 : 传送字节数据的存储位置地址。

传送目的地址

: 传送字节数据的传入位置地址。

【使用范例】

当X0.0为1时,将D100~D104的数据传送给R100~R104

- 173 -

PMC功能

 逻辑乘后数据传送:SUB8/MOVE

将逻辑乘数据和输入数据进行逻辑乘(AND)运算,并将结果输出至指定地址。

还可以用来从指定地址中排除不需要的位数。

ACT

SUB8

MOVE

逻辑乘数据的高4位

逻辑乘数据的低4位

输入数据地址

输出地址

【控制条件】

ACT =1 : 执行命令

【控制参数】

逻辑乘数据 : 逻辑乘

输入数据地址

: 进行逻辑乘操作的数据

: 指定输入数据进行逻辑乘运算之后的结果输出地址 输出地址

【使用范例】

X10 :0 1 0 0 1 0 1 0

逻辑乘数据 :0 0 0 1 1 1 1 1

R100 :0 0 0 0 1 0 1 0

- 174 -

PMC功能

 逻辑和后数据传送:SUB28/MOVOR

将指定的1个字节的输入数据和逻辑和数据根据控制参数进行逻辑和(OR)运算,

并将结果输出至指定地址。

ACT

SUB28

MOVOR

逻辑和数据的高4位

逻辑和数据的低4位

输入数据地址

输出地址

【控制条件】

ACT =1 : 执行命令

【控制参数】

逻辑和数据 : 指定进行逻辑和运算的常数

输入数据地址

: 指定输入数据地址

: 指定输入数据进行逻辑和运算之后的结果输出地址 输出地址

【使用范例】

X10

R200

R100

:0 1 0 0 1 0 1 0

:0 0 0 1 1 1 1 1

:0 1 0 1 1 1 1 1

- 175 -

PMC功能

 二进制变址数据传送:SUB35/XMOVB

对指定地址的数据表的数据进行读取或写入操作。数据形式为二进制。此外,数据表的

数据个数使用地址进行指定,程序完成之后,数据个数可进行变更。控制参数的设定,

分为基本规格和扩展规格2种。使用扩展规格时,1个命令可一次操作多个数据。

RW

RST

ACT

SUB35 0 n n d

XMOVB

W1(错误输出)

格式指令

数据表容量存储地址

数据表首地址

输入/输出数据存储地址

表内号存储地址

【控制条件】

RW

=0 : 从数据表中读出数据

=1 : 向数据表中读入数据

=1 : 复位并输出W1=0

=1 : 执行指令

RST

ACT

【控制参数】

格式指定n n : 索引表内数据数(00~99)

d

设定00或01,默认为标准设置一致

设定02及以上,作为扩展规格,读取nn长度的数据到数据表中。

: 指定数据长度(1,2,4)

数据表容量存储地址

: 用于存储数据表的数据数目,所占用的字节数需符合格式指定中

的设定,数据表的数据数有效范围由d指定的数据长度决定。

数据表首地址

: 设定数据表的表头地址

输入/输出数据存储地址

: 输入输出时,设定输入数据或读出结果的存放地址。

表内号存储地址

: 用于存储被读取或写入的数据的表内号。

【输出】

W1 : 表内号超过“数据表容量存储地址”中的值时,输出W1=1。

- 176 -

PMC功能

【使用范例】

·该功能模块使用了扩展规格,每次从数据表中读取出2字节长度的数据

·该数据表式以D150为表头地址的数据表(即D150的表内号为0,D151表内号

为1,D152表内号为2,以下逐一递增)

·R300指令数据表的长度,如果R300中数据为5,则数据表范围从D150~D159

·R200中指定要从数据表中读取的连续2个字节长度的第一个数据的表内号

·R100为读取的连续两个字节长度数据的存储地址的首地址,即存储地址为

R100~R101

·如果R300中数据为10,R200中数据为2,按图例,当X0.0为1时,则读取

D152~D153中存储的数据至R100~R101中,也即R100~R101数据为10

- 177 -

PMC功能

 变址数据传送:SUB18/XMOV

对指定地址的数据表的数据进行读取或写入操作,适用于2或者4字节BCD数据。

BYT

RW

RST

ACT

SUB18

XMOV

W1(错误输出)

数据表容量

数据表首地址

输入/输出数据存储地址

表内号存储地址

【控制条件】

BYT

=0 : 数据表中存储的数据为BCD两位。

=1 : 数据表中存储的数据为BCD四位。

=0 : 从数据表中读取数据。

=1 : 向数据表中写入数据。

=1 : 复位,输出W1=0。

=1 : 执行命令。

RW

RST

ACT

【控制参数】

数据表容量 : 指定数据表的数据数目。

如果表头为0,表尾为n,则数据表容量设定为n+1。

数据表首地址

: 设定数据表的表头地址

输入/输出数据存储地址

: 输入输出时,设定输入数据或读出结果的存放地址。

表内号存储地址

: 用于存储被读取或写入的数据的表内号。

【输出】

W1 : 如果表内号超过编程指定的数据表容量,产生错误输出,W1=1。

- 178 -

PMC功能

数值比较命令

 二进制大小比较:SUB32/COMPB

1~4字节长的二进制数据之间的大小比较。

ACT

SUB32

COMPB

0 0

格式指定

输入数据(常数/地址)比较数据地址

【控制条件】

ACT =1 : 执行命令。

【控制参数】

输入数据格式指定

□ =0 : 输入数据为常数。

=1 : 输入数据为地址指定。

:指定数据长度(1,2,4)

: 用于比较的基准数据,输入数据的形式取决于上述的指定。

输入数据

比较数据地址

: 指定用于存放比较数据的地址。

【输出】

比较结果输出至R9000寄存器,直接进行运算结果确认。

#7

#6

#5

#4

#3

#2

#1

N

#0

Z R9000

【使用范例】

N =1:输入数据<比较数据

=0:输入数据=比较数据

假设在D100中存储的数据值为十进制数20,在R100中位十进制数25,指令如下:

- 179 -

PMC功能

当X0.0为1时,比较指令生效,由于D100小于R100,则输出R9000.1=1

 大小比较:SUB15/COMP

2位或4位BCD数据的数值比较,比较结果输出到W1。

BYT

ACT

SUB15

COMP

W1(比较结果输出)

输入数据格式指定

输入数据(常数/地址)

比较数据地址

【控制条件】

BYT

=0 : 输入和比较数据均为BCD两位数据。

=1 : 输入和比较数据均为BCD四位数据。

=1 : 执行指令。

ACT

【控制参数】

输入数据格式指定

=0 : 输入数据用常数来指定。

=1 : 输入数据用地址来指定。

: 比较用的基准数据,格式取决于上述的指定。 输入数据

比较数据地址

: 指定用于存放比较数据的地址。

【输出】

W1

=0 : 输入数据>比较数据

=1 : 输入数据≤比较数据

- 180 -

PMC功能

 一致性判断:SUB16/COIN

2位或4位BCD数据的数值比较。

BYT

ACT

SUB16

COIN

W1(比较结果输出)

输入数据格式指定

输入数据(常数/地址)

比较数据地址

【控制条件】

BYT

=0 : 输入和比较数据均为BCD两位数据。

=1 : 输入和比较数据均为BCD四位数据。

=1 : 执行指令。

ACT

【控制参数】

输入数据格式指定

=0 : 输入数据用常数来指定。

=1 : 输入数据用地址来指定。

: 比较用的基准数据,格式取决于上述的指定。 输入数据

比较数据地址

: 指定用于存放比较数据的地址。

【输出】

W1

=0 : 输入数据≠比较数据

=1 : 输入数据=比较数据

- 181 -

PMC功能

 带符号的二进制数据比较(=): SUB200/EQB

SUB201/EQW

SUB202/EQD

带符号的二进制数据比较(≠): SUB203/NEB

SUB204/NEW

SUB205/NED

带符号的二进制数据比较(>): SUB206/GTB

SUB207/GTW

SUB208/GTD

带符号的二进制数据比较(<): SUB209/LTB

SUB210/LTW

SUB211/LTD

带符号的二进制数据比较(≥): SUB212/GEB

SUB213/GEW

SUB214/GED

带符号的二进制数据比较(≤): SUB215/LEB

SUB216/LEW

SUB217/LED

- 182 -

PMC功能

1~4字节长度的二进制数据数值比较。

ACT

SUB200

EOB

W1

数据1(常数/地址)

数据2(常数/地址)

【控制条件】

ACT =1 : 执行指令。

【控制参数】

数据1

数据2

: 指定进行比较的1号数据的地址或者常数值

: 指定进行比较的2号数据的地址或者常数值

 数据1和数据2可以为常数或用地址指定,编辑梯形图程序时,输入用数字构成的字符时,

视为数值,可用地址进行输入。

【输出】

如下条件时,W1输出为1

EQB,EQW,EQD

NEB,NEW,BED

GTB,GTW,GTD

LTB,LTW,LTD

GEB,GEW,GED

LEB,LEW,LED

1= 数据1=数据2

1= 数据1≠数据2

1= 数据1>数据2

1= 数据1<数据2

1= 数据1≥数据2

1= 数据1≤数据2

- 183 -

PMC功能

 带符号的二进制数据比较(范围): SUB218/RNGB

SUB219/RNGW

SUB220/RNGD

判断1~4字节长度的二进制数据是否在指定范围内。

ACT

SUB218

RNGB

W1

数据1(常数/地址)

数据2(常数/地址)

输入数据(常数/地址)

【控制条件】

ACT =1 : 执行命令。

【控制参数】

数据1

数据2

输入数据

: 指定进行比较的1号数据的地址或者常数值。

: 指定进行比较的1号数据的地址或者常数值。

: 指定进行比较的数据的地址或者常数

 数据1和数据2可以为常数或用地址指定,编辑梯形图程序时,输入用数字构成的字符时,

视为数值,可用地址进行输入。

【输出】

W1

=1:

比较数据1≤输入数据≤比较数据2

比较数据2≤输入数据≤比较数据1

除上以外 =0:

- 184 -

PMC功能

 二进制数据检索:SUB34/DSCHB

检索指定数据表的数据,检索到后输出首地址。

和DSCH命令不同,数据值为二进制形式,数据表的数据用地址进行指定。

即使程序完成之后,也可以变更表容量。

RST

ACT

SUB34

DSCHB

W1(检索结果输出)

数据长度

数据表容量存储地址

数据表首地址

检索数据地址

检索结果输出地址

【控制条件】

RST

ACT

=1 : 检索结果W1输出为0

=1 : 执行命令。

【控制参数】

数据长度 : 指定检索数据长度(1,2,4)

数据表容量存储地址

: 指定存储数据表容量的地址。

根据指定字节长度分配所需字节数的存储区。

数据表首地址

: 设定数据表的表头地址

检索数据地址

: 设定检索数据输入地址

检索结果输出地址

: 经过检索,如果找到被检索数据,输出表内号至检索结果的地址。

【输出】

W1 : 没有找到待检索数据时输出W1为1。

- 185 -

PMC功能

 数据检索:SUB17/DSCH

数据检索指令仅适用于PMC的数据表,DSCH指令在数据表中检索指定的数据,并输

出其表内号,如未找到指定数据,则输出W1为1。

BYT

RST

ACT

SUB17

DSCH

W1(检索结果输出)

数据表容量

数据表首地址

检索数据地址

检索结果输出地址

【控制条件】

BYT

=0 : 数据表中存储的数据为BCD两位

=1 : 数据表中存储的数据为BCD四位

=1 : 检索结果W1输出为0

=1 : 执行指令。

RST

ACT

【控制参数】

数据表容量

: 指定检索对象数据表大小。

数据表首地址

: 指定数据表的表头地址。

检索数据地址

: 设定检索数据输入地址。

检索结果输出地址

: 经过检索,如果找到被检索数据,输出表内号至检索结果的地址。

【输出】

W1 : 如若没有找到待检索数据,输出为1

- 186 -

PMC功能

演算命令

 上升沿输出:SUB57/DIFU

取输入信号的上升沿,并在1个扫描周期内输出信号W1为1。

ACT SUB57

DIFU

W1(脉冲)

上升沿号(1~1000)

【控制条件】

ACT : 上升沿输出信号指定。

【控制参数】

上升沿号 : 指定上升沿输出指令的上升沿号

 上升沿号的个数,根据PMC的不同而不同。

PMC类型

0i-D PMC

0i-D/0i Mate-D PMC/L

上升沿号

1到1000

1到256

 上升沿输出DIFU和下降沿输出DIFD双方共用沿号,注意不要重复。

使用自动分配功能,可以将未使用的沿号自动分配,十分方便。

 下降沿输出:SUB58/DIFD

取输入信号的上升沿,并在1个扫描周期内输出信号W1为1。

ACT SUB58

DIFD

W1(脉冲)

下降沿号(1~1000)

【控制条件】

ACT : 下降沿输出信号指定。

【控制参数】

下降沿号 : 指定下降沿输出指令的下降沿号。

- 187 -

PMC功能

 下降沿号的个数,根据PMC的不同而不同。

PMC类型

0i-D PMC

0i-D/0i Mate-D PMC/L

下降沿号

1到1000

1到256

 上升沿输出DIFU和下降沿输出DIFD双方共用沿号,注意不要重复。

使用自动分配功能,可以将未使用的沿号自动分配,十分方便。

 异或运算:SUB59/EOR(XOR)

对指定的2个数据进行异或运算(XOR)。

ACT

SUB59

EOR

0 0

格式指定

被运算数据地址

运算数据(常数/地址)

运算结果输出地址

【控制条件】

ACT =1 : 执行指令。

【控制参数】

格式指定

□ =0 : 运算数据为常数

=1 : 运算数据为地址指定

: 指令运算数据字节长度(1,2,4) △

被运算输入数据

: 由此地址开始并且数据长度和格式指定中一致的数据作为输入数

据,是被异或的数据。

运算数据 : 由地址或者参数直接给出。

运算结果输出地址

: 用来存储异或操作后结果的地址。数据长度在格式指定中给出。

- 188 -

PMC功能

 逻辑乘:SUB60/AND

将指定的的2种数据进行逻辑和AND操作,输出。

ACT

SUB60

AND

0 0

【控制条件】

ACT =1 : 执行指令。

格式指定

被运算数据地址

运算数据(常数/地址)

运算结果输出地址

【控制参数】

格式指定

□ =0 : 运算数据为常数

=1 : 运算数据为地址指定

: 指令运算数据字节长度(1,2,4) △

被运算输入数据

: 由此地址开始并且数据长度和格式指定一致的数据作为输入数

据,是被逻辑乘的数据。

运算数据 : 由地址或者参数直接给出。

运算结果输出地址

: 用来存储逻辑乘操作后结果的地址。数据长度在格式指定中给出。

 逻辑或:SUB61/OR

将指定的的2种数据进行OR操作,输出。

ACT

SUB61

OR

0 0

格式指定

被运算数据地址

运算数据(常数/地址)

运算结果输出地址

- 189 -

PMC功能

【控制条件】

ACT =1 : 执行指令。

【控制参数】

格式指定

□ =0 : 运算数据为常数

=1 : 运算数据为地址指定

: 指令运算数据字节长度(1,2,4) △

被运算输入数据

: 由此地址开始并且数据长度和格式指定一致的数据作为输入数

据,是被逻辑或的数据。

运算数据 : 由地址或者参数直接给出。

运算结果输出地址

:用来存储逻辑或操作后结果的地址。数据长度在格式指定中给出。

 逻辑非:SUB62/NOT

将指定地址的数据进行NOT运算,输出到运算结果输出地址。

ACT

SUB62

NOT

0 0 0

格式指定

被运算数据地址

运算结果输出地址

【控制条件】

ACT =1 : 执行指令。

【控制参数】

格式指定 : 指令运算数据字节长度(1,2,4)

被运算数据地址

: 被逐位取反的输入数据。

运算结果输出地址

: 用来存储逻辑非操作后结果的地址。数据长度在格式指定中给出。

- 190 -

PMC功能

 奇偶校验:SUB11/PARI

对1个字节的指定数据进行奇偶校验,检测到不正常时输出错误报警。

O.E

RST

ACT

SUB11

PARI

W1(错误输出)

校验数据地址

【使用范例】

【输出】

W1

【控制参数】

校验数据地址

: 指定进行奇偶校验的数据的存储地址。

【控制条件】

OE

=0 : 偶校验

=1 : 奇校验

RST

ACT

=1 : 发生奇偶校验错误时,若RST=1,则输出W1=0

=1 : 执行奇偶校验命令。

: 在执行指令之后如果结果不正常,输出W1为1。

·X0.0接通时,该功能模块起效,且为奇效验。

·假设X10为00111010,由于1的数量为4个(偶数个),输出R0.0为1。

·假设X10为00111000,由于1的数量为3个(奇数个),输出R0.0为0。

- 191 -

PMC功能

 寄存器移位:SUB33/SFT

该指令可使2个字节长的数据左移或者右移1位。当数据“1”在最左方(第15位)时

如果执行左移指令,或者数据“1”在最右方(第0位)执行右移指令时,输出W1为1。

DIR

CONTRST

ACT

SUB33

SFT

移位数据地址

W1

【控制条件】

DIR

=0 : 左移

=1 : 右移

CONT =0 : 向指令的方向偏移1位,每位的状态都被相邻位取代。

=1 : 向指令的方向偏移1位,保留原本状态是1的位状态。

=1 : 复位输出数据W1=0。

=1 : 执行移位指令。

RST

ACT

【控制参数】

移位数据地址

: 指定连续2个字节移位数据的首地址。

【输出】

W1

=0 : 移位操作后,没有“1”状态移出

=1 : 移位操作后,有“1”状态移出

- 192 -

PMC功能

代码变换命令

 代码变换:SUB7/COD

在该命令的内置变换表中设置数值,表号(0~99)用2位BCD码指定,数据值写入变

换数据输出地址。所用数据均为BCD码表示。

BYT

RST

ACT

SUB7

COD

W1(错误输出)

变换数据数(0~99)

变换数据输入地址

变换数据输出地址

【控制条件】

BYT

=0 : 指定变换表中数据位BCD两位

=1 : 指定变换表中数据位BCD四位

=1 : 复位输出W1=0

=1 : 执行COD指令

RST

ACT

【控制参数】

变化数据数 : 指定变换的数据容量,范围为0~99。

变换数据输入地址

: 存储变换表数据,需要指定为1字节(2位BCD码)数据。

变换数据输出地址

: 变换完成之后,存储由数据表输出的数据。

【输出】

W1 : 执行COD指令时,如果转换输入地址出现错误,输出为1。

【使用范例】

如范例中所示:

当R100=0时,R200=10,

当R100=1时,R200=3,依次类推。

- 193 -

PMC功能

 二进制代码转换:SUB27/CODB

在该命令的内置变换表中设置数值,表号(0~255)用二进制数据指定。

数据值写入变换数据输出地址。所用数据均为二进制码表示。

RST

SUB27

CODB

W1(错误输出)

格式指定

变换数据数(0~256)

变换数据输入地址

变换数据输出地址

ACT

【控制条件】

RST

ACT

=1 : 复位输出W1=0

=1 : 执行COD指令。

【控制参数】

格式指定 : 指定变换数据长度(1,2,4字节)

变化数据数 : 指定变换的数据容量,范围为0~256。

变换数据输入地址

: 变换表的数据可以根据指定表号取出,存储变换表表号的地址称

为变换数据输入地址,需要指定为1字节数据。

变换数据输出地址

: 变换完成之后,存储由数据表输出的数据。

【输出】

W1 : 执行CODB指令时,如果转换输入地址出现错误,输出为1。

- 194 -

PMC功能

 数据转换:SUB14/DCNV

1或者2个字节的二进制数据和BCD数据间的互相转换。

BYT

CNV

RST

ACT

SUB14

DCNV

W1(错误输出)

输入数据地址

转换数据输出地址

【控制条件】

BYT

=0 : 处理数据长度为1个字节

=1 : 处理数据长度为2个字节

=0 : 二进制代码转换为BCD代码

=1 : BCD代码转换为二进制代码

=1 : 复位错误输出线圈W1,即此时W1=0

=1 : 执行DNCV指令

CNV

RST

ACT

【控制参数】

输入数据地址

: 指定待转换数据的存储地址

转换数据输出地址

: 指定转换完成之后数据的输出地址

【输出】

W1

: 当被转换数据应为BCD码数据但实际是二进制数据时,或者二进

制转换为BCD码数据转换数据超过预先指定的数据大小时,输出

W1=1。

- 195 -

PMC功能

 扩展数据变换:SUB31/DCNVB

1~4字节长度的二进制代码和BCD代码之间的相互转换。

SIN

CNV

RST

ACT

【控制条件】

SIN

W1(错误输出)

数据长度

输入数据地址

转换数据输出地址

SUB31

DCNVB

=0 : 输入的BCD代码数据符号为正

=1 : 输入的BCD代码数据符号为负

=0 : 二进制代码转换为BCD代码

=1 : BCD代码转换为二进制代码

=1 : 复位错误输出线圈W1,即此时W1=0

=1 : 执行DNCV指令

CNV

RST

ACT

【控制参数】

数据长度 : 指定待转换数据的数据长度(1,2,4字节)

输入数据地址: 指定待转换数据的存储地址

转换数据输出地址

: 指定转换完成之后数据的输出地址

【输出】

W1 : 转换结果出错时输出

【运算结果】

确认二进制代码和BCD码转换时的符号和溢出状况。

#7

#6

#5

V

#4

#3

#2

#1

N

#0

R9000

V =1:溢出

N =0:符号为正

=1:符号为负

- 196 -

PMC功能

 BCD译码:SUB4/DEC

两位BCD代码和给定定数据进行判定,一致时输出W1为1,不一致时输出为0。

ACT SUB4

DEC

n n d d

W1(结果)

BCD译码数据地址(1字节长)

译码指令

【控制条件】

ACT

=0 : 译码输出结果W1为0

=1 : 执行译码指令

【控制参数】

BCD译码数据地址

: 指定1字节长BCD译码数据的存储地址

: 指定译码相关的数据和译码位数

nndd nn指定译码值

dd译码位数指定 01 = 只译低位,高位为0

10 = 只译高位,低位为0

11 = 高低位均译

译码指令

【输出】

W1

: ACT为1时,当指定的BCD译码数据地址中的数据和译码值相

同时,输出W1为1,不相同时输出为0。

 ACT为0时,输出W1为0

【使用范例】

- 197 -

PMC功能

范例中为对M代码进行译码操作,当NC执行M辅助功能指令时,F7.0为1时,

该指令生效。

·该指令同时只能对一个给定数据进行译码

·范例为对M3进行译码的梯形图

·当执行M3指令时,此时译码输出F10中为3,输出R0.0=1

·DEC功能代码中的数据位BCD码,所以如果对M10及其以上的M代码进

行译码时,由于F10为二进制形式,所以必须先进行数据转换,将F10转

换为BCD码格式,再进行译码操作。

 二进制译码:SUB25/DECB

1~4字节的二进制代码数据译码,所指令的连续8位数据之一与待译码数据相同时,

输出对应位为1。

ACT

SUB25 0 n n d

DECB

【控制参数】

格式指定

: 指定1~4字节长二进制译码数据的存储首地址

0nnd

d 代表待译码数据的字节长度(1,2,4字节)

【控制条件】

ACT

=0 : 将所有输出复位为0

=1 : 执行译码指令

格式指令

译码数据地址

译码指定

转换数据输出地址

nn 代表组数(指定为0时,视为1组8个)

译码数据地址

: 指定1~4字节二进制译码数据的首地址

: 给出要译码的连续8个数字的第一个 译码指定

译码数据输出地址

: 指定译码数据的输出地址

每组使用1个字节

- 198 -

PMC功能

#7

输出地址+0

+1

+2

·

·

+7

+15

+23

·

·

#6

+6

+14

+22

·

·

#5

+5

+13

+21

·

·

#4

+4

+12

+20

·

·

#3

+3

+11

+19

·

·

#2

+2

+10

+18

·

·

#1

+1

+9

+17

·

·

#0

+0

+8

+16

·

·

+98

+791 +790 +789 +788 +787 +786 +785 +784

【使用范例】

范例为对M代码进行译码操作,当系统收到M辅助功能指令时,F7.0为1时,该

指令生效。

·F10为系统M代码输出地址

·该译码指令对从M3~M10的连续8个M代码进行译码

·译码输出地址位为R10,且R10同时仅有一位为1

·比如当指令M3时,R10.0=1,指令M4时,R10.1=1,对应关系如下:

R10

#7

M10

#6

M9

#5

M8

#4

M7

#3

M6

#2

M5

#1

M4

#0

M3

- 199 -

2024年2月19日发(作者:揭启颜)

PMC功能

PMC功能

讲述PMC功能和PMC程序编写的基本事项

这里讲述以下内容:

● PMC的基本功能

● 功能指令一览

 种类

编程语言

级数

第一级执行周期

基本指令处理速度

I/O Link最大信号点数

0i-D

0i-Mate D

T地址范围

C地址范围

K地址范围

D地址范围

A地址范围

符号

基本规格

扩展规格

基本规格

扩展规格

 “○B”为软件包B包的标准配置。

 I/O Link第二通道功能,为选项功能,需要指定。

 使用符号和指令扩展规格时,需要使用FANUC LADDER-III软件。

梯形图

3

4/8msec

25nsec/step

2048/2048

T0~T499,T9000~T9499

C0~C399,C5000~C5199

K0~K99,K900~K999

D0~D9999

A0~A249,A9000~A9249

3

1μsec/step

1024/1024

○B

T0~T79,T9000~T9079

C0~C79,C5000~C5039

K0~K19,K900~K999

D0~D2999

A0~A249,A9000~A9249

16字符

40字符

30字符

255字符

指令

- 151 -

PMC功能

 系统信号

地址

地址

梯形图

运行状态

扫描周期

梯形图运行开始信号

R9015.0

梯形图停止信号

R9015.1

梯形图运行状态

R9091.2

R9015

#7

#6

#5

#4

#3

#2

#1 #0

R9091

FL

FL2

RUN

ON

OFF

#7

#6

FL

#5

FL2

#4

#3

#2

RUN

#1

ON

#0

OFF

:1秒周期信号

:0.2秒周期信号

:PMC运行

:常1信号

:常0信号

(ON/OFF 比1:1)

(ON/OFF 比1:1)

STPR RUNR

STPR :梯形图停止信号

RUNR :梯形图运行信号

- 152 -

PMC功能

PMC的数据形式分为二进制形式、BCD码形式和位型三种。

 CNC和PMC间的接口信号为二进制形式。一般来说,PMC数据也采用二进制形式。

 带符号的二进制形式(Binary)

 可进行1字节,2字节,4字节的二进制处理

 可使用的数值范围如下

1字节

2字节

4字节

 在顺序程序中指令数据的长度和初始地址

 在诊断画面(PMCDGN)确认2字节,4字节的地址数据时,地址号大的为高位地址。

 由R100指定4字节长的数据时地址和位的对应关系如下:

-128~+127

-32768~+32767

-2147483648~+2147483647

采用2的补码表示

地址

地址

地址

地址

 用2字节表示-100和+100时

+0

2

+1

+2

+3

100

01100100

00000000

00000000

00000000

-100

10011100

11111111

11111111

11111111

最高位数

为1时为负数

R100

R101

R102

R103

#7

27

215

223

±

#6

26

214

222

230

#5

25

213

221

229

#4

24

212

220

228

#3

23

211

219

227

#2

22

210

218

226

#1

21

29

217

225

#0

20

28

216

224

- 153 -

PMC功能

 BCD形式:Binary Coded Decimal

 在十进制数的二-十进制中,用4位的二进制码表示十进数的各位。

 可处理2位或4位的十进制数,符号用其他信号进行处理。

+0

#7 #6 #5 #4 #3 #2 #1 #0

10位

80 40 20 10 8 4

个位

2 1

+1

1000位

8000 4000 2000 1000 800

100位

400 200 100

 例:63和1234的BCD码表示。

 BCD码和二进制数的变换通过DCNV,DCNVB指令来进行。

63

+0

+1

01100011

1234

00110100

00010010

 位型:Bit

 处理1位信号和数据时,在地址之后指令小数点的位号

地址

 例:X0001.2(地址X0001的第二位)

 可以以位为单位来读写数据表的部分数据部分。

xxxxx

#7

#6

#5

V

#4

#3

#2

#1

#0

- 154 -

PMC功能

 格雷码

 0~15的4位二进制表示如下。如果旋钮开关的触点信号使用二进制代码来表示,在切换触点时,存在有2位数据同时变化的情况,造成变化的不连续性。

 如下所示,如果采用4位格雷码表示,在旋钮开关触点进行切换时,相邻的触点只有一位数据进行变化,不存在不连续的现象。

 把由旋钮开关输入的格雷码信号转换为二进制数据,可成为正常处理用数值,这样程序更容易书写。

| g3(Xxxx.x) b3(Rxxx.x)|

*----||-------------------------------------------------------------()---*

| |

| b3 g2 b2 |

*----||-------|/|--*------------------------------------------------()---*

| |

| b3 g2 | |

*----|/|------||---* |

| |

| b2 g1 b1 |

*----||-------|/|--*------------------------------------------------()---*

| |

| b2 g1 | |

*----|/|------||---* |

| |

| b1 g0 b0 |

*----||-------|/|--*------------------------------------------------()---*

| |

| b1 g0 | |

*----|/|------||---* |

| |

0

0

0

0

0

1

0

0

0

1

2

0

0

1

0

3

0

0

1

1

4

0

1

0

0

5

0

1

0

1

6

0

1

1

0

7

0

1

1

1

8

1

0

0

0

9

1

0

0

1

10

1

0

1

0

11

1

0

1

1

12 13

1

1

0

0

1

1

0

1

14 15

1

1

1

0

1

1

1

1

0

0

0

0

0

1

0

0

0

1

2

0

0

1

1

3

0

0

1

0

4

0

1

1

0

5

0

1

1

1

6

0

1

0

1

7

0

1

0

0

8

1

1

0

0

9

1

1

0

1

10

1

1

1

1

11

1

1

1

0

12 13 14 15

1

0

1

0

1

0

1

1

1

0

0

1

1

0

0

0

 格雷码和二进制按照上述规律进行变换,使用格雷码旋钮开关,可以提高安全性。

- 155 -

PMC功能

 第1级

 第1级程序中,如果没有输入信号,只需要编写END1功能指令。

程序的开头到END1命令之间为第一级程序,系统每4/8msec执行一次。

主要是处理急停、跳转、超程等信号。

 第2级

 sequence是“顺序”的意思。

 在第二级程序上因为有同步输入信号存储器,所以输入脉冲信号时,其信号宽带应大于扫描

信号时间。

扫描时间显示在PMC诊断画面的标题栏上。

END1命令之后,END2命令之前的顺序程序为第二级程序。

第二级程序通常包括机床操作面板、ATC(自动换刀装置)程序等。

 第3级

 在编写顺序程序时可选择是否使用第3级程序,本教材不使用第3级。

END2命令和END3命令之间的程序为第三级程序。

第三级程序主要处理低速响应的信号。

- 156 -

PMC功能

 子程序

 将重复执行处理和模块化的程序作为子程序登录。

 子程序功能指令登录在END3命令和END命令之间。

子程序顺序程序,从SP命令开始到SPE命令结束,作为1组。可以登录5000或者512个子程序。

 不使用第3级时,子程序在END和END2之间进行编辑。

 顺序程序为附加选择功能,可选择将子程序用梯形图语言或顺序程序任意一种进行记述。

 在第2级程序中可使用条件调用命令CALL或无条件调用命令CALLU来调用子程序。

 第1级程序中不能调用子程序。

第一级

 急停

 超程

 跳转

END1

第二级

 运行转备

 运行方式切换

 手动进给

 手轮进给

 自动运行

 MST功能

 CALL命令

 信息显示

SP P10

END2

子程序

SP

SPE

END

CALL

CALLU

命令

SPE

- 157 -

PMC功能

定时器

TMR

TMRB

TMRC

TMRBF

计数器

CTR

CTRB

CTRC

数据传送

MOVB

MOVW

MOVD

MOVN

MOVE

MOVOR

XMOVB

XMOV

数值比较

COMPB

COMP

COIN

EQB

EQW

EQD

NEB

NEW

NED

GTB

GTW

GTD

LTB

LTW

LTD

SUB32

SUB15

SUB16

SUB200

SUB201

SUB202

SUB203

SUB204

SUB205

SUB206

SUB207

SUB208

SUB209

SUB210

SUB211

- 158 -

二进制数据比较

BCD数据比较

BCD一致性判断

1字节长二进制比较(=)

2字节长二进制比较(=)

4字节长二进制比较(=)

1字节长二进制比较(≠)

2字节长二进制比较(≠)

4字节长二进制比较(≠)

1字节长二进制比较(>)

2字节长二进制比较(>)

4字节长二进制比较(>)

1字节长二进制比较(<)

2字节长二进制比较(<)

4字节长二进制比较(<)

SUB43

SUB44

SUB47

SUB45

SUB8

SUB28

SUB35

SUB18

1字节数据传送

2字节数据传送

4字节数据传送

任意字节数据传送

逻辑乘后数据传送

逻辑加后数据传送

二进制变址修改数据传送

BCD变址修改数据传送

SUB5

SUB56

SUB55

计数器

追加计数器

追加计数器

SUB3

SUB24

SUB54

SUB77

延时定时器(上升沿触发)

固定延时定时器(上升沿触发)

延时定时器(上升沿触发)

固定延时定时器(下降沿触发)

PMC功能

GEB

GEW

GED

LEB

LEW

LED

RNGB

RNGW

RNGD

数据处理

DSCHB

DSCH

DIFU

DIFD

EOR

AND

OR

NOT

PARI

SFT

COD

CODB

DCNV

DCNVB

DEC

DECB

演算命令

ADDB

SUBB

MULB

DIVB

ADD

SUB

MUL

DIV

NUMEB

SUB212

SUB213

SUB214

SUB215

SUB216

SUB217

SUB218

SUB219

SUB220

SUB34

SUB17

SUB57

SUB58

SUB59

SUB60

SUB61

SUB62

SUB11

SUB33

SUB7

SUB27

SUB14

SUB31

SUB4

SUB25

SUB36

SUB37

SUB38

SUB39

SUB19

SUB20

SUB21

SUB22

SUB40

1字节长二进制比较(≥)

2字节长二进制比较(≥)

4字节长二进制比较(≥)

1字节长二进制比较(≤)

2字节长二进制比较(≤)

4字节长二进制比较(≤)

1字节长二进制比较(范围)

2字节长二进制比较(范围)

4字节长二进制比较(范围)

二进制数据检索

BCD数据检索

上升沿输出

下降沿输出

异或

逻辑乘

逻辑和

逻辑非

奇偶校验

移位寄存器

BCD码变换

二进制码变换

数据转换

扩展数据转换

BCD译码

二进制译码

二进制加法运算

二进制减法运算

二进制乘法运算

二进制除法运算

BCD加法运算

BCD减法运算

BCD乘法运算

BCD除法运算

二进制常数赋值

- 159 -

PMC功能

NUME

CNC相关

DISPB

EXIN

WINDR

WINDW

AXCTL

PSGNL

PSGN2

程序控制

COM

COME

JMP

JMPE

JMPB

JMPC

LBL

CALL

CALLU

CS

CM

CE

SP

SPE

END1

END2

END3

END

NOP

回转控制

ROT

ROTB

SUB23

SUB41

SUB42

SUB51

SUB52

SUB53

SUB50

SUB63

SUB9

SUB29

SUB10

SUB30

SUB68

SUB73

SUB69

SUB65

SUB66

SUB74

SUB75

SUB76

SUB71

SUB72

SUB1

SUB2

SUB48

SUB64

SUB

SUB6

SUB26

BCD常数赋值

信息显示

外部数据输入

CNC数据读取

CNC数据写入

PMC轴控制指令

位置信号

位置信号

公共线控制开始

公共线控制结束

跳转

跳转结束

标号跳转1

标号跳转2

标号

有条件子程序调用

无条件子程序调用

选择调用开始

选择子程序调用

选择调用结束

子程序开始

子程序结束

第1级程序结束

第2级程序结束

第3级程序结束

程序结束

无操作

BCD回转控制

二进制回转控制

 上述功能指令仅为0i-D系统的部分常用功能指令,且均为0i-D系统和0i-Mate D系统的标

准功能,其余的功能指令详见相关说明书。

- 160 -

PMC功能

定时器命令

 延时定时器(上升沿触发):SUB3/TMR

ACT为1并经过设定的时间后,输出W1为1。时间在PMC参数画面进行设定,所以

顺序程序编写完成后,用户也可以变更设定时间。ACT为0后,W1马上变为0。

ACT

SUB3

TMR

W1

定时器号

ACT

设定时间

W1

【控制条件】

ACT

=0 : 定时器输出W1为0

=1 : 启动定时器

【定时器号】(初始状态)

1~8 : 以48ms为单位,最大设定时间1572.8秒

: 以8ms为单位,最大设定时间262.1秒 9以上

 在定时器命令中指定定时器号。定时器设定时间在PMC维修画面的定时器画面进行设定。

所以顺序程序在编写完成之后,也可以方便的变更时间。

 定时器的个数根据PMC不同而不同。

定时器初始设定时间

48ms定时器

8ms定时器

0i-D

PMC

1到8

9到250

0i-D/0i Mate-D

PMC/L

1到8

9到40

 使用定时器号的自动分配功能时,可将没有使用的定时器号自动分配,非常方便。

 上述的定时器设定时间为原始值。软件操作时,可以根据下表的单位进行转换。

- 161 -

PMC功能

1msec

8msec

10msec

48msec

100msec

1秒

1分

1msec~32.7秒

8msec~262.1秒

10msec~327.7秒

48msec~1572.8秒

100msec~54.6分

1秒~546分

1分~546小时

定时器9以上初始值

定时器1~8初始值

 定时器的定时器精度,对应存储在T9000~T9499中,设值含义如下:

0

1

2

3

4

5

缺省(8msec/48msec)

1msec

10msec

100msec

1秒

1分

【输出】

W1 : ACT接通后,经过定时器设定的时间后,输出即接通为1。

【使用范例】

X0.0接通后再经过100ms,R0.0就接通为1。

 “精度”由T9000~T9499来决定,每个计数器占两个字节,同时也对应T9000~T9499的

相应两字节为“精度”设定地址,依次类推。对于1号计数器,对应为T9000~T9001设定

精度,如果T9000~T9001为0,则精度按缺省处理,为48ms。范例中T9000=3,即精度

等级为100,在此条件下,“设定时间”必须是100的倍数。

- 162 -

PMC功能

 固定延时定时器(上升沿触发):SUB24/TMRB

ACT为1后经过设定的时间,接通W1为1。在命令控制参数中指定设定时间。

主要用于程序编写完成之后,用户无需变更设定时间的情况。

ACT为0时,输出W1为0。

ACT

SUB24

TMRB

W1

定时器号

设定时间

ACT

设定时间

W1

【控制条件】

ACT

=0 : 定时器输出W1为0

=1 : 启动定时器

【控制参数】

定时器号

设定时间

: 1~500

: 以毫秒为单位进行设定(最大32,767,000)

 定时器的个数根据PMC类型不同而不同。

定时器初始设定数据

定时器号

设定时间

0i-D

PMC

1到500

0i-D/0i Mate-D

PMC/L

1到100

1到32,760,000(毫秒) 1到32,760,000(毫秒)

 固定延时定时器(上升沿触发)TMRB和固定延时定时器(下降沿触发)TMRBF共用定时

器号,注意不要重复。建议使用自动分配功能,更加方便。

 固定延时定时器TMRB和延时定时器TMR不共用定时器号,故不产生冲突。

【输出】

W1 : ACT接通后,经过定时器设定的时间后,输出即接通为1。

- 163 -

PMC功能

【使用范例】

·X0.0接通3秒之后,R0.0输出为1。

·在任意时间一旦X0.0为0,R0.0马上为0。

 延时定时器(上升沿触发):SUB54/TMRC

定时器精度范围扩展为以分为单位,可作为长时间定时器使用。

在控制参数中可以自由的指定定时器设定时间地址,所以没有定时器个数限制。

ACT

SUB54

TMRC

W1

定时器精度

定时器设定时间地址

定时器寄存器地址

ACT

设定时间

W1

【控制条件】

ACT

=0 : 定时器输出W1为0

=1 : 启动定时器

【控制参数】

定时器精度 :

种类

1msec

8msec

10msec

48msec

100msec

1秒

10秒

1分

定时器精度

5

0

6

1

7

2

3

4

- 164 -

设定时间范围

1msec~32.7秒

8msec~262.1秒

10msec~327.7秒

48msec~1572.8秒

100msec~54.6分

1秒~546分

10秒~91小时

1分~546小时

PMC功能

【定时器设定时间地址】

: 指定用于存储定时器设定值2字节长地址的首地址。

(通常使用D地址)

【定时器寄存器地址】

: 指定使用该命令时的4字节长地址的首地址。(通常使用R地址)

【输出】

W1 : ACT为1经过定时器设定的时间后,输出即接通为1。

【使用范例】

·本例定时器精度为8ms

·假设D100中数据为100,则定时器定时时间为100*8=800ms

·即X0.0接通经过800ms之后,R0.0接通为1.

·同样,在任意时间如果X0.0为0,则输出R0.0立即为0

·R100为系统作业区域

- 165 -

PMC功能

 固定延时定时器(下降沿触发):SUB77/TMRBF

固定延时定时器设定的时间是固定的,因此定时器的设定时间和顺序程序一同写入到

F-ROM中。

ACT

SUB77

TMRBF

W1

定时器号

设定时间

设定时间

ACT

W1

【控制条件】

ACT

=0 : 定时器输出W1为0

=1 : 启动定时器

【控制参数】

定时器号

设定时间

: 1~500

: 以msec为单位进行设定(最大32,767,000)

 定时器的个数根据PMC类型不同而不同

定时器初始设定数据

定时器号

设定时间

0i-D

PMC

1到500

0i-D/0i Mate-D

PMC/L

1到100

1到32,760,000(毫秒) 1到32,760,000(毫秒)

 固定延时定时器(上升沿触发)TMRB和固定延时定时器(下降沿触发)TMRBF共用定时

器号,注意不要重复。建议使用自动分配功能,更加方便。

- 166 -

【输出】

W1

: ACT为1后输出W1马上变为1.

ACT为0后经过设定时间,输出W1才为0。

PMC功能

计数器命令

 计数器:SUB5/CTR

 PMC参数画面的计数器数值为十进制表示,当内部数据形式为BCD和二进制形式时,

可通过系统参数画面进行选择。

是进行加减计数的计数器。作为预置型计数器时,首先设定计数器的计数上限,当计数

值和设定值相同的时候,输出信号。此外还可作为环形计数器,重复计数。

CN0

UPDOWN

RST

ACT

W1

SUB5

CTR

计数器号

【控制条件】

CN0

=0 : 计数器的初始值为0

=1 : 计数器的初始值为1

UPDOWN

=0 : 为加计数器

=1 : 为减计数器

=1 : 将计数器复位为初始值 RST

 加计数器时,复位为CN0设定的初始值;减计数器时,复位为计数器预置值。

ACT =1 : 收到信号的上升沿时进行1次计数,并更新计数值。

【控制参数】

计数器号

: 指定计数器号。

计数器的最大值和当前值均在PMC参数画面进行显示和设定。

- 167 -

PMC功能

 计数器号的最大值,根据PMC类型不同而不同。

计数器号

 计数器的数据形式为二进制时,计数范围为0~32767。为BCD形式时,计数范围为0~9999。

 计数器号使用自动分配功能时,将未使用的计数器号进行分配,十分方便。

0i-D

PMC

1到100

0i-D/0i Mate-D

PMC/L

1到20

【使用范例】

【输出】

W1

=1 : 为计数器输出信号。

加计数到最大值,减计数到最小值时输出为1。

 每个计数器占据4个字节,前两个字节为“设定值”,后两个字节为“现在值”。

如上例中,1号计数器地址为C0~C3,其中设定值地址为C0~C1,现在值地址为C2~C3。

·从1到20进行计数的计数器(设定值即为预置值)

·在X0.0的上升沿,“现在值”加1,当“现在值”到20时,R0.0输出为1

·当F1.1为1时,“现在值”复位为1

- 168 -

PMC功能

 固定计数器:SUB56/CTRB

在控制参数中指定预置值的计数器。计数值为二进制形式。

CN0

UPDOWN

RST

ACT

SUB56

CTRB

W1

计数器号(1~100)

预置值

【控制条件】

CN0

=1 : 计数器的初始值为1

=0 : 计数器的初始值为0

UPDOWN

=0 : 为加计数器

=1 : 为减计数器

=1 : 将计数器复位为初始值 RST

 加计数器时,复位为CN0设定的初始值;减计数器时,复位为计数器预置值。

【控制参数】

计数器号

计数器号

ACT =1 : 收到信号的上升沿时进行1次计数,并更新计数值。

0i-D

PMC

1到100

0i-D/0i Mate-D

PMC/L

1到20

预置值 :在0~32767内进行预置值指定。

 CTRB命令的计数值,在地址C5000以内,均占用2个字节。

【输出】

W1

=1 : 为计数器结束输出。

加计数到最大值,减计数到最小值时输出为1。

- 169 -

PMC功能

 计数器:SUB55/CTRC

为标准计数器的扩展形式。可利用数据表进行设置的计数器,计数值为二进制形式。

CN0

UPDOWN

RST

ACT

W1

SUB55

CTRC

计数器预置值地址

计数器寄存器地址

【控制条件】

CN0

=1 : 计数器的初始值为1

=0 : 计数器的初始值为0

UPDOWN

=0 : 为加计数器

=1 : 为减计数器

=1 : 将计数器复位为初始值 RST

 加计数器时,复位为CN0设定的初始值;减计数器时,复位为计数器预置值。

ACT =1 : 为1时进行计数。

【控制参数】

计数器预置值地址

: 指定2字节的存储器的首地址。(通常指令为D地址)

计数器寄存器地址

: 指定连续的4字节存储器的起始地址。

电源关断时仍需保存计数值,使用D地址指定;

无需保存时,使用R地址。

 使用R地址指令计数器寄存器地址时,当电源接通时,计数器的累计值为0

- 170 -

【输出】

W1 =1 : 为计数器输出。加计数到最大值,减计数到最小值时输出为1。

PMC功能

数据传送命令

 1字节长数据传送:SUB43/MOVB

把1字节的数据从被指令的传出位置地址传送到指定的传入位置地址。

ACT

SUB43

MOVB

传出位置地址

传入位置地址

【控制条件】

ACT =1 : 执行命令

【控制参数】

传出位置地址

: 1字节数据的存储位置地址

传入位置地址

: 1字节数据的传入位置地址

【使用范例】

当X0.0为1时,将D100的数据传送给R200

 2字节长数据传送:SUB44/MOVW

把2字节的数据从被指令的传出位置地址传送到指定的传入位置地址。

- 171 -

PMC功能

ACT

SUB44

MOVW

传出位置地址

传入位置地址

【控制条件】

ACT =1 : 执行命令

【控制参数】

传出位置地址

: 2字节数据的存储位置地址

传入位置地址

: 2字节数据的传入位置地址

【使用范例】

当X0.0为1时,将D100~D101的数据传送给R200~R201

 4字节长数据传送:SUB47/MOVD

把4字节长的数据从被指令的传出位置地址传送到指定的传入位置地址。

ACT

SUB47

MOVD

传出位置地址

传入位置地址

【控制条件】

ACT =1 : 执行命令

- 172 -

PMC功能

【控制参数】

传出位置地址

: 4字节数据的存储位置地址

传入位置地址

: 4字节数据的传入位置地址

 任意字节长数据传送:SUB45/MOVN

传送指定长度(1~200)的数据从指令源地址到目的地址。

ACT SUB45

MOVN

传送字节数(1~200)

传送源地址

传送目的地址

【控制条件】

ACT =1 : 执行命令

【控制参数】

传送字节数 : 指令需要传送的字节长度(1~200)

传送源地址 : 传送字节数据的存储位置地址。

传送目的地址

: 传送字节数据的传入位置地址。

【使用范例】

当X0.0为1时,将D100~D104的数据传送给R100~R104

- 173 -

PMC功能

 逻辑乘后数据传送:SUB8/MOVE

将逻辑乘数据和输入数据进行逻辑乘(AND)运算,并将结果输出至指定地址。

还可以用来从指定地址中排除不需要的位数。

ACT

SUB8

MOVE

逻辑乘数据的高4位

逻辑乘数据的低4位

输入数据地址

输出地址

【控制条件】

ACT =1 : 执行命令

【控制参数】

逻辑乘数据 : 逻辑乘

输入数据地址

: 进行逻辑乘操作的数据

: 指定输入数据进行逻辑乘运算之后的结果输出地址 输出地址

【使用范例】

X10 :0 1 0 0 1 0 1 0

逻辑乘数据 :0 0 0 1 1 1 1 1

R100 :0 0 0 0 1 0 1 0

- 174 -

PMC功能

 逻辑和后数据传送:SUB28/MOVOR

将指定的1个字节的输入数据和逻辑和数据根据控制参数进行逻辑和(OR)运算,

并将结果输出至指定地址。

ACT

SUB28

MOVOR

逻辑和数据的高4位

逻辑和数据的低4位

输入数据地址

输出地址

【控制条件】

ACT =1 : 执行命令

【控制参数】

逻辑和数据 : 指定进行逻辑和运算的常数

输入数据地址

: 指定输入数据地址

: 指定输入数据进行逻辑和运算之后的结果输出地址 输出地址

【使用范例】

X10

R200

R100

:0 1 0 0 1 0 1 0

:0 0 0 1 1 1 1 1

:0 1 0 1 1 1 1 1

- 175 -

PMC功能

 二进制变址数据传送:SUB35/XMOVB

对指定地址的数据表的数据进行读取或写入操作。数据形式为二进制。此外,数据表的

数据个数使用地址进行指定,程序完成之后,数据个数可进行变更。控制参数的设定,

分为基本规格和扩展规格2种。使用扩展规格时,1个命令可一次操作多个数据。

RW

RST

ACT

SUB35 0 n n d

XMOVB

W1(错误输出)

格式指令

数据表容量存储地址

数据表首地址

输入/输出数据存储地址

表内号存储地址

【控制条件】

RW

=0 : 从数据表中读出数据

=1 : 向数据表中读入数据

=1 : 复位并输出W1=0

=1 : 执行指令

RST

ACT

【控制参数】

格式指定n n : 索引表内数据数(00~99)

d

设定00或01,默认为标准设置一致

设定02及以上,作为扩展规格,读取nn长度的数据到数据表中。

: 指定数据长度(1,2,4)

数据表容量存储地址

: 用于存储数据表的数据数目,所占用的字节数需符合格式指定中

的设定,数据表的数据数有效范围由d指定的数据长度决定。

数据表首地址

: 设定数据表的表头地址

输入/输出数据存储地址

: 输入输出时,设定输入数据或读出结果的存放地址。

表内号存储地址

: 用于存储被读取或写入的数据的表内号。

【输出】

W1 : 表内号超过“数据表容量存储地址”中的值时,输出W1=1。

- 176 -

PMC功能

【使用范例】

·该功能模块使用了扩展规格,每次从数据表中读取出2字节长度的数据

·该数据表式以D150为表头地址的数据表(即D150的表内号为0,D151表内号

为1,D152表内号为2,以下逐一递增)

·R300指令数据表的长度,如果R300中数据为5,则数据表范围从D150~D159

·R200中指定要从数据表中读取的连续2个字节长度的第一个数据的表内号

·R100为读取的连续两个字节长度数据的存储地址的首地址,即存储地址为

R100~R101

·如果R300中数据为10,R200中数据为2,按图例,当X0.0为1时,则读取

D152~D153中存储的数据至R100~R101中,也即R100~R101数据为10

- 177 -

PMC功能

 变址数据传送:SUB18/XMOV

对指定地址的数据表的数据进行读取或写入操作,适用于2或者4字节BCD数据。

BYT

RW

RST

ACT

SUB18

XMOV

W1(错误输出)

数据表容量

数据表首地址

输入/输出数据存储地址

表内号存储地址

【控制条件】

BYT

=0 : 数据表中存储的数据为BCD两位。

=1 : 数据表中存储的数据为BCD四位。

=0 : 从数据表中读取数据。

=1 : 向数据表中写入数据。

=1 : 复位,输出W1=0。

=1 : 执行命令。

RW

RST

ACT

【控制参数】

数据表容量 : 指定数据表的数据数目。

如果表头为0,表尾为n,则数据表容量设定为n+1。

数据表首地址

: 设定数据表的表头地址

输入/输出数据存储地址

: 输入输出时,设定输入数据或读出结果的存放地址。

表内号存储地址

: 用于存储被读取或写入的数据的表内号。

【输出】

W1 : 如果表内号超过编程指定的数据表容量,产生错误输出,W1=1。

- 178 -

PMC功能

数值比较命令

 二进制大小比较:SUB32/COMPB

1~4字节长的二进制数据之间的大小比较。

ACT

SUB32

COMPB

0 0

格式指定

输入数据(常数/地址)比较数据地址

【控制条件】

ACT =1 : 执行命令。

【控制参数】

输入数据格式指定

□ =0 : 输入数据为常数。

=1 : 输入数据为地址指定。

:指定数据长度(1,2,4)

: 用于比较的基准数据,输入数据的形式取决于上述的指定。

输入数据

比较数据地址

: 指定用于存放比较数据的地址。

【输出】

比较结果输出至R9000寄存器,直接进行运算结果确认。

#7

#6

#5

#4

#3

#2

#1

N

#0

Z R9000

【使用范例】

N =1:输入数据<比较数据

=0:输入数据=比较数据

假设在D100中存储的数据值为十进制数20,在R100中位十进制数25,指令如下:

- 179 -

PMC功能

当X0.0为1时,比较指令生效,由于D100小于R100,则输出R9000.1=1

 大小比较:SUB15/COMP

2位或4位BCD数据的数值比较,比较结果输出到W1。

BYT

ACT

SUB15

COMP

W1(比较结果输出)

输入数据格式指定

输入数据(常数/地址)

比较数据地址

【控制条件】

BYT

=0 : 输入和比较数据均为BCD两位数据。

=1 : 输入和比较数据均为BCD四位数据。

=1 : 执行指令。

ACT

【控制参数】

输入数据格式指定

=0 : 输入数据用常数来指定。

=1 : 输入数据用地址来指定。

: 比较用的基准数据,格式取决于上述的指定。 输入数据

比较数据地址

: 指定用于存放比较数据的地址。

【输出】

W1

=0 : 输入数据>比较数据

=1 : 输入数据≤比较数据

- 180 -

PMC功能

 一致性判断:SUB16/COIN

2位或4位BCD数据的数值比较。

BYT

ACT

SUB16

COIN

W1(比较结果输出)

输入数据格式指定

输入数据(常数/地址)

比较数据地址

【控制条件】

BYT

=0 : 输入和比较数据均为BCD两位数据。

=1 : 输入和比较数据均为BCD四位数据。

=1 : 执行指令。

ACT

【控制参数】

输入数据格式指定

=0 : 输入数据用常数来指定。

=1 : 输入数据用地址来指定。

: 比较用的基准数据,格式取决于上述的指定。 输入数据

比较数据地址

: 指定用于存放比较数据的地址。

【输出】

W1

=0 : 输入数据≠比较数据

=1 : 输入数据=比较数据

- 181 -

PMC功能

 带符号的二进制数据比较(=): SUB200/EQB

SUB201/EQW

SUB202/EQD

带符号的二进制数据比较(≠): SUB203/NEB

SUB204/NEW

SUB205/NED

带符号的二进制数据比较(>): SUB206/GTB

SUB207/GTW

SUB208/GTD

带符号的二进制数据比较(<): SUB209/LTB

SUB210/LTW

SUB211/LTD

带符号的二进制数据比较(≥): SUB212/GEB

SUB213/GEW

SUB214/GED

带符号的二进制数据比较(≤): SUB215/LEB

SUB216/LEW

SUB217/LED

- 182 -

PMC功能

1~4字节长度的二进制数据数值比较。

ACT

SUB200

EOB

W1

数据1(常数/地址)

数据2(常数/地址)

【控制条件】

ACT =1 : 执行指令。

【控制参数】

数据1

数据2

: 指定进行比较的1号数据的地址或者常数值

: 指定进行比较的2号数据的地址或者常数值

 数据1和数据2可以为常数或用地址指定,编辑梯形图程序时,输入用数字构成的字符时,

视为数值,可用地址进行输入。

【输出】

如下条件时,W1输出为1

EQB,EQW,EQD

NEB,NEW,BED

GTB,GTW,GTD

LTB,LTW,LTD

GEB,GEW,GED

LEB,LEW,LED

1= 数据1=数据2

1= 数据1≠数据2

1= 数据1>数据2

1= 数据1<数据2

1= 数据1≥数据2

1= 数据1≤数据2

- 183 -

PMC功能

 带符号的二进制数据比较(范围): SUB218/RNGB

SUB219/RNGW

SUB220/RNGD

判断1~4字节长度的二进制数据是否在指定范围内。

ACT

SUB218

RNGB

W1

数据1(常数/地址)

数据2(常数/地址)

输入数据(常数/地址)

【控制条件】

ACT =1 : 执行命令。

【控制参数】

数据1

数据2

输入数据

: 指定进行比较的1号数据的地址或者常数值。

: 指定进行比较的1号数据的地址或者常数值。

: 指定进行比较的数据的地址或者常数

 数据1和数据2可以为常数或用地址指定,编辑梯形图程序时,输入用数字构成的字符时,

视为数值,可用地址进行输入。

【输出】

W1

=1:

比较数据1≤输入数据≤比较数据2

比较数据2≤输入数据≤比较数据1

除上以外 =0:

- 184 -

PMC功能

 二进制数据检索:SUB34/DSCHB

检索指定数据表的数据,检索到后输出首地址。

和DSCH命令不同,数据值为二进制形式,数据表的数据用地址进行指定。

即使程序完成之后,也可以变更表容量。

RST

ACT

SUB34

DSCHB

W1(检索结果输出)

数据长度

数据表容量存储地址

数据表首地址

检索数据地址

检索结果输出地址

【控制条件】

RST

ACT

=1 : 检索结果W1输出为0

=1 : 执行命令。

【控制参数】

数据长度 : 指定检索数据长度(1,2,4)

数据表容量存储地址

: 指定存储数据表容量的地址。

根据指定字节长度分配所需字节数的存储区。

数据表首地址

: 设定数据表的表头地址

检索数据地址

: 设定检索数据输入地址

检索结果输出地址

: 经过检索,如果找到被检索数据,输出表内号至检索结果的地址。

【输出】

W1 : 没有找到待检索数据时输出W1为1。

- 185 -

PMC功能

 数据检索:SUB17/DSCH

数据检索指令仅适用于PMC的数据表,DSCH指令在数据表中检索指定的数据,并输

出其表内号,如未找到指定数据,则输出W1为1。

BYT

RST

ACT

SUB17

DSCH

W1(检索结果输出)

数据表容量

数据表首地址

检索数据地址

检索结果输出地址

【控制条件】

BYT

=0 : 数据表中存储的数据为BCD两位

=1 : 数据表中存储的数据为BCD四位

=1 : 检索结果W1输出为0

=1 : 执行指令。

RST

ACT

【控制参数】

数据表容量

: 指定检索对象数据表大小。

数据表首地址

: 指定数据表的表头地址。

检索数据地址

: 设定检索数据输入地址。

检索结果输出地址

: 经过检索,如果找到被检索数据,输出表内号至检索结果的地址。

【输出】

W1 : 如若没有找到待检索数据,输出为1

- 186 -

PMC功能

演算命令

 上升沿输出:SUB57/DIFU

取输入信号的上升沿,并在1个扫描周期内输出信号W1为1。

ACT SUB57

DIFU

W1(脉冲)

上升沿号(1~1000)

【控制条件】

ACT : 上升沿输出信号指定。

【控制参数】

上升沿号 : 指定上升沿输出指令的上升沿号

 上升沿号的个数,根据PMC的不同而不同。

PMC类型

0i-D PMC

0i-D/0i Mate-D PMC/L

上升沿号

1到1000

1到256

 上升沿输出DIFU和下降沿输出DIFD双方共用沿号,注意不要重复。

使用自动分配功能,可以将未使用的沿号自动分配,十分方便。

 下降沿输出:SUB58/DIFD

取输入信号的上升沿,并在1个扫描周期内输出信号W1为1。

ACT SUB58

DIFD

W1(脉冲)

下降沿号(1~1000)

【控制条件】

ACT : 下降沿输出信号指定。

【控制参数】

下降沿号 : 指定下降沿输出指令的下降沿号。

- 187 -

PMC功能

 下降沿号的个数,根据PMC的不同而不同。

PMC类型

0i-D PMC

0i-D/0i Mate-D PMC/L

下降沿号

1到1000

1到256

 上升沿输出DIFU和下降沿输出DIFD双方共用沿号,注意不要重复。

使用自动分配功能,可以将未使用的沿号自动分配,十分方便。

 异或运算:SUB59/EOR(XOR)

对指定的2个数据进行异或运算(XOR)。

ACT

SUB59

EOR

0 0

格式指定

被运算数据地址

运算数据(常数/地址)

运算结果输出地址

【控制条件】

ACT =1 : 执行指令。

【控制参数】

格式指定

□ =0 : 运算数据为常数

=1 : 运算数据为地址指定

: 指令运算数据字节长度(1,2,4) △

被运算输入数据

: 由此地址开始并且数据长度和格式指定中一致的数据作为输入数

据,是被异或的数据。

运算数据 : 由地址或者参数直接给出。

运算结果输出地址

: 用来存储异或操作后结果的地址。数据长度在格式指定中给出。

- 188 -

PMC功能

 逻辑乘:SUB60/AND

将指定的的2种数据进行逻辑和AND操作,输出。

ACT

SUB60

AND

0 0

【控制条件】

ACT =1 : 执行指令。

格式指定

被运算数据地址

运算数据(常数/地址)

运算结果输出地址

【控制参数】

格式指定

□ =0 : 运算数据为常数

=1 : 运算数据为地址指定

: 指令运算数据字节长度(1,2,4) △

被运算输入数据

: 由此地址开始并且数据长度和格式指定一致的数据作为输入数

据,是被逻辑乘的数据。

运算数据 : 由地址或者参数直接给出。

运算结果输出地址

: 用来存储逻辑乘操作后结果的地址。数据长度在格式指定中给出。

 逻辑或:SUB61/OR

将指定的的2种数据进行OR操作,输出。

ACT

SUB61

OR

0 0

格式指定

被运算数据地址

运算数据(常数/地址)

运算结果输出地址

- 189 -

PMC功能

【控制条件】

ACT =1 : 执行指令。

【控制参数】

格式指定

□ =0 : 运算数据为常数

=1 : 运算数据为地址指定

: 指令运算数据字节长度(1,2,4) △

被运算输入数据

: 由此地址开始并且数据长度和格式指定一致的数据作为输入数

据,是被逻辑或的数据。

运算数据 : 由地址或者参数直接给出。

运算结果输出地址

:用来存储逻辑或操作后结果的地址。数据长度在格式指定中给出。

 逻辑非:SUB62/NOT

将指定地址的数据进行NOT运算,输出到运算结果输出地址。

ACT

SUB62

NOT

0 0 0

格式指定

被运算数据地址

运算结果输出地址

【控制条件】

ACT =1 : 执行指令。

【控制参数】

格式指定 : 指令运算数据字节长度(1,2,4)

被运算数据地址

: 被逐位取反的输入数据。

运算结果输出地址

: 用来存储逻辑非操作后结果的地址。数据长度在格式指定中给出。

- 190 -

PMC功能

 奇偶校验:SUB11/PARI

对1个字节的指定数据进行奇偶校验,检测到不正常时输出错误报警。

O.E

RST

ACT

SUB11

PARI

W1(错误输出)

校验数据地址

【使用范例】

【输出】

W1

【控制参数】

校验数据地址

: 指定进行奇偶校验的数据的存储地址。

【控制条件】

OE

=0 : 偶校验

=1 : 奇校验

RST

ACT

=1 : 发生奇偶校验错误时,若RST=1,则输出W1=0

=1 : 执行奇偶校验命令。

: 在执行指令之后如果结果不正常,输出W1为1。

·X0.0接通时,该功能模块起效,且为奇效验。

·假设X10为00111010,由于1的数量为4个(偶数个),输出R0.0为1。

·假设X10为00111000,由于1的数量为3个(奇数个),输出R0.0为0。

- 191 -

PMC功能

 寄存器移位:SUB33/SFT

该指令可使2个字节长的数据左移或者右移1位。当数据“1”在最左方(第15位)时

如果执行左移指令,或者数据“1”在最右方(第0位)执行右移指令时,输出W1为1。

DIR

CONTRST

ACT

SUB33

SFT

移位数据地址

W1

【控制条件】

DIR

=0 : 左移

=1 : 右移

CONT =0 : 向指令的方向偏移1位,每位的状态都被相邻位取代。

=1 : 向指令的方向偏移1位,保留原本状态是1的位状态。

=1 : 复位输出数据W1=0。

=1 : 执行移位指令。

RST

ACT

【控制参数】

移位数据地址

: 指定连续2个字节移位数据的首地址。

【输出】

W1

=0 : 移位操作后,没有“1”状态移出

=1 : 移位操作后,有“1”状态移出

- 192 -

PMC功能

代码变换命令

 代码变换:SUB7/COD

在该命令的内置变换表中设置数值,表号(0~99)用2位BCD码指定,数据值写入变

换数据输出地址。所用数据均为BCD码表示。

BYT

RST

ACT

SUB7

COD

W1(错误输出)

变换数据数(0~99)

变换数据输入地址

变换数据输出地址

【控制条件】

BYT

=0 : 指定变换表中数据位BCD两位

=1 : 指定变换表中数据位BCD四位

=1 : 复位输出W1=0

=1 : 执行COD指令

RST

ACT

【控制参数】

变化数据数 : 指定变换的数据容量,范围为0~99。

变换数据输入地址

: 存储变换表数据,需要指定为1字节(2位BCD码)数据。

变换数据输出地址

: 变换完成之后,存储由数据表输出的数据。

【输出】

W1 : 执行COD指令时,如果转换输入地址出现错误,输出为1。

【使用范例】

如范例中所示:

当R100=0时,R200=10,

当R100=1时,R200=3,依次类推。

- 193 -

PMC功能

 二进制代码转换:SUB27/CODB

在该命令的内置变换表中设置数值,表号(0~255)用二进制数据指定。

数据值写入变换数据输出地址。所用数据均为二进制码表示。

RST

SUB27

CODB

W1(错误输出)

格式指定

变换数据数(0~256)

变换数据输入地址

变换数据输出地址

ACT

【控制条件】

RST

ACT

=1 : 复位输出W1=0

=1 : 执行COD指令。

【控制参数】

格式指定 : 指定变换数据长度(1,2,4字节)

变化数据数 : 指定变换的数据容量,范围为0~256。

变换数据输入地址

: 变换表的数据可以根据指定表号取出,存储变换表表号的地址称

为变换数据输入地址,需要指定为1字节数据。

变换数据输出地址

: 变换完成之后,存储由数据表输出的数据。

【输出】

W1 : 执行CODB指令时,如果转换输入地址出现错误,输出为1。

- 194 -

PMC功能

 数据转换:SUB14/DCNV

1或者2个字节的二进制数据和BCD数据间的互相转换。

BYT

CNV

RST

ACT

SUB14

DCNV

W1(错误输出)

输入数据地址

转换数据输出地址

【控制条件】

BYT

=0 : 处理数据长度为1个字节

=1 : 处理数据长度为2个字节

=0 : 二进制代码转换为BCD代码

=1 : BCD代码转换为二进制代码

=1 : 复位错误输出线圈W1,即此时W1=0

=1 : 执行DNCV指令

CNV

RST

ACT

【控制参数】

输入数据地址

: 指定待转换数据的存储地址

转换数据输出地址

: 指定转换完成之后数据的输出地址

【输出】

W1

: 当被转换数据应为BCD码数据但实际是二进制数据时,或者二进

制转换为BCD码数据转换数据超过预先指定的数据大小时,输出

W1=1。

- 195 -

PMC功能

 扩展数据变换:SUB31/DCNVB

1~4字节长度的二进制代码和BCD代码之间的相互转换。

SIN

CNV

RST

ACT

【控制条件】

SIN

W1(错误输出)

数据长度

输入数据地址

转换数据输出地址

SUB31

DCNVB

=0 : 输入的BCD代码数据符号为正

=1 : 输入的BCD代码数据符号为负

=0 : 二进制代码转换为BCD代码

=1 : BCD代码转换为二进制代码

=1 : 复位错误输出线圈W1,即此时W1=0

=1 : 执行DNCV指令

CNV

RST

ACT

【控制参数】

数据长度 : 指定待转换数据的数据长度(1,2,4字节)

输入数据地址: 指定待转换数据的存储地址

转换数据输出地址

: 指定转换完成之后数据的输出地址

【输出】

W1 : 转换结果出错时输出

【运算结果】

确认二进制代码和BCD码转换时的符号和溢出状况。

#7

#6

#5

V

#4

#3

#2

#1

N

#0

R9000

V =1:溢出

N =0:符号为正

=1:符号为负

- 196 -

PMC功能

 BCD译码:SUB4/DEC

两位BCD代码和给定定数据进行判定,一致时输出W1为1,不一致时输出为0。

ACT SUB4

DEC

n n d d

W1(结果)

BCD译码数据地址(1字节长)

译码指令

【控制条件】

ACT

=0 : 译码输出结果W1为0

=1 : 执行译码指令

【控制参数】

BCD译码数据地址

: 指定1字节长BCD译码数据的存储地址

: 指定译码相关的数据和译码位数

nndd nn指定译码值

dd译码位数指定 01 = 只译低位,高位为0

10 = 只译高位,低位为0

11 = 高低位均译

译码指令

【输出】

W1

: ACT为1时,当指定的BCD译码数据地址中的数据和译码值相

同时,输出W1为1,不相同时输出为0。

 ACT为0时,输出W1为0

【使用范例】

- 197 -

PMC功能

范例中为对M代码进行译码操作,当NC执行M辅助功能指令时,F7.0为1时,

该指令生效。

·该指令同时只能对一个给定数据进行译码

·范例为对M3进行译码的梯形图

·当执行M3指令时,此时译码输出F10中为3,输出R0.0=1

·DEC功能代码中的数据位BCD码,所以如果对M10及其以上的M代码进

行译码时,由于F10为二进制形式,所以必须先进行数据转换,将F10转

换为BCD码格式,再进行译码操作。

 二进制译码:SUB25/DECB

1~4字节的二进制代码数据译码,所指令的连续8位数据之一与待译码数据相同时,

输出对应位为1。

ACT

SUB25 0 n n d

DECB

【控制参数】

格式指定

: 指定1~4字节长二进制译码数据的存储首地址

0nnd

d 代表待译码数据的字节长度(1,2,4字节)

【控制条件】

ACT

=0 : 将所有输出复位为0

=1 : 执行译码指令

格式指令

译码数据地址

译码指定

转换数据输出地址

nn 代表组数(指定为0时,视为1组8个)

译码数据地址

: 指定1~4字节二进制译码数据的首地址

: 给出要译码的连续8个数字的第一个 译码指定

译码数据输出地址

: 指定译码数据的输出地址

每组使用1个字节

- 198 -

PMC功能

#7

输出地址+0

+1

+2

·

·

+7

+15

+23

·

·

#6

+6

+14

+22

·

·

#5

+5

+13

+21

·

·

#4

+4

+12

+20

·

·

#3

+3

+11

+19

·

·

#2

+2

+10

+18

·

·

#1

+1

+9

+17

·

·

#0

+0

+8

+16

·

·

+98

+791 +790 +789 +788 +787 +786 +785 +784

【使用范例】

范例为对M代码进行译码操作,当系统收到M辅助功能指令时,F7.0为1时,该

指令生效。

·F10为系统M代码输出地址

·该译码指令对从M3~M10的连续8个M代码进行译码

·译码输出地址位为R10,且R10同时仅有一位为1

·比如当指令M3时,R10.0=1,指令M4时,R10.1=1,对应关系如下:

R10

#7

M10

#6

M9

#5

M8

#4

M7

#3

M6

#2

M5

#1

M4

#0

M3

- 199 -

发布评论

评论列表 (0)

  1. 暂无评论