mfc服务器和客户机信息交互,配网终端维护工具的设计与开发

配网终端是一个主要由硬件和软件构成、具有高稳定性和可靠性的装置。为了检测和验证其运行工况和技术指标,需要一套辅助系统对其进行全方位检测。维护工具就是这样一套辅助系统,它基于Windows平台,是使用微软提供的开发平台进行设计与开发的软件系统。模块采用了模块化设计,分为配置和调试两个独立模块。配置模块可分为参数配置和通信关联关系配置两个部分;调试模块与装置通过通信连接,实现对装置进行配置文件下装和读取、装置程序的升级、装置的运行监测和控制等操作。

配置模块使用Visual C# Windows Forms Application开发;调试模块使用Visual C++ MFC开发。使用C#开发配置模块的原因是开发效率高,易于维护;使用MFC开发调试模块主要是为了直接使用装置程序中的的通信组件(装置程序使用的是C语言)。装置的通信组件遵循的是IEC-60870-101和IEC-60870-104通信规约,分为对上通信和对下通信。调试模块使用的是对下101和104通信组件。配置和调试这两个模块,在各自的人机界面上均可互相调用。

1 配置模块

1.1 设计思想

配置模块按照工程来管理配置信息。一个配置工程对应一个被配置对象——装置,新建工程时必须指定被配置对象的模板,装置模板里定义了参数配置项、通信端口配置项、四遥配置项。

参数配置项通过专门的参数配置模块来进行配置,生成参数配置文件。

通信端口配置项指定了装置包含的通信端口数目、参数(物理参数、规约参数)、属性(对上端口或对下端口)。对下端口用于通信挂接设备。在新建的设备表集中新增挂接设备,被挂接设备的模板需要导入,并设置设备编号、名称、地址等信息。对下端口绑定此设备表集即可;对上端口用于转发本装置和挂接设备的测点。在新建的转发表中挑选四遥测点。对上端口绑定此转发表即可。

本装置四遥和被挂接设备的四遥共同组成四遥实时库。本装置四遥固定排在最前面,其余设备四遥按照设备表集及其挂接设备的顺序排列。实时库形成后,在实时库中挑选需要通信上送的信息形成转发表。

综上,配置模块包括参数集配置、设备表集配置、转发表集配置、通信端口集配置、实时库显示等子模块。最终形成参数配置文件、设备表配置文件、转发表配置文件、通信端口配置文件。

新建工程。打开配置模块进入配置主界面,首先需要新建一个工程或打开一个既有工程,新建工程时需指定存储路径和被配置对象的模板。模板是由被配置对象自动生成的text文本文件,有固定的格式,包含参数表、定值表、遥测表、单点遥信表、双点遥信表、遥控表、计量值表、端口表。工程采用左边树形导航结构、右边列表的方式来呈现。点选树形节点,右边列表显示相应信息,列表部分内容可编辑。树形结构的节点包括:参数集。被配置对象的参数集合。;模板集。所有被挂接设备的模板集合;设备表集。所有被挂接设备的集合;转发表集。所有转发表的结合;端口集。被配置对象的通信端口集合。

参数集配置。根据装置模板中的参数定义形成参数配置文件,即为参数配置。模板文件中的参数条目,包含以下信息:组名称(开入防抖时间)、条目名称(Yx01)、值类型(U16)、最大值(60000)、最小值(7)、默认值(20)、调节步长(1);板集配置。模板集可导入多个新的模板,这些模板是被挂接设备的数据模型。当在设备表集中新增设备指定模板后,此时该模板被锁定、不能被删除。必须在删除设备后该模板才能被删除。

设备表配置。设备表集可根据需要新增设备表二级节点,每个设备表对应被配置对象的一个对下通信端口。新增设备表时需指定设备表名称。每个设备表下可新增、编辑、删除被挂接的设备(三级节点)。新增被挂接设备时需指定设备编号、设备名称、端口配置、基础模板等信息。被挂接设备的四遥信息全部自动导入四遥实时库;实时库显示。四遥实时库有5个页签:遥测、单点遥信、双点遥信、遥控、遥调,条目按列表方式显示;转发表配置。转发表集可根据需要新增转发表二级节点。每个转发表对应被配置对象的一个对上通信端口。新增转发表时需指定转发表名称,每个转发表可新增、编辑、删除四遥信息(从四遥实时库中获取)。

端口集配置。端口集的二级节点由被配置对象的通信端口信息决定。端口集的配置内容包括:端口的物理属性(串口或网口);物理参数(串口为波特率、数据位、停止位、校验位;网口为IP、网关、子网掩码、端口号、MAC地址);逻辑属性(对上或对下);设备表(对下端口绑定);转发表(对上端口绑定);规约配置(规约类型和规约参数,规约参数因规约类型而异)。支持的规约类型包括:对上101规约;对上104规约;对上103规约;对上Modbus规约;对下101规约;对下104规约;对下103规约;对下Modbus规约。

1.2 配置文件及其它功能

配置模块保存的配置文件有5个:Para.cfg、Dev.cfg、Fwt.cfg、Port.cfg、cfg.prj。前4个后缀为“cfg”的文件是给装置制作的配置,使用FTP协议下载到装置里,装置的运行基于这些文件。cfg.prj是工程文件,内容是整个工程信息,包含模板集、设备表集、转发表集、端口集及其配置信息。使用配置模块,打开这个工程文件即可还原整个工程。配置模块的基本功能就是给装置制作配置文件,此外还提供了其它一些高级功能:FTP自动新建。通过FTP协议自动从装置中获取模板文件,并加载到配置模块中来;工程文件助手。通过助手提供的功能可自动下装和读取装置中的配置文件;自动配置。其和调试模块的配置文件默认的是四遥信息全部转发。以上功能适用于特定需要的场景,能够极大提高作业效率。

2 调试模块

调试模块是一款基于微软Visual Studio 2012平台,使用Visual C++MFC设计与开发的一款应用软件。调试模块与终端通过通信连接和信息交互实现对终端的监测和控制,以及SOE和故障事件的查看、参数的读写、文件和记录的操作等功能。调试模块的角色是客户端、主控站。终端是服务器,被控站。调试模块可通过串口或网口的方式与终端建立通信链路,从而进行信息交互。

2.1 界面布局

主界面分为5个部分:标题栏。显示模块图标和名称;工具栏。各种功能入口;导航区。点击树形节点,切换对应的显示和操作界面;显示区。查看和操作界面;状态栏。实时显示状态和操作信息。

2.2 主要功能

自动配置。为了提高效率,提供一键自动配置功能。工程文件是使用前文中的配置模块制作生成;一键自动配置功能主要适用于四遥数据全部转发调试。这两者的区别在于:使用配置模块可以定制转发表。工程现场联合调试时一般使用这种方式。在调试模块界面上的四遥,和调度提供的点表的是一致的,便于核对测点;自动配置的使用场合是厂内调试。

程序升级。终端程序和配置都是以文件的形式存在。当需要下装或更新时就需使用人机界面进行可视化操作。模块与终端之间使用的是FTP协议,当模块与装置建立起FTP连接后,可自动从装置各个盘符和路径下获取程序和配置文件列表。用户可对文件进行获取、删除、下装等操作。

实时监控。当模块与终端建立起通信链路后,就可在人机界面上监测终端运行工况,以及对装置进行遥控操作。模块与终端的通信协议支持DLT634.5101-2002和DLT634.5104-2009;模块周期性下发总召唤命令。终端上送实时的遥测和遥信数据。模块更新内存数据库,并在界面上刷新;终端主动上送变化超过阈值范围的遥测数据和变位的遥信数据;终端主动上送装置产生的故障事件信息;模块能对终端进行遥控分合闸操作。

参数读写。参数是终端的基本属性,包括固有参数、运行参数等。固有参数是终端的基本信息,包括终端类型、名称、程序版本号、出厂编号等;运行参数包括定值区号、保护的投退、动作的阈值等。在人机界面上,可对各种类型的参数进行读写操作,当写入的参数超过阈值会弹窗提示重新输入。读写的结果在状态栏上实时显示;SOE(Sequence Of Event,事件顺序记录)。是记录故障发生的时间和事件的信息类型。分为单点SOE和双点SOE。当终端产生SOE会立即上送。模块收到SOE会立即弹窗告知用户,满足实时性需求。

故障事件记录。当终端产生故障会立即生成数条故障事件记录,并将这些记录以通信报文形式上送。模块接收并解析故障事件记录,以列表的方式呈现给用户。列表条目内容包括故障名称、数值、时间戳、产生时刻的遥测数值等。

文件操作。终端在运行过程中会自动产生各种类型的文件,主要有:录波文件、日志文件、SOE文件、遥控操作记录文件、极值数据文件、定点记录数据文件、日冻结电能量文件、功率反向电能量冻结值。用户可通过人机界面读取文件的目录和文件的内容。文件操作的流程先读取类型文件的目录。终端返回目录集合,模块以列表方式呈现。用户手动选择文件目录,读取目录下文件的内容。终端返回文件内容,模块将内容输出到文本框中。用户可以查看和保存文件内容。

记录操作。终端在运行过程中会自动产生各种类型的记录。主要有保护记录、单点SOE记录、双SOE点记录、运行记录、自检记录、操作记录。模块支持读取这些记录,以列表方式呈现。用户可以根据设定条件进行筛选并保存为文件;虚拟操作。终端支持虚拟操作功能。模块则提供对终端进行虚拟操作的界面和接口。主要的虚拟操作有虚拟遥测、虚拟遥信、虚拟出口、退出虚拟;报文监视。在调试过程中可实时监视模块和终端的通信报文。报文是以16进制字节串的方式输出的,为方便用户查看和分析报文添加了对报文的解释功能。

综上,维护工具能够用于配置终端,并能检测终端运行工况和各项技术指标。具有设计合理、界面友好、操作便利、响应迅速、运行稳定等特点。能够对终端进行全方位的检测,切实满足使用者的需求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
环境:Windows XP SP3、 VC++ 6.0、 Windows 2003 SDK 使用步骤: 1、下载解压之后,使用VC++ 6.0打开两个工程:一个是SocketServer和一个ClientSocket工程。 2、首先运行服务器端工程,选默认的端口1008 3、然后运行客户端工程,选默认的端口1008和默认的服务器地址 4、再运行多个客户端进程 5、如果一切正常,可以每个客户端的消息发送,我们可以在服务端和各个客户端同步看到消息 实现一个服务器对多个客户端的关键是,在服务端的使用集合CPtrList类用保存客户端的socket对象,思想与Java中的编程思想一样,只不过Java中会使用多线程技术,在Vector集合保存客户端的socket对象,而MFC框架提供了CSocket类,它是一个异步通信的类,所以看上去代码比较Java的多线程代码简单的实现了一个对多的即时通讯功能。另外,MFC提供了CSocketFile类和CArchive类与CSocket类实现了C++的络通讯编程功能。 本示例注释非常详细,所有的辅助类都放一个util目录中,然后在工程中分了一个目录来管理这些辅助类,使用代码非常清晰。手动书写部分的代码是按Java的规范书写,当然其它代码由IDE生成的,所以是MS的风格,所以当你看代码时,只要是使用“骆驮命名法”的方法都是本人书写的功能性代码。 参看的思路:在服务端要从回调方法onAccept读起;而客户端代码主要从OnSendButton方法读起,即可理解整个代码的意思。 阅读对象:具有Java的Socket编程经验的人员,并且希望能够书写出比Java效率更高的即时通讯程序的人员

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值