




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一种异种网络Modbus软件网关的实现摘 要:针对Modbus网关大局部产品为硬件实现本钱高,可扩展性差且功能单一的问题,提出了一种在基于软件实现Modbus网关的方法。该方法支持异种网络设备拓扑架构,支持多进程处理进一步进步Modbus协议的吞吐量。同时在嵌入式Linux和Arm硬件平台架构上对该方法的正确性进展了检测验证。关键词:Modbus;软件网关;异种网络;吞吐量中图分类号:TP273 文献标识码:A 文章编号:2095-1302202201-00-040 引 言由于Modbus协议本身支持TCP和RTU两种链路连接方式。对于TCP,其基于以太网为物理连接链路。而对于RTU,一般基于
2、RS 232或者RS 485作为物理链路连接。对于Modbus设备节点的组网,通常会基于同种物理链路,基于TCP方式的组网,可以使用以太网交换机来完成。而对于RTU方式的组网,RS 485通过双绞线直接串接在一起即可。但由于实际应用场景中,通常会结合两种网络的优点。如以太网传输速度快,具有高吞吐率的特点,RS 485具有组网简单,传输间隔 长的特点。通常采用Modbus硬件网关来结合两种网络组成异种网络拓扑构造。但硬件网关具有接口数目固定,本钱高,不便扩展等缺点。本文针对这些实际应用和产品维护期间遇到的问题,设计实现了一种针对异种网络的,设置灵敏,性能可靠,易扩展,低本钱的软件网关实现方法。1
3、 总体架构设计Modbus协议通常用在如油田、车间等有多设备需要进展组网且有复杂工况的环境下。多台上位机可以通过RJ45连接到以太网交换机,其通过1502端口发送标准的TCP数据包到以太网交换机。运行有Modbus网关的Modbus Server连接到以太网交换机,其接收Modbus TCP数据恳求并分析目的地址后将该数据恳求分发到对应的Modbus Server中。数据分发时,组件对应的RS 485数据包并通过485总线传递数据。详细构造如图1所示。图1 Modbus异种网络组网拓扑图一种在实际消费环境中经常会见到的用例是:在油田监控网络中,上位机运行于监控室监控各个油井抽油机的状态。而Mo
4、dbus Server作为安装在每一个油井抽油机上的监控装置用向采集油井状态并向上位机汇报。运行有Modbus网关的Modbus Sever那么可作为井场主监控装置起到一个数据转发的作用。由于油井之间的间隔 长度通常会超过100 m,因此采用485串行物理链路的方式会更便于油井采集器之间的组网。而各个油井设备的数据会聚到了主采集器之后,其过大的数据量对于485串行链路而言负担较重,容易丧失数据。因此主采集器采用以太网物理链路与上位机连接。1.1 网关构造Modbus网关运行于Modbus Server中,可根据配置文件来配置为是否启动网关。启动了网关的Modbus Server本身和其它Mod
5、bus Server设备一样,也可以提供数据采集功能。为了能接收多个上位机的数据恳求,运行了Modbus网关的Modbus Server会启动一个支持多路输入的Socket效劳器用于监听上位机的TCP数据恳求。对于恳求本机地址的数据,将直接返回相关数据。而对于其它Modbus Server地址的数据恳求,将被网关中的数据分发器Dispatcher通过启动一个独立进程的方式分发到Sub-Modbus Server中。为保证数据多个数据恳求之间不会在485总线网络中造成冲突,在数据分发器启动的多个数据处理进程和Sub-Modbus Servers之间,会存在一个总线锁。Modbus网关构造如图2所
6、示。图2 Modbus网关构造1.2 目的地址传递Modbus协议定义了一个与根底通信层无关的简单协议数据单元PDU。特定总线或者网络上的Modbus协议映射可以在应用数据单元ADU上引入一些附加域,如地址域或过失校验域。Modbus通用数据帧如图三所示。图3 Modbus通用数据帧一个ADU最大长度为256 B。对于TCP通信链路,通常其ADU不包含过失校验局部,而会包含一个7 B的Modbus报文头MBAP。MBAP的组成为2 B的事务元标识符,2 B的协议标识符以及2 B的数据包长度和1 B的单元标识符。通常情况下,Modbus网关中在向串行链路设备转发数据时的设备地址就保存在单元标识符
7、中。TCP通信链路下,ADU组成为:TCP MODBUS ADU = 249 B+ MBAP 7 B = 256 B对于串型链路通信来说,其地址域为一个字节长度。而过失校验局部存储的数据通过CRC16算法所得,其数据长度为2 B。因此最大PDU长度为253 B。一个最大长度的ADU组成为:RS 232 / RS 485 ADU = 253 B + 效劳器地址1 B + CRC 2 B = 256 B。1.3 数据包解析Modbus定义了4种具有不同特征的数据模型,分别是:1离散量输入,为只读的单个比特位;2线圈变量,为可读写的单个比特位; 3输入存放器,为只读的2 B;4输出存放器,为可读写的
8、2 B。对于这4种数据,Modbus协议都允许单个选择65 536个数据项,但实际而言,数据的大小规格限制和事务处理的功能码是相关联的。在本实现中,取工业控制领域常用的8个功能码来作为数据网关中处理的数据恳求,如下:0 x01 读线圈0 x02 读输入离散量0 x03 读多个输出存放器0 x04 读多个输入存放器0 x05 写单个线圈0 x06 写单个存放器0 x0F 写多个线圈0 x10写多个存放器以读多个输出存放器为例。读数据时,恳求PDU中需指定输出存放器的起始地址和读取数量。一个读取输出存放器第108到110的3个存放器的数据如表1所示。表1 读输出存放器恳求 响应名称 数值十六进制
9、名称 数值十六进制功能码 03 功能码 03起始地址高 00 数据长度 06起始地址低 6B 存放器值高- 108 02读取存放器个高 00 存放器值低- 108 2B读取存放器个低 03 存放器值高- 109 00存放器值低- 109 00存放器值高- 110 00存放器值低- 110 64在网关中对数据解析时,对于不同的功能码,应根据Modbus协议中的数据格式定义来对数据包进展解析。2 模块功能详细设计2.1 Socket效劳器模块设计软件网关与上位机之间通过TCP进展连接,网关将启动一个socket效劳器监听来自上位机的Modbus客户端的恳求。由于会存在多台上位机,socket效劳器
10、在设计中需考虑可同时承受多个TCP恳求。而对于TCP恳求,在一条链路已经建立以后,来自同一台上位机的再次恳求应不需要再次进展链路的建立。首先对于一个未建立过连接的TCP恳求,需要为该恳求创立必要的工作环境并保存环境。考虑到网关的处理才能,对于允许的最大连接数将通过配置文件进展读取。FD_ZEROrefset;FD_SETserver_socket, refset;fdmax = server_socket;for ; rdset = refset;selectfdmax+1, rdset, NULL, NULL, NULL;for master_socket = 0; master_socke
11、t master_socket+ if FD_ISSETmaster_socket, rdset if master_socket = server_socket /* A client is asking a new connection */memsetclientaddr, 0, sizeofclientaddr;newfd = acceptserver_socket, struct sockaddr *clientaddr, addrlen;if newfd = -1 perror“Server accept error; else FD_SETnewfd, refset;if newfd fdmax fdmax = newfd; /* Keep track of the maximum */ 而对于一个已经建立好的连接,那么需要调用转发函数将其转发到对应的子设备中去。对于目的地址为网关设备本身的,需要根据上位机的恳求,将网关设备本身采集到的数据返回给上位机或者完成对应的写数据操作。在对于网关设备本身的操作中,由于modbus数据通常为由一个独立的进程采集并存放到共享内存中,因此在操作共享内存时,需使用信号量来保证数据的正确性。/*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45460-2025钢丝绳在无轴向载荷条件下钢丝绳径向刚度的测定
- 护理课题项目申报书
- 员工价值观与企业使命的契合计划
- 2025年证券从业资格的章节梳理试题及答案
- 银行客户管理与信息系统整合试题及答案
- 2025年税务合规性审查试题及答案
- 项目管理沟通技巧考试题目及答案
- 项目管理伦理与责任探讨试题及答案
- 微生物疫苗研发问题试题及答案
- 行政管理师证书考试实践能力强化试题及答案
- 爱护环境主题班会课件
- 大班游戏活动案例《快乐沙池》
- 糖尿病饮食指导护理
- DB41T 1633-2018 排油烟设施清洗服务规范
- 连续梁线型控制技术交底
- 林业专业知识考试试题及答案
- 高三英语语法填空专项训练100(附答案)及解析
- T-CPQS C017-2024 鉴赏收藏用潮流玩偶衍生产品 树脂类艺术品
- 网络安全众测服务要求
- 《茶学概论》课件
- 肠癌筛查早发现早治疗
评论
0/150
提交评论