论文部分内容阅读
工业控制系统的编程语言正朝着标准化、开放化方向迈进。国际电工协会于1993年推出了用于规范控制系统编程语言的IEC61131-3标准,功能块图语言是该标准规定的语言之一,能用于各种由图形化指令按着顺序链接编写的PLC程序。功能块图不能被PLC直接识别,需要编译为能够被PLC识别的目标程序才能执行,这种将功能块程序转换为目标程序的编译系统称为功能块编译系统。针对目前国内外对功能块的编译方法研究较少,支持的指令类型不够全面、编译查错功能不完善等问题,本课题以DCCE公司的PLC编程软件PLC_Config为开发平台,研究并设计了一个查错功能全面、编译功能强大的PLC功能块编译系统。首先,分析了功能块程序组成和编辑规则,提出了PLC功能块编译系统整体设计方案。将整个编译系统分成程序存储、程序检查和程序编译三个部分。程序存储是指通过XML文件存储和读取功能块程序,程序检查是对功能块程序进行全面检查并给出检查结果,程序编译是将功能块程序转换成可以被PLC直接执行的目标程序。各部分通过相互配合共同完成编译系统功能。给出了功能块程序示例,为后续研究奠定基础。其次,对PLC变量存储区进行了划分,定义了变量基本类型。给出了功能块程序文件的存储方法和存储格式。从功能块程序编辑规则入手,设计了词法检查、语法检查、语义检查和编辑功能检查四种检查方法。在对程序检查的同时,在编译信息栏中给出了错误定位和错误信息提示,保证了程序编译的准确性和可靠性。接着,对PLC功能块程序编译关键技术进行了研究。针对程序指令类型多和串并联多等问题,提出了一种新的编译算法。该算法引入AOV图和多叉树结构对功能块程序建模,定义了一种通用的PLC指令结构,解决了不同类型指令和多输出程序的编译问题。研究了特殊指令(如通讯类指令、控制类指令和中断类指令)的处理方法以及PLC功能块程序执行过程。最后,对PLC功能块编译系统进行了验证。以不同的功能块程序示例为例,对程序存储、程序检查和程序编译功能进行了验证。结果表明该编译系统能实现各种类型功能块的存储、检查和编译,满足了实际应用的控制要求。