罗克韦尔培训第二章.docx

上传人:b****6 文档编号:7019439 上传时间:2023-01-16 格式:DOCX 页数:17 大小:233.25KB
下载 相关 举报
罗克韦尔培训第二章.docx_第1页
第1页 / 共17页
罗克韦尔培训第二章.docx_第2页
第2页 / 共17页
罗克韦尔培训第二章.docx_第3页
第3页 / 共17页
罗克韦尔培训第二章.docx_第4页
第4页 / 共17页
罗克韦尔培训第二章.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

罗克韦尔培训第二章.docx

《罗克韦尔培训第二章.docx》由会员分享,可在线阅读,更多相关《罗克韦尔培训第二章.docx(17页珍藏版)》请在冰豆网上搜索。

罗克韦尔培训第二章.docx

罗克韦尔培训第二章

第二章ControlLogix控制器

本章内容:

控制器的程序结构、数据结构、CPU、内存、容量的讨论。

本章目的:

详细了解控制器程序文件的结构和调用关系;详细了解控制器数据文件的类型和定义结构方式;;了解CPU的工作过程,了解内存的运用分配,了解容量的内容和含义。

在ControlLogix系统中,主管逻辑程序运行及数据交换工作的模块被称为控制器,而在传统的可编程序控制器PLC5/SLC500则被称为处理器,两者的差别在于通讯接口部分。

PLC5/SLC500的处理器包括了它们的各种各样的通讯口,几乎所有的通讯都是通过处理器对外,当选定了控制器的型号,也就决定了通讯的形式,一旦要改变通讯网络,就必须更换处理器,用户在为某些通讯口买下特定型号的处理器的同时,有可能也买下了自己不需要的通讯口,另外,要扩展网络或增加不同的网络是非常困难或不可能的。

ControlLogix控制器只保留了作为基本编程口的串口,分离了所有的网络通讯口,使之成为独立的通讯模块,通过背板实现它们的信息连接,从而,改变网络类型,扩展新的网络,建立同种类型的多个网络,都是非常容易实现的,系统配置的价格也变得合理。

ControlLogix控制器是控制系统的核心模块,负责控制系统的控制工作,它收集与之相关的数据,主要是来自于I/O模块、通讯模块、其它控制器模块的数据,运行事先编制好的控制器功能程序,实现控制的全过程;控制器还为各种人机界面提供操作和监视数据,开放的、方便而自由的网络通道,使外部机器简捷而快速地访问控制器的内存,获取所需数据。

从应用上来说,ControlLogix控制器的主要硬件包括了CPU和内存两大部件,它们分别的作用是:

∙CPU共有两个,一个称为逻辑CPU,主管逻辑控制和数据处理;一个称为背板CPU,主管背板通讯。

∙内存分为基本内存和扩展内存,基本内存用来存放控制器与外部交换的通讯数据,扩展内存存放用户的逻辑程序和内部数据。

要正确地使用控制器和精确地编写程序,就要了解CPU和内存的运用情况,ControlLogix控制器的内存分配和CPU运用是比较复杂的,这些将在第九章ControlLogix系统设计规划中有详尽的讨论。

ControlLogix控制器没有任何诸如跳线或组合开关的硬件设置,外部看来十分简洁,虽然组态和状态信息比传统的控制器要复杂丰富得多,但都是软件来完成的,修改组态和监视状态非常方便。

一.控制器面板介绍

控制器面板较之传统的可编程序控制器的处理器,已经是简单多了,它没有了众多的通讯口及通讯状态灯,只有与控制有关的钥匙开关和状态指示灯。

1.状态指示灯

控制器面板上的状态指示灯直观地显示了控制器的一些重要的状态信息,用户在不使用编程终端地情况下,也能了解控制器的工作情况。

状态指示灯的含义如下:

∙RUN程序运行状态

-熄灭控制器在程序模式。

-绿灯常亮控制器在运行模式,正常运行。

∙I/O控制器所属I/O模块的状态

―熄灭控制器的项目中没有组态I/O模块或控制器中没有程序。

-绿灯常亮所有的I/O模块工作正常。

-绿灯闪烁至少有一个I/O模块没响应控制器。

-红灯闪烁没有任何一个I/O模块响应控制器,可能框架有问题。

∙FORCE强制状态

-熄灭无强制状态

-黄色闪烁强制被设置,但未使能,强制不起作用。

-黄色常亮强制使能,强制开始起作用。

∙RS232串口通讯状态

-熄灭串口没有通讯,或没有建立起通讯。

-绿色快速闪烁串口通讯正在进行。

∙OK

-熄灭控制器未上电。

-绿灯常亮控制器工作正常。

-绿灯闪烁控制器正在将项目存入闪存或从闪存读出程序。

-红灯闪烁内存没有程序,新控制器应当是此状态,或正在更新Firmware版本。

-红灯常亮控制器故障状态,需要排除故障。

∙BAT锂电池报警状态

-熄灭电池正常。

-红灯亮,没有电池或电池电压偏低。

状态指示灯会因控制器类型不同而异,但指示灯状态的含义是相同的。

2.钥匙开关

钥匙开关是用硬件来决定控制器的工作状态,又称为本地工作状态,它一共有三个选择档位:

∙RUN选择此档,令控制器工作在本地运行,编程终端不能改变控制器的工作状态。

此时程序不能被修改,实用中,为保证控制器程序不被意外地修改,会选择此档并拔离钥匙。

∙PRO选择此档,令控制器工作在本地编程,编程终端可以对控制器程序进行修改,但不能改变控制器的工作状态

∙REM选择此档,令控制器处在远程状态,编程终端可远程地改变控制器的工作状态(编程、测试或运行),并可在远程运行状态下修改程序,修改过程比编程状态下更谨慎而烦杂,一定要经历测试的步骤,这种情形适合不能停机的程序修改。

3.锂电池

用于保护内存的锂电池在面板处安装,意味着要在控制器所在框架不断电的情况下更换电池,否则有可能造成内存丢失,不可将控制器拔离框架更换电池,习惯使用SLC500的人,有可能犯这样的错误。

关于电池的寿命,请参照选型手册。

4.串口

控制器的串口,主要是用来编程的,也可通过背板到达任何网络,当整个控制系统正常工作,各个网络的数据传送都在忙碌中,建议使用串口来下载或上载程序,ControlNet和EtherNet在网络数据传送忙碌时,会把编程软件的访问压在最后,往往导致下载或上载的操作失败。

串口的用法有4种组态,它的出厂设置是DF1即编程口,当串口连接有问题时,可让控制器全部失电数分钟(拔离框架或令框架断电并移去电池),以此来恢复缺省值,但切记控制器内存的程序亦会丢失,要确认已备有磁盘程序方可有此举。

二.控制器内存的运用

控制器内存存放的信息是多种的,就应用的角度来看,只需讨论基本内存和扩展内存,这两个内存存放的内容是不一样的,它们和CPU的关系也不一样,基本内存背板CPU和逻辑CPU都会访问,扩展内存只有逻辑CPU访问。

1.基本内存

基本内存是固定的160K字节(1756-L1)或750字节(1756-L55)的内存,存放的是来自背板的,控制器跟外部设备通讯的交换数据,它们包括了:

∙I/O模块交换数据建立I/O模块时产生的模块结构数据。

∙I/O强制数据表建立I/O模块时产生的列表。

∙Produced/Consumed标签交换数据建立Produced/Consumed标签产生。

∙信息数据缓冲区各种信息交流活动的极为活跃的动态区域。

凡是来自背板的信息,都是外部的信息,像I/O模块和Produced/Consumed标签这些预定性的数据就直接存放在基本内存中,只有在逻辑程序涉及到时才到基本内存区取用;I/O强制是在I/O模块交换数据时加入的,所以强制数据表也放在一起;信息数据缓冲区的情况则比较复杂,它分为非连接缓冲区(UnconnectedBuffers)和储藏缓冲区(CacheBuffers),是各种各样外来信息的临时栖息地带,一旦控制器的连接管理接受或发出了信息,缓冲区便释放,等待下一拨的信息到来。

2.扩展内存

扩展内存是用户根据需求选择512K、1M、或2M(1756-L1),1.5M、3.5M或7.5M(1756-L55)不同容量的内存,存放的是用户程序和内部数据,以及人机界面或RSLinx直接访问的数据,它们包括了:

∙用户程序原代码用户编写的梯形图等程序,下载到控制器后编译成原代码存放。

∙标签数据表用户在全局数据区和程序数据区创建的标签,并被引用到程序中。

∙RSLinx数据组RSLinx访问控制器的数据组,多是人机界面捆绑而来的数据

三.控制器CPU的运用

控制器有两个CPU同时工作,分别称为背板CPU和逻辑CPU,它们担负着不同的工作,运行是相互独立的,却又紧密关联的。

1.背板CPU

背板CPU负责外部数据交换的操作,外部数据指的是控制器通过背板发送给外部设备的数据,或者是控制器通过背板接受的外部设备的数据,它既包括预定性数据I/O模块的交换数据,I/O强制数据表,控制器的Produced/Cosumed数据交换;也包括非预定性数据缓冲区。

这些外部数据都由背板CPU来进行管理,被放在作为数据缓冲区的基本内存单元。

背板CPU有比逻辑CPU更高的优先级别,当背板CPU有新的外来数据要刷新数据缓冲区(基本内存)时,它可以中断逻辑CPU正在进行的数据通讯,抢先刷新数据缓冲区,这可能使得一些多于32位的标签发生新旧数据混和的情况,如果逻辑CPU被中断的正是较大数据块的通讯的话。

2.逻辑CPU

逻辑CPU专门负责用户程序的逻辑扫描和系统管理。

这两部分工作,在CPU的时间运用上,是交替进行的,并占用不同的CPU运用的百分比值,可由用户根据运用情况自行定义。

缺省值是10%,即连续任务扫描时间占CPU运用时间的90%,系统管理占用CPU运用时间的10%。

逻辑CPU进行逻辑扫描时,每当一个任务的所有的程序扫描结束,便进行一次输出数据的刷新,如果中断任务次数太多,影响到任务的执行时间,也可以令某个任务的输出数据的刷新被关闭(选项设置)。

其实,输出数据的刷新,即控制器向输出模块传送数据,这也是系统管理工作的一部分。

在逻辑CPU进行系统管理时,用的是片段时间,它与连续任务的逻辑扫描交替进行着,并不长时间占用。

逻辑CPU的系统管理的内容包括:

∙操作系统的操作

∙MSG的信息处理

∙串口的通讯

∙连接的管理

∙编程终端的支持

对于信息通讯的管理,有以下原则可遵循:

∙信息通讯,即除了预定性数据的通讯之外的通讯。

∙系统管理时间在定时中断和事件中断任务不运行时才能进行,中断任务的调用要留有足够的时间去做信息通讯。

∙系统管理时间只能中断连续任务。

∙信息通讯时间每次不超过1ms,便转去执行连续任务。

3.确保通讯数据的完整

对于I/O数据和控制器之间的Produced/Consumed标签,这两个CPU将使用共同的内存区,即基本内存区,背板CPU将交换的I/O数据和Produced/Consumed标签放在该内存区,逻辑CPU访问同一内存区。

控制器的数据操作以32位为基本单位,当大于32位的标签被操作时,则不止一次来完成,Produced/Consumed标签通常都是较大的数据标签,需要多次的操作。

如果逻辑CPU正在取用一个大于32位的标签值,比如说正使用COP指令,标签的新的数据到达,背板CPU将中断正在执行COP操作的逻辑CPU,刷新标签的数据,待背板CPU操作完毕,标签的内存单元又还给逻辑CPU继续使用,逻辑CPU接下去完成刚才未完成的COP操作,假定后面指令使用COP的结果,就有可能使用一个新旧信息混杂的标签值,如果系统不能容忍这种状况出现,就必须获得完整的数据。

解决的办法是使用同步拷贝指令CPS,CPS具有中断管理功能,背板CPU不能中断CPS指令的执行,CPS可以不理睬背板CPU,将数据完整地拷贝到内部数据区域;

四.控制器程序文件的结构

ControlLogix控制器(一个项目)的用户程序文件由三层结构组成。

第一层由任务(Task)组成,每一个项目最多可以定义32个任务(CompactLogix控制器、FlexLogix控制器和DriveLogix控制器为8个任务),它们将决定逻辑程序的执行顺序和执行时间;第二层由程序(Program)组成,在每个任务下最多可定义32个程序,每个程序拥有自己独立的数据区域和众多的子程序;第三层由子程序(Routine)组成,是真正的执行程序,一般为梯形图程序,可定义的个数由控制器的内存决定。

 

图2-1

1.任务

任务分为连续型、周期型和事件触发型三种执行类型,每个项目的32个任务(或8个任务)中可以定义一个且只能定义一个连续型的任务,其余均为周期型或事件触发型任务。

∙连续型任务指的是周而复始执行的任务。

∙周期型任务指的是定时中断执行的逻辑程序,周期性的执行任务,须定义周期时间。

∙事件触发型任务指的是事件触发引起的任务调用,事件触发可以是外部输入点变化引起(如同PLC5/SLC),也可以由ConsunedTag引起或直接指令调用引起,还可以由运动控制状态引起。

周期型任务要指定执行的周期时间和中断优先级别,中断级别低的任务将被中断级别高的任务中断,中断级别共有15个(序号1-15),序号越低中断级别越高。

连续型任务是连续不断执行的逻辑程序,也可以认为是中断级别最低的任务。

事件触发型任务要定义触发事件,同样也要定义中断优先级别,其中断规则和周期型任务一样。

事件触发型任务与周期型任务一起判别中断,可互相中断。

每个任务可自行设置看门狗时间,以监视本程序的执行,当程序运行时间超过看门狗时间(例如出现程序死循环),即报告故障。

例如,在一个项目中有1个事件触发型任务1个周期型任务和1个连续型任务。

表2-1

任务

任务类型

中断级别

执行时间

1

事件触发型

5

2ms

2

10ms周期型

10

4ms

3

连续型

无(最低)

24ms

 

执行情况:

图2-2

注意:

∙所有的周期型任务和事件触发型任务都可以中断连续型任务。

∙高优先权任务中断所有的低优先权任务。

∙高优先权任务可多次中断低优先权任务。

∙同等级优先权的任务同时触发时各轮流执行1ms,交互进行。

∙当连续型任务完成全部扫描时,立即重新开始新的一轮扫描。

2.程序

程序是任务下的组织结构,由一个数据库和多个子程序组成。

每个程序都拥有一个独立的数据库,在这个数据库建立的数据标签只能被本程序内的子程序引用,且都是内部数据,换言之,每个子程序只能引用本程序的数据库和控制器数据库,不能引用其它程序的数据库。

每个程序中必须指定一个子程序为主控程序,作为本程序运行的启动程序,每个程序中还可以指定一个故障处理子程序,以解决本程序内任何子程序运行时而引起的故障,其余的子程序均由主控程序中的调子程序指令(JSR)调用。

未预定程序(UnscheduledPrograms)中存放备用或暂不运行的程序,这些程序在项目下载时,会下载到控制器中,但不会执行。

注意:

∙故障处理子程序一般用来编写清除故障的恢复程序,在本程序内由于指令执行产生的错误,或本程序引用的I/O连接故障,都有可能引起停机,定义的故障处理子程序是停机之前要调用的子程序,如能在这个子程序中清除可恢复故障的错误代码,就可避免停机。

∙主控程序和故障子程序均可重新被指定。

∙在一个程序里定义的子程序可以再分配到另外一个程序中去。

∙采用JSR指令调用子程序,可以带入和带出参数,也可以不带任何参数。

3.子程序

子程序是真正的执行程序,所有的控制都被编写在子程序中,子程序的编写有梯形图,顺序功能流程图,文本和功能块4种编程模式。

不同类型的控制器可使用的编程模式也不同,如表2-2所示:

表2-2

控制器

 

编程模式

 

 

类型

梯形图

顺序功能流程图

语句结构

功能块

ControlLogix

SoftLogix

 

 

CompactLogix

FlexLogix

DriveLogix

注意:

∙梯形图是最常采用的编程模式,是由梯级组成的程序结构,每个梯级则由输入指令和输出指令组成。

丰富的指令系统满足面对生产过程的顺序控制要求、数据处理和对外信息交换。

∙顺序功能流程图实际上是编辑步的执行顺序结构,步和转换条件是执行的基本单元,可选分支(选择执行)、并行分支(同时执行)或跳转等搭成执行结构,即执行流程图,所以,顺序功能流程图实际上只是一个结构,而并非真正的编程内容,它的步和转换条件往往是梯形图程序。

∙文本编程是ASCII输入方式编写的程序,用语句来描述逻辑关系,是软件开发人员容易接受的一种编程方式。

∙功能块编程只对应过程控制,是引入的DCS系统的仪表控制组态方式,由功能块之间的连接建立程序结构,并进行参数设置,每个功能块都可以完成特定的功能,并有自己专用的结构数据。

4.控制器的故障程序和上电程序

独立于任务之外的两个特殊的控制器程序故障程序和上电程序,它们担负着特殊的工作。

∙故障程序当控制器发生主要故障而引起停机之前调用的程序,一般情况下,用于编写有序的停车和可恢复故障的消除,用以减少停机次数,提高系统的可靠性。

∙上电程序只有在控制器处在RUN状态下,上电时才执行一次,可用于上电时初始化的一些操作。

但有许多控制器进入运行后数据初始化的一次性操作,更多的是用特殊的关键字符S:

FS作为级条件来完成,如同PLC5/SLC中的S:

1/15地址的运用。

和其他程序一样,故障程序和上电程序也拥有独立的数据库和多个子程序,也有主控程序和故障子程序的定义。

五.控制器数据文件的结构

1.控制器的数据区域

ControlLogix系统的控制器中建立的数据库分为全局数据区域和程序数据区域。

这两个数据区域的数据引用范围是不一样的,由于区域的划分,可以使得按生产过程和程序功能分类的数据在查询和运用上更为清楚和方便。

∙全局数据区域又称控制器数据区域,它含有全部的对外数据和公用的内部数据,其数据可被控制器内所有的子程序引用。

∙程序数据区域全部为内部数据,其数据只能被本程序内的子程序引用。

各程序之间的数据区域是隔离的,以防止标签命名的冲突。

数据的表达称为数据标签(TAG),书写方式遵循IEC1131-3标准,即由大小写字母、0至9的数字和下划线组合而成,用来描述控制对象,它由下面要谈到的各种数据类型构成。

数据标签的简洁表达亦是节约内存空间的做法之一。

2.控制器的数据类型

ControlLogix系统的数据类型是基本数据类型和由基本数据类型构成的结构化数据类型,结构化数据类型和通常的关系数据库的记录是一样的结构方式,这使得工业系统获得的数据与管理系统处理的数据在交换时可以做到无缝连接。

2-1基本数据类型

基本数据类型是构成结构型数据的基本元素,也是梯形图程序中或人机界面监控时引用地址的最小单位。

∙BOOL布尔数0---11位

∙SINT短整数-128--+1278位

∙INT整数-32768--+3276716位

∙DINT长整数-2147483648---+214748364732位

∙REAL实数-3.4*10-38---1.17*10+38(负数)32位

1.17*10-38---3.4*10+38(正数)

它们和标准的数据库的基本类型是一样的,但由于ControlLogix系统的数据处理和传送的基本单元是32位,所以,尽可能地使用DINT和REAL的数据类型,将节约控制器的内存空间和系统资源,这也是系统优化要考虑的问题之一。

2-2系统预定义结构数据类型

系统预定义结构数据类型是系统预先设定的结构数据,它有系统事先设定好的固定形式,引用时自然产生。

有如下几种形式:

1>I/O模块组态时产生的I/O数据,如:

∙Local:

0:

C---本地位于0槽输入模块的组态数据

∙Local:

0:

I---本地位于0槽输入模块的输入数据

∙Local:

1:

C---本地位于1槽输出模块的组态数据

∙Local:

1:

I---本地位于1槽输出模块的状态数据

∙Local:

1:

O---本地位于1槽输出模块的输出数据

∙CNBR_2:

0:

I---远程位于0槽输入模块的输入数据

∙CNBR_2:

0:

C---远程位于0槽输入模块的组态数据

不同的I/O模块有不同的数据结构,这取决于I/O模块与控制器交换的数据内容,模块的数据结构在开发模块时就已经决定了。

2>出自于PLC5/SLC500的多字元素文件,因为ControlLogix系统的指令系统仍然沿用了传统的PLC5的指令系统,所以PLC5的多字元素文件在指令中还是需要引用。

如:

∙TIMER---用于计时器指令

∙COUTER---用于计数器指令

∙CONTROL---用于数组类型指令

∙PID---用于PID指令

∙MESSAGE---用于MSG指令

∙SFC_STEP用于顺序功能流程图操作

∙SFC_STOP用于顺序功能流程图操作

请注意,在PLC中的16位的整型数在这里统统转变成了32位的双整数,两者均是各自控制器中信息处理的基本单元。

3>运动控制的数据结构,由运动控制指令引用,如:

∙AXIS_CONSUMED

∙AXIS_VIRTUAL

∙MOTION_GROUP

∙MOTION_INSTRUCTION

4>功能块(过程控制)的数据结构,由功能块编程时引用,如:

∙TOTALIZER---累加器数据结构

∙MULTIPLEXER---8选1功能块数据结构

∙FBD_TIMER---功能块的计时器

∙FBD_COUTER---功能块的计数器

∙FBD_LOGICAL---功能块的逻辑运算

5>系统组态信息和状态信息,不显示在数据结构选项中,SSV和GSV指令操作时引用,必须创建相同数据结构的自定义结构数据,来建立对应的TAG,如:

∙AXIS---运控模块的状态信息

∙CONTROLLER---控制器模块执行时的状态信息

∙CONTROLLERDEVICE---控制器物理硬件的识别

∙CST---为一个框架中的设备提供协调系统时间的信息

∙DF1---对可组态的DF1通讯设备进行组态和获得信息

∙FAULTLOG---获取或清除控制器的故障信息

∙MESSAGE---获取或设置信息指令的组态信息

∙MODULE---获取或设置模块(在I/OConfiguration中的)的组态信息

∙MOTIONGROUP---运控模块轴组的状态信息

∙PROGRAM---获取或设置程序的组态信息

∙ROUTINE---获取子程序的组态信息

∙SERIALPORT---获取或设置串口的组态信息

∙TASK---获取或设置任务的组态信息

∙WALLCLOCKTIME---获取或设置控制器中的系统时间

2-3用户自定义结构数据类型

用户自定义结构数据类型由用户根据自己的需要自行定义数据的结构,分为以下两种情况。

1>字符串预定义

用户可自行定义不同长度(1-64K字符)的字符串数据结构,用于ASCII码的数据表达(即英文文字表达),用户自定义结构中有一个缺省的长度为82的字符串数据结构,即PLC-5/SLC中字符串数据的定义长度,以保证与PLC-5/SLC的兼容。

2>用户自定义数据结构

用户自定义数据结构通常用于围绕某一控制事件的相关数据建立起来的数据结构,这种结构可使得数据的查找、监视、传送非常方便。

在建立用户自定义的数据结构过程中,其子元素定义的顺序跟存储器空间的占用有关,每当建立一个子元素,都会在上次剩余的32位的存储器空间安排,如果不够,将开出一个新的32位的存储器空间,一个完整的用户自定义数据结构,一定是32位存储器的整倍数。

所以,正确的建立子元素的顺序,可以得到存储器空间的合理安排,从而节约内存空间。

下面是一个变频器的相关数据建立起来的用户自定义数据结构:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1