CN115242890A - 一种基于微码的通用工业协议转换方法 - Google Patents
一种基于微码的通用工业协议转换方法 Download PDFInfo
- Publication number
- CN115242890A CN115242890A CN202210663690.3A CN202210663690A CN115242890A CN 115242890 A CN115242890 A CN 115242890A CN 202210663690 A CN202210663690 A CN 202210663690A CN 115242890 A CN115242890 A CN 115242890A
- Authority
- CN
- China
- Prior art keywords
- protocol
- microcode
- data
- specific
- frame
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 23
- 230000006854 communication Effects 0.000 claims abstract description 36
- 238000004891 communication Methods 0.000 claims abstract description 35
- 238000013515 script Methods 0.000 claims abstract description 24
- 238000011161 development Methods 0.000 claims abstract description 19
- 238000004458 analytical method Methods 0.000 claims abstract description 13
- 238000013506 data mapping Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 11
- 238000007667 floating Methods 0.000 claims description 4
- 238000003491 array Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims 9
- 230000006870 function Effects 0.000 description 5
- 230000010354 integration Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 241000282320 Panthera leo Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于微码的通用工业协议转换方法,包括以下步骤:S1、通过协议开发系统,根据特定协议的规则,描述生成特定的协议规则库文件;S2、再用协议配置工具加载需要转换的两种协议的库文件,配置两种协议的通讯条件和数据映射关系,生成特定的微码脚本文件;S3、然后下载到支持微码解析的硬件装置网关内,由网关对此微码脚本进行逐行解析执行;S4、网关会发生特定微码配置生成的某协议的握手帧、请求帧、命令帧,并解析被采集设备应答的数据帧,并将数据帧中特定含义的数据根据配置文件存储在本地。协议开发效率高;面向对象的图形化协议规则配置,效率高,有协议标准的情况下数小时可以完成一款协议的增加。
Description
技术领域
本发明涉及工业互联网领域,特别是涉及工业协议解析方法。
背景技术
工业互联网的核心目的是将各种工业设备进行联网,采集设备数据,并进行数据的分析和应用,推进相关行业的降本、节能、提质、增效。
因此对各种不同厂商不同控制系统,不同通讯协议的设备进行通讯,并实现数据的采集和控制将是工业互联网的关键技术,没有这一个技术也就不存在工业互联网。
目前工业互联网采用的数据采集分为三种情况:
1)向设备厂商购买通讯协议,将此设备的通讯协议转换为自己的软件平台支持的通讯协议,再进行系统集成。
2)向已经集成了设备厂商通讯协议的网关厂商,购买相应的网关转换成自己的软件平台支持的通讯协议,再进行系统集成。
3)加装传感器,用IO模块采集相关数据,再进行系统集成。
通过上面的三种方式,都面临一个问题,工业互联网平台公司或者信息化系统集成商需要面对成千上万的不同设备的不同设备通讯协议和设备通讯规约(己知通讯协议情况下的通讯帧内的特定地址的含义)。同时还需要非常多种网关将各种设备的通讯协议转换成同一种通讯协议,以便于系统集成。
传统的工业网关厂商,一般都是在底层软件内实现A协议到B协议的转换,一种网关只能支持两种协议的互转互换,而工业现场光被称为国际标准的协议就多达数十上百种,而非标协议更是数不胜数,种类多以万计,这就造成了全球都没有一家网关厂商可以解决所有的协议转换,如美国的红狮,德国的ANYBUS都是对国际标准协议提供1对1的协议转换,用户需要在一大堆的选配中选择特定的产品解决特定的协议转换,哪怕是这两家行业领头者也只是解决了工业通讯协议转换中不到10%的应用。
造成现在的工业互联网项目实施成本高,难度大,效果差,可维护性不好的核心问题就是缺少一种能对任意一种工业现场总线或者工业网络都可以很灵活的通过配置而实现协议的任意转换的方法,转换为系统集成商最适应和最喜欢的通讯协议。
现有技术的技术问题:
1、新协议开发效率低:工业互联网需要将数以万种不同协议不同规约的设备数据进行联网,现有技术只能用C语言一种协议一种协议的集成,效率非常低,一款协议的开发通常需要数月嵌入式开发工作。
2、产品种类繁多:同一种网关只能支持两种协议的相互转换,不能实现任意协议相互转换,一种数字化工厂或者工业互联网项目中需要采购数十上百款不同厂商生产的网关,集成难度非常高;
3、协议开发需要拿到协议标准才能开发特定的协议;
发明内容
本发明的目的在于提供一种基于微码的通用工业协议转换方法,具有的优点,解决了现有技术中的效率低、功能少、协议不开放问题。
为实现上述目的,本发明提供如下技术方案:
一种基于微码的通用工业协议转换方法,其包括以下步聚:通过协议开发系统,根据特定协议的规则,描述生成特定的协议规则库文件;再用协议配置工具加载需要转换的两种协议的库文件,配置两种协议的通讯条件和数据映射关系,生成特定的微码脚本文件;然后下载到支持微码解析的硬件装置网关内,由网关对此微码脚本进行逐行解析执行;网关会发生特定微码配置生成的某协议的握手帧、请求帧、命令帧,并解析被采集设备应答的数据帧,并将数据帧中特定含义的数据根据配置文件存储在本地,或者转换成另一种协议从另一个物理端口发送出去。
在其中一个实施例中,需要从某使用西门子PLC的设备A中获取运行状态和参数,转换成modbus-TCP协议等待MES软件读取。
用户需要在协议生成工具内,用面向对象的开发工具,配置生成对应的协议库,通过协议生成工具描述对应通讯协议的帧头,数据,帧尾。
支持的帧头包括起始符、站地址、长度、偏移、类型、功能码、帧头校验等可扩展选择。
支持的数据包括、位、数组、字符串、浮点数、整型、长整型、BCD码、ASCI码等类型可扩展。
支持的帧尾包括可选区域的SUM校验、CRC校验(CRC类型可选)、LRC校验。
支持特定工业协议的主模式,包括主动握手流程、读数据请求及解析从站回应的数据格式、写数据请求。
支持特定工业协议的从模式,包括被动握手流程、被读数据请求及应答主站请求的特定数据、被主站写数据。
当特定的协议格式定义完毕将生成一个特定协议的库文件,由另一个通讯配置工具调用,配置工具将配置特定协议的参数,如站地址、数据偏移、长度、类型等,并将绑定两种转换协议之间的地址映射关系。
配置完毕后,将生成一种特定格式的微码脚本程序,下载到支持本微码的特定硬件装置。
硬件装置内带处理器及各种物理通讯端口的硬件和一个软件虚拟机(解析执行特定的微码脚本)。
硬件装置逐行解析执行,动态生成特定的协议帧,并解析接收到的特定协议帧。
因为所有的工业通讯协议的格式都相近,只有几种变化,因此通过本方法设计出来的软硬件系统,理论上可以支持任意协议的相互转换,从而实现万能的协议转换网关。用户可以采购同一种硬件,只需要购买不同的协议库,配置后即可成为任意两种协议的转换网关,而不再需要面对一大堆不同的协议网关。
与现有技术相比,本发明的有益效果如下:
1、协议开发效率高;面向对象的图形化协议规则配置,效率高,有协议标准的情况下数小时可以完成一款协议的增加;
2、协议与硬件分离,硬件是通用的。因为本方法硬件内运行的是一个虚拟机,所有的协议均是通过配置工具加载下来的,所以理论上同一硬件支持任意协议之间的相互转换,同一网关内也可以同时支持程序空间允许的任意多种协议同时运行,从而实现多种协议之间的相互转换;
3、支持对于不开放的协议通讯,完全可以不用理解协议的含义,通过抓包,获得通讯的过程,即可盲配请求帧,从而达到不理解协议的情况下获取特定的数据帧,从而获取其中的特定数据。
附图说明
图1为本发明应用的场景。
图2为本方法的实现步聚和各部分之间的联系。
图3为协议开发系统架构图。
图4为协议配置软件的架构图。
图5为网关的状态转移图。
图6为微码文件的格式框架。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
请参阅图1-6,种基于微码的通用工业协议转换方法,包括以下步骤:
S1、通过协议开发系统,根据特定协议的规则,描述生成特定的协议规则库文件;
S2、再用协议配置工具加载需要转换的两种协议的库文件,配置两种协议的通讯条件和数据映射关系,生成特定的微码脚本文件;
S3、然后下载到支持微码解析的硬件装置网关内,由网关对此微码脚本进行逐行解析执行;
S4、网关会发生特定微码配置生成的某协议的握手帧、请求帧、命令帧,并解析被采集设备应答的数据帧,并将数据帧中特定含义的数据根据配置文件存储在本地,或者转换成另一种协议从另一个物理端口发送出去。
实施例2:
请参阅图1-6,种基于微码的通用工业协议转换方法,包括以下步骤:
S1、通过协议开发系统,根据特定协议的规则,描述生成特定的协议规则库文件;
S2、再用协议配置工具加载需要转换的两种协议的库文件,配置两种协议的通讯条件和数据映射关系,生成特定的微码脚本文件;
S3、然后下载到支持微码解析的硬件装置网关内,由网关对此微码脚本进行逐行解析执行;
S4、网关会发生特定微码配置生成的某协议的握手帧、请求帧、命令帧,并解析被采集设备应答的数据帧,并将数据帧中特定含义的数据根据配置文件存储在本地,或者转换成另一种协议从另一个物理端口发送出去。
用户需要在协议生成工具内,用面向对象的开发工具,配置生成对应的协议库,通过协议生成工具描述对应通讯协议的帧头,数据,帧尾。
所述帧头包括起始符、站地址、长度、偏移、类型、功能码、帧头校验等可扩展选择。
实施例3:
请参阅图1-6,种基于微码的通用工业协议转换方法,包括以下步骤:
S1、通过协议开发系统,根据特定协议的规则,描述生成特定的协议规则库文件;
S2、再用协议配置工具加载需要转换的两种协议的库文件,配置两种协议的通讯条件和数据映射关系,生成特定的微码脚本文件;
S3、然后下载到支持微码解析的硬件装置网关内,由网关对此微码脚本进行逐行解析执行;
S4、网关会发生特定微码配置生成的某协议的握手帧、请求帧、命令帧,并解析被采集设备应答的数据帧,并将数据帧中特定含义的数据根据配置文件存储在本地,或者转换成另一种协议从另一个物理端口发送出去。
用户需要在协议生成工具内,用面向对象的开发工具,配置生成对应的协议库,通过协议生成工具描述对应通讯协议的帧头,数据,帧尾。
所述帧头包括起始符、站地址、长度、偏移、类型、功能码、帧头校验等可扩展选择。
所述数据包括、位、数组、字符串、浮点数、整型、长整型、BCD码、ASCI码等类型可扩展。
所述帧尾包括可选区域的SUM校验、CRC校验(CRC类型可选)、LRC校验。
支持特定工业协议的主模式,包括主动握手流程、读数据请求及解析从站回应的数据格式、写数据请求。
所述方法支持特定工业协议的主模式,包括主动握手流程、读数据请求及解析从站回应的数据格式、写数据请求。
所述方法支持特定工业协议的从模式,包括被动握手流程、被读数据请求及应答主站请求的特定数据、被主站写数据。
实施例4:
请参阅图1-6,种基于微码的通用工业协议转换方法,包括以下步骤:
S1、通过协议开发系统,根据特定协议的规则,描述生成特定的协议规则库文件;
S2、再用协议配置工具加载需要转换的两种协议的库文件,配置两种协议的通讯条件和数据映射关系,生成特定的微码脚本文件;
S3、然后下载到支持微码解析的硬件装置网关内,由网关对此微码脚本进行逐行解析执行;
S4、网关会发生特定微码配置生成的某协议的握手帧、请求帧、命令帧,并解析被采集设备应答的数据帧,并将数据帧中特定含义的数据根据配置文件存储在本地,或者转换成另一种协议从另一个物理端口发送出去。
用户需要在协议生成工具内,用面向对象的开发工具,配置生成对应的协议库,通过协议生成工具描述对应通讯协议的帧头,数据,帧尾。
所述帧头包括起始符、站地址、长度、偏移、类型、功能码、帧头校验等可扩展选择。
所述数据包括、位、数组、字符串、浮点数、整型、长整型、BCD码、ASCI码等类型可扩展。
所述帧尾包括可选区域的SUM校验、CRC校验(CRC类型可选)、LRC校验。
支持特定工业协议的主模式,包括主动握手流程、读数据请求及解析从站回应的数据格式、写数据请求。
所述方法支持特定工业协议的主模式,包括主动握手流程、读数据请求及解析从站回应的数据格式、写数据请求。
所述方法支持特定工业协议的从模式,包括被动握手流程、被读数据请求及应答主站请求的特定数据、被主站写数据。
当特定的协议格式定义完毕将生成一个特定协议的库文件,由另一个通讯配置工具调用,配置工具将配置特定协议的参数,如站地址、数据偏移、长度、类型等,并将绑定两种转换协议之间的地址映射关系。
硬件装置内带处理器及各种物理通讯端口的硬件和一个软件虚拟机,解析执行特定的微码脚本,硬件装置逐行解析执行,动态生成特定的协议帧,并解析接收到的特定协议帧。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种基于微码的通用工业协议转换方法,其特征在于,包括以下步骤:
S1、通过协议开发系统,根据特定协议的规则,描述生成特定的协议规则库文件;
S2、再用协议配置工具加载需要转换的两种协议的库文件,配置两种协议的通讯条件和数据映射关系,生成特定的微码脚本文件;
S3、然后下载到支持微码解析的硬件装置网关内,由网关对此微码脚本进行逐行解析执行;
S4、网关会发生特定微码配置生成的某协议的握手帧、请求帧、命令帧,并解析被采集设备应答的数据帧,并将数据帧中特定含义的数据根据配置文件存储在本地,或者转换成另一种协议从另一个物理端口发送出去。
2.根据权利要求1所述的一种基于微码的通用工业协议转换方法,其特征在于:用户需要在协议生成工具内,用面向对象的开发工具,配置生成对应的协议库,通过协议生成工具描述对应通讯协议的帧头,数据,帧尾。
3.根据权利要求2所述的一种基于微码的通用工业协议转换方法,其特征在于:所述帧头包括起始符、站地址、长度、偏移、类型、功能码、帧头校验等可扩展选择。
4.根据权利要求2所述的一种基于微码的通用工业协议转换方法,其特征在于:所述数据包括、位、数组、字符串、浮点数、整型、长整型、BCD码、ASCI码等类型可扩展。
5.根据权利要求2所述的一种基于微码的通用工业协议转换方法,其特征在于:所述帧尾包括可选区域的SUM校验、CRC校验(CRC类型可选)、LRC校验。
6.根据权利要求1所述的一种基于微码的通用工业协议转换方法,其特征在于:支持特定工业协议的主模式,包括主动握手流程、读数据请求及解析从站回应的数据格式、写数据请求。
7.根据权利要求1所述的一种基于微码的通用工业协议转换方法,其特征在于:所述方法支持特定工业协议的主模式,包括主动握手流程、读数据请求及解析从站回应的数据格式、写数据请求。
8.根据权利要求1所述的一种基于微码的通用工业协议转换方法,其特征在于:所述方法支持特定工业协议的从模式,包括被动握手流程、被读数据请求及应答主站请求的特定数据、被主站写数据。
9.根据权利要求1所述的一种基于微码的通用工业协议转换方法,其特征在于:当特定的协议格式定义完毕将生成一个特定协议的库文件,由另一个通讯配置工具调用,配置工具将配置特定协议的参数,如站地址、数据偏移、长度、类型等,并将绑定两种转换协议之间的地址映射关系。
10.根据权利要求1所述的一种基于微码的通用工业协议转换方法,其特征在于:硬件装置内带处理器及各种物理通讯端口的硬件和一个软件虚拟机,解析执行特定的微码脚本,硬件装置逐行解析执行,动态生成特定的协议帧,并解析接收到的特定协议帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210663690.3A CN115242890A (zh) | 2022-06-14 | 2022-06-14 | 一种基于微码的通用工业协议转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210663690.3A CN115242890A (zh) | 2022-06-14 | 2022-06-14 | 一种基于微码的通用工业协议转换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115242890A true CN115242890A (zh) | 2022-10-25 |
Family
ID=83668700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210663690.3A Pending CN115242890A (zh) | 2022-06-14 | 2022-06-14 | 一种基于微码的通用工业协议转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115242890A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117376441A (zh) * | 2023-12-07 | 2024-01-09 | 沈阳邦粹科技有限公司 | 生产制造车间的支持多协议转换的wia-fa无线接入设备及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030093541A1 (en) * | 2001-09-28 | 2003-05-15 | Lolayekar Santosh C. | Protocol translation in a storage system |
CN1529481A (zh) * | 2003-10-14 | 2004-09-15 | �й���ѧԺ�����о��� | 网络处理器内部实现分布式应用层转换网关的方法 |
CN101150566A (zh) * | 2006-09-19 | 2008-03-26 | 中兴通讯股份有限公司 | 异构网络系统中实现网络地址转换协议转换的装置及方法 |
CN113206836A (zh) * | 2021-04-12 | 2021-08-03 | 河海大学 | 一种工业互联网中api网关实现协议转换的方法 |
-
2022
- 2022-06-14 CN CN202210663690.3A patent/CN115242890A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030093541A1 (en) * | 2001-09-28 | 2003-05-15 | Lolayekar Santosh C. | Protocol translation in a storage system |
CN1529481A (zh) * | 2003-10-14 | 2004-09-15 | �й���ѧԺ�����о��� | 网络处理器内部实现分布式应用层转换网关的方法 |
CN101150566A (zh) * | 2006-09-19 | 2008-03-26 | 中兴通讯股份有限公司 | 异构网络系统中实现网络地址转换协议转换的装置及方法 |
CN113206836A (zh) * | 2021-04-12 | 2021-08-03 | 河海大学 | 一种工业互联网中api网关实现协议转换的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117376441A (zh) * | 2023-12-07 | 2024-01-09 | 沈阳邦粹科技有限公司 | 生产制造车间的支持多协议转换的wia-fa无线接入设备及方法 |
CN117376441B (zh) * | 2023-12-07 | 2024-02-09 | 沈阳邦粹科技有限公司 | 生产制造车间的支持多协议转换的wia-fa无线接入设备及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100367235C (zh) | 一种自动化测试实现方法、装置及其系统 | |
US20130046722A1 (en) | Message conduit systems with algorithmic data stream control and methods for processing thereof | |
CN111343020A (zh) | 多协议物联网设备的统一管理方法和装置 | |
CN107592238A (zh) | 接口的自动测试方法及系统、服务终端、存储器 | |
CN112882817B (zh) | 一种基于超级计算机的工作流处理方法 | |
CN115242890A (zh) | 一种基于微码的通用工业协议转换方法 | |
CN111385292B (zh) | 一种基于描述子的协议报文和数据的交互方法及系统 | |
CN111427321A (zh) | 一种兼容多协议的mes数据采集系统及其方法 | |
CN105302115A (zh) | 列车网络应用层控制软件自动化测试方法 | |
CN111885174B (zh) | 一种非相同网段的节点的处理方法及系统 | |
KR20060095048A (ko) | 발전용 분산제어 시스템의 운전을 위한 mmi 장치 및 엔디안 변환 방법 | |
CN112235316A (zh) | 一种仪器集成的数据通信方法 | |
CN101739245A (zh) | Xml消息与c语言程序结构体转换的方法及装置 | |
CN112769624B (zh) | 一种基于点表的工业物联网网关设计方法 | |
CN104639515A (zh) | 基于银行核心业务的第三方通讯转换平台 | |
CN114115832A (zh) | 一种物联网嵌入式设备与云平台通信协议实现方法 | |
CN114064153A (zh) | 一种基于多核处理器的嵌入式动态模块加载方法及装置 | |
CN100456710C (zh) | 实现Tclsh指令远程调用的方法和系统 | |
CN110808982A (zh) | 一种基于注册机制的通信规约的建立方法及系统 | |
CN113766024B (zh) | 一种远端服务器远程指令管理系统及方法 | |
EP4068141A1 (en) | Method and system to enable print functionality in high-level synthesis (hls) design platforms | |
CN116915875B (zh) | 一种物联网关解析modbus设备的通用方法及modbus系统 | |
CN114661312B (zh) | 一种OpenStack集群嵌套部署方法及系统 | |
CN101420768B (zh) | 一种直放站网管监控协议的自适应解析方法 | |
CN117278651A (zh) | 工业通信协议格式转换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |