浅谈基于CNC 的软PLC 虚拟机中元件库的研究论文

时间:2021-06-08 09:25:42 论文范文 我要投稿

浅谈基于CNC 的软PLC 虚拟机中元件库的研究论文

  0 引言

浅谈基于CNC 的软PLC 虚拟机中元件库的研究论文

  数控是用数字信息对机械运动和自动化加工过程进行控制的技术,是现代国家制造业信息化水平和国际竞争能力的象征,已有50 多年的发展历史。如今,随着市场竞争日趋激烈,被加工零件的精益求精及微型计算机的迅猛发展,软PLC 发展成为进一步提高数控技术、实现数控系统开放化的重要手段。软PLC 能够充分利用工业控制计算机( IPC) 或嵌入式计算机( EPC) 的硬件和软件资源,改变传统硬件PLC繁琐、呆板的缺点,全部用软件灵活地来实现数控功能。

  1 软PLC 虚拟机系统

  在数控机床运行过程中,PLC 是机床本体与数控装置之间的桥梁。它根据CNC 内部标志以及机床的各控制开关、检测元件、运行部件的状态,按照程序设定的控制逻辑,完成对刀库运动、换刀机构、冷却液等的控制功能。

  1. 1 软PLC

  软PLC 采取基于虚拟机的解决方案,分为开发系统和运行系统两部分。开发系统实际上就是编程器,完成调试和编译工作。运行系统是软PLC 的核心,完成输入处理、程序执行、输出处理等工作。

  1. 2 软PLC 虚拟机

  软PLC 虚拟机是相对我们平常所用的实际的计算机而言的一个概念,它是一个假想的模拟实际计算机进行工作的软件系统,由编译器、解释执行器、元件库和管理模块组成,可以完成对图文件的编译、中间代码生成和解释执行,对PLC 文件的加载和执行。其中,元件库提供了梯形图元件的相关信息,作为一个单独的模块可动态升级,可根据用户的需要进行裁减。这种架构给PLC 虚拟机带来了极大的`灵活性和可扩展型,是数控系统实现开放化的关键技术。

  2 软PLC 中元件库模块的研究

  2. 1 元件及元件库

  梯形图中的触点、线圈和用方框表示的功能块,把这些绘图元素叫做“元件”。由于“元件”在梯形图中作为梯形图的绘图元素,因此元件中包括其所具有的自身参数( 输入参数、输出参数) 和功能函数( 逻辑行为) 。

  所有的元件按照一定的分类规则组合在一起,称元件的组合为元件库。元件库是软PLC 虚拟机中独立的模块,包含元件的绘图信息和行为信息,提供了一组对外访问的接口,其它模块通过这些接口获取希望获得的信息。

  2. 2 元件库的数据结构

  由于标准中规定的元件数量较多,为了便于信息查找,可对其建模过程采用按类型分组的策略,功能相近的元件分在同一个元件组中,采用的数据结构是链表。每个元件库包含一个元件组链表,该链表的结点为元件组的信息,每个元件组又包含一个元件链表,结点为元件。2. 3 开发语言及编程工具的选择

  开发元件库,可以选择当今业界流行的C + + 语言,C + + 是C 的派生,是C 的超集,是一种面向对象的程序设计语言( Object - Oriented Programming Language,OOPL) ,具有封装性、继承性、多态性等独到之处,使程序结构更加清晰,更易于扩充和维护,更加灵活,程序设计者能更好地理解和管理庞大的复杂程序。

  3 标准元件库的创建

  3. 1 实现原则

  元件库创建的过程中,采用了C + + 标准程序库,提供了容器和泛性算法。比如: 实现元件库模型中的实体类时,使用了标准库中提供的元素,包括pair、wstring 等类型和list、vector 等容器,直接调用容器类提供的成员函数,不但避免了自己设计链表、动态数组等数据结构容易产生的错误,而且对软件的可靠性有了很大的提高,大大提高了开发效率和程序质量。

  3. 2 元件库的组类

  元件的信息分成两部分描述。一部分为静态信息,包括绘图信息和参数信息,抽象出元件基类CBaseUnit,具体的元件类都继承自元件基类,例如元件ID、元件大小、元件名称和参数表等属性的初始化和描述; 另一部分为动态信息,也就是元件的行为信息,抽象出行为抽象基类CDictate,具体元件行为的描述都继承自该类,例如纯虚函数Run。通过两部分信息结合,完成对元件描述和类型声明。

  由于元件较多,所以采取了分组策略,将标准中规定的功能相关的元件放在一组当中,产生元件组。对元件组类的声明可以如下:

  class CUnitGroup

  {

  public:

  CUnitGroup( ) ;

  virtual ~ CUnitGroup( ) ;

  void AddUnit ( CBaseUnit * pUnit) ; / /向元件组中添加元件

  成员函数定义略……

  private:

  unsigned int m_nID; / /组ID

  std: : wstring m_szName; / /组名称

  std: : list < CBaseUnit* > Units m_units; / /元件

  组中包含元件链表

  } ;

  元件组实例对象可以通过调用AddUnit 成员函数向元件组添加元件,使得元件组中成员变量链表的节点是元件对象的指针,对元件的操作可通过遍历元件组来实现。

  3. 3 标准元件库的实现

  标准元件库中共包括触点组、线圈组、程序控制组、计数器指令组、定时器指令组、数学运算组、逻辑运算组等多个元件组,将标准中的元件按功能分配到相应的元件组中。在元件库中需要将具体的元件组组织起来,并且通过公有接口提供给系统中的其它模块。针对元件库的功能出元件库基类CBaseUnitTempl,在该类中包含成员变量std: : list < CUnitGroup *> namedUnitGroups,该成员变量把元件组的指针作为链表的节点,可以把元件组对象的指针存放在该链表对象namedUnitGroups 中。此外,该基类主要包含了一组虚函数,标准元件库继承该基类,并对继承的接口进行重写,元件库中接口按功能主要分为以下4类:

  ( 1) 元件库信息相关接口,包括获取元件库ID号、是否是标准元件库等接口。

  ( 2) 元件组信息相关接口,包括获取元件组名称、各个元件组中元件的数量、创建新的元件组等接口。

  ( 3) 判断元件类型的接口,包括判断元件是否为直线、是否为触点等接口。

  ( 4) 元件信息相关的接口,包括获取元件参数类型、获取元件大小、获取元件名称等接口。

  4 总结

  开放式数控系统是当今数控技术的发展方向,软PLC 因具有更好的数据处理能力、网络通讯能力和开放的体系结构,将传统的硬PLC 替而代之。笔者以FANUC 数控系统作为硬件平台,对软PLC 技术进行分析,尤其是元件库模块进行了研究设计,提出了新的解决方案,解决了传统封闭式数控系统兼容性差、功能不易扩展等问题,提高数控系统的开放性、降低成本。

【浅谈基于CNC 的软PLC 虚拟机中元件库的研究论文】相关文章:

浅谈基于PLC 在悬挂输送链同步控制中的应用论文10-26

浅谈PLC的前景和未来论文05-01

浅谈基于移动搜索的网页设计优化研究论文10-21

浅谈基于CATIA 的方程曲线设计建模研究论文10-25

嵌入式系统中软外设的研究论文11-04

浅谈基于Web 服务的高校系统集成的研究论文10-21

浅谈基于SOA架构的客运调度系统的研究与实现论文10-15

基于CAN总线和软PLC的船舶辅锅炉控制系统11-12

浅谈“包袱”在婚礼主持中的研究与运用论文12-01