CN104503390A - 一种集成工业以太网从站自主识别主站的方法 - Google Patents
一种集成工业以太网从站自主识别主站的方法 Download PDFInfo
- Publication number
- CN104503390A CN104503390A CN201410703498.8A CN201410703498A CN104503390A CN 104503390 A CN104503390 A CN 104503390A CN 201410703498 A CN201410703498 A CN 201410703498A CN 104503390 A CN104503390 A CN 104503390A
- Authority
- CN
- China
- Prior art keywords
- slave station
- packet
- integrated
- main website
- tcp
- 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
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000004891 communication Methods 0.000 claims abstract description 20
- 238000004458 analytical method Methods 0.000 claims description 17
- 230000004069 differentiation Effects 0.000 claims description 3
- 230000000717 retained effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/4185—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
- G05B19/41855—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication by local area network [LAN], network structure
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种集成工业以太网从站自主识别主站的方法,应用在嵌入有Linux操作系统的集成从站上。该方法基于工业以太网主从站之间通信前,主站会向从站发送识别信息这一前提,采用在Linux操作系统下原始套接字编程的方法,抓取通信网络中主站发出的识别信息,并对抓取到的识别信息进行区分判断,从而确定主站的类型并加载相应的从站程序。通过该方法,可以实现工业以太网集成从站自主识别与之相连接的主站类型,并完成自动加载运行与之对应的从站程序。
Description
技术领域
本发明属于工业控制领域,涉及工业控制现场,运行有嵌入式Linux操作系统的集成工业以太网从站,与不同种类工业以太网主站进行通信时,进行自主识别与之连接的主站种类,进行相应从站程序的选择运行。
背景技术
以太网技术向工业现场的推广,为生产效率的提高,产品的优化等等多方面都起到了极大的促进作用。目前世界上有多种工业以太网标准,种类繁多,各有优点,在某一生产过程中,往往需要几种工业以太网配合使用会产生更大的收益。所以,在工业控制现场比较流行使用集成工业以太网从站,但是,集成从站内对于从站程序的选择运行,一直采用传统的手动加载运行,即在上电前确定集成从站的性质,这给大规模的工业生产带来了很多不便。目前,急需一种方法,能够实现集成从站自主识别与之连接的主站类型,并自动运行与之对应的从站程序。
发明内容
本发明的目的是为了解决现有技术上存在的上述问题,提供一种集成工业以太网从站能够识别主站类型并自主选择加载运行相应从站程序的方法。
本发明提供的集成工业以太网从站自主识别主站的方法,应用在工业控制现场,运行有嵌入式Linux操作系统的集成工业以太网从站,以下简称集成从站;所述的集成从站集成了Modbus-TCP和POWERLINK从站程序;此方法通过分析判断来自通信网络中的主站识别信息,来确定与集成从站相连接的主站类型,从而选择加载运行对应的集成从站程序,实现了集成从站对主站类型的自主识别和集成从站程序的自动加载,摆脱了传统的手动加载的方法;
该方法具体的实现步骤如下:
第1步、抓取工业以太网通信网络中主站发送的识别数据包;
第1.1步、启动集成从站中的Linux操作系统;
第1.2步、设置集成从站以太网芯片的工作模式为混杂模式,这样集成从站就不会只接受目的地址为它的数据包,而是全部经过它的数据包,方便下面获得主站发送来的识别信息数据包。
第1.3步、通过socket套接字函数创建一个原始套接字的文件描述符;
第1.4步、利用recv()函数来接受来自通信网络中的数据包,并将接收到的数据包赋值到一个字符型指针变量中,方便后续对其进行分析。
第2步、分析抓取到的通信网络中的数据包;
第2.1步、将第1步中抓取到的数据包划分格式,因为所抓取的数据包赋值给某一变量时是没有划分格式的,数据包从左向右依次为以太网报文头、IP报文头、TCP报文头或者UDP报文头,在区分Modbus-TCP和POWERLINK工业以太网只需要知道以太网报文头即可。将抓取到的数据包强制转化为struct ether_header结构体,那么数据包的以太网报文头便被保留下来。
第2.2步、判断struct ether_header结构体中的ether_type成员变量,如果变量的值为0x0806则可确定数据包来自Modbus-TCP主站,与集成从站相连的是Modbus-TCP主站,结束第2步,进入第3步;如果ether_type的值,不为0x0806,继续分析数据包。
第2.3步、继续判断struct ether_header结构体中的ether_type成员变量,如果变量的值为0x88ab则可确定数据包来自POWERLINK主站,与集成从站相连的是POWERLINK主站,结束第2步,进入第3步;如果ether_type的值,不为0x88ab,继续分析数据包。
第2.4步、抛弃所抓取的数据包,返回第1步,重新抓取通信网络中其他数据包。
第3步、根据第2步的分析结果,加载相应的从站程序;
此步骤根据第2步中对ether_type成员变量的分析判断结果不同,选择加载运行不同的工业以太网从站程序,或者不加载运行:
第3.1步、对于Modbus-TCP主站,Modbus-TCP作为Linux下的可执行程序,在可执行文件中通过system()函数来完成Modbus-TCP从站程序的运行;
第3.2步、对于POWERLINK主站,POWERLINK从站程序代码被交叉编译后生成一个Linux内核模块,需要通过insmod命令加载到Linux内核中才能运行;这里,通过编写一个shell脚本文件,在可执行程序中通过执行system()来执行脚本文件,从而完成POWERLINK从站程序的加载运行。
本发明的优点和有益效果
通过本发明采用的技术方案可以看出,本方法能够实现集成工业以太网从站对与之相连接主站进行判断识别,并加载相应的从站程序,与主站建立连接,完成后续通信的任务。摆脱了传统的手动选择方式所带来的工作量大,不确定因素多等问题。现在的方法既方便又安全可靠,有更高的实用价值。
附图说明
图1是数据包抓取流程图;
图2 是以太网控制芯片设置分析图;
图3是Modbus-TCP和POWERLINK主站报文分析图;
图4是Modbus-TCP和POWERLINK报文以太网头分析图;
图5是数据包分析流程图。
具体实施方式
本发明提供的集成工业以太网从站自主识别主站的方法,具体步骤如下:
第1步、抓取工业以太网通信网络中主站发送的识别数据包;
图1是集成从站嵌入式Linux操作系统下,如何运行程序来抓取通信网络上的数据包。
首先启动Linux操作系统,提供软件程序的工作环境,加载af_packet.ko原始套接字功能模块,一般的嵌入式Linux操作系统中往往不具有这一模块,需要自行加载到内核中。接着,将与集成从站相连的以太网芯片的工作模式设置成混杂模式,因为以太网芯片的缺省工作模式为直接模式或广播模式,缺省工作模式下,以太网控制芯片会判断每个物理数据帧目的地是否为本站地址,如果不是就将它丢弃。然而,集成从站需要在从站程序运行前,完成对通信网络中主站发出的带有识别信息的数据包进行抓取和分析。因此,需要将适配器网卡设置成为混杂模式,这样就可以达到对于网络信息监视捕获的目的。通过命令“ifconfig eth0 promisc”完成以太网卡模式的修改,图2上下两部分显示出了以太网控制芯片设置前后的状态。
第2步、分析抓取到的通信网络中的数据包;
这里涉及到的图3和图4都是通过wireshark抓包工具,抓取到的来自通信网络中数据包。
图3中方框标注的内容分别为Modbus-TCP和POWERLINK工业以太网主站发出的识别信息数据包,观察比较可知,二者在协议类型(protocol选项)上存在差异,Modbus-TCP是ARP,POWERLINK是epl,以此作为区标志。
图4是这两种协议以太网报文头的分析图。本发明方法对抓取到的数据包进行分析,所涉及到的内容是在数据链路层,主要判定以太网报文头,对上层网络包括网络层和传输层,不作分析判定。Modbus-TCP和POWERLINK为两种工业以太网通信协议,使用的均为Ethernet II帧格式,这里之所以要突出是使用的Ethernet II型数据帧,是因为它的12字节之后为类型选项,而Modbus-TCP和POWERLINK这两种协议在这里有所区分。Modbus-TCP协议是基于TCP/IP的工业以太网,它的以太网报文头中此项内容为0x0806;POWERLINK协议不是基于TCP/IP的以太网,它有自己的数据链路层协议标准,因此它的以太网报文头的类型内容为0x88ab。因此,就可以通过判断抓取到的数据包的以太网数据报文类型,来确定与集成从节点相连接的通信主站类型。
图5是分析判断所抓取到数据包的流程图。首先,根据数据包的构成形式,将抓取到的数据包划分格式,因为所抓取的数据包给某一变量是没有划分格式的,数据包从左向右依次为以太网报文头、IP报文头、TCP报文头或者UDP报文头,根据上面的分析,可知区分Modbus-TCP和POWERLINK工业以太网只需要知道以太网报文头即可。将数据包赋值到某一字符指针变量中,并将此变量强制转化为struct ether_header结构体,那么数据包的以太网报文头便被保留下来。struct ether_header结构体是以太网报文头的函数体形式,具体构成如下:
*************以太网报文头的结构体*************
struct ether_header
{
u_int8_t ether_dhost[ETH_ALEN];
u_int8_t ether_shost[ETH_ALEN];
u_int16_t ether_type;
};
接着,通过判断语句,判断以太网报文头中的ether_type这一项,根据图3的报文分析可知,如果以太网头的类型为0x0806,就是Modbus-TCP主站的识别信息,那么就加载Modbus-TCP从站程序;如果以太网头的类型为0x88ab,就是POWERLINK主站的识别信息,那么就加载POWERLINK从站程序;如果不是这两种的一个,那么就是垃圾包,将其丢弃,并通过while函数返回到第1步,重新抓取分析数据包。
第3步、根据第2步的分析结果,加载相应的从站程序
此步骤根据第2步中对ether_type成员变量的分析判断结果不同,选择加载运行不同的工业以太网从站程序,或者不加载运行。由于Modbus-TCP和POWERLINK的从站程序的特点不同,它们运行的方式也是不同的。Modbus-TCP作为Linux下的可执行程序,在可执行文件中通过system()函数来完成Modbus-TCP从站程序的运行;而POWERLINK从站程序代码被交叉编译后生成一个Linux内核模块,需要通过insmod命令加载到Linux内核中才能运行,但是,从可执行文件中是无法执行insmod命令来加载内核模块,这里,通过编写一个shell脚本文件,在可执行程序中通过执行system()来执行脚本文件,从而间接地完成POWERLINK从站程序的加载运行。
Claims (1)
1.一种集成工业以太网从站自主识别主站的方法,该方法应用在工业控制现场,运行有嵌入式Linux操作系统的集成工业以太网从站,以下简称集成从站;所述的集成从站集成了Modbus-TCP和POWERLINK从站程序;此方法通过分析判断来自通信网络中的主站识别信息,来确定与集成从站相连接的主站类型,从而选择加载运行对应的集成从站程序,实现了集成从站对主站类型的自主识别和集成从站程序的自动加载,摆脱了传统的手动加载的方法;此方法的具体实现步骤如下:
第1步、抓取工业以太网通信网络中主站发送的识别数据包;
第1.1步、启动集成从站中的Linux操作系统;
第1.2步、设置集成从站以太网芯片的工作模式为混杂模式,这样集成从站就不会只接受目的地址为它的数据包,而是全部经过它的数据包,方便获得主站发送来的识别信息数据包;
第1.3步、通过socket套接字函数创建一个原始套接字的文件描述符;
第1.4步、利用recv()函数来接受来自通信网络中的数据包,并将接收到的数据包赋值到一个字符型指针变量中,方便后续对其进行分析;
第2步、分析抓取到的通信网络中的数据包;
第2.1步、将第1步中抓取到的数据包划分格式,因为所抓取的数据包赋值给某一变量时,是没有划分格式的,数据包从左向右依次为以太网报文头、IP报文头、TCP报文头或者UDP报文头,在区分Modbus-TCP和POWERLINK工业以太网只需要知道以太网报文头即可;将数据包所复制的变量强制转化为struct ether_header结构体,那么数据包的以太网报文头便被保留下来;
第2.2步、判断struct ether_header结构体中的ether_type成员变量,如果变量的值为0x0806则可确定数据包来自Modbus-TCP主站,与集成从站相连的是Modbus-TCP主站,结束第2步,进入第3步;如果ether_type的值,不为0x0806,继续分析数据包;
第2.3步、继续判断struct ether_header结构体中的ether_type成员变量,如果变量的值为0x88ab则能够确定数据包来自POWERLINK主站,与集成从站相连的是POWERLINK主站,结束第2步,进入第3步;如果ether_type的值,不为0x88ab,继续分析数据包;
第2.4步、抛弃所抓取的数据包,返回第1步,重新抓取通信网络中其他数据包;
第3步、根据第2步的分析结果,加载相应的从站程序;
此步骤根据第2步中对ether_type成员变量的分析判断结果不同,选择加载运行不同的工业以太网从站程序,或者不加载运行:
第3.1步、对于Modbus-TCP主站,Modbus-TCP作为Linux下的可执行程序,在可执行文件中通过system()函数来完成Modbus-TCP从站程序的运行;
第3.2步、对于POWERLINK主站,POWERLINK从站程序代码被交叉编译后生成一个Linux内核模块,需要通过insmod命令加载到Linux内核中才能运行;这里,通过编写一个shell脚本文件,在可执行程序中通过执行system()来执行脚本文件,从而完成POWERLINK从站程序的加载运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410703498.8A CN104503390B (zh) | 2014-11-30 | 2014-11-30 | 一种集成工业以太网从站自主识别主站的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410703498.8A CN104503390B (zh) | 2014-11-30 | 2014-11-30 | 一种集成工业以太网从站自主识别主站的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104503390A true CN104503390A (zh) | 2015-04-08 |
CN104503390B CN104503390B (zh) | 2017-05-24 |
Family
ID=52944794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410703498.8A Expired - Fee Related CN104503390B (zh) | 2014-11-30 | 2014-11-30 | 一种集成工业以太网从站自主识别主站的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104503390B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108919762A (zh) * | 2018-07-06 | 2018-11-30 | 东莞市李群自动化技术有限公司 | 基于工业以太网的控制方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946317A (en) * | 1993-06-30 | 1999-08-31 | Harris Corporation | Multi-master supervisory system |
WO2003017575A1 (de) * | 2001-08-10 | 2003-02-27 | Infineon Technologies Ag | Verfahren zum übertragen von daten zwischen einer hauptstation und einer nebenstation und datenübertragungssystem |
CN101232425A (zh) * | 2007-01-26 | 2008-07-30 | 京信通信系统(中国)有限公司 | 一种总线式分布控制系统主从站对端控制方法 |
CN101425948A (zh) * | 2008-10-23 | 2009-05-06 | 上海大学 | 工业无线网接入工业以太网和现场总线的多协议网关及协议转换方法 |
CN103248547A (zh) * | 2013-04-28 | 2013-08-14 | 西南大学 | Modbus RTU从站快速捕获数据的方法及从站 |
-
2014
- 2014-11-30 CN CN201410703498.8A patent/CN104503390B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5946317A (en) * | 1993-06-30 | 1999-08-31 | Harris Corporation | Multi-master supervisory system |
WO2003017575A1 (de) * | 2001-08-10 | 2003-02-27 | Infineon Technologies Ag | Verfahren zum übertragen von daten zwischen einer hauptstation und einer nebenstation und datenübertragungssystem |
CN101232425A (zh) * | 2007-01-26 | 2008-07-30 | 京信通信系统(中国)有限公司 | 一种总线式分布控制系统主从站对端控制方法 |
CN101425948A (zh) * | 2008-10-23 | 2009-05-06 | 上海大学 | 工业无线网接入工业以太网和现场总线的多协议网关及协议转换方法 |
CN103248547A (zh) * | 2013-04-28 | 2013-08-14 | 西南大学 | Modbus RTU从站快速捕获数据的方法及从站 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108919762A (zh) * | 2018-07-06 | 2018-11-30 | 东莞市李群自动化技术有限公司 | 基于工业以太网的控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104503390B (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102571732B (zh) | 一种处理传感器协议信息的方法、装置和系统 | |
CN112104654A (zh) | 一种多协议自动识别与转换方法及智能网关 | |
CN103763154A (zh) | 一种网络流量检测方法 | |
CN107959620B (zh) | 综采设备识别方法、装置、系统、网关及存储介质 | |
CN101599897B (zh) | 一种基于应用层检测的对等网络流量控制方法 | |
CN101902484A (zh) | 局域网http应用业务分类方法及系统 | |
CN111741092A (zh) | 采集系统、集成终端以及检测系统 | |
CN108229159B (zh) | 一种恶意代码检测方法及系统 | |
CN104660384A (zh) | 一种开放式数控系统的网络远程监控方法 | |
CN105704206A (zh) | 与led显示控制卡进行以太网通信的实现方法 | |
CN106411644A (zh) | 基于dpi技术的网络共享设备检测方法及系统 | |
CN105302885A (zh) | 一种全文数据的提取方法和装置 | |
CN104503390A (zh) | 一种集成工业以太网从站自主识别主站的方法 | |
CN106330768B (zh) | 一种基于云计算的应用识别方法 | |
CN113794781B (zh) | 数据采集方法、装置、设备及存储介质 | |
CN106850559B (zh) | 一种可扩展的网络协议解析系统及方法 | |
CN106533728B (zh) | 服务器信息收集方法和装置 | |
CN103034206A (zh) | 一种采用后绑定通信插件的工业数据采集系统 | |
CN114553749A (zh) | 私有协议分析方法、装置、计算机设备及可读存储介质 | |
CN105721347A (zh) | 精确控制网络带宽的方法和系统 | |
CN102208998B (zh) | 基于fpga的corba通信装置 | |
CN111093227B (zh) | 一种基于LoRaWAN的无线传输数据采集方法及系统 | |
CN102215206A (zh) | 一种基于npta技术的网络协议识别方法及装置 | |
CN113824721B (zh) | 基于网络的信息处理方法及电子设备 | |
CN209057232U (zh) | 基于语义的物联网智能网关 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Inventor after: Jia Chao Inventor after: Sun Xun Inventor after: Chen Zaiping Inventor after: Ni Jianyun Inventor before: Chen Zaiping Inventor before: Sun Xun Inventor before: Jia Chao Inventor before: Ni Jianyun |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170524 Termination date: 20211130 |