ABPLC中文完整指令集Word文档格式.docx
《ABPLC中文完整指令集Word文档格式.docx》由会员分享,可在线阅读,更多相关《ABPLC中文完整指令集Word文档格式.docx(35页珍藏版)》请在冰豆网上搜索。
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
不计时
真
1
正在计时,累积值<
预置值
累积值>
=预置值,计时完成
用复位指令RES
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的操作及其相应的状态可用下表描述.
计时器不计时,ACC=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
立即数
计数次数
累加值
计数器已经计数的次数,一般初始值为0
计数器结构:
助记符
.CU
BOOL
加计数使能位—标识CTU指令被使能
.DN
完成位—标识累加值(.ACC)>
=(预置值.PRE)
.OV
益出位—标识计数器超过上限值2147483647。
然后计数器返回到-2147483648。
并再开始加计数
.PRE
预置值—指定在指令置位完成位(.DN)之前累加值所达到的值
.ACC
累加值—表示指令已经计数的梯级转换的次数。
说明:
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指令是一条输出指令。
.CD
减计数使能位—标识CTD指令被使能
完成位—标识累加值(.ACC)(预置值.PRE)
.UN
下出位—标识计数器超过下限值-2147483648。
然后计数器返回到2147483647。
在开始减计数
CTD指令向下计数。
如果指令被使能时减计数使能位(.CD)是清零状态,则CTD指令使计数值减1。
如果指令被使能时减计数位(.CU)置位,或指令被禁止,则CTD指令保持它的累加值(.ACC)。
即使完成位(.DN)被置位之后,累加值也继续减少。
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
-
减/非
*
乘
/
除
=
等于
<
小于
小于或等于
>
大于
大于或等于
不等于
**
指数
ACS
反余弦
REAL
AND
按位与
ASN
反正弦
ATN
反正切
COS
余弦
DEG
弧度转换成角度
FRD
BCD码转换成整数
LN
自然对数
LOG
以10为底的对数
NOT
位补码
OR
按位OR
RAD
角度转换成弧度
SIN
正弦
SQR
平方根
TAN
正切
TOD
整数转换成BCD
XOR
按位异或
确定运算顺序指令按预先规定的顺序,而不必按用户列出的顺序,执行写入表达式的运算。
可以通过把分组项组合到圆括号内来改变运算顺序,强制指令在执行其他运算之前执行圆括号内的运算,来改变运算顺序。
同级运算顺序从左向右执行。
顺序
1
ACS,ASN,ATN,COS,DEG,FRD,LN,LOG,RAD,SIN,SQR,TAN,TOD
2
3
-(取反),NOT
4
*,/
5
<
=,>
>
=,=
6
-(减),+
7
8
9
与专用比较指令相比,执行一条CMP指令速度稍慢而且占用更多的内存。
CMP指令的优点是用户可以在一条指令内写入复杂的表达式。
如果CMP指令判断表达式为真,则梯级输出条件被设置为真。
如果输入一个没有比较运算符
的表达时,例如,Ivalue_1+value_2,则指令计算表达式的数值:
如果表达式的值是
梯级输出条件被设置为
非零值
真
零值
2.等于指令(EQU)
EQU指令是一条输入指令。
如果value_1与value_2相等,则梯级输出条件被设置为真。
源A
与源B比较的数值
源B
与源A比较的数值
EQU指令测试源A的值与源B的值是否相等。
REAL数据类型的数值很少绝对相等。
如果必须确定两个REAL值是否相等,可以使用LIM指令。
3.大于或等于指令(GEQ)
GEQ指令是一条输入指令。
如果value_1大于或等于value_2,则梯级输出条件被设置为真。
操作数
GEQ指令测试源A的值是否大于或等于源B的值。
4.大于指令(GRT)
GRT指令是一条输入指令。
如果value_1大于value_2,则梯级输出条件被设置为真。
GRT指令测试源A的值是否大于源B的值。
5.小于或等于指令(LEQ)
如果value_1小于或等于value_2,则梯级输出条件被设置为真。
6.小于指令(LES)
LES指令是一条输入指令。
如果value_小大于value_2,则梯级输出条件被设置为真。
LES指令测试源A的值是否小于源B的值。
7.极限比较指令(LIM)
LIM指令是一条输入指令。
下限
下限值
源B测试
测试值
上限
上限值
LIM指令比较测试值是否在下限和上限范围内。
LIM指令举例:
例1
LowLimit<
=HighLimit:
当0<
=value<
=100时,接通light_1.
例2
LowLimit>
当value>
=0或value<
=-100时,接通light_1.
8.屏蔽等于指令(MEQ)
MEQ指令是一条输入指令。
源
SINTINTDINT
与比较值比较的数值
屏蔽
阻止或通过的位
比较
与源值比较的数值
MEQ指令比较通过屏蔽的源值和比较值的结果。
MEQ指令举例:
例1:
Value_1:
Mask_1:
通过屏蔽的value_1:
Value_2:
通过屏蔽的value_2:
9.不等于指令(NEQ)
NEQ指令是一条输入指令。
如果value_1不等于value_2,则梯级输出条件被设置为真。
NEQ指令测试源A的值与源B的值是否相等。
四、计算/算术指令
1计算指令(CPT)
CPT指令是一条输出指令。
操作数:
数据类型:
格式:
说明:
目的单元
存储结果的标签
SINTlNTDINTREAL
表达式由运算符分开的标签/立即数组成。
CPT指令执行表达式中定义的算术运算。
当指令被使能时CPT指令计算表达式的数值并且存放结果于目的单元内。
与其它算术指令运算相比CPT指令的运算速度稍慢而且占用更多的内存。
CPT指令的优点是它允许用户在一条指令内输入复杂的表达式。
有效运算符:
运算符:
最优数据类型:
DINT,REAL
指数(xtoy)
确定运算顺序指令按预先规定的顺序而不必按用户列出的顺序执行写入表达式的运算。
可以通过把分组项组合到圆括号内来改变运算顺序强制指令在执行其他运算之前执行圆括号内的运算来改变运算顺序。
同级的运算顺序是从左向右执行