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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈基于CNC 的软PLC 虚拟机中元件库的研究   0 引言   数控是用数字信息对机械运动和自动化加工过程进行控制的技术,是现代国家制造业信息化水平和国际竞争能力的象征,已有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) ; / /向元件组中添加元件   成员函数定义略……

文档评论(0)

专注于电脑软件的下载与安装,各种疑难问题的解决,office办公软件的咨询,文档格式转换,音视频下载等等,欢迎各位咨询!

1亿VIP精品文档

相关文档