EDN China > 设计实例 > 嵌入式系统 > 开发工具 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于RT-Linux的嵌入式PLC设计及实现

来源:电子设计信息网/作者:褚毅成 叶佩青 孙敏 杨开明?? 2007年10月19日 ?? 收藏0

  引言

  在数控机床中, 通常用可编程控制器( PLC) 对机床开关量信号进行控制。PLC可靠性高, 使用方便。但在大多数数控机床, 特别是经济型数控机床中, 要求的输入输出点数并不多, 通常在60点以下,因此, 为了降低数控机床成本, 在基于工业PC机的数控系统中, 可以采用开关量I/O板加外接继电器,配合主机的软件对机床开关进行控制。但如果PC机采用单任务操作系统(如DOS) , 数控系统的所有任务运行都置于一个总体的消息循环中, 软件的模块化和可维护性较差, 系统故障的风险相对集中, 而且不能充分利用PC机系统资源。而采用非实时多任务操作系统(如Windows) 时, Win32 API的设计没有考虑到实时环境的开发用途, 其系统调用的效率不高,不能满足数控系统PLC控制的实时性要求。

  为此, 本文提出一种基于RT - Linux操作系统的嵌入式PLC, 利用RT - Linux的开放性、模块化和可扩展性的系统结构特性和多线程/多任务的系统环境,在保证实时性的同时, 使故障风险相对分散。

  数控系统嵌入式PLC的硬件结构

  数控系统硬件建立在通用工业PC的开放体系之上, 数控系统嵌入式PLC硬件包括: 工控机及其外围设备, 基于ISA总线的开关量输入输出接口卡, 光电隔离模块, 继电器输出模块。其结构如图1所示。

数控系统嵌入式PLC的硬件结构

  工控机采用RedHatLinux810 + RTLinux311操作系统, 数控系统的人机界面、数控代码处理、轨迹规划、参数管理以及PLC控制都通过工控机由软件来实现, 不需要独立的PLC控制器, 减少了数控系统对硬件的依赖, 有利于提高系统的开放性。

  I/O输入输出信息通过PC机I/O接口卡实现主机与伺服接口模块和I/O接口模块之间的信息交换,PC机I/O接口卡基于ISA或者PCI总线。

  RT - Linux的体系结构

  RT - Linux是基于Linux系统并可运行于多种硬件平台的32位硬实时操作系统( hard real - time operating system) 。

它继承了MERT系统的设计思想, 即以通用操作系统为基础, 在同一操作系统中既提供严格意义上的实时服务, 又提供所有的标准POSIX服务。RT - Linux源代码公开, 易于修改, 使系统成本降低, 源代码的公开使数控系统的开发摆脱了对国外软件公司的依赖, 有利于提高数控软件国产化程度。

  RT - Linux是基于Linux并可运行于多种硬件平台的多任务实时操作系统。通过修改Linux内核的硬件层, 采用中断仿真技术, 在内核和硬件之间实现了一个小而高效的实时内核, 并在实时内核的基础上形成了小型的实时系统, 而Linux内核仅作为实时系统最低优先级的任务运行。对于普通X86的硬件结构,RT - Linux拥有出色的实时性和稳定性, 其最大中断延迟时间不超过15μs, 最大任务切换误差不超过35μs。这些实时参数与系统负载无关, 而取决于计算机的硬件, 如在PII350, 64M内存的普通PC机上,系统最大延迟时间不超过1μs。RT - Linux按实时性不同分为实时域和非实时域, 其结构如图2所示。

RT - Linux的构造结构图

  实时域在设计上遵循实时操作系统的设计原则,即系统具有透明性、模块化和可扩展性。RT - Linux的实时内核由一个核心部分和多个可选部分组成, 核心部分只负责高速中断处理, 支持SMP操作且不会被底层同步或中断例程延迟或重入。其它功能则由可动态加载的模块扩充。RT - Linux把不影响系统实时性的操作(即非实时域的操作) 都留给了非实时的Linux系统完成。基于多任务环境的Linux为软件开发提供了丰富的系统资源, 如多种进程间通讯机制,灵活的内存管理机制。

  嵌入式PLC的设计及实现

  嵌入式PLC的模块组成

  数控系统的PLC控制模块实时性要求较高, 因而必须在系统的实时域内运行。根据通用数控系统的PLC控制以及数控系统软件模块化设计的要求, 将数控系统的PLC控制模块作为RT - Linux系统的实时任务之一, 其优先级和调用周期取决于数控系统各任务的实时性要求以及控制要求的响应时间。PLC控制模块主要完成数控系统的逻辑控制, 而被控制的输入输出也就是I/O的输入输出由PC机I/O接口卡输入输出模块来完成, 即完成数控系统的PLC控制需要两个RT - Linux实时任务, 如图3所示, 这两个任务分别为RT - Task1 (以下称“适配卡输入输出”) 、RT - Task2 (以下称“PLC控制”) 。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

RT-Linux? 嵌入式? PLC?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈