CN111510362A - 一种基于ModBus数据服务功能的通信方法及系统 - Google Patents
一种基于ModBus数据服务功能的通信方法及系统 Download PDFInfo
- Publication number
- CN111510362A CN111510362A CN202010328611.4A CN202010328611A CN111510362A CN 111510362 A CN111510362 A CN 111510362A CN 202010328611 A CN202010328611 A CN 202010328611A CN 111510362 A CN111510362 A CN 111510362A
- Authority
- CN
- China
- Prior art keywords
- server
- client
- connection
- data
- modbus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40228—Modbus
Abstract
本发明公开了一种基于ModBus数据服务功能的通信方法及系统,应用于工业自动化控制技术领域;该方法包括:客户端发送连接请求,对ModBus数据服务器分配地址空间,同时创建一个异步监听套接字函数和一个无效客户套接字函数;开启ModBus服务器,新建一个线程;客户端通过ModBus数据服务器与服务端进行数据交换和处理;客户端发送的连接请求通过所述ModBus服务器与所述服务端连接进行通信。数据传输是安全的,不会对GUS控制系统造成额外的影响,运行稳定,数据响应快速;对GUS的系统资源开销合理,不存在过多的资源浪费;在项目开发中,将开发任务降低到只负责业务逻辑的处理,提升了开发效率。
Description
技术领域
本发明属于工业自动化控制技术领域,具体涉及一种基于ModBus数据服务功能的通信方法及系统。
背景技术
由于计算技术的进步,在与仅几年前的基本类似的商务相比,当今的商务能够更有效地运行。例如,网络使得公司的职员能够通过邮件即时地通信、快速地将数据文件转移给不同职员、处理数据文件、共享与项目有关的数据以减少工作成果中的重复等。此外,技术的进步使得工厂应用变得部分或完全自动化。例如,曾经需要工作者亲身接近重型机械和其它各种危险环境的操作如今可在距其安全的距离处完成。
随着工业信息化的发展,机械手常需要与工厂MES(Manufacturing ExecutionSystem,制造执行系统以下简称MES)系统对接,为MES提供信息服务。而机械手除了使用IO信号来获取外部信息,利用网络通信获取信息也是常见且可靠方式。在机械手与MES的交互中,ModBus协议作为工业信息交互的重要协议被广泛的使用。在MES与机械手运动控制系统通信中,运动控制系统常常作为服务端,为MES提供例如当前产量、当前运动状态、报警信息、轴运动速度等各种数据信息。Modbus服务端对于MES的连接,要提供数据读取、写入的交互功能。在运动控制系统中,为了避免影响运动控制的工作线程,需要将ModBus数据服务放在单独的线程内通信,而服务器往往是针对多个客户端开发的,多个客户端对于资源有限的嵌入式系统来将,无疑是比较耗费资源的做法。
因此,如何提供一种通信方法及系统,限制服务端的资源使用,节省运动控制器内部资源消耗,并为ModBus数据写入、读出提供多线程环境下的安全访问是本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种基于ModBus数据服务功能的通信方法及系统。
为了实现上述目的,本发明采用如下技术方案:
一种基于ModBus数据服务功能的通信方法,所述方法包括:
S1:客户端发送连接请求,对ModBus数据服务器分配地址空间(创建一个异步监听套接字函数和一个无效客户套接字函数);
S2:开启ModBus服务器,新建一个线程;
S3:客户端通过ModBus数据服务器与服务端进行数据交换和处理。
优选的,所述步骤S2中,采用一个以退出线程标识为条件的while循环处理线程中所有监听和通信。
优选的,所述以退出线程标识为条件的while循环包括以下步骤:
W1:while结束条件判断,若满足退出条件,则结束通信,退出线程;若不满足退出条件,则进入步骤W2;
W2:退出事件判断,若满足退出条件,则结束通信,退出线程;若不满足退出条件,则进入步骤W3;
W3:客户套接字有效性判断,若客户套接字有效,则进入步骤W4;若客户套接字无效,则进入步骤W31;
W31:获取客户端连接,进行客户套接字设置,然后进入步骤W4;
W4:等待时间相应,判定时间相应时间是否超过设定阈值,若未超时,事件响应进入W5;若连接超时,事件无响应,则进入W6;
W5:IO事件枚举,当事件为FD_READ时,即代表服务端有可读事件发生,客户套接字开始接收数据并交给协议层,协议层获取数据后,开始解析协议,操作内存数据或者返回数据状态至服务端,服务端将返回的数据再次发送给客户端,进入W1进行推出条件判断;当事件为FD_CLOSE时,即代表服务端无可读事件发生,进入步骤W7;
W6:确认连接状态,若连接未关闭,则连接有效,发送心跳包至W1,再次确认连接响应;若连接关闭,则连接失效,进入步骤W7;
W7:重置客户套接字,进入监听套字函数,继续等待客户端的连接请求,进入步骤W1,再次确认连接响应。
优选的,所述步骤W6中,连接状态确认有三种方式,WASEventselect 的FD_CLOSE事件响应确认方式、select事件模型确认方式和心跳包的计次响应确认方式。
优选的,所述步骤S1中所述连接请求包括:长连接和短连接,所述长连接为一旦连接建立,需保持稳定的连接状态,所述短连接为每一次通信完成,则结束连接,下次请求连接时再次建立连接。
一种基于ModBus数据服务功能的通信系统,包括客户端、服务端和 ModBus服务器;
所述客户端发送的连接请求通过所述ModBus服务器与所述服务端连接进行通信;
所述客户端负责发送连接请求、控制服务端操作、处理服务端返回数据;
所述ModBus服务器根据连接请求,新建一个线程,实现所述客户端和所述服务端通信,其中,所述线程的所有监听和通信处理位于一个以退出线程标识为条件的while循环中;
所述服务端接收所述客户端发送的控制信息,按照控制信息进行相关操作,同时将所述服务端相关操作信息返回到所述客户端。
优选的,所述ModBus服务器的协议层与通信数据操作结合,将网络层与协议层和数据操作分离,可使所述客户端直接操作数据。
经由上述的技术方案可知,与现有技术相比,本发明提供了一种基于 ModBus数据服务功能的通信方法及系统,ModBus服务在单独的线程内,数据传输是安全的,不会对GUS控制系统造成额外的影响,运行稳定,数据响应快速;对GUS的系统资源开销合理,不存在过多的资源浪费;在项目开发中,将开发任务降低到只负责业务逻辑的处理,提升了开发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明ModBus服务器通信流程图;
图2为本发明通信系统结构示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
参见附图1所示,一种基于ModBus数据服务功能的通信方法,所述方法包括:
S1:客户端发送连接请求,对ModBus数据服务器分配地址空间(创建一个异步监听套接字函数和一个无效客户套接字函数);
S2:开启ModBus服务器,新建一个线程;
S3:客户端通过ModBus数据服务器与服务端进行数据交换和处理。
在一个具体实施例中,步骤S2中,采用一个以退出线程标识为条件的 while循环处理线程中所有监听和通信。
在一个具体实施例中,以退出线程标识为条件的while循环包括以下步骤:
W1:while结束条件判断,若满足退出条件,则结束通信,退出线程;若不满足退出条件,则进入步骤W2;
W2:退出事件判断,若满足退出条件,则结束通信,退出线程;若不满足退出条件,则进入步骤W3;
W3:客户套接字有效性判断,若客户套接字有效,则进入步骤W4;若客户套接字无效,则进入步骤W31;
W31:获取客户端连接,进行客户套接字设置,然后进入步骤W4;
W4:等待时间相应,判定时间相应时间是否超过设定阈值,若未超时,事件响应进入W5;若连接超时,事件无响应,则进入W6;
W5:IO事件枚举,当事件为FD_READ时,即代表服务端有可读事件发生,客户套接字开始接收数据并交给协议层,协议层获取数据后,开始解析协议,操作内存数据或者返回数据状态至服务端,服务端将返回的数据再次发送给客户端,进入W1进行推出条件判断;当事件为FD_CLOSE时,即代表服务端无可读事件发生,进入步骤W7;
W6:确认连接状态,若连接未关闭,则连接有效,发送心跳包至W1,再次确认连接响应;若连接关闭,则连接失效,进入步骤W7;
W7:重置客户套接字,进入监听套字函数,继续等待客户端的连接请求,进入步骤W1,再次确认连接响应。
在一个具体实施例中,步骤W6中,连接状态确认有三种方式, WASEventselect的FD_CLOSE事件响应确认方式、select事件模型确认方式和心跳包的计次响应确认方式。
在一个具体实施例中,步骤S1中所述连接请求包括:长连接和短连接,所述长连接为一旦连接建立,需保持稳定的连接状态,所述短连接为每一次通信完成,则结束连接,下次请求连接时再次建立连接。
实施例2
参见图2所示,是本发明提供的一种基于ModBus数据服务功能的通信系统,包括客户端、服务端和ModBus服务器;
客户端发送的连接请求通过所述ModBus服务器与所述服务端连接进行通信;
客户端负责发送连接请求、控制服务端操作、处理服务端返回数据;
ModBus服务器根据连接请求,新建一个线程,实现所述客户端和服务端通信,其中,线程的所有监听和通信处理位于一个以退出线程标识为条件的 while循环中;
服务端接收所述客户端发送的控制信息,按照控制信息进行相关操作,同时将所述服务端相关操作信息返回到客户端。
对于服务端,为了使上层应用直接操控数据,协议层提供了对数据的直接操作接口;同时,对数据的操作使用了Windows临界区对象 (CRITICAL_SECTION)确保多线程下的安全。服务端提需要供协议层的数据解析,协议数据生成,内存数据操作,还要提供应用层的通讯发送、接收和一些连接方面的操作。
在一个具体实施例中,ModBus服务器的协议层与通信数据操作结合,将网络层与协议层和数据操作分离,可使客户端直接操作数据。
对所公开的实施例的上述说明,按照递进的方式进行,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种基于ModBus数据服务功能的通信方法,其特征在于,所述方法包括:
S1:客户端发送连接请求,对ModBus数据服务器分配地址空间,同时创建一个异步监听套接字函数和一个无效客户套接字函数;
S2:开启ModBus服务器,新建一个线程;
S3:客户端通过ModBus数据服务器与服务端进行数据交换和处理。
2.根据权利要求1所述的一种基于ModBus数据服务功能的通信方法,其特征在于,所述步骤S2中,采用一个以退出线程标识为条件的while循环处理线程中所有监听和通信。
3.根据权利要求2所述的一种基于ModBus数据服务功能的通信方法,其特征在于,所述以退出线程标识为条件的while循环包括以下步骤:
W1:while结束条件判断,若满足退出条件,则结束通信,退出线程;若不满足退出条件,则进入步骤W2;
W2:退出事件判断,若满足退出条件,则结束通信,退出线程;若不满足退出条件,则进入步骤W3;
W3:客户套接字有效性判断,若客户套接字有效,则进入步骤W4;若客户套接字无效,则进入步骤W31;
W31:获取客户端连接,进行客户套接字设置,然后进入步骤W4;
W4:等待时间相应,判定时间相应时间是否超过设定阈值,若未超时,事件响应进入W5;若连接超时,事件无响应,则进入W6;
W5:IO事件枚举,当事件为FD_READ时,即代表服务端有可读事件发生,客户套接字开始接收数据并交给协议层,协议层获取数据后,开始解析协议,操作内存数据或者返回数据状态至服务端,服务端将返回的数据再次发送给客户端,进入W1进行推出条件判断;当事件为FD_CLOSE时,即代表服务端无可读事件发生,进入步骤W7;
W6:确认连接状态,若连接未关闭,则连接有效,发送心跳包至W1,再次确认连接响应;若连接关闭,则连接失效,进入步骤W7;
W7:重置客户套接字,进入监听套字函数,继续等待客户端的连接请求,进入步骤W1,再次确认连接响应。
4.根据权利要求3所述的一种基于ModBus数据服务功能的通信方法,其特征在于,所述步骤W6中,连接状态确认有三种方式,WASEventselect的FD_CLOSE事件响应确认方式、select事件模型确认方式和心跳包的计次响应确认方式。
5.根据权利要求1所述的一种基于ModBus数据服务功能的通信方法,其特征在于,所述步骤S1中所述连接请求包括:长连接和短连接,所述长连接为一旦连接建立,需保持稳定的连接状态,所述短连接为每一次通信完成,则结束连接,下次请求连接时再次建立连接。
6.一种基于ModBus数据服务功能的通信系统,其特征在于,包括客户端、服务端和ModBus服务器;
所述客户端发送的连接请求通过所述ModBus服务器与所述服务端连接进行通信;
所述客户端负责发送连接请求、控制服务端操作、处理服务端返回数据;
所述ModBus服务器根据连接请求,新建一个线程,实现所述客户端和所述服务端通信,其中,所述线程的所有监听和通信处理位于一个以退出线程标识为条件的while循环中;
所述服务端接收所述客户端发送的控制信息,按照控制信息进行相关操作,同时将所述服务端相关操作信息返回到所述客户端。
7.根据权利要求6所述的一种基于ModBus数据服务功能的通信系统,其特征在于,所述ModBus服务器的协议层与通信数据操作结合,将网络层与协议层和数据操作分离,可使所述客户端直接操作数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010328611.4A CN111510362B (zh) | 2020-04-23 | 2020-04-23 | 一种基于ModBus数据服务功能的通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010328611.4A CN111510362B (zh) | 2020-04-23 | 2020-04-23 | 一种基于ModBus数据服务功能的通信方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111510362A true CN111510362A (zh) | 2020-08-07 |
CN111510362B CN111510362B (zh) | 2021-08-24 |
Family
ID=71876324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010328611.4A Active CN111510362B (zh) | 2020-04-23 | 2020-04-23 | 一种基于ModBus数据服务功能的通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111510362B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114079614A (zh) * | 2022-01-19 | 2022-02-22 | 浙江中控技术股份有限公司 | 一种嵌入式设备同时作为客户端和服务器的应用方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764155A (en) * | 1996-04-03 | 1998-06-09 | General Electric Company | Dynamic data exchange server |
CN101697252A (zh) * | 2009-11-02 | 2010-04-21 | 中国铁路通信信号上海工程有限公司 | 车辆实时监测系统及方法 |
CN102904868A (zh) * | 2012-06-27 | 2013-01-30 | 中兴通讯股份有限公司 | 一种轨道交通集中告警系统及方法 |
CN103546467A (zh) * | 2013-10-23 | 2014-01-29 | 上海爱控自动化设备有限公司 | 在TCP/IP网络上传输Modbus RTU协议的方法 |
CN105429958A (zh) * | 2015-10-30 | 2016-03-23 | 武汉华茂工业自动化有限公司 | 一种基于Android开发的企业应用平台系统 |
CN106027511A (zh) * | 2016-05-13 | 2016-10-12 | 北京工业大学 | 一种基于Modbus/TCP深度解析的协议隔离方法 |
CN110049095A (zh) * | 2019-03-01 | 2019-07-23 | 湖北三江航天红峰控制有限公司 | 一种激光装备数据上工业云平台的方法 |
-
2020
- 2020-04-23 CN CN202010328611.4A patent/CN111510362B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764155A (en) * | 1996-04-03 | 1998-06-09 | General Electric Company | Dynamic data exchange server |
CN101697252A (zh) * | 2009-11-02 | 2010-04-21 | 中国铁路通信信号上海工程有限公司 | 车辆实时监测系统及方法 |
CN102904868A (zh) * | 2012-06-27 | 2013-01-30 | 中兴通讯股份有限公司 | 一种轨道交通集中告警系统及方法 |
CN103546467A (zh) * | 2013-10-23 | 2014-01-29 | 上海爱控自动化设备有限公司 | 在TCP/IP网络上传输Modbus RTU协议的方法 |
CN105429958A (zh) * | 2015-10-30 | 2016-03-23 | 武汉华茂工业自动化有限公司 | 一种基于Android开发的企业应用平台系统 |
CN106027511A (zh) * | 2016-05-13 | 2016-10-12 | 北京工业大学 | 一种基于Modbus/TCP深度解析的协议隔离方法 |
CN110049095A (zh) * | 2019-03-01 | 2019-07-23 | 湖北三江航天红峰控制有限公司 | 一种激光装备数据上工业云平台的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114079614A (zh) * | 2022-01-19 | 2022-02-22 | 浙江中控技术股份有限公司 | 一种嵌入式设备同时作为客户端和服务器的应用方法 |
CN114079614B (zh) * | 2022-01-19 | 2022-05-17 | 浙江中控技术股份有限公司 | 一种嵌入式设备同时作为客户端和服务器的应用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111510362B (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101464811B (zh) | 多任务监控管理系统 | |
EP2495913B1 (en) | Multi-virtual serial port system and communication method thereof | |
CN107451268B (zh) | 一种面向实时数据库的断网续传的方法 | |
US7602779B2 (en) | Microprocessor, network system and communication method | |
CN113806116A (zh) | 基于Linux系统的协议栈数据传输方法、计算机设备和存储介质 | |
CN107682460B (zh) | 一种分布式存储集群数据通信方法及系统 | |
CN210573263U (zh) | 楼宇系统 | |
CN102388583B (zh) | 一种串口波特率配置方法及相关设备、系统 | |
CN115794313B (zh) | 一种虚拟机调试方法、系统、电子设备及存储介质 | |
CN103888441A (zh) | 一种应用程序与协议栈之间的信息传输方法及处理装置 | |
CN103019856A (zh) | 一种多核处理器的非对称调度方法 | |
CN111510362B (zh) | 一种基于ModBus数据服务功能的通信方法及系统 | |
US5455950A (en) | Universal device for coupling a computer bus to a specific link of a network and operating system therefor | |
CN111209112A (zh) | 一种异常处理方法及装置 | |
CN114584429A (zh) | 工业智能物联网网关 | |
CN113626365A (zh) | 一种基于spi总线的通信方法 | |
CN102200770A (zh) | 一种基于pci的信息交互系统及方法、上位机 | |
CN111953752A (zh) | 物联网平台设备交互控制方法 | |
CN101819524B (zh) | Rfid阅读器的访问方法及其接口驱动设备 | |
CN103353750A (zh) | 一种基于多总线的微波冶金控制系统及方法 | |
CN101256519A (zh) | 异构多核系统及基于该系统的串口控制自动切换方法 | |
CN110442442B (zh) | 核电厂dcs平台工程师站软件维护网络通讯方法 | |
CN102117261A (zh) | 一种芯片内部处理器之间的通信方法 | |
CN110687854B (zh) | 一种pa总线控制器以及一种pa总线控制系统 | |
CN114637676A (zh) | 调试方法、装置、设备、存储介质和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A communication method and system based on Modbus data service function Effective date of registration: 20220211 Granted publication date: 20210824 Pledgee: China Co. truction Bank Corp Yuyao branch Pledgor: NINGBO WELLLIH ROBOT TECHNOLOGY CO.,LTD. Registration number: Y2022330000201 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |