基于开放式数控系统的软PLC开发与应用_第1页
基于开放式数控系统的软PLC开发与应用_第2页
基于开放式数控系统的软PLC开发与应用_第3页
基于开放式数控系统的软PLC开发与应用_第4页
基于开放式数控系统的软PLC开发与应用_第5页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要开放式数控系统是数控系统领域发展的重点方向,而传统的 PLC 已经无法满足开放式数控系统的要求,在 PC 机平台上以软件实现传统 PLC 功能的软 PLC 技术已经成为了开放式数控系统实际应用中的一项关键技术。为了实现用户特定的控制工艺,全软件型数控系统(EMC2)在实际应用过程中经常使用 shell 脚本来进行辅助开发,并通过硬件抽象层(HAL)管脚来操作数控系统完成控制任务。这种开发方式不但不易被用户掌握,而且控制工艺在试用期间是需要不断调整的,这样就造成了数控系统应用开发任务重、周期长、维护难等问题,不利于数控系统在市场的应用与推广。为解决上述问题,本文在基于 PC 的全软件型数控系

2、统(EMC2)上开发出了一套软PLC 应用软件,用户可以根据自身的工艺要求使用梯形图自行设计操作流程。其主要内容如下:首先,根据符合 IEC61131-3 标准的梯形图编程规则,使用 Qt 设计并实现了软PLC的编辑器,用户可以使用该编辑器完成梯形图程序的编辑、保存、打开等操作。其次,根据在编辑过程中保存梯形图程序所使用的数据结构的特点,研究了基于二维数组的梯形图转换为指令表的策略,并根据梯形图的运行规则,设计并实现了直接对梯形图程序进行解释执行的算法。再次,根据 EMC2 的HAL 机制设计并实现了运行系统的解释执行模块,使得软 PLC 可以周期性的读取输入、解释执行梯形图程序、刷新输出。基

3、于该运行机制,还设计实现了软PLC 轴控制功能。最后对软 PLC 各个功能模块进行了测试,并以 LED 点胶机为实验平台,将所开发的软PLC 应用程序搭载到EMC2 数控系统上,使用 PLC 编辑开发 LED 点胶机的梯形图程序。经实际运行测试,LED 点胶机能够完成预定的工艺流程,PLC 以及数控系统亦能够稳定地工作。关键词:开放式数控系统;EMC2;软PLC;硬件抽象层;QTIXAbstractOpen CNC system is the key development direction in the field of numerical control system, but the

4、traditional PLC has been unable to meet the requirements of open CNC system. Soft-PLC which was implemented in software based on PC has been an important technology in the practical application of open CNC system. In order to realize the specific control process for users, the shell script usual was

5、 used to assistant development, and through the HAL pins to operate the numerical control system to implement the control task during the application of full software CNC (EMC2). The development mode have some limitations, most of users do not have the ability to develop by this manner, and the cont

6、rol technology requires frequent adjustment during the trial period, which caused the application tasks of CNC system become heavy, development cycle become longer, and more difficult to maintain. These defects have hindered the application and promotion of CNC system in the market.In order to solve

7、 the above problems, the soft-PLC has been developed based on full software CNC, it lets users design their own operating procedures according to their demands by themselves. Its main contents are listed as follows.Firstly, according to the programming rules of ladder diagram which has been defined

8、in the standard IEC61131-3, the editor of ladder diagram was designed and realized by Qt. Users of soft-PLC can edit or save, open programs of ladder diagram.Secondly, the strategy of transforming the ladder diagram based on two-dimensional array to instruct list was studied according to characteris

9、tics of the data structure which was used to save ladder diagram during the editing progress. The algorithm to directly explain and execute ladder diagram programs has also been designed and implemented.Thirdly, the modules of the running system to explain and execute ladder diagram programs was rea

10、lized based on HAL of EMC2, which enable soft-PLC to read inputs, explain and execute ladder diagram programs, and renew output periodically. In a result, the axis control function of soft- PLC has also been realized.Finally, each of function modules of the soft-PLC has been tested, and also it has

11、successfully used in a LED dispenser, the result of testing indicate that the LED dispenser can correctly accomplish the technological process.Key words: open CNC system; EMC2; soft-PLC; HAL; QT目录摘要IAbstractII第一章 绪论1 课题研究的背景与意义1 开放式数控系统简介1 软PLC 产生的背景2 软PLC 的国内外发展现状3 软PLC 的发展趋势3 课题的提出和研究内容4 课题的提出4 课题

12、的研究内容4 本论文的组织结构5第二章 软 PLC 应用软件的总体设计6 传统PLC 的体系结构和工作原理6 传统PLC 的硬件体系结构6 传统PLC 的工作原理7 全软件型数控系统的体系结构8 实时操作系统平台8 开源数控软件EMC29 IEC61131-3 标准的编程语言10 软PLC 的需求分析12 软PLC 系统的结构设计与分析13 软PLC 的结构分析13 软PLC 的结构设计14 本章小结15第三章 软 PLC 梯形图编辑器的设计与实现16 图形界面开发工具 QT 简介16 Qt 的体系结构16 Qt 信号和槽的机制16 梯形图编辑器的界面设计18 主界面的设计18 梯形图编辑区域

13、的设计21 梯形图图元的设计22 梯形图编辑器的实现24 编辑器主界面的实现24 编辑器绘图区域的实现26 本章小节31第四章 软 PLC 运行系统的设计与实现32 基于二维数组的梯形图转换为指令表的策略研究32 提取梯形图程序的网络连接信息33 梯形图二叉树的串并联归并36 梯形图直接解释执行的实现40 梯形图的解释执行算法设计40 梯形图各图元的解释执行43 运行系统解释执行模块的实现45 EMC2 中的硬件抽象层技术原理45 HAL 组件的创建46 周期性扫描梯形图程序的实现48 PLC 运行系统与开发系统的通信50 基于EMC2 的PLC 轴控制功能的实现51 轴控制功能梯形图软元件的

14、设计51 轴控制软元件功能的实现52 本章小结55第五章 软 PLC 的测试与应用565.1 软PLC 各功能模块的测试565.1.1 梯形图编辑功能的测试565.1.2 梯形图程序错误检查功能的测试575.1.3 软PLC 各软元件的逻辑功能测试575.2 LED 点胶机软PLC 的应用实例615.2.1 LED 点胶机简介615.2.2 LED 点胶机的点胶流程615.2.3 LED 点胶机软PLC 控制的实现625.3 本章小结65总结与展望66参考文献67攻读硕士学位期间取得的研究成果70致谢71第一章 绪论第一章 绪论 课题研究的背景与意义 开放式数控系统简介传统数控系统在硬件和软件

15、上都是专用的,整个体系结构也是封闭的1。从硬件上讲,各个厂家都使用自己专门设计的主板和伺服电路,而且相互之间都是独立的,没有统一的标准,系统软件的结构也是各厂家根据自身的硬件平台专门设计的,不具有可移植性和伸展性2。随着现代制造技术和计算机控制技术的普及和发展,这种封闭式的体系结构所带来的缺陷也变得越来越明显,存在着结构固定、功能单一、维护困难、互不兼容等劣势,严重制约了数控技术的发展和推广。在这种情况下,具有配置灵活、功能拓展简便、统一规范的开放式数控系统从一出现便受到市场的关注,与此同时,传统数控系统这种封闭式的控制模式已经无法适应现代信息技术的发展,其控制模式必须转向通用型开放体系结构发

16、展,开放式数控系统显然已经成为数控系统发展的趋势。开放式数控系统相对于传统数控系统而言,优势在于开放式数控系统具有与 PC 机类似的开放性,均在一个统一的平台上构建起整个系统,并使系统具有模块化的组织结构。这种开放式的体系结构不但能够满足频繁变化的市场需求,而且还增强了数控系统的柔性,可以对系统进行伸缩、扩展、移植等操作,降低了其再次开发的难度2,3,4。开放式数控系统开放的层次可以划分为三个层次:人机控制接口、系统核心接口、体系结构。其中开放人机控制接口和系统核心接口只能具有部分的开放性,而开放的体系结构则具有比较彻底的开放性5。基于 PC 机软硬件平台构造出数控的功能是当前实现数控系统开放

17、性的一种比较成熟的方法,基于 PC 的开放式数控系统从其体系结构来划分又可以分为三类2,5: PC 嵌入到 NC(数控)的数控系统。这种数控系统是将 PC 装入到 NC 内部, 并使用专用的总线将 PC 和 NC 连接起来。这种方案的 NC 内核仍然会保持其原有的封闭性,只能开放系统的人机控制接口。 NC 嵌入到 PC 的数控系统。这种数控系统是通过在通用 PC 的扩展槽中插入运动控制卡而组成的。运用 PC 实现人机控制接口的开放,再借助运动控制卡的可编程2功能实现系统核心接口的部分开放。 全软件型数控系统。这种系统的 CNC(计算机数控)功能全部由软件在 PC 机上实现,并通过装在 PC 机

18、扩展槽的伺服接口卡对伺服驱动等进行控制。其以 CNC 装置的主体为 PC 机,可以充分利用 PC 运算快,存储量大,性能稳定等优势,实现机床控制中的运动轨迹控制和开关量逻辑控制,是一种具有开放体系结构的数控系统。 软 PLC 产生的背景PLC(Programmable Logic Controller)是 60 年代基于计算机技术、通信技术、继电器控制技术发展起来的一种工业控制装置。传统硬件 PLC 的基本设计思想就是把计算机的完备功能和继电器控制系统的顺序控制技术相结合,成为一种可以存储用户程序、在线修改用户程序、程序语言简单易懂、功能易于扩展、体积小、可靠性高、易于维护等通用性强的控制装置

19、。PLC 在数控系统中的主要作用是完成数控部分的 M、S、T 辅助功能,在数控系统配置机床的时候起接口作用。然而传统的 PLC 和传统的数控系统一样,在计算机技术飞速发展的情况下,其弊端也越来越明显,各个厂家的机型互不兼容,缺乏统一的标准, 产品过分依赖于硬件导致功能难以扩展,价格也比较昂贵。传统的 PLC 显然无法满足开放式数控系统的要求,于是就有了软 PLC 的概念。软 PLC 控制技术亦称为软逻辑和基于 PC 的控制技术,本质就是利用 PC 的资源,以软件的形式实现传统 PLC 的功能。软 PLC 能够满足开放式数控系统的开放性要求,已经成为开放式数控系统的关键性技术之一6。相对于传统P

20、LC 而言,软PLC 具有以下优势7:(1) 具有开放的体系结构,可以支持多种硬件,能够解决传统 PLC 互不兼容的问题。(2) 遵循国际工业自动化控制领域标准 IEC61131-3,使软 PLC 程序具有良好的可读性、维护性和可移植性。(3) 具有强大的数据分析和数据处理能力。采用 PC 强大的数据处理能力,可以处理包括浮点型数据、字符串在内的各种复杂数据,数据的管理和保存也比较简便。(4) 具备网络通信功能,可以实现对现场设备的实时监控。(5) 节约成本。3第一章 绪论 软 PLC 的国内外发展现状软 PLC 作为一项工业自动化领域的新型控制技术,得到了欧美、日本等发达国家的重视,在相关的

21、研究方面已进行了比较多的投资,并取得了比较好的效果。目前,国外已经投入使用的软 PLC 产品较多,如 SOFTPLC 公司的 SoftPLC、德国 SIEMENS 公司的SIMATIC WinAC、CJ International 公司的 ISAGRAF、Wonderware 公司的InControl 等,这些产品已经相对比较成熟,而且都具有各自的特点8。国内对于软 PLC 的研究开发相对国外来说起步较晚,主要是数控系统科研机构和一些高校有相关的研究工作,并取得了一些成果。如东南大学吕涌等开发的面向 DCS 控制组态软件虽然具有一些软PLC 功能,但功能不全,且不能独立运行9;国家数控系统工程

22、技术研究中心罗华丽等对开放式数控系统软 PLC 技术做了一些研究,并提出了一种基于开放式数控系统的嵌入式软件 PLC 子系统的实现方法,设计了软 PLC 的结构模型,并对软 PLC 开发系统进行了研究10;清华大学制造工程研究所的游华云等开发的基于 RTLinux 实时操作系统的软 PLC 应用软件,具有一定的可靠性和稳定性,可以作为一个独立的模块与不同的数控系统协同工作11。除此之外,还有一些高校如哈尔滨工业大学、华中科技大学等进行了一些基础性的研究,这些基础性研究主要包括梯形图程序的编译策略、软PLC 编辑系统开发与实现、软PLC 编程语言之间的转化等8,12,13,14,15。 软 PL

23、C 的发展趋势针对目前软 PLC 技术的发展现状,软 PLC 要想获得市场更多的认可还需在以下几个方面做进一步的完善8。4 提高系统的开放性软PLC 相对于传统PLC 一个很大的优势在于它的开放性,进一步提高软 PLC 的开放性,有助于软PLC 在市场上的应用推广。5 提高系统实时运行的稳定性系统的实时性决定了软 PLC 的工作性能,而实时运行的稳定性则是软 PLC 技术发展的关键。6 实现与互联网的连接随着物联网技术的发展,实现设备与互联网的连接不仅可以实现远程控制、远程诊4断、网络数据处理等功能,还可以实现设备之间的数据传输。 课题的提出和研究内容 课题的提出本课题来源于实验室与校外企业共

24、同合作研发的一个项目,该项目的目的就是在该公司的全软件型数控系统(EMC2)上,开发出一套软 PLC 应用软件,使其具备传统PLC 功能的同时,还能够作为用户的一个开发工具,可以利用梯形图程序代替 NC 代码或者两者协同工作。如此,一方面可以利用 PLC 梯形图使用的广泛性和易用性提高产品在市场的竞争力,另一方面可以扩大数控系统的应用市场,在自动控制领域,可以争夺一些传统PLC 的市场。 课题的研究内容本课题是在具有 Linux+RTAI 双内核实时环境的数控系统上进行研究的,底层使用C 语言,上层使用 QT 库(C+)作为各自的开发语言,结合开源数控 EMC2 的结构以及硬件抽象层技术,研究

25、开发出一套软 PLC 应用软件,该应用软件采用符合国际标准IEC61131-3 的梯形图作为编程语言。本文的研究内容主要包括以下几个部分:3 软PLC 开发的总体设计根据传统PLC 的运行原理,再结合开源数控EMC2 的结构体系,设计出软PLC 的软件结构。4 软PLC 梯形图编辑器的设计与实现设计了一个简洁美观的梯形图编辑环境,并使用图形界面开发工具将其实现。5 梯形图运行系统的设计与实现运行系统的任务就是周期性的解释执行梯形图程序,重点研究了基于二维数组的梯形图向指令表的转换策略和直接进行解释执行的算法,提出了基于 EMC2 的 HAL(硬件抽象层)机制实现周期性扫描的方法。6 软PLC

26、轴控制功能的实现根据运行系统的运行机制,将数控的轴运动控制设计为梯形图的软元件,实现通过梯形图程序来完成轴控制的目的。5第一章 绪论 本论文的组织结构本论文共分五章:第一章是绪论部分,主要是介绍了开放式数控系统的概念、软 PLC 产生的背景,以及软PLC 技术的国内外研究概况和发展趋势,接着提出了本课题的出处和研究内容。第二章先是分别介绍了传统 PLC 的设计结构和运行原理、全软件型开放式数控系统、开源数控软件EMC2 和IEC61131-3 标准的编程语言,接着对软PLC 进行了需求分析,最后给出了软PLC 结构的设计方法。第三章主要讲述了软 PLC 梯形图编辑器的设计与实现,介绍了开发所使

27、用的图形界面开发工具 QT,并详细说明了梯形图编辑器的设计和实现过程。第四章主要是讲述软 PLC 运行系统的设计与实现,先是研究了基于二维数组的梯形图转换为指令表的策略以及直接对梯形图进行解释执行的算法,接着讲述了运行系统解释执行模块的实现和软PLC 轴控制功能的实现。第五章介绍了对软 PLC 各个功能模块的测试,包括梯形图各类图元逻辑功能的测试,并介绍了将软PLC 应用于 LED 点胶机实现自动点胶的过程。5第二章 软 PLC 应用软件的总体设计 传统 PLC 的体系结构和工作原理 传统 PLC 的硬件体系结构PLC 作为一种用于工业控制的计算机,采用了可编程的存储器来保存用户程序,能够执行

28、逻辑运算、顺序控制等程序指令,并通过数字量或模拟量的输入/输出控制外部设备的运行。PLC 具有与微机相类似的硬件结构,其组成主要有 CPU、存储器、输入输出接口电路以及各种外设接口16。下图为典型的PLC 结构简图:6 中央处理器(CPU)图 2-1 硬件 PLC 结构简图CPU 作为PLC 的控制中心和运算中心,在PLC 中主要完成以下工作:接收并存储用户的程序和数据;诊断用户程序中的语法错误和 PLC 内部电路故障;接收并保存外部设备的输入信号;编译解释用户程序,并根据程序的控制逻辑输出相应的控制信号, 完成用户程序对应的控制任务。 存储器存储器分为只读存储器 ROM 和随机读写存储器 R

29、AM,如果根据存储内容来划分则又可以分为系统程序存储器、用户程序存储器、数据存储器。其中系统程序存储器用来存储系统的监控管理、故障检测、指令解析程序,生产厂家会事先固化到 EPROM 中;第二章 软 PLC 应用软件的总体设计用户程序存储器是用来存储用户程序的;数据存储器则是用来存储 I/O 状态、中间开关量状态、定时器和计数器的设定值与当前值、以及各种数据运算的源数据和结果数据、状态标识位等。 输入输出单元工业生产现场的输入输出设备或其他外设必须通过输入输出单元才能够与 PLC 相连接,输入输出单元可以实现外部设备的输入输出信号与 PLC 内部信号之间的相互转换。 传统 PLC 的工作原理P

30、LC 采用循环扫描的工作方式,PLC 的系统软件首先会在内部建立输入输出映像区, 正常运行的时候,PLC 的工作可以分为三个阶段:输入采样;执行用户程序;输出刷新(1) 。 输入采样在这个阶段,PLC 将以扫描的方式依次读取所有的输入状态和数据,并存入输入映像区。输入采样结束后,输入映像区内的状态和数据将不会随着外部输入状态和数据发生变化,直到新的扫描周期开始。 用户程序的执行输入采样完成之后,PLC 将以从上到下的顺序依次扫描用户程序,对于梯形图程序, 会先扫描连接梯形图左母线的控制线路,再按从左到右,从上到下的顺序对梯形图程序进行逻辑解析,最后根据逻辑解析的结果刷新输出元件在输出映像区中对

31、应的状态或数据。 输出刷新执行完用户程序后,PLC 将根据输出映像区内对应的状态和数据刷新所有的输出锁存电路,从而驱动相应的外设。PLC 在每次扫描周期内,除了完成输入采样、执行用户程序、刷新输出线圈外,还会进行故障自诊断。在每次扫描开始时,会先执行一次自诊断程序,对各输入输出点, 存储器以及CPU 等进行诊断,只有在没有发生故障时,才会继续往下扫描。8 全软件型数控系统的体系结构 实时操作系统平台全软件型数控系统要求操作系统必须具有良好的实时性,本课题研究采用的操作系统是使用 Linux+RTAI 的方法来实现硬实时性的,即通过对 Linux 操作系统安装实时性补丁RTAI 来实现系统的硬实

32、时性。Linux 是一个支持多用户、多任务、多线程和多 CPU 的开源操作系统,而且是全免费的,用户可以很方便的通过网络或其他途径免费获得,并能够任意修改其源代码。Linux 操作系统的结构如下图所示,包含应用层、shell 命令解析器及库函数层、系统调用层、内核层,如图 2-2 所示。图 2-2 Linux 操作系统结构图RTAI 是通过在 Linux 上定义一组实时硬件抽象层 RTHAL,将所有需要的 Linux 内部数据和函数指针集合到一个Rthal 的结构中。Rthal 结构可以用于截取 Linux 的硬件操作,在双内核结构工作时,可以取代 Linux 中原有的函数18。这样 RTAI

33、 就成为了一个具备操作系统核心功能的实时系统内核,接管所有硬件资源,而 Linux 内核只能在 RTAI 没有实时任务的情况下才能运行。双内核结构图如图 2-3 所示。RTAI 在 Linux 系统中以内核模块的形式运行,而且是一个完全的占先式内核,具备实时系统的特性,能够使Linux 在比较小的改动下,实现硬实时性。8第二章 软 PLC 应用软件的总体设计Linux 任务 实时任务Linux 内核调度RTAI 内核硬件抽象层(RTHAL)图 2-3 Linux+RTAI 双内核结构图18 开源数控软件 EMC2EMC2 起初是由美国国家标准与技术研究院(NIST)专门为机床加工而研发的一款控

34、制软件,后来发展成为了一个开源的软件。EMC2 运行于Linux+RTAI 的实时系统上, 这样一方面利用了 Linux 系统成熟稳定的软件开发优势,另一方面具有了 RTAI 稳定的实时性。EMC2 包括四个模块:人机界面(GUI)、任务控制器、运动控制器、I/O 控制器19。EMC2 为了能够在不改变上层程序的情况下可以很方便地针对不同的硬件进行配置,还设计了底层软件框架HAL(Hardware Abstraction Layer),其软件结构如图 2-4 所示。17 人机界面模块人机界面是用户与数控系统进行交互的接口,用户可以在人机界面上输入自己要操作的命令,输入的命令会通过软件的命令通道

35、传送到任务控制器,再由任务控制器对这些命令进行解析和分派。任务控制器、运动控制器、IO 控制器的状态信息和错误信息都可以通过任务和状态通道上传到人机界面。18 任务控制器模块任务控制器作为数控的大脑,通过轮询人机界面和任务控制器之间的命令通道,获取加工命令,并根据加工程序将命令分派到运动控制器和 I/O 控制器,任务控制器除了能够解释并执行 NC 代码,完成工艺的顺序控制外,还能够进行错误检测和诊断,将运动控制器和I/O 控制器的状态信息传递到人机界面显示20。10人机界面(GUI)NML共享内存NMLHAL(硬件抽象层)图 2-4 EMC 软件结构图19 运动控制模块运动控制模块是用来完成刀

36、具和工件的相对运动和控制的,具体任务主要包括轴位置采样、轨迹值的运算、插补、伺服输出值的计算等。运动控制模块必须运行在实时环境中,以保证运动速度和时序的要求。20 I/O 控制模块I/O 控制器负责数控系统的输入输出控制,完成数控系统的一些辅助性操作,如主轴的正反转、冷却液的开关、刀具的变换、润滑开关等。 IEC61131-3 标准的编程语言国际电工委员会(简称IEC)于 1993 年正式颁布了关于PLC 的国际标准IEC61131 标准,而IEC61131-3 作为它的第三个部分,是关于PLC 编程语言的标准。IEC61131-3 标准规范了可编程控制器的编程语言及其基本元素,是第一个为工业

37、自动化系统的软件设计提供标准化编程语言的标准。IEC61131-3 标准中详细定义了五种编程语言,这五种编程语言可以分为图形化编程语言和文本化编程语言。图形化编程语言包括梯形图、功能块图、顺序功能图;文本化的编程语言包括指令表、结构化文本,如图 2-5 所示。11第二章 软 PLC 应用软件的总体设计图 2-5 PLC 编程语言梯形图程序是一种基于图形表示的继电器逻辑,用来描述一个 POU(程序组织单元)网络自左向右的能量流,是依据传统电器控制线路的设计和工作原理发展而来的,在程序设计上,跟传统电器控制线路的设计相类似,比较直观、形象。由于其容易被传统的电器技术人员掌握,所以得到了比较广泛的应

38、用,是 PLC 的首选编程语言。本课题研究的软 PLC 就是以梯形图作为编程语言的。IEC61131-3 标准中定义的梯形图语言的图形符号主要包括:触点类图元、线圈类图元以及功能和功能块类图元21。各类图元下面又包括了多种图元,每一种图元都有其自身的逻辑,在解释执行梯形图程序时,也都有各自的解析逻辑。功能块图则与数字逻辑电路结构类似,是由与门、非门、或门、定时器、计数器、触发器等逻辑符号组成的编程语言。顺序功能图又称为状态转移图,它将一个控制过程分为若干个不同的阶段,各个阶段又包含不同的动作,不同的阶段之间只要满足相应的转换条件就可实现阶段的转移, 上一阶段结束,下一阶段开始。指令表和结构化文

39、本都是文本化的编程语言。指令表程序是由一系列指令组成,一条指令执行一个动作,且严格要求以一行来表述。指令表类似于汇编语言,是一种比较低级的编程语言,常作为其他语言转译过程中的中间语言。结构化文本则是一种高级的编程语言,具有可读性高,程序结构化明显等特点,适用于具有复杂算术运算的应用编程。11 软 PLC 的需求分析传统 PLC 显然已经不能够满足开放式数控系统的应用要求,而软 PLC 不但与开放式数控系统一样具有开放性,而且还可以很友好的与数控系统相结合,并协同工作。基于数控系统的软 PLC 主要作用是向用户提供一个梯形图开发工具,让用户能够在数控系统平台上通过编辑并运行梯形图程序来完成相应的

40、控制任务。软 PLC 具体的需求如下:2 具有一个友好的程序编辑开发环境一个友好的程序编辑开发环境可以帮助开发人员实现快速开发,作为一个产品而言, 无疑是一项非常重要的工作。3 支持梯形图编程梯形图编程语言在PLC 的五种编程语言中应用最为广泛,支持梯形图编程是软 PLC能否被市场接受的前提条件。4 支持图元编辑过程实时查错功能在编辑梯形图时,每添加一个新的图元都需要对图元进行属性设置,通过对设定的属性进行实时查错,可以保证各个图元属性设置的正确性。5 支持模块化编程模块化编程有利于程序的开发和维护,在编辑梯形图程序时,有很大的实际作用。6 支持梯形图程序的逻辑查错功能梯形图程序有其自身的编程

41、逻辑规则,只有正确按照梯形图的编程逻辑规则进行编程,运行系统解释执行出来的控制逻辑才会符合预期,所以支持一定的逻辑查错功能是非常有必要的。7 支持梯形图程序的仿真测试功能仿真测试是最为常用的程序调试方法,程序在运行之前都应该先进行仿真测试。8 能够准确地解释执行梯形图程序运行系统能否准确地解释执行梯形图程序是软PLC 能否正常工作的关键。9 能够准确地读取输入信号并及时刷新输出信号读取外部输入信号,输出控制信号,是软 PLC 与外部设备的通信过程,通信的及时性和准确性是软PLC 能够控制外部设备顺利完成控制任务的关键。13第二章 软 PLC 应用软件的总体设计10 能够监控梯形图仿真和运行时各

42、寄存器的数据在仿真和运行时能够实时显示各寄存器的数据,便于观察程序仿真和运行的结果, 有利于用户调试程序。11 支持数控系统的轴控制功能在软PLC 中实现轴控制功能,使用户能够在梯形图程序中操作数控系统的轴。 软 PLC 系统的结构设计与分析 软 PLC 的结构分析软PLC 的实质就是用软件的方式来实现传统硬件PLC 的控制功能,与传统硬件PLC 所不同的是软 PLC 运行在操作系统上,不直接对硬件进行操作,而是通过操作系统来管理硬件。软 PLC 一方面可以采用操作系统提供的成熟稳定的软件开发环境和工具进行开发,另一方面也可以利用 PC 丰富的软硬件资源、强大的数据处理能力来扩展传统PLC 的

43、一些功能。本课题所开发的软 PLC 是基于全软件型开放式数控系统开发的,数控系统的操作系统平台为Linux+RTAI,以开源控制软件EMC2 实现数控功能。本文根据传统PLC 的体系结构、工作原理以及数控软件 EMC2 的结构,以嵌入式软件的方式实现了 PLC 的计算、控制、编程等功能,并通过 EMC2 的硬件抽象层(HAL)实现了与 EMC2 其他模块的通信以及对外部IO 口的驱动。软PLC 可以分为开发系统和运行系统两部分,整体结构如图 2-6 所示。软PLC 的开发系统主要负责用户程序的编写、程序仿真运行时的IO 仿真输入、仿真效果的显示、运行变量的监控等。本课题开发的软 PLC 采用符

44、合 IEC61131-3 标准的梯形图作为编程语言,梯形图形象、直观,使用比较广泛,以梯形图作为编程语言也可以使软PLC 具有通用性和开放性,容易被用户所接受。软 PLC 的运行系统是整个软 PLC 系统的核心,必须运行在实时内核空间,模拟传统 PLC 的扫描工作方式,周期性地读取输入采样、执行用户程序、刷新输出线圈。传统 PLC 中有输入输出映像区,软 PLC 运行系统中也有保存输入输出状态信息的数据存储区,运行系统将会根据这些信息对用户程序进行解释执行,同时,这些信息将直接跟硬件抽象层(HAL)通信,在 PLC 内部程序和外部I/O 口之间起着重要的枢纽作用。运14行系统中用户程序的解释执

45、行是最为重要的,决定着 PLC 能否准确正常的工作。共享内存梯形图解析内核空间数据变量(PLC 运行系统)HAL图 2-6 软 PLC 的整体结构 软 PLC 的结构设计本软PLC 是基于开放式数控系统开发的,运行在具有 Linux 内核和RTAI 实时内核的双内核Linux 操作系统平台上,可以分为用户空间部分和实时内核空间部分。用户空间部分使用开源的界面开发工具 QT 进行开发,实时内核空间部分使用 C 语言开发。整个软 PLC 系统可以分为三个模块:梯形图编辑模块、解释执行模块、通信模块。如图2-7 所示。编辑模块为用户提供了一个编程开发环境,是软 PLC 开发系统的一个重要的功能模块。

46、编辑模块向用户提供各种菜单命令选项和编辑时所需要的常用工具,其中在梯形图绘制区域内可以绘制各种图元,并能够实现剪切、粘贴、删除、插入等功能,使用户能够很方便地进行开发工作。解释执行模块是整个软 PLC 系统最为核心的模块,运行在实时的进程中,以固定周期进行运行。解释执行模块在每个周期内都会根据输入信号,解释执行用户编写的梯形图程序,使之能够按照程序的逻辑输出正确的控制信号。15第二章 软 PLC 应用软件的总体设计编辑模块解释执行模块通信模块通信模块主要完成外部输入信号的输入和内部控制信号的输出,是软 PLC 与外部通信的接口,本软PLC 的通信模块是通过HAL 来实现的。图 2-7 软 PL

47、C 的模块设计 本章小结本章先是分析了传统 PLC 的硬件结构和运行原理、全软件型数控系统的体系结构以及IEC61131-3 标准的编程语言,为软 PLC 的设计开发提供了理论基础。然后对软 PLC 应用软件进行了需求分析,进而对软 PLC 的结构进行了分析,得出了软 PLC 应用软件的结构设计,并简要说明了各个模块的功能设计。15第三章 软 PLC 梯形图编辑器的设计与实现软 PLC 系统可以分为开发系统和运行系统两部分。其中开发系统主要为用户提供一个良好的 PLC 程序开发环境,使用户能够方便、高效率地进行开发工作。软 PLC 的开发系统使用了跨平台的图形用户界面应用程序开发工具 Qt,从

48、用户主界面的设计到梯形图的绘制、显示都是基于Qt 开发的。 图形界面开发工具 QT 简介Qt 起初是奇趣公司开发的一个跨平台的 C+图形用户界面应用程序框架,其能给应用程序开发者提供图形用户界面开发所需要的所有功能。Qt 能够以“一次编写,随处编译”的方式来构建多平台图形用户界面程序,而且是完全面向对象的,具有良好的封装机制,模块化程度高,可重用性较好,非常便于用户使用。同时,Qt 还提供了信号/ 槽的机制来代替传统的callback,使得不同元件之间的通信更加简便。如今,Qt 已经发展成为了一个免费的开源项目,被众多大公司接受和使用。 Qt 的体系结构Qt 是一个多平台工具包,其所有的功能都

49、是建立在所支持平台的底层 API 上的。Qt 提供了丰富的界面开发所需的控件类,开发者不但可以调用,而且可以通过重新实现控件类的虚函数来进行扩展或自定义。Qt 的体系结构并不等同于传统的“分层”跨平台工具包,传统的“分层”跨平台工具包通常很慢,每一次调用库函数都会有许多额外的 API 层被调用,而且受底层 API 的影响,在不同的平台上往往会有一些细微的差异,容易导致错误。Qt 则是使用单一的源代码树,只需要在目标平台上重新编译就可以非常方便地把 Qt 程序转换成可执行程序18。Qt 的体系结构如图 3-1 所示。 Qt 信号和槽的机制信号和槽的机制是 Qt 自定义的一种通信机制,应用于对象之

50、间的通信,是 Qt 区别于其他类似工具包的重要地方,属于 Qt 的核心特性。信号和槽机制并不属于标准的17第三章 软 PLC 梯形图编辑器的设计与实现C/C+语言,是 Qt 所特有的,在编译的时候,必须要借助元对象编译器 MOC(Meta-Object Compiler)来完成一些预处理工作。元对象编译器实质是一个 C+预处理程序,如果类声明中含有 Q_OBJECT 宏,在预处理过程中它就会为这个类生成信号和槽所需要的附加代码。在 Qt 中可以使用信号和槽来取代函数指针,使对象之间的通信变得更加简洁。Qt 规定所有从QObject 或其他子类派生的类都能够包含信号和槽,而且当一个具体的对象因自

51、身状态发生改变而发射信号时,它并不知道接收这个信号的对象,只负责发送信号,槽则是用于接收信号的,但它不知道是否有信号和它相连接,这样做到了信息的真正封装,确保对象以一个真正的软件组织来使用23。Qt/Windo wsGDIMS-Wind owsQt/X11XlibUnix/Lin uxQt/Macin toshCarbonMACQt/embed dedEmbedde d-Linux图 3-1 Qt 的体系结构信号只能被定义过这个信号的类及其派生类发射,具体的操作实现是由发射函数emit 来完成的。信号被发射时,与其相关联的槽就会被立即调用,当有多个槽与它相连接时,这些槽都将会被调用,但是被调用

52、的顺序却是随机的,而且只有当所有槽都返回以后,发射函数 emit 才会返回。Qt 是通过关键字 signal 来指出信号声明区的,信号必须在信号声明区内进行声明,声明形式与普通C+函数一样,可以带参数,不同的是信号没有函数体定义,而且声明的返回类型只能为void。信号只能在头文件中声明,并由元对象编译器(MOC)自动生成,不能在源文件中实现。槽实质就是普通的C+成员函数,可以带参数,但不能有缺省值,相比于普通成员18函数其唯一的特殊性在于可以与信号相连接,并且还可以接收信号的参数,当信号被发射时,槽就会被立即调用。槽与普通成员函数一样,具有访问权限,有以下三种不同的访问权限:Public sl

53、ots(公有槽):公有槽可以与任何对象的信号相连。Protected slots(保护槽):保护槽可以与当前类及其子类的信号相连。Private slots(私有槽):私有槽只能与当前类的信号相连。调用 QObject 对象的 connect 函数可以将两个对象的信号和槽连接起来。一个信号可以与多个槽相连,同时多个信号也可以连接到同一个槽。除了将信号与槽相连接外, 信号与信号也可以相互连接,当两个信号相互连接时,这样当第一个信号被发射时,第二个信号亦会被发射。信号与槽连接的简单模型如图 3-2。Object2Signal1Slot1 Slot2Connect(object1, signal1,

54、object2,slot1);connect(object1,signal1,object2,slot2);Object3Signal1Slot1Connect(object1, signal2, object4,slot1);connect(object3,signal1,object4,slot2);图 3-2 信号与槽连接的简单模型 梯形图编辑器的界面设计 主界面的设计一个整洁美观,简单易用,具有良好人机交互性的界面对一款产品来说至关重要。软 PLC 的整个编辑器界面主要包含一个主界面以及其他一些设定或查看窗口。主界面有几种不同模式,包括编辑模式、仿真模式、阅读模式、运行模式。不同的模式

55、下主界面的设计会有所不同,功能同样也会不一样。主界面的编辑模式界面如图 3-3 所示,主19第三章 软 PLC 梯形图编辑器的设计与实现界面包括菜单栏、工具栏、状态栏,还有梯形图编辑绘制区、子程序侧边栏、软元件搜索框。各部分的详细介绍如下: 菜单栏:菜单栏包括文件、查看、模式、设置、帮助五个选项。其中文件菜单的下拉菜单是一些有关于文件的操作,如新建、保存、另存为、退出等;查看菜单的下拉菜单则是一些参数表,主要用于程序运行过程中变量的查看和设定;模式菜单用于模式的选择,包括编辑模式、阅读模式、仿真模式、运行模式;设置菜单目前只有重设参数表功能;帮助菜单则可以查看一些与操作相关的文档。图 3-3 编辑模式下的主界面 工具栏:软 PLC 的工具栏就是梯形图软元件的选择栏,在编辑梯形图程序时,用户可以根据需要选择自己需要的软元件,在对应的图标上单击即可选中,然后就可以直接在梯形图编辑区域编辑了。 状态栏:用于显示各种提示信息和状态

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论