一种基于级联以太网设备的数据采集方法及***
技术领域
本发明涉及一种数据采集方法,特别是一种基于级联以太网的数据采集方法,本发明还公开了应用该数据采集方法的数据采集***。
背景技术
工业自动化***正向分布化、智能化的实时控制方面发展,其中通信成为关键,由于以太网有"一网到底"的美誉,被人们普遍认为是未来工业网络的最佳解决方案。
数据采集是利用一种装置从***外部采集数据并输入到***内部的一种接口技术,每间隔一定时间(称采样周期)对同一点数据重复采集,广泛应用在各个领域。随着互联网行业的快速发展,与以太网结合的数据采集已经被广泛应用于互联网及分布式领域,将数据采集带入了一个全新的时代。
周期性的数据采集采用客户机/服务器的工作架构,数据汇总端作为客户机,采集终端作为服务器,当数据汇总端需要采集数据时,向采集终端发送命令请求,采集终端响应命令请求,返回要采集的数据。按照此通信流程,在一个采样周期内,完成对其他剩余的采集终端的数据采集。其缺陷在于:级联的以太网终端设备,需要指定IP地址,相邻设备端口之间的IP地址必须在一个网段。不能动态调整终端设备数量,当增加或减少级联设备的数量时,需要修改相关联设备的网络连接配置项,来保证增减后相邻设备之间能够相互访问。
另外,级联设备的数量增加,需要的IP地址个数呈倍数增加,每个设备运行TCP/IP协议栈的时间将不能被忽略,数据通信的实时性大打折扣。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种无需配置,自适应网络设备数量变化的基于级联以太网设备的数据采集方法。
本发明所要解决的另一个技术问题是提供了应用前述数据采集方法的***。
本发明所要解决的技术问题是通过以下的技术方案来实现的。本发明是一种基于级联以太网设备的数据采集方法,其特点是,该方法用于“数据汇总终端”及若干套“采集终端”之间的数据通信;数据汇总终端和采集终端均为终端设备;
若干套“采集终端”之间通过一根以太网电缆,采用手拉手的方式进行连接,最终连接于“数据汇终端”,形成一种以太网接口的级联***;
该方法基于以太网的数据链路层进行扩展,使用了标识符和数据域,标识符长度是2字节,数值大于0x5dc。
本发明所述的基于级联以太网设备的数据采集方法,其进一步优选的技术方案是:对于连接到本级联***中的数据汇总终端或采集终端,接收到一个新的数据帧,首先判断标识符域里的数值是否与定义的数值相同,如相同,则采用数据采集方法进行处理;如不同,则由标准的协议栈进行处理。
本发明所述的基于级联以太网设备的数据采集方法,其进一步优选的技术方案是:使用数据域的第一个字节作为命令码,根据数值的不同,完成不同功能的通信;设计数据域的第二个字节作为辅助码;命令码的定义如下:
(1) “0x1”表示向指定终端设备发送数据帧
终端设备向指定硬件物理地址的终端设备发送数据帧,符合该地址的终端设备接收到该数据帧后,根据辅助码进行相应的功能处理;
(2) “0x2”表示响应命令码“0x1”的请求
终端设备接收到命令码为“0x1”的数据帧后,回复命令码为“0x2”的数据帧;
(3) “0x3”表示向多个终端设备发送数据帧
终端设备向整个级联***中的其他设备发送命令码为“0x3”数据帧,接收到该数据帧的终端设备,根据辅助码进行相应的功能处理;
(4) “0x4”表示响应命令码“0x3”的请求
终端设备接收到命令码为“0x3”的数据帧后,回复命令码为“0x4”的数据帧。
本发明所述的基于级联以太网设备的数据采集方法,其进一步优选的技术方案是:级联***中的终端设备采用下述方法快速获取相邻设备及其串联设备的硬件物理地址:
(1)终端设备即请求方向相邻的终端设备即响应方1发送命令码为“0x3”的数据帧,数据帧中源物理地址是其自身,目的物理地址是全“1” 的广播地址,辅助码为“1”,数据域的第3到第8的位置保存自身的物理地址;
(2)响应方1接收到该数据帧后,响应发送命令码为“0x4”的数据帧,辅助码为“1”,数据域的第3到第8的位置保存请求方的物理地址,数据域的第9到第14的位置保存自身的物理地址;同时通过另外一个端口向相邻的终端设备即响应方2转发该数据帧,转发前把源物理地址改成响应方1的物理地址;
(3)响应方2接收到该数据帧后,响应发送命令码为“0x4”的数据帧,同时通过另外一个端口向相邻的终端设备即响应方3转发该数据帧;
响应方1接收到响应方2的响应数据帧后,通过另外一个以太网端口进行转发,直到请求方接收到此响应数据帧;
(4)响应方1接收到响应方2的响应数据帧后,通过另外一个以太网端口进行转发,直到请求方接收到此响应数据帧;
(5)以此类推,直到最后一个终端设备响应发送命令码为“0x4”的数据帧。
本发明所述的基于级联以太网设备的数据采集方法,其进一步优选的技术方案是:级联***中的任意两个终端设备之间进行数据通信,完成配置、控制、报警灯功能,终端设备X和终端设备Y进行数据通信,两个设备之间有一个中转设备,其数据通信方法如下:
(1)终端设备X向相邻的中转设备发送命令码为“0x1”的数据帧,数据帧中源物理地址是其自身,目的物理地址是全“1” 的广播地址,辅助码为“1”,数据域的第3到第8的位置保存自身的物理地址,数据域的第9到第14的位置保存终端Y的物理地址;
(2)中转设备接收到该数据帧,判断数据域的第9到第14的位置的数值和自身物理地址不同后,通过另外一个以太网端口进行转发,转发前把源物理地址改成中转设备的物理地址;
(3)终端设备Y接收到中转设备转发的数据帧,判断数据域的第9到第14的位置的数值和自身物理地址相同,依据辅助码的值进行不同功能的处理;
(4)终端设备Y向中转设备发送命令码为“0x2”的响应数据帧,数据帧中源物理地址是其自身,目的物理地址是中转设备地址,辅助码为“1”,数据域的第3到第8的位置保存终端设备X的物理地址,数据域的第9到第14的位置保存自身的物理地址;
(5)中转设备接收到该数据帧,判断命令码为“0x2”及数据域的第3到第8的值和自身地址不同后,通过另外一个以太网端口进行转发,转发前把源物理地址改成中转设备的物理地址,目标物理地址是终端设备X的地址;
(6)终端设备X接收到该转发帧,判断命令码为“0x2”及数据域的第3到第8的值和自身地址相同后,最终接收到终端设备Y的响应数据帧。
本发明所述的基于级联以太网设备的数据采集方法,其进一步优选的技术方案是:“数据汇总端”向多个“采集终端”发起通信请求,要求它们把各自的采集数据返回给“数据汇总端”,实现“一对多”周期性的数据通信过程;在一个“一对多”通信周期里,“数据汇总端”只需发送一次命令请求,多个“采集终端”依次响应,返回本终端的采集数据:
(1)“数据汇总端”即请求方向相邻的“采集终端”即响应方1发送命令码为“0x3”的数据帧,数据帧中源物理地址是其自身,目的物理地址是全“1” 的广播地址,辅助码为“2”,数据域的第3到第8的位置保存自身的物理地址;
(2)响应方1接收到该数据帧后,响应发送命令码为“0x4”的数据帧,辅助码为“2”,数据域的第3到第8的位置保存请求方的物理地址,数据域的第9到第14的位置保存自身的物理地址;同时通过另外一个端口向相邻的终端设备即响应方2转发该数据帧,转发前把源物理地址改成响应方1的物理地址;
(3)响应方2接收到该数据帧后,响应发送命令码为“0x4”的数据帧,同时通过另外一个端口向相邻的终端设备即响应方3转发该数据帧;
(4)响应方1接收到响应方2的响应数据帧后,通过另外一个以太网端口进行转发,直到请求方接收到此响应数据帧;
(5)以此类推,直到最后一个终端设备响应发送命令码为“0x4”的数据帧。
本发明所要解决的技术问题还可以通过以下的技术方案来进一步实现。本发明还公开了一种实现以上技术方案所述数据采集方法的基于级联以太网设备的数据采集***,其特点是,该数据采集***包括“数据汇总终端”及若干套“采集终端”,若干套“采集终端”之间通过一根以太网电缆,采用手拉手的方式进行连接,最终连接于“数据汇终端”,形成一种以太网接口的级联***。每个“采集终端”上均设有2个以太网接口。
基于以太网设备可以接收全“1”的物理地址或和自身物理地址相同的数据帧,不符合上述物理地址的数据帧将被丢弃。本发明依据此原理,设计了“快速物理地址交换”、“点对点通信”和“一对多的通信”方法,实现了级联以太网的数据采集方法。
1、独特的标识符设计
通过标识符区别于TCP/IP等数据帧,符合本发明标识符特征的数据帧才能被处理。本发明设计的标识符兼容于现有的硬件网络设备和标准的软件协议栈。换句话说,采用本发明的终端设备可以和其他标准网络设备共存于一个局域网中。
2、自适应终端设备的增减,无需配置
用户不必设定IP地址,也不用关心IP地址是否在一个网段。即使级联网络动态收缩,增加或减少终端设备,本发明的方法依然能正常工作不受影响。
与现有技术相比,本发明的优点及技术效果如下:
(1)无需配置,自适应网络设备数量变化
用户不必设定IP地址,也不用关心IP地址是否在一个网段。即使级联网络动态收缩,增加或减少了终端设备,本发明的方法依然能正常工作不受影响。
(2)高效容易实现,数据通信具有更好的实时性
a)原有技术转发一个数据帧需要运行庞大的TCP/IP协议栈才能完成,花费的时间远远超过本发明的时间。
b)本发明的方法可用FPGA(现场可编程门阵列)技术或定制芯片实现,数据帧的接收/处理/转发,将能并行执行,数据帧的转发时间将会变得忽略不计。
附图说明
图1为本发明的整个级联***结构示意图;
图2为以太网数据帧格式示意图;
图3为接收到一个新数据帧的处理流程图;
图4为快速硬件地址交换流程示意图;
图5为点对点通信过程示意图;
图6为一对多的通信方法示意图。
实施方式
以下参照附图,进一步描述本发明的具体技术方案,以便于本领域的技术人员进一步地理解本发明,而不构成对其权利的限制。
实施例1,一种基于级联以太网的数据采集方法:用于“数据汇总终端”及N套“采集终端”(N≥1)之间的数据通信。
N套“采集终端”之间通过一根以太网电缆,采用手拉手的方式进行连接,最终连接于“数据汇终端”,形成一种以太网接口的级联***结构。 整个级联***结构图如图1所示。
数据采集方法不与已有的HUB、交换机等网络设备和TCP/IP等标准协议栈产生冲突。
数据采集方法基于以太网的数据链路层进行扩展,使用了标识符和数据域,标识符长度是2字节,数值大于0x5dc 。如图2所示。
对于连接到本级联***中的数据汇总终端或采集终端,接收到一个新的数据帧,首先判断标识符域里的数值是否与本发明定义的数值相同,如相同,则采用本发明的方法进行处理;如不同,则由标准的协议栈(TCP/IP等)进行处理。整个数据帧的处理流程如3所示。
该方法使用数据域的第一个字节作为命令码,根据数值的不同,完成不同功能的通信。本发明设计数据域的第二个字节作为辅助码。
为了叙述方便,数据汇总终端和采集终端简称为终端设备。
命令码的定义:
(1) “0x1”表示向指定终端设备发送数据帧
终端设备向指定硬件物理地址的终端设备发送数据帧,符合该地址的终端设备接收到该数据帧后,根据辅助码进行相应的功能处理。
(2) “0x2”表示响应命令码“0x1”的请求
终端设备接收到命令码为“0x1”的数据帧后,回复命令码为“0x2”的数据帧。
(3) “0x3”表示向多个终端设备发送数据帧
终端设备向整个级联***中的其他设备发送命令码为“0x3”数据帧,接收到该数据帧的终端设备,根据辅助码进行相应的功能处理。
(4) “0x4”表示响应命令码“0x3”的请求
终端设备接收到命令码为“0x3”的数据帧后,回复命令码为“0x4”的数据帧。
相关通信方法如下:
(1)快速硬件地址交换方法
级联***中的终端设备利用此方法可以快速获取相邻设备及其串联设备的硬件物理地址。
a)终端设备(请求方)向相邻的终端设备(响应方1)发送命令码为“0x3”的数据帧,数据帧中源物理地址是其自身,目的物理地址是全“1” 的广播地址,辅助码为“1”,数据域的第3到第8的位置保存自身的物理地址。
b)响应方1接收到该数据帧后,响应发送命令码为“0x4”的数据帧,辅助码为“1”,数据域的第3到第8的位置保存请求方的物理地址,数据域的第9到第14的位置保存自身的物理地址;同时通过另外一个端口向相邻的终端设备(响应方2)转发该数据帧,转发前把源物理地址改成响应方1的物理地址。
c)响应方2接收到该数据帧后,响应发送命令码为“0x4”的数据帧,同时通过另外一个端口向相邻的终端设备(响应方3)转发该数据帧。
响应方1接收到响应方2的响应数据帧后,通过另外一个以太网端口进行转发,直到请求方接收到此响应数据帧
d)响应方1接收到响应方2的响应数据帧后,通过另外一个以太网端口进行转发,直到请求方接收到此响应数据帧
e)以此类推,直到最后一个终端设备响应发送命令码为“0x4”的数据帧。
整个处理过程如图4所示。图中“AB”、“CD”、“EF”等表示终端设备的硬件地址,以下同。
(2)点对点的数据通信
级联***中的任意两个终端设备之间进行数据通信,完成配置、控制、报警灯功能。
终端X(AB)和终端Y(EF)进行数据通信,两个设备之间有一个中转设备(CD)。
a)终端X向相邻的中转设备发送命令码为“0x1”的数据帧,数据帧中源物理地址是其自身,目的物理地址是全“1” 的广播地址,辅助码为“1”,数据域的第3到第8的位置保存自身的物理地址,数据域的第9到第14的位置保存终端Y的物理地址;
b)中转设备接收到该数据帧,判断数据域的第9到第14的位置的数值和自身物理地址不同后,通过另外一个以太网端口进行转发,转发前把源物理地址改成中转设备的物理地址;
c)终端Y接收到中转设备转发的数据帧,判断数据域的第9到第14的位置的数值和自身物理地址相同,依据辅助码的值进行不同功能的处理;
d)终端Y向中转设备发送命令码为“0x2”的响应数据帧,数据帧中源物理地址是其自身,目的物理地址是中转设备地址,辅助码为“1”,数据域的第3到第8的位置保存终端X的物理地址,数据域的第9到第14的位置保存自身的物理地址;
e)中转设备接收到该数据帧,判断命令码为“0x2”及数据域的第3到第8的值和自身地址不同后,通过另外一个以太网端口进行转发,转发前把源物理地址改成中转设备的物理地址,目标物理地址是终端X的地址;
f)终端X接收到该转发帧,判断命令码为“0x2”及数据域的第3到第8的值和自身地址相同后,最终接收到终端Y的响应数据帧。
整个处理过程如图5所示。图中“XXXX”、“YYYY”等表示数据帧中的数据,以下同。
(3)一对多的通信方法
“数据汇总端”向多个“采集终端”发起通信请求,要求它们把各自的采集数据返回给“数据汇总端”,“一对多”通信是周期性的数据通信过程。
在一个“一对多”通信周期里,“数据汇总端”只需发送一次命令请求,多个“采集终端”按照本发明的方法依次响应,返回本终端的采集数据。整个处理过程如图6所示。
a)“数据汇总端”(请求方)向相邻的“采集终端”(响应方1)发送命令码为“0x3”的数据帧,数据帧中源物理地址是其自身,目的物理地址是全“1” 的广播地址,辅助码为“2”,数据域的第3到第8的位置保存自身的物理地址。
b)响应方1接收到该数据帧后,响应发送命令码为“0x4”的数据帧,辅助码为“2”,数据域的第3到第8的位置保存请求方的物理地址,数据域的第9到第14的位置保存自身的物理地址;同时通过另外一个端口向相邻的终端设备(响应方2)转发该数据帧,转发前把源物理地址改成响应方1的物理地址。
c)响应方2接收到该数据帧后,响应发送命令码为“0x4”的数据帧,同时通过另外一个端口向相邻的终端设备(响应方3)转发该数据帧。
d)响应方1接收到响应方2的响应数据帧后,通过另外一个以太网端口进行转发,直到请求方接收到此响应数据帧
e)以此类推,直到最后一个终端设备响应发送命令码为“0x4”的数据帧。
实施例2,参照图1,一种实现实施例1所述数据采集方法的基于级联以太网设备的数据采集***,该数据采集***包括“数据汇总终端”及若干套“采集终端”,若干套“采集终端”之间通过一根以太网电缆,采用手拉手的方式进行连接,最终连接于“数据汇终端”,形成一种以太网接口的级联***。每个“采集终端”上均设有2个以太网接口。