论文部分内容阅读
数控机床中的可编程逻辑控制器(PLC-Programmable Logic Controller)用于辅助数控系统完成对机床的相关控制。随着数控系统向开放式体系结构发展,传统PLC已不能满足数控系统的开放性发展需求。因此,基于PC机的采用软件来实现传统PLC所有功能的软件PLC技术发展起来,并成为实现数控系统开放性的关键技术之一。IEC61131-3标准的颁布极大促进了软件PLC技术的发展。软件PLC的实现一般分为开发系统和运行系统两部分。开发系统为用户提供编辑、调试和编译逻辑程序的操作界面。蓝天开放式数控系统中内置的软件PLC开发系统由于受到硬件平台的限制,所有PLC相关操作都要通过其面板完成,造成了PLC程序编制、调试等操作的不便;同时,其内部使用数组存储梯形图结构,不利于图元的动态编辑操作,也带来了内存浪费问题。为解决以上问题,本文以通用PC为硬件平台,以Windows操作系统和开发工具为软件资源,设计并实现了软件PLC梯形图编程系统。其主要内容如下:首先,设计了软件PLC梯形图编程系统的整体逻辑结构,运用模块化程序设计方法,将其划分为梯形图编辑子系统和指令表编译子系统两大部分。其次,详细讲述了梯形图编辑子系统的设计和实现。运用面向对象编程方法实现梯形图的绘制,使用文档串行化机制实现梯形图的保存和加载;充分利用图元间的位置和类型信息检查其逻辑关系的合法性;按照正向深度扫描算法将梯形图转换成等价的指令表程序。第三,详细描述了指令表程序的编译过程。采用开源自动生成器工具Flex和Bison完成词法分析、语法和语义分析,获得语法分析树;使用面向对象编程方法实现语法分析树的遍历,产生运行系统能够识别的绝对机器目标代码。最后,使用逻辑程序实例,测试了本编程系统的整体运行及实际应用情况。