论文部分内容阅读
传统运动控制系统中存在控制器硬件种类繁多、编辑语言不统一以及可扩展性方面的不足等缺陷,在深入研究IEC61131-3标准编程语言和PLCopen标准运动功能模块的基础上,开发了一套基于PLCopen标准的运动控制系统,实现了PLC逻辑指令与PLCopen运动控制指令的结合,并在以工控机+PMAC运动控制卡为主控单元的硬件平台上对本系统的进行了实验验证。针对功能块程序多层多重输出的问题,提出了基于N叉树结构分解重组的功能块向指令表转换算法。该算法首先将功能块图映射为N叉树型数据结构,在此基础上通过对N叉树结构进行分解重组,将生成的复杂树结构分解成多个有序子树结构的集合,再对分解后的树型结构依次进行后序遍历方式访问,最后根据不同的节点类型编译转化生成相应IL指令表语句。编译结果表明该算法能够将串并联关系复杂且多层多重输出的功能块程序编译生成指令表语句,并在编译转换过程中将生成后的IL指令优化处理成Hex目标指令,节省更多的内存空间,提高了运行系统读取解析指令的效率。PLC逻辑指令和PLCopen运动控制指令解析执行方式不尽相同,运行系统对PLC指令采用堆栈机制的方式来解析执行,对于PLCopen运动指令提出基于信息队列的解析执行方式,系统为每个轴都分配一个控制信息队列,被执行的运动功能块将存入信息队列中去,有效的避免了轴同时被多个使能功能块指令执行引起的混乱。针对PLCopen运动功能块运动参数传递问题,提出基于结构体方式的运动参数保存及传递方法,将运动参数保存在结构体对象中,避免了运行系统因运动参数多次读取所造成时间上的浪费,提高了运行系统对PLCopen运动控制指令解析执行的效率。最后在以工控机+PMAC运动控制卡为架构的硬件平台上对控制系统进行了实验验证,实验结果表明控制系统能够基本满足实际应用的控制要求。