CN112367234B - 模拟数据生成方法、终端设备及计算机可读存储介质 - Google Patents
模拟数据生成方法、终端设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112367234B CN112367234B CN202011167730.2A CN202011167730A CN112367234B CN 112367234 B CN112367234 B CN 112367234B CN 202011167730 A CN202011167730 A CN 202011167730A CN 112367234 B CN112367234 B CN 112367234B
- Authority
- CN
- China
- Prior art keywords
- data
- master station
- template
- simulation data
- address
- 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.)
- Active
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- 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/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种模拟数据生成方法、终端设备及计算机可读存储介质,该方法的步骤包括:获取主站设备对应的协议描述文件,基于协议描述文件确定对应的模板,将协议描述文件导入至模板中,得到对应的模板文件;将模板文件中的初始值进行修改,并基于修改后的模板文件确定对应的模板数据;对模板数据进行整理,得到主站设备对应的主站模拟数据。由此可知,本申请通过将协议描述文件导入对应的模板中,对初始值进行修改,并对模板数据进行整理,得到主站模拟数据,在从站开发或调试已对应的功能时,不需要购买真实的主站设备,直接通过主站模拟数据对从站进行开发或调试,降低对真实的主站设备的依赖性。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种模拟数据生成方法、终端设备及计算机可读存储介质。
背景技术
随着工业自动化技术的发展,为了达到万物互联的目的,满足Modbus协议的工业通讯设备越来越多,然而从站开发商也需要不断的开发各种Modbus从站来与这些主设备通讯。
目前Modbus从站开发的主要流程是,获取真实的Modbus主站设备和Modbus主站协议描述文件,然后从站开发商根据Modbus主站设备和Modbus主站协议描述文件开发从站及其相关的功能。虽然现在大多数Modbus主站设备厂商都会在官网公布对应产品的Modbus主站协议描述文件,但从站开发商若没有真实的Modbus主站设备,将无法开发或调试已完成对应的从站及其相关功能,若购买真实的Modbus主站设备不仅需要一笔费用,而且可能需要高额费用来搭建环境和设备维护费用,即使真实环境已存在,但有些数据的产生却需要在特定的场景触发,使得过于依赖真实的Modbus主站设备。
发明内容
本申请的主要目的在于提供一种模拟数据生成方法、终端设备及计算机可读存储介质,旨在降低对真实的主站设备的依赖性。
为实现上述目的,本申请实施例提供一种模拟数据生成方法,所述模拟数据生成方法包括:
获取主站设备对应的协议描述文件,基于所述协议描述文件确定对应的模板,将所述协议描述文件导入至所述模板中,得到对应的模板文件;
将所述模板文件中的初始值进行修改,并基于修改后的模板文件确定对应的模板数据;
对所述模板数据进行整理,得到所述主站设备对应的主站模拟数据。
可选地,所述对所述模板数据进行整理,得到所述主站设备对应的主站模拟数据的步骤包括:
确定所述模板数据中的第一功能代码,并根据所述第一功能代码确定所述寄存器的存储容量;
确定所述模板数据中的数据存储类型,并根据所述寄存器的存储容量和所述数据存储类型对应的字节数确定寄存器个数;
确定所述模板数据中的设置值和倍率,基于所述设置值和所述倍率确定对应的存储值;
确定所述主站设备对应的第一设备地址,并根据所述第一设备地址、所述第一功能代码、所述寄存器个数、所述起始地址、所述数据存储类型和所述存储值得到所述主站模拟数据。
可选地,所述根据所述第一设备地址、所述第一功能代码、所述寄存器个数、所述起始地址、所述数据存储类型和所述存储值得到所述主站模拟数据的步骤包括:
若所述数据存储类型中存在子数据,则确定所述子数据对应的子数据类型和存储位置;
根据所述第一设备地址、所述第一功能代码、所述起始地址、所述子数据类型和所述寄存器个数创建第一存储模型,并根据所述存储位置将所述第一存储模型中对应位置的数据更新为所述存储值,得到所述主站模拟数据。
可选地,所述根据所述第一设备地址、所述第一功能代码、所述寄存器个数、所述起始地址、所述数据存储类型和所述存储值得到所述主站模拟数据的步骤包括:
若所述数据存储类型中不存在子数据,则将所述存储值进行等比例切割,得到对应数量的保存值;
根据所述第一设备地址、所述第一功能代码、所述起始地址和所述寄存器个数创建第二存储模型,所述数量的保存值依次存入所述第二存储模型的寄存器中,得到所述主站模拟数据。
可选地,所述对所述模板数据进行整理,得到所述主站设备对应的主站模拟数据的步骤之后,还包括:
响应从站设备发送的查询请求,并获取对应的请求数据,若校验到所述请求数据完整,则将所述请求数据进行拆包,得到对应的解析数据;
若所述解析数据中存在所述从站设备对应的第二设备地址,则校验在所述解析数据中是否存在所述从站设备对应的第二功能代码;
若校验到在所述解析数据中存在所述第二功能代码,则获取所述解析数据中寄存器的起始索引地址和长度。
可选地,所述若校验到在所述解析数据中存在所述第二功能代码,则获取所述解析数据中寄存器的起始索引地址和长度的步骤之后,还包括:
基于第一设备地址、第一功能代码、所述第二设备地址和所述第二功能代码在主站模拟数据中确定与所述查询请求对应的目标模拟数据;
基于所述起始索引地址和所述长度在所述目标模拟数据中获取对应的查询数据,并将所述查询数据发送至所述从站设备。
可选地,所述获取主站设备对应的协议描述文件,基于所述协议描述文件确定对应的模板,将所述协议描述文件导入至所述模板中,得到对应的模板文件的步骤包括:
获取所述主站设备对应的协议描述文件,根据所述协议描述文件确定所述主站设备的设备信息,并基于所述设备信息确定对应的模板;
将所述协议描述文件进行拆分,并将拆分后的协议描述文件导入至所述模板中,得到所述主站设备对应的模板文件。
可选地,所述对所述模板数据进行整理,得到所述主站设备对应的主站模拟数据的步骤之后,还包括:
检测所述主站模拟数据中的设置值是否改变;
若检测到所述设置值改变,则基于改变后的设置值计算目标设置值,并基于所述目标设置值更新所述主站模拟数据。
为实现上述目的,本申请实施例提供一种终端设备,所述终端设备包括存储器、处理器和存储在所述存储器上并在所述处理器上运行的模拟数据生成程序,所述模拟数据生成程序被所述处理器执行时实现如上所述的模拟数据生成方法的步骤。
为实现上述目的,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有模拟数据生成程序,所述模拟数据生成程序被处理器执行时实现如上所述的模拟数据生成方法的步骤。
本申请实施例提供的模拟数据生成方法、终端设备及计算机可读存储介质,通过获取主站设备对应的协议描述文件,基于协议描述文件确定对应的模板,将协议描述文件导入至模板中,得到对应的模板文件;将模板文件中的初始值进行修改,并基于修改后的模板文件确定对应的模板数据;对模板数据进行整理,得到主站设备对应的主站模拟数据。由此可知,本申请实施例通过获取主站设备对应的协议描述文件,将协议描述文件导入对应的模板中,然后对初始值进行修改,并对模板数据进行整理,得到主站模拟数据,从站开发商需要开发或调试已完成对应的从站及其相关功能时,不需要购买真实的主站设备以及特定的场景触发,直接通过主站模拟数据对从站进行开发或调试,降低对真实的主站设备的依赖性。
附图说明
图1是本申请实施例方案涉及的硬件运行环境的终端设备结构示意图;
图2是本申请模拟数据生成方法第一实施例的流程示意图;
图3是本申请模拟数据生成方法另一实施例的流程示意图;
图4是本申请模拟数据生成方法另一实施例的流程示意图;
图5是本申请模拟数据生成方法另一实施例的流程示意图;
图6是本申请模拟数据生成装置的功能模块示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请实施例的主要解决方案是:获取主站设备对应的协议描述文件,基于协议描述文件确定对应的模板,将协议描述文件导入至模板中,得到对应的模板文件;将模板文件中的初始值进行修改,并基于修改后的模板文件确定对应的模板数据;对模板数据进行整理,得到主站设备对应的主站模拟数据。由此可知,本申请实施例通过获取主站设备对应的协议描述文件,将协议描述文件导入对应的模板中,然后对初始值进行修改,并对模板数据进行整理,得到主站模拟数据,从站开发商需要开发或调试已完成对应的从站及其相关功能时,不需要购买真实的主站设备以及特定的场景触发,直接通过主站模拟数据对从站进行开发或调试,降低对真实的主站设备的依赖性。
具体地,参照图1,图1为本申请实施例方案涉及的硬件运行环境的终端设备结构示意图。
本申请实施例的终端设备可以为手机、平板电脑等具有数据处理功能的智能移动终端,还可以为具有数据处理功能的固定终端设备、Modbus主站模拟器或服务器等。
如图1所示,该终端设备可以包括:处理器1001,例如CPU(Central ProcessingUnit,中央处理器),存储器1005,用户接口1003,网络接口1004,通信总线1002。通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(board),用户接口1003可选的还可以包括标准的有线接口(如USB(UniversalSerial Bus,通用串行总线)接口)、无线接口(如蓝牙接口)。网络接口1004可以包括标准的有线接口、无线接口(如WI-FI((Wireless-Fidelity))接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。可选地,终端设备还可以包括RF(RadioFrequency,射频)电路,传感器、WiFi模块等。
本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作设备、网络通信模块、用户接口模块以及模拟数据生成程序。其中,操作设备是管理和控制终端设备硬件和软件资源的程序,支持模拟数据生成程序以及其它软件或程序的运行。
在图1所示的终端设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接用户终端,与用户终端进行数据通信;其中,处理器1001可以用于调用存储器1005中存储的模拟数据生成程序,并执行如下操作:
获取主站设备对应的协议描述文件,基于所述协议描述文件确定对应的模板,将所述协议描述文件导入至所述模板中,得到对应的模板文件;
将所述模板文件中的初始值进行修改,并基于修改后的模板文件确定对应的模板数据;
对所述模板数据进行整理,得到所述主站设备对应的主站模拟数据。
进一步地,处理器1001可以调用存储器1005中存储的模拟数据生成程序,还执行以下操作:
确定所述模板数据中的第一功能代码,并根据所述第一功能代码确定所述寄存器的存储容量;
确定所述模板数据中的数据存储类型,并根据所述寄存器的存储容量和所述数据存储类型对应的字节数确定寄存器个数;
确定所述模板数据中的设置值和倍率,基于所述设置值和所述倍率确定对应的存储值;
确定所述主站设备对应的第一设备地址,并根据所述第一设备地址、所述第一功能代码、所述寄存器个数、所述起始地址、所述数据存储类型和所述存储值得到所述主站模拟数据。
进一步地,处理器1001可以调用存储器1005中存储的模拟数据生成程序,还执行以下操作:
若所述数据存储类型中存在子数据,则确定所述子数据对应的子数据类型和存储位置;
根据所述第一设备地址、所述第一功能代码、所述起始地址、所述子数据类型和所述寄存器个数创建第一存储模型,并根据所述存储位置将所述第一存储模型中对应位置的数据更新为所述存储值,得到所述主站模拟数据。
进一步地,处理器1001可以调用存储器1005中存储的模拟数据生成程序,还执行以下操作:
若所述数据存储类型中不存在子数据,则将所述存储值进行等比例切割,得到对应数量的保存值;
根据所述第一设备地址、所述第一功能代码、所述起始地址和所述寄存器个数创建第二存储模型,所述数量的保存值依次存入所述第二存储模型的寄存器中,得到所述主站模拟数据。
进一步地,处理器1001可以调用存储器1005中存储的模拟数据生成程序,还执行以下操作:
响应从站设备发送的查询请求,并获取对应的请求数据,若校验到所述请求数据完整,则将所述请求数据进行拆包,得到对应的解析数据;
若所述解析数据中存在所述从站设备对应的第二设备地址,则校验在所述解析数据中是否存在所述从站设备对应的第二功能代码;
若校验到在所述解析数据中存在所述第二功能代码,则获取所述解析数据中寄存器的起始索引地址和长度。
进一步地,处理器1001可以调用存储器1005中存储的模拟数据生成程序,还执行以下操作:
基于第一设备地址、第一功能代码、所述第二设备地址和所述第二功能代码在主站模拟数据中确定与所述查询请求对应的目标模拟数据;
基于所述起始索引地址和所述长度在所述目标模拟数据中获取对应的查询数据,并将所述查询数据发送至所述从站设备。
进一步地,处理器1001可以调用存储器1005中存储的模拟数据生成程序,还执行以下操作:
获取所述主站设备对应的协议描述文件,根据所述协议描述文件确定所述主站设备的设备信息,并基于所述设备信息确定对应的模板;
将所述协议描述文件进行拆分,并将拆分后的协议描述文件导入至所述模板中,得到所述主站设备对应的模板文件。
本申请实施例通过获取主站设备对应的协议描述文件,基于协议描述文件确定对应的模板,将协议描述文件导入至模板中,得到对应的模板文件;将模板文件中的初始值进行修改,并基于修改后的模板文件确定对应的模板数据;对模板数据进行整理,得到主站设备对应的主站模拟数据。由此可知,本申请实施例通过获取主站设备对应的协议描述文件,将协议描述文件导入对应的模板中,然后对初始值进行修改,并对模板数据进行整理,得到主站模拟数据,从站开发商需要开发或调试已完成对应的从站及其相关功能时,不需要购买真实的主站设备以及特定的场景触发,直接通过主站模拟数据对从站进行开发或调试,降低对真实的主站设备的依赖性。
基于上述的终端设备架构但不限于上述架构,本申请实施例提供了模拟数据生成方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些数据下,可以以不同于此处的顺序完成所示出或描述的步骤。
本申请本实施例方法的执行主体可以是一种模拟数据生成装置,也可以是一种模拟器,本申请实施例以Modbus主站模拟器作为执行主体进行举例。
参照图2,图2为本申请模拟数据生成方法第一实施例的流程示意图。所述模拟数据生成方法包括:
步骤S10,获取主站设备对应的协议描述文件,基于所述协议描述文件确定对应的模板,将所述协议描述文件导入至所述模板中,得到对应的模板文件;
需要说明的是,主站设备包括但不限制于Modbus主站设备和CANopen主站设备,在本实施例中,主站设备以Modbus主站设备进行说明。
Modbus主站模拟器获取Modbus主站设备对应的协议描述文件之前,用户需要通过用户终端在Modbus主站模拟器中定义Modbus模板,可通过excel文件格式将Modbus模板进行存储,用户终端包括但不限制于平板电脑和PC(Personal Computer,个人电脑)。在Modbus模板中,至少包括功能代码、寄存器的起始地址、寄存器的存储容量、数据存储类型、倍率和设置值等关键参数。
其中,功能代码可确定寄存器的存储容量,如功能代码1或2,对应的寄存器可存储1bit(比特)的数据,功能代码3或4,对应的寄存器可存储2Byte(字节),即16bit的数据。寄存器的起始地址即起始寄存器的索引标号。寄存器的存储容量即一个寄存器可存储多少bit数据,如功能代码1和2,寄存器的存储容量为1bit,功能代码3或4时,寄存器的存储容量为16bit。设置值即数据存储类型的存储值或数据存储类型对应位置的值。倍率即存储值与设置值的商值。数据存储类型即设置值的数据类型,如,WORD_AB、WORD_BA、INT_AB和INT_BA等。
Modbus主站模拟器获取Modbus主站设备厂商在其官网中公布对应的Modbus主站设备的协议描述文件,然后根据协议描述文件的类型确定对应的Modbus模板,通过模拟程序将协议描述文件导入对应的Modbus模板中,得到对应的Modbus主站的Modbus模板文件。
需要说明的是,可通过人工方式手动将协议描述文件按预设规则转换为模板文件,其中,预设规则由技术人员自行设定。
进一步地,所述步骤S10包括:
步骤S101,获取所述主站设备对应的协议描述文件,根据所述协议描述文件确定所述主站设备的设备信息,并基于所述设备信息确定对应的模板;
步骤S102,将所述协议描述文件进行拆分,并将拆分后的协议描述文件导入至所述模板中,得到所述主站设备对应的模板文件。
具体地,Modbus主站模拟器获取各个Modbus主站设备对应的协议描述文件,并根据协议描述文件中的描述说明确定各个Modbus主站设备对应的设备信息,根据对应的设备信息确定各个Modbus主站设备对应的Modbus模板,其中,设备信息包括但不限制于设备型号和设备功能,接着,Modbus主站模拟器将各个协议描述文件进行拆分,得到各个Modbus主站设备对应的设备数据,用户根据需求选取设备数据,并将选取的设备数据导入至对应的Modbus模板中,得到各个Modbus主站设备对应的Modbus模板文件。
步骤S20,将所述模板文件中的初始值进行修改,并基于修改后的模板文件确定对应的模板数据。
Modbus主站模拟器确定各个Modbus主站设备对应的Modbus模板文件后,检测是否存在用户终端发送的数据修改指令,若Modbus主站模拟器检测到存在用户终端发送的数据修改指令,Modbus主站模拟器则获取Modbus模板文件中的各个设备数据的初始值,然后根据数据修改指令确定所要修改的设备数据,并确定数据修改指令中的数据修改值,并根据数据修改值将所要修改的设备数据的初始值进行修改,接着,Modbus主站模拟器通过预设规则将修改后的Modbus模板文件生成对应的Modbus主站设备的Modbus模板数据。
步骤S30,对所述模板数据进行整理,得到所述主站设备对应的主站模拟数据。
Modbus主站模拟器确定各个Modbus主站设备对应的Modbus模板数据后,校验各个Modbus模板数据中的功能代码、寄存器的起始地址、寄存器的存储容量、数据存储类型和倍率等关键参数,并将功能代码、寄存器的起始地址、寄存器的存储容量、数据存储类型和倍率等关键参数设定为锁定状态,即功能代码、寄存器的起始地址、寄存器的存储容量、数据存储类型和倍率等关键参数不可编辑修改,将设置值设置为非锁定状态,即设置值可以编辑修改,然后创建各个Modbus模板数据对应的存储模型,并将各个Modbus模板数据保存至对应的存储模型中,得到各个Modbus主站设备对应的Modbus主站模拟数据。
进一步地,所述步骤S30包括:
步骤S301,确定所述模板数据中的第一功能代码,并根据所述第一功能代码确定所述寄存器的存储容量;
步骤S302,确定所述模板数据中的数据存储类型,并根据所述寄存器的存储容量和所述数据存储类型对应的字节数确定寄存器个数;
步骤S303,确定所述模板数据中的设置值和倍率,基于所述设置值和所述倍率确定对应的存储值;
步骤S304,确定所述主站设备对应的第一设备地址,并根据所述第一设备地址、所述第一功能代码、所述寄存器个数、所述起始地址、所述数据存储类型和所述存储值得到所述主站模拟数据。
具体地,Modbus主站模拟器确定模板数据中的功能代码和寄存器对应的起始地址,根据功能代码对应的代码编号确定寄存器的存储容量,然后确定Modbus模板数据中的数据存储类型和倍率,以及确定数据存储类型对应的设置值,将设置值除以倍率,得到对应的商值,即对应的存储值,接着,Modbus主站模拟器确定Modbus主站设备对应的设备地址,根据数据存储类型列表确定数据存储类型对应的字节数,然后将字节数除以存储容量,得到寄存器个数,并根据寄存器个数和起始地址确定各个寄存器的地址,检测在数据存储类型中是否存在子数据,若Modbus主站模拟器检测到在数据存储类型中存在子数据,Modbus主站模拟器则确定子数据对应的子数据类型和存储位置,根据存储位置确定可校验的数据范围,然后根据设备地址、功能代码、起始地址和寄存器个数创建对应的存储模型,并将存储值存储至存储模型对应的存储位置,得到Modbus主站模拟数据。若Modbus主站模拟器检测到在数据存储类型中未存在子数据,Modbus主站模拟器则根据设备地址、功能代码、起始地址、寄存器个数和存储值得到Modbus主站模拟数据。
在本实施例中,比如,设备地址为0x01,功能代码为3,数据存储类型为INT32_ABCD,寄存器的存储容量为2个字节,起始地址为0x0003,设置值为100,倍率为1,其他值为0。Modbus主站模拟器根据设置值100和倍率1,得到存储值为100,INT32_ABCD为4个字节,且没有子数据类型,确定寄存器个数为2,然后将存储值直接转换成对应的保存值为(0,0,0,100),起始地址为0x0003,则两个寄存器分别为0x0003和0x0004,得到Modbus主站模拟数据为{‘0x01’:{‘3’:{‘0x0003’:[0,0],‘0x0004’:[0,100]}}}。
进一步地,所述步骤S30之后还包括:
步骤S40,检测所述主站模拟数据中的设置值是否改变;
步骤S50,若检测到所述设置值改变,则基于改变后的设置值计算目标设置值,并基于所述目标设置值更新所述主站模拟数据。
具体地,Modbus主站模拟器检测是否存在用户终端发送的对Modbus主站模拟数据中的设置值进行修改的修改指令,若Modbus主站模拟器检测到存在修改指令,Modbus主站模拟器则根据修改指令确定对应的修改位置以及修改方式,然后根据修改方式将该修改位置对应的设置值进行重新计算,得到对应的目标设置值,并基于目标设置值更新Modbus主站模拟数据,并将更新后的Modbus主站模拟数据存储至对应的存储位置。
本实施例通过获取主站设备对应的协议描述文件,基于协议描述文件确定对应的模板,将协议描述文件导入至模板中,得到对应的模板文件;将模板文件中的初始值进行修改,并基于修改后的模板文件确定对应的模板数据;对模板数据进行整理,得到主站设备对应的主站模拟数据。本申请实施例通过获取主站设备对应的协议描述文件,将协议描述文件导入对应的模板中,然后对初始值进行修改,并对模板数据进行整理,得到主站模拟数据,从站开发商需要开发或调试已完成对应的从站及其相关功能时,不需要购买真实的主站设备以及特定的场景触发,直接通过主站模拟数据对从站进行开发或调试,降低对真实的主站设备的依赖性。同时,不需要高额费用来搭建环境和设备维护费用,规避了购买、使用和维护真实的主站设备的成本。
参照图3,图3为本申请模拟数据生成方法另一实施例的流程示意图。所述另一实施例是步骤S303的细化,所述步骤S303包括:
步骤S3031,若所述数据存储类型中存在子数据,则确定所述子数据对应的子数据类型和存储位置;
步骤S3032,根据所述第一设备地址、所述第一功能代码、所述起始地址、所述子数据类型和所述寄存器个数创建第一存储模型,并根据所述存储位置将所述第一存储模型中对应位置的数据更新为所述存储值,得到所述主站模拟数据。
具体地,Modbus主站模拟器若检测到在数据存储类型中存在子数据,,则确定子数据对应的字数据类型和存储位置,其中,字数据类型为bit类型或者byte类型,然后根据设备地址、功能代码、起始地址、子数据类型和寄存器个数创建对应的存储模型。Modbus主站模拟器若确定字设备类型为byte类型时,则根据存储位置将存储模型中对应的寄存器对应的位置的值修改为保存值,得到Modbus主站模拟数据。Modbus主站模拟器若确定字设备类型为bit类型时,则由于每一bit只能存储1或0,由此,存储值不小于1时为1,否则为0,即根据存储位置将存储模型中对应的寄存器对应的位置的值修改为0或者1,得到Modbus主站模拟数据。
在本实施例中,比如,设备地址为0x01,功能代码为3,数据存储类型为WORD_AB,寄存器的存储容量为16bit,起始地址为0x0002,设置值为100,倍率为1,字设备类型为bit,存储位置为1。Modbus主站模拟器根据设置值100和倍率1,得到存储值为100,寄存器容量为16bit,数据存储类型WORD_AB为2个字节,即16bit,确定寄存器个数为1,且有子数据,根据设备地址、功能代码、起始地址、子数据类型和寄存器个数创建对应的存储模型为{‘0x01’:{‘3’:{‘0x0002’:[0,0]}}},存储位置为1,存储值为100,Modbus主站模拟数据为{‘0x01’:{‘3’:{‘0x0002’:[0,2]}}}。
再比如,设备地址为0x01,功能代码为3,数据存储类型为WORD_AB,寄存器的存储容量为16bit,起始地址为0x0002,设置值为100,倍率为1,字设备类型为BYTE,存储位置为1。Modbus主站模拟器根据设置值100和倍率1,得到存储值为100,存储容量为16bit,即2个字节,WORD_AB为2个字节,确定寄存器个数为1,且有子数据,根据设备地址、功能代码、起始地址、子数据类型和寄存器个数创建对应的存储模型为{‘0x01’:{‘3’:{‘0x0002’:[0,0]}}},存储位置为1,存储值为100,Modbus主站模拟数据为{‘0x01’:{‘3’:{‘0x0002’:[0,100]}}}。
本实施例若数据存储类型中存在子数据,则确定子数据对应的子数据类型和存储位置;根据第一设备地址、第一功能代码、起始地址和寄存器个数创建对应的第一存储模型,并根据存储位置将第一存储模型中对应位置的数据更新为存储值,得到主站模拟数据。本申请实施例通过设备地址、功能代码、起始地址、寄存器个数、存储位置和保存值,得到主站模拟数据。从站开发商需要开发或调试已完成对应的从站及其相关功能时,不需要购买真实的主站设备以及特定的场景触发,直接通过主站模拟数据对从站进行开发或调试,降低对真实的主站设备的依赖性。同时,不需要高额费用来搭建环境和设备维护费用,规避了购买、使用和维护真实的主站设备的成本,提高工作效率。
参照图4,图4为本申请模拟数据生成方法另一实施例的流程示意图。所述另一实施例是步骤S303的细化,所述步骤S303包括:
步骤S3033,若所述数据存储类型中不存在子数据,则将所述存储值进行等比例切割,得到对应数量的保存值;
步骤S3034,根据所述第一设备地址、所述第一功能代码、所述起始地址和所述寄存器个数创建第二存储模型,所述数量的保存值依次存入所述第二存储模型的寄存器中,得到所述主站模拟数据。
具体地,Modbus主站模拟器若检测到在数据存储类型中未存在子数据类,则将所述存储值进行等比例切割,得到对应数量的保存值,根据设备地址、功能代码、起始地址、寄存器个数和存储值创建存储模型,并将该数量的保存值依次存入存储模型的寄存器中,得到Modbus主站模拟数据。
在本实施例中,比如,设备地址为0x11,功能代码为1,数据存储类型为bit,寄存器的存储容量为1bit,起始地址为0x0001,设置值为3,其他值为0。Modbus主站模拟器根据寄存器的存储容量1bit和数据存储类型bit,确定寄存器个数为1,且数据存储类型bit没有子数据,根据规则设置值大于1时为1,小于1是为0,根据设备地址、功能代码、起始地址、寄存器个数和存储值,得到Modbus主站模拟数据为{‘0x11’:{‘1’:{‘0x0001’:[1]}}}。
再比如,设备地址为0x01,功能代码为3,数据存储类型为WORD_AB,寄存器的存储容量为16bit,起始地址为0x0001,设置值为1,倍率为0.1,其他值为0。Modbus主站模拟器根据根据倍率0.1和设置值1,达到存储值10,寄存器的存储容量为16bit,即2个字节,数据存储类型WORD_AB为2个字节,确定寄存器个数为1,且没有子数据,根据设备地址、功能代码、起始地址、寄存器个数和存储值,得到Modbus主站模拟数据为{‘0x01’:{‘3’:{‘0x0001’:[0,10]}}}。
本实施例实现若数据存储类型中不存在子数据,则将存储值进行等比例切割,得到对应数量的保存值;根据第一设备地址、第一功能代码、起始地址和寄存器个数创建第二存储模型,数量的保存值依次存入第二存储模型的寄存器中,得到主站模拟数据。本申请实施例通过设备地址、功能代码、起始地址、寄存器个数和保存值,得到主站模拟数据。从站开发商需要开发或调试已完成对应的从站及其相关功能时,不需要购买真实的主站设备以及特定的场景触发,直接通过主站模拟数据对从站进行开发或调试,降低对真实的主站设备的依赖性。同时,不需要高额费用来搭建环境和设备维护费用,规避了购买、使用和维护真实的主站设备的成本,提高工作效率。
参照图5,图5为本申请模拟数据生成方法另一实施例的流程示意图。所述步骤S30之后还包括:
步骤S60,响应从站设备发送的查询请求,并获取对应的请求数据,若校验到所述请求数据完整,则将所述请求数据进行拆包,得到对应的解析数据;
步骤S70,若所述解析数据中存在所述从站设备对应的第二设备地址,则校验在所述解析数据中是否存在所述从站设备对应的第二功能代码;
步骤S80,若校验到在所述解析数据中存在所述第二功能代码,则获取所述解析数据中寄存器的起始索引地址和长度;
步骤S90,基于第一设备地址、第一功能代码、所述第二设备地址和所述第二功能代码在主站模拟数据中确定与所述查询请求对应的目标模拟数据;
步骤S100,基于所述起始索引地址和所述长度在所述目标模拟数据中获取对应的查询数据,并将所述查询数据发送至所述从站设备。
具体地,Modbus主站模拟器通过预设通信方式接收Modbus从站设备发送的查询请求,响应查询请求,其中,预设通信方式包括但不限制于串口通信方式和TCP通信方式,并获取查询请求中的请求数据,然后校验请求数据是否完整,若Modbus主站模拟器校验到请求数据完整,Modbus主站模拟器则将请求数据进行拆包,得到请求数据对应的解析数据,接着,Modbus主站模拟器校验解析数据中是否携带有对应的设备地址,若Modbus主站模拟器校验到解析数据中携带有对应的设备地址,Modbus主站模拟器则校验解析数据中是否携带有对应的功能代码,若Modbus主站模拟器校验到解析数据中携带有对应的功能代码,Modbus主站模拟器则获取解析数据中寄存器的起始索引地址和长度,然后查询Modbus主站模拟数据中的设备地址和功能代码,在Modbus主站模拟数据中获取与解析数据中的设备地址和功能代码匹配的目标模拟数据,然后根据解析数据中寄存器的起始索引地址和长度在目标模拟数据中获取对应的查询数据,并将查询数据转化为字节流,发送至Modbus从站设备。如,数据存储类型为bit,请求的数量不足整字节时,自动高位填充0,并将bit数据转化为字节数据,18bit数据转化为3字节数据。
需要说明的是,请求数据校验的过程中,必须保证请求数据中存在设备地址和功能代码。
本实施例通过响应从站设备发送的查询请求,并获取对应的请求数据,若校验到请求数据完整,则将请求数据进行拆包,得到对应的解析数据;若解析数据中存在从站设备对应的第二设备地址,则校验在解析数据中是否存在从站设备对应的第二功能代码;若校验到在解析数据中存在第二功能代码,则获取解析数据中寄存器的起始索引地址和长度;基于第一设备地址、第一功能代码、第二设备地址和第二功能代码在主站模拟数据中确定与查询请求对应的目标模拟数据;基于起始索引地址和长度在目标模拟数据中获取对应的查询数据,并将查询数据发送至从站设备。本实施例在数据查询的过程中,Modbus从站设备不需要再从官网中获取Modbus主站协议描述文件,以及不需要购买真实的主站设备以及特定的场景触发,直接通过向Modbus主站模拟器发送查询请求,即可完成对应的开发和调试,提高了工作效率。
本申请还提供一种模拟数据生成装置。参照图6,图6是本申请模拟数据生成装置的功能模块示意图。所述模拟数据生成装置包括:
确定模块10,用于获取主站设备对应的协议描述文件,基于所述协议描述文件确定对应的模板;
导入模块20,用于将所述协议描述文件导入至所述模板中,得到对应的模板文件;
修改模块30,用于将所述模板文件中的初始值进行修改,并基于修改后的模板文件确定对应的模板数据;
整理模块40,用于对所述模板数据进行整理,得到所述主站设备对应的主站模拟数据。
其中,上述模拟数据生成装置中各个模块的功能实现与上述模拟数据生成方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质上存储有模拟数据生成程序,所述模拟数据生成程序被处理器执行时实现如以上任一项实施例所述的模拟数据生成方法的步骤。
本申请计算机可读存储介质的具体实施例与上述模拟数据生成方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的数据下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多数据下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件货物的形式体现出来,该计算机软件货物存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备完成本申请各个实施例所述的方法。
Claims (9)
1.一种模拟数据生成方法,其特征在于,所述模拟数据生成方法包括:
获取主站设备对应的协议描述文件,基于所述协议描述文件确定对应的模板,将所述协议描述文件导入至所述模板中,得到对应的模板文件;
将所述模板文件中的初始值进行修改,并基于修改后的模板文件确定对应的模板数据;
对所述模板数据进行整理,得到所述主站设备对应的主站模拟数据;
其中,所述对所述模板数据进行整理,得到所述主站设备对应的主站模拟数据的步骤包括:
确定所述模板数据中的第一功能代码,并根据所述第一功能代码确定寄存器的存储容量;
确定所述模板数据中的数据存储类型,并根据所述寄存器的存储容量和所述数据存储类型对应的字节数确定寄存器个数;
确定所述模板数据中的设置值和倍率,基于所述设置值和所述倍率确定对应的存储值,并确定所述模板数据中的所述寄存器的起始地址;
确定所述主站设备对应的第一设备地址,并根据所述第一设备地址、所述第一功能代码、所述寄存器个数、所述起始地址、所述数据存储类型和所述存储值得到所述主站模拟数据。
2.如权利要求1所述的模拟数据生成方法,其特征在于,所述根据所述第一设备地址、所述第一功能代码、所述寄存器个数、所述起始地址、所述数据存储类型和所述存储值得到所述主站模拟数据的步骤包括:
若所述数据存储类型中存在子数据,则确定所述子数据对应的子数据类型和存储位置;
根据所述第一设备地址、所述第一功能代码、所述起始地址、所述子数据类型和所述寄存器个数创建第一存储模型,并根据所述存储位置将所述第一存储模型中对应位置的数据更新为所述存储值,得到所述主站模拟数据。
3.如权利要求1所述的模拟数据生成方法,其特征在于,所述根据所述第一设备地址、所述第一功能代码、所述寄存器个数、所述起始地址、所述数据存储类型和所述存储值得到所述主站模拟数据的步骤包括:
若所述数据存储类型中不存在子数据,则将所述存储值进行等比例切割,得到对应数量的保存值;
根据所述第一设备地址、所述第一功能代码、所述起始地址和所述寄存器个数创建第二存储模型,所述数量的保存值依次存入所述第二存储模型的寄存器中,得到所述主站模拟数据。
4.如权利要求1所述的模拟数据生成方法,其特征在于,所述对所述模板数据进行整理,得到所述主站设备对应的主站模拟数据的步骤之后,还包括:
响应从站设备发送的查询请求,并获取对应的请求数据,若校验到所述请求数据完整,则将所述请求数据进行拆包,得到对应的解析数据;
若所述解析数据中存在所述从站设备对应的第二设备地址,则校验在所述解析数据中是否存在所述从站设备对应的第二功能代码;
若校验到在所述解析数据中存在所述第二功能代码,则获取所述解析数据中寄存器的起始索引地址和长度。
5.如权利要求4所述的模拟数据生成方法,其特征在于,所述若校验到在所述解析数据中存在所述第二功能代码,则获取所述解析数据中寄存器的起始索引地址和长度的步骤之后,还包括:
基于第一设备地址、第一功能代码、所述第二设备地址和所述第二功能代码在主站模拟数据中确定与所述查询请求对应的目标模拟数据;
基于所述起始索引地址和所述长度在所述目标模拟数据中获取对应的查询数据,并将所述查询数据发送至所述从站设备。
6.如权利要求1所述的模拟数据生成方法,其特征在于,所述获取主站设备对应的协议描述文件,基于所述协议描述文件确定对应的模板,将所述协议描述文件导入至所述模板中,得到对应的模板文件的步骤包括:
获取所述主站设备对应的协议描述文件,根据所述协议描述文件确定所述主站设备的设备信息,并基于所述设备信息确定对应的模板;
将所述协议描述文件进行拆分,并将拆分后的协议描述文件导入至所述模板中,得到所述主站设备对应的模板文件。
7.如权利要求1至6任一项所述的模拟数据生成方法,其特征在于,所述对所述模板数据进行整理,得到所述主站设备对应的主站模拟数据的步骤之后,还包括:
检测所述主站模拟数据中的设置值是否改变;
若检测到所述设置值改变,则基于改变后的设置值计算目标设置值,并基于所述目标设置值更新所述主站模拟数据。
8.一种终端设备,其特征在于,所述终端设备包括存储器、处理器和存储在所述存储器上并在所述处理器上运行的模拟数据生成程序,所述模拟数据生成程序被所述处理器执行时实现如权利要求1至7中任一项所述的模拟数据生成方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有模拟数据生成程序,所述模拟数据生成程序被处理器执行时实现如权利要求1至7中任一项所述的模拟数据生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011167730.2A CN112367234B (zh) | 2020-10-27 | 2020-10-27 | 模拟数据生成方法、终端设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011167730.2A CN112367234B (zh) | 2020-10-27 | 2020-10-27 | 模拟数据生成方法、终端设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112367234A CN112367234A (zh) | 2021-02-12 |
CN112367234B true CN112367234B (zh) | 2022-04-29 |
Family
ID=74511007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011167730.2A Active CN112367234B (zh) | 2020-10-27 | 2020-10-27 | 模拟数据生成方法、终端设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112367234B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114493829B (zh) * | 2021-12-27 | 2024-07-16 | 四川新网银行股份有限公司 | 一种风险策略文档输入自动实现效果模拟的方法及系统 |
CN114513264B (zh) * | 2022-02-16 | 2024-01-30 | 西安市科楠科技开发有限公司 | 遥感卫星的模拟数据生成装置及方法 |
CN115801859B (zh) * | 2022-11-10 | 2024-06-04 | 广东美的智能科技有限公司 | 组态设备之间的连接方法、工业控制装置和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179447A (zh) * | 2006-11-10 | 2008-05-14 | 中兴通讯股份有限公司 | 综合网管数据模拟器系统 |
CN101316183A (zh) * | 2007-05-31 | 2008-12-03 | 海尔集团公司 | 数字家庭网络的人机交互界面生成方法以及系统 |
CN105138448A (zh) * | 2014-06-05 | 2015-12-09 | 北京畅游天下网络技术有限公司 | 一种在前端测试页面的方法和装置 |
CN108063746A (zh) * | 2016-11-08 | 2018-05-22 | 北京国双科技有限公司 | 数据的处理方法、客户端、服务器及系统 |
CN108959094A (zh) * | 2018-07-11 | 2018-12-07 | 苏州因曼吉科技有限公司 | 一种基于数据结构的测试程序的定义和应用方法 |
CN109241205A (zh) * | 2018-11-21 | 2019-01-18 | 南京安讯科技有限责任公司 | 一种可用于大批量生成关系型模拟数据的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685134B (zh) * | 2012-05-15 | 2014-12-17 | 深圳市中电电力技术股份有限公司 | 一种基于可扩展标记语言与动态库综合实现的通信管理机 |
WO2018118335A1 (en) * | 2016-12-19 | 2018-06-28 | Conocophillips Company | Subsurface modeler workflow and tool |
CN106951694B (zh) * | 2017-03-07 | 2020-01-14 | 国网冀北电力有限公司 | 一种电力系统二次设备在线监测系统自适应建模方法 |
-
2020
- 2020-10-27 CN CN202011167730.2A patent/CN112367234B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179447A (zh) * | 2006-11-10 | 2008-05-14 | 中兴通讯股份有限公司 | 综合网管数据模拟器系统 |
CN101316183A (zh) * | 2007-05-31 | 2008-12-03 | 海尔集团公司 | 数字家庭网络的人机交互界面生成方法以及系统 |
CN105138448A (zh) * | 2014-06-05 | 2015-12-09 | 北京畅游天下网络技术有限公司 | 一种在前端测试页面的方法和装置 |
CN108063746A (zh) * | 2016-11-08 | 2018-05-22 | 北京国双科技有限公司 | 数据的处理方法、客户端、服务器及系统 |
CN108959094A (zh) * | 2018-07-11 | 2018-12-07 | 苏州因曼吉科技有限公司 | 一种基于数据结构的测试程序的定义和应用方法 |
CN109241205A (zh) * | 2018-11-21 | 2019-01-18 | 南京安讯科技有限责任公司 | 一种可用于大批量生成关系型模拟数据的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112367234A (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112367234B (zh) | 模拟数据生成方法、终端设备及计算机可读存储介质 | |
CN100507907C (zh) | 用于无线网络中的内容保护的方法和装置 | |
CN109636317B (zh) | 业务控制方法、装置、系统及存储介质 | |
CN110875850B (zh) | 一种固件升级方法、系统、可读存储介质及终端设备 | |
CN111683066A (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
CN110909013A (zh) | 业务清单生成方法、装置、设备及计算机可读存储介质 | |
CN114500267B (zh) | 映射关系配置方法、装置、系统、设备及可读存储介质 | |
CN111369237A (zh) | 一种数据处理方法、装置及计算机存储介质 | |
CN114691105A (zh) | 一种整车soa架构下基于someip协议的数据处理方法和装置 | |
CN113162977B (zh) | 一种信息处理方法及装置、设备、存储介质 | |
CN116049293B (zh) | 基于数据库配置实现解析csv文件方法、装置、设备及介质 | |
CN111797413A (zh) | Bim模型的修改方法、装置、设备及计算机可读存储介质 | |
CN113259437B (zh) | 车辆网络协议的确定方法、装置及存储介质 | |
CN114756183A (zh) | 数据打印方法、装置、设备及存储介质 | |
CN101197959A (zh) | 一种终端的控制方法、系统和设备 | |
CN114024990A (zh) | 物联网平台通用接入方法、网络设备及可读存储介质 | |
CN113342738A (zh) | 控制器算法的修改方法、设备、计算机程序产品及介质 | |
CN110061861B (zh) | 互联网协议配置方法、装置、设备及计算机可读存储介质 | |
CN113177094A (zh) | 时序数据库的数据处理方法、装置、服务器和存储介质 | |
CN113835708A (zh) | 物联通信协议处理方法、电子设备及存储介质 | |
CN114090625A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN108304188B (zh) | 一种数据类型转换方法及终端 | |
CN111078571A (zh) | 模拟响应的测试方法、终端设备及计算机可读存储介质 | |
CN112526972B (zh) | 自标定方法、自标定装置、可读存储介质及电子设备 | |
CN112733210B (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 |