基于Visual Basic和Proteus的低压电器通信协议仿真设计

2011-12-31 13:40:18陈林周煜智
浙江工贸职业技术学院学报 2011年1期
关键词:低压电器物理层通信协议

陈林,周煜智

(1.浙江正泰电器股份有限公司 技术中心,浙江 温州 325603;2.浙江大学 电气学院,浙江 杭州 310027)

一、引言

从1960年代开始到现在,中国的低压电器经历了四代的发展。最新一代低压电器即第四代低压电器的研发热点为具有网络通信功能的电器产品。低压电器的通信实际上是低压电器智能控制器或智能单元间的通信,低压电器的通信协议通常直接采用现场总线的有关技术[1][2][3]。

通过现场总线技术的采用,低压电器与系统发生了一场新的革命,传统的安装方式纷纷被打破。传统低压电器只可以固定安装在控制柜或配电箱中,物理位置的改变将导致二次回路即控制回路的重新设置。采用现场总线,低压电器可以离开控制柜或配电箱而安装到设备现场,监测信号和控制信号通过总线与上位机相连,进行实时通信。

目前,国内低压电器行业较为常见的总线方案为:Asi、Modbus、Profibus、DeviceNet四类,主要源自西门子、施耐德、ABB等国际大型电气公司。中国企业目前在该领域还是追赶者。从技术复杂程度来看,Modbus最简单,虽然其传输速率较低,但已足够满足低压电器的通信需求。从技术壁垒角度来看,Modbus没有像其他几种协议那样采用专用集成芯片,技术开放性较高,开发与使用成本方面具有优势。

二、Modbus协议分析

Modbus是较为常见的现场总线工业标准,主要以树型网络结构或者说总线型网络结构为主,协议结构简单,只规定了OSI模型第7层的应用层报文传输协议、第2层的数据链路层串行链路协议及第1层的物理层(采用RS485/232规范),它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信,采用主站/从站访问方式,其协议栈结构和与OSI模型的对照如图1所示。

图1 模型对照

三、硬件平台配置

通过RS485/RS232以及RS232/USB接口电路,可以实现将个人电脑接入Modbus网络,仿真Modbus主机和从机。仿真硬件结构原理图如图2所示。

图2 硬件平台结构图

当前,很多PC机,特别是笔记本电脑,都已经取消RS232接口,转而由USB接口取代。但RS232的一些优点,特别是与外围微控制器通信方面仍有显著优势。因此,采用USB转RS232硬件,一方面继承了USB接口热插拔等方面的优势,另一方面又可继续发挥RS232通信的优势。USB接口转换为RS232接口主要通过CH340转接芯片实现。CH340是一个USB总线的转接芯片,可以实现USB转RS232功能。

RS232与RS485的接口转换,主要是电气特性与逻辑转换,通过电平转换芯片即可实现。MAX232可将RS232电平与逻辑转换为TTL,MAX485芯片则用于RS485的电平与TTL电平转换。同样,89C51的TTL电平也通过MAX485芯片转换为RS485电平。

RS485总线只规定了物理层的有关特性,具体的传输协议由开发人员自行定制,这就大大降低了应用门槛,为上层协议的开发提供了很大的柔性。但另外一方面,也就限制了RS485在复杂数据传输方便的应用,在简单信号传输,特别是智能控制器信号传输方面去有着非常大的优势[4]。

通过上述两次接口转换,可基本实现PC机到RS485网络的硬件连通。

四、通信协议虚拟设计软件

在传统的低压电器设计中,采用的开发模式主要是物理样机模式,即通过反复地“制作样机 测试改进样机 测试”的流程来达到设计目标。传统模式存在开发周期长、费用高、质量水平不高等缺陷,难以满足四代低压电器多元化、个性化方面的需求[5]。随着计算机技术和仿真技术的发展,商用仿真软件品种越来越丰富,功能也越来越强大,因此,低压电器虚拟样机设计也日益普及。本文主要采用Visual Basic设计上位机和下位机仿真程序,以及采用IAR和Proteus开展单片机的仿真。

Visual Basic是美国微软公司开发的一款面向对象的程序开发系统,在VB中创建的应用程序可以在任何Windows环境下运行。在智能电器设计过程中,涉及到应用于串口通信的MSComm控件。Microsoft Communications Control(MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,通过串行端口传输和接收数据,为应用程序提供串行通信功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在Visual C++(以下简称VC),Visual Basic〔以下简称VB),Delphi等语言中均可使用。主要通过两种方式处理通信问题:一是事件驱动(Event-driven)方法,二是查询法[6]。

单片机仿真设计软件是低压电器通信协议虚拟设计的另外一类重要软件。本文主要涉及Proteus和IAR EMbeded Workbench for 8051。用Proteus进行单片机功能设计与验证,可大大提高速度并降低研发成本。IAR Embedded Workbench for 8051是一套高度精密且使用方便的嵌入式应用编程开发工具。通过其内置的针对不同芯片的代码优化器,IAR Embedded Workbench可以为8051系列芯片生成非常高效和可靠的FLASH/PROMable代码。

五、Modbus通信协议的软件设计

Modbus协议的实现分为两个步骤,第一步是物理层协议的实现,主要涉及异步串行通信参数的设置与调试;第二步是数据链路层和应用层协议,主要是应用数据单元的实现和操作函数的实现。

(一)物理层协议的实现

物理层协议实现主要是基于RS485网络,通过异步串行通信相关参数的设置来实现PC机和单片机在RS485上的数据收发功能。

1、PC机的物理层协议实现

PC机的物理层协议,通过VB开发软件的MSComm控件实现。实现的步骤为[7][8]:

(1)运行VB程序,添加控件:一个MSComm控件、两个文本控件(一个命名为“TextSend”,用于输入待发送文本;另一个命名为“TextReceive”,用于显示接收到的文本)、两个按钮控件(一个命名为“CommandSend”,用于将“TextSend”控件中的文本发送到RS485总线;另一个命名为“CommandReceive”,用于接收总线上收到的信息并显示在“TextReceive”文本控件中);

(2)设置MSComm的通信参数:

a.ComPort属性,即使用的COM端口号;

b.Settings属性,即串行通信波特率、校验、数据位、停止位等参数;

c.设置其它辅助属性,如InputMode,Rthreshold等;

(3)运行串口通信程序,开启通信端口,即赋值MSComm控件的PortOpen属性。(PortOpen=True)

(4)送出字符串或读入字符串,即赋值MSComm控件的Output属性或读取Input属性。

(5)使用完MSComm通讯对象后,将通信端口关闭。

2.单片机物理层协议实现

单片机的物理层协议是通过USART(UART)串行通信接口来实现的。本文涉及的单片机为Atmel的AT89C51。8051单片机有一个采用通用异步接收/发送器(UART)工作方式的全双工串行通信接口,因此它与外界的通信一般采用串行通信方式,只有少数情况下才采用并行方式。8051单片机的串行接口主要由2个物理上独立的串行数据(接收、发送)缓冲器SBUF、发送控制器、接收控制器、输入移位寄存器和输出控制门组成。发送数据缓冲器SBUF只能写入、不能读出。接收数据缓冲器只能读出、不能写入。2个缓冲器共用一个单元地址99H,是不可位寻址的特殊功能寄存器,在编程应用中就如同使用一个寄存器SBUF一样。控制8051单片机串行接口的控制寄存器共有两个:特殊功能寄存器SCON和PCON。

SM 0和SM1为串行通信模式选择位,51单片机共提供4种通信模式,模式1~3为全双工通信,模式0主要用于I/O扩展时作为移位寄存器。

本文选择的是模式1,其波特率由时钟T1生成。

以波特率为9600为例,则对应的CUP频率为14.7456MHz,T1的初始值为FCh,并采用8位自动重载模式。将单片机通信参数写入初始化函数中并在主程序运行初始阶段调用。

进一步地,对单片机的接收与发送函数进行设计。

接收函数采用中断模式,MCS-51单片机的串行中断矢量为0x23,中断处理函数格式为:

通过IAR软件编译生成.hex格式机器文件,载入Proteus仿真软件对上述代码进行测试,可实现双机互连。

(二)数据链路层的实现

Modbus数据链路层的实现分为上位机(PC)和下位机(单片机)两部分。

1.通信参数设置

(1)传输模式,本文采用RTU模式,即信息的打包和解码的方式为报文中每个8位字节含有两个4位十六进制字符,每个字节的11位,格式为:1个起始位,8个数据位(首先发送最低有效位LSB),1个奇偶校验位(偶校验),1个停止位;

(2)通信速率:9600bit/s;

(3)帧校验:采用循环冗余校验(CRC);

(4)单播模式下的响应超时由于从站处理请求并返回响应,设置为2s;广播模式下的回转延时只需从站处理请求并能够接收新请求,设置为0.5s。

2.主站和从站的功能模块设计

(1)主站的总体设计

定义一个整型变量Modbus_State,默认值为0,取值范围为0、1、2、3、4,通过对Modbus_State的状态判定分别运行对应的模块。其子模块包括:数据包接收子模块(Modbus_State=0)、数据包解析子模块(Modbus_State=1)、函数执行模块(ModBus_State=2)、信息反馈子模块(ModBus_State=3)和复位子模块(Modbus_State=4)。

(2)从站模块的总体设计

与主站模块的总体设计相似,也根据Modbus_State的取值来分为5个子模块,分别包括:数据包接收子模块(Modbus_State=0)、数据处理子模块(Modbus_State=1)、响应子模块(Modbus_State=2)、命令执行子模块(Modbus_State=3)和超时复位子模块(Modbus_State=4)。

(三)应用层的实现

JBT10542(2006)——低压电器通信规约已经规定了断路器通用数据通信参数表。本案采用Microsoft Access数据库对相关通信参数进行预定义。数据库由6个表组成:JBT10542(2006)断路器通用数据通信参数表、寄存器总表、设备类别清单、设备类别寄存器表、设备注册信息表和设备存储器表。

另外,通过一个按钮控件用于更新设备注册并生成协议文件。所谓的协议文件,对于VB类的下位机,是一个文本文件,用于程序启动时读取相关配置。对于单片机类的下位机,协议文件是一个头文件,用于编译时载入。

六、结语

本文研究了配置低压断路器通信协议的单机开发环境,并基于该开发环境开展Modbus协议的设计与仿真,实现了智能控制器寄存器的Modbus通信系统。通过Modbus总线系统,个人电脑作为上位机,各种带智能控制器的低压电器作为下位机,可实现遥测、遥控和遥信功能,实现四代低压电器及其系统的功能。

目前,我国的节能减排任务艰巨,电力公司主要通过拉闸限电这种比较粗放的管理模式来达到减排目标,这种作法已经引起了社会上广泛的争议。国家有关部门以及能源供应公司需要采取更加科学的管理方式,一方面,需要将节能减排目标具体量化并落实到每个企业,比如建立单位GDP的能量消耗指标,另一方面,应当积极建设智能电网,特别是安装四代电器和系统,对用电企业与单位实行全面的电力信息收集与统计,在此基础上,通过考核对能耗产出比不达标企业实施限电措施,而对于能耗产出优越的企业应该进行奖励。这样,才能真正实现可持续发展的节能减排目标。

[1]王俊杰.一种新型的现场设备级监控网络──ASI总线[J].低压电器,2006(6):23-24.

[2]袁海洲,刘少克.PROFIBUS技术概述[J].电工技术,2000(2):1-2.

[3]孙喜田.关于我国现场总线技术发展策略的思考[J].自动化与仪器仪表,2000(5):1-3.

[4]元涛.基于RS485网络的远程集中抄表系统设计与实现[J].山东科技大学,2004.

[5]李瑞涛,方湄,张文明.虚拟样机技术的概念及应用[J].机电一体化,2000(5):17-19.

[6]Eric Brier ley,Anthony Prince,David Rinaldi.Visual Basic 6开发人员指南[M].北京:机械工业出版社,1999.

[7]仵浩,齐燕杰,宋文超.Visual Basic 串口通信工程开发实例导航[M].北京:人民邮电出版社,2003.

[8]范逸之,陈立元.Visual Basic与RS-232串行通讯控制[M].北京:中国青年出版社,2001.

猜你喜欢
低压电器物理层通信协议
基于K-ML-MPWFRFT的物理层安全传输技术
公路联网电子不停车收费系统路侧单元物理层自动测试软件研发
基于Z-Stack通信协议栈的红外地温采集电路设计
探究我国低压电器的现状及发展
电子制作(2017年2期)2017-05-17 03:55:20
基于DMX512通信协议的多路转发器设计与研究
继电器在电气工程及其自动化低压电器中的作用
电子制作(2016年23期)2016-05-17 03:53:43
基于NS-3的PLC多频通信协议仿真平台设计与实现
电测与仪表(2016年2期)2016-04-12 00:24:52
多天线物理层安全传输系统性能分析
2015年我国低压电器市场规模将达750亿
电器工业(2015年4期)2015-06-27 01:59:58
2014年我国低压电器进出口分析及预测
电器工业(2015年4期)2015-01-11 02:57:20