CN111600924A - 一种数据通讯方法 - Google Patents
一种数据通讯方法 Download PDFInfo
- Publication number
- CN111600924A CN111600924A CN202010237751.0A CN202010237751A CN111600924A CN 111600924 A CN111600924 A CN 111600924A CN 202010237751 A CN202010237751 A CN 202010237751A CN 111600924 A CN111600924 A CN 111600924A
- Authority
- CN
- China
- Prior art keywords
- variable
- lower computer
- data
- requested
- computer device
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种数据通讯方法,应用于通讯网关。该方法首先通过根据预先定义的每一下位机设备的变量数据结构生成变量列表,变量列表中每一下位机设备的变量按照预定规则连续存放,使得通讯网关在进行下位机设备的变量数据的缓存时存储空间占用小、存储效率高。然后,通过根据变量数据结构和变量列表生成变量列表索引,使得在接收到来自数据请求设备的第一数据请求帧时,通讯网关可以根据第一数据请求帧携带的所请求的下位机设备的唯一标识和所请求的变量以及变量列表索引,快速确定所请求的变量在变量列表中的存放位置,进而根据确定的存放位置从变量列表中读取所请求的变量对应的数据并返回给数据请求设备。本发明检索速度快,响应效率高。
Description
技术领域
本发明涉及通信控制技术领域,特别是一种应用于通讯网关的数据通讯方法。
背景技术
BACnet(A Data Communication Protocol for Building Automation andControl Network)是建筑自动化与控制网络的数据通信协议,由美国暖通空调工程师协会(ASHARE)制定并在国际上广泛流行。BACnet在RS-485总线上执行的协议为BACnet/MSTP,其最高通讯波特率通常为76800bps,在IP网络上执行的协议为BACnet/IP,其通讯速率可达到10M/100M/1G。安装在现场的控制器设备(下位机设备)通常位于BACnet/MSTP网络上,上位机则通常位于BACnet/IP网络上,两者间通过BACnet通讯网关(BACnet路由器)实现通讯。
目前的通讯网关大多为“路由式”通讯网关,即对于请求和响应变量数据的帧的内容不做解析,而只作网络层的转发,这样会造成以下后果:第一,由于BACnet/MSTP网络的速度慢,制约了上位机的访问速度,导致整体通讯速度慢;第二,在上位机网络出现严重的通讯阻塞,导致数据延迟大,影响上位机的正常运行,甚至出现通讯完全崩溃。
为解决“路由式”通讯网关的上述问题,已经出现了通过在通讯网关中进行下位机设备的变量数据的数据缓冲,从网关内部直接读取下位机设备的变量数据响应上位机的数据请求的方案。但是,由于下位机设备的变量数据的类型众多,占用的存储空间巨大,且检索困难,实际应用效果不佳。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据通讯方法。
本发明的一个目的在于提供一种数据通讯方法,其应用于通讯网关,在进行下位机设备的变量数据的缓存时存储空间占用小、存储效率高,且在响应数据请求设备的数据请求时,能够在通讯网关缓存的变量数据中快速定位所请求的变量数据,检索速度快,响应效率高。
本发明的一个进一步的目的在于对通讯网关中缓存的变量数据的更新机制进行改进,以提高变量的遍历速度,提升变量更新效率。
根据本发明实施例的一方面,提供了一种数据通讯方法,应用于通讯网关,包括:
根据预先定义的每一下位机设备的变量数据结构生成变量列表,并对所述变量列表初始化,其中,所述变量列表中每一下位机设备的变量按照预定规则连续存放;
根据所述变量数据结构和所述变量列表生成变量列表索引,其中,所述变量列表索引中,每条记录包括一下位机设备的唯一标识以及该下位机设备的变量在所述变量列表中的起始记录位置;
接收来自所述数据请求设备的第一数据请求帧,所述第一数据请求帧携带所请求的下位机设备的唯一标识和所请求的变量;
根据所请求的下位机设备的唯一标识和所请求的变量以及所述变量列表索引,确定所述所请求的变量在所述变量列表中的存放位置;
根据所确定的所述所请求的变量在所述变量列表中的存放位置,从所述变量列表中读取所述所请求的变量对应的数据,并将所获取的所述所请求的变量对应的数据返回给所述数据请求设备。
可选地,所述预先定义的每一下位机设备的变量数据结构通过预设的变量表描述文件进行定义,所述变量表描述文件定义了每一下位机设备的唯一标识、变量类型以及每种类型变量的数量和序号;
所述预定规则包括:所述变量列表中每一下位机设备的变量按类型和序号连续存放;
所述变量列表索引中,每条记录包括一下位机设备的唯一标识以及该下位机设备的各类型的变量在所述变量列表中的起始记录位置和起始序号,所有记录按照下位机设备的唯一标识顺序存储。
可选地,所述数据请求设备包括上位机和客户端设备的至少之一;
所述通讯网关是BACnet路由器,所述上位机所在的网络是BACnet/IP网络,所述下位机设备所在网络是BACnet/MSTP网络;
所述客户端设备包括MODBUS/TCP客户端设备和/或MODBUS/RTU客户端设备。
可选地,所述变量类型包括以下至少之一:
模拟输入AI、模拟输出AO、二进制输入BI、二进制输出BO、模拟值AV、二进制值BV;
所述变量列表中变量的数据包括该变量的当前值。
可选地,所述变量类型包括模拟输入AI、模拟输出AO和模拟值AV中的至少之一,以及二进制输入BI、二进制输出BO和二进制值BV中的至少之一;
所述变量列表包括第一变量列表和第二变量列表,其中,所述第一变量列表中存储模拟输入AI、模拟输出AO和模拟值AV中的至少之一,所述第二变量列表中存储二进制输入BI、二进制输出BO和二进制值BV中的至少之一。
可选地,所述每一下位机设备的唯一标识包括所述每一下位机设备的MSTP地址;
在生成变量列表之后,所述数据通讯方法还包括:
根据每一下位机设备的MSTP地址生成地址表,所述地址表中的每一个MSTP地址与所述变量列表索引中包含该MSTP地址的记录一一对应;
所述根据所请求的下位机设备的唯一标识和所请求的变量以及所述变量列表索引,确定所述所请求的变量在所述变量列表中的存放位置,包括:
根据所请求的下位机设备的MSTP地址确定所请求的下位机设备的MSTP地址在所述地址表中的位置;
根据所确定的所请求的下位机设备的MSTP地址在所述地址表中的位置以及所述变量列表索引中每条记录的占用字节数,通过计算确定所述变量列表索引中所述所请求的下位机设备对应的记录的位置;
根据所述变量列表索引中所述所请求的下位机设备对应的记录的位置从所述变量列表索引中得到所请求的变量的类型在所述变量列表中的起始记录位置和起始序号,并根据所请求的变量的类型在所述变量列表中的起始记录位置和起始序号以及该类型的每一变量的占用字节数,通过计算确定所述所请求的变量在所述变量列表中的存放位置。
可选地,所述数据通讯方法还包括:
为所述变量列表中已被读取数据的变量添加待更新标记;
遍历所述变量列表中的所有变量,找到带有所述待更新标记的变量,并根据带有所述待更新标记的变量生成第二数据请求帧;
向所述下位机设备发送所述第二数据请求帧,请求更新带有所述待更新标记的变量;
接收所述下位机设备响应所述第二数据请求帧上传的变量数据,根据接收的变量数据对所述变量列表中带有所述待更新标记的变量进行更新,并清除已更新的变量的所述待更新标记。
可选地,在生成所述第二数据请求帧时,只有在当前生成的第二数据请求帧达到所述第二数据请求帧的最大帧长后,才生成新的第二数据请求帧;其中,所述第二数据请求帧的最大帧长为所述下位机设备的最大接收长度与所述通讯网关的最大接收长度中的较小者。
可选地,所述待更新标记根据变量的优先级进行设定;
所述遍历所述变量列表中的所有变量,找到带有所述待更新标记的变量,并根据带有所述待更新标记的变量生成第二数据请求帧,包括:
按照所述变量列表中已被读取数据的变量的优先级顺序,遍历所述变量列表中的所有变量,找到带有与所述变量的优先级对应的待更新标记的变量,并根据带有与所述变量的优先级对应的待更新标记的变量生成第二数据请求帧。
可选地,变量的优先级根据以下条件之一进行划分:
与变量对应的第一数据请求帧的发送协议类型;
变量的变化的重要程度;
变量被所述数据请求设备请求的次数。
本发明实施例的应用于通讯网关的数据通讯方法中,首先通过根据预先定义的每一下位机设备的变量数据结构生成变量列表,变量列表中每一下位机设备的变量按照预定规则连续存放,使得通讯网关在进行下位机设备的变量数据的缓存时存储空间占用小、存储效率高。然后,通过根据变量数据结构和变量列表生成变量列表索引,变量列表索引的每条记录包括一下位机设备的唯一标识以及该下位机设备的变量在变量列表中的起始记录位置,使得在接收到来自数据请求设备的第一数据请求帧时,通讯网关可以根据第一数据请求帧携带的所请求的下位机设备的唯一标识和所请求的变量以及变量列表索引,快速确定所请求的变量在变量列表中的存放位置,进而根据确定的存放位置从变量列表中读取所请求的变量对应的数据并返回给数据请求设备。通过这种特定的变量列表以及变量列表索引,在响应数据请求设备的数据请求时,能够在通讯网关缓存的变量数据中快速定位所请求的变量数据,检索速度快,响应效率高。
进一步地,在本发明实施例的应用于通讯网关的数据通讯方法中,通过为变量列表中已被读取数据的变量添加待更新标记,并根据带有待更新标记的变量生成向下位机设备发送的第二数据请求帧,以从下位机设备获取数据对带有待更新标记的变量进行更新,提高了变量的遍历速度,提升变量更新效率。更进一步地,还可以按照带有待更新标记的变量的优先级顺序来生成第二数据请求帧,从而确保重要变量的及时更新。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一实施例的应用于通讯网关的数据通讯方法的流程示意图;
图2示出了包含图1所示实施例所应用的通讯网关的系统框图;
图3示出了根据本发明一实施例的包含通讯网关的系统框图;
图4示出了根据本发明一实施例的地址表、变量列表索引和变量列表之间的对应关系示意图;
图5示出了根据本发明另一实施例的数据通讯方法的流程示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
现有的通讯网关(如BACnet通讯网关)通常只起路由功能,即,对于请求和响应变量数据的帧只作网络层的转发,上传下达,实现上位机与下位机(如现场控制器)之间通讯。由于上位机网络与下位机网络的速度不匹配,造成通讯速度慢、通讯阻塞、数据延迟等问题,这些问题可以通过在通讯网关中进行下位机的变量数据的数据缓冲来解决。然而,由于下位机的变量数据的类型众多,占用的存储空间巨大,且检索困难,使得目前的通讯网关的数据缓冲方案难以进行实际应用,亟需进行改进。
为此,本发明实施例提出一种数据通讯方法,其可应用于通讯网关。图1示出了根据本发明一实施例的应用于通讯网关的一种数据通讯方法的流程示意图。图2示出了包含图1所示实施例所应用的通讯网关的系统框图。如图2所示,通讯网关连接数据请求设备与至少一个下位机设备,用以实现数据请求设备与至少一个下位机设备之间的数据通讯(包括数据请求、数据响应等)。具体地,通讯网关通过数据请求设备所在网络与数据请求设备连接,并通过下位机设备所在网络与至少一个下位机设备连接。
参见图1所示,该数据通讯方法至少可以包括以下步骤S102至步骤S110。
步骤S102,根据预先定义的每一下位机设备的变量数据结构生成变量列表,并对变量列表初始化,其中,变量列表中每一下位机设备的变量按照预定规则连续存放。
本步骤中,通讯网关通过向每一下位机设备发送数据请求以得到每一下位机设备的初始变量数据,将每一下位机设备的初始变量数据保存至生成的变量列表中以实现变量列表初始化。
步骤S104,根据变量数据结构和变量列表生成变量列表索引,其中,变量列表索引中,每条记录包括一下位机设备的唯一标识以及该下位机设备的变量在变量列表中的起始记录位置。
步骤S106,接收来自数据请求设备的第一数据请求帧,第一数据请求帧携带所请求的下位机设备的唯一标识和所请求的变量。
步骤S108,根据所请求的下位机设备的唯一标识和所请求的变量以及变量列表索引,确定所请求的变量在变量列表中的存放位置。
步骤S110,根据所确定的所请求的变量在变量列表中的存放位置,从变量列表中读取所请求的变量对应的数据,并将所获取的所请求的变量对应的数据返回给数据请求设备。
本发明实施例的应用于通讯网关的数据通讯方法中,首先通过根据预先定义的每一下位机设备的变量数据结构生成变量列表,变量列表中每一下位机设备的变量按照预定规则连续存放,使得通讯网关在进行下位机设备的变量数据的缓存时存储空间占用小、存储效率高。然后,通过根据变量数据结构和变量列表生成变量列表索引,变量列表索引的每条记录包括一下位机设备的唯一标识以及该下位机设备的变量在变量列表中的起始记录位置,使得在接收到来自数据请求设备的第一数据请求帧时,通讯网关可以根据第一数据请求帧携带的所请求的下位机设备的唯一标识和所请求的变量以及变量列表索引,快速确定所请求的变量在变量列表中的存放位置,进而根据确定的存放位置从变量列表中读取所请求的变量对应的数据并返回给数据请求设备。通过这种特定的变量列表以及变量列表索引,在响应数据请求设备的数据请求时,能够在通讯网关缓存的变量数据中快速定位所请求的变量数据,检索速度快,响应效率高。
在本发明的一个实施例中,上文提及的预先定义的每一下位机设备的变量数据结构可以通过预设的变量表描述文件进行定义。变量表描述文件中定义了每一下位机设备的唯一标识、变量类型以及每种类型变量的数量和序号。变量表描述文件可在通讯网关启用之前由专门的工具软件创建,供通讯网关下载后应用。在这种情况下,可根据预设的变量表描述文件生成变量列表,在生成的变量列表中的变量存放的预定规则可为:变量列表中每一下位机设备的变量按类型和序号连续存放。下位机设备的唯一标识例如可以是下位机设备的MAC(Media Access Control,媒体访问控制)地址、设备ID等。本实施例中,通过对每个下位机设备的变量数据结构进行区别定义,而不是对每个下位机设备以统一的变量数据模板进行定义,避免了在统一的变量数据模板下必须按照各下位机设备所需的最大可能存储空间来设计所导致的存储资源浪费,进一步有效地减少了存储空间占用,提高存储效率。
相应地,在变量列表中每一下位机设备的变量按类型和序号连续存放的情况下,在变量列表索引中,每条记录可以包括一下位机设备的唯一标识以及该下位机设备的各类型的变量在变量列表中的起始记录位置和起始序号,变量列表索引中的所有记录则按照下位机设备的唯一标识顺序存储。如此,在需要检索变量列表中的变量时,就不必进行逐一匹配查找,而是可以通过该变量列表索引直接快速确定需检索的变量在变量列表中的位置,有效地提高检索速度。
在本发明的一个实施例中,数据请求设备可以包括上位机和客户端设备的至少之一。
图3示出了根据本发明一实施例的包含通讯网关的系统框图。如图3所示,在一个实施例中,通讯网关可以是BACnet路由器,数据请求设备可以包括上位机,上位机所在的网络是BACnet/IP网络,而下位机设备所在网络则是BACnet/MSTP(Master-Slave/Token-Passing,主从令牌传递)网络。在一种具体的实施方案中,上位机可通过UDP(UserDatagram Protocol,用户数据报协议)与通讯网关(BACnet路由器)进行通讯,以实现上位机与通讯网关之间的BACnet UDP通讯。下位机设备可通过MSTP协议与通讯网关(BACnet路由器)进行通讯,以实现下位机设备与通讯网关之间的BACnet MSTP通讯。
进一步的,由于通讯网关在自身以变量列表的形式缓存了下位机设备的变量数据,换句话说,通讯网关自身建立了下位机设备的变量数据库,则这种情况下,通讯网关本身还可以作为一种数据服务器,为其他客户端设备提供数据。在本发明的一个实施例中,客户端设备可以包括MODBUS/TCP客户端设备和/或MODBUS/RTU客户端设备。本文中的MODBUS/TCP客户端设备指例如从BACnet/IP网络上通过MODBUS/TCP协议与通讯网关进行通讯的客户端设备。MODBUS/RTU客户端设备指例如通过MODBUS/RTU协议与通讯网关进行通讯的客户端设备。本实施例的方法可以同时向多个软件平台提供数据,拓展了通讯网关的应用场合。
此外,在本发明的一个实施例中,通讯网关可以预置有内部逻辑文件,通过运行内部逻辑文件,通讯网关可以读写下位机设备的变量数据,也可以读写与其连接的其他通讯网关以及其他通讯网关下挂的下位机设备的变量数据。在这种情况下,通讯网关自身也可以作为数据请求设备。在接收到自身的内部逻辑文件运行模块发送的第一数据请求帧时,通讯网关可以直接从自身的变量列表中读取所请求的变量数据。在实际应用中,内部逻辑文件可以是由编程软件编写好后,下载至通讯网关的非易失性存储器(如EEPROM或Flash)中。
发明人发现,从BACnet的数据模型来看,数据请求设备(如上位机)访问下位机设备的数据时,通常是以设备-对象-属性的形式,而所有对象的常规的数据基本都包含在AI(Analog Input,模拟输入)、AO(Analog Output,模拟输出)、BI(Binary Input,二进制输入)、BO(Binary Output,二进制输出)、AV(Analog Value,模拟值)、BV(Binary Value,二进制值)这六种变量中。而在所有的属性里,最重要的是当前值,其可以实时反映下位机设备的状态信息。由此,在本发明的一个实施例中,所定义的每一下位机设备的变量数据结构中的变量类型可以包括AI、AO、BI、BO、AV、BV中的至少之一。并且,变量列表中存储的变量的数据可以包括相应变量的当前值。也就是说,变量列表相当于下位机设备的AI、AO、BI、BO、AV、BV等对象的当前值的存储区。如此,能够在保证对数据请求设备关于下位机设备数据的请求进行及时响应的前提下,防止不常用变量数据在通讯网关中缓存所造成的存储资源浪费,提高存储资源有效利用率,同时减少通讯网关中缓存的不常用的变量数量,利于变量检索速度的提升。
对于AI、AO、BI、BO、AV、BV等类型变量,每种类型变量的数量和序号取决于其实例(instance)。例如,对于AI变量,其实例为AI0至AI7,则,AI变量数量为8,AI变量起始序号为0,AI变量全部序号为0至7。
进一步地,考虑到AI、AO、AV类型变量的数据通常具有相同的存储开销,如AI、AO、AV类型变量的当前值通常均为4字节的浮点数,并且,BI、BO、BV类型变量的数据也通常具有相同的存储开销,如,BI、BO、BV类型变量的当前值通常均占用1字节。因此,在一个实施例中,在所定义的每一下位机设备的变量数据结构中的变量类型包括AI、AO、AV中的至少之一,以及BI、BO、BV中的至少之一的情况下,变量列表可以包括第一变量列表和第二变量列表。第一变量列表中存储AI、AO和AV中的至少之一,第二变量列表中则存储BI、BO和BV中的至少之一。通过将不同存储开销的变量分别存储在不同的变量列表中,而将存储开销相同的变量集中存储在同一个变量列表中,能够避免存储空间的浪费,使变量列表结构更紧凑、存储效率更高,且变量列表更易查询。
对于BACnet/MSTP网络上的下位机设备,可以通过MSTP地址唯一标识每个下位机设备。一般而言,下位机设备的MSTP地址是由通讯网关的拨码开关确定,范围在0-127。通过采用MSTP地址作为下位机设备的唯一标识,有利于直接计算下位机设备的变量在变量列表中的起始记录位置,提高变量检索效率,下文将对此进行具体介绍。
在本发明的一个实施例中,每一下位机设备的唯一标识可以包括每一下位机设备的MSTP地址。在这种情况下,在生成变量列表之后,本发明的数据通讯方法还可以执行以下步骤:根据每一下位机设备的MSTP地址生成地址表,地址表中的每一个MSTP地址与变量列表索引中包含该MSTP地址的记录一一对应。
图4示出了根据本发明一实施例的地址表、变量列表索引和变量列表之间的对应关系示意图。如图4所示,地址表中示例性地顺序列出了下位机设备的MSTP地址,在0-127之间。需要说明的是,地址表中的MSTP地址的数值并不一定是连续的。变量列表索引中的记录与地址表中的MSTP地址按顺序一一对应,每条记录中包括一下位机设备的MSTP地址以及该下位机设备的各类型的变量在变量列表中的起始记录位置和起始序号。变量列表中每一下位机设备的变量按类型和序号连续存放,图4中从变量列表索引指向变量列表的箭头所指示的位置表示变量列表索引中该条记录对应的下位机设备的变量在变量列表中的起始存放位置。
如此,步骤S108还可以进一步实施为以下分步骤:
首先,根据第一数据请求帧中携带的所请求的下位机设备的MSTP地址确定所请求的下位机设备的MSTP地址在地址表中的位置。
然后,根据所确定的所请求的下位机设备的MSTP地址在地址表中的位置以及变量列表索引中每条记录的占用字节数,通过计算确定变量列表索引中所请求的下位机设备对应的记录的位置。
最后,根据变量列表索引中所请求的下位机设备对应的记录的位置从变量列表索引中得到所请求的变量的类型在变量列表中的起始记录位置和起始序号,并根据所请求的变量的类型在变量列表中的起始记录位置和起始序号以及该类型的每一变量的占用字节数,通过计算确定所请求的变量在变量列表中的存放位置。
下面以一个例子对上述的变量定位过程进行具体介绍。
假设通讯网关接收到数据请求设备发送的请求下位机设备1000的变量AI5的第一数据请求帧,则通讯网关根据第一数据请求帧中携带的下位机设备1000的MSTP地址7确定其在地址表中的位置。假设下位机设备1000在地址表中的位置在第6位,变量列表索引中每条记录的占用字节数为38字节,则可以计算得到变量列表索引中下位机设备1000对应的记录的位置:38×5=190,其中,38表示变量列表索引中每条记录的占用字节数,5表示变量列表索引中下位机设备1000对应的记录之前的记录条数。之后,从变量列表索引中190存储位置处的记录中能够得到下位机设备1000的AI类型变量在变量列表(具体如第一变量列表)中的起始记录位置和起始序号。假设下位机设备1000的AI类型变量在第一变量列表中的起始记录位置为120,AI起始序号为1,每一AI类型变量的占用字节数为5,则可以计算得到下位机设备1000的变量AI5在第一变量列表中的存放位置:120+(5-1)*5=140,其中,120表示下位机设备1000的AI类型变量在第一变量列表中的起始记录位置,(5-1)*5表示下位机设备1000的AI5相对于AI类型变量在第一变量列表中的起始记录位置的偏移量。
本实施例中,可以根据索引信息直接计算出被请求的下位机设备的变量的存放位置而无需匹配搜索,极大地提高了变量检索速度,从而极大地提高了通讯网关的响应速度和性能。
在本发明的一个实施例中,在执行步骤S110之后,还可以包括对变量列表中已被读取数据的变量进行更新的步骤,具体包括:为变量列表中已被读取数据的变量添加待更新标记;遍历变量列表中的所有变量,找到带有待更新标记的变量,并根据带有待更新标记的变量生成第二数据请求帧;向下位机设备发送第二数据请求帧,请求更新带有待更新标记的变量;接收下位机设备响应第二数据请求帧上传的变量数据,根据接收的变量数据对变量列表中带有待更新标记的变量进行更新,并清除已更新的变量的待更新标记。在进行变量列表中的所有变量的遍历时,可以按照指定周期周期性地遍历变量列表中的所有变量,以避免频繁更新带来的资源消耗。当然,也可以在对变量列表中带有待更新标记的变量进行更新后,立即进行下一次的遍历,从而避免数据更新的延迟。
通过为变量列表中已被读取数据的变量添加待更新标记,在遍历变量时只需筛选出带有待更新标记的变量并据此生成向下位机设备发送的第二数据请求帧,如此大大地加快了遍历的速度,系统反应速度灵敏,更新效率高。
在一个可选的实施例中,在生成第二数据请求帧时,可以遵循最大帧长度原则,即,只有在当前生成的第二数据请求帧达到第二数据请求帧的最大帧长后,才生成新的第二数据请求帧,从而使得每个第二数据请求帧能够包含尽量多的变量(对象),充分利用下位机设备所在网络的通讯资源,提高传输效率。第二数据请求帧的最大帧长应考虑下位机设备的最大接收长度与通讯网关的最大接收长度的制约,可以在变量表描述文件中进行定义。优选地,第二数据请求帧的最大帧长可以是下位机设备的最大接收长度与通讯网关的最大接收长度中的较小者,以充分保障通讯网关与下位机设备之间的正常通讯。
在一个可选的实施例中,待更新标记可以根据变量的优先级进行设定,也就是说,变量的优先级不同,则为该变量添加的待更新标记也会不同。在这种情况下,前述的遍历变量列表中的所有变量,找到带有待更新标记的变量,并根据带有待更新标记的变量生成第二数据请求帧的步骤可以进一步实施为:按照变量列表中已被读取数据的变量的优先级顺序,遍历变量列表中的所有变量,找到带有与变量的优先级对应的待更新标记的变量,并根据带有与变量的优先级对应的待更新标记的变量生成第二数据请求帧。通过按照带有待更新标记的变量的优先级顺序来生成第二数据请求帧,能够确保重要变量的及时更新。
进一步地,变量的优先级可以根据以下任一种条件进行划分。
第一种,根据变量对应的请求来源进行划分。具体地,可根据与变量对应的第一数据请求帧的发送协议类型进行划分。例如,将通过BACnet/IP网络的UDP协议发送至通讯网关的第一数据请求帧所请求的变量视为第一优先级,该变量对应的待更新标记设定为1;将通过MODBUS/TCP协议发送至通讯网关的第一数据请求帧所请求的变量视为第二优先级,该变量对应的待更新标记设定为2;将通过MODBUS/RTU协议发送至通讯网关的第一数据请求帧所请求的变量视为第三优先级,该变量对应的待更新标记设定为3,等等。当然,此处仅是示例性的,在实际应用中可以根据应用需求进行设定,本发明对此不作限制。
此外,如前所述,若通讯网关可以通过运行内部逻辑文件来读写下位机设备的变量数据,则也可以对来自通讯网关自身的内部逻辑文件运行模块的第一数据请求帧所请求的变量进行优先级划分,例如,可以将来自通讯网关自身的内部逻辑文件运行模块的第一数据请求帧所请求的变量视为第一优先级,该变量对应的待更新标记设定为1。相应地,可以将与BACnet/IP网络的UDP协议、MODBUS/TCP协议、MODBUS/RTU协议对应的变量的优先级相继下降,即,将通过BACnet/IP网络的UDP协议发送至通讯网关的第一数据请求帧所请求的变量视为第二优先级,该变量对应的待更新标记设定为2;将通过MODBUS/TCP协议发送至通讯网关的第一数据请求帧所请求的变量视为第三优先级,该变量对应的待更新标记设定为3;将通过MODBUS/RTU协议发送至通讯网关的第一数据请求帧所请求的变量视为第四优先级,该变量对应的待更新标记设定为4,等等。
第二种,根据变量的变化的重要程度进行划分。例如,通常来说,开关量变量(如BI、BO、BV等)的变化相比模拟量变量(如AI、AO、AV等)的变化更重要,则可以将开关量变量视为第一优先级,开关量变量对应的待更新标记设定为1;将模拟量变量视为第二优先级,模拟量变量对应的待更新标记设定为2。
第三种,根据变量被数据请求设备请求的次数进行划分。例如,可以设置阈值,将被数据请求设备请求的次数大于或等于该阈值的变量视为第一优先级,变量对应的待更新标记设定为1;将被数据请求设备请求的次数小于该阈值的变量视为第二优先级,变量对应的待更新标记设定为2。当然,还可以划分更多级的优先级,本文不另赘述。
在根据变量的优先级设定变量列表中已被读取的变量的待更新标记后,可以按照变量列表中已被读取数据的变量的优先级顺序来遍历变量列表中的所有变量,以生成第二数据请求帧。下面以一个具体例子来进行说明。
例如,将变量划分为以下三个级别优先级:第一优先级、第二优先级、第三优先级,与它们对应的待更新标记分别设定为1、2、3。在遍历变量列表中的变量时,首先进行第一轮遍历,找到变量列表中所有待更新标记为1的变量,将这些变量列入第二数据请求帧中。然后进行第二轮遍历,找到变量列表中所有待更新标记为2的变量,并将这些变量列入第二数据请求帧中。最后进行第三轮遍历,找到变量列表中所有待更新标记为3的变量,并将这些变量列入第二数据请求帧中。其中,一旦当前的第二数据请求帧达到最大帧长,则生成新的第二数据请求帧,比如,假设第一轮遍历后,当前的第二数据请求帧中列入待更新标记为1的变量后还未达到最大帧长,则继续将第二轮遍历后找到的待更新标记为2的变量列入当前的第二数据请求帧中,在将部分的待更新标记为2的变量列入当前的第二数据请求帧中使当前的第二数据请求帧达到最大帧长后,则生成新的第二数据请求帧,将剩余的待更新标记为2的变量列入新的第二数据请求帧中,依此类推。此外,在进行第二轮遍历时,有可能又已经产生了新的待更新标记为1的变量,则可以在找出待更新标记为2的变量的同时,把新的待更新标记为1的变量也找出来列入第二数据请求帧。在进行第三轮遍历时,则可以在找出待更新标记为3的变量的同时,把新的待更新标记为1的变量和新的待更新标记为2的变量也找出来列入第二数据请求帧。
以上介绍了图1所示实施例的各个环节的多种实现方式,下面将通过具体实施例来详细介绍本发明的数据通讯方法的实现过程。
图5示出了根据本发明一具体实施例的数据通讯方法的流程示意图,该数据通讯方法应用于通讯网关。本实施例中,通讯网关是BACnet路由器,其连接上位机所在BACnet/IP网络和下位机设备所在BACnet/MSTP网络。参见图5所示,该数据通讯方法可以包括以下步骤S502至步骤S524。
步骤S502,根据预设的变量表描述文件生成变量列表,并对变量列表初始化,其中,变量表描述文件定义了每一下位机设备的唯一标识、变量类型以及每种类型变量的数量和序号,变量列表中每一下位机设备的变量按类型和序号连续存放。
在本实施例中,变量表描述文件可在通讯网关启用之前由专门的工具软件创建,通讯网关将变量表描述文件下载至自身进行应用。下位机设备的唯一标识为下位机设备的MSTP地址,范围在0-127内。变量表描述文件中定义的每一下位机设备的变量类型包括AI、AO、BI、BO、AV、BV六种,每种类型变量的数量和序号例如下面所示:
AI:数量8,序号0-7(其中0表示起始实例(instance)),即,每一下位机设备包括AI类型变量AI0-AI7;
BI:数量8,序号0-7,其中0表示起始instance),即,每一下位机设备包括BI类型变量BI0-BI7;
AO:数量3,序号0-2,其中0表示起始instance),即,每一下位机设备包括AO类型变量AO0-AO2;
BO:数量4,序号0-3,其中0表示起始instance),即,每一下位机设备包括BO类型变量BO0-BO3;
AV:数量20,序号1-20,其中1表示起始instance),即,每一下位机设备包括AV类型变量AV1-AV20;
BV:数量30,序号1-30,其中1表示起始instance),即,每一下位机设备包括BV类型变量BV1-BV30。
变量表描述文件可由表头和主体部分构成。表头包含16个字节,格式如下表1所示:
字段 | 文件字节数 | 下位机设备数 | 最大帧长 | 保留字节 |
字节 | 2 | 1 | 1 | 12 |
表头中最大帧长字段定义第二数据请求帧的最大帧长(即,毎帧最大变量个数)。
主体部分可由多条记录组成,每条记录对应一个下位机设备,包含26个字节。主体部分的每条记录包括以下字段:
设备MSTP地址,
AI起始低字节,AI起始高字节,AI数量低字节,AI数量高字节,
AO起始低字节,AO起始高字节,AO数量低字节,AO数量高字节,
AV起始低字节,AV起始高字节,AV数量低字节,AV数量高字节,
BI起始低字节,BI起始高字节,BI数量低字节,BI数量高字节,
BO起始低字节,BO起始高字节,BO数量低字节,BO数量高字节,
BV起始低字节,BV起始高字节,BV数量低字节,BV数量高字节,
保留字节。
在得到变量表描述文件后,即可根据变量表描述文件的定义生成变量列表。本实施例中生成2个变量列表(不妨称为变量列表A和变量列表B),其中,变量列表A存储AI、AO和AV类型变量的当前值数据,变量列表B存储BI、BO和BV类型变量的当前值数据。变量列表A中每条记录包含5个字节,其中1个字节用于存储变量的待更新标记,4个字节用于存储变量的当前值。变量列表B中每条记录包含2个字节,其中1个字节用于存储变量的待更新标记,另1个字节用于存储变量的当前值。在变量列表A和变量列表B中,每一下位机设备的变量按类型和序号连续存放。具体地,一个下位机设备的变量连续存放,且一个下位机设备的同类型变量按实例序号连续存放。例如,在变量列表A中,对于下位机设备1000,变量AI0-AI7、AO0-AO2、AV1-AV20顺序连续存放。
在生成变量列表后,通讯网关通过向每一下位机设备发送数据请求以得到每一下位机设备的变量的初始当前值,将每一下位机设备的变量的初始当前值保存至生成的相应变量列表中以实现变量列表初始化,同时将变量列表中的每一条记录的待更新标记字段的值设为0,表示变量未添加待更新标记。
步骤S504,根据每一下位机设备的MSTP地址生成地址表。
地址表如图4所示,在地址表中,下位机设备的MSTP地址按照数值从小到大顺序排列。
步骤S506,根据变量表描述文件和变量列表生成变量列表索引,其中,变量列表索引中,每条记录包括一下位机设备的唯一标识以及该下位机设备的各类型的变量在变量列表中的起始记录位置和起始序号,所有记录按照下位机设备的唯一标识顺序存储。
本实施例中,生成的变量列表索引如图4所示,变量列表索引中的所有记录按照下位机设备的MSTP地址的数值从小到大顺序排列,也就是说,变量列表索引中的记录与地址表中的MSTP地址一一对应。
变量列表索引中每条记录可包含38个字节,结构如下面所示:
下位机设备的MSTP地址,
AI类型变量起始记录位置,AI类型变量数量,AI类型变量起始序号,
BI类型变量起始记录位置,BI类型变量数量,BI类型变量起始序号,
AO类型变量起始记录位置,AO类型变量数量,AO类型变量起始序号,
BO类型变量起始记录位置,BO类型变量数量,BOI类型变量起始序号,
AV类型变量起始记录位置,AV类型变量数量,AV类型变量起始序号,
BV类型变量起始记录位置,BV类型变量数量,BV类型变量起始序号。
步骤S508,接收来自上位机的第一数据请求帧,第一数据请求帧携带所请求的下位机设备的MSTP地址和所请求的变量。
本实施例中,假设通讯网关接收到上位机发送的请求下位机设备1000的变量数据的第一数据请求帧,第一数据请求帧携带下位机设备1000的MSTP地址7和所请求的变量AI5。
步骤S510,根据所请求的下位机设备的MSTP地址确定所请求的下位机设备的MSTP地址在地址表中的位置。
本实施例中,假设根据所请求的下位机设备1000的MSTP地址7确定其在地址表中的位置在第6位。
步骤S512,根据所确定的所请求的下位机设备的MSTP地址在地址表中的位置以及变量列表索引中每条记录的占用字节数,通过计算确定变量列表索引中所请求的下位机设备对应的记录的位置。
仍以上例为例,根据所确定的下位机设备1000在地址表中的位置(第6位)以及变量列表索引中每条记录的占用字节数(38字节),通过下式计算得到变量列表索引中下位机设备1000对应的记录的位置为190:38×5=190。
步骤S514,根据变量列表索引中所请求的下位机设备对应的记录的位置从变量列表索引中得到所请求的变量的类型在变量列表中的起始记录位置和起始序号,并根据所请求的变量的类型在变量列表中的起始记录位置和起始序号以及该类型的每一变量的占用字节数,通过计算确定所请求的变量在变量列表中的存放位置。
仍以上例为例,根据步骤S512中确定的变量列表索引中的存储位置,从变量列表索引中190存储位置处的记录中能够得到下位机设备1000的AI类型变量在变量列表(具体为变量列表A)中的起始记录位置和起始序号。假设下位机设备1000的AI类型变量在变量列表A中的起始记录位置为120,AI起始序号为0,每一AI类型变量的占用字节数为5,则可以计算得到下位机设备1000的变量AI5在变量列表A中的存放位置:120+(5-0)*5=145。
步骤S516,根据所确定的所请求的变量在变量列表中的存放位置,从变量列表中读取所请求的变量对应的数据,并将所获取的所请求的变量对应的数据返回给上位机。
步骤S518,为变量列表中已被读取数据的变量添加待更新标记。
具体地,例如可以将变量列表中已被读取数据的变量记录中的待更新标记字段的值设为1,表示变量已添加待更新标记。
步骤S520,遍历变量列表中的所有变量,找到带有待更新标记的变量,并根据带有待更新标记的变量生成第二数据请求帧。
本实施例中,在生成第二数据请求帧时,可以遵循最大帧长度原则,即,只有在当前生成的第二数据请求帧达到第二数据请求帧的最大帧长后,才生成新的第二数据请求帧,从而使得每个第二数据请求帧能够包含尽量多的变量。第二数据请求帧的最大帧长已在变量表描述文件中进行定义。
步骤S522,向下位机设备发送第二数据请求帧,请求更新带有待更新标记的变量。
步骤S524,接收下位机设备响应第二数据请求帧上传的变量数据,根据接收的变量数据对变量列表中带有待更新标记的变量进行更新,并清除已更新的变量的待更新标记。
具体地,接收下位机设备上传的变量的新当前值,将该新当前值存入相应的变量列表中实现变量更新,并将更新后的变量记录中的待更新标记字段的值清0。
本发明实施例的应用于通讯网关的数据通讯方法,存储效率高、请求响应速度快、变量更新效率高,大大地提高了经由通讯网关进行的上位机与下位机设备之间的数据通讯效率。
根据上述任意一个可选实施例或多个可选实施例的组合,本发明实施例能够达到如下有益效果:
本发明实施例的应用于通讯网关的数据通讯方法中,首先通过根据预先定义的每一下位机设备的变量数据结构生成变量列表,变量列表中每一下位机设备的变量按照预定规则连续存放,使得通讯网关在进行下位机设备的变量数据的缓存时存储空间占用小、存储效率高。然后,通过根据变量数据结构和变量列表生成变量列表索引,变量列表索引的每条记录包括一下位机设备的唯一标识以及该下位机设备的变量在变量列表中的起始记录位置,使得在接收到来自数据请求设备的第一数据请求帧时,通讯网关可以根据第一数据请求帧携带的所请求的下位机设备的唯一标识和所请求的变量以及变量列表索引,快速确定所请求的变量在变量列表中的存放位置,进而根据确定的存放位置从变量列表中读取所请求的变量对应的数据并返回给数据请求设备。通过这种特定的变量列表以及变量列表索引,在响应数据请求设备的数据请求时,能够在通讯网关缓存的变量数据中快速定位所请求的变量数据,检索速度快,响应效率高。
进一步地,在本发明实施例的应用于通讯网关的数据通讯方法中,通过为变量列表中已被读取数据的变量添加待更新标记,并根据带有待更新标记的变量生成向下位机设备发送的第二数据请求帧,以从下位机设备获取数据对带有待更新标记的变量进行更新,提高了变量的遍历速度,提升变量更新效率。更进一步地,还可以按照带有待更新标记的变量的优先级顺序来生成第二数据请求帧,从而确保重要变量的及时更新。
所属领域的技术人员可以清楚地了解到,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。
本领域普通技术人员可以理解:所述集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行所述指令时执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM),磁碟或者光盘等各种可以存储程序代码的介质。
或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。
Claims (10)
1.一种数据通讯方法,应用于通讯网关,其特征在于,包括:
根据预先定义的每一下位机设备的变量数据结构生成变量列表,并对所述变量列表初始化,其中,所述变量列表中每一下位机设备的变量按照预定规则连续存放;
根据所述变量数据结构和所述变量列表生成变量列表索引,其中,所述变量列表索引中,每条记录包括一下位机设备的唯一标识以及该下位机设备的变量在所述变量列表中的起始记录位置;
接收来自所述数据请求设备的第一数据请求帧,所述第一数据请求帧携带所请求的下位机设备的唯一标识和所请求的变量;
根据所请求的下位机设备的唯一标识和所请求的变量以及所述变量列表索引,确定所述所请求的变量在所述变量列表中的存放位置;
根据所确定的所述所请求的变量在所述变量列表中的存放位置,从所述变量列表中读取所述所请求的变量对应的数据,并将所获取的所述所请求的变量对应的数据返回给所述数据请求设备。
2.根据权利要求1所述的数据通讯方法,其特征在于,所述预先定义的每一下位机设备的变量数据结构通过预设的变量表描述文件进行定义,所述变量表描述文件定义了每一下位机设备的唯一标识、变量类型以及每种类型变量的数量和序号;
所述预定规则包括:所述变量列表中每一下位机设备的变量按类型和序号连续存放;
所述变量列表索引中,每条记录包括一下位机设备的唯一标识以及该下位机设备的各类型的变量在所述变量列表中的起始记录位置和起始序号,所有记录按照下位机设备的唯一标识顺序存储。
3.根据权利要求2所述的数据通讯方法,其特征在于,所述数据请求设备包括上位机和客户端设备的至少之一;
所述通讯网关是BACnet路由器,所述上位机所在的网络是BACnet/IP网络,所述下位机设备所在网络是BACnet/MSTP网络;
所述客户端设备包括MODBUS/TCP客户端设备和/或MODBUS/RTU客户端设备。
4.根据权利要求3所述的数据通讯方法,其特征在于,所述变量类型包括以下至少之一:
模拟输入AI、模拟输出AO、二进制输入BI、二进制输出BO、模拟值AV、二进制值BV;
所述变量列表中变量的数据包括该变量的当前值。
5.根据权利要求4所述的数据通讯方法,其特征在于,所述变量类型包括模拟输入AI、模拟输出AO和模拟值AV中的至少之一,以及二进制输入BI、二进制输出BO和二进制值BV中的至少之一;
所述变量列表包括第一变量列表和第二变量列表,其中,所述第一变量列表中存储模拟输入AI、模拟输出AO和模拟值AV中的至少之一,所述第二变量列表中存储二进制输入BI、二进制输出BO和二进制值BV中的至少之一。
6.根据权利要求3所述的数据通讯方法,其特征在于,所述每一下位机设备的唯一标识包括所述每一下位机设备的MSTP地址;
在生成变量列表之后,所述数据通讯方法还包括:
根据每一下位机设备的MSTP地址生成地址表,所述地址表中的每一个MSTP地址与所述变量列表索引中包含该MSTP地址的记录一一对应;
所述根据所请求的下位机设备的唯一标识和所请求的变量以及所述变量列表索引,确定所述所请求的变量在所述变量列表中的存放位置,包括:
根据所请求的下位机设备的MSTP地址确定所请求的下位机设备的MSTP地址在所述地址表中的位置;
根据所确定的所请求的下位机设备的MSTP地址在所述地址表中的位置以及所述变量列表索引中每条记录的占用字节数,通过计算确定所述变量列表索引中所述所请求的下位机设备对应的记录的位置;
根据所述变量列表索引中所述所请求的下位机设备对应的记录的位置从所述变量列表索引中得到所请求的变量的类型在所述变量列表中的起始记录位置和起始序号,并根据所请求的变量的类型在所述变量列表中的起始记录位置和起始序号以及该类型的每一变量的占用字节数,通过计算确定所述所请求的变量在所述变量列表中的存放位置。
7.根据权利要求1-6中任一项所述的数据通讯方法,其特征在于,还包括:
为所述变量列表中已被读取数据的变量添加待更新标记;
遍历所述变量列表中的所有变量,找到带有所述待更新标记的变量,并根据带有所述待更新标记的变量生成第二数据请求帧;
向所述下位机设备发送所述第二数据请求帧,请求更新带有所述待更新标记的变量;
接收所述下位机设备响应所述第二数据请求帧上传的变量数据,根据接收的变量数据对所述变量列表中带有所述待更新标记的变量进行更新,并清除已更新的变量的所述待更新标记。
8.根据权利要求7所述的数据通讯方法,其特征在于,在生成所述第二数据请求帧时,只有在当前生成的第二数据请求帧达到所述第二数据请求帧的最大帧长后,才生成新的第二数据请求帧;其中,所述第二数据请求帧的最大帧长为所述下位机设备的最大接收长度与所述通讯网关的最大接收长度中的较小者。
9.根据权利要求7所述的数据通讯方法,其特征在于,所述待更新标记根据变量的优先级进行设定;
所述遍历所述变量列表中的所有变量,找到带有所述待更新标记的变量,并根据带有所述待更新标记的变量生成第二数据请求帧,包括:
按照所述变量列表中已被读取数据的变量的优先级顺序,遍历所述变量列表中的所有变量,找到带有与所述变量的优先级对应的待更新标记的变量,并根据带有与所述变量的优先级对应的待更新标记的变量生成第二数据请求帧。
10.根据权利要求9所述的数据通讯方法,其特征在于,变量的优先级根据以下条件之一进行划分:
与变量对应的第一数据请求帧的发送协议类型;
变量的变化的重要程度;
变量被所述数据请求设备请求的次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010237751.0A CN111600924B (zh) | 2020-03-30 | 2020-03-30 | 一种数据通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010237751.0A CN111600924B (zh) | 2020-03-30 | 2020-03-30 | 一种数据通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111600924A true CN111600924A (zh) | 2020-08-28 |
CN111600924B CN111600924B (zh) | 2022-11-29 |
Family
ID=72188628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010237751.0A Active CN111600924B (zh) | 2020-03-30 | 2020-03-30 | 一种数据通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111600924B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112242997A (zh) * | 2020-09-28 | 2021-01-19 | 成都长虹网络科技有限责任公司 | 数据通信方法、装置和可读存储介质 |
CN113268042A (zh) * | 2021-05-13 | 2021-08-17 | 矿冶科技集团有限公司 | 一种上位机程序处理方法、装置以及电子设备 |
CN115509794A (zh) * | 2022-10-20 | 2022-12-23 | 北京和欣运达科技有限公司 | 一种嵌入式智能设备的故障追踪方法及系统 |
CN117640290A (zh) * | 2023-12-05 | 2024-03-01 | 北京和欣运达科技有限公司 | 一种网关获取下位机设备的对象属性数据的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150039752A1 (en) * | 2013-07-30 | 2015-02-05 | Edward Hague | Advanced BACNet router |
CN105187318A (zh) * | 2015-09-07 | 2015-12-23 | 北京和欣运达科技有限公司 | 一种通讯网关实现方法 |
CN106446140A (zh) * | 2016-09-20 | 2017-02-22 | 北京百度网讯科技有限公司 | 用于数据持久化的方法及装置 |
CN107862074A (zh) * | 2017-11-24 | 2018-03-30 | 中国航空工业集团公司西安航空计算技术研究所 | 大数据量参数快速读写方法 |
-
2020
- 2020-03-30 CN CN202010237751.0A patent/CN111600924B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150039752A1 (en) * | 2013-07-30 | 2015-02-05 | Edward Hague | Advanced BACNet router |
CN105187318A (zh) * | 2015-09-07 | 2015-12-23 | 北京和欣运达科技有限公司 | 一种通讯网关实现方法 |
CN106446140A (zh) * | 2016-09-20 | 2017-02-22 | 北京百度网讯科技有限公司 | 用于数据持久化的方法及装置 |
CN107862074A (zh) * | 2017-11-24 | 2018-03-30 | 中国航空工业集团公司西安航空计算技术研究所 | 大数据量参数快速读写方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112242997A (zh) * | 2020-09-28 | 2021-01-19 | 成都长虹网络科技有限责任公司 | 数据通信方法、装置和可读存储介质 |
CN112242997B (zh) * | 2020-09-28 | 2022-10-11 | 成都长虹网络科技有限责任公司 | 数据通信方法、装置和可读存储介质 |
CN113268042A (zh) * | 2021-05-13 | 2021-08-17 | 矿冶科技集团有限公司 | 一种上位机程序处理方法、装置以及电子设备 |
CN115509794A (zh) * | 2022-10-20 | 2022-12-23 | 北京和欣运达科技有限公司 | 一种嵌入式智能设备的故障追踪方法及系统 |
CN117640290A (zh) * | 2023-12-05 | 2024-03-01 | 北京和欣运达科技有限公司 | 一种网关获取下位机设备的对象属性数据的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111600924B (zh) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111600924B (zh) | 一种数据通讯方法 | |
US10768857B2 (en) | Storage system having a controller that selects a die of a solid state disk to store data | |
CN108156267B (zh) | 一种雾计算架构中使用缓存改善网站访问时延的方法 | |
US20150131666A1 (en) | Apparatus and method for transmitting packet | |
JP2016208555A (ja) | ネットワーク管理 | |
US6618760B1 (en) | Forwarding information retrieval technique | |
CN101170555A (zh) | 地址解析协议高速缓存管理方法以及相关通信装置 | |
CN110808910A (zh) | 一种支持QoS的OpenFlow流表节能存储架构及其应用 | |
CN104809076A (zh) | Cache的管理方法及装置 | |
CN113315705B (zh) | 基于单次哈希布隆过滤器的Flexible IP寻址方法及装置 | |
CN111506604A (zh) | 访问数据的方法、装置和计算机程序产品 | |
US6760813B1 (en) | Devices, softwares and methods for preemptively updating expiring entries in a cache memory to anticipate future inquiries | |
CN111490906B (zh) | 一种网关设备策略的分析方法、装置及可读存储介质 | |
TWI241089B (en) | Method and apparatus to perform network routing using multiple length trie blocks | |
KR20150129808A (ko) | 메모리 노드를 포함하는 분산형 메모리 시스템을 위한 방법 및 장치 | |
US7233579B1 (en) | Routing table for forwarding Internet Protocol (IP) packets through a communications network | |
CN101436965A (zh) | 一种共享接入客户端数量的检测方法、装置以及系统 | |
CN112261019B (zh) | 分布式拒绝服务攻击检测方法、装置及存储介质 | |
US20060274762A1 (en) | Method and system for supporting efficient and cache-friendly TCP session lookup operations based on canonicalization tags | |
US6795816B2 (en) | Method and device for translating telecommunication network IP addresses by a leaky-controlled memory | |
JP3970448B2 (ja) | 情報中継方法および装置 | |
JPH06290090A (ja) | 遠隔ファイルアクセスシステム | |
CN112291212B (zh) | 静态规则的管理方法、装置、电子设备和存储介质 | |
CN114640678A (zh) | 基于SR-IOV的Pod管理方法、设备及介质 | |
Ammar et al. | Using hint tables to locate resources in distributed systems |
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 |