创建解析器
本指南介绍了如何创建解析器。解析器执行数据转换和映射。确切的转换步骤在 Manufacturing Data Engine (MDE) 的 whistle 脚本文档中定义。
创建解析器
解析器通过 Whistle 脚本执行源到目标的映射。创建解析器时,您必须定义三个核心元素:
- 解析器订阅的消息流的 消息类(输入)。
- 解析器发出的 proto 记录流的 类型版本(输出)。
- 将来自指定 消息类(输入)的源消息转换为已定义 类型版本(输出)的 proto 记录的 Whistle 脚本。
Whistle 脚本应用于源消息类流中的每条消息,并输出特定 类型 版本的 proto 记录。我们建议您花时间对源消息类进行建模,以便它们共享通用的语义和架构结构。定义明确的源消息类有助于最大限度地减少 解析器 中的复杂条件逻辑。如需更多指导,请参阅对源消息类进行建模部分。
您可以使用配置 API 或控制台创建解析器:
REST
POST /configuration/v1/parsers
{
"name": "PARSER_NAME",
"messageClassName": "SOURCE_MESSAGE_CLASS_NAME",
"typeReference": {
"name": "TYPE_NAME",
"version": TYPE_VERSION
},
"script": "WHISTLE_SCRIPT"
}
替换以下内容:
PARSER_NAME:解析器的名称。SOURCE_MESSAGE_CLASS_NAME:此解析器订阅的消息流的 源消息类 的名称。TYPE_NAME:此解析器发出的 proto 记录共享的 类型 的名称。TYPE_VERSION:此解析器发出的 proto 记录共享的 类型 的 版本。WHISTLE_SCRIPT:定义转换的 Whistle 脚本。
控制台
如需使用控制台创建新的解析器 ,请在顶部菜单中选择 PARSERS 部分。系统会显示可用解析器的列表:

对于每个可用的解析器,列表中会显示以下信息:
Name:解析器的名称。Message Class Name:解析器从中提取数据的消息类的名称。Type:解析器发出的目标类型。Type Version:解析器发出的目标类型版本。Enabled:解析器的状态(已启用或已停用)。Actions:解析器的可用操作:- “查看/修改”:打开给定解析器的修改菜单。
- “停用/启用”:允许停用已启用的解析器或启用 已停用的解析器。
- “测试解析器”:打开专用界面,以使用给定的
JSON文件测试解析器。 - “删除”:从 MDE 中删除解析器。
如需创建新的解析器,请点击 ADD NEW PARSER 。
如需打开给定解析器的修改部分,请点击操作 图标中的查看/修改 。屏幕右侧会显示一个侧边菜单,其中列出了创建新解析器所需的所有参数:

如需定义新解析器,必须提供以下参数:
Name:解析器的名称。创建后无法修改。Message Class:解析器从中提取数据的消息类 的名称。解析器创建后无法修改。从可用消息类的列表中选择消息类。Parser Code:定义与解析器关联的映射的 Whistle 文件。您可以随时对其进行修改。修改 Whistle 代码不会生成新版本的解析器。解析器实际上没有版本控制。Type:解析器发出的输出类型 。解析器创建后无法修改。从可用类型的列表中选择类型。对于新解析器,系统默认选择最新类型版本。
如需创建解析器,请修改解析器参数,然后点击底部的 CREATE 。如果新解析器已成功创建,系统会显示确认消息。
测试解析器
您可以通过提供 Whistle 脚本和输入消息示例来测试解析器:
REST
POST /configuration/v1/parsers:test
{
"script": "SCRIPT",
"testMessage": TEST_MESSAGE
}
替换以下内容:
SCRIPT:要测试的 Whistle 脚本(格式为字符串)。TEST_MESSAGE:输入测试消息(格式为 JSON 对象)。
控制台
您可以直接从操作 菜单以及修改解析器 菜单中测试解析器。
如需测试解析器,请点击 TEST 。系统会打开一个测试界面:

提供 JSON 消息 示例来测试解析器。
在输入 框中输入消息,然后点击 RUN TEST 按钮。
- 如果转换成功,输出消息会显示在结果 框中。
- 如果转换失败,系统会显示一条错误消息,其中包含错误可能的原因。
- 使用有效的
JSON文件作为测试消息,该文件具有可由解析器的 Whistle 文件处理的结构。例如,以下是由 Manufactueing Connect 边缘生成的数值载荷示例,可在default-numeric-value-to-default-numeric-records解析器中进行测试:
{
"datatype": "int",
"description": "",
"deviceID": "0619E715-D1B8-438F-A1AB-E4D65D27EE83",
"deviceName": "MicroLogix1100",
"metadata": {
"location": "ES-BCN-GRA",
"manufacturer": "AllenBradley",
"model": "MicroLogix1100",
"os_revision": "Series B FRN 12.0",
"source": "mce"
},
"registerId": "0997D2ED-B2AB-434C-9754-C1A3C2E9C165",
"success": true,
"tagName": "Manufactueing Connect edge_July_test_tag",
"timestamp": 1691163012045,
"value": 8004
}
修改解析器
您可以更新现有解析器,包括更新 Whistle 脚本:
REST
PATCH /configuration/v1/parsers/NAME
{
"disabled": DISABLED,
"script": "SCRIPT",
"typeReference": {
"name": "TYPE_NAME",
"version": TYPE_VERSION
},
"script": "WHISTLE_SCRIPT"
}
替换以下内容:
DISABLED:解析器的状态(true 或 false)。NAME:解析器的名称。TYPE_NAME:此解析器发出的 proto 记录共享的 类型 的名称。TYPE_VERSION:此解析器发出的 proto 记录共享的 类型 的 版本。WHISTLE_SCRIPT:定义转换的 Whistle 脚本。
控制台
如需打开给定解析器的修改部分,请点击操作 图标中的查看/修改 :

系统会打开修改解析器 侧边菜单,其中列出了配置解析器所需的参数:

Name:解析器的名称。创建后无法修改。Message Class:解析器从中提取数据的消息类 的名称。解析器创建后无法修改。Parser Code:定义与解析器关联的映射的 Whistle 文件。您可以随时对其进行修改。修改 Whistle 代码不会生成新版本的解析器。解析器没有版本控制。Type:解析器发出的输出类型 。解析器创建后无法修改。Version:解析器发出的输出类型版本 。您可以随时修改为更高版本。
- 如需修改解析器,请修改解析器参数,然后点击 SAVE 。
- 如果解析器已成功创建,系统会显示确认消息。