数控系统软PLC模块的研究与开发.pdf
1 38 机 械 设 计 与 制 造 Ma c hi n e r y De s i g nMa n u f a c t u r e 第 2期 2 0 1 1 年 2月 文章编号 1 0 0 1 3 9 9 7 2 0 1 1 0 2 一 O 1 3 8 0 3 数控 系统软 P L C模 块的研 究与开发 术 白 江王 宇晗金 永乔 上海交通大学 机械系统与振动国家重点实验室, 上海 2 0 0 2 4 0 Re s e a r c h a n d d e v e l o p me n t o f s o f t PL C mo d u l e i n CNC s y s t e m B AI J i a n g , WANG Yu h a n, J I N Yo n g - q i a o T h e S t a t e k e y L a b o r a t o ry o f Me c h a n i c a l S y s t e m a n d Vi b r a t i o n , S h a n g h a i J i a o T o n g Un i v e r s i t y , S h a n g h a i 2 0 0 2 4 0 , C h i n a 【 摘要】 开关量控制是数控系统控制功能的重要组成部分,采用软 P L C技术实现数控系统的开 关量控制符合开放式软件数控的要求,具有良好的开放性和强大的控制能力。设计 了基于 Wi n d o w s R T X实时操作 系统的软 P L C整体结构,采用模块化设计和多线程技术对软 P L C运行系统进行 了具体 实现 , 并针对软 P L C运行 系统的可靠性和 实时性给 出了测试结论。 关键词 数控系统 ; 软 P L C; R T X 【 Ab s t r a c t 】 L o g i c c o n t r o l o f ma c h i n e t o o l i s a n i m p o r t a n t p a r t of C N C s y s t e m, i t c h o o s e s of P L C t e c h n o l o g y t o c o m p l e t e t h e l o g i c c o n t r o l o fm ach i n e t o o 1 . T h e f r a me w o r k ofs o ft P L C b a s e d o n Wi n d o w s R T X r e al t i m e o 19 e r a t i n g s y s t e m i s d e s i g n e d . T h e n t h e r u n s y s t e m o fs P L C i s r e a l i z e d u s i n g m o d u l a r 如s a n d m t i t h r e a di n g t e c h n o l o g y, Mo r e O V e r , t h e r e l i a bi l i t y a n d r e a l t i me i s t e s t e d a n d a n aly z e d . Ke y wo r d s CNC ; So f t PLC; RTX 中图分类号 T H1 6 , T P 2 7 3 文献标识码 A 1 引言 开关量控制是构成数控系统控制功能的重要部分,主要负责 对机床I O和操作面板等进行逻辑控制。目前数控系统中对开关量 控制 的实现方式主要有三种0 J 独立硬件 P L C、 内嵌 P L C和软 P L C 。 独立型 P L C采用通用的硬件 P L C完成机床的开关量控制 , 具有稳 定I 生 好、 可靠性高以及技术成熟等方面的优 。内嵌型P L C则将开 关量控制的功能在数控系统内部实现,与数控系统集成在一起 , P L C与数控系统在内部实现数据交换, 简单可靠。 但是, 独立型P L C 和内嵌型P L C也存在自身的钱 , 结构封闭开放性差。 在 Wi n d o w s R T X实 时操作平 台上开发用于开放式数控 系 统的软 P L C系统, 并基于 R T X实时扩展平台对软 P L C运行系统 的技术细节进行了进行具体的分析和设计。 2 软 P L C的总体设计 2 . 1软件平台的选择 选择 Wi n d o w s X P R T X实时扩展作为软 P I C的开发平台。 Wi n d o w s 是被广泛应用的商用操作系统 , 具有 良好 的开放性和丰 富的软件资源 。但是 目前 的 Wi n d o w s 操作系统都非 “ 硬实时” 系 统, 无法满足软 P L C实时性的要求。同数控系统一样, 软 P L C具 有很强的实时性, 特别是对于限位和刀库等开关量信号的控制。 R T X同时提供 了进程间通信 I n t e r p r o c e s s C o m mu n i c a t i o n , I P C 对 象 , 主要 有 四种 事件 E v e n t 、 互 斥 体 M u t e x , 信 号量 S e m a p h o r e 和共享内存 S h a r e d Me m o r y o通过 I P C我们就可以 实现实时与非实时进程间 , 以及实时进程 问的通信 与同步。R T X 也提供 了高分辨 率的时钟和定时器 , 以及 中断管理 。这些可 以更 有效地帮助开发人员进行实时程序的开发[4 1 。 由此可见, 我们采用 Wi n d o w s R T X作为开发平台, 可以充 分利用 R T X提供的 A P I 函数 、 I P C以及定时器等各种优异性能 实现软 P L C模块的开发, 并通过与C N C系统的通信与同步实现 对机床开关量的逻辑控制 。 2 _ 2软 P L C的结构 设计的软 P L C系统由开发系统和运行系统两部分组成 , 如 图 1 所示 。 置 发 。 主 . l 系 j源 代码 J I J J 统 l编 译 模 块 } T 卤 l 目 标 代 码 l 1仿 真 模 块 l . . 曩 厂 堡 壁 堡 垦 卜_] 蓠 冈 数据存储区陲J_一 图 1软 P L C的结构框图 F i g . 1 F r a me wo r k o f s o ft PL C 开始 . 工。 l 等待被唤醒} . .二匕 . J 从代码存 储区f l 读取 一 条指令 l i 二 生 i 对指令进行分析 根据分析结果、 调取 对应执行 函数处理 图 2任务执行模块流程图 F i g .2 W o r k f l o w o f T a s k 开发系统运行于 Wi n 3 2 环境中, 独立于运行系统存在, 主要 功能是提供一个界面友好 的开发软件 ,用来完成 P L C源程序的 编辑、 检错、 编译以及仿真。 开发系统最终产生一份满足控制要求 ★来稿 日期 2 0 1 0 0 4 0 2 ★基金项 目 “ 高档数控机床及摹础制造装备” 国家科技重大专项“ 全数字高档数控装置” 课题资助 . . r . . 数控与自动化v . . 1 第 2 期 白 江等 数控 系统软 P L C模块的研究与开发 1 3 9 的合格的目标代码,运行系统在启动时就可以加载该 目标代码, 并对目标代码进行解释执行, 最终实现控制功能。 软 P L C运行 系统运行 于 R T S S环境 中 ,主要 功能是 按 照 P L C程序完成相应的逻辑控制。软 P L C运行系统随数控系统一 起启动 , 负责完成机床相关 的开关量控制 。通过与数控系统之间 的通信与同步, 运行系统能够和数控系统相互协作, 共同完成数 控功能。 软 P L C运行系统是软 P L C的核心部分, 将着重对软 P L C 运行系统的设计进行详细的介绍 。 3 软 P L C运行系统的设计 3 . 1软 P L C运行系统的组成 3 . 1 . 1 任务执 行模 块 任务执 软 P L C的重要组成部分 , 主要完成用户程序的 执行。 为了满足用户不同实时』生的要求, 我们将任务执行模块又分为 普通任务执行馍块和高速任务执行馍块。 在系统管理漠块的调度下, 普通任务执行馍块每2 0 m s 执行一次,用来完成实时眭要求较低的 控制; 而高速任务执行模块每 5 ms 执行一次, 完成实时胜要求较高的 控制, 如刀库, 限位等等。这两个模块均为独立的普通线程。 如图 2 所示, 为任务执行模块 的工作流程 。从图中可以看出, 任务执行模块被启动后的工作过程是一个循环。在一次循环 中, 任 务执行模块首先从代码存储区读取一条指令, 接着对该指令进行分 析,根据分析结果从指令库中调取该指令对应的执行函数进行处 理。读取处理完一条指令后一个循环结束, 任务执行模块再读取下 一 条指令进行处理, 进行下一个循环。遇到 E n d 指令后, 任务执行 模块退 出循环 , 完成一个软 P I C周期的用户程序执行任务。 3 . 1 . 2系统 管理 模块 系统管理模块是软 P L C运行系统的核心,负责相关的全局 数据的处理以及运行系统资源的管理,并对任务执行模块和 I / O 模块进行管理调度。 在软 P I c中, 系统管理模块是一个利用 R T X 提供 的定时器功能在 R T S S环境 中创建 的定时器线程 , 定时周期 为 5 m s 。如图 3 所示 , 为系统管理模块的工作 流程 。 图 3系统管理模块的流程 图 Fi g . 3 Wo r k flo w o f s y s t e m ma n a g e r mo d u l e 图 4软 P L C运行系统工作流程图 F i g .4 W o r k fl o w o f s o f t P LC m R s y s t e m 系统管理模块在每个周期的开始, 先将计数器 T i me C o u n t , 处理运行系统 内部相关数据 。 接着系统管理模块启 动 I O模块 , 并 等待 1 0读写完毕。等 1 0读写结束后, 系统管理模块就会启动高 速任务执行块。如果 T i me C o u n t 为 4的整数倍 亦即每 2 O ms 则 还会启动普通任务执行模块。 3 . 1 . 3 I / 0模 块 I / 0模块同样是软 P L C中必不可少的一部分, 主要负责输入 输出的刷新以及与 C N C之间的通信。 I / O模块也是一个独立的普 通线程 , 由系统管理模块调度 , 每 5 ms 执行一次。I / O模块的工作 内容主要有两部分。一方面 I / O模块与 C N C之问进行通信 , 读取 来 自C N C的输入并将相关输出传送给 C N C 。它们之间的通信主 要 通过 R T X提供 的共享 内存来实现 ,在共享 内存 中定 义 了软 P L C与 C N C之间的数据接 口,并且通过互斥体来保证 数据访 问 的安全。另一方面, I / O模块对机床输入输出信号进行刷新, 这主 要通过 1 0板卡, 以及串口通信等来实现。 如图4所示, 给出了设计中软P L C运行系统的工作流程。 运 行系统启动后, 首先进行系统的初始化, 申请数据存储区和程序 存储区, 并载入 P L C用户程序。接着系统创建系统管理线程 、 任 务执行线程 和 1 0线程 , 建立软 P L C的运行环境 。之后 , 运行系统 进入运行状态, 系统管理线程调度执行其他线程, 管理整个系统 的运行 , 完成控制功能。最后等运行结束, 系统注销个线程, 释放 资源 , 软 P I C退 出运行。 3 . 2软 P L C多任务系统的同步与通信 软 P I .c运行系统的四个模块构成软 P L C运行系统的任务 系统 , 采用 四个 独立线程分别 实现这些任务 , 并利用多线程 技术 实现多任务的并行处理。这种设计能够有效地利用系统资源, 提 高运行系统 的性能 , 但 为了能够正 常准确的完成控制功能 , 这些 任务线程之间又需要同步和通信。 如何使它们进行良好的交流与 合作 , 是运行系统的设计 中重要的~部分。 i N l- 中,采用了R T X提供的线程优先级设定和 I P C对象两 种方式实现线程的同步与通信。 四个任务线程设定的优先级为 系统 管理模块因为负责各模块的调度执行拥有最高优先级 MA x , 因为 需要及时获取外部输入以及对外输出, I R 模块被设定为第二优先级 MA X - I , 高速任务执行模块 MA x _ 2 和普通任务执行模块 MA x 一 3 的优先级依次递减。 在 I P C对象进行线程问的同步与通信方式中, 主要用到了7 个 I P C 对象, 如表 1 所示。 通过各线程的优先级以及线 程之间的I P C对象, 软 P L C运行系统各个任务线程之间以及软 P L C 与 C N C之J司就可以有条不紊的运行, 实现对数控机床的控制。 表 1软 P L C运行 系统 I P C对象 T a b . 1 I P C o b j e c t s i n t h e s o f t P L C r u n s y s t e m l 0读写开始事件 1 0读写完成事件 普通任务开始事件 高速任务开始事件 P 1 C终止事件 C NC和 P L C之 间的共享 内存 C NC和 P L C之间的互斥体 3 . 3软 P L C运行系统数据存储的设计 数据存储 的设计是软 P L C运 行系统实 现过程 中的关键 问 题。 通过各种数据存储方式 , 运行系统才能够实现对数据的处理 , 进而实现对输入输 出的控制 。设计中 , 运行系统的数据存储 主要 一 ~ ~ ~ 一 一 ~ 一 一 一 一 ~ ~ 一 ~ 1 4 0 机 械 设 计 与 制 造 No . 2 F e b . 2 0 1 l 有以下三个方面。 3 . 3 . 1 程序存储 区 编译器对编辑器生成的源代码进行检错,并最终生成运行 系统可以直接使用的目标代码。 为了在运行时l夹 速安全的读取目 标代码 , 运行系统在 系统初始化 的过程 中, 会开辟一块 内存专 门 用于存储 目标代码, 在代码加载过程中, 系统管理模块会按照指 令数据结构 , 在程序存储区中顺序存储所有指令。在运行系统退 出时 , 系统管理模块会释放这块内存 , 卸载用户程序 。 3 . 3 . 2数 据存储 区 数据存储区用于存储外部输入输出信号状态、内部继电器 状态以及定时器状态、 计数器状态等数据。这些数据作为全局变 量可以由普通任务执行模块、 高速任务执行模块、 1 0模块以及系 统管理模块访问。数据存储 区基本上存储了软 P L C运行系统 的 所有信息, 是各个任务模块执行的基础。运行系统根据指令参数 指定的寻址方式对数据存储 区进行访问。 3 . 3 _ 3 指令 的数 据结构 本软 P L C中, 采用指令表语言作为软 P L C编译和执行 的语 言。指令表程序由许多条指令组成 , 在软 P L C中为了存储和使用 指令 , 需要为指令设计‘ 一定的数据结构。一条 P L C指令一般包含 两部分 操作码和操作数。 每条指令包含的操作数有可能不同。 一 般来说 , 基本指令包含一个操作数 , 而功能指令则包含 2 ~ 4 个操 作数。所以根据这种睛况, 我们设计软P L C的指令结构如下 t yp e d e f s t r uc t { U S HO R T C o m m a n d N o ; } |指令编号 U L O N G I n s t r I n f o ; i 蜷 令 息 U L O N G P a r a m1 ; / / 指令的参数 1 U L O N G P a r a m 2 ; / / 数 2 U L O N G P a r a m 3 ; 修 数 3 U L O N G P a r a m 4 ;| { 参数 4 } I N S T R U C T I O N ; 运行系统为每个 P L C指令进行了编号,这个编号是指令在 编译过程中和执行过程 中的唯一标识 , 任务执行模块就是通过这 个编号来识别指令并从指令库中调取相应执行函数 , C o m ma n d N o 就是用来存储指令编号 的。I n s t r I n f o 用来存储指令相关的一些信 息, 主要包括每个参数的类型以及其他一些信息。在本软P L C中, 主要有位地址 、字地址 、 1 6位常数和 3 2 位常数 四种参数类型。 P a r a ml P a r a m4 用来存储指令的每个参数。 4软 P L C运行系统的测试 4 . 1 P L C的运行 测试 平 台 为了验证本设计软 P L C的功能 ,我们利用实验平台对其进 行测试 。实验平台如图 5 所示。 软件 平 台为 Wi n d o w s X P R T X 6 . 5 。硬件平 台为 P C 固高 G O 4 0 0运动控制卡 固高 1 0端子卡 L E D灯测试板 。 其 中软 P L C 运行于 P c机上,运动控制卡和 1 0端子卡负责采集输入输出, L E D灯测试板提供输入输 出信号。 图 5软 P L C功能测试实验平台 F i g . 5 Te s t p l a t o f s o f t P LC 4 .2软 P L O指令的性能测试 P L C指令的性能决定着软 P L C的性能,指令的性能主要表 现在指令 的执行时间。单个指令 的执行 时间决定着整个 P L C程 序 的执行时 ,指令 的执行时间越 短 , P L C程序执行周期越快 , 因 此 , 主要对软 P L C指令的执行时间进行 了测试 。测试用的 P C条 件为 C o r e 2 T 6 5 7 0 2 . 1 0 C H z , 内存 1 G B , 在测试过程中使用到了 R T X的时间函数 R t G e t C l o c k T i me 函数 , 用来读取 时钟 的时间。 测试结果, 如表 2所示, 这里只列出了一些典型指令的执行时间。 表2典型指令执行时间 T a b . 2 Ex e c u t i o n t i me o f t y p i c a l i n s t r u c t i o n 测试结果表明, 基本指令的执行时间为 0 .0 1 0 p s , 功能指令 的执行时间为 0 .0 1 5 ~ 0 .0 2 5 t s 。 这说明软 P L C执行 1 0 0 0条指令 仅需 0 .O 1 5 ms , 所以该 软 P L C运行系统拥有 良好的性能 , 能够完 成数控机床的开关控制任务。 5结论 采用基于通用操作系统的软 P L C技术实现数控系统中的开 关量控制功能,能够极大增加数控系统的开放性和兼容性。以 Wi n d o w s R T X实时操作系统作为平台,利用 Wi n d o w s 和 R T X提 供的各种特I生,采用多线程技术开发的软 P L C 运行系统能够满足 软 P L C实时『生 的要求。经过试验测试, 软P L C能够正常工作, 并拥 有出色的指令执行时间。通过与 C N C进行合作 , 软 P L C运行系统 能够利用强大的指令库 出色的完成数控系统的逻辑控制功能。 参考文献 1 赵鸿玢, 于东, 李毅霞, 盖荣丽. 基于 R T L i n u x 的软P L C系统设计与实现 [ J ] ./ J 、 型微型计算机系统, 2 0 0 7 3 4 7 0 - 4 7 3 2 陈兴武, 蒋新华, 徐均攀. 应用软P L C开发数控机床的功能控制[ J ] . 厦门 大学学报 自然科学版 , 2 0 0 5 5 6 5 4 ~ 6 5 7 3 李霞 , 王永章 , 郑佳昕 , 梁宏斌. 开放式软数控 系统 的关键技术研究及实 现[ J ] . 组合机床与 自动化加工技术 , 2 0 0 3 1 0 6 - 8 4 V e n t u r C o m, I n c . R T X 6 . 5 S DK D o c . [ E B / O L ] .h t t p / / w w w . v c i .c o n, 2 0 0 5 5 s . B r i a n M o r r i s s 著 , 杨智等译 .可编程逻辑控制器[ M] . 北京 机械工业出 版社 , 2 0 0 6 6 HE J L, YA N G R Q, Z MA O Q F, e t a 1 . A c h e s s p l a y i n g r o b o t c o n t r o l s y s t e m b a s e d o nWi n d o w s N T R T X[ J ] . R o b o t i c s . 2 0 0 4 2 2 3 3 9 ~ 3 4 3