嵌入式数控系统中的软PLC的应用与实现

来源:互联网

点击:1258

A+ A-

所属频道:新闻中心

关键词:数控系统 PLC 应用

    1 引言

      本文所论述是数控系统大课题中人机交互的外围部分子课题中软PLC的开发应用。在数控系统中,PLC在处理开关量辅助控制问题时起着重要作用。在以前,需要根据数控系统的控制要求分析PLC与机床、主控机之间的信息交互种类和数量,来选用相应的外部硬件PLC.采用这种方法设计,产品一旦定型就很难更改.工控领域的研究人员一直在寻求解决这些问题的途径。近年来,随着计算机技术的迅猛发展以及PLC方面的国际性标准IECll31的制定,一项打破传统PLC局限性的新兴技术发展起来,这就是软PLC技术。基于Pc平台的软PLC在数控系统中正逐渐取代硬件PLC,成为该领域辅助功能控制的新方法。软PLC提供了与硬PLC同样的功能,而同时具备了Pc环境的各种优点。

      本文就嵌入式数控系统开发课题中人机交互部分所应用到的软PLC技术进行论述,对在Linux环境下基于MatPLC开发工具的软PLC具体实现过程,以及在实现过程中的注意事项上做了详细介绍。

    2 软PLC技术简介

      硬PLC由于技术标准对外封闭,各厂商的硬PLC的软硬件平台各不相同。而软PLC的技术标准对外开放,其硬件平台一般是工业控制计算机或通用计算机或嵌入式控制器揿件平台是商业性的操作系统。虽然两者的软硬件平台不同,但实现PLC功能的软件结构相同,都可分为PLC开发系统和PLC运行系统两部分。PLC开发系统用于开发各种适用于工业控制的PLC程序。PLC运行系统通过运行PLC程序,与I/O板卡或现场总线或直接与I/O信号等配合完成逻辑控制,其控制方案根据PLC硬件平台的不同,可分为以下三种:fl谨于IPC或PC的控制方案。在这种控制方案中,PLC开发系统和PLC运行系统都是在同一台计算机上运行的。(2)基于嵌入式控制器的控制方案。在这种控制方案中,PLC开发系统独立于嵌入式控制器,而PLC运行系统被固化在嵌入式控制器中。(3)基于传统PLC的控制方案。在这种控制方案中,PLC开发系统一般在普通PC上运行,而PLC运行系统在传统PLC硬件上运行。从以上3个方案可以看出,软PLC和硬PLC的最大区别在于它们所采用的软硬件平台不同。

    3 MatPLC开发软件介绍

      MatPLC是Linux下的软PLC开发软件,它是开放源代码的,很容易对它进行内核定制,并嵌入到自己的程序中。MatPLC采用的是模块化设计方法,其内棱主要包含以下几个部分:YO模块、逻辑模块和用户界面模块等。MatPLC的工作原理与硬件PLC类似,只是设计内核控制由软件实现。

      每个模块都是一个进程。PLC全局变量是MatPLC 中的用户程序里所有模块的公共数据.由配嚣文件设定,受MatPLC内核控制,位于MatPLC的内核中,各个模块的私有数据不包含在内。全局变量在每个模块里都有副本,各个模块通过副本的数据对本模块进行运算,当循环一次运算后,就更新到全局变量中,这样就实现了各个模块之间的通信。每个模块对全局变量的读写权限是不一样的,只有对全局变量具有写权限的模块才可以更新全局变量里的相应变量。

      MatPLC中可以用梯形图或指令表来进行PLC逻辑设计。梯形图输入方式是建立在GTK基础上的,指令表是MAT IL语言。对于用梯形图或指令表设计的PLC逻辑,其执行顺序与硬件PLC完全一致。MatPLC对IL语言设计的程序的处理过程是:先调用f12c perlscript将其编译成c代码,然后再与其它c代码一起编译。因此在一般的设计中,很少去采用梯形图或指令表来进行PLC逻辑设计,而直接用C语言来进行设计。本文不涉及MatPLC软件内核的讨论,只是用MatPLC来实现通过PCI接口卡对外围IO进行数据读写。

    4 软PLC的实现

      4.1 总体设计思路

      用MatPLC进行开发.核心的文件是MatPLC.conf文件,它决定了哪个模块将被运行、输入模块需要的参数、配置MatPLC内核、配置全局变量等。在本没计应用中,设计了两个模块:一个是输入模块,另一个是输出模块。各模块构成和数据流。输入模块通过驱动程序从PCI接口卡中读取数据,然后更新到全局变量中;输出模块从全局变量读取数据,更新到自己的全局变量副本中,并用此数据进行逻辑运算,再将运算结果输出到PCI接口卡,从而实现了用MatPLC来读写外围IO。

      4.2 输入、输出模块设计

      编程语言可以是c、python或tcl.考虑到MatPLC本身是由C语言写的,为了与该软件更好地兼容,本用c语言编程。输入、输出模块的程序流程图如图3所示。其中,打开设备文件、从设备中读取数据、写数据到设备由PCI接口卡设备驱动程序实现。以下给出了输出模块的程序实现代码,输入模块程序实现与输出模块类似。

      4.3 配置文件设计

      配置文件就是MatPLC.conf文件.它控制着在输入模块与输出模块之间的数据如何共享。在MatPLC开发中处于核心地位。MatPLC.conf一般分成几个段,常用到的段包括:(1)PLC段:用来配置内核和各个模块的相关参数。(2)公共配置:设置一些各个模块共同的属性。(3)同步配置:配置各个模块之间的同步性。由于各个模块默认是异步运行的,为了保证数据的正确传输,必须让这些模块的运行同步起来,以产生全局扫描周期。这在设计中显得及其重要。(4)实时特性配置:配置整个MatPLC的实时性。MatPLC的模块可以运行在三种模式:正常模式、软实时模式和硬实时模式。正常模式是默认模式.它不保证响应的时间问题;软实时模式可以保证MatPLC模块优先于其它程序,但没有超过操作系统级,所以也不能完全保证响应的时间问题:硬实时模式可以保证响应的时间问题,但需要特殊的操作系统内核模块支持,并且编码时需要考虑到实时性问题。需要指H{的是,硬实时模式并不一定是响应最快的。有些模块由于其实现的功能的原因,是不能运行在硬实时模式的;比如,一个向文件写数据的模块就不能运行在硬实时模式。(5)[kbd]段:说明与键盘有关的操作。有些设计需要从键盘输入控制信息,就需要实现键盘段。

      对于每一个具体的设计来说,并不一定要全部实现以上五个段,也可以据需要加些其它段,比如扫描周期段等。还有一个需要注意的问题是实时性与同步的问题,MatPLC不允许将一个优先级低的模块同步到优先级别高的模块;可以将两个优先级相同的模块同步,或者将优先级高的模块同步到优先级低的模块。

      本设计中,主要实现的配置有:输入模块与输出模块的同步,全局变量的设定。

      4.4 编译与测试

      将三个文件编码好后,需要进行编译,用于编译时要链接到MatPLC提供的文件,值得注意的是,不能用gcc直接编译,而要用Makefile来编译。产生Makefile文件有两种方法.:一种是采用MatPLC软件自带的例子中Makefile文件,在此基础上进行修改;另外一种方法是采用autoscan }aclocal }li6toolize }autoconf}automake等工具来产生,其中还要自己编写一些中间文件。编译通过后进行测试,任意修改输人,观察输出是否与设计的逻辑相符。本设计采用修改Makefile示例的方法来产生Make}le文件,并制作了一个demo实现整个设计的运行口

    5 结束语

      在数控系统中要用到PLC,通过计算机用软件的方式来实现PLC成为了新的发展热点。这项技术把自动化专业知识,以高附加值的方式,在PC行业规模经济的基础上加以发展提升的新型技术。目前,世界各国都在进行软PLC的研究,我国有关部门也正在着手研究开发具有自主版权的中文软PLC产品。本设计在Linux下基于MatPLC软件实现了软PLC来代替硬件PLC,实现了软PLC通过PCI接口卡对外围ID进行数据读写,简化了系统结构,降低了产品成本,并且运行实践表明,所设计的软PLC在嵌人式数控系统中应用稳定,效果良好。

      本文作者的创新点:在数控系统中,PLC在处理开关量辅助控制问题时起着重要作用。近年来,基于PC平台的软PLC在数控系统中正逐渐取代硬件PLC,成为该领域辅助功能控制的新方法。作者在嵌人式数控系统开发课题中,对软PLC技术进行了实践应用,本文就Linux环境下基于MatPLC开发工具的软PLC具体实现过程,以及在实现过程中的注意事项上做了详细介绍。实现了软PLC通过PCI接口卡对外围IO进行数据读写,简化了系统结构,降低了产品成本,并且运行实践表明,所设计的软PLC在嵌人式数控系统中应用稳定,效果良好。

    (审核编辑: 智汇张瑜)