第四章ControlLogix 控制器指令介绍和编程应用(2)

2019-03-16 11:12

? 保持型通延时计时器 RTO 级条件成立(通),指令使能,计时;级条件

消失(断),指令未使能,累加值(ACC)不复位,所有状态位复位。

非保持型的计时器常常用作于定时,利用自身状态位DN做级条件,可令其自复位,从而产生定时工作脉冲。

2-2 计数器指令

计数器指令是输出指令,位于梯级的右边,当级条件发生跳变时,指令使能,并产生加1或减1的操作,计数器指令通常用来计数。 计数范围:-2,147,483,648 --- 2,147,483,647

有两种计数器:

? 增计数器 CTU 级条件跳变一次,累加值增加1,不管状态位(完成位

DN或上溢出位OV)是什么状态,都不会停止增计数。

? 减计数器 CTD 级条件跳变一次,累加值减去1,不管状态位(完成位

DN或下溢出位UN)是什么状态,都不会停止减计数。

如果要实现双向计数,不妨编制两条计数器指令,它们修改共同的数据元素ACC。

注意,与计时器不同,计数器指令的状态位DN、OV、UN,不管它们是什么状态,都不影响计数的进行,计数器的计数只取决于级条件的跳变。 2-3 复位指令

复位指令RES可给保持型的指令RTO、CTU、CTD复位,复位操作将累加值和状态位统统复零。好的编程习惯是:将所有的复位操作统统放在程序的最后几级。

3、比较指令

比较指令都是输入指令,用以决定梯级的条件,在编写梯形图程序时,往往都是面对工艺过程的逻辑关系,有以下几种比较类型:

1> 单一比较指令

EQU、NEQ 、GEQ、GRT、LEQ、LES都是完成单一比较的指令,每条指令只对两个比较对象进行比较。

2> 表达式比较指令

表达式比较指令CMP,比较对象可以是算逻运算表达式,用比较连接符进行比较。 3> 屏蔽比较指令

屏蔽比较指令MEQ,两个比较对象通过屏蔽代码位对位地进行比较。

? 完成范围比较的指令LIM,测试数值落在范围内或落在范围外。操作对

象的数据类型限于SINT、INT、DINT和DEAL,最优化的比较值是32位的数据DINT或REAL。

4、算术/逻辑运算指令

算术/逻辑运算指令都是输出指令,属于非保持型指令,当级条件成立的时候执行,也可以无条件执行,有以下两种类型的运算方式:

? 完成单一运算的指令,如ADD、SUB、MUL、DIV、SQR、NEG、

AND、OR、XOR、NOT、SIN、COS、TAN、ASN、ACS、ATN、LN、LOG、XPY。

? 完成表达式运算的指令,CPM,可用算逻运算符连接的表达式进行运

算。

每次运算结束,都会影响算逻运算标志位,其关键字为:

S:V 溢出标志位,目标地址发生溢出,置位,且次要故障置位。

S:Z 为零标志位,目标地址为零,置位。 S:N 符号标志位 目标地址为负,置位。 S:C 进位标志位 目标地址发生进位,置位。

这四个关键字是为数不多的几个直接寻址,不用建立标签旧可直接引用。 操作对象的数据类型限于SINT、INT、DINT或DEAL,最优化的运算值是32位的数据DINT或REAL。

当级条件存在时,每次程序扫描都会执行算术/逻辑运算指令,如只需要在满足条件时计算一次,最好采用ONS指令,从而节省程序执行时间。

算术/逻辑运算指令的运用,一般地说,符合运算的常规,但在ADD指令作累加器使用时,要特别注意它的执行条件。

5、传送/转换指令

传送/转换指令都是输出指令,在级条件成立的时候执行。

? 传送和带屏蔽传送指令,MOV、MVM,

? 位域分配指令,BTD,可完成数据单元内传送和数据单元间传送,该指

令的操作,可改变一段位域的位置。

? 码/数转换指令,TOD、FRD,码制(BCD码)和数制(十进制)之间的

转换,使用时请注意,码制是不可运算的,所以常常需要进行转换。 ? 角度/弧度的转换指令,DEG、RAD,角度和弧度之间的相互转换。 ? 清除指令,CLR,清除目标单元数据,令其为零。

6、数组(文件)操作指令

以上讨论的指令都是对元素的操作,相似于PLC-5/SLC指令系统的文件操作指令,ControlLogix 指令系统中有一些指令是对数据连续存储的数组进行操作。下面要学习的指令是数组(文件)操作指令,它们的操作对象是数据连续存储的数组,一般地,操作方式有以下三种:

数组操作指令FAL、COP、FLL、FSC、AVE、SRT、STD。 6-1 数组(文件)算逻运算指令 FAL

这条指令是一条处理功能很强的指令,它既可以运算,也可以传送和转换。不同于COP指令的是,它可以对结构型数据的单个元素完成数据连续存储的数组的操作,处理方式非常灵活,它的执行过程有三种操作模式可选择:

--- 整体模式 级条件跳变激活指令后,指令一次完成所有的操作,一般 用于数组对数组的操作。Mode项输入ALL。

--- 数值模式 级条件跳变激活指令后,每次扫描完成指定的操作个数, 多次扫描指令才执行完毕,即使在执行过程中,级条件消失,仍然要 完成全部的操作,一般用于数组对数组的操作,其操作结果相似于整 体模式,不同的是,将一条指令的操作分担给几个扫描周期,此方式 适合该条指令执行工作量很大的情况。Mode项输入正整数。

--- 增量模式 级条件跳变一次执行一次,跟SQO指令相似,一般用于数 组对元素的操作。Mode项输入INC。

编写FAL指令有以下几点要注意:

? FAL指令的执行必须有级条件的跳变,受COP指令的影响,常常被人忽视

这一点,以至于出现指令不执行的错误。

? 对基本类型数据的数组操作时,数据地址使用被操作范围的第一个元素(和

其他数组操作指令一样);对结构型数组的单个元素操作时,必须采用变址的方式寻找单个元素的地址。常用的方法是用控制结构体的POS来进行修改(ALL方式必须如此,其他方式则可以用指令在外部修改),因为POS

是从0开始计数的,所以当第一个被操作元素不是数组的0地址时,必须加上偏移量,如:Array_Timer[Control_FAL.POS+2].ACC。

6-2 数组(文件)复制指令COP 、CPS

COP指令的执行是存储器从字节到字节的直接复制,即存储空间的对应搬运,通常是数组对数组的操作,源操作数和目标操作数如果不是相同类型的数据,要特别注意指令参数中的长度即指目标地址的元素个数,如下面这条指令:

Driver_1 是一个占用40个字节的用户自定义的结构体,如果要COP到双整数数组,必须用10个元素(40个字节)来接受;源操作数和目标操作数反过来,则长度应为1。

正因为COP只是存储空间之间的直接搬运,所以,不可以对结构体数组中结构体元素中的单个元素进行操作,要完成这种操作,只能用FAL指令。 CPS指令是同步拷贝指令,特别用于从基本内存的数据缓存区拷贝到内部数据区,这条指令具有屏蔽中断的功能,在拷贝过程中,背板CPU不能中止它的执行过程,因而能获得完整的数据,在不允许一个数据块新旧数据混杂时,采用这条指令。

此例是对一个10个双整字的数组Consumed标签进行同步拷贝。

6-3 数组(文件)充填指令 FLL

这条指令是用源地址的元素充填目标地址的数组,指令参数中的长度是目标地址的字节数,指令的的执行通常用作于数组的初始化。


第四章ControlLogix 控制器指令介绍和编程应用(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:论林黛玉的人生悲剧

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: