Modbus BACnet协议转换网关总体设计方案Word文件下载.docx

上传人:b****8 文档编号:22074903 上传时间:2023-02-02 格式:DOCX 页数:23 大小:462.55KB
下载 相关 举报
Modbus BACnet协议转换网关总体设计方案Word文件下载.docx_第1页
第1页 / 共23页
Modbus BACnet协议转换网关总体设计方案Word文件下载.docx_第2页
第2页 / 共23页
Modbus BACnet协议转换网关总体设计方案Word文件下载.docx_第3页
第3页 / 共23页
Modbus BACnet协议转换网关总体设计方案Word文件下载.docx_第4页
第4页 / 共23页
Modbus BACnet协议转换网关总体设计方案Word文件下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

Modbus BACnet协议转换网关总体设计方案Word文件下载.docx

《Modbus BACnet协议转换网关总体设计方案Word文件下载.docx》由会员分享,可在线阅读,更多相关《Modbus BACnet协议转换网关总体设计方案Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。

Modbus BACnet协议转换网关总体设计方案Word文件下载.docx

MTB协议转换器与Modbus从机设备模块之间通过RS485进行通信,带有1条RS485总线,每条总线可扩展8个Modbus从机设备.

4.2协议转换器功能

1.Web功能

a)可通过登陆IE浏览器访问、配置协议转换器相关参数。

b)数据对象配置,包括对模拟量、二进制量、多态、输入、输出、值对象进行配置。

c)Modbus配置,配置菜单包括,ModbusRTU数据、ModbusRTU设置、

2.网络通信

a)与Modbus从机设备通信,采用ModbusRTU协议实现数据通信。

b)集成BACnetIP协议,在以太网上采用BACnetIP协议向BAS系统接口。

c)实现Modbus协议到BACnetIP协议的数据映射,把Modbus从机设备数据转换为标准的BACnetIP对象。

3.安全机制

a)密码登陆,经过授权的用户才允许登陆访问MTB协议转换器控制器。

4.辅助功能

a)带有电源、运行和通信指示灯。

b)带有蜂鸣器提示功能。

五、硬件设计方案

5.1MTB协议转换器硬件结构

MTB协议转换器采用模块化设计,主要功能电路有CPU,程序存储电路,数据存储电路,485通信电路,Ethernet通信电路,USB电路,实时时钟电路,复位电路,指示灯电路,硬件结构如图5.1所示:

图:

5.1硬件结构图

5.2MTB协议转换器功能说明

1.电源电路:

给MTB协议转换器各个电路提供供电,采用DC-DC电源芯片,输入DC24V,输出5V,再由LDO芯片把5V变换成3.3V和1.8V,供整个MTB协议转换器使用。

主要技术参数:

a)供电电压:

DC24V,

b)输出电压:

DC5.0V,3.3V,1.8V。

2.CPU电路:

该模块主要是一个芯片外加一个晶振电路。

,这是整个MTB协议转换器控制器的核心部分,实现各种复杂的逻辑运算和通信数据处理,以及对其他外围电路的监测和控制。

微处理器芯片内部嵌入32bit的CPU,小容量内部RAM、ROM,具有外部存储扩展接口EBI、I2C、SPI、UART、USB、Ethernet等各种通信外设接口,JTAG和debug调试口等,可以满足复杂的控制和各种通信协议的处理。

主要技术指标如下:

1)32bit芯片,主频200MHz,

2)带有MMU功能,支持Linux操作系统,

3)具有EBI接口,可外扩FLASH和SDRAM,

4)1个以上的10M/100M自适应Ethernet通信接口,

5)2个USB接口,其中一个USBHost,一个USBDevice,

6)1—2个I2C接口,

7)1—2个SPI接口。

可选的核心芯片:

三星:

S3C2410,主频200MHz,3个串口,2个以太网接口,带有MMU功能,可扩展NandFlash,SDRAM。

本设计中选用三星的S3C2410控制芯片。

芯片简介:

S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用0.18um制造工艺的32位微控制器,该处理器最高可运行在203MHz。

功能特点:

Ø

内部1.8V,存储器3.3V,外部I/O3.3V,16KB数据Cache,16KB指令Cache,MMU,

内置外部存储器控制器(SDRAM控制和芯片选择逻辑),

4个带外部请求线的DMA,

3个通用异步串行端口,

2通道SPI,

一个多主I2C总线,一个I2S总线控制器,

两个USBHOST,一个USBDEVICE,

117个通用I/O,

带MMU的先进的体系结构支持WinCE、EPOC32、Linux,

272-FBGA封装。

3.存储电路:

通过EBI接口外扩存储,包括程序存储器、数据存储器,配置如下:

1)采用64M的NandFlash,

2)采用64M的SDRAM。

4.以太网通信电路:

2个10M/100M的以太网通信电路,该电路主要由以太网控制芯片,网路变压器及RJ-45接口组成。

5.USB通信电路:

一个USBHost接口和USBDevice接口,该接口可用作程序升级或扩展功能用。

6.实时时钟电路:

采用实时时钟芯片,给MTB协议转换器提供精准的实时时钟,具有后备电池。

7.指示灯和蜂鸣器电路:

指示灯用于MTB协议转换器运行指示、报警指示和通信指示,蜂鸣器用于系统启动提示或其他扩展功能。

a)调试口:

Debug通过RS232方式实现,JTAG调试口直接引出即可。

六、软件设计方案

6.1软件架构设计

1.MTB协议转换器的软件架构采用分层,模块化的设计思想,以降低耦合性和开发难度。

MTB协议转换器功能从下到上依次为硬件平台、操作系统层、设备驱动层、通信层和应用层。

图6.1为系统软件架构图:

图6.1软件架构图

MTB协议转换器各层功能描述:

1.硬件平台:

由CPU、内存和各种外设组成,是实现MTB协议转换器软件功能的载体。

2.系统驱动层:

在MTB协议转换器的硬件平台之上加载Linux操作系统,并在操作系统之上开发出与MTB协议转换器硬件相关的设备驱动,并调用相关的库及SHELL,通过DeviceManagement层进行统一调度和管理,为通信层和应用层提供服务。

3.通信层:

也称通信进程,通信进程监听BACnet、Modbus和Http等通信,并收发MTB协议转换器间的互操作“服务”。

MTB协议转换器所支持的通信协议有:

1)BACnet协议:

采用BACnet协议创建标准的BACnet对象实例集,实现BACnetIP协议,该协议用于MTB协议转换器与BAS之间集成通信。

2)Modbus协议:

标准的ModbusRTU协议,通过RS485总线与MODBUS从机设备进行通信,采集现场数据并对现场建筑设备进行控制。

3)Http协议:

此协议是访问MTB协议转换器嵌入的web服务器的一种协议,用户可以通过IE浏览器访问MTB协议转换器的Web页面。

4.应用层:

包含应用进程、控制对象实例集、配置管理进程和Web服务器几个部分,这是MTB协议转换器核心的内容。

1)对象实例集:

表示楼宇自控设备的标准对象实例集,它是通信进程和应用进程相互联系的接口。

配置管理进程:

楼宇自控设备初始化设置与具体应用有关的参数,以及实现楼宇设备专有的管理功能。

2)CGI:

即通用网关接口(CommomGatewayInterface),通过嵌入到Web服务器中的CGI进程,接收CGI参数请求对设备管理层的数据用XML报文进行封装,回传到外部请求组件。

3)WebServer:

用户界面的一部分,通过嵌入式的Web服务器实现对控制器各个监控点的监控和系统的设置功能。

6.2MTB协议转换器系统子模块设计

MTB协议转换器软件主要包括BACnet模块、Modbus模块、web模块、cgi模块。

各部分关系如下图:

配置文件

共享内存

配置参数

BACnet设备

实时输入缓冲

实时输出缓冲

Modbus模块

Web/CGI模块

BACnet模块

浏览器

BAS系统

Modbus设备x

如上图,系统工作流程为:

1)BACnet模块,Modbus模块和Web/CGI是三个并发的进程,通过配置文件,共享内存和消息队列实现数据通讯和共享。

其中配置文件存放在jffs2/yaffs文件系统中,可修改,掉电数据不丢失;

BACnet设备是BACnet模块内部使用的内存数据;

实时输入输出缓冲用共享内存实现。

2)用户使用浏览器访问嵌入式web服务器,浏览信息浏览和配置页面。

3)WEB模块通过CGI模块读写配置文件。

4)modbus模块读写配置文件,按照配置的modbus设备个数,地址,数据点,波特率,轮询间隔时间等参数,实时采集各个modbus设备的数据,放入实时输入缓冲中。

5)BACnet模块根据配置文件中数据点的映射关系,创建BACnet设备以及BACnet对象点。

6)BACnet模块响应来自BACnetClient(如BAS系统)的访问,从实时输入缓冲中获取数据更新BACnet对象的数据,并提交给访问者。

7)BACnet模块接收到来自BACnetClient(如BAS系统)的数据输出请求时候,将发送消息给Modbus模块,要求执行数据输出指令。

8)Modbus模块从输出缓冲中取数据,定时刷新输出,或者接收到数据输出指令时候立即执行。

6.2.1BACnet接口模块

BACnet接口模块,在Cimetrics公司的BACnet协议栈基础上进行开发,该协议栈支持windows和Linux操作系统,支持实现为BACnet网关,BACnetServer设备,或者BACnetClient设备。

本应用中,可实现为一个标准的BACnetServer设备,根据配置的映射关系,将modbus设备的数据点映射为该BACnet设备的一个数据对象。

1)首先,调用BACnet协议栈API的初始化配置函数,申请BACnet资源,设置BACnet节点地址相关信息,最大对象个数等。

2)然后读取配置文件,生成BACnet对象列表,并且初始化数据值,数据单位,对象状态等。

3)调用协议栈API,初始化读写属性的回调函数,在回调函数里面可以截获BAS系统对BACnet对象属性的读写访问,从而执行必要的数据更新操作和执行实际的数据输出指令。

在读属性回调函数中,从实时输入缓冲中获取数据,更新BACnet对象当前值,并用当前值响应读请求;

在写属性回调函数中,分析写属性,向Modbus模块发送执行数据输出的指令。

4)调用协议栈API函数,启动协议栈运行主线程程序。

5)如果系统退出,则调用协议栈API,释放协议栈分配的BACnet资源

MTB协议转换器按照BACnet协议一致性类别4进行设计实现:

一致性类别4的要求

ServiceType

Execute/Initiate

Readproperty

Execute

Readpropertymultiple

Writeproperty

Writepropertymultiple

Whohas

Ihave

Initiate

Whois

Iam

如表,实现以下服务功能:

1)读对象单个属性服务

2)读对象多个属性服务

3)写对象单个属性服务

4)写对象多个属性服务

5)Who-has报文响应服务

6)Who-is报文响应服务

7)定时广播i-have报文服务

8)定时广播i-am报文服务

BACnet模块支持的BACnet标准对象实例如下:

AI:

模拟量输入AnalogInput,

AO:

模拟量输出AnalogOutput,

AV:

模拟变量AnalogValue,用于设定点SetPoint,中间变量等,

DI(BI):

数字量输入DigitalInput(二进制输入BinaryInput),

DO(BO):

数字量输出DigitalOutput(二进制输出BinaryOutput),

DV(BV):

数字变量DigitalValue(二进制变量BinaryValue),用于表示设备的启停命令等,

MSI:

多状态输入对象

MSO:

多态输出对象

MSV:

多状态值对象数

Device:

设备,用于描述MTB协议转换器及MODBUS从机设备相关信息。

MTB协议转换器实现BACnet对象列表如下:

对象名称

别名

最大数量

设备对象

DEVICE

1

二进制输入对象

BinaryInput

300

二进制输出对象

BinaryOutput

100

模拟量输入对象

AnalogInput

模拟量输出对象

AnalogOutput

二进制值对象

BinaryValue

模拟值对象类型

AnalogValue

MutileStatsInput

MutileStatsOutput

多状态值对象

MutileStatsValue

6.2.2Modbus接口模块

控制器提供标准的ModbusRTU接口,以满足低成本、快速的连接需求。

Modbus协议是应用于电子控制器上的一种通用语言。

通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。

它已经成为一通用工业标准。

有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。

它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。

它制定了消息域格局和内容的公共格式。

地址码

功能码

数据区

CRC高字节

CRC低字节

1字节

N字节

在MTB协议转换器的Modbus接口模块中,主要实现以下功能码操作。

FunctionCodes

Readcoilstatus

Readinputstatus

Readholdingregisters

Readinputregisters

Presetsingleregister

Presetmultipleregister

Presetsinglecoils

1)Modbus模块读取配置文件,生成modbus设备列表,包含各种通讯配置,数据点配置信息

2)启动485总线通信线程,执行轮询和指令解析逻辑

3)Modbus模块根据配置的设备地址,波特率,数据点位信息,轮询间隔,在485总线上面实时采集数据,放入数据缓冲区;

4)Modbus模块定时刷新输出,或者接收数据输出指令,将数据通过485总线写入modbus设备中。

6.2.3CGI模块

CGI模块的功能是通过嵌入到Web服务器中的CGI进程,接收CGI参数请求对设备管理层的数据用XML报文进行封装,回传到外部请求组件。

功能包括:

⏹接收系统命令、系统配置的读取和设置。

⏹设备层接口的数据的XML封装,提供给Web页面。

⏹使用ApacheWeb服务器,提供页面服务

⏹使用CGI库,提供对控制器内配置文件进行读写功能,已经其它配置。

CGI分为以下部分:

Ini文件访问模块:

提供对ini格式配置文件的读写操作函数

XML文件生成模块:

提供将数据信息组织成XML格式的函数

CGIC库函数:

实现CGI程序的基本框架库函数。

6.2.4Web模块

采用AJAX技术,快速稳定的实现设备监控页面的刷新功能。

在EXTJS和jQuery的基础上进行开发。

支持的浏览器类型为:

●InternetExplorer6+

●FireFox1.5+(PC,Mac)

主要功能模块划分为:

●系统设置

⏹安全信息

⏹网络接口

⏹BACnet通讯设置

⏹Modbus通讯设置

●辅助工具

⏹重新启动

⏹软件升级

⏹帮助

其中重点描述DataObjects菜单、ModbusRTUData菜单、ModbusRTUSetup菜单

A、DataObjects菜单:

浏览映射后的BACnet数据点列表

Analog:

包括InputObjects、OutputObjects、ValueObjects

Binany:

包括InputObjects、OutputObjects、ValueObjects

MutileStats:

其中AI对象数据点浏览页面参考设计:

主要浏览参数如下:

Object#:

BACnet对象ID

ObjectName:

BACnet对象名称

PresentValue:

当前值

B、ModbusRTUData:

用于浏览当前Modbus读写数据点映射表

RTURegisters参考设计

C、ModbusRTUDataSetup:

用于映射Modbus数据点到BACnet数据对象

包括选项如下:

LocalDevice、RTUReadMap、RTUWriteMap

LocalDevice:

配置对modbus从设备的访问所需的通讯参数

通讯波特率:

9600,19200,38400等

奇偶校验:

无校验,奇校验,偶校验

轮询周期:

定义总线的轮询周期

通讯超时:

定义与每个设备进行通讯的超时等待时间

FC5/6insteadof15/16:

是否使用modbus5/6号功能替代使用15/16号功能对设备进行读写访问。

RTUReadMap:

建立modbus可读数据点到BACnet数据点的读映射

RTUWriteMap:

建立modbus可写数据点到BACnet数据点的写映射

RemoteType

Modbus数据点类型

如线圈,开关量,寄存器

RemoteRegisterFormat

数据点数据格式

整数,浮点数,位变量等

RemoteUnit#

Modbus设备地址

Swapped

是否交换浮点数高低寄存器数据

Scale

模拟量的度量变换参数,

为0或1表示不变换

转换值=原始寄存器值*度量变换参数

比如原始寄存器值为1000,度量变换参数为0.01,则实际转换值为10.00

LocalObject#

BACnet对象编号

如AIx,BIx等

Name

BACnet对象名

6.2.6配置文件设计

配置文件是控制器的核心数据结构之一,完成控制器地址,通讯参数配置,以及modbus设备数据点和BACnet对象点之间的映射关系。

采用Linux下常用的(section,key,value)结构形式的配置文件,可读性强,且可以手工编辑,参考设计配置文件内容和格式如下:

//Config.ini

[common]//普通设置

Ip=//IP地址

Netmask=//子网掩码

Gateway=//网关地址

Baudrate=//波特率

Parity=//校验位,none,odd,even

Poll_period=//轮询周期,秒为单位

Timeout=//modbus通讯等待超时,秒为单位

bacnet_device_instance=//BACnet设备编号

bacnet_port=//BACnet端口号,默认0xBAC0

Bacnet_device_description=//BACnet设备描述

Username=//用户名

Userpassword=//用户密码

[rtu_read_map_xx]//第XX个RTUREADMAP

Remote-type=//数据点类型,0-4:

none,coiloutput,discreteinput,

//inputregister,holdingregister

Format=//数据格式integer,unsigned,double,float,bit

unitNo=//数据点所在modbus设备地址

RegisterNo=//数据点寄存器编号

Swapped=//是否交换double,float高低寄存器值

Scale=//度量变换参数

objected=//数据点映射对应的BACnet对象ID

objectName=//数据点映射对应的BACnet对象名称

[rtu_write_map_xx]//第XX个RTUWRITEMAP

//与RTUREADMAP相同

七、技术参数

7.1MTB协议转换器主模块技术参数

功能:

规格

供电电源

DC24V

处理器

32bitCPU处理器,主频200MHz

程序存储

64MNandFlash

数据存储

64MSDRAM

以太网通信

2路10M-100M自适应Ethernet,标准RJ45接口

支持协议

BACnetIP,TCP/IP,Http等

RS-485总线通信

总线数量

1路RS485总线通信,支持8个modbusslaver,

485通信速率

支持9600bps、19200bps、38400bps等常用波特率

通信线缆

采用12-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1