海杰 CX1-22R 可编程控制器 说明书

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

海杰CX1-22R可编程控制器 CX1-22R Programmable Controller
用户手册
User Reference Manual
PLC。

它是为满足市场对22路以下低价格、高性能PLC的需求设计的,同时还具有扩展功能。

可灵活运用在各种工业自动控制场合,如冶金、化工、塑料、轻纺、食品、包装等行业中的生产机械、工业流水线、各种机床的工业控制设备中。

它为用户提供了采用传统的梯形图逻辑方法以及HJ为用户定制编程方法对一个控制系统进行开发的能力。

功能介绍:
▪工作电源AC85~264V
▪22路I/0输入输出,其中输入12路,输出10路(继电器型)
▪本机采用高性能进口工业级芯片设计,可适应高电磁干扰的工业环境
▪高速运算,基本指令每步0.8uS
▪输入口具有数字滤波功能从1mS到512mS可调
▪2路高速外部脉冲输入计数器,计数频率2×5KHZ
▪有扩展接口,可以方便地连接RS232C、模拟量输入输出、I/O等扩展模块和人机界面、变频器等外围设备
▪EEPROM程序寄存器达800步,不用电池记忆,无需维护
▪内部继电器192点
▪定时器/计数器32点
▪EEPROM数据掉电记忆
▪编程语言采用梯形图
▪采用循环扫描工作方式
▪内置24V/200mA直流电源,可供外围设备使用,如接近传感器等其它元件
▪一体化紧凑型设计,长×宽×高为98×90×82
▪容易安装,使用DIN导轨或便利的固定孔安装
表1-1为CX1型PLC 的内部寄存及I/O 配置情况。

表1-1:内部寄存及I/O 配置
功 能
数据类型 编号(地址) 数量
X(bit) X0~X3F 64 输入继电器
用来存储外部开关信号 WX(word) WX0~WX3 4 Y(bit) Y0~Y3F 64 I/O 继 电 器 输出继电器
用来存储程序运行结果并输出 WY(word) WY0~WY3 4 M(bit) M0~M11F 192 通用内部继电器
只能在PLC 内部使用,不能用于输出 WM(word) WM0~WM11
12
内 部 继 电 器 特殊内部继电器
具有特殊用途的内部继电器,具体用途见附录1M(bit) M8000~M803F 64
定时器触点
定时时间到,触点动作,触点序号与定时器相同
T(bit) T0~T31 32
计数器触点
计数完毕触点动作,触点序号与计数器相同 C(bit) C0~C31 32 定 时 器 / 计 数 器 定时器/计数器经过值寄存器
用来存储定时器/计数器的经过值,寄存器的序号与定时器/计数器的序号一一对应 WEV(word) WEV0~EV31
32
通用数据寄存器
用来存储PLC 内部处理的数据
WD(word) WD0~WD31 32
数 据 区 特殊数据寄存器
具有特殊用途的内部寄存器,具体用途见附录2WD(word) WD8000~WD8015 16
16bit (word) 十进制常数(整数)
范围:16bit(K0~K65535)
32bit(K-2147483648~K2147483647)
K 32bit (2word)
16bit (word) 常 数
十六进制常数(整数)
范围:16bit(H0~HFFFF)
32bit(H0~HFFFFFFFF)
H
32bit (2word)
表中X 和Y 分别表示输入、输出继电器,它们以位(bit )寻址,而WX 和WY 则是以字(word )寻址的输入、输出继电器(或称为输入、输出寄存器)。

X 、Y 和M 的地址编号规则完全一样,下面以X 为例说明如下: X □ □ □
位址(用十六进制表示)
寄存器地址(用十进制表示)
如:X10表示输入继电器(寄存器)WX1的第0位,而X1F 则表示输入继电器(寄存器)WX1的第F 位,图示如下:
F E D C B A 9 8 7 6 5 4 3 2 1 0
0 0 0 0 000000000 0 0 0 X1F X10
WX1
对表1-1作如下说明:
1.有表可见I/O继电器编号比实际CX1主机的外部输入、输出点多,表中所列值为最大可扩展能力。

2.所有寄存器(word)和T、C地编号均为十进制数,只有X、Y和M触点(bit)编号的最后一位是十六进制数。

3.定时器和计数器是统一编号的。

如果某编号编程时分配给定时器,则计数器不能再使用该编号。

CX1的指令分为基本指令和高级指令。

下面分别介绍各指令,触点逻辑状态定义为ON=1、OFF=0。

2.1基本指令
2.1.1顺序指令
顺序指令是指对继电器的触点进行逻辑操作的指令,指令见下表:
表2-1:顺序指令
指令符号可用的继电器类型功能
LD X、Y、M、T、C 常开触点加载
LDI X、Y、M、T、C 常闭触点加载
AND X、Y、M、T、C 与
ANI X、Y、M、T、C 与非
OR X、Y、M、T、C 或
ORI X、Y、M、T、C 或非
ANB 无组与
ORB 无组或
MPS 无推入堆栈
MRD 无读出堆栈
MPP 无弹出堆栈
OUT Y、M 输出
SET Y、M 置1
CLR Y、M 清0
INV 无逻辑非
DF 无上升延微分
DFI 无下降延微分
LD常开触点加载
LDI常闭触点加载
OUT输出
概述
LD、LDI:开始逻辑运算。

OUT:输出运算结果。

程序示例
OUT
示例说明
当X0闭合时,Y0闭合。

当X0断开时,Y1闭合。

LD和LDI指令必须由母线开始。

X0 Y0 ------| |---------------------------------( )
OUT指令不能由母线直接开始。

Y0 --------------------------------------------( )
OUT指令可连续使用
X0 Y0 ------| |--------------------------------( )
Y1 -----------( )
Y2 ----------( )
INV逻辑非
概述
根据本指令进行逻辑取反运算
程序示例
Y0
Y1
INV
示例说明
当X0闭合时,Y0闭合,Y1断开。

当X0断开时,Y0断开,Y1闭合。

描述
INV指令将本指令处的逻辑运算结果取反。

ANI与非
概述
AND:使常开触点串联。

ANI:使常闭触点串联。

程序示例
X2 Y0
/|---------( )
示例说明
当X0和X1均闭合且X2断开时,Y0闭合。

描述
和前面直接串联的逻辑运算的结果,执行逻辑“与”运算。

编程过程中的注意事项
AND和ANI指令可连续使用。

X0 X1 X2 T21 Y0 ------| |---------| |-----------|/|----------| |-----……-----------( )
OR或
ORI或非
概述
OR:使常开触点并联。

ORI:使常闭触点并联。

程序示例
X0 Y0
------| |---------------------------------( )
X1
------| |-------
X2
-----|/|--------
示例说明
当X0或X1之一闭合、或X2断开时,Y0为接通。

与并联的触点进行逻辑“或”运算。

编程过程中的注意事项
OR和OR/指令可连续使用。

X0 Y0
------| |---------------------------------( )
X1
------| |-------
X2
-----|/|--------
C0
-----|/|--------
.
.
.
ANB组与
概述
将多个逻辑块串联
程序示例
Y0
示例说明
当X0或X1闭合、并且X2或X3闭合时,Y0为ON。

(X0 或 X1)与(X2 或X3)→ Y0
块1 块2
描述
将并联逻辑块串联起来。

概述
将多个逻辑块并联。

程序示例
Y0
块1
块2
示例说明
当X0和X1都闭合、或X2和X3都闭合时,Y0为ON。

(X0 与 X1)或(X2 与X3)→ Y0
块1 块2
描述
将串联的逻辑块并联起来。

MPS推入堆栈
MRD读出堆栈
MPP弹出堆栈
概述
MPS:存储该指令之前的运算结果。

MRD:读取由MPS指令所存储的运算结果。

MPP:读取并清除由MPS所存储的运算结果。

程序示例
X1 Y0
X2 Y1
X3 Y2
示例说明
当X0闭合时:
由MPS指令保存之前运算结果,并且当X1闭合时,Y0为ON。

由MRD指令来读取所保存的运算结果,并且当X2闭合时Y1为ON。

由MPP指令来读取所保存的运算结果,并且当X3断开时,Y2为ON。

同时清除由MPS指令存储的运算结果。

一个运算结果可以存储到内存中,而且可以被读取并用于多重处理
MPS(存储运算结果):
由本条指令存储运算结果,并且继续执行下一条指令。

MRD(读取运算结果):
读取由MPS指令所存储的运算结果,并且利用此结果从下一步起继续运算。

MPP(复位运算内容):
读取由MPS指令所存储的运行结果,并且利用此结果从下一步起继续运算。

同时还要清除由MPS指令存储的运算结果。

上述这些指令用于由某个触点产生的、后接其它一个或多个触点的分支结构。

编程时的注意事项
可通过连续使用MRD指令继续重复使用同一结果。

在最后时,必须使用MPP指令。

MRD指令可重复使用任意次数。

有关连续使用MPS指令时的注意事项
MPS指令可连续使用的次数有一定限制。

在出现下一条MPP指令之前,可连续使用MPS指令8次如下所示。

8次。

M2 Y0
DF上升延微分
DFI下降延微分
概述
DF:当检测到输入触发信号的上升沿时,仅将触点闭合一个扫描周期。

DFI:当检测到输入触发信号的下降沿时,仅将触点闭合一个扫描周期。

程序示例
Y0
上升延微分
Y1
下降延微分
示例说明
在检测到X0的上升沿(OFF→ON)时,Y0仅为ON一个扫描周期。

在检测到X1的下降沿(ON→OFF)时,Y1仅为ON一个扫描周期。

当触发信号状态从OFF状态到ON状态变化时,DF指令才执行并且输出仅接通一个扫描周期。

当触发信号状态从ON状态到OFF状态变化时,DFI指令才执行并且输出仅接通一个扫描周期。

若执行条件最初即为闭合,则PLC接通电源,则不会产生输出。

编程时的注意事项
DF和DFI指令的使用次数有限制,使用这两个指令的次数之和最多为128次。

微分指令的应用示例
如果采用微分指令编程,可以使程序调试更加简单。

自保持回路应用示例
使用微分指令可以保持输入信号。

X0 M0 Y0
------| |-------↑-------------|/|----------( )
Y0
------| |-----------------
X1 M0
------| |-------↑------------------------------( )
交替回路应用示例
使用微分指令也可以构成一个交替变化回路,实现利用同一个输入信号切换进行保持或释放。

X0 M0
------| |-------↑----------------------------( )
M0 Y0 Y0
-----| |------|/|-----------------------------( )
M0 Y0
-----|/|------| |----
CLR置0
概述
SET:当满足执行条件时,输出变为ON,并且保持ON的状态。

CLR:当满足执行条件时,输出变为OFF,并且保持OFF的状态。

程序示例
X0
------| |----------------------------------[SET Y0]
X1
-----| |-----------------------------------[CLR Y0]
示例说明
当X0闭合时,Y0为ON并保持ON。

当X1闭合时,Y0为OFF并保持OFF。

描述
当触发器闭合时,执行SET指令。

即使触发电器状态改变,输出线圈也会为ON并保持ON状态。

当触发器闭合时,执行CLR指令。

即使触发电器状态改变,输出线圈也会为OFF并保持OFF状态。

可以通过SET(置位)和CLR(复位)指令,多次使用具有同一编号的继电器输出。

当使用SET和CLR指令时,输出的值会随运算过程的期间的各步而改变。

I/O数据的更新是在执行END(结束)指令时进行的,因此,最终实际的输出结果取决于最后的一次的运算结果。

编程时的注意事项
SET指令的目标输出值即使在MC指令中也被保持。

详细内容请参阅“MC和MCE指令”一节。

如果输出目标继电器不是保持型的内部继电器,则PLC切断电源时,该输出将被复位(OFF)。

SET和CLR指令,以及微分指令
为了便于调试、优化程序,请务必在SET和CLR指令之前加入微分指令。

当在程序中若干处对同一个输出目标进行操作时,采用此方法非常有效。

X0
------| |--------------------↑---------[SET Y0]
X1
-----| |---------------------↑---------[CLR Y0]
定时、计数指令是具有定时器、计数器的功能指令,指令见下表:
表2-2:定时、计数指令
指令符号操作数1数据类型操作数2数据类型功能
TON_R T word型寄存器、常数0.01S延时动作定时器
TON_Y T word型寄存器、常数1S延时动作定时器
TOF_R T word型寄存器、常数0.01S延时关断定时器
TOF_Y T word型寄存器、常数1S延时关断定时器
TP_R T word型寄存器、常数0.01S触发指定脉宽定时器
TP_Y T word型寄存器、常数1S触发指定脉宽定时器
CU C word型寄存器、常数加法计数器
CD C word型寄存器、常数减法计数器
定时器按定时时钟分二种类型:R------定时时钟为0.01秒;Y-------定时时钟为1秒
编程时的注意事项
操作数1数据类型T/C0~T/C31是统一编号的,如果某编号编程时分配给定时器,则计数器不能再使用该编号。

例如不能既有TON_R T0 K50 又有CU C0 K200。

TON_R 0.01S 延时动作定时器
TON_Y 1S 延时动作定时器
概述
TON_R:设置以0.01秒为计数单位的延时动作定时器
TON_Y:设置以1秒为计数单位的定延时动作定时器
程序示例1
X0
------| |----------------------------------[TON_R T0 K500]
T0 Y0
------| |-------------------------------------------------------------- ( )
示例说明
常数K500为设定值,T0为定时器触点,对应经过值寄存器为WEV0。

当X0断开时,T0断开,Y0断开,WEV0=0000;X0闭合,WEV0每隔0.01秒递增一次。

满0.01×500=5秒后T0闭合,Y0闭合, WEV0=01F4(十六进制数)。

程序示例2
X0
------| |--------------------------------------[MOV K500 WD0]
------[TON_R T0 WD0]
T0 Y0
------| |-------------------------------------------------------------- ( )
寄存器WD0的值为设定值,预先用MOV指令把WD0的值设为K500,结果同程序示例1。

使用变量可方便地改变定时时间。

编程时的注意事项
在程序处理过程中定时器经过值递增,应编写程序使一个扫描周期内执行一次递增(如果使用了JMP、CALL 等指令,使得程序在一个扫描周期内没有处理或产生多次出来,则不能得到正确的结果。


TOF_R 0.01S 延时关断定时器
TOF_Y 1S 延时关断定时器
概述
TOF_R:设置以0.01秒为计数单位的延时关断定时器
TOF_Y:设置以1秒为计数单位的定延时关断定时器
程序示例1
X0
------| |----------------------------------[TOF_R T0 K500]
T0 Y0
------| |-------------------------------------------------------------- ( )
示例说明
常数K500为设定值,T0为定时器触点,对应经过值寄存器为WEV0。

当X0闭合时,T0闭合,Y0闭合,WEV0=0000;X0断开,WEV0每隔0.01秒递增一次。

满0.01×500=5秒后T0断开,Y0断开, WEV0=01F4(十六进制数)。

程序示例2
X0
------| |--------------------------------------[MOV K500 WD0]
------[TOF_R T0 WD0]
T0 Y0
------| |-------------------------------------------------------------- ( )
示例说明
寄存器WD0的值为设定值,预先用MOV指令把WD0的值设为K500,结果同程序示例1。

使用变量可方便地改变定时时间。

编程时的注意事项
在程序处理过程中定时器经过值递增,应编写程序使一个扫描周期内执行一次递增(如果使用了JMP、CALL 等指令,使得程序在一个扫描周期内没有处理或产生多次出来,则不能得到正确的结果。


TP_Y 1S 触发指定脉宽定时器
概述
TP_R:设置以0.01秒为计数单位的触发指定脉宽定时器
TP_Y:设置以1秒为计数单位的触发指定脉宽定时器
程序示例1
X0
------| |---------↑---------------------------[TP_R T0 K500]
T0 Y0
------| |-------------------------------------------------------------- ( )
示例说明
常数K500为设定值,T0为定时器触点,对应经过值寄存器为WEV0。

当X0闭合时,T0闭合,Y0闭合,WEV0每隔0.01秒递增一次;在WEV0计数期间,X0断开与否不影响任何状态。

满0.01×500=5秒后T0断开,Y0断开, WEV0=01F4(十六进制数)。

X0断开,WEV0=0000。

程序示例2
X0
------| |------------↑---------------------------[MOV K500 WD0]
------[TP_R T0 WD0]
T0 Y0
------| |-------------------------------------------------------------- ( )
示例说明
寄存器WD0的值为设定值,预先用MOV指令把WD0的值设为K500,结果同程序示例1。

使用变量可方便地改变定时时间。

编程时的注意事项
在程序处理过程中定时器经过值递增,应编写程序使一个扫描周期内执行一次递增(如果使用了JMP、CALL等指令,使得程序在一个扫描周期内没有处理或产生多次出来,则不能得到正确的结果。


CU 加法计数器
概述
从预置值开始进行递增计数。

X0
WEV0] 经过值清零
------| |-------↑---------------------------[MOV K0
X1
------| |--------------------------------------[CU C0 K500] 加法计数器
C0 Y0
------| |-------------------------------------------------------------- ( )
示例说明
当X0闭合时,WEV0=0000,把C0计数触点对应的经过值清零;C0断开,Y0断开。

X1为计数输入,X1每闭合一次(上升沿),WEV0递增一次。

C0的状态不影响WEV0递增,最大到HFFFF。

常数K500为目标值,当WEV0≥K500(H01F4)时,C0闭合,Y0闭合。

程序示例2
X0
WEV0] 经过值清零
------| |-------↑---------------------------[MOV K0
K500 WD0] 设定目标值
X1
------| |--------------------------------------[CU C0 WD0] 加法计数器
C0 Y0
------| |-------------------------------------------------------------- ( )
示例说明
寄存器WD0的值为目标值,预先用MOV指令把WD0的值设为K500,结果同程序示例1。

使用变量可方便地改变计数目标值。

CD 减法计数器
概述
从预置值开始进行递减计数。

程序示例
X0
------| |-------↑---------------------------[MOV K500 WEV0] 设定经过值
X1
------| |--------------------------------------[CD C0 K0] 减法计数器
C0 Y0
------| |-------------------------------------------------------------- ( )
当X0闭合时,把C0计数触点对应的经过值WEV0=K500;C0断开,Y0断开。

X1为计数输入,X1每闭合一次(上升沿),WEV0递减一次。

当WEV0=0000时,C0闭合,Y0闭合。

2.1.3流程控制指令
流程控制指令可以改变程序执行的顺序,增加了程序的灵活性。

指令见下表:
表2-3:流程控制指令
指令符号操作数1数据类型功能
END 无无条件程序结束
CEND 无有条件程序结束
BK 无暂停程序
NOP 无空操作可与BK指令转换
MC 0~255任意十进制整数主控继电器指令
MCE 0~255任意十进制整数主控继电器结束指令
JMP 0~255任意十进制整数跳转指令
LBL 0~255任意十进制整数跳转标号指令
CALL 0~15任意十进制整数子程序调用
SUBR 0~15任意十进制整数子程序标号
RET 无子程序结束返回
END 无条件程序结束
概述
表示主程序的结束。

程序示例
X0 Y0
------| |------------------------------------------------( )
X1 M0
------| |------------------------------------------------( )
C0 Y4
------| |-------------------------------------------------( )
-------------------------------------------------------[ END ]
编程时的注意事项
每个程序至少有一个END指令,END后面的程序不被执行。

但可以放子程序,用CALL调用。

CEND 有条件程序结束
概述
当执行条件(触发器)为ON时,程序的一次扫描结束。

程序示例
X0 Y0
------| |------------------------------------------------( )
X1 M0
------| |------------------------------------------------( )
X2
------| |------------------------------------------[ CEND ]
C0 Y4
------| |-------------------------------------------------( )
-------------------------------------------------------[ END ]
示例说明
CNDE指令能够结束对程序的一次扫描。

当执行条件X2闭合时,程序结束并且进行输入、输出和其他操作。

操作完成后,程序回到开始地址。

在主程序内,可使用两个或多个CNDE指令。

编程时的注意事项
CNDE指令不能在子程序中使用,仅能在主程序区使用CNDE指令。

BK暂停程序
NOP空操作
概述
BK:当执行条件(触发器)为ON时,程序暂停。

仅能在PLC仿真状态使用。

NOP:空操作。

程序示例
X0 Y0
------| |------------------------------------------------( )
------------[ BK ]
X1 Y1
------| |------------------------------------------------( )
X0闭合时,Y0闭合,在仿真软件界面上BK变成红色,代表程序在该处暂停。

选运行菜单,可使程序继续运行。

用鼠标双击BK梯形图,会变成NOP指令,从而取消断点;双击NOP梯形图则变成BK指令。

编程时的注意事项
BK和NOP 指令的使用次数有限制,使用这两个指令的次数之和最多为254次。

BK指令只在CX1转换开关打到EV仿真状态时有效,CX1转换开关打到RUN运行状态时无效,被当作NOP 指令执行。

MC 主控继电器
MEC 主控继电器结束
概述
当执行条件为ON时,执行MC和MCE之间的程序。

当执行条件为OFF时,MC和MCE之间的输出全部为OFF。

程序示例
X0
------| |----------------------------------------------[ MC 0 ]
X1 M0
------| |------------------------------------------------( )
]
MCE 0
------------------------------------------------------[
示例说明
当执行条件X0为ON时,执行由MC1指令到MCE1指令之间的程序。

若执行条件为OFF,则位于MC1和MCE1指令之间的程序不进行输出处理,输出被置为OFF。

描述
当执行条件为ON时,执行MC1和MCE1之间的程序。

当执行条件为OFF状态时,各指令的操作如下:
指令输入和输出的状态
OUT 全部OFF
SET 保持原有状态
CLR 保持原有状态
TON_Y、TON_R 触点OFF、经过值清零
TOF_Y、TOF_R 触点OFF、经过值清零
TP_Y、TP_R 触点OFF、经过值清零
CU 保持原有数值
CD 保持原有数值
微分无效
其他指令不执行
在最初的MC-MCE指令之间,可以再嵌套次一级的MC-MCE指令。

(嵌套次数无限制。

)MC和MCE指令必须成对使用,且MC要在MCE前使用。

最大能用256对。

JMP 跳转
LBL 跳转标号
概述
跳转至与JMP指令有相同编号的LBL指令。

程序示例
X0
------| |--------------------------------------[JMP 0 ]
X1 M0
------| |------------------------------------------------( )
-----------------------------------------------[ LBL 0 ]
X2 Y1
------| |-------------------------------------------------( )
示例说明
当执行条件X0闭合时,程序由JMP 0跳转至LBL 0。

描述
当执行条件为ON时,程序跳转至与指定的跳转编号同号的标号(LBL)指令。

程序随后执行从由作为跳转目标的标号的地址开始的指令。

编程时的注意事项
在程序中可以两个或更多的JMP指令使用相同的标号。

如下图:
X0
------| |--------------------------------------[JMP 0 ]
X1
------| |--------------------------------------[JMP 0 ]
-----------------------------------------------[ LBL 0 ]
X2 Y1
------| |-------------------------------------------------( )
JMP要在LBL前使用。

不允许执行跳转从主程序进入子程序(子程序位于END指令之后),也不允许从子程序跳转至程序或一个子程序跳转至另一个子程序。

当执行条件为ON态时,MP和LBL指令之间的各指令的操作如下:
指令输入和输出的状态
OUT 全部保持
SET 保持原有状态
CLR 保持原有状态
TON_Y、TON_R 触点和经过值保持原有状态
TOF_Y、TOF_R 触点和经过值保持原有状态
TP_Y、TP_R 触点和经过值保持原有状态
CU 保持原有数值
CD 保持原有数值
微分无效
其他指令不执行
最大的编号为K255
CALL子程序调用
SUBR子程序标号
RET子程序结束返回
概述
CALL:执行指定的子程序。

SUBR:表示子程序的开始。

RET:表示子程序的结束。

程序示例
X0闭合,执行[SUBR 0]子程序
主程序结束
标号的子程序
0标号的子程序结束,返回到主程序
当执行条件(触发器)为ON时,执行CALL指令,并且从SUBR指令处开始执行指定编号的子程序。

当子程序执行到RET指令时,程序返回到CALL指令之后的主程序并且继续执行主程序。

编程时的注意事项
在一个主程序中可以有两个或两个以上标号相同的CALL指令,即可多处调用同一子程序。

子程序不可以进行嵌套,即子程序内不可再用CALL指令。

当CALL指令执行条件(触发器)为OFF时,子程序内各指令的操作如下:
指令输入和输出的状态
OUT 全部保持
SET 保持原有状态
CLR 保持原有状态
TON_Y、TON_R 触点和经过值保持原有状态
TOF_Y、TOF_R 触点和经过值保持原有状态
TP_Y、TP_R 触点和经过值保持原有状态
CU 保持原有数值
CD 保持原有数值
微分无效
其他指令不执行
比较触点指令是带有比较运算功能的触点指令,满足比较条件时触点闭合,这些指令在程序中非常有用。

表2-4:比较触点指令:(条件满足时,触点为“1”)
指令操作数1数据类型操作数2数据类型功能
LD=AND=OR=word型寄存器、常数word型寄存器、常数等于
LD<> AND<> OR<> word型寄存器、常数word型寄存器、常数不等于
LD>=AND>=OR>=word型寄存器、常数word型寄存器、常数大于等于
LD> AND> OR> word型寄存器、常数word型寄存器、常数大于
LD<=AND<=OR<=word型寄存器、常数word型寄存器、常数小于等于
LD< AND< OR< word型寄存器、常数word型寄存器、常数小于
LD=字比较:相等时初始加载
LD<>字比较:不等时初始加载
LD>=字比较:大于等于时初始加载
LD>字比较:大于时初始加载
LD<=字比较:小于等于时初始加载
LD<字比较:小于时初始加载
概述
将两个字数据(16bit)项进行比较作为运算条件。

根据比较的结果触点闭合或触点断开。

操作数1
Y0
等于WD1时触点闭合,否则触点触点断开。

操作数2
Y1
WD0大于等于H12AD时触点闭合,否则触点触点断开。

Y2
小于WD0时触点闭合,否则触点触点断开。

描述
根据比较条件,将由操作数1指定的字数据与由操作数2指定的字数据进行比较。

当比较结果为某一指定状态(=、<、>等)时,LD指令启动连接触点的逻辑运算。

编程时的注意事项
操作数1和操作数2不能同时为常数。

AND<>字比较:不等时逻辑与
AND>=字比较:大于等于时逻辑与
AND>字比较:大于时逻辑与
AND<=字比较:小于等于时逻辑与
AND<字比较:小于时逻辑与
概述
将两个字数据(16bit)项进行比较作为AND逻辑的运算条件。

根据比较的结果触点闭合或断开。

与其他触点串联。

程序举例
1
Y0
等于WD1时触点闭合,否则触点触点断开,并与X0串联。

2
Y1
|<=|--------------( ) WD0大于等于H12FF时触点闭合,否则触点触点断开,并与
X1串联,WD0小于等于H1300时触点闭合,否则触点触点断
开,并与前面的逻辑串联。

不等于WD0时触点闭合,否则触点触点断开,并与X2
串联。

描述
根据比较条件,比较由操作数1指定的字数据和由操作数2指定的字数据。

当比较结果为某一指定状态(=、<、>等)时,AND指令作用于串联的触点。

编程时的注意事项
操作数1和操作数2不能同时为常数。

=、AND<等指令可连续使用。

AND
OR=字比较:相等时逻辑或
OR<>字比较:不等时逻辑或
OR>字比较:大于时逻辑或
OR>=字比较:大于等于时逻辑或
OR<字比较:小于时逻辑或
OR<=字比较:小于等于时逻辑或
概述
将两个字数据(16bit)项进行比较作为OR逻辑的运算条件。

根据比较的结果触点闭合或断开。

与其他触点并联。

Y0
-----------------------------( ) 常开触点X0加载
操作数1
WD0等于WD1时触点闭合,否则触点触点断开,并与X0并联。

操作数2
WD0等于HDA30时触点闭合,否则触点触点断开,并与前面的逻
辑并联。

描述
根据比较条件,将由操作数1指定的字数据与由操作数2指定的字数据进行比较。

当比较结果为某一指定状态(=、<、>等)时,OR指令作用于并联的触点。

编程时的注意事项
操作数1和操作数2不能同时为常数。

=、OR<等指令可连续使用。

OR
2.2.1数据传输指令
表2-5:数据传输指令
指令操作数1数据类型操作数2数据类型操作数3数据类型功能
MOV word型寄存器、常数word型寄存器无复制
CML word型寄存器 word型寄存器无反码复制
INC word型寄存器 word型寄存器无加1复制
DEC word型寄存器 word型寄存器无减1复制
SFR word型寄存器 word型寄存器无右移复制
SFL word型寄存器 word型寄存器无左移复制
ROR word型寄存器 word型寄存器无循环右移复制
ROL word型寄存器 word型寄存器无循环左移复制
SWAP word型寄存器 word型寄存器无交换复制
MOV复制
概述
将16位数据复制到指定的16位区。

程序示例
X0
------ -| |--------------------------[MOV WD0 WD1] 当X0闭合时,WD0内的数据被复制到WD1。

X0
------ -| |---------↑--------------[MOV K1234 WD1] X0每闭合一次,常数1234被复制到WD1。

描述
由操作数1指定的16位数据或16位等值常数被复制到由操作数2指定的区域。

CML反码复制
概述
将16位数据按位取反并复制到指定的16位区域。

X0
------ -| |--------------------------[ CML WD0 WD1] 当X0闭合时,WD0内的数据被按位取反复制到WD1,
WD0不变。

如WD0=H AAAA,结果WD1=H5555。

描述
由操作数1指定的16位数据进行按位取反,并传输到由操作数2指定的区域。

INC加1复制
概述
将16位数据加1并复制到指定的16位区域。

程序示例
X0
------ -| |--------------------------[INC WD0 WD1] 当X0闭合时,WD0内的数据加1并复制到WD1,
WD0不变。

如WD0= K1234,结果WD1=K1235。

X0
------ -| |---------↑--------------[INC WD0 WD0] X0每闭合一次,WD0内的数据加1并传输到自己WD0,
如WD0= K5,结果WD0=K6。

描述
由操作数1指定的16位数据加1,并传输到由操作数2指定的区域。

编程时的注意事项
操作数1指定的16位数据为HFFFF时,加1后为H0000复制到操作数2指定的区域。

DEC减1复制
概述
将16位数据减1并复制到指定的16位区域。

程序示例
X0
------ -| |--------------------------[DEC WD0 WD1] 当X0闭合时,WD0内的数据减1并复制到WD1,
WD0不变。

如WD0= K1234,结果WD1=K1233。

X0
------ -| |---------↑--------------[DEC WD0 WD0] X0每闭合一次,WD0内的数据减1并复制到自己WD0,
如WD0= K5,结果WD0=K4。

描述
由操作数1指定的16位数据减1,并传输到由操作数2指定的区域。

编程时的注意事项
操作数1指定的的16位数据为H0000时,减1后为HFFFF复制到操作数2指定的区域。

概述
将16
位数据按位向右移动一位(带进位),并复制到指定的16位区域。

程序示例 1。

WD1。

M8030为1
,结果
1。

WD1。

M8030为1
,结果
由操作数1指定的16位数据按位向左移动一位(带进位),并传输到由操作数2指定的区域。

移位方法如下图所示:
bit F bit0
编程时的注意事项
如果用SFL指令复制到自己,一般与↑或↓微分指令联用,避免多次循环。

ROR循环右移复制
概述
将16位数据按位向右循环移动一位,并复制到指定的16位区域。

程序示例
X0
-----| |--------------------------------[ROR WD0 WD1] 当X0闭合,右移WD0内的数据,并复制到WD1。

如WD0=H0111,结果WD1=H8088, M8030=1。

X1
-----| |--------↑---------------------[ROR WD2 WD2] X1每闭合一次,右移WD2内的数据一次,
并复制到自己WD2。

如WD2=H0110,结果
WD2=H0088,M8030=0。

描述
由操作数1指定的16位数据按位向右移动一位,并传输到由操作数2指定的区域。

移位方法如下图所示:
bit F bit0
编程时的注意事项
如果用ROR指令复制到自己,一般与↑或↓微分指令联用,避免多次循环。

ROL循环左移复制
概述
将16位数据按位向左循环移动一位,并复制到指定的16位区域。

相关文档
最新文档