[发明专利]一种集成工业以太网从站自主识别主站的方法有效
申请号: | 201410703498.8 | 申请日: | 2014-11-30 |
公开(公告)号: | CN104503390A | 公开(公告)日: | 2015-04-08 |
发明(设计)人: | 陈在平;孙逊;贾超;倪建云 | 申请(专利权)人: | 天津理工大学 |
主分类号: | G05B19/418 | 分类号: | G05B19/418 |
代理公司: | 天津佳盟知识产权代理有限公司12002 | 代理人: | 李益书 |
地址: | 300384天津市西青*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 集成 工业 以太网 自主 识别 方法 | ||
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从站程序的加载运行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津理工大学;,未经天津理工大学;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410703498.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种齿轮加工监控装置
- 下一篇:一种农庄供水泄洪控制系统