CN102724134B - 一种简单输入输出设备的EtherNet/IP Adapter协议栈控制方法 - Google Patents
一种简单输入输出设备的EtherNet/IP Adapter协议栈控制方法 Download PDFInfo
- Publication number
- CN102724134B CN102724134B CN201210235890.5A CN201210235890A CN102724134B CN 102724134 B CN102724134 B CN 102724134B CN 201210235890 A CN201210235890 A CN 201210235890A CN 102724134 B CN102724134 B CN 102724134B
- Authority
- CN
- China
- Prior art keywords
- message
- receiving
- control method
- protocol stack
- external equipment
- 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.)
- Active
Links
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种简单输入输出设备的EtherNet/IP Adapte协议栈控制方法,包括:当与外部设备建立通信连接时,则接收外部设备发送的输入/输出I/O报文,关闭接收显式报文的接口,并对I/O报文进行处理,再将处理后的数据发送给外部设备;当与外部设备断开通信连接时,则打开接收显式报文的接口。在与外部设备建立通信连接时,则关闭接收显式报文的接口。因为对于简单输入输出设备来说,就仅需要I/O报文的传输,不需具备复杂的消息数据通信、网络管理等功能,所以关闭接收显式报文的接口会避免处理一些不需要用到的复杂的数据处理过程,从而本发明提供的方案可以降低处理开销,可以保证处理能力低的简单输入输出设备的传输数据的实时性,从而避免收发延迟。
Description
技术领域
本发明涉及通信技术领域,更具体的说,涉及简单输入输出设备的EtherNet/IP Adapter协议栈控制方法。
背景技术
简单输入输出设备,即I/O设备的处理能力低,此类简单输入输出设备的主频一般不超过50MHz,但是,却对实时性要求很高。这类设备要接入EtherNet/IP网络,就必须具备运行EtherNet/IP Adapter协议栈和TCP/IP协议栈的能力。其中,EtherNet/IP是一个面向工业自动化应用的工业应用层协议。它建立在标准UDP/IP与TCP/IP协议之上,利用固定的以太网硬件和软件,为配置、访问和控制工业自动化设备定义了一个应用层协议。
随着现场设备智能程度的不断提高,控制系统变得越来越分散,现场设备之间的数据交换量飞速增长,而现场总线的传输速率较低,为解决现场总线所带来的问题,国际上各厂商开始采用以太网来作为控制网络。相对于其他类型工业以太网而言,EtherNet/IP使用标准TCP/IP以太网,使其工业用户能直接从标准TCP/IP以太网技术本身的持续创新和成本降低等好处中获益,为此,大多数厂商选择了EtherNet/IP作为工业以太网协议。为了使简单输入输出设备也具备EtherNet/IP通信能力,就必须设计一个适用的EtherNet/IP Adapter协议栈。
目前,现有的设计方案都是按照CIP规范中定义的通信适配器设备类型(Communications Adapter)来实现,具体的对象模型如下:
请参见图1所示,图1所示的为主控设备1和简单输入输出设备2的数据交互示意图。其中,TCP/IP接口对象包含使用TCP/IP协议的信息;标识对象(Identity Object)是提供一些特定信息来辨识此设备,其参数主要包括:厂商编号(Vendor ID)、设备类型(Device Type)、产品编号(Product Code)、版本标号(Revision)、序号(Serial Number)、状态(State)等;I/0连接对象主要是用来传递I/O数据,支持一对一连接和一对多连接,通常传递的都是设备的输出、输入数据;报文路由对象(Message Router Object)是将连接对象接收过来的 显式报文(Explicit Message)解析,分发给各个对象,如TCP/IP接口对象、标识对象、应用对象等,然后将各个对象返回的数据打包,交给连接对象发送;应用对象是与具体应用相关的对象,负责实现此设备所支持的特定行为。如果此设备的功能为数字输出,则此处的应用对象就会有一个数字输出对象(Discrete Output Point Object);如果此设备支持AD功能,则此处的应用对象就会有一个模拟输入对象(Analog Input Point Object),以此类推。
在图1所示的例子中,CIP是面向连接的协议,当主控设备要与网络上的其他简单输入输出设备建立连接时,先给简单输入输出设备的未连接报文管理器21(Unconnected Message Manager,UCMM)发送连接请求,简单输入输出设备若答应请求,则创建、初始化连接对象,并向主控设备的未连接报文管理器返回响应信息,然后,主控设备创建、初始化自己的连接对象。连接划分为I/O连接(I/O Connections)和显式报文连接(Explicit Messaging Connections)。连接完成之后,就可以通过连接对象传送基于连接的显式报文或I/O报文。
在对现有技术的研究和实践过程中,本发明的发明人发现现有技术存在以下问题:
当连接建立完成后,对于简单输入输出设备来说,就仅需要I/O数据的传输,不需具备复杂的消息数据通信、网络管理等功能,基于这点,就不再需要未连接报文管理器来响应未连接的显式报文,也无需连接对象来响应基于连接的显式报文,因而也无需报文路由对象,这些对象会带来很大的处理开销,在处理能力低的简单I/O设备中就会导致无法满足I/O数据的实时传输性能。
使用符合CIP规范定义的标准的Scanner设备对运行有EtherNet/IP Adapter协议栈的典型的简单I/O设备进行测试,其中,主频为50MHz处理速度,内存为16位宽,Scanner设备端的测试记录见表1,测试参数是16ms通信周期,输入数据512字节,输出数据512字节:
表1
从表1的测试结果可以看出,收发约12万个报文后,简单I/O设备比PC机滞后约2084(125314–123230=2084)个报文,这个偏差太多,也就是说无法实时的保证16ms的通信周期。
因此,如何保证简单输入输出设备的实时性,避免收发延迟,成为目前最需要解决的问题。
发明内容
有鉴于此,本发明的设计目的在于,一种简单输入输出设备的EtherNet/IP Adapter协议栈控制方法,以保证简单输入输出设备的传输数据的实时性,避免收发延迟。
本发明实施例是这样实现的:
一种简单输入输出设备的EtherNet/IP Adapter协议栈控制方法,包括:
当与外部设备建立通信连接时,则接收所述外部设备发送的输入/输出I/O报文,关闭接收显式报文的接口,并对所述I/O报文进行处理,再将处理后的数据发送给所述外部设备;
当与所述外部设备断开通信连接时,则打开接收所述显式报文的接口。
优选地,当与外部设备建立通信连接时,还包括:
记录所述I/O报文的相关参数;
显示所述相关参数。
优选地,所述相关参数具体为收发报文数。
优选地,所述相关参数具体为丢失报文数。
优选地,所述相关参数具体为收发延时。
优选地,在与外部设备建立通信连接后,还包括:
计算没有接收到报文的间隔时间;
当所述间隔时间大于预设时限时,则与所述外部设备断开通信连接,并打开接收所述显式报文的接口。
优选地,在与外部设备建立通信连接后,还包括:
当接收到断开通信连接的指令时,则与所述外部设备断开通信连接,并打开接收所述显式报文的接口。
与现有技术相比,本实施例提供的技术方案具有以下优点和特点:
在本发明提供的方案中,在与外部设备建立通信连接时,则关闭接收显式报文的接口。因为对于简单输入输出设备来说,就仅需要I/O报文的传输,不需具备复杂的消息数据通信、网络管理等功能,所以关闭接收显式报文的接口会避免处理一些不需要用到的复杂的数据处理过程,从而本发明提供的方案可以降低处理开销,可以保证处理能力低的简单输入输出设备的传输数据的实时性,从而避免收发延迟。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的主控设备和简单输入输出设备的数据交互示意图;
图2为本发明所提供的一种简单输入输出设备的EtherNet/IP Adapter协议栈控制方法的流程图;
图3为本发明所提供的状态转换图;
图4为本发明所提供的简单输入输出设备的内部对象模型。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种简单输入输出设备的EtherNet/IP Adapte协议栈控制方法,包括:当与外部设备建立通信连接时,则接收所述外部设备发送的输入/输出I/O报文,关闭接收显式报文的接口,并对所述I/O报文进行处理,再将处理后的数据发送给所述外部设备;当与所述外部设备断开通信连接时,则打开接收所述显式报文的接口。
由于上述简单输入输出设备的协议栈控制方法的具体实现存在多种方式,下面通过具体实施例进行详细说明:
请参见图1所示,图1所示的为一种简单输入输出设备的协议栈控制方法的流程图,包括:
步骤S11、当与外部设备建立通信连接时,则接收所述外部设备发送的输入/输出I/O报文,关闭接收显式报文的接口,并进入步骤S12中;
步骤S12、对所述I/O报文进行处理,并进入步骤S13中;
步骤S13、将处理后的数据发送给所述外部设备;
步骤S14、当与所述外部设备断开通信连接时,则打开接收所述显式报文的接口。
在图2所示的实施例中,在与外部设备建立通信连接时,则关闭接收显式报文的接口。因为对于简单输入输出设备来说,就仅需要I/O报文的传输,不需具备复杂的消息数据通信、网络管理等功能,所以关闭接收显式报文的接口会避免处理一些不需要用到的复杂的数据处理过程,从而本发明提供的方案可以降低处理开销,可以保证处理能力低的简单输入输出设备的传输数据的实时性,从而避免收发延迟。
在图2所示的实施例中,当与外部设备建立通信连接时,还可以包括以下步骤:记录所述I/O报文的相关参数,显示所述相关参数。其中,此为通信状态统计,相关参数具体可以为收发报文数、丢失报文数和收发延时等,便于用户通过此功能查看简单输入输出设备的通信状态。
在图2所示的实施例中,在与外部设备建立通信连接后,还可以包括以下步骤:计算没有接收到报文的间隔时间;当所述间隔时间大于预设时限时,则与所述外部设备断开通信连接,并打开接收所述显式报文的接口。其中,此为通信超时监测,是在设定的时限内若没有收到报文,就认为通信超时异常,则与所述外部设备断开通信连接,并立即通知设备返回正常模式状态,即打开接收所述显式报文的接口,以响应所有的EtherNet/IP报文。另外,在与外部设备建立通信连接后,还可以包括:当接收到断开通信连接的指令时,则与所述外部设备断开通信连接。此为通过用户输入的断开通信连接的指令来使外部设备断开通信连接。
请参见图3和图4所示,本发明提供的实施例,可以理解为相当于是在原有协议栈中引入一个简化模式状态,在连接建立通信正常后,就进入简化模式状态。这一简化模式状态仅保留I/O连接对象和应用对象,同时增加一个 小的通信超时监测和通信状态统计功能,这样大大降低了I/O设备的处理负荷;另外,当通信超时后,就会立即返回到原有的状态,来响应所有的EtherNet/IP报文,以达到兼容CIP对此类设备的定义,当进入简化模式状态后,设备仅进行I/O数据的传输,由于无需处理额外的负荷,就能很好的保证I/O数据传输的实时性。
下面通过实例来说明本发明所能达到的效果:
本发明提供的实施例引入一个简化模式状态,这样保证了简单I/O设备有限的处理能力能更多的用于处理必须要完成的任务,即保证I/O数据传输的实时性。虽然引入了一个简化状态,但当通信异常后会立即返回正常模式状态,能很好的兼容CIP规范对此类设备的定义。
使用符合CIP规范定义的标准的Scanner设备对运行有本发明优化后的EtherNet/IP Adapter协议栈的典型的简单I/O设备进行测试,该简单I/O设备的处理速度为50MHz,16位宽内存,Scanner设备端的测试记录见表2,测试参数是16ms通信周期,输入数据512字节,输出数据512字节:
表2
接收间隔 | 发送间隔 | 接收报文数 | 发送报文数 |
16.03毫秒 | 16.03毫秒 | 125864 | 125865 |
通过表2的测试结果可以看出,收发约12万个报文后,简单I/O设备比PC机仅滞后约1(125865-125864=1)个报文,这个几乎无偏差,也就是说能很好的保证16ms的通信周期。
需要说明的是,图2至图4所示的实施例只是本发明所介绍的优选实施例,本领域技术人员在此基础上,完全可以设计出更多的实施例,因此不在此处赘述。
对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种简单输入输出设备的EtherNet/IP Adapter协议栈控制方法,其特征在于,包括:
当与外部设备建立通信连接时,则接收所述外部设备发送的输入/输出I/O报文,关闭接收显式报文的接口,并对所述I/O报文进行处理,再将处理后的数据发送给所述外部设备;
当与所述外部设备断开通信连接时,则打开接收所述显式报文的接口;
当与外部设备建立通信连接时,还包括:
记录所述I/O报文的相关参数;
显示所述相关参数。
2.根据权利要求1所述的简单输入输出设备的EtherNet/IP Adapter协议栈控制方法,其特征在于,所述相关参数具体为收发报文数。
3.根据权利要求1所述的简单输入输出设备的EtherNet/IP Adapter协议栈控制方法,其特征在于,所述相关参数具体为丢失报文数。
4.根据权利要求1所述的简单输入输出设备的EtherNet/IP Adapter协议栈控制方法,其特征在于,所述相关参数具体为收发延时。
5.根据权利要求1所述的简单输入输出设备的EtherNet/IP Adapter协议栈控制方法,其特征在于,在与外部设备建立通信连接后,还包括:
计算没有接收到报文的间隔时间;
当所述间隔时间大于预设时限时,则与所述外部设备断开通信连接,并打开接收所述显式报文的接口。
6.根据权利要求1所述的简单输入输出设备的EtherNet/IP Adapter协议栈控制方法,其特征在于,在与外部设备建立通信连接后,还包括:
当接收到断开通信连接的指令时,则与所述外部设备断开通信连接,并打开接收所述显式报文的接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210235890.5A CN102724134B (zh) | 2012-07-10 | 2012-07-10 | 一种简单输入输出设备的EtherNet/IP Adapter协议栈控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210235890.5A CN102724134B (zh) | 2012-07-10 | 2012-07-10 | 一种简单输入输出设备的EtherNet/IP Adapter协议栈控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102724134A CN102724134A (zh) | 2012-10-10 |
CN102724134B true CN102724134B (zh) | 2015-03-11 |
Family
ID=46949799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210235890.5A Active CN102724134B (zh) | 2012-07-10 | 2012-07-10 | 一种简单输入输出设备的EtherNet/IP Adapter协议栈控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102724134B (zh) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9088610B2 (en) * | 2008-09-30 | 2015-07-21 | Rockwell Automation Technologies, Inc. | Method and apparatus for communications accelerator on CIP motion networks |
-
2012
- 2012-07-10 CN CN201210235890.5A patent/CN102724134B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102724134A (zh) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108847979B (zh) | 一种基于scada的自适应组态系统及方法 | |
CN102857566B (zh) | 一种可软件定制的物联网智能网关 | |
CN108769165A (zh) | 一种物联网中数据处理方法、物联网接入系统 | |
CN103532835A (zh) | 通用物联网关 | |
CN102202093A (zh) | 一种实现传感器适配的方法和系统 | |
EP3171552B1 (en) | Energy operations across domains | |
CN102855143A (zh) | 一种scada系统中通用通信框架 | |
US20180347842A1 (en) | Energy operations across domains | |
US11271790B2 (en) | Interconnection device, communication method, and system including robot | |
CN206833182U (zh) | 一种智能家居网关以及智能家居控制系统 | |
CN206922798U (zh) | 一种多协议转换器、数据发送设备及通信系统 | |
CN103763395A (zh) | 连接物联网管理平台与终端设备的中间件及其工作方法 | |
CN102984258A (zh) | 物联网数据传输方法和适配器 | |
CN101453356A (zh) | 一种计算机切换器及其与多台服务器匹配的方法 | |
CN105420443A (zh) | 转炉倾动控制系统 | |
CN102724134B (zh) | 一种简单输入输出设备的EtherNet/IP Adapter协议栈控制方法 | |
CN106412062A (zh) | 一种远程给设备加载工程和监控工程运行的状态的方法及系统 | |
CN110417875B (zh) | 一种云服务器之间的对接方法、系统、设备及存储介质 | |
CN103795729A (zh) | 一种多协议的统一设备控制方法 | |
CN105743709A (zh) | 一种管理装置、整机柜管理系统和管理方法 | |
CN109918120A (zh) | 对讲机的配置方法及装置 | |
CN202475483U (zh) | 一种安全隔离系统 | |
CN105516029A (zh) | 网络分组系统及其网络分组方法 | |
CN110187982A (zh) | 订阅消息的方法及终端设备 | |
CN111740864A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |