CN104503390B - 一种集成工业以太网从站自主识别主站的方法 - Google Patents

一种集成工业以太网从站自主识别主站的方法 Download PDF

Info

Publication number
CN104503390B
CN104503390B CN201410703498.8A CN201410703498A CN104503390B CN 104503390 B CN104503390 B CN 104503390B CN 201410703498 A CN201410703498 A CN 201410703498A CN 104503390 B CN104503390 B CN 104503390B
Authority
CN
China
Prior art keywords
slave station
packet
integrated
tcp
modbus
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.)
Expired - Fee Related
Application number
CN201410703498.8A
Other languages
English (en)
Other versions
CN104503390A (zh
Inventor
贾超
孙逊
陈在平
倪建云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University of Technology
Original Assignee
Tianjin University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin University of Technology filed Critical Tianjin University of Technology
Priority to CN201410703498.8A priority Critical patent/CN104503390B/zh
Publication of CN104503390A publication Critical patent/CN104503390A/zh
Application granted granted Critical
Publication of CN104503390B publication Critical patent/CN104503390B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total 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/4185Total 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/41855Total 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 eth0promisc”完成以太网卡模式的修改,图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结构体是以太网报文头的函数体形式,具体构成如下:
接着,通过判断语句,判断以太网报文头中的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主站所发数据包时只需要知道以太网报文头即可。将数据包所复制的变量强制转化为structether_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从站程序的加载运行。
CN201410703498.8A 2014-11-30 2014-11-30 一种集成工业以太网从站自主识别主站的方法 Expired - Fee Related CN104503390B (zh)

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 CN104503390A (zh) 2015-04-08
CN104503390B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108919762B (zh) * 2018-07-06 2021-05-25 东莞市李群自动化技术有限公司 基于工业以太网的控制方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5946317A (en) * 1993-06-30 1999-08-31 Harris Corporation Multi-master supervisory system
DE10139342A1 (de) * 2001-08-10 2003-03-06 Infineon Technologies Ag Verfahren zum Übertragen von Daten zwischen einer Hauptstation und einer Nebenstation und Datenübertragungssystem
CN101232425B (zh) * 2007-01-26 2010-04-21 京信通信系统(中国)有限公司 一种总线式分布控制系统主从站对端控制方法
CN101425948B (zh) * 2008-10-23 2011-10-26 上海大学 工业无线网接入工业以太网和现场总线的多协议网关及协议转换方法
CN103248547B (zh) * 2013-04-28 2016-08-17 西南大学 Modbus RTU从站快速捕获数据的方法及从站

Also Published As

Publication number Publication date
CN104503390A (zh) 2015-04-08

Similar Documents

Publication Publication Date Title
CN112104654B (zh) 多协议自动识别与转换方法,存储介质及智能网关
CN101902484B (zh) 局域网http应用业务分类方法及系统
CN103312565B (zh) 一种基于自主学习的对等网络流量识别方法
CN104320304B (zh) 一种易扩展的多方式融合的核心网用户流量应用识别方法
CN102387045B (zh) 嵌入式p2p流量监控系统及方法
CN104933138A (zh) 网页爬虫系统及网页爬取方法
CN111757378B (zh) 一种无线网络中设备识别方法及装置
CN101599897B (zh) 一种基于应用层检测的对等网络流量控制方法
CN108833565B (zh) 一种监控服务器的方法、装置、服务器和存储介质
CN108650195B (zh) 一种app流量自动识别模型构建方法
CN105302885A (zh) 一种全文数据的提取方法和装置
CN105577439B (zh) 一种基于传感设备为基础的仿真模拟方法
CN106411644A (zh) 基于dpi技术的网络共享设备检测方法及系统
CN105704206A (zh) 与led显示控制卡进行以太网通信的实现方法
CN104503390B (zh) 一种集成工业以太网从站自主识别主站的方法
CN112418360A (zh) 卷积神经网络的训练方法、行人属性识别方法及相关设备
CN111404768A (zh) 一种dpi识别的实现方法及设备
CN106789416A (zh) 工控系统专用协议识别方法与系统
CN109005082A (zh) 一种利用crc校验字段捕获以太网报文的方法及装置
CN107592554A (zh) 直播视频转发方法及装置
CN106533728B (zh) 服务器信息收集方法和装置
CN105812346A (zh) 一种串口设备和以太网设备的数据交互方法
CN106330768B (zh) 一种基于云计算的应用识别方法
CN111093227B (zh) 一种基于LoRaWAN的无线传输数据采集方法及系统
CN104009957B (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

Granted publication date: 20170524

Termination date: 20211130

CF01 Termination of patent right due to non-payment of annual fee