ABPLC指令集.docx

上传人:b****5 文档编号:11766500 上传时间:2023-04-01 格式:DOCX 页数:38 大小:150.94KB
下载 相关 举报
ABPLC指令集.docx_第1页
第1页 / 共38页
ABPLC指令集.docx_第2页
第2页 / 共38页
ABPLC指令集.docx_第3页
第3页 / 共38页
ABPLC指令集.docx_第4页
第4页 / 共38页
ABPLC指令集.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

ABPLC指令集.docx

《ABPLC指令集.docx》由会员分享,可在线阅读,更多相关《ABPLC指令集.docx(38页珍藏版)》请在冰豆网上搜索。

ABPLC指令集.docx

ABPLC指令集

 

ABPLC指令集

 

ABPLC指令集

一、位指令

1.检查是否闭合指令(XIC)

XIC属输入指令,若相应位地址中是1(ON),则表示该指令的逻辑为真(true).它类似于常开开关,如果位地址使用了输入映象表的位,则其状态必须与相应地址实际输入设备的状态相一致.XIC的指令形式如右图.在该指令中,若发现数据表中Local:

1:

I.Date.0是ON状态(数据为1),则指令为真.Local:

1:

I.Date.0与本地机架1号槽的数据第0位对应,若输入电路为真,则指令为真.

2.检查是否断开指令(XIO)

XIO属输入指令,若相应位地址的数据是1(ON),则表示该指令的逻辑为假(false),否则该指令的逻辑为真(true),它类似于一常闭开关.XIO的形式如右图.在该指令中,若发现数据表中Local:

1:

I.Date.0是OFF(数据为0)则指令为真.Local:

1:

I.Date.0与本地机架1号槽的数据第0位对应,若输入电路为假则指令为真.

3.输出激励指令(OTE)

OTE属输出指令,用于控制存贮器中的位.若该位对应输出模块上的一个端子,则当该指令使能时,连接到该端子上的设备被接通,反之,设备不动作.若OTE指令前面的阶梯条件为真,则处理器使能OTE指令.

一条OTE指令如同一个继电器的线圈.OTE指令由它前面的输入指令控制,而继电器的线圈由硬触点控制.OTE的形式如右图.

在该指令中,若阶梯条件为真,则该指令使处理器把输出映象表中的Local:

2:

O.Date.0置为ON状态(数值为1);若阶梯条件为假,则置为OFF状态(数值为0).地址Local:

2:

O.Date.0与本地机架2槽的数据第0位对应

4.输出锁存指令(OTL)

OTL属输出指令,并且是保持型指令,也就是说,当阶梯条件是真时,OTL指令使处理器置位某一地址位,然后该位保持置位.此后即使阶梯条件变假,该位依然保持置位;若要复位,则需要在另一阶梯中使用解锁指令OUT对同一地址的位解锁.OTL的形式如右图.

在该指令中,若阶梯条件为真,则使处理器把输出映象表中的Local:

2:

O.Date.0置位,直至用OUT对其解锁.

5.输出解锁存指令(OUT)

OUT常用以复位由OTL指令锁存的位.当阶梯条件为真时,对相应的位复位.以后即使阶梯条件变假,该位依然保持复位(置0),除非采用另一指令对该位重新置位.OTU的形式如右图.其含义与OTL对应.

6.一次响应指令(ONS)

ONS属输入指令,如果指令被使能时存储位清零,则ONS指令使能梯级的其余部分,如果被禁止或存储位置位,ONS指令禁止梯级的其余部分.在扫描时,如果limit_switch_1是清零状态或storage_1是置位状态,则不影响阶梯.如果当扫描limit_switch_1是置位状态且storage_1是清零状态.则ONS指令置位storage_11且ADD指令的和数值就保持不变,必须在limit_switch_1再次从清零变为置位,和的值才增加.

7.上升沿触发指令(OSR)

OSR是一条输出指令,OSR指令根据存储位的状态置位或清零输出位.如果指令被使能时存储位清零,则OSR指令置位输出位.如果使能时存储位置位或禁止,则OSR指令清零输出位.

每次limit_switch_1从清零状态变为置位时,OSR指令置位output_bit_1并且ADD指令的和加5.只要limit_switch_1保持置位,和的值就不变.必须在limit_switch_1再次从清零变为置位,和的值才再增加.用户可以在多个梯级使用output_bit_1触发其他操作.

8.下降沿触发指令(OSF)

OSF指令是一条输出指令,OSF指令根据存储位的状态置位或清零输出位.当指令被禁止时存储位置位,OSF指令置位输出位.如果指令禁止或使能时存储位是清零状态,则OSF指令清零输出位.

每次limit_switch_1从置位状态变为清零时,OSF指令置位output_bit_1并且ADD指令的和加5.只要limit_switch_1保持清零,和的值就不变.必须在limit_switch_1再次从置位变为清零,和的值才再增加.用户可以在多个梯级使用output_bit_1触发其他操作.

二、计时器和计数器指令

1.延时导通计时器指令(TON)

利用TON指令在预置时间内计时完成去控制输出的接通或断开.当阶梯为真时,TON指令开始累加计时,直至下列条件之一发生为止:

●累加值等于预置值.

●阶梯变假.

●复位计时器.

●相关的SFC步变无效.

一旦阶梯条件变假,不论计时器是否到时,处理器都复位累加值.可见每一个TON必须使用一个计时器元素(如),并提供下列参数:

(1)预置值(Present):

用以设置预定时间,以一个16位的整数值放置,范围0~32767.

(2)累加值(Accum):

是一个动态值,告诉用户目前已经延时的数值,计时器复位时,其值为

1.TON的操作及其相应的状态可用下表描述.

阶梯条件

EN(有效位)

TT(计时位)

DN(完成位)

说明

0

0

0

不计时

1

1

0

正在计时,累积值<预置值

1

0

1

累积值>=预置值,计时完成

用复位指令RES

0

0

0

ACC=0,PRE不变,计时器复位

TON指令举例

当limit_switch_1被置位时,light_2接通180毫秒(timer_1计时).当timer_1的累加值.ACC达到180时,light_3接通.而且保持导通直到TON指令被禁止.如果在timer_1正计时时limit_switch_1断开,则关断light_2.

2.延时断开计时器指令(TOF)

TOF指令在阶梯条件变假时开始累加计时直至下列条件之一产生:

●累加值等于预置值.

●阶梯条件变为真

●相关的SFC步变无效.一旦阶梯条件变真,不论计时器是否到时,处理器都复位累加值.各参数的含义与TON相同.TOF的操作及其相应的状态可用下表描述.

一旦阶梯条件变真,不论计时器是否到时,处理器都复位累加值.各参数的含义与TON相同.TOF的操作及其相应的状态可用下表描述.

阶梯条件

EN(有效位)

TT(计时位)

DN(完成位)

说明

1

0

1

计时器不计时,ACC=0,计时器复位

0

1

1

正在计时,累积值<预置值

0

0

0

累积值=预置值,计时完成

由于RES指令将对正在计时的计时器累加值,完成位和计时位进行复位,所以不可用RES复位指令复位TOF.TOF指令举例

当limit_switch_2被清零时,light_2接通180毫秒(timer_2计时).当timer_2的累加值.ACC达到180时,light_2断开同时light_3接通.而且保持导通直到TOF指令被使能.如果在timer_2正计时时limit_switch_2被置位,则关断light_2.

3.保持型计时器RTO

RTO指令在阶梯条件为真,开始计时,直到累加值达到预置值为止。

下列条件发生时,RTO指令保持其累加值:

●阶梯变假。

●用户改变到编程方式。

●处理器出错或断电。

●相关的SFC步变无效。

当处理器重新运行或阶梯变真时,计时器从保持的值开始续计时。

由于保持累加值,所以在阶梯为真的时间内保持型计时器测量了累加时间。

如果RTO阶梯条件变假后,要复位其累加值和状态位,用户需在另一条阶梯中编写具有相同地址的复位指令RES。

RTO指令举例:

当limit_switch_1被置位时,light_1接通180毫秒(timer_3计时).当timer_3的累加值.ACC达到180时,light_1断开同时light_2接通.而且light_2保持导通直到timer_3被复位。

如果在timer_3正计时时limit_switch_2被清零,则light_1保持导通。

当limit_switch_2被复位时,RES指令复位timer_3(清零状态位和.ACC)。

4.加计数指令(CTU)

CTU指令是一条输出指令。

操作数:

操作数

数据类型

格式

说明

计数器

COUNTER

标签

计数器结构

预置值

DINT

立即数

计数次数

累加值

DINT

立即数

计数器已经计数的次数,一般初始值为0

计数器结构:

助记符

数据类型

说明

.CU

BOOL

加计数使能位—标识CTU指令被使能

.DN

BOOL

完成位—标识累加值(.ACC)>=(预置值.PRE)

.OV

BOOL

益出位—标识计数器超过上限值2147483647。

然后计数器返回到-2147483648。

并再开始加计数

.PRE

DINT

预置值—指定在指令置位完成位(.DN)之前累加值所达到的值

.ACC

DINT

累加值—表示指令已经计数的梯级转换的次数。

说明:

CTU指令向上计数。

如果指令被使能时加计数使能位(.CU)是清零状态,则CTU指令使计数器加1。

如果指令被使能位(.CU)是置位状态,或指令被禁止,CTU指令保持它的累加值(.ACC)。

即使完成位(.DN)被置位之后,累加值也继续增加。

如果要清零累加值,可以用一条引用同一计数器结构的RES指令,或写0值到计数器的累加值。

CTU指令举例:

limit_switch_1由禁止变为使能10次之后,完成位.DN被置位。

并且接通light_1。

如果limit_switch_1继续由禁止变为使能,则计数器counter_1继续增加它的计数值,且完成位.DN保持置位状态。

当limit_switch_2被使能时,RES指令复位counter_1(清零状态位和.ACC值)并且关断light_1。

5.减计数指令(CTD)

CTD指令是一条输出指令。

操作数:

操作数

数据类型

格式

说明

计数器

COUNTER

标签

计数器结构

预置值

DINT

立即数

计数次数

累加值

DINT

立即数

计数器已经计数的次数,一般初始值为0

计数器结构:

助记符

数据类型

说明

.CD

BOOL

减计数使能位—标识CTD指令被使能

.DN

BOOL

完成位—标识累加值(.ACC)(预置值.PRE)

.UN

BOOL

下出位—标识计数器超过下限值-2147483648。

然后计数器返回到2147483647。

在开始减计数

.PRE

DINT

预置值—指定在指令置位完成位(.DN)之前累加值所达到的值

.ACC

DINT

累加值—表示指令已经计数的梯级转换的次数。

说明:

CTD指令向下计数。

如果指令被使能时减计数使能位(.CD)是清零状态,则CTD指令使计数值减1。

如果指令被使能时减计数位(.CU)置位,或指令被禁止,则CTD指令保持它的累加值(.ACC)。

即使完成位(.DN)被置位之后,累加值也继续减少。

如果要清零累加值,可以用一条引用同一计数器结构的RES指令,或写0值到计数器的累加值。

CTD指令举例:

传送装置把零件带到缓存区。

每进入一个零件,limit_switch_1被使能且counter_1的累加值加1。

每取出一个零件limit_switch_被使能且counter_1的累加值减1。

如果有100个零件进入缓存区(置位counter_1的完成位.DN),则关断传送装置A,在缓存区有空间之前,不用传送零件进入缓存区。

6.复位指令(RES)

RES指令是一条输出指令。

操作数:

操作数

数据类型

格式

说明

结构

TIMERCONTROLCOUNTER

标签

复位的结构

三、比较指令

1.比较指令(CMP)

CMP是一条输入指令。

操作数:

操作数

数据类型

格式

说明

表达式

SINTINTDINTREAL

立即数标签

表达式由被运算符分隔的标签与/或立即数组成

说明:

CMP指令执行表达式中指定的算术运算比较。

用户要执行的运算由表达式定义。

用运算符,标签和立即数定义表达式。

表达式中的复杂部分用圆括号()定义。

有效运算符

运算符

说明

最优数据类型

+

DINT,REAL

-

减/非

DINT,REAL

*

DINT,REAL

/

DINT,REAL

=

等于

DINT,REAL

<

小于

DINT,REAL

<=

小于或等于

DINT,REAL

>

大于

DINT,REAL

>=

大于或等于

DINT,REAL

<>

不等于

DINT,REAL

**

指数

DINT,REAL

ACS

反余弦

REAL

AND

按位与

DINT

ASN

反正弦

REAL

ATN

反正切

REAL

COS

余弦

REAL

DEG

弧度转换成角度

DINT,REAL

FRD

BCD码转换成整数

DINT

LN

自然对数

REAL

LOG

以10为底的对数

REAL

NOT

位补码

DINT

OR

按位OR

DINT

RAD

角度转换成弧度

DINT,REAL

SIN

正弦

REAL

SQR

平方根

DINT,REAL

TAN

正切

REAL

TOD

整数转换成BCD

DINT

XOR

按位异或

DINT

确定运算顺序指令按预先规定的顺序,而不必按用户列出的顺序,执行写入表达式的运算。

可以通过把分组项组合到圆括号内来改变运算顺序,强制指令在执行其他运算之前执行圆括号内的运算,来改变运算顺序。

同级运算顺序从左向右执行。

顺序

运算符

1

ACS,ASN,ATN,COS,DEG,FRD,LN,LOG,RAD,SIN,SQR,TAN,TOD

2

**

3

-(取反),NOT

4

*,/

5

<,<=,>,>=,=

6

-(减),+

7

AND

8

XOR

9

OR

与专用比较指令相比,执行一条CMP指令速度稍慢而且占用更多的内存。

CMP指令的优点是用户可以在一条指令内写入复杂的表达式。

如果CMP指令判断表达式为真,则梯级输出条件被设置为真。

如果输入一个没有比较运算符

的表达时,例如,Ivalue_1+value_2,则指令计算表达式的数值:

如果表达式的值是

梯级输出条件被设置为

非零值

零值

2.等于指令(EQU)

EQU指令是一条输入指令。

如果value_1与value_2相等,则梯级输出条件被设置为真。

操作数:

操作数

数据类型

格式

说明

源A

SINTINTDINTREAL

立即数标签

与源B比较的数值

源B

SINTINTDINTREAL

立即数标签

与源A比较的数值

说明:

EQU指令测试源A的值与源B的值是否相等。

REAL数据类型的数值很少绝对相等。

如果必须确定两个REAL值是否相等,可以使用LIM指令。

3.大于或等于指令(GEQ)

GEQ指令是一条输入指令。

如果value_1大于或等于value_2,则梯级输出条件被设置为真。

操作数

操作数

数据类型

格式

说明

源A

SINTINTDINTREAL

立即数标签

与源B比较的数值

源B

SINTINTDINTREAL

立即数标签

与源A比较的数值

说明:

GEQ指令测试源A的值是否大于或等于源B的值。

4.大于指令(GRT)

GRT指令是一条输入指令。

如果value_1大于value_2,则梯级输出条件被设置为真。

操作数:

操作数

数据类型

格式

说明

源A

SINTINTDINTREAL

立即数标签

与源B比较的数值

源B

SINTINTDINTREAL

立即数标签

与源A比较的数值

说明:

GRT指令测试源A的值是否大于源B的值。

5.小于或等于指令(LEQ)

GEQ指令是一条输入指令。

如果value_1小于或等于value_2,则梯级输出条件被设置为真。

操作数:

操作数

数据类型

格式

说明

源A

SINTINTDINTREAL

立即数标签

与源B比较的数值

源B

SINTINTDINTREAL

立即数标签

与源A比较的数值

6.小于指令(LES)

LES指令是一条输入指令。

如果value_小大于value_2,则梯级输出条件被设置为真。

操作数:

操作数

数据类型

格式

说明

源A

SINTINTDINTREAL

立即数标签

与源B比较的数值

源B

SINTINTDINTREAL

立即数标签

与源A比较的数值

说明:

LES指令测试源A的值是否小于源B的值。

7.极限比较指令(LIM)

LIM指令是一条输入指令。

操作数:

操作数

数据类型

格式

说明

下限

SINTINTDINTREAL

立即数标签

下限值

源B测试

SINTINTDINTREAL

立即数标签

测试值

上限

SINTINTDINTREAL

立即数标签

上限值

说明:

LIM指令比较测试值是否在下限和上限范围内。

LIM指令举例:

例1

LowLimit<=HighLimit:

当0<=value<=100时,接通light_1.

例2

LowLimit>=HighLimit:

当value>=0或value<=-100时,接通light_1.

8.屏蔽等于指令(MEQ)

MEQ指令是一条输入指令。

操作数:

操作数

数据类型

格式

说明

SINTINTDINT

立即数标签

与比较值比较的数值

屏蔽

SINTINTDINT

立即数标签

阻止或通过的位

比较

SINTINTDINT

立即数标签

与源值比较的数值

说明:

MEQ指令比较通过屏蔽的源值和比较值的结果。

MEQ指令举例:

例1:

Value_1:

0

1

0

1

0

1

0

1

1

1

1

1

1

1

1

1

Mask_1:

1

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

通过屏蔽的value_1:

0

1

0

1

0

1

0

1

1

1

1

1

*

*

*

*

Value_2:

0

1

0

1

0

1

0

1

1

1

1

1

0

0

0

0

Mask_1:

1

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

通过屏蔽的value_2:

0

1

0

1

0

1

0

1

1

1

1

1

*

*

*

*

9.不等于指令(NEQ)

NEQ指令是一条输入指令。

如果value_1不等于value_2,则梯级输出条件被设置为真。

操作数:

操作数

数据类型

格式

说明

源A

SINTINTDINTREAL

立即数标签

与源B比较的数值

说明:

NEQ指令测试源A的值与源B的值是否相等。

四、计算/算术指令

1计算指令(CPT)

CPT指令是一条输出指令。

操作数:

操作数:

数据类型:

格式:

说明:

目的单元

SINTINTDINTREAL

标签

存储结果的标签

表达式

SINTlNTDINTREAL

立即数标签

表达式由运算符分开的标签/立即数组成。

说明:

CPT指令执行表达式中定义的算术运算。

当指令被使能时CPT指令计算表达式的数值并且存放结果于目的单元内。

与其它算术指令运算相比CPT指令的运算速度稍慢而且占用更多的内存。

CPT指令的优点是它允许用户在一条指令内输入复杂的表达式。

有效运算符:

运算符:

说明:

最优数据类型:

+

DINT,REAL

-

减/非

DINT,REAL

*

DINT,REAL

/

DINT,REAL

**

指数(xtoy)

DINT,REAL

ACS

反余弦

REAL

AND

按位与

DINT

ASN

反正弦

REAL

ATN

反正切

REAL

COS

余弦

REAL

DEG

弧度转换成角度

DINT,REAL

FRD

BCD码转换成整数

DINT

LN

自然对数

REAL

LOG

以10为底的对数

REAL

NOT

位补码

DINT

OR

按位OR

DINT

RAD

角度转换成弧度

DINT,REAL

SIN

正弦

REAL

SQR

平方根

DINT,REAL

TAN

正切

REAL

TOD

整数转换成BCD

DINT

XOR

按位异或

DINT

确定运算顺序指令按预先规定的顺序而不必按用户列出的顺序执行写入表达式的运算。

可以通过把分组项组合到圆括号内来改变运算顺序强制指令在执行其他运算之前执行圆括号内的运算来改变运算顺序。

同级的运算顺序是从左向右执行。

顺序:

运算符:

1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1