FANUC PMC功能详细介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PMC功能
讲述PMC功能和PMC程序编写的基本事项
这里讲述以下内容:
●PMC的基本功能
●功能指令一览
●种类
编程语言梯形图
级数 3 3 第一级执行周期4/8msec
基本指令处理速度25nsec/step 1μsec/step
I/O Link最大信号点数2048/2048 1024/1024 0i-D ○○B 0i-Mate D —○
T地址范围T0~T499,T9000~T9499 T0~T79,T9000~T9079
C地址范围C0~C399,C5000~C5199 C0~C79,C5000~C5039
K地址范围K0~K99,K900~K999 K0~K19,K900~K999
D地址范围D0~D9999 D0~D2999
A地址范围A0~A249,A9000~A9249 A0~A249,A9000~A9249 基本规格16字符
符号
扩展规格40字符
基本规格30字符
指令
扩展规格255字符
“○B”为软件包B包的标准配置。

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

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

系统信号
#7 #6 #5 #4 #3 #2 #1 #0 地址R9091 FL FL2 RUN ON OFF FL :1秒周期信号(ON/OFF 比1:1)
FL2 :0.2秒周期信号(ON/OFF 比1:1)
RUN :PMC运行
ON :常1信号
OFF :常0信号
#7 #6 #5 #4 #3 #2 #1 #0 地址R9015 STPR RUNR STPR :梯形图停止信号
RUNR :梯形图运行信号
梯形图
运行状态
扫描周期
梯形图运行开始信号
R9015.0
梯形图停止信号
R9015.1
梯形图运行状态
R9091.2
PMC的数据形式分为二进制形式、BCD码形式和位型三种。

CNC和PMC间的接口信号为二进制形式。

一般来说,PMC数据也采用二进制形式。

●带符号的二进制形式(Binary)
●可进行1字节,2字节,4字节的二进制处理
●可使用的数值范围如下
1字节-128~+127
2字节-32768~+32767
4字节-2147483648~+2147483647
采用2的补码表示
●在顺序程序中指令数据的长度和初始地址
●在诊断画面(PMCDGN)确认2字节,4字节的地址数据时,地址号大的为高位地址。

由R100指定4字节长的数据时地址和位的对应关系如下:
#7 #6 #5 #4 #3 #2 #1 #0
地址R100 2726252423222120
地址R101 2152142132122112102928
地址R102 223222221220219218217216
地址R103 ±230229228227226225224
●用2字节表示-100和+100时
100 -100
+0 01100100 10011100
+1 00000000 11111111
+2 00000000 11111111 2
+3 00000000 11111111
最高位数为1时为负数
●BCD形式:Binary Coded Decimal
●在十进制数的二-十进制中,用4位的二进制码表示十进数的各位。

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

#7 #6 #5 #4 #3 #2 #1 #0
10位个位
+0
80 40 20 10 8 4 2 1
1000位100位
+1
8000 4000 2000 1000 800 400 200 100
●例:63和1234的BCD码表示。

63 1234
+0 01100011 00110100
+1 —00010010 BCD码和二进制数的变换通过DCNV,DCNVB指令来进行。

●位型:Bit
●处理1位信号和数据时,在地址之后指令小数点的位号
#7 #6 #5 #4 #3 #2 #1 #0 地址xxxxx V
●例:X0001.2(地址X0001的第二位)
可以以位为单位来读写数据表的部分数据部分。

●格雷码
●0~15的4位二进制表示如下。

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

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
●如下所示,如果采用4位格雷码表示,在旋钮开关触点进行切换时,相邻的触点只有一
位数据进行变化,不存在不连续的现象。

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0
0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0
0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
●把由旋钮开关输入的格雷码信号转换为二进制数据,可成为正常处理用数值,这样程序
更容易书写。

| g3(Xxxx.x) b3(Rxxx.x)|
*----||-------------------------------------------------------------()---*
| |
| b3 g2 b2 |
*----||-------|/|--*------------------------------------------------()---*
| |
| b3 g2 | |
*----|/|------||---* |
| |
| b2 g1 b1 |
*----||-------|/|--*------------------------------------------------()---*
| |
| b2 g1 | |
*----|/|------||---* |
| |
| b1 g0 b0 |
*----||-------|/|--*------------------------------------------------()---*
| |
| b1 g0 | |
*----|/|------||---* |
| |
●格雷码和二进制按照上述规律进行变换,使用格雷码旋钮开关,可以提高安全性。

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

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

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

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

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

sequence是“顺序”的意思。

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

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

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

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

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

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

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

子程序顺序程序,从SP命令开始到SPE命令结束,作为1组。

可以登录5000或者512个子程序。

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

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

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

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

第一级
•急停
•超程
•跳转
END1
第二级
•运行转备
•运行方式切换
•手动进给
•手轮进给
•自动运行
• MST功能• CALL命令•信息显示END2
子程序
SP


SPE
END CALL CALLU 命令
SP P10
SPE
定时器
TMR SUB3 延时定时器(上升沿触发)TMRB SUB24 固定延时定时器(上升沿触发)TMRC SUB54 延时定时器(上升沿触发)TMRBF SUB77 固定延时定时器(下降沿触发)计数器
CTR SUB5 计数器
CTRB SUB56 追加计数器
CTRC SUB55 追加计数器
数据传送
MOVB SUB43 1字节数据传送
MOVW SUB44 2字节数据传送
MOVD SUB47 4字节数据传送
MOVN SUB45 任意字节数据传送
MOVE SUB8 逻辑乘后数据传送
MOVOR SUB28 逻辑加后数据传送
XMOVB SUB35 二进制变址修改数据传送
XMOV SUB18 BCD变址修改数据传送
数值比较
COMPB SUB32 二进制数据比较
COMP SUB15 BCD数据比较
COIN SUB16 BCD一致性判断
EQB SUB200 1字节长二进制比较(=)
EQW SUB201 2字节长二进制比较(=)
EQD SUB202 4字节长二进制比较(=)
NEB SUB203 1字节长二进制比较(≠)
NEW SUB204 2字节长二进制比较(≠)
NED SUB205 4字节长二进制比较(≠)
GTB SUB206 1字节长二进制比较(>)
GTW SUB207 2字节长二进制比较(>)
GTD SUB208 4字节长二进制比较(>)
LTB SUB209 1字节长二进制比较(<)
LTW SUB210 2字节长二进制比较(<)
LTD SUB211 4字节长二进制比较(<)
GEB SUB212 1字节长二进制比较(≥)GEW SUB213 2字节长二进制比较(≥)GED SUB214 4字节长二进制比较(≥)LEB SUB215 1字节长二进制比较(≤)LEW SUB216 2字节长二进制比较(≤)LED SUB217 4字节长二进制比较(≤)RNGB SUB218 1字节长二进制比较(范围)RNGW SUB219 2字节长二进制比较(范围)RNGD SUB220 4字节长二进制比较(范围)数据处理
DSCHB SUB34 二进制数据检索
DSCH SUB17 BCD数据检索
DIFU SUB57 上升沿输出
DIFD SUB58 下降沿输出
EOR SUB59 异或
AND SUB60 逻辑乘
OR SUB61 逻辑和
NOT SUB62 逻辑非
PARI SUB11 奇偶校验
SFT SUB33 移位寄存器
COD SUB7 BCD码变换
CODB SUB27 二进制码变换
DCNV SUB14 数据转换
DCNVB SUB31 扩展数据转换
DEC SUB4 BCD译码
DECB SUB25 二进制译码
演算命令
ADDB SUB36 二进制加法运算
SUBB SUB37 二进制减法运算
MULB SUB38 二进制乘法运算
DIVB SUB39 二进制除法运算
ADD SUB19 BCD加法运算
SUB SUB20 BCD减法运算
MUL SUB21 BCD乘法运算
DIV SUB22 BCD除法运算
NUMEB SUB40 二进制常数赋值
NUME SUB23 BCD常数赋值
CNC相关
DISPB SUB41 信息显示
EXIN SUB42 外部数据输入
WINDR SUB51 CNC数据读取
WINDW SUB52 CNC数据写入
AXCTL SUB53 PMC轴控制指令
PSGNL SUB50 位置信号
PSGN2 SUB63 位置信号
程序控制
COM SUB9 公共线控制开始
COME SUB29 公共线控制结束
JMP SUB10 跳转
JMPE SUB30 跳转结束
JMPB SUB68 标号跳转1
JMPC SUB73 标号跳转2
LBL SUB69 标号
CALL SUB65 有条件子程序调用
CALLU SUB66 无条件子程序调用
CS SUB74 选择调用开始
CM SUB75 选择子程序调用
CE SUB76 选择调用结束
SP SUB71 子程序开始
SPE SUB72 子程序结束
END1 SUB1 第1级程序结束
END2 SUB2 第2级程序结束
END3 SUB48 第3级程序结束
END SUB64 程序结束
NOP SUB 无操作
回转控制
ROT SUB6 BCD回转控制
ROTB SUB26 二进制回转控制
上述功能指令仅为0i-D系统的部分常用功能指令,且均为0i-D系统和0i-Mate D系统的标准功能,其余的功能指令详见相关说明书。

定时器命令
● 延时定时器(上升沿触发):SUB3/TMR
ACT 为1并经过设定的时间后,输出W1为1。

时间在PMC 参数画面进行设定,所以
顺序程序编写完成后,用户也可以变更设定时间。

ACT 为0后,W1马上变为0。

【控制条件】 ACT =0 : 定时器输出W1为0
=1 : 启动定时器
【定时器号】(初始状态) 1~8 : 以48ms 为单位,最大设定时间1572.8秒
9以上
: 以8ms 为单位,最大设定时间262.1秒
在定时器命令中指定定时器号。

定时器设定时间在PMC 维修画面的定时器画面进行设定。

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

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

定时器初始设定时间
0i-D PMC 0i-D/0i Mate-D
PMC/L 48ms 定时器 1到8 1到8 8ms 定时器
9到250
9到40
使用定时器号的自动分配功能时,可将没有使用的定时器号自动分配,非常方便。

上述的定时器设定时间为原始值。

软件操作时,可以根据下表的单位进行转换。

SUB3 TMR
ACT
定时器号
W1 设定时间
ACT
W1
1msec 1msec~32.7秒
8msec 8msec~262.1秒定时器9以上初始值
10msec 10msec~327.7秒
48msec 48msec~1572.8秒定时器1~8初始值
100msec 100msec~54.6分
1秒1秒~546分
1分1分~546小时
定时器的定时器精度,对应存储在T9000~T9499中,设值含义如下:
0 :缺省(8msec/48msec)
1 :1msec
2 :10msec
3 :100msec
4 :1秒
5 :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的倍数。

● 固定延时定时器(上升沿触发):SUB24/TMRB
ACT 为1后经过设定的时间,接通W1为1。

在命令控制参数中指定设定时间。

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

ACT 为0时,输出W1为0。

【控制条件】 ACT =0 : 定时器输出W1为0
=1 : 启动定时器
【控制参数】 定时器号 : 1~500
设定时间
: 以毫秒为单位进行设定(最大32,767,000)
定时器的个数根据PMC 类型不同而不同。

定时器初始设定数据
0i-D PMC 0i-D/0i Mate-D
PMC/L 定时器号 1到500
1到100
设定时间
1到32,760,000(毫秒) 1到32,760,000(毫秒)
固定延时定时器(上升沿触发)TMRB 和固定延时定时器(下降沿触发)TMRBF 共用定时
器号,注意不要重复。

建议使用自动分配功能,更加方便。

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

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

SUB24 TMRB
ACT
定时器号
设定时间
W1 设定时间
ACT
W1
·X0.0接通3秒之后,R0.0输出为1。

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

延时定时器(上升沿触发):SUB54/TMRC
定时器精度范围扩展为以分为单位,可作为长时间定时器使用。

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

【定时器设定时间地址】
:指定用于存储定时器设定值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为系统作业区域
● 固定延时定时器(下降沿触发):SUB77/TMRBF
固定延时定时器设定的时间是固定的,因此定时器的设定时间和顺序程序一同写入到
F-ROM 中。

【控制条件】 ACT =0 : 定时器输出W1为0
=1 : 启动定时器
【控制参数】 定时器号 : 1~500
设定时间
: 以msec 为单位进行设定(最大32,767,000)
定时器的个数根据PMC 类型不同而不同
定时器初始设定数据
0i-D PMC 0i-D/0i Mate-D
PMC/L 定时器号 1到500
1到100
设定时间
1到32,760,000(毫秒) 1到32,760,000(毫秒)
固定延时定时器(上升沿触发)TMRB 和固定延时定时器(下降沿触发)TMRBF 共用定时
器号,注意不要重复。

建议使用自动分配功能,更加方便。

【输出】 W1 : ACT 为1后输出W1马上变为1.
ACT 为0后经过设定时间,输出W1才为0。

SUB77 TMRBF
ACT
定时器号 设定时间
W1 设定时间
ACT
W1
计数器命令
● 计数器:SUB5/CTR
是进行加减计数的计数器。

作为预置型计数器时,首先设定计数器的计数上限,当计数
值和设定值相同的时候,输出信号。

此外还可作为环形计数器,重复计数。

PMC 参数画面的计数器数值为十进制表示,当内部数据形式为BCD 和二进制形式时,
可通过系统参数画面进行选择。

【控制条件】 CN0 =0 : 计数器的初始值为0
=1 : 计数器的初始值为1
UPDOWN =0 : 为加计数器
=1 : 为减计数器
RST
=1 : 将计数器复位为初始值
加计数器时,复位为CN0设定的初始值;减计数器时,复位为计数器预置值。

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

【控制参数】 计数器号 : 指定计数器号。

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

SUB5 CTR
RST ACT
计数器号
W1
UPDOWN CN0
·从1到20进行计数的计数器(设定值即为预置值)
·在X0.0的上升沿,“现在值”加1,当“现在值”到20时,R0.0输出为1
·当F1.1为1时,“现在值”复位为1
每个计数器占据4个字节,前两个字节为“设定值”,后两个字节为“现在值”。

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

● 固定计数器:SUB56/CTRB
在控制参数中指定预置值的计数器。

计数值为二进制形式。

【控制条件】 CN0 =1 : 计数器的初始值为1
=0 : 计数器的初始值为0
UPDOWN =0 : 为加计数器
=1 : 为减计数器
RST
=1 : 将计数器复位为初始值
加计数器时,复位为CN0设定的初始值;减计数器时,复位为计数器预置值。

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

【控制参数】
计数器号

0i-D PMC 0i-D/0i Mate-D
PMC/L 计数器号
1到100
1到20
预置值 :在0~32767内进行预置值指定。

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

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

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

SUB56 CTRB
RST ACT
计数器号(1~100)
预置值
W1
UPDOWN CN0
● 计数器:SUB55/CTRC
为标准计数器的扩展形式。

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

【控制条件】 CN0 =1 : 计数器的初始值为1
=0 : 计数器的初始值为0
UPDOWN =0 : 为加计数器
=1 : 为减计数器
RST
=1 : 将计数器复位为初始值
加计数器时,复位为CN0设定的初始值;减计数器时,复位为计数器预置值。

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

【控制参数】 计数器预置值地址
: 指定2字节的存储器的首地址。

(通常指令为D 地址)
计数器寄存器地址 : 指定连续的4字节存储器的起始地址。

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

使用R 地址指令计数器寄存器地址时,当电源接通时,计数器的累计值为0
【输出】
W1
=1 : 为计数器输出。

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

SUB55 CTRC
RST ACT
计数器预置值地址
计数器寄存器地址
W1
UPDOWN CN0
当X0.0为1时,将D100的数据传送给R200
字节长数据传送:SUB44/MOVW
把2字节的数据从被指令的传出位置地址传送到指定的传入位置地址。

当X0.0为1时,将D100~D101的数据传送给R200~R201
字节长数据传送:SUB47/MOVD
把4字节长的数据从被指令的传出位置地址传送到指定的传入位置地址。

【控制条件】SUB47 MOVD
ACT
传出位置地址
传入位置地址
当X0.0为1时,将D100~D104的数据传送给R100~R104
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
X10 :0 1 0 0 1 0 1 0 R200 :0 0 0 1 1 1 1 1 R100 :0 1 0 1 1 1 1 1
二进制变址数据传送:SUB35/XMOVB
对指定地址的数据表的数据进行读取或写入操作。

数据形式为二进制。

此外,数据表的 数据个数使用地址进行指定,程序完成之后,数据个数可进行变更。

控制参数的设定,
分为基本规格和扩展规格2种。

使用扩展规格时,1个命令可一次操作多个数据。

【控制条件】 RW =0 : 从数据表中读出数据
=1 : 向数据表中读入数据 RST =1 : 复位并输出W1=0
ACT
=1 : 执行指令
【控制参数】 格式指定n n : 索引表内数据数(00~99) 设定00或01,默认为标准设置一致
设定02及以上,作为扩展规格,读取nn 长度的数据到数据表中。

d
: 指定数据长度(1,2,4)
数据表容量存储地址 : 用于存储数据表的数据数目,所占用的字节数需符合格式指定中
的设定,数据表的数据数有效范围由d 指定的数据长度决定。

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

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

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

SUB35 0 n n d XMOVB
RW 格式指令
数据表容量存储地址 数据表首地址
输入/输出数据存储地址 表内号存储地址
RST ACT
W1(错误输出)
【使用范例】
·该功能模块使用了扩展规格,每次从数据表中读取出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
变址数据传送:SUB18/XMOV
对指定地址的数据表的数据进行读取或写入操作,适用于2或者4字节BCD 数据。

【控制条件】 BYT =0 : 数据表中存储的数据为BCD 两位。

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

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

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

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

ACT
=1 : 执行命令。

【控制参数】 数据表容量 : 指定数据表的数据数目。

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

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

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

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

SUB18 XMOV
RST ACT
数据表容量
数据表首地址
输入/输出数据存储地址 表内号存储地址
W1(错误输出)
RW BYT
数值比较命令
二进制大小比较:SUB32/COMPB
1~4字节长的二进制数据之间的大小比较。

【控制条件】
ACT
=1 : 执行命令。

【控制参数】 输入数据格式指定 □ =0 : 输入数据为常数。

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


:指定数据长度(1,2,4)
输入数据
: 用于比较的基准数据,输入数据的形式取决于上述的指定。

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

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

#7 #6 #5 #4 #3 #2 #1 #0 R9000
N
Z
N =1:输入数据<比较数据
=0:输入数据=比较数据
【使用范例】
假设在D100中存储的数据值为十进制数20,在R100中位十进制数25,指令如下:
SUB32 COMPB
0 0
ACT
格式指定 输入数据(常数/地址)比较数据地址
当X0.0为1时,比较指令生效,由于D100小于R100,则输出R9000.1=1
大小比较:SUB15/COMP
2位或4位BCD 数据的数值比较,比较结果输出到W1。

SUB15 COMP
B YT ACT
输入数据格式指定
输入数据(常数/地址) 比较数据地址
W1(比较结果输出)
一致性判断:SUB16/COIN
2位或4位BCD 数据的数值比较。

【控制条件】 BYT =0 : 输入和比较数据均为BCD 两位数据。

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

ACT
=1 : 执行指令。

【控制参数】 输入数据格式指定 =0 : 输入数据用常数来指定。

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

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

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

【输出】 W1 =0 : 输入数据≠比较数据
=1 : 输入数据=比较数据
SUB16 COIN
B YT ACT
输入数据格式指定
输入数据(常数/地址) 比较数据地址
W1(比较结果输出)
带符号的二进制数据比较(=):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
1~4字节长度的二进制数据数值比较。

【控制条件】
ACT
=1 : 执行指令。

【控制参数】 数据1 : 指定进行比较的1号数据的地址或者常数值
数据2
: 指定进行比较的2号数据的地址或者常数值
数据1和数据2可以为常数或用地址指定,编辑梯形图程序时,输入用数字构成的字符时,
视为数值,可用地址进行输入。

【输出】 如下条件时,W1输出为1 EQB ,EQW ,EQD 1= 数据1=数据2 NEB ,NEW ,BED 1= 数据1≠数据2 GTB ,GTW ,GTD 1= 数据1>数据2 LTB ,LTW ,LTD 1= 数据1<数据2 GEB ,GEW ,GED 1= 数据1≥数据2
LEB ,LEW ,LED
1= 数据1≤数据2
SUB200 EOB
ACT
数据1(常数/地址) 数据2(常数/地址)
W1
● 带符号的二进制数据比较(范围): SUB218/RNGB
SUB219/RNGW
SUB220/RNGD
判断1~4字节长度的二进制数据是否在指定范围内。

【控制条件】
ACT
=1 : 执行命令。

【控制参数】 数据1 : 指定进行比较的1号数据的地址或者常数值。

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

输入数据
: 指定进行比较的数据的地址或者常数
数据1和数据2可以为常数或用地址指定,编辑梯形图程序时,输入用数字构成的字符时,
视为数值,可用地址进行输入。

【输出】 W1 =1: 比较数据1≤输入数据≤比较数据2
比较数据2≤输入数据≤比较数据1
=0:
除上以外
SUB218 RNGB
ACT
数据1(常数/地址) 数据2(常数/地址) 输入数据(常数/地址)
W1
二进制数据检索:SUB34/DSCHB
检索指定数据表的数据,检索到后输出首地址。

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

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

【控制条件】 RST =1 : 检索结果W1输出为0
ACT
=1 : 执行命令。

【控制参数】 数据长度
: 指定检索数据长度(1,2,4)
数据表容量存储地址 : 指定存储数据表容量的地址。

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

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

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

SUB34 DSCHB
RST ACT
数据长度
数据表容量存储地址 数据表首地址 检索数据地址 检索结果输出地址
W1(检索结果输出)
数据检索:SUB17/DSCH
数据检索指令仅适用于PMC 的数据表,DSCH 指令在数据表中检索指定的数据,并输
出其表内号,如未找到指定数据,则输出W1为1。

【控制条件】 BYT =0 : 数据表中存储的数据为BCD 两位
=1 : 数据表中存储的数据为BCD 四位 RST =1 : 检索结果W1输出为0
ACT
=1 : 执行指令。

【控制参数】 数据表容量
: 指定检索对象数据表大小。

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

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

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

【输出】
W1
: 如若没有找到待检索数据,输出为1
SUB17 DSCH
BYT RST ACT
数据表容量 数据表首地址 检索数据地址 检索结果输出地址
W1(检索结果输出)
演算命令
● 上升沿输出:SUB57/DIFU
取输入信号的上升沿,并在1个扫描周期内输出信号W1为1。

【控制条件】
ACT
: 上升沿输出信号指定。

【控制参数】
上升沿号 : 指定上升沿输出指令的上升沿号
上升沿号的个数,根据PMC 的不同而不同。

PMC 类型 上升沿号 0i-D PMC 1到1000 0i-D/0i Mate-D PMC/L
1到256
上升沿输出DIFU 和下降沿输出DIFD 双方共用沿号,注意不要重复。

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

● 下降沿输出:SUB58/DIFD
取输入信号的上升沿,并在1个扫描周期内输出信号W1为1。

【控制条件】
ACT
: 下降沿输出信号指定。

【控制参数】
下降沿号
: 指定下降沿输出指令的下降沿号。

SUB58 DIFD
ACT
下降沿号(1~1000)
W1(脉冲)
SUB57 DIFU
ACT
上升沿号(1~1000)
W1(脉冲)
下降沿号的个数,根据PMC 的不同而不同。

PMC 类型 下降沿号 0i-D PMC 1到1000 0i-D/0i Mate-D PMC/L
1到256
上升沿输出DIFU 和下降沿输出DIFD 双方共用沿号,注意不要重复。

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

● 异或运算:SUB59/EOR (XOR )
对指定的2个数据进行异或运算(XOR )。

【控制条件】
ACT
=1 : 执行指令。

【控制参数】 格式指定 □ =0 : 运算数据为常数
=1 : 运算数据为地址指定

: 指令运算数据字节长度(1,2,4)
被运算输入数据 : 由此地址开始并且数据长度和格式指定中一致的数据作为输入数
据,是被异或的数据。

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

运算结果输出地址
: 用来存储异或操作后结果的地址。

数据长度在格式指定中给出。

SUB59 EOR
0 0
ACT
格式指定
被运算数据地址
运算数据(常数/地址) 运算结果输出地址
● 逻辑乘:SUB60/AND
将指定的的2种数据进行逻辑和AND 操作,输出。

【控制条件】
ACT
=1 : 执行指令。

【控制参数】 格式指定 □ =0 : 运算数据为常数
=1 : 运算数据为地址指定

: 指令运算数据字节长度(1,2,4)
被运算输入数据 : 由此地址开始并且数据长度和格式指定一致的数据作为输入数
据,是被逻辑乘的数据。

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

运算结果输出地址
: 用来存储逻辑乘操作后结果的地址。

数据长度在格式指定中给出。

● 逻辑或:SUB61/OR
将指定的的2种数据进行OR 操作,输出。

SUB61 OR
0 0
ACT
格式指定
被运算数据地址
运算数据(常数/地址) 运算结果输出地址 SUB60 AND
0 0
ACT
格式指定
被运算数据地址
运算数据(常数/地址) 运算结果输出地址
【控制条件】
ACT
=1 : 执行指令。

【控制参数】 格式指定 □ =0 : 运算数据为常数
=1 : 运算数据为地址指定

: 指令运算数据字节长度(1,2,4)
被运算输入数据 : 由此地址开始并且数据长度和格式指定一致的数据作为输入数
据,是被逻辑或的数据。

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

运算结果输出地址
:用来存储逻辑或操作后结果的地址。

数据长度在格式指定中给出。

逻辑非:SUB62/NOT
将指定地址的数据进行NOT 运算,输出到运算结果输出地址。

【控制条件】
ACT
=1 : 执行指令。

【控制参数】 格式指定
: 指令运算数据字节长度(1,2,4)
被运算数据地址
: 被逐位取反的输入数据。

运算结果输出地址
: 用来存储逻辑非操作后结果的地址。

数据长度在格式指定中给出。

SUB62 NOT
0 0 0
ACT
格式指定
被运算数据地址 运算结果输出地址。

相关文档
最新文档