《2022年基于RTLinux的闸门实时控制系统.docx》由会员分享,可在线阅读,更多相关《2022年基于RTLinux的闸门实时控制系统.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源基于 RTLinux 的实时掌握系统摘要: 从技术背景、系统结构、硬件和软件设计等方面论述了基于RTLinux 的闸门实时掌握系统的组成、原理以及实现方法,并着重分析了软件实现的关键问题;关键词: RTLinux实时控制 TCP/IP MYSQL数据库在水电站闸门掌握系统中,设备地理位置分散、控制分散,基于常规继电器的掌握系统不能满意电厂无人值班掌握系统和全厂综合自动化的要求, 必需将智能掌握和工业网络相结合, 实现实时掌握的同时又能对设备进行智能治理和保护; 目前比较常用的掌握系统大多由PLC构成,成本较高, 缺乏客户定制的敏捷性; 本文从系统功能实现和经济指标两欢迎下载精品学习
2、资源个方面考虑, 半基于 RTLinux 的掌握平台、 工业以太网和数据库技术引入闸门掌握系统;1 RTLlinux 、工业以太网和数据库RTLinux 是由新墨西高校的 VictorYodaiken 等人开发的,现在已有商业化的版本推出;在 RTLinux 面世之前, Linux 在实时性方面作过一些尝试;在 POSIX1.b中,规定了实时进程的一些标准,但由于 Linux 内核的不行抢先性, 真正的实时进程无法在标准的 Linux 环境下实现; RTLinux 采纳简洁而有效的方法解决了此问题而不用重写Linux 内核代码;RTLinux 实现了一个高效的可抢先的实时调度核心, 全面接管中
3、断, 并把 Linux 作为此实时核心的一个优先级最低的进程运行;当有实时任务需要处理时, RTLinux 运行实时任务;无实时任务时,RTLinux 运行 Linux 的非实时进程; 图 1 是 RTLinux 的结构图;为保证明时进程与非实时 Linux 进程部次序进行数据交换, RTLinux 引入了 RT-FIFO 队列; RT-FIFO 被 Linux 视为字符设备,最多可达 150 个,分别命名为 /der/rtf0、/dev/rtf1 /dev/rtf63;最大的 RT-FIFO数量在系统内核编译时设定; 图 2 说明白 RT-FIFO 的工作原理;欢迎下载精品学习资源RTLin
4、ux 程序运行于两个空间:用户空间内核态;RTLinux 供应了应用程序接口,借助这些 API 函数将实时处理部分编写成内核模块,并装载到 RTLinux 内核中,运行于 RTLinux 的内核态;非实时部分的应用程序就在 Linux 下的用户空间中执行,这样可以发挥Linux 对网络和数据库的强大支持功能;TCP/IP 协议和以太网在 Internet上的胜利应用吸引着越来越多掌握程师;尽管以太网的时间不确定性给以太网应用于工业掌握现场 的实时性带来了很多争辩, 但是实际应用中, 经网络传输的数据绝大多数用于系统治理和保护等方面, 用于实时掌握的数据传输很少, 这也是基于治理集中、 掌握分散
5、的系统设计策略考虑的; 在较高的以太网传输速度下, 现场智能处理单元的处理速度才是传输推迟的主要缘由;本系统现场掌握单元采纳高速处理器, 并采纳 RTLinux 作为现场掌握单元的掌握平台, 直接用以太网传输数据, 系统的网络层次削减, 信号的传输实时性也得到提高;目前,有很多数据库开发商供应了 Linux 平台上的数据库软件, 例如 Oracle 、Sybase、Informix 和 MYSQL等都推出了 Linux 版本;基于 RTLinux 的掌握系统在实时掌握领域有庞大的潜力;2 系统组成欢迎下载精品学习资源本系统分为现场和集中级; 现场掌握级由分散在现场的 4 个现场掌握单元掌握,分
6、别完成闸门位置、油缸油压和油路状态等的采集, 现场操作按钮的监视以及闸门提升和下降的掌握等;集中级由集中监控站、保护站组成,分别执行监视、智能保护及诊断等功能;打印机 用于数据的硬备份、报表的输出;系统结构如图3 所示;2.1 系统硬件构成在工业掌握系统中通常采纳 PLC作为现场的掌握核心; PLC的不足一方面在于其较高的价格, 另一方面在于其难以实现非次序掌握算法,以及缺乏对 TCP/IP 敏捷的支持; 本系统采纳嵌入式 PC作为掌握单元的核心, 开发人员可自行开发外围接口板, 依据系统需要敏捷组态,既经济又能使用高级语言开发掌握程序;欢迎下载精品学习资源现场掌握闸门的 LCU采纳相同的硬件
7、配置; CPU板采纳研华公司的 PCM-5864,CPU的 Intel公司的 Pentium MMX 166MHz,内存为 64MB,以太网接口为 10MHz的 RTL-8139A;CPU板通过 PC104总线与采样模块和输出模块相连;此外该板上配有显示、键盘和鼠标等标准接口,便于在 线修改和检查程序;硬盘选用容量为4.3GB的笔记本硬盘; 16 通道的 A/D 采样模块 PCM-3718H完成模拟量的采集,辨论率为 12 位; 16 通道的数字 I/O 模块 PCM-3730用于开关量的采集、掌握闸门的启动和停止;为便于现场巡检, LCU配有显示中文信息的 LCD模块MGLS-240128,
8、内置 T6963C掌握器;系统采纳了 16 端口的 HUB;为保证集中站牢靠地工作,集中监控站、集中保护站采纳工业 PC,配有 Intel公司的 P处理器,256MB内存和 40GB的大硬盘,TCP/IP通信由 3COM公司的 10/100MbpsPCI网卡 3C905C来完成;2.2 系统软件构成系统的软件也分为两部分; 集中监控站采纳 Windows2000操作系统,并安装有 MYSQL-3.23.49 for Windows服务器软件和监控软件;欢迎下载精品学习资源保护也采纳 Windows2000操作系统;此外装有 MYSQL的客户端软件包和保护及诊断软件;监控软件和保护及诊断软件均用
9、 Visual C+ 开发;LCU的软件包括实时 Linux 操作系统、数据库客户端软件和掌握程序;在 LCU中,操作系统 Redhat6.2 经升级和安装 RTLinux 后被改造成实时 Linux ;升级后的核为 Linux-2.2.18,RTLinux的版本号为RTLinux2.2 for Linux-2.2.18;数据库的客户端程序包为MYSQL-3.23.49RPM;掌握程序包括实时掌握程序和非实时程序两部分;3 系统设计的关键问题现场单元中与实现掌握部分和非实时掌握部分程序相对应的文 件为 gatectl_module.c和 gatectl_app.c;二者由 gcc 编译后生成目
10、标文件 gatectl_module.o和 gatectl_app.o;前者为内核模块,嵌入到 RTLinux 核中,用于实时采集和实时掌握输出, 运行于内核态;后者为 Linux 应用环境,运行于用户空间,完成数据的预处理、拜访数据库和人机接口等工作;3.1 内核模块欢迎下载精品学习资源内核模块程序按多线程模式编写, RTLinux 供应了与多线程编程相应的 API 函数;RTLinux2.2 内核中,完成实时任务的模块主要包括以下两个功能函数:Int init_module;Void cleanup_module;前者在模块第一次装入核中时被调用, 完成实时任务的参数 (优先级别、中断周期
11、等)的设置,进行任务的启动和终止等操作;后者 在模块卸载时被调用, 一般在调试或系统退出时使用; 模块中可启动多个任务,本系统在实时部分只设计一个实时任务即Task1;欢迎下载精品学习资源启动实时任务前必需进行初始化; init_module中的初始化工作包括以下三部分:为保证内核态的实时进程与用户空间的非实时进程间交换信 息;须创建 3 个 RTL-FIFO,详细为: rtf1用于实时进程与非实时进程间的数据交换,数据包括采集到的模拟量和数字量;rtf3用于非实时进程向实时进程传递掌握命令字, 以启动和终止实时任务; rtf2用于储存经 ttf3传递的实时任务的掌握命令字; 创建工作由 RT
12、Linux供应的 API 函数 rtf_createn,buf来完成;创建实时任务 Task1 对应的线程,并设定其调度优先级,由API 函数 pthread_create来完成;当非实时进程通过 rtf3进行掌握命令传递时,实时进程应准时响应;因此必需在实时程序中建立跟踪rtf3变化的子程序,调用rtf_create_handler3,&data_handler 来完成此功能;内核态的主体程序有两种实现方式: 中断处理和周期实时线程方式;本系统采纳周期性实时线,即周期性地执行数据采集、输出掌握结果以及与处于用户空间中的非实时进程交换数据; 详细过程见图 4;欢迎下载精品学习资源在编写实时程序
13、时, 应特殊留意的是:实时任务运行在内核水平, 是为了供应对运算机硬件的直接拜访才能,为防止不确定的推迟, RTLinux 给代码和数据安排固定的内存空间;实时任务不能使用Linux 的系统调用及 Linux 中的程序与数据结构,否就难以保证数据的一样性; 此外应掌握实时程序的执行时间, 编写程序时应留意包含与 API 函数对应的头文件;内核程序中与 RT-FIFO 相关的函数有: rtf_create:创建 RT-FIFO;rtf_get:从 RT-FIFO 读数据;rtf_put:向 RT-FIFO 写数据;rtf_create_handler:建立响应 RT-FIFO 变化的子程序;内核
14、程序中与实时任务线程相关的函数有: pthread_create:创建实时任务对应的线程;pthread_wait_np:将当前线程挂起,直至下一个周期线程;pthread_makeperiodic_np:设置线程的属性并启动线程;欢迎下载精品学习资源pthread_suspend_np:将本线程无限期挂起,即终止任务;在调试阶段,需要将有bug 的模块卸载;该项工作由cleanup_module ()来完成;在卸载模块时将 rtf1、rf2 和 rtf3撤销,并撤销实时任务 Task1;3.2 应用程序Linux 下应用程序 gatect1_app 工作流程见图 4,其程序用 Linux下的
15、 C语言开发;集中监控站和保护站的程序在 Windows下用 Visual C+开发;其中有几点要说明:RT-FIFO 被 Linux 视为字符设备,因此可以通过调用open/dev/rtf1,O_RDONLY来获得 rtf1的指针, rtf2的 rtf3类似;获得指针后通过 read 和 write函数实现对 RT_FIFO的读写操作;程序中调用 select函数检查 RT_FIFO是否忙,以防止读RT_FIFO时显现堵塞现象;LCD显示模块 MGLS-240128内置智能掌握器, 只需将待显示的数据送掌握器的显示缓冲区就能实现显示功能, 数据显示不会占用系统过多的时间;欢迎下载精品学习资源
16、系统数据传输和保护通过网络数据库来实现;数据库采纳 客户端/ 服务器模块,将 LCU、集中保护站设置为客户端,将集中监控站设置为服务器;本系统采纳基于TCP/IP 协议的 MYSQL数据库为实现数据治理; MYSQL是一个多用户、多线程的 SQL数据库服务器,由客户端 / 服务器结构来实现; 它由一个服务器守护程序 mysqld 和不同的客户程序及库组成,使用TCP/IP 把多个客户( LCU等)连接到一个服务器(集中监控站)上;在运行前应将主机名、IP 地址等设备就绪,在 LCU的应用程序 gatectl_app中应包含 MYSQL.h头文件,欢迎下载精品学习资源其中有 MYSQL的 API
17、 函数的详细实现;在用户空间, C 语言程序通过这些 API 函数拜访远程的数据库服务器;数据的预处理: 为防止被干扰的数据上传到服务器, 应用程序对数据进行滤波, 再对数据进行分类; 经过预处理后的数据才可以送数据缓冲区,通过 API 函数向数据库服务器上传;4 应用成效目前该系统正在试验室运行; 从连续运转的情形看, 掌握实时性和牢靠性均达到了设计要求, 网络和数据库均运行正常, 可见本设计思路是可行的;下一步将设放到工业现场进一步验证;RTLinux 实现实时掌握功能并与 Linux 有机结合,这一设计思路既满意了实时掌握系统对响应的快速性、 时间的精确性和掌握的可猜测性的要求, 又充分发挥了 Linux 对网络和数据库的支持功能; 将 RTLinux 引入掌握领域,拓宽了 Linux 的应用范畴,必需加速工业掌握的信息化;欢迎下载