引言
开放式数控系统已是当今研究热点,在其发展高速、高效、高精度、智能化性能的同时,功能也在越来越强,尽量采用软件实现数控功能,尽量使硬件规模最小化。作为机床运动控制核心的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++提供的属性页资源和列表框控件。考虑到梯形图在显示器的一屏内画不完,采用了水平滚动条和竖直滚动条实现梯形图的浏览,并考虑到梯形图的重绘。