第四章ControlLogix 控制器指令介绍和编程应用
更新时间:2024-06-28 20:47:01 阅读量: 综合文库 文档下载
- 第四章从小到大何时暴晒过推荐度:
- 相关推荐
第四章 ControlLogix 控制器指令介绍和编程应用
本章内容: ControlLogix 控制器指令分类介绍。
本章目的: 掌握编写程序的基本要求,通过指令的分类学习了解各类指令的特
点,正确理解指令参数的输入,尤其是数据类型的运用,着重于通讯指令的学习。
应该说,ControlLogix 控制器与传统的可编程序控制器PLC-5/SLC500最大的区别是硬件结构的变化、数据结构的变化和通讯系统的变化,但它仍然保留或沿用了传统的可编程序控制器的指令系统,指令功能的差异不大,所以,关于编程,还有许多经验可以借鉴。 一. 控制器编程基础
要得到一个简洁、精确、严密的逻辑控制程序,除了对生产过程工艺的了解和分析,对整个控制系统正确的规划和设计,还要对程序的逻辑结构(即指令执行顺序)、数据的刷新过程、指令的详尽功能有着深刻的了解,才能正确地去编写或修改程序。关于编程的基础知识有如下三个方面需要了解。 1.梯形图程序的逻辑结构
ControlLogix 控制器的控制程序编写方式有梯形图程序、顺序功能流程图程序和语句程序。语句编程的程序可编译成梯形图程序相似的执行顺序,是适合计算机程序开发人员使用的方式;顺序功能流程图程序实质上是一个结构程序,它的结构元素还是梯形图程序或语句程序。所以,控制器的编程,通常是基于梯形图程序的编程。
梯形图程序由指令构成的逻辑梯级集合而成,逻辑梯级的结构则由输入指令和输出指令两部分组成:
输入指令 决定梯级条件的指令,通常是以下三类指令:
? 位指令的逻辑运算结果 在梯形图中用得最多的形式,根据生产过程
的与或非逻辑关系编制出来的结构,其结果必为逻辑结果。 ? 比较指令的比较结果 用大小相等关系进行比较和数值范围进行判定
而产生的逻辑结果。
? 检测或诊断的结果 两条特殊的指令SQI和DTR可对操作对象进行
检测和诊断,得出逻辑结果。
输入指令的运行,并不产生执行某种操作的动作,但都会得到逻辑结果,这就是梯级条件,它将决定要不要做,梯级条件的存在有两种情形:
持续一段时间 ,逻辑上表现为宽脉冲 出现瞬间时间,逻辑上表现为窄脉冲 输出指令配合使用的关系。
输出指令 按梯级条件执行,引起操作的指令,通常有以下三类指令:
? 非保持型指令 在梯级条件持续期间执行,在梯级条件消失后便停止
执行。具有代表性的指令是计时器指令,一般地,位指令、传送指令、转换指令、算逻运算指令等都属于非保持型指令。这类指令也可以是无条件的,即没有输入指令,指令总是在执行。
? 保持型指令 在梯级条件跳变时执行,靠梯级条件前沿触发引起执行
动作。具有代表性的指令是计数器指令,一般地,位锁存指令、移位指令、堆栈操作指令、顺序器操作指令等都属于保持型指令。在编写程序时要注意给予有跳变的梯级条件。
? 可选型指令 可选择不连续方式或连续方式,一般是对外操作的通讯
指令,例如MSG指令。选择不连续方式时,梯级条件跳变一次,指令执行一次;选择连续方式时,指令被触发后,即使梯级条件消失或不跳变,仍可以连续执行。
输出指令的执行是具体操作的动作,但这种执行动作与输入指令的存续有很大的关系,也即级条件将决定输出指令的执行。
值得指出的是,在PLC-5/SLC500的梯形图编程中,这种梯级的输入指令和输出指令的关系是十分严格的,一个梯级只有一对输入指令和输出指令的关系。但是在ControlLogix 控制器的梯形图编程中,已经变得非常灵活,可以在同一个梯级中编写含有好几个梯级条件的指令集合。尽管如此,输入指令和输出指令之间的对应关系仍然是非常明确的,在逻辑因果关系较为复杂的情况下,建议采用传统的方式去编写。
2.数据的刷新时间与程序执行的关系
ControlLogix 控制系统编写程序时,往往按照工艺流程的逻辑关系编写的梯形图程序,运行下来,却有不可思议的逻辑问题,反复检查,都不是梯级或指令的逻辑错误,这是为什么呢?这跟运行时的数据状况有关。
传统的可编程序控制器的工作周期由输入扫描、程序扫描和输出扫描三个阶段组成,输入扫描刷新了所有的输入映象表;程序扫描则根据最新输入数据按编制好的梯形图逻辑执行,产生最新控制结果,即刷新输出映象表;输出扫
梯级条件的存续时间,是编写输出指令的重要依据,它将确定输入指令和
描刷新所有的输出模块。这个过程是非常清晰和明确的,开发者很容易按工艺过程编写逻辑关系而不至于产生混乱,因为在整个程序扫描过程中,输入数据是不发生改变的。
ControlLogix 控制系统的I/O数据交换是生产者/用户方式,I/O模块不再是被动的数据承受者,而是主动的数据产生者,它们按照定义的中断时间发送或接受数据,I/O数据的刷新时间完全地独立于程序扫描。在控制器中,有两个CPU同时工作,一个分管逻辑程序的扫描,一个分管对外的数据交换,程序扫描和I/O交换是分别进行的,是相互独立的,完全有可能在程序扫描的过程中,输入数据发生了变化,而在梯形图程序中多次引用了同一输入数据。解决这个问题的办法是,在程序的起始梯级拷贝输入数据到一个数据缓冲区,整个程序扫描过程只引用缓冲区的数据;所有的控制结果是在每个任务完成后系统管理操作一次送到输出模块,不必编程拷贝。
3.指令执行与数据
传统的可编程序控制器PLC-5/SLC500地址数据的基本单位是16位的字,如N7:0;可以细化到位,如N7:0/0;也可以扩展成文件,如# N7:0。相应的操作指令是字(或子元素)操作指令、位操作指令、文件操作指令。
ControlLogix 控制系统的地址数据是基本数据,如BOOL、SINT、INT、DINT和REAL;或是系统定义的结构数据,如TIMER、PID;还有用户自定义结构数据。在编写指令地址数据时,往往有多种选择,要根据指令的性质来确定使用哪一种类型的数据,或者根据被操作的数据的类型来选择使用哪一种指令,比如COP指令和FAL指令处理数据的能力就很不一样。所以,使用每一条指令时,都要仔细地研究它的参数可以使用哪几种类型的数据,当源数据目标数据类型不一致时,指令执行将产生什么样的结果。在参考ControlLogix 控制系统的指令集时,请特别留意每条指令使用的数据类型,这项内容通常列表以方便查找。
二. 控制器指令的应用
ControlLogix 控制系统的指令介绍,此处着重于指令的应用,而不是解释指令,请结合《Logix5550控制器指令集参考手册》一书学习。 1、位操作指令
又称为继电器指令,专门用来处理离散量信息,用它来编制开关量信号的逻辑关系,梯形图程序的大部分都是这些指令构成的。 1-1 位输入指令XIC、XIO
? XIC 常闭输入指令 构成梯级条件的逻辑元素,为1时通。
? XIO 常开输入指令 构成梯级条件的逻辑元素,为0时通。 1-2 位输出指令OTE、OTL、OTU
? OTE 非保持型输出指令 梯级条件存在为1,梯级条件不存在为0。
? OTL 保持型锁存输出指令 必须与OUT指令配对使用,通常与ONS配
合运用。
? OUT保持型解锁输出指令 一般与OTL指令配对使用,单独使用时,用
来复位状态锁存位,通常与ONS配合运用。
注意,位操作指令的操作地址必须是位地址,即BOOL量或SINT、INT、DINT中的某一位,亦可为I/O模块的一个点。 1-3 一次启动指令ONS、OSR、OSF
? ONS 一次扫描有效存储指令 不能单独使用,必须跟随在某个级条件之
后,级条件前沿触发后令级条件保持一个扫描周期,并储存状态,直到级条件后沿复位,存储位随即复位。分配给这条指令的地址即用于存储位,应该使用内部地址。这条指令非常有用,特别是配合锁存解锁指令的运用。比较下面两对梯级:
这一对梯级,没有ONS指令,当解锁的级条件没有消除时,无法进行锁存操作,总是以后一级的状态为准。
这一对梯级,因为ONS指令控制,两个梯级相互是独立的,锁存和解锁的操作可以随意地进行。
ONS指令的运用,可以使控制逻辑编得很精确,也可以对外部开关或外部操作不作特殊要求,而用编程来解决。传统的自锁梯级编程,可用锁存解锁指令与ONS指令配合使用来代替,对于搜索锁存信息更为方便。
? 上升沿一次启动OSR
严格的说,这条指令不是对位操作的指令,但它产生的结果是对位操作。这是一条输出指令,当级条件成立时触发,即前沿触发,设置输出位,这个输出位,可作为某个梯级的存在一个扫描周期的级条件。
? 下降沿一次启动OSR
与上条指令对应的一条指令,它也这是一条输出指令,当级条件消失时触发,即后沿触发,设置输出位,这个输出位,可作为某个梯级的存在一个扫描周期的级条件。
2、计时器和计数器指令 2-1 计时器指令
计时器指令是输出指令,位于梯级的右边,当级条件成立时,指令被使能,指令开始计时工作。通常计时器指令是用于完成延时、定时和计时的功能 。
计时基值: 1ms
计时范围: 1 --- 2,147,483,647 ms
计时器的精度与其指令所在程序的扫描周期有关,当某个执行动作周期时间小于100ms时,建议采用定时中断执行子程序,而不要用计时器控制动作。
有三种计时器:
? 非保持型通延时计时器 TON 级条件成立(通),指令使能,计时;级条
件消失(断),指令未使能,累加值(ACC)复位,所有状态位复位。
? 非保持型断延时计时器 TOF 级条件成立(断),指令使能,计时;级条件
消失(通),指令未使能,累加值(ACC)复位,所有状态位复位。
? 保持型通延时计时器 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
这条指令是用源地址的元素充填目标地址的数组,指令参数中的长度是目标地址的字节数,指令的的执行通常用作于数组的初始化。
10-3 数据传送指令DTR
这条指令跟SQI一样,是一条输入指令,每逢它所在的梯级被扫描(可以理解为指令被使能),源数组就会和参考数组通过屏蔽进行比较,产生逻辑结果,成为级条件。比较结果相同,级条件为假;比较结果不同,级条件为真,保持一个扫描周期,且将参考值改成与源值一致。
例一,比较结果相同的情况:
源数组
43213589屏蔽字0000FFFF参考数组0000000033558899本次扫描前次扫描
例二,比较结果不相同的情况:
源数组43213584 屏蔽字000000000000F33F55F88F49本次扫描前次扫描参考数组
10-4 PID控制指令
一条PID控制指令对应一个控制环节,当实行多级控制时,则使用多条PID指令(可选主从)。 如下所示的液位控制环节,将编制一条PID指令来进行控制。
? PID: 指定一个结构体给本条指令,存放组态信息和运行状态信息。
? Process Variable: 指定过程变量,一般为模拟量输入。
? Tieback: 指定手动控制站手动控制跟随变量,一般为模拟量输入。 ? Control Variable: 指定PID控制变量,一般为模拟量输出。 ? PID Master Loop: 当本条指令为从环时,输入主环结构体名称。 ? Inhold Bit: 决定输出初始值是否保持在上次的终值上,一般为模拟量输出
模块的保持状态位。
? Inhold Value: 输出初始值保持在上次的终值上,一般为模拟量输出模块
的保持量。 ? Setpoint: 给定量的显示值。 ? Process Variable: 过程变量的显示值。 ? Output%: 控制变量的百分比显示值。 点击
,进入组态和调试界面:
说明:
? PID Equation: PID控制模式,可选择独立增益或相关增益。 ? Control Action: 选择控制方向,
? Derivative Of : 微分对象的选择,对PV进行微分,减少SP给定引起的
冲击;对偏差微分,获得对SP变化量的快速响应。
? Loop Update Time: 回路更新时间,不能为零和负数,否则运行时产生次
要故障。
? CV High Limit: 输出限幅最大值。 ? CV Low Limit: 输出限幅最小值。 ? Deadband Value: 死区值。
? No Dervative Smoothing: 选择无微分平滑作用。 ? No Bias Calculation: 选择无偏值计算。
? No Zero Crossing for Deadband: 选择无过零死区。 ? PV Tracking: 选择PV跟踪。
? Cascade Loop: 选择回路级联,可选择主回路或从回路。
说明:
? Process Variable[PV]High: 过程变量报警上限值。 ? Process Variable[PV]Low: 过程变量报警下限值。 ? Process Variable [PV] Deadband: 过程变量报警值. ? Positive Deviation: 正偏移报警值。 ? Negative Deviation: 负偏移报警值。 ? Deviation Deadband: 偏移报警死区值。
说明:
? Process Variable[PV] 关于过程变量
--- Unscaled Max: 来自模拟量模块输入通道的最大定标值,即模拟量模块中的工程定标最大值,此为进入PID的未定标最大值。
--- Unscaled Min: 来自模拟量模块输入通道的最小定标值,即模拟量模块中的工程定标最小值,此为进入PID的未定标最小值。
--- Engineering Unit Max: PV在PID中再次定标的工程定标最大值。
--- Engineering Unit Min: PV在PID中再次定标的工程定标最小值。
? Control Variable [CV] 关于控制变量
--- Max(at 100%): 控制变量最大值, PID计算结果.SO百分比最大值所对应的模拟量模块输出通道的工程定标最大值。
--- Min (at 0 %): 控制变量最小值,PID计算结果.SO百分比最小值所对应的模拟量模块输出通道的工程定标最小值。 ? Tieback 关于手动控制跟踪量
--- Max(at 100%): 最大跟踪值,在PID中以百分比显示最大值所对应的 来自模拟量模块输入通道的最大定标值。
--- Min (at 0 %): 最小跟踪值,在PID中以百分比显示最小值所对应的 来自模拟量模块输入通道的最小定标值。
? PID Initialized: 如果在控制器运行时修改定标值,关闭它以使得重新初始
化内部,从而使用新的比例值。
说明:
程定标范围相同。
? Setpoint[SP]: 给定值设定,其数据范围必须与PV在PID中再次定标的工? Set Output: 软件手动控制时,在此输入百分比值,自动方式时,其为显
示值。
? Output Bias: 输出偏值百分比值。该值迭加在偏差计算结果上,构成共同
的输出.SO。
? Tuning Constants: 调试参数
--- Proportional Gain[Kc]: 比例参数,其物理含义跟PID控制模式有关。 --- Reset Time [Ti] 积分调节参数,其物理含义跟PID控制模式有关。 --- Derivative Rate[Td]: 微分调节参数,其物理含义跟PID控制模式有关。
? Manual Modes:
--- Manual: 手动控制方式,手动控制站直接设置输出,PID计算结果无效。
--- Software Manual: 软件手动控制方式,程序或操作员界面直接设置输出,PID计算结果无效。
要点讨论:
? 自动控制/手动控制切换的平滑过渡
当手动控制转向自动控制(手动站手动控制或软件手动控制)时, PID指令将对跟踪值(Tieback变量或设定输出)作积分运算,直至逼近按偏差运算产生的控制变量 .SO,从而完成平滑过渡。如果没有使用积分控制项,则指令修改偏值量 .BIAS,使CV输出跟踪Tieback变量或设定输出,但此时无偏值计算项不能选择。
自动控制到手动控制的平滑过渡,手动站手动控制由手动站解决平滑过 渡; 转软件手动控制时,.SO值从自动控制PID运算最后输出开始,所 以转换是平滑的。 ? 防止积分饱和
设置控制变量CV上限幅和下限幅,是为了防止积分饱和,当CV达到上下限幅值时,积分项将停止累积。 ? 启动平滑
当控制器从编程模式转为运行模式时,PID指令亦开始执行,运算结果即为控制变量,将送到模拟量输出模块,如果选择了输出保持(PID指令参数选项),则PID指令将输出保持值作为初始量,以积分过渡或修改偏值量(和手动控制转自动控制一样)的方式实现平滑过渡。 ? PID运算的数据范围
来源于古典控制的PID,与模拟量输入/输出模块有着直接的关联,PV、 SP、CV都有相应的数据范围的讨论,只有正确地建立这三个量的数据范 围,才能保证PID的正确运算和正确控制。PID是一个事先预设的计算模 块,并有确定的数据范围(实数范围),按偏差运算的PID 运算显然要求 偏差提供它所需要的数据范围,而偏差又是PV和SP比较的结果,毫无疑 问,SP和PV必须在相同的数据范围,计算结果也应该是这个数据范围。
--- PV 的来源是外来信号,模拟量输入,它的定标至关重要。在模拟量 模块中已经有自己的工程定标,也就是模块提供给PID指令输入量的数
据范围,PID 指令中将此称为未定标数据,而在PID指令中再次定标, 称为工程定标,该值将作为SP和偏差的基准值。
--- SP的来源是操作员设定,习惯上,操作员按百分比设定,必须编制程序 将百分比值换算成和PV工程定标值一样的数据范围,这样,与PV比 较的结果偏差就是正确的数据了。
--- CV 是送到模拟量输出模块的控制变量,PID的运算结果.OS是以百分比 的形式表达的,而不是模拟量输出模块所需要的数据,经过转换(CV定 标)后,送出符合模拟量输出模块对应输出通道的数据,即模拟量输出 模块工程定标的数据范围。 ? PID指令执行时间和回路更新时间
PID指令实质上是一条运算指令,在级条件成立时,它总是在运算,但 它的运算频率与回路更新时间有关。回路更新时间应该小于指令执行的 时间间隔,大于或等于模拟量模块的采样时间。PID指令的执行有两种方法:
--- 在连续型任务中由定时器调用,多用于滞后大的控制对象,要求反应
时间不是很快。可令回路更新时间等于定时器预置值,且模拟量模块的采样时间快好几倍。
--- 周期型任务定时调用,可以精确的执行指令,适合快速反应控制对
象,可令回路更新时间等于任务调用周期时间,且模拟量模块的采样时间快好几倍。
执行PID指令最精确的方法是:模拟量输入模块每采样一次,指令执行 一次,令回路更新时间等于模块采样时间。可以用模块滚动时间标记来 控制执行动作。
11.输入/输出指令
输入/输出指令是控制器对外操作指令,SSV和GSV是控制器设置系统组态信息和读取系统状态信息的指令,MSG指令则是应用最为广泛的信息传送指令,它几乎可以对任何外部设备操作。
11-1 SSV和GSV指令
在ControlLogix控制系统中,并不象PLC-5/SLC500那样,提供状态文件去直接地查看状态或进行组态,而是在控制器中隐含着系统的结构数据,用SSV
指令去设置组态信息;用GSV指令得到状态信息。SSV/GSV可访问的对象有:
? AXIS 伺服控制信息 ? CONTROLLER 控制器信息
? CONTROLLERDEVICE 控制器硬件信息 ? CST 协调系统时间信息 ? DF1 串口信息 ? FAULTLOG ? MESSAGE ? MODULE ? MOTIONGROUP ? PROGRAM ? ROUTINE ? SERIALPORT ? TASK
? WALLCLOCKTIME
这些访问对象,下面有各种形式的信息数据块,要设置或者是获取信息,都必须事先在数据库中建立起相应数据结构的标签,作为SSC的源地址或GSV的目标地址,然后再编辑指令。以系统时间为例,用SSV指令对系统设置系统时间。首先在用户自定义结构建立新的日期时间结构体。
然后在数据库中建立标签Date_Time。
编写SSV指令,
要注意,源地址是为送下去的系统日期和时间建立的Tag,此处引用地址时,不是引用Tag名,而是Tag的第一个元素,否则认为是语法错误,梯级不能接受。同样地,若从控制器中读系统日期和时间,可编写GSV指令:
对于系统可访问的对象,有的只能获取(用GSV);有的只能设置(用SSV);有的既可以获取又可以设置(用SSV和GSV)。
11-2 MSG指令
MSG指令编写之前,要建立数据类型为MESSSAGE结构的标签,每一条指令都要分配一个标签,这个标签将记录本条指令的通讯组态和执行情况。
为每一条MSG指令建立一个标签,不能建立数组。
只有为指令分配了标签后,点击
方可进入组态界面:
说明:
? 对控制器以外的各种设备传送信息,它的信息类型如下所列:
-CIP Data Table Read/Write 对ControlLogix控制器进行读写 -PLC5 Typed Read/Write 对PLC5处理器进行读写
-PLC5 Word Range Read/Write 对类似PLC5处理器地址进行读写 -Block Transfer Read/Write 对块传送模块进行读写
-PLC2 Unprotected Read/Write 对PLC2处理器及类似PLC2地址(寄存器地址)的设备进行读写。
-PLC3 Typed Read/Write对PLC3处理器进行读写
-PLC3 Word Range Read/Write,对类似PLC3处理器地址进行读写。 -SLC Typed Read/Write对SLC处理器进行读写
-Module Reconfigure 在模块仍然连接时,对模块进行重新组态 。 -CIP Generic 对任何设备的服务性操作。 ? 本指令执行的状态
-Enable 指令级条件成立,指令被使能,开始工作。 -Enable Waiting 信息传送请求被送到缓冲区,等待传送。 -Start 缓冲区排队轮到,开始传送数据。 -Done 数据传送完毕,指令置位完成。 -Done Length 实际完成的数据块长度
-Error Code 如指令执行失败,此处给出16进制的错误代码00XX。 -Extended Error Code 给出16进制的扩展错误代码XXXX。
-Tined Out 设置超时请求,此项选择,当发生超时,终止MSG传送过程。
1> ControlLogix 控制器与ControlLogix 控制器的通讯
源或目标的标签地址不是引用Tag名,而是Tag的第一个元素,否则认为是语法错误,梯级不能接受。
元素个数最多可有65335个,尽管ControlNet 的数据包最多只有500个字节,MSG指令可将数据块拆开,分成一个以上的数据包送走。
Communication 页面要求输入两个控制器之间的通讯路径,如果在I/O组态中有该控制器,亦可通过Browse获得路径,倘若仅仅是为了建立MSG路径而在I/O组态中加入控制器,则没有必要,那样将占用内存空间,建议书写路径,路径书写规则:
路径是段和段的连接,段由x,y组成,段和段之间用逗号分离。 ? X 背板为1;网络为2。
? Y 槽号;站号,ControlNet网络1-99号,EtherNet网络为IP地址。 上面书写的路径是:背板—CNB(位于5槽)—ControlNet网络—对方CNB(站号3号)— 背板 — 控制器(位于0槽)。
路径还可以是动态的,在信息块的结构数据中,有Path一项,这是个字符串结构,更换字符串数据即更换了路径。
字符串的长度最大82个,足够表达路径了。
,此项建立了MSG指令的连接,缺省是选择的,也就
是说MSG指令占用一个固定的连接;如果释放此项,只有在MSG指令执行的时候才占用连接,是一个活动的连接,可编制程序,令多条MSG指令共同使用一个连接,这对缓和资源的运用是有好处的。
2> ControlLogix 控制器与PLC-5控制器的通讯 编写如下梯形图逻辑:
点击
进入组态画面:
说明:
? Message Type: 选择对PLC-5读取数据
? Source Element: PLC-5 处理器中的地址作为源地址(文件首址) ? Number Of Element: 读取数据的元素的个数,最多32767个。
? Destination Element: CLX中的数组(接受数据区域)的首元素作为目标
地址
进入Communication画面,确定通讯对象,
说明:
? Path: 可通过Browse…找到DHRIO模块位置,亦可用书写路径的办法。 ? Channel: 选择A通道,模块定义A通道为DH+通道。
? Source Link: 应与DHRIO模块上(在RSLinx中)定义的路由表一致。 ? Destination Link: 应与DHRIO模块上(在RSLinx中)定义的路由表一
致。
? Destination Node: DH+上接受MSG数据的PLC-5处理器站号(八进
制)。
3> ControlLogix 控制器与PLC-5 BT模块的通讯
ControlLogx 用MSG指令代替了PLC5的块传送指令,无论是对模块的块传送,还是远程I/O链上用作于通讯的块传送。以对1771-IFE的BT操作为例,编写如下梯形图逻辑:
点击
分别进入写和读的组态画面:
说明:
? Message Type: 选择对模块进行块传送写操作。
? Source Element: CLX中指定数组首元素地址作为源地址。
? Number Of Element: 块传送写数据文件长度(根据BT模块决定)。
说明:
? Message Type: 选择对模块进行块传送读操作。
? Number Of Element: 块传送读数据文件长度(根据BT模块决定)。 ? Destination Element: CLX中指定数组首元素地址作为目标地址。 进入Communication画面,确定通讯对象,
说明:
? Path: 可通过Browse…找到DHRIO模块位置,亦可用书写路径的办法。 ? Channel: 选择B通道,模块定义B通道为RIO通道。 ? Rack: BT模块所在机架(八进制)。 ? Group: BT模块所在组号(八进制)。
? Slot: BT模块位于左槽或右槽(2槽寻址时用),一般为0。 数据文件的解释:
Tag 名为 INT_BT_WRIT的整型数数组(37个元素)是块传送写的数据文件,是被操作的BT模块1771-IFE 所需要的组态文件,这里将根据IFE模块的组态方式完成数据的输入。值得指出的是,ControlLogix 中没有BCD码,而IFE模块的通道定标必须是BCD码,所以只能在二进制的方式下输入,可以看出,通道0和通道1被设置成BCD码表达的0-4095。同样的,在数据形式的选取,也只能选01(模块组态第十位和第九位),即非BCD码的数值。
Tag 名为 INT_BT_READ的整型数数组(20个元素)是块传送读的数据文件,它将读取通道A/D转换的数据,因为定义数据形式为补码数据,所以,可以在相应的地址中读到通道0和通道1的正确表达的数据。
4> ControlLogix 控制器与其它设备的通讯
MSG指令最灵活的就是对其它设备的信息传送,选定CIP Generic的信息类型,它可以对ControlLogix系统的任何模块进行实时地服务操作,一些指定的服务操作,事先给定了服务代码,只要编制指令执行即可。Custom选项使得MSG指令可以对提供服务代码的设备进行操作,以 三. 程序常见问题的解决及相应的编程实例 实例一
问题:本地和远程控制同一台设备,没有优先关系,希望既可以在本地用开关
控制(输入开关信号)完成本地操作,又可以在操作员界面(RSView 或PannelView)完成远程控制,两种控制方式的切换,编程解决。
方案1: 在本地和远程各设一个切换开关,操作员先选定操作方式,再开始操 作。
方案2:操作员无须关心操作方式,一旦在本地开始操作,即转入本地操作方
式;一旦在远程开始操作,即转入远程操作方式。
正在阅读:
第四章ControlLogix 控制器指令介绍和编程应用06-28
使过程管理和组织发展相结合04-10
某烟草公司机关综合大楼室内装饰工程施工组织设计方案06-04
2014年社区工作者考试专业知识:社区社会救助和社会保障工作方法03-08
校园里的松树作文400字06-18
实习十一 根管治疗术06-19
民营经济发展管理局“七五”普法工作总结08-04
2016年上海外国语大学法学院(法律法学)法学综合之刑法复试笔试仿04-26
撰写材料 读起来朗朗上口的23个材料提纲02-23
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 第四章
- ControlLogix
- 控制器
- 指令
- 编程
- 应用
- 介绍
- 牛的自述
- 局域网聊天上传
- 复合肥岗位安全业务考试答案
- 常用时序分析SDC
- 网络在线考试系统的设计与实现
- 00208国际财务管理
- 市值管理十大经典案例
- 2016-2022年中国新能源产业园区产业现状分析及十三五运营管理深
- 财政学习题集
- 五年级第一学期语文期终复习(一)(二)
- 2012台湾省高考历年语文试卷精选必过技巧
- 公务员计算机专业课考试必备资料
- 镇坪县牛头店镇建立初信初访快速处理机制的几点做法
- 财务会计舞弊、防范与监管
- 计算机应用基础教程2011版习题
- 七下期中模拟卷1
- (通用版)19版高考化学微一轮复习第15讲氮及其重要的化合物微课
- 教师法治观念的培育与生成
- 题目3 - 排序综合 - 报告课件
- 物理重庆市普通高中《物理》课程实施指导意见22