CN109450928A - 一种基于UDP和Modbus TCP的跨云端数据透传方法及系统 - Google Patents
一种基于UDP和Modbus TCP的跨云端数据透传方法及系统 Download PDFInfo
- Publication number
- CN109450928A CN109450928A CN201811519371.5A CN201811519371A CN109450928A CN 109450928 A CN109450928 A CN 109450928A CN 201811519371 A CN201811519371 A CN 201811519371A CN 109450928 A CN109450928 A CN 109450928A
- Authority
- CN
- China
- Prior art keywords
- data
- controller
- data packet
- client
- cloud server
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于UDP和Modbus TCP的跨云端数据透传方法及系统,该方法包括:客户端依据UDP协议封装数据、将封装完成数据发送给云服务器,云服务器拆出数据、依据Modbus TCP协议重新封装,将封装的数据发送给控制器,控制器根据接收的数据控制工业现场设备,控制器依据Modbus TCP协议封装数据,并将封装完成数据发送给云服务器,云服务器拆出数据、依据功能码识别是否为透传数据,若为透传数据,云服务器依据UDP协议重新封装数据,再将封装完成数据发送给对应的客户端;该系统包括客户端、云服务器及控制器;本发明可实现对设备的跨云端远程编程,以彻底解决工程师必须到现场操作设备和编写程序等问题,极大提高了工业现场设备维护、排故及升级等工作的便利性。
Description
技术领域
本发明涉及数据远程传输技术领域,更为具体地,本发明为一种基于UDP和ModbusTCP的跨云端数据透传方法及系统。
背景技术
随着运输行业的发展,设备制造商销售的设备往往遍布全国甚至世界各地,当设备发生故障之后,用户无法判断问题原因,一般需要工程师去现场进行解决,特别在现场设备专用的软件或程序发生故障时,比如,当某现场设备专用的软件需要排故、维护或者升级时,需要如下过程:现场人员打电话保修、工程师被指派出差到现场通过人机交互设备进行编程而解决机器设备问题、在问题解决后返回,这个过程不仅耗费了大量的人力和物力,而且在工程师奔赴现场的过程中用户仍无法正常使用设备,所以上述方式的效率非常低。
为了解决上述问题,现有技术可以通过互联网的方式进行远程调试,比如远程桌面(如QQ软件)方式、搭建专门的远程运维系统等;但对于工业物联网中的机器设备来说,由于现有数据远程传输方法的局限,难以保证编程数据的准确性和完整性,因而现有技术无法完全达到工程师现场编程解决问题的效果,搭建专门的远程运维系统又存在成本过高的问题。
因此,在保证用于解决设备问题的编程数据准确且完整前提下,提供一种针对工业物联网的数据传输方法,成为了本领域技术人员亟待解决的技术问题和始终研究的重点。
发明内容
为解决现有的数据传输方法无法保证编程数据的准确且完整传输等问题,本发明创新地提供了一种基于UDP和Modbus TCP的跨云端数据透传方法及系统,通过将上述两种传输协议结合的方式实现编程数据的跨云端传输,从而将传输的内容由源地址传输到目的地址、不会对业务数据内容做任何改变,进而解决工程师必须到现场才能操作设备和编写程序等问题,极大提高了工业物联网中的机器设备维护、排故以及升级等工作的便利性。
为实现上述技术目的,本发明具体公开了一种基于UDP和Modbus TCP的跨云端数据透传方法,该数据透传方法包括如下步骤;
步骤1,对客户端的登录信息和控制器的状态信息进行验证,并在所有验证均通过后建立客户端与控制器的映射关系;
步骤2,基于UDP的方式,利用所述客户端将编程数据封装为第一数据包以及将所述第一数据包发送至云服务器;
步骤3,通过云服务器对所述第一数据包进行拆解,以得到所述编程数据;基于Modbus TCP的方式,利用所述云服务器将所述编程数据封装为第二数据包以及将所述第二数据包发送至控制器;
步骤4,通过控制器对所述第二数据包进行拆解,从而得到所述编程数据,利用所述控制器执行所述编程数据、依据所述编程数据对工业现场设备进行控制;
步骤5,基于Modbus TCP的方式,利用所述控制器将所述编程数据封装为第三数据包以及将所述第三数据包发送至云服务器;
步骤6,通过云服务器对所述第三数据包进行拆解,以得到所述编程数据;利用云服务器解析编程数据及依据解析得到的功能码判断所述编程数据是否为透传数据:如果是,则执行步骤7;如果否,则结束;
步骤7,基于UDP的方式,利用所述云服务器将所述编程数据封装为第四数据包以及将所述第四数据包发送至客户端。
基于上述的技术方案,本发明提供了一种针对工业物联网的新型数据透传传输模式,保证了编程数据的完整和准确,实现了对设备的跨云端远程编程,从而彻底解决了工程师必须到现场操作设备和编写程序等问题。
进一步地,步骤1中,通过如下的方式对客户端的登录信息和控制器的状态信息进行验证;
步骤11,利用客户端向云服务器发送登录数据包;所述登录数据包中具有如下信息:用户名、密码及控制器ID;
步骤12,令云服务器记录客户端的IP和端口号,通过云服务器对所述登录数据包进行解析,以获得用户名、密码及控制器ID;
步骤13,依据所述控制器ID确定待验证的控制器,通过云服务器对客户端的登录信息和控制器的状态信息进行验证:如果用户名和密码准确且控制器未被占用且控制器没有离线,则依据客户端的IP和端口号向所述客户端返回登录回令,否则依据客户端的IP和端口号向客户端返回错误代码并结束。
进一步地,步骤3中,利用所述云服务器将控制器ID和编程数据一同封装为第二数据包,调用云服务器内部的加密模块对所述第二数据包进行加密,并依据记录的客户端的IP和端口号确定与所述客户端已连接的控制器是否存在且在线:如果是,则将加密后的第二数据包发送至该控制器;如果否,则结束;
步骤4中,通过控制器对加密后的第二数据包进行解密及对解密后的第二数据包进行拆解;
步骤5中,将拆解出的编程数据和控制器ID一同封装为第三数据包,并对第三数据包进行加密,然后将加密后的第三数据包发送至云服务器;
步骤6中,调用云服务器内部的解密模块对加密后的第三数据包进行解密,以得到第三数据包,通过拆解第三数据包的方式得到所述编程数据和控制器ID;
步骤7中,根据所述控制器ID查找正在操作的客户端的IP和端口号,依据所述客户端的IP和端口号将所述第四数据包发送至正在操作的客户端。
进一步地,在客户端与控制器建立映射关系后,该数据透传方法还包括如下步骤;
步骤a1,利用所述客户端以第一预设频率向所述云服务器发送第一心跳数据包;
步骤a2,所述云服务器在收到所述第一心跳数据包时启动内部的第一计时器开始计时,并同时向所述客户端发送第一应答数据包;
步骤a3,判断开始计时后的第一预设时长内云服务器是否收到第一心跳数据包:如果是,则返回步骤a2;如果否,则断开客户端与控制器的映射关系。
进一步地,在客户端与控制器建立映射关系后,该数据透传方法还包括如下步骤;
步骤b1,利用所述控制器以第二预设频率向所述云服务器发送第二心跳数据包;
步骤b2,所述云服务器在收到所述第二心跳数据包时、启动内部的第二计时器开始计时,并同时向所述控制器发送第二应答数据包;
步骤b3,判断开始计时后的第二预设时长内云服务器是否收到第二心跳数据包:如果是,则返回步骤b2;如果否,则断开控制器与客户端的映射关系。
为实现上述的技术目的,本发明还具体公开了一种基于UDP和Modbus TCP的跨云端数据透传系统,该数据透传系统包括客户端、云服务器以及控制器;
所述云服务器,用于对客户端的登录信息和控制器的状态信息进行验证,并用于在所有验证均通过后建立客户端与控制器的映射关系;
所述客户端,用于基于UDP的方式将编程数据封装为第一数据包以及将所述第一数据包发送至云服务器;
所述云服务器,还用于对所述第一数据包进行拆解,以得到所述编程数据,还用于基于Modbus TCP的方式将所述编程数据封装为第二数据包以及将所述第二数据包发送至控制器;
所述控制器,用于对所述第二数据包进行拆解、得到所述编程数据,以及用于执行所述编程数据、依据所述编程数据对工业现场设备进行控制;并用于基于Modbus TCP的方式将所述编程数据封装为第三数据包以及将所述第三数据包发送至云服务器;
所述云服务器,还用于对所述第三数据包进行拆解,以得到所述编程数据,还用于解析编程数据及依据解析得到的功能码判断编程数据是否为透传数据,并用于在编程数据为透传数据时基于UDP的方式将所述编程数据封装为第四数据包以及将所述第四数据包发送至客户端。
基于上述的技术方案,本发明提供了一种针对工业物联网的新型数据透传传输模式,保证了编程数据的完整和准确,实现了对设备的跨云端远程编程,从而彻底解决了工程师必须到现场操作设备和编写程序等问题。
进一步地,所述客户端,还用于向云服务器发送登录数据包;所述登录数据包中具有如下信息:用户名、密码及控制器ID;
所述云服务器,还用于记录客户端的IP和端口号,以及用于对所述登录数据包进行解析,以获得用户名、密码及控制器ID,并用于依据所述控制器ID确定待验证的控制器,以及用于对客户端的登录信息和控制器的状态信息进行验证,并在用户名和密码准确且控制器未被占用且控制器没有离线时依据客户端的IP和端口号向所述客户端返回登录回令。
进一步地,所述云服务器包括加密模块和解密模块;
所述云服务器,还用于将控制器ID和编程数据一同封装为第二数据包以及调用云服务器内部的加密模块对所述第二数据包进行加密,并用于依据记录的客户端的IP和端口号确定与所述客户端已连接的控制器是否存在且在线,以及用于在该控制器存在且在线时将加密后的第二数据包发送至该控制器;
所述控制器,还用于对加密后的第二数据包进行解密及对解密后的第二数据包进行拆解,并用于将拆解出的编程数据和控制器ID一同封装为第三数据包以及对第三数据包进行加密,以及用于将加密后的第三数据包发送至云服务器;
所述云服务器,还用于调用云服务器内部的解密模块对加密后的第三数据包进行解密,以得到第三数据包,并用于通过拆解第三数据包的方式得到所述编程数据和控制器ID,用于根据所述控制器ID查找正在操作的客户端的IP和端口号以及用于依据客户端的IP和端口号将所述第四数据包发送至正在操作的客户端。
进一步地,所述客户端,还用于以第一预设频率向所述云服务器发送第一心跳数据包;
所述云服务器,还用于在收到所述第一心跳数据包时启动内部的第一计时器开始计时以及用于同时向所述客户端发送第一应答数据包,并用于在开始计时后的第一预设时长没有收到第一心跳数据包时断开客户端与控制器的映射关系。
进一步地,所述控制器,还用于以第二预设频率向所述云服务器发送第二心跳数据包;
所述云服务器,还用于在收到所述第二心跳数据包时启动内部的第二计时器开始计时以及同时向所述控制器发送第二应答数据包,并用于在开始计时后的第二预设时长没有收到第二心跳数据包时断开控制器与客户端的映射关系。
本发明的有益效果为:本发明能够实现对设备的跨云端远程编程,以彻底解决工程师必须到现场操作设备和编写程序等问题,极大提高了工业物联网中的机器设备维护、排故及升级等工作的便利性。本发明能够实现将传输的内容由源地址传输到目的地址,无论传输的内容如何、都不会对业务数据内容做任何改变,而且能够消除工程师对自己编制的程序外泄的顾虑;因此,本发明具有使用方便、可靠性强、应用场景广、安全性好、成本低等突出优点。
附图说明
图1为基于UDP和Modbus TCP的跨云端数据透传方法的流程示意图。
图2为客户端→云服务器的登录流程示意图。
图3为客户端→云服务器→控制器的数据透传的流程示意图。
图4为控制器→云服务器→客户端的数据透传的流程示意图。
图5为客户端→云服务器心跳验证的流程示意图。
图6为控制器→云服务器心跳验证的流程示意图。
图7为基于UDP和Modbus TCP的跨云端数据透传系统的整体框架图。
具体实施方式
下面结合说明书附图对本发明的基于UDP和Modbus TCP的跨云端数据透传方法及系统进行详细的解释和说明。
实施例一:
如图1至6所示,本实施例公开了一种基于UDP和Modbus TCP的跨云端数据透传方法,其用于工业物联网中;其中,UDP(User Datagram Protocol),全称是用户数据报协议、是一种无连接的协议,具有资源消耗小、处理速度快等优点;Modbus TCP,其将Modbus协议使用于以太网-TCP/IP顶层,是开放的工业以太网网络报文传输协议,经过Modbus-IDA用户组织和互联网工程任务组(IETF)联合指定为RFC互联网标准;对于待传输的业务数据(本发明中为编程数据),数据传输路径包括两条,即:客户端→云服务器→控制器,以及控制器→云服务器→客户端;具体来说,如图1所示,该数据透传方法具体包括如下步骤。
步骤1,对客户端的登录信息和控制器的状态信息进行验证,并且在所有验证均通过后建立客户端与控制器的映射关系。
本实施例中,如图2所示,步骤1具体通过如下方式对客户端的登录信息和控制器的状态信息进行验证。
步骤11,利用客户端向云服务器发送登录数据包;登录数据包中具有如下信息:用户名、密码及控制器ID。
更具体地,本实施例在具体实施过程中,登录数据包中每个数据帧的格式可包括如下三种。
步骤12,云服务器收到登录数据包以后,令云服务器记录客户端的IP和端口号,通过云服务器对登录数据包进行解析,以获得用户名(或称为登录名)、密码及控制器ID。
步骤13,依据控制器ID确定待验证的控制器,通过云服务器对客户端的登录信息和控制器的状态信息进行验证:如果用户名和密码准确且控制器未被占用且控制器没有离线,则依据客户端的IP和端口号向客户端返回登录回令、建立客户端与控制器的映射关系,否则依据客户端的IP和端口号向客户端返回错误代码并结束。
具体实施时,登录回令和错误代码均为验证返回结果,验证返回结果数据帧的格式如下。
步骤2,基于UDP的方式,利用客户端将编程数据封装为第一数据包以及将第一数据包发送至云服务器,其中,本实施例的编程数据为“ModbusTcp数据包”形式的数据,从而便于对应的控制器识别,以便于对工业现场设备进行有效、精确地控制,其中,第一数据包的数据帧格式如下。
步骤3,通过云服务器对第一数据包进行拆解,从而得到编程数据;基于ModbusTCP的方式,利用云服务器将编程数据封装为第二数据包以及将第二数据包发送至控制器。如图3所示,本实施例步骤3利用云服务器将控制器ID和编程数据一同封装为第二数据包,调用云服务器内部的加密模块对第二数据包进行加密,并且依据记录的客户端的IP和端口号确定与客户端已连接的控制器是否存在且在线:如果是,说明客户端已经连接控制器,则将加密后的第二数据包发送至控制器;如果否,则结束,说明控制器离线、状态不正常。本步骤中,云服务器按照如下的格式封装数据。
14个字节 | n-1个字节 |
控制器ID | ModbusTcp数据包 |
步骤4,通过控制器对第二数据包进行拆解,从而得到编程数据,再利用所述控制器执行所述编程数据及依据编程数据对工业现场设备进行控制;
步骤5,基于Modbus TCP的方式,利用控制器将编程数据封装为第三数据包以及将第三数据包发送至云服务器。
如图4所示,步骤5中,通过控制器对加密后的第二数据包进行解密及对解密后的第二数据包进行拆解,并将拆解出的编程数据和控制器ID一同封装为第三数据包,并对第三数据包进行加密,然后将加密后的第三数据包发送至云服务器;本实施例中,加密前的第三数据包的数据帧格式如下。
14个字节 | n个字节 |
控制器ID | ModbusTcp数据包 |
步骤6,通过云服务器对第三数据包进行拆解,从而得到编程数据;利用云服务器解析编程数据及依据解析得到的功能码判断编程数据是否为透传数据:如果是,则执行步骤7;如果否,则结束。在本实施例中,如果功能码为13,则是透传数据,否则不是;按照如下格式解析编程数据(即ModbusTcp数据包)。
在步骤6中,如图4所示,本实施例调用云服务器内部的解密模块对加密后的第三数据包进行解密,从而得到第三数据包,通过拆解第三数据包的方式得到编程数据和控制器ID。
步骤7,基于UDP的方式,利用云服务器将编程数据封装为第四数据包以及将第四数据包发送至客户端。步骤7中,控制器ID与客户端具有预先设定的对应关系,根据控制器ID查找正在操作的客户端的IP和端口号,依据客户端的IP和端口号将第四数据包发送至正在操作的客户端,客户端对第四数据包进行拆解以及按照拆解得到的编程数据内容进行工作,从而实现对设备的跨云端远程编程,彻底解决了工程师必须到现场操作设备和编写程序等问题。
如图5所示的客户端和云服务器的心跳网络流程图,在客户端与控制器建立映射关系后,该数据透传方法还包括如下步骤。
步骤a1,利用客户端以第一预设频率向云服务器发送第一心跳数据包,第一心跳数据包的数据帧格式如下。
步骤a2,云服务器在收到第一心跳数据包时启动内部的第一计时器开始计时,并同时向客户端发送第一应答数据包,使客户端知晓云服务器已收到第一心跳数据包;第一应答数据包的数据帧格式如下。
步骤a3,判断开始计时后的第一预设时长内云服务器是否收到第一心跳数据包:如果是,则返回步骤a2、在收到第一心跳数据包时重新启动第一计时器;如果否,则断开客户端与控制器的映射关系;本实施例中,1分钟发一次第一心跳数据包,上述第一预设时长为3分钟,第一预设频率为1次/分钟,如果云服务器连续三次未收到第一心跳数据包,则强制关闭连接(用户登录失败、剥夺控制器的使用权)、移除已经建立的客户端与控制器的映射关系。
如图6所示的控制器和云服务器的心跳网络流程图,在客户端与控制器建立映射关系后,该数据透传方法还包括如下步骤。
步骤b1,利用控制器以第二预设频率向云服务器发送第二心跳数据包,第二心跳数据包的数据帧格式如下。
14个字节 | n个字节 |
控制器ID | 任意数据,预留,客户端想让云服务器知道的配置 |
步骤b2,云服务器在收到第二心跳数据包时、启动内部的第二计时器开始计时,并同时向控制器发送第二应答数据包,使控制器知晓云服务器已收到第二心跳数据包;第二应答数据包的数据帧格式如下。
步骤b3,判断开始计时后的第二预设时长内云服务器是否收到第二心跳数据包:如果是,则返回步骤b2、在收到第二心跳数据包时重新启动第二计时器;如果否,则断开控制器与客户端的映射关系;本实施例中,1分钟发一次第二心跳数据包,上述第二预设时长为3分钟,第二预设频率为1次/分钟,如果云服务器连续三次没有收到第二心跳数据包,则强制关闭连接(用户登录失败、剥夺控制器的使用权)、移除已经建立的控制器与客户端的映射关系。
实施例二:
与实施例一基于相同的发明构思,如图7所示,本实施例公开了一种基于UDP和Modbus TCP的跨云端数据透传系统,主要用于工业物联网中,该数据透传系统包括客户端、云服务器及多个控制器,客户端(具体通过客户端软件实现)、云服务器、控制器三方实现了新型数据透传传输模式;其中,客户端为智能终端,可为智能手机、电脑(PC)等智能终端设备,客户端通过UDP(协议)与云服务器通信,以客户端的IP+端口号识别不同的客户端,由云服务器负责记录连接信息,客户端与云服务器之间通过心跳网络方式确认通信状态,云服务器通过Modbus TCP协议与控制器通信连接,以功能码识别是否为透传数据,云服务器与控制器之间通过心跳网络方式确认通信状态。对于待传输的业务数据(编程数据),其数据传输路径包括如下两条。
(1)客户端→云服务器→控制器:客户端软件以UDP协议封装数据,将封装完成数据发送给云服务器,云服务器拆出数据,依据Modbus TCP协议重新封装,将封装的数据发送给控制器,以完成数据在客户端软件->云服务器->控制器的透传过程,进而可以通过控制器按照编程数据内容对工业现场设备进行控制。
(2)控制器→云服务器→客户端:控制器以Modbus TCP协议封装数据,并将封装完成数据发送给云服务器,云服务器拆出数据,依据功能码识别是否为透传数据,若为透传数据,云服务器依据UDP协议重新封装数据,再将封装完成数据发送给对应的客户端,以此完成数据在控制器->云服务器->客户端软件的透传过程,进而完成数据的反馈过程。
通过以上双向透传过程,将传统的、仅具有单机或局域网通信功能的设备实现跨云端扩展,即能够通过在异地使用客户端,跨云端将数据远程中转到指定设备,将对设备的跨云端远程编程成为现实,从而解决工程师必须去现场操作设备和编写程序的问题,便于日后机器设备的维护、排故及升级等;如图7所示,下面对上述的两条数据传输路径进行更为详细地说明。
云服务器,用于对客户端的登录信息和控制器的状态信息进行验证,并用于在所有验证均通过后建立客户端与控制器的映射关系。本实施例中,通过如下方式完成客户端登录。客户端,还用于向云服务器发送登录数据包;登录数据包中具有如下信息:用户名、密码及控制器ID。云服务器,还用于记录客户端的IP和端口号,以及用于对登录数据包进行解析,以获得用户名、密码及控制器ID,并用于依据控制器ID确定待验证的控制器,以及用于对客户端的登录信息和控制器的状态信息进行验证,并在用户名和密码准确且控制器未被占用且控制器没有离线时依据客户端的IP和端口号向客户端返回登录回令。
客户端,用于基于UDP的方式将编程数据封装为第一数据包以及将第一数据包发送至云服务器。
云服务器,还用于对第一数据包进行拆解,以得到编程数据,还用于基于ModbusTCP的方式将编程数据封装为第二数据包以及将第二数据包发送至控制器。云服务器包括加密模块和解密模块,控制器内部也设置有对应的解密模块和加密模块。云服务器,还用于将控制器ID和编程数据一同封装为第二数据包以及调用云服务器内部的加密模块对第二数据包进行加密,并用于依据记录的客户端的IP和端口号确定与客户端已连接的控制器是否存在且在线,以及用于在该控制器存在且在线时将加密后的第二数据包发送至该控制器。
控制器,用于对第二数据包进行拆解、得到编程数据,以及用于执行所述编程数据、依据所述编程数据对工业现场设备进行控制;并用于基于Modbus TCP的方式将编程数据封装为第三数据包以及将第三数据包发送至云服务器。控制器,还用于对加密后的第二数据包进行解密及对解密后的第二数据包进行拆解,并用于将拆解出的编程数据和控制器ID一同封装为第三数据包以及对第三数据包进行加密,以及用于将加密后的第三数据包发送至云服务器。
云服务器,还用于对第三数据包进行拆解,以得到编程数据,还用于解析编程数据及依据解析得到的功能码判断编程数据是否为透传数据,并用于在编程数据为透传数据时基于UDP的方式将编程数据封装为第四数据包以及将第四数据包发送至客户端。云服务器,还用于调用云服务器内部的解密模块对加密后的第三数据包进行解密,以得到第三数据包,并用于通过拆解第三数据包的方式得到编程数据和控制器ID,用于根据控制器ID查找正在操作的客户端的IP和端口号以及用于依据客户端的IP和端口号将第四数据包发送至正在操作的客户端。
作为改进的技术方案,本实施例通过如下方式保证客户端与控制器的可靠映射关系。
客户端,还用于以第一预设频率向云服务器发送第一心跳数据包。
云服务器,还用于在收到第一心跳数据包时启动内部的第一计时器开始计时以及用于同时向客户端发送第一应答数据包,并用于在开始计时后的第一预设时长没有收到第一心跳数据包时断开客户端与控制器的映射关系。
作为改进的技术方案,本实施例通过如下方式保证控制器与客户端的可靠映射关系。
控制器,还用于以第二预设频率向云服务器发送第二心跳数据包。
云服务器,还用于在收到第二心跳数据包时启动内部的第二计时器开始计时以及同时向控制器发送第二应答数据包,并用于在开始计时后的第二预设时长没有收到第二心跳数据包时断开控制器与客户端的映射关系。
在本说明书的描述中,参考术语“本实施例”、“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明实质内容上所作的任何修改、等同替换和简单改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于UDP和Modbus TCP的跨云端数据透传方法,其特征在于:该数据透传方法包括如下步骤;
步骤1,对客户端的登录信息和控制器的状态信息进行验证,并在所有验证均通过后建立客户端与控制器的映射关系;
步骤2,基于UDP的方式,利用所述客户端将编程数据封装为第一数据包以及将所述第一数据包发送至云服务器;
步骤3,通过云服务器对所述第一数据包进行拆解,以得到所述编程数据;基于ModbusTCP的方式,利用所述云服务器将所述编程数据封装为第二数据包以及将所述第二数据包发送至控制器;
步骤4,通过控制器对所述第二数据包进行拆解,从而得到所述编程数据,利用所述控制器执行所述编程数据、依据所述编程数据对工业现场设备进行控制;
步骤5,基于Modbus TCP的方式,利用所述控制器将所述编程数据封装为第三数据包以及将所述第三数据包发送至云服务器;
步骤6,通过云服务器对所述第三数据包进行拆解,以得到所述编程数据;利用云服务器解析编程数据及依据解析得到的功能码判断所述编程数据是否为透传数据:如果是,则执行步骤7;如果否,则结束;
步骤7,基于UDP的方式,利用所述云服务器将所述编程数据封装为第四数据包以及将所述第四数据包发送至客户端。
2.根据权利要求1所述的跨云端数据透传方法,其特征在于:步骤1中,通过如下的方式对客户端的登录信息和控制器的状态信息进行验证;
步骤11,利用客户端向云服务器发送登录数据包;所述登录数据包中具有如下信息:用户名、密码及控制器ID;
步骤12,令云服务器记录客户端的IP和端口号,通过云服务器对所述登录数据包进行解析,以获得用户名、密码及控制器ID;
步骤13,依据所述控制器ID确定待验证的控制器,通过云服务器对客户端的登录信息和控制器的状态信息进行验证:如果用户名和密码准确且控制器未被占用且控制器没有离线,则依据客户端的IP和端口号向所述客户端返回登录回令,否则依据客户端的IP和端口号向客户端返回错误代码并结束。
3.根据权利要求2所述的跨云端数据透传方法,其特征在于:
步骤3中,利用所述云服务器将控制器ID和编程数据一同封装为第二数据包,调用云服务器内部的加密模块对所述第二数据包进行加密,并依据记录的客户端的IP和端口号确定与所述客户端已连接的控制器是否存在且在线:如果是,则将加密后的第二数据包发送至该控制器;如果否,则结束;
步骤4中,通过控制器对加密后的第二数据包进行解密及对解密后的第二数据包进行拆解;
步骤5中,将拆解出的编程数据和控制器ID一同封装为第三数据包,并对第三数据包进行加密,然后将加密后的第三数据包发送至云服务器;
步骤6中,调用云服务器内部的解密模块对加密后的第三数据包进行解密,以得到第三数据包,通过拆解第三数据包的方式得到所述编程数据和控制器ID;
步骤7中,根据所述控制器ID查找正在操作的客户端的IP和端口号,依据所述客户端的IP和端口号将所述第四数据包发送至正在操作的客户端。
4.根据权利要求1至3中任一权利要求所述的跨云端数据透传方法,其特征在于:在客户端与控制器建立映射关系后,该数据透传方法还包括如下步骤;
步骤a1,利用所述客户端以第一预设频率向所述云服务器发送第一心跳数据包;
步骤a2,所述云服务器在收到所述第一心跳数据包时启动内部的第一计时器开始计时,并同时向所述客户端发送第一应答数据包;
步骤a3,判断开始计时后的第一预设时长内云服务器是否收到第一心跳数据包:如果是,则返回步骤a2;如果否,则断开客户端与控制器的映射关系。
5.根据权利要求1至3中任一权利要求所述的跨云端数据透传方法,其特征在于:在客户端与控制器建立映射关系后,该数据透传方法还包括如下步骤;
步骤b1,利用所述控制器以第二预设频率向所述云服务器发送第二心跳数据包;
步骤b2,所述云服务器在收到所述第二心跳数据包时、启动内部的第二计时器开始计时,并同时向所述控制器发送第二应答数据包;
步骤b3,判断开始计时后的第二预设时长内云服务器是否收到第二心跳数据包:如果是,则返回步骤b2;如果否,则断开控制器与客户端的映射关系。
6.一种基于UDP和Modbus TCP的跨云端数据透传系统,其特征在于:该数据透传系统包括客户端、云服务器以及控制器;
所述云服务器,用于对客户端的登录信息和控制器的状态信息进行验证,并用于在所有验证均通过后建立客户端与控制器的映射关系;
所述客户端,用于基于UDP的方式将编程数据封装为第一数据包以及将所述第一数据包发送至云服务器;
所述云服务器,还用于对所述第一数据包进行拆解,以得到所述编程数据,还用于基于Modbus TCP的方式将所述编程数据封装为第二数据包以及将所述第二数据包发送至控制器;
所述控制器,用于对所述第二数据包进行拆解、得到所述编程数据,以及用于执行所述编程数据、依据所述编程数据对工业现场设备进行控制;并用于基于Modbus TCP的方式将所述编程数据封装为第三数据包以及将所述第三数据包发送至云服务器;
所述云服务器,还用于对所述第三数据包进行拆解,以得到所述编程数据,还用于解析编程数据及依据解析得到的功能码判断编程数据是否为透传数据,并用于在编程数据为透传数据时基于UDP的方式将所述编程数据封装为第四数据包以及将所述第四数据包发送至客户端。
7.根据权利要求6所述的跨云端数据透传系统,其特征在于:
所述客户端,还用于向云服务器发送登录数据包;所述登录数据包中具有如下信息:用户名、密码及控制器ID;
所述云服务器,还用于记录客户端的IP和端口号,以及用于对所述登录数据包进行解析,以获得用户名、密码及控制器ID,并用于依据所述控制器ID确定待验证的控制器,以及用于对客户端的登录信息和控制器的状态信息进行验证,并在用户名和密码准确且控制器未被占用且控制器没有离线时依据客户端的IP和端口号向所述客户端返回登录回令。
8.根据权利要求7所述的跨云端数据透传系统,其特征在于:所述云服务器包括加密模块和解密模块;
所述云服务器,还用于将控制器ID和编程数据一同封装为第二数据包以及调用云服务器内部的加密模块对所述第二数据包进行加密,并用于依据记录的客户端的IP和端口号确定与所述客户端已连接的控制器是否存在且在线,以及用于在该控制器存在且在线时将加密后的第二数据包发送至该控制器;
所述控制器,还用于对加密后的第二数据包进行解密及对解密后的第二数据包进行拆解,并用于将拆解出的编程数据和控制器ID一同封装为第三数据包以及对第三数据包进行加密,以及用于将加密后的第三数据包发送至云服务器;
所述云服务器,还用于调用云服务器内部的解密模块对加密后的第三数据包进行解密,以得到第三数据包,并用于通过拆解第三数据包的方式得到所述编程数据和控制器ID,用于根据所述控制器ID查找正在操作的客户端的IP和端口号以及用于依据客户端的IP和端口号将所述第四数据包发送至正在操作的客户端。
9.根据权利要求6至8中任一权利要求所述的跨云端数据透传系统,其特征在于:
所述客户端,还用于以第一预设频率向所述云服务器发送第一心跳数据包;
所述云服务器,还用于在收到所述第一心跳数据包时启动内部的第一计时器开始计时以及用于同时向所述客户端发送第一应答数据包,并用于在开始计时后的第一预设时长没有收到第一心跳数据包时断开客户端与控制器的映射关系。
10.根据权利要求6至8中任一权利要求所述的跨云端数据透传系统,其特征在于:
所述控制器,还用于以第二预设频率向所述云服务器发送第二心跳数据包;
所述云服务器,还用于在收到所述第二心跳数据包时启动内部的第二计时器开始计时以及同时向所述控制器发送第二应答数据包,并用于在开始计时后的第二预设时长没有收到第二心跳数据包时断开控制器与客户端的映射关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811519371.5A CN109450928B (zh) | 2018-12-12 | 2018-12-12 | 一种基于UDP和Modbus TCP的跨云端数据透传方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811519371.5A CN109450928B (zh) | 2018-12-12 | 2018-12-12 | 一种基于UDP和Modbus TCP的跨云端数据透传方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109450928A true CN109450928A (zh) | 2019-03-08 |
CN109450928B CN109450928B (zh) | 2020-10-27 |
Family
ID=65557728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811519371.5A Active CN109450928B (zh) | 2018-12-12 | 2018-12-12 | 一种基于UDP和Modbus TCP的跨云端数据透传方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109450928B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365521A (zh) * | 2019-06-18 | 2019-10-22 | 上海电器科学研究所(集团)有限公司 | 一种远程运维系统中基于云网关的设备远程调试方法 |
CN111935254A (zh) * | 2020-07-29 | 2020-11-13 | 深圳市智创纪元科技有限公司 | 一种远程对等透传调试系统 |
CN114531379A (zh) * | 2021-12-30 | 2022-05-24 | 爱普(福建)科技有限公司 | 一种边缘网关的远程运维方法和系统 |
CN115243318A (zh) * | 2022-07-01 | 2022-10-25 | 华迪计算机集团有限公司 | 一种物联网数据透传方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080235420A1 (en) * | 2007-03-22 | 2008-09-25 | Moxa Technologies Co., Ltd. | Method of detecting master/slave response time-out under continuous packet format communications protocol |
CN102447738A (zh) * | 2011-11-17 | 2012-05-09 | 大唐移动通信设备有限公司 | 一种实现基站远程调试的方法及装置 |
CN105391698A (zh) * | 2015-10-22 | 2016-03-09 | 江苏省电力公司扬州供电公司 | 基于隔离装置实现电力内外网的socket透传方法 |
-
2018
- 2018-12-12 CN CN201811519371.5A patent/CN109450928B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080235420A1 (en) * | 2007-03-22 | 2008-09-25 | Moxa Technologies Co., Ltd. | Method of detecting master/slave response time-out under continuous packet format communications protocol |
CN102447738A (zh) * | 2011-11-17 | 2012-05-09 | 大唐移动通信设备有限公司 | 一种实现基站远程调试的方法及装置 |
CN105391698A (zh) * | 2015-10-22 | 2016-03-09 | 江苏省电力公司扬州供电公司 | 基于隔离装置实现电力内外网的socket透传方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365521A (zh) * | 2019-06-18 | 2019-10-22 | 上海电器科学研究所(集团)有限公司 | 一种远程运维系统中基于云网关的设备远程调试方法 |
CN110365521B (zh) * | 2019-06-18 | 2022-07-29 | 上海电器科学研究所(集团)有限公司 | 一种远程运维系统中基于云网关的设备远程调试方法 |
CN111935254A (zh) * | 2020-07-29 | 2020-11-13 | 深圳市智创纪元科技有限公司 | 一种远程对等透传调试系统 |
CN114531379A (zh) * | 2021-12-30 | 2022-05-24 | 爱普(福建)科技有限公司 | 一种边缘网关的远程运维方法和系统 |
CN115243318A (zh) * | 2022-07-01 | 2022-10-25 | 华迪计算机集团有限公司 | 一种物联网数据透传方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109450928B (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109450928A (zh) | 一种基于UDP和Modbus TCP的跨云端数据透传方法及系统 | |
Ackerman | Industrial Cybersecurity: Efficiently secure critical infrastructure systems | |
US9448914B2 (en) | Method and system for implementing remote debugging | |
Klick et al. | Internet-facing PLCs-a new back orifice | |
CN102096405B (zh) | 基于S-Link和VLAN技术的远程工业网络监控的方法及系统 | |
CN100531073C (zh) | 一种基于状态检测的协议异常检测方法及系统 | |
CN111083161A (zh) | 数据传输的处理方法及装置、物联网设备 | |
EP3157195B1 (en) | Communication protocol testing method, and tested device and testing platform thereof | |
CN105939240B (zh) | 负载均衡方法及装置 | |
CN108429820A (zh) | 一种物联网应用层的通信方法、系统及终端设备 | |
CN112738022B (zh) | 一种针对机器人操作系统ros消息的攻击方法 | |
CN114448654B (zh) | 一种基于区块链的分布式可信审计安全存证方法 | |
CN202331135U (zh) | 基于S-Link和VLAN技术的远程工业网络监控的系统 | |
US20140156867A1 (en) | Offload processing interface | |
CN106027489B (zh) | 互联网联机的方法、装置及系统 | |
CN103595712B (zh) | 一种Web认证方法、装置及系统 | |
Paul et al. | Towards the protection of industrial control systems–conclusions of a vulnerability analysis of profinet IO | |
CN106572103A (zh) | 一种基于sdn网络架构的隐藏端口检测方法 | |
Pfrang et al. | On the Detection of Replay Attacks in Industrial Automation Networks Operated with Profinet IO. | |
Mafioletti et al. | Programmable data planes as the next frontier for networked robotics security: a ROS use case | |
CN105453659B (zh) | 数据收发方法、调制解调器及终端设备 | |
CN113852544B (zh) | 一种基于LoraWan和区块链的安全网关 | |
CN111478821A (zh) | 一种网络性能测试方法和系统 | |
CN107592294A (zh) | 数据上报方法及装置 | |
CN105892299B (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 |