发表于:2005-05-09 13:04:00
楼主
基于Linux的嵌入式控制器软件及开发环境
本软件是由嵌入式控制器软件、上位机开发环境及连接这两个部分的网络系统构成。嵌入式控制器软件负责信号处理、算法运算等功能。上位机开发环境负责设计、调试控制器中的组态算法、I/O信号配置等功能。网络系统负责沟通控制器和上位机之间的数据交换。
一、 嵌入式控制软件及开发环境的功能
整个嵌入控制系统软件的设计将基于《自控集成开发环境》的总体构想之下。
1.嵌入控制系统软件应用的环境是一个分布式的工业控制系统。总的要求如下:
1) 提供适合多种应用环境的控制功能:
所设计的控制器软件应该能够适应多种工业应用的需要。例如过程控制、离散控制(顺序控制)、配方控制等。
2) 分布式的数据访问(分布式实时数据库):
在一个分布式的控制系统中,为配合系统的灵活性及扩展的要求,整个控制系统不需要设置全局的访问目录,而是根据数据使用的需要,设置对应的访问控制策略。
3) 冗余的结构:
为保证控制系统运行的可靠,应该有多种冗余的方案。包括I/O数据访问级别的冗余、控制器级别的冗余、网络通讯的冗余。
4) 可靠的、性价比优良的运行平台:
控制器的运行应该是可靠、平稳的。平均无故障时间应该符合工业控制的要求。对控制器的硬件平台不应提出过高的要求。
2.嵌入式控制器软件的完整功能有:
1)信号处理
包括I/O信号、通讯信号(上位机或其他控制器)、内部信号、诊断信号等。
I/O信号是指该控制器直接通过现场总线方式访问的I/O设备的信号。通讯信号是由其他控制器或上位机产生的数据,通过通讯方式送入控制器中。内容信号是控制器进行算法运算所需要使用的信号,这部分信号不向控制器以外的站点传送。诊断信号是控制器记录设备运行状态的信号。例如与I/O设备的通讯、与其他站点的通讯、控制器内部设备等。
2)算法控制
能够按照用户设计的控制算法进行正确运算。
控制算法可以分为若干个控制任务,每个任务可以有不同的运算周期和优先级别。
控制算法的结构尽可能符合结构化的模式。即用户可以通过自定义模块化的子程序,然后在算法的其他程序中调用这个子程序。
3)在线修改
能够在线修改控制的算法,且算法的修改不会引起控制器的崩溃(包括不正确的算法修改)及控制现场的扰动。
4)控制算法上下装
控制算法可以通过网络从上位机装入控制器,也可以将控制器中的控制算法在上位机恢复。控制算法的恢复不一定需要完全与原始下装的内容完全一致,但控制的功能不能被更改。一些注释性的内容在控制器中可以不必保存。
5)冗余处理
需要处理两个互为冗余的控制器之间的数据协调。在两个控制器之间可以没有扰动的相互切换控制的主权。
还将完成一个控制器对冗余I/O通道的处理及I/O通道仲裁的处理。
3.上位机开发环境的设计工具功能有:
1)图形化的友好设计界面
控制算法的设计应该是图形化的友好操作界面。除了提供直观的控制图形算法,还应该具有便捷的右键弹出菜单、上下文相关的在线帮助、明确的操作提示等功能。
2)多种设计工具
能够提供多种方便的控制算法设计工具。常用的有功能块图(FBD)、梯形图(LAD)、顺序控制图(SFC)及结构化语言(STL)。
3)在线调试
能够对控制器中的算法进行实时的在线调试。能够观察控制器中各算法模块的运行状况,并能在线修改其中的算法,而不需要将所有的算法重新下装。
整个系统还需要提供一个标准的数据访问接口,这样第三方软件可以通过这个接口实时访问控制器中的数据。选择目前应用最为广泛的OPC作为访问的接口。
4.网络系统需要实现的完整功能有:
1)实时数据通讯
能够在控制器和上位机之间传递实时数据。数据的传送可分为定制传递和非定制传递。
定制传递是可靠的、基于连接的数据传递方式,在定制方式下,数据可以周期方式发送,也可用状态改变方式发送。定制传递是确保数据能够准确送达的传递方式。
非定制传递是基于非连接的传递方式,一般采用周期方式发送。在这种方式下,发送方不需保证接收方一定收到数据。
2)组态调试数据通讯
能够在控制器和上位机之间传递组态和调试的信息。上位机将有关控制器的控制算法组态和控制器配置数据通过网络下载到控制器中;控制器将运行的数据送到上位机中。
3)冗余控制
网络提供冗余的传递功能,目前考虑采用双网热冗余方式。在冗余环境下,网络能够协调两个网络上的数据传递。
二、嵌入式控制软件及开发环境的运行平台
1) 网络平台
网络系统考虑基于TCP/IP模型开发。一方面由于TCP/IP的技术比较成熟,另一方面是为了便于系统向Internet应用方向发展。
2) 上位机开发环境平台
上位机考虑运行于Windows NT/2000系统之下。该操作系统的开发支持软件和资料比较丰富。该操作系统的使用也最广泛,容易被用户接受。
3) 控制器平台
综合考虑的因素有稳定性、安全性、实时性、开发工具的支持能力及对于硬件平台的要求等。决定在Linux操作系统下运行控制器软件。
三.系统特点:
1. Linux系统上的实时控制器软件。
可方便地移植在Intel、Motorola、ARM等多种硬件平台之上。其稳定性、安全性、实时性、开发工具的支持能力及对于硬件平台的要求等因素都较好。
2. 网络环境下的分布式实时数据库。
本项目设计的实时数据库采用完全分布式结构。具有占用较少系统资源、配置灵活、扩展方便,结构可动态更新等特点。
目前国内设计的实时数据库,大部分采用全局定义,部分维护的数据库结构。系统建立一份全局唯一的数据定义表,各控制站点负责维护(生成)其中的一部分数据,各数据使用站点可访问到所有数据。
采用这种结构的长处是系统结构简单、开发周期短。
不足之处是占用较多的系统资源,数据站点间的相互影响较大,系统规模同时受单个站点处理能力及全局数据量的限制。数据结构发生变化需要更新所有数据站点的数据结构。
系统的可扩充性将受到制约,不利于在较大的系统使用。
本系统采用的分布式数据库设计方案,按“需要决定供应”原则,由数据的客户端向数据服务器“订购”所需数据。在实时数据同步中,按数据重要程度,可采用组播或单播方式发送。当数据结构发生变化时,服务器根据“订购列表”通知各相关客户,使得数据结构变化的影响被限制在最小范围之内。
按“需求决定供应”原则,系统规模仅受单个站点处理能力影响。
3. 提供用户自定义含形式参数过程的嵌套调用。
通过提供过程调用机制,用户可以结构化方法进行控制应用的设计。面向过程的编程思想是一种成熟的软件复用模型,用户可以重复使用设计出的过程算法,可以大大提高生产率。同时由于相同的算法代码只存在一个副本,因此极大节约了控制器的存储空间。
过程中形式参数的使用,可以将相似功能进行更加合理的抽象,被调用的那个过程在调用主体中被抽象成了一个功能块,用户可以按照标准功能块的方法使用这些自定义的过程功能块。并且,本软件提供了过程参数的自动匹配功能,当过程参数变更后,系统会自动调整用户定义的实参设置。
本软件还支持过程的嵌套调用,使得用户的程序设计结构更为有效和合理。
4. 为特定工业控制领域提供专用的控制功能库及先进控制算法。
在我们设计的控制软件平台上,可以使用基本的功能件构造出复杂的控制算法,并按适用范围包装成开放型或专用型的控制功能库。这样我们就为控制领域的技术人员研究工业控制理论和方法提供了非常方便的实践平台。
同时,我们也将根据自己在控制工程中的经验,将一些成熟的控制算法按行业分类后提供用户,如电力行业控制算法库、水泥行业控制算法库等。
5.为控制系统提供运行的高可靠性。
整个系统的通讯是建立在冗余网络的通讯平台之上,所有模块之间的数据通讯都可以提供更高的可靠性能。对于关键部件的控制器,也实现冗余控制,两个控制器互为冗余,一主一备,当主控制器出现故障,备用控制器可以无扰切入运行。
故障的自诊断及分离处理。通过系统的适当划分,系统中任何一个模块出现故障,其他模块可以继续工作,不会因其他模块的故障引起自身模块的工作瘫痪。在模块发生故障后,该模块的故障可以由模块自己判断发现,或由其他模块判断发现。通过这样处理,用户可以快速进行故障定位并予以排除。
系统运行状况的在线监测及报告。可监测的性能主要有CPU负荷率、网络负荷率、用户程序执行周期、用户程序的内存占用。这些信息通过预先定义的全局变量向用户提供数据。
6.为用户提供了友好、便利、安全的图形化工作环境
用户可以在控制器软件执行过程中对程序进行在线修改。可以修改的内容包括变量、程序、参数等各种内容。
同时,为确保控制策略的安全性,在修改过程中,设计工具及控制软件都会对控制策略进行正确性检查,对于错误的控制策略,系统可以采取忽略或停止执行的对策,而绝不会使得系统崩溃,对用户造成灾难性后果。(据了解,该项功能国内同类产品中尚不多见)
在本软件中,使用功能块图进行算法的设计,所有的算法设计可以直接作为控制图纸输出。功能块图的设计符合IEC1131-1标准,并在该标准的基础上,结合工程应用的实际需要,提供用户一些新的设计特性。
软件提供完整的在线帮助功能。用户可以通过帮助菜单打开完整的操作手册。也可以通过上下文相关的操作,打开与当前操作有关的帮助。