杨 世 江
(上海电科电器科技有限公司, 上海 200063)
基于Modbus/TCP的低成本网关设计
杨 世 江
(上海电科电器科技有限公司, 上海 200063)
现有低压电器产品运用的通信接口多为Modbus接口,限制了网关产品在智能电网中的广泛应用。提出了一种基于Modbus /TCP的网关设计方案。测试结果表明,设计的网关能完成相应转换功能,减少了对协议转换处理芯片的性能要求,降低了整个系统的设计成本及软件设计难度。
智能电网; Modbus/TCP协议; 网关; 硬件设计
随着经济的不断发展及人们生活水平的不断提高,传统电网已经不能满足电力行业的需求,智能电网已成为电力行业的发展趋势。智能电网是在传统电网的基础上融合计算机可视化、通信技术、传感检测等多种技术的新型电网,具有数字化、自动化、信息化等基本特征。电网中大部分电能是在终端用电设备上消耗的,而且用户端产品量大、面广,是电能管理和安全保护的主要对象。
智能用户端是指从电力变压器到用电设备之间对电能进行传输、分配、控制、保护和能源管理的所有设备及系统,而对整个电网(局部电网)上的智能用户端进行联网信息交互是实现智能电网的基础。因此,需要一种联网技术来实现智能用户端的信息交互。工业以太网技术相对于传统的现场总线技术,具有价格低、稳定可靠、通信速率高、资源共享能力强、可持续发展潜力大等优点。将工业以太网技术应用于智能电网领域,实现用户端产品的互联信息交互,具有可行性和实用性。与此同时,现有低压电器产品运用的通信接口多为Modbus接口,要实现利用工业以太网联网接入,就需要一个协议转换网关。
1.1 工业以太网技术
在国际电工委员会制订的标准IEC 61158中定义了10种工业以太网标准[1],这些以太网标准从处理方式上可分为3类:
(1) A类使用标准以太网硬件和标准TCP/IP协议栈,通过上层中合理的控制来应对通信中的非确定因素,如Modbus/TCP协议。
(2) B类使用标准以太网硬件,但过程数据的传输采用专门的传输协议,如Power-Link协议。
(3) C类协议中所用从站由专门的硬件实现,如EtherCAT协议[2]。
1.2 工业以太网网关
文献[3]提出了基于x86处理器的嵌入式网关服务器的硬件设计方法,其缺点在于x86结构处理器目前已很少在嵌入式设备中使用,另外其Modbus接口端采用RS-232C通信方式,在传输距离和传输可靠性方面都存在问题。文献[4]采用32位的高性能ARM嵌入式微处理器,通过实时嵌入式操作系统Nucleus Plus统一管理以太网驱动程序、串行驱动程序以及应用程序,内嵌Web服务器实现系统的交互访问,该方案仅从硬件系统设计方面考虑,硬件结构复杂、成本较高。文献[5]为解决不同现场总线之间的通信问题,设计出适合现场总线互联的解决方案,设计的基于工业控制现场总线的嵌入式监控系统,在使用现有的现场总线控制网络的情况下,实现与Internet的集成,解决设备直接上网问题。该方案缺点是硬件采用S3C2410作为核心控制器件,周围辅助器件较多,成本较高,软件设计需操作系统配合。
除了上述的设计方案,国内外诸多厂商也有工业以太网网关产品,如EGX100、MESR901、MPort-100IE、CN1EG/10。以上工业以太网网关产品最低也在1 500元左右,不利于其在智能电网用户端的广泛使用。
智能电网的发展需要用户端产品进行联网互动,将Modbus接口的低压电器设备联网,但目前的设计方案及相关产品价格昂贵,限制了网关产品在智能电网中的广泛应用。因此,本文提出一种基于Modbus/TCP的低成本网关设计方案。
2.1 硬件设计
Modbus/TCP网关的硬件设计方面主要涉及Modbus物理层接口、 Modbus/TCP物理层接口和完成协议转换的处理器。Modbus/TCP网关硬件原理框图如图1所示。
图1 Modbus/TCP网关硬件原理框图
首先,根据GB/T 19582.2—2008《基于Modbus协议的工业自动化网络规范 Modbus协议在串行链路上的实现指南》串行链路上的Modbus解决方案,可利用RS- 485、RS-232实现电气连接,通信速率要求为9 600 b/s和19 200 b/s,也可使用1 200、2 400、4 800…38 400 b/s等。考虑到智能电网组网的信号传输距离及传输中的干扰抑制能力,该设计中采用RS- 485接口作为Modbus物理层接口。另外,在智能电网应用领域中,设备工作环境复杂、干扰较大。为了保证设备通信正常以及核心控制电路的安全,必须在通信端口加入光耦隔离器。为实现整个网关的低成本,在器件选择方面也要考虑其性价比。RS- 485通信芯片选择MAX3085,最高通信速率为500 kb/s,完全能满足要求;光耦选择TLP281,其导通关断时间为3 μs,以Modbus通信速率19 200 b/s为例,其单个字符时长为1/19 200 s=52 μs,因此光耦的开关时间对字符传输几乎无影响。以上两种器件的选择均满足了Modbus接口数据传输的要求。
Modbus物理层接口设计如图2所示。
图2 Modbus物理层接口设计
根据GB/T 19582.3—2008中Modbus在TCP/IP上的实现规定,Modbus/TCP物理层(以太网物理层)在设计该部分时考虑两种设计方案。
(1) 采用独立的PHY配合带MAC控制器的处理芯片实现。该方案的缺点是一般带MAC控制器的处理芯片功能都比较强大,通信接口及芯片I/O都比较多,软件编程需要加入操作系统及TCP/IP协议。因此,硬件成本高,软件开发时间周期长。
(2) 采用集成PHY、MAC及TCP/IP协议栈的网络芯片,加上简单的处理器芯片即可完成以太网通信功能。该方案软件开发周期短,且硬件成本低。
本文采用第二种方案,网络接口选择集成硬件TCP/IP协议栈的网络芯片W5200。该芯片硬件支持TCP、UDP、ICMP、IGMP、 IPv4、ARP、PPPoE协议,与MCU连接方式为SPI方式,MCU访问它就如同访问一般存储器。核心控制芯片选择ARM CortexTM-M0内核处理器STM32F051,其通过高速SPI方式访问W5200。在该设计方案中,W5200SPI通信接口通信频率最高可达80 MHz,而STM32F051SPI通信接口通信频率最高可达18 Mb/s,两者通过SPI接口进行通信的速率最高为18 Mb/s,完全满足通信速率要求。
2.2 软件设计
串行链路上的Modbus帧结构包括地址域、功能代码、数据和校验数据。在Modbus串行链路上,主站通过在报文地址域中放置从站地址寻址从站。当从站返回响应时,主站将其地址放置到响应地址域中,以便获知子节点的响应。功能码指示服务器要执行何种操作,功能码后面是含有请求和响应参数的数据域。差错检验域是根据报文内容执行“冗余校验”计算的结果。在TCP/IP上使用一种专门报文头来识别Modbus应用数据单元,报文头被称为MBAP,因此Modbus/TCP上的数据帧结构包括MBAP报文头、地址域、功能代码、数据和校验数据。
因此,当从以太网端口接收数据时,只需将帧结构中的MBAP报文头拆除,即可得到标准的Modbus帧结构,再根据功能码及数据判定要做出何种响应。当从以太网发送数据时,只需将Modbus帧加入MBAP报文头即可得到Modbus/TCP帧,再经过网络接口发送到网络设备。软件流程如图3所示。
图3 软件流程
为方便调试时与PC机连接,在设计时加入了RS-232接口,将PC机串口与样机RS-232接口连接,PC机以太网口与样机以太网口连接,样机IP地址设置为10.10.100.254,通信端口设置为888,连接类型为TCP连接,设置串口通信参数为BR=9 600 b/s,8位数据位,1位停止位,无校验。测试时,串口和以太网口相互发送接收数据。以太网发送接收数据测试界面如图4所示,串口发送接收数据测试界面如图5所示。
图4 以太网发送接收数据测试界面
图5 串口发送接收数据测试界面
从图4、图5可知,串口向以太网发送82 Byte,以太网接收82 Byte,且字符无错误;以太网向串口发送83 Byte,串口接收83 Byte,且字符无错误。
本文设计的网关完成相应转换功能,采用TCP/IP硬件协议栈芯片,减少了对协议转换处理芯片的性能要求,大大降低了整个系统的设计成本及软件设计难度,从硬件上实现了低成本设计。
[1] IEC 61158-1 Industrial communication networks—Fieldbus specifications Overview and guidance for the IEC 61158 and IEC 61784 series[S].
[2] 魏亚鹏,韩卫光.实时工业以太网技术的研究[J].组合机床与自动化加工技术,2013(7):50-53.
[3] 周冰宇,邱建利,庞宏冰.x86嵌入式网关实现MODBUS与TCP协议转换[J].计算机与数字工程,2006(12):57-59.
[4] 霍恒裕.基于嵌入式系统的断路器工业以太网数据适配器的开发[D].苏州:苏州大学,2008.
[5] 姚征,娄国焕.嵌入式工业现场总线转换及监控系统设计[J].控制工程,2009(9):89-91.
Design of Low-cost Gateway Based on Modbus/TCP Protocol
YANG Shijiang
(Shanghai Electric Appliance Science and Technology Co., Ltd., Shanghai 200063, China)
The existing low voltage electrical products almost use the Modbus interface,which restrains the extensive use of gateway products for the ending user in intelligent grid. This paper proposed a design of gateway based on Modbus/TCP protocol. The test results show that the gateway designed can accomplish the corresponding conversion function,and reduce the performance requirement of protocol processing unit,the system design cost,and the software design difficulty.
intelligent grid; Modbus/TCP protocol; gateway; software design
杨世江(1987—),男,工程师,从事终端电器智能化方面的研究。
TM 502
B
1674-8417(2015)02-0010-04
2014-10-21