开放式数控系统中软PLC的研究开发

来源:互联网

点击:1224

A+ A-

所属频道:新闻中心

关键词:PLC 开放式 数控系统

    引言

      开放式数控系统已是当今研究热点,在其发展高速、高效、高精度、智能化性能的同时,功能也在越来越强,尽量采用软件实现数控功能,尽量使硬件规模最小化。作为机床运动控制核心的PLC也应以软件的形式来实现。本文基于SERCOS的开放式数控系统为硬件平台,构建了软82. 的体系结构,以Windows2000为操作系统,在VC++6.0环境下开发出软PLC系统。

    1 软PLC开发系统

      本文的软PLC开发系统实现了从梯形图到. 程序的转化,省弃PLC的专用语言及其语法分析,采用可靠性高、效率高、通用的C语言,符合了开放性的要求。

      1.1 梯形图的绘制

      PLC是按巡回扫描方式工作,一般有三种编程语言:梯形图、语句表和顺序功能流程图,其中梯形图使用最广。本文的软PLC开发系统就以梯形图绘制为切入点,在VC++6.0集成开发环境下,基于MFC的文档/视结构,用其GDI对象中的位图资源表示梯形图符号,在视窗口的客户区内绘制梯形图。为了正确画出梯形图,使用数据结构链表来存取各个节点数据信息外,还有一个指向下一节点的指针;这样,当插入或删除节点元素时,只需改变指针指向。

      本文使用的数据结构如下:

      这样定义的数据结构是正确绘制梯形图所需。

      由于本文的软PLC是基于SERCOS接口的开放式数控系统,绘制梯形图时,符号地址和实际地址的对应就与SERCOS-RECO通讯模块相连的I/O站的地址设置。可将反映实际地址和符号地址对应关系的表称为助记符表。在生成助记符表文件时,采用了VC6.0++提供的属性页资源和列表框控件。考虑到梯形图在显示器的一屏内画不完,采用了水平滚动条和竖直滚动条实现梯形图的浏览,并考虑到梯形图的重绘。

      1.2 梯形图的编译

      (1)矩阵表:梯形图是图像文件,上下左右工整对应,好像是个矩阵。可将所述梯形图节点元素信息的链表里的数据拷贝一份到数组中,并对其进行操作得到真正意义上的矩阵表,这是实现编译和生成. 程序的关键。生成矩阵表用到的数据结构如下:

      (2)梯形图的编译:绘制完梯形图后,在运行程序前,先要对梯形图进行编译,检查其中错误。正确的梯形图是转化为正确的C程序并预期输出的关键。

      1.3 梯形图转化到C程序文件

      本文的主要依靠生成. 程序,实现扫描语言到结构化语言的转化,用以提高82. 运行速度。生成. 程序时,先将矩阵表中各元素的符号地址做替换标志字符$,例如常开元素前加!,常闭元素前加$,输出元素前加;,输出反相元素前加!等。这样在将来进行实际和符号地址的地址替换,生成PLC开发系统可操作的地址文件时,非常方便。此外,考虑到梯形图是以网络为基础顺序执行的,一个网络不管由多少行组成,它只能有一个输出,故梯形图最终是把并联转化为串联执行的,并且遵循从下到上,从里而外的八字原则。所谓从上到下,就是处理各网络时从最后一行开始找并联。至于从里而外,需先解释关联类型。本文采用梯形图并联开始点和结束点之间所包含的元素个数来判断并联类型。如并联开始点和结束点之间只有一个元素,称为单个元素并联;如有两个元素,称为两个元素并联;如并联开始点和结束点之间有n个元素,称为n个元素并联。这样,所谓从里而外就是如果网络里存在多种并联,先处理单个元素并联,后处理多个元素的并联。如果一个网络中既有单个元素的并联又有多个元素并联,第一次处理有单个元素的并联,第二次处理两个元素的并联,第n次处理n个元素的并联。经过层层转换,最终会把一个网络变成一个串联机构,相当于梯形图的一行。这样就可针对这行梯形图写出结构化if语句,进而实现整个梯形图到+ 程序文件的转化。要成功编译+ 程序,不仅写出几行正确语句,还须有头文件、主函数min()、以及必要的变量说明和赋值。图1是生成C程序的流程图。本文把这次转化生成的C程序文件称为Csiurse.c,然后根据助记符表文件中实际地址和符号地址的对应关系转换为PLC开发系统操作的地址文件address.c。

    2 软PLC模型运行系统

      软PLC模拟运行系统是软PLC的核心。通常的开发系统先将编写的PLC源程序编译成中间代码,然后运行系统的编译器再将中间代码翻译为与硬件平台相关的机器可执行代码并运行后,即可输出结果实现逻辑控制目的。本文的软PLC模拟运行系统是以开发系统生成的地址文件address.c为输入。

      硬PLC是按巡回扫描原理工作的。在每个扫描周期内,它都经过输入采样、执行用户程序、输出刷新三个阶段。PLC在工作时建立1/10, 映像区,所有输入采样的现场信息都存储到输入映像区中供程序执行时取用,所有输出结果都存放到输出映像区中,最后集中进行输出刷新。软PLC的工作原理亦是如此。

    本文采用windows提供的定时器实现巡回扫描。程序开发运行时,用函数Set Time设置定时器;程序结束时,用函数KillTimer消除定时器。巡回扫描功能在WM_TIMER信息映射的Ontimer函数里实现。只要定时器不取消,PLC程序就一直地循环执行,输出结果也在实时变化。

    3 软PLC性能测试

      软PLC优于硬PLC的主要特点是扫描时间短、执行速度快。本文的软PLC系统把梯形图扫描语言变成了结构化+ 语言,采用if语句实现所有逻辑。因结构化if语句执行速度非常快,故软PLC的执行速度自然地得到了提高。为了验证这一特点,本文采用数字示波器结合)CL 实时子系统提供的测量时间的实时函数: RtEablePortIO,测量了1800多行if语句的执行时间。测试结果为328us(而一般的PLC扫描时间为几毫秒到几十毫秒)。可见,将梯形图转化为12 语句后,可使PLC的执行速度大大提高。

    4 结束语

      数控机床中的PLC是连接NC和机床的桥梁或纽带。本文开发的软PLC系统,把梯形图转化为C程序,将扫描执行转化为编译执行,克服了硬PLC的缺点,增强了通用性和兼容性,提高了性能价格比;这对发展开放式数控系统有着重要意义。

    (审核编辑: 智汇张瑜)