第一章 系统概述
本章内容: 本章概括地介绍了ControlLogix 系统的基本结构和性能特点,简单地阐述了控制器和网络的基础类型,建立了相关的基本概念。
本章目的: 通过本章的学习,了解ControlLogix 系统的基本特点和功能;了解ControlLogix 系统控制器的基本类型及用途;了解ControlLogix 系统的基本网络及特点,对ControlLogix 系统有一个全局的概念。
一.ControlLogix 系统特点介绍
ControlLogix 系统是罗克韦尔自动化有限公司(艾伦布拉德利有限公司)继传统的可编程序控制器PLC2、PLC5/SLC之后推出的第三代工业控制产品,从硬件配置、通讯方式到数据结构都有根本性的变化,控制和数据传送概念也完全不同。它是高度模块化结构的、可灵活地进行任意组合和扩充的高性能控制平台;通过背板强大的网关功能完成信息层、控制层和设备层三个开放式的通讯平台之间的自由转换,并兼容DH+、RI/O、DH485/串口等传统通讯网络;IEC 1131-3 标准的结构体数据形式可完善地表达生产过程数据实体并使得控制器与外部系统的数据交换实现无缝连接。ControlLogix 系统的使用是简单而便利的,但整个控制系统硬件配置、网络组态和数据流的规划却是不可忽视的,在有大量数据交换的系统中显得尤其重要。
1. ControlLogix 系统的的编程环境
作为ControlLogix控制器编程终端的PC机或笔记本电脑,通常情况是,在Windows NT / Windows 2000/ Windows XP 操作系统下安装:
· RSLogix5000 编程软件
· RSLinx 连接软件
· RSNetWorx for ControlNet 网络组态软件
· RSNetWorx for DeviceNet 网络组态软件.
· RSNetWorx for EtherNet 网络组态软件.
RS NetWorx 软件根据选用的网络类型有不同的安装。
2. ControlLogix 系统的分类
功能强大的ControlLogix 系统广泛地适用各种不同的用途,可根据需求灵活地选择多种方案,在ControlLogx 系统中,可从应用或产品结构的不同角度进行分类。
本条指令的执行是将源数组和参考数组位对位(存储器的操作)地进行比较,发现不同时,将结果记录在结果文件中,并修改此位,使之与源位一致。这条指令有两个控制结构体:
DDT指令不同于FBC指令的是,当源数组与参考数组比较不相同时,它
要修改参考文件。
点击
说明:
说明:
说明:
--- Unscaled Max: 来自模拟量模块输入通道的最大定标值,即模拟量模块中的工程定标最大值,此为进入PID的未定标最大值。
--- Unscaled Min: 来自模拟量模块输入通道的最小定标值,即模拟量模块中的工程定标最小值,此为进入PID的未定标最小值。
--- Engineering Unit Max: PV在PID中再次定标的工程定标最大值。
--- Engineering Unit Min: PV在PID中再次定标的工程定标最小值。
--- Max(at 100%): 控制变量最大值, PID计算结果.SO百分比最大值所对应的模拟量模块输出通道的工程定标最大值。
--- Min (at 0 %): 控制变量最小值,PID计算结果.SO百分比最小值所对应的模拟量模块输出通道的工程定标最小值。
--- Max(at 100%): 最大跟踪值,在PID中以百分比显示最大值所对应的
来自模拟量模块输入通道的最大定标值。
--- Min (at 0 %): 最小跟踪值,在PID中以百分比显示最小值所对应的
来自模拟量模块输入通道的最小定标值。
说明:
--- Proportional Gain【Kc】: 比例参数,其物理含义跟PID控制模式有关。
--- Reset Time 【Ti】 积分调节参数,其物理含义跟PID控制模式有关。
--- Derivative Rate【Td】: 微分调节参数,其物理含义跟PID控制模式有关。
--- Manual: 手动控制方式,手动控制站直接设置输出,PID计算结果无效。
--- Software Manual: 软件手动控制方式,程序或操作员界面直接设置输出,PID计算结果无效。
要点讨论:
当手动控制转向自动控制(手动站手动控制或软件手动控制)时, PID指令将对跟踪值(Tieback变量或设定输出)作积分运算,直至逼近按偏差运算产生的控制变量 .SO,从而完成平滑过渡。如果没有使用积分控制项,则指令修改偏值量 .BIAS,使CV输出跟踪Tieback变量或设定输出,但此时无偏值计算项不能选择。
自动控制到手动控制的平滑过渡,手动站手动控制由手动站解决平滑过
渡; 转软件手动控制时,.SO值从自动控制PID运算最后输出开始,所
以转换是平滑的。
设置控制变量CV上限幅和下限幅,是为了防止积分饱和,当CV达到上下限幅值时,积分项将停止累积。
当控制器从编程模式转为运行模式时,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指令最精确的方法是:模拟量输入模块每采样一次,指令执行
一次,令回路更新时间等于模块采样时间。可以用模块滚动时间标记来
控制执行动作。
11.输入/输出指令
输入/输出指令是控制器对外操作指令,SSV和GSV是控制器设置系统组态信息和读取系统状态信息的指令,MSG指令则是应用最为广泛的信息传送指令,它几乎可以对任何外部设备操作。
11-1 SSV和GSV指令
指令去设置组态信息;用GSV指令得到状态信息。SSV/GSV可访问的对象有:
这些访问对象,下面有各种形式的信息数据块,要设置或者是获取信息,都必须事先在数据库中建立起相应数据结构的标签,作为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组成,段和段之间用逗号分离。
上面书写的路径是:背板—CNB(位于5槽)—ControlNet网络—对方CNB(站号3号)— 背板 — 控制器(位于0槽)。
路径还可以是动态的,在信息块的结构数据中,有Path一项,这是个字符串结构,更换字符串数据即更换了路径。
字符串的长度最大82个,足够表达路径了。
2> ControlLogix 控制器与PLC-5控制器的通讯
编写如下梯形图逻辑:
点击
说明:
进入Communication画面,确定通讯对象,
说明:
3> ControlLogix 控制器与PLC-5 BT模块的通讯
ControlLogx 用MSG指令代替了PLC5的块传送指令,无论是对模块的块传送,还是远程I/O链上用作于通讯的块传送。以对1771-IFE的BT操作为例,编写如下梯形图逻辑:
点击
说明:
说明:
进入Communication画面,确定通讯对象,
说明:
数据文件的解释:
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:操作员无须关心操作方式,一旦在本地开始操作,即转入本地操作方
式;一旦在远程开始操作,即转入远程操作方式。
练习题
1、 有三个马达MTR1 、MTR2 和MTR3 ,按先后次序启动。启动开关为
Motor_Start, 停止开关为 Motor_Stop。Motor_Start为 ON 时,MTR1 启
动,3秒后 MTR2 启动,再过 5 秒后 MTR3 启动。Motor_Stop为ON
时,三个马达同时停止运行,用别名把MTR1 、MTR2 和MTR3分别分
配给三个输出点,来模拟三个马达的状态。
2、 某交通要道,南北方向通行 6 秒,东西方向通行4秒,试编制程序模拟红
绿灯变化情况,令南北向红灯Lamp_R_SN;东西向红灯Lamp_R_EW;
南北向绿灯Lamp_G_SN;东西向绿灯Lamp_R_EW。用别名将四个灯的
地址分配给外部的输出点,以便观察。
3、 试编一程序使外部的16个灯(对应输出模块16个点)具有如下状态,
且周而复始地进行。
时间 Lamp.0-- Lamp.7 Lamp.8-- Lamp.15
2秒 亮 灭
2秒 灭 亮
3秒 亮 亮
4、 当开关Switch.0接通时,一灯 Lamp.0 延时 2 秒后始亮;当开关Switch.0
断开时,灯 Lamp.0延时 2 秒 后始灭。唯当开关Switch.0接通后还不到 2
秒 (即灯 Lamp.0还未亮 ) 即把 开关Switch.0 断开,则灯Lamp.0保持不
亮;反之亦然。
5、试编制一个手动可逆计数器,用开关 Switch.1 作增计数脉冲,用开关
Switch.2作减计数脉冲,注意观察计数器状态位 CD、CU、DN、OV、
UN 在什么情况下置位。
6、为了让上位机识别处理器,须产生一锯齿波信号,试编程实现,用并
TRENDS观 察 。
7、当模拟量模块通道0输入的值大于300时,Lamp.0灯闪烁;大于500时,
Lamp.0和Lamp.1的灯闪烁;大于800时,Lamp.0、Lamp.1和Lamp.2的
灯一起闪烁。
8、下图是一个混和液体容器的实例,试编一个模拟程序反映容器内液体变
化 ( 提示:用计时器模拟流量,用计数器模拟液位 )。
· 用Switch.1控制 V1;用 Switch.2控制 V2;用Switch.3控制V3。
· 改变开关状态或流量大小,观察液位的变化。
· 设置液位上下限位,用Lamp.10和Lamp.11报 警,并使相应阀门
9、同上题,将程序由原来的本地控制改为本地和远程(即用上位机或操作员
终端)都能控制。
10、计算一个梯形图程序执行的平均周期时间 ( 提示:用ADD指令 )。
11、 设模拟量模块通道0采集的是自来水流量数据,该流量计量单位为
吨/小时,数据范围为 0---3000, 试编制一程序计算自来水的产量
(注意怎样保证积累精度),假定自来水产量将在上位机以吨的单位显
示(考虑数据的整理)。
12、 用 BTD 指令在Lamp上实现下列过程,须周而复始。
Lamp.11 — 15 Lamp.8 — .10 Lamp.4 — .7 Lamp.0 — 3
第一秒 灭 灭 灭 亮
第二秒 灭 灭 亮 亮
第三秒 灭 亮 亮 亮
第四秒 亮 亮 亮 亮
13、将数组Array_Dint1中的数据加 5, 用递增的方式传送到 Dint_P_1中,
以便逐个查看,请注意观察控制结构体的状态位和 .POS 的变化。
14、某控制器中,有一批如下所示的数据需要组织传送,试编制一程序
按 ID 号 (为 1、2、3、4、5或6 ,每 2 秒更换一次)判断,将它们轮
流分送到用户定义的数据传送结构体COPY_DATA(DINT【50】)
Array_Bool (DINT)) Array_Timer.ACC (TIMER【10】)
Array_Dint (DINT【10】 ) Array_Counter.ACC (COUNTER【10】)
Array_Real1 (REAL【5】) Array_Control .POS (CONTROL【10】)
15、 某处理器在上电时,须进行初始化工作,以下数据要复位,编程实
现。
Array_Bool (DINT) Array_Timer.ACC (TIMER【10】)
Array_Dint (DINT【10】 ) Array_Counter.ACC (COUNTER【10】)
16、在Lamp上预置状态设为 0000000000001111 ,试编一程序,令其每秒
钟移动一次,在Lamp上循环移动,左移10次,右移10次,周而复始
地进行。
17、 按每秒一次的速度从模拟量模块通道0 采集数据,采集的数据存放在
指定的数组Array_Dint3中,使其保持最新的 50 个数据。
18、某包装工艺中,以红、绿、蓝三种颜色的球来识别三种不同的包装过
程,当红球弹出,光感传感器识别后送到处理器来的数据为1200---
1500;当绿球弹出, 为800---1100;当蓝球弹出,为 300---600;其各
输出点(送到 Lamp )的控制规律(按每秒一步进行)如下所示:
红球 绿球 篮球
第一步 000000000111 000000000011 000000000001
第二步 000000111111 000000011011 000000001001
第三步 000111111111 000011011011 000001001001
第四步 111111111111 011011011011 001001001001