概述SFC的功能、组成和编程规则。介绍所开发的SFC组态软件的图形系统的构成。详尽给出了SFC图形系统的设计方案及其基于VC++的方案实现。实践表明,依据这一方案设计实现的SFC组态软件组态方式灵活、易于维护。
一、引言
顺序功能图(SFC)是一种图形化的组态语言,主要应用于工业过程控制上位策略组态程序的编写,在PLC系统和系统上位组态软件中广泛使用。随着4C技术的飞速发展和工业过程控制领域自动化程度的日益提高CONTROL ENGINEERING China版权所有,控制系统上位图形化的编程模式也越来越受到用户的青睐。开发SFC组态软件具有非常现实的意义[1,2]。
二、SFC的功能和组成
SFC是采用图形化的方法来描述一个控制程序的顺序行为,基于Petri网和IEC848标准Grafcewww.cechina.cn,但又做了必要的修改。将一个程序内部组织加以结构化CONTROL ENGINEERING China版权所有,在保持其总貌的前提下将一个控制问题分解为若干个可管理的部分,由“步”(ste
三、SFC组态软件图形系统的构成
SFC为用户提供了方便、快捷和直观的图形化编程模式,其图形系统是整个组态软件的核心所在笔者所开发的SFC组态软件图形系统具备下面组成部分,如图1所示。
图1 组态软件图形系统的构成
(1)视觉效果良好的编辑窗口。为了给用户一个清新直观的程序编写环境,编辑窗口应当给用户一个良好的视觉效果。
(2)用户工具栏。
(3)用户右键快捷菜单。
(4)水平、垂直标尺。水平及垂直标尺的设置便于用户在编辑器内导航,同时具有整行选择和整列选择的功能。
四、SFC图形系统设计方案
(一)语言元素管理模式的确定
SFC图形系统的管理,主要是解决语言元素单体及宏体的添加、删除、移动等操作所带来的对象管理问题。有两种模式可供选择:一维线性模式和二维平面模式。在存储管理上,都是使用链表和数组,区别在于根对语言元素对象的查找、定位的机制上。
1.一维线性模式
该管理模式下,全部的语言元素对象分布到几个不同类型的链表和数组中存储,查找、定位某个类型的语言元素对象时,直接使用链表本身和数组本身进行操作:使用查找或遍历的方法得到满足条件的语言元素对象。这种模式节省内存占用,程序实现简便。但语言元素对象较多时运行的效率不高。
2.二维平面模式
在这种管理模式下,除了将全部的语言元素对象分布到几个不同类型的链表和数组中存储以外,还在内存中建立一个“网格地图”(GridMap)用以形成从各元素在编辑区域的显示位置到其内存分布的逻辑地址的映射。使用查找、定位某个类型的语言元素对象时使用网格地图在内存中快速定位相应的语言元素对象。这种模式占用较多的内存;但当语言元素对象较多时可大大提高了软件运行的效率,方便了对语言元素对象的管理。
考虑到软件运行中经常出现用户对语言元素的各种操作www.cechina.cn,对语言元素的内存定位运算非常频繁,由此决定的软件运行的效率是一个很重要的指标,而一般的SFC程序规模通常不是很大,所以在本软件中选择和确定了使用二维平面式的语言元素管理模式。网格信息的图形表征如图2所示。
图2 网格信息的图形表征
根据SFC的编程规则CONTROL ENGINEERING China版权所有,每个网格最多只能存放3个语言元素。因此,将网格划分为上、中、下3个部分,每个部分都存储有关该处语言元素的2个重要的描述信息:该处语言元素的类型及该处语言元素在相应链表和数组中的索引值。
(二)基本语言元素的操作
1.语言元素对象的选择、添加、删除、属性修改、单体及宏块的移动
• 选择操作:包括单击、“橡皮筋”拖动、通水平或垂