ABPLC中文完整指令集.docx
《ABPLC中文完整指令集.docx》由会员分享,可在线阅读,更多相关《ABPLC中文完整指令集.docx(35页珍藏版)》请在冰豆网上搜索。
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
确定运算顺序指令按预先规定的顺序而不必按用户列出的顺序执行写入表达式的运算。
可以通过把分组项组合到圆括号内来改变运算顺序强制指令在执行其他运算之前执行圆括号内的运算来改变运算顺序。
同级的运算顺序是从左向右执行