设置配方本体#
激活后,Set Recipe Body任务将向设备发送S7F3(设置配方本体)SECS/GEM消息。
输入#
| 名称 | 数据类型 | 是否是触发器 | 描述 |
|---|---|---|---|
| recipeName | String | 我们要检索的配方的名称 | |
| recipeBody | any | 配方的新本体 | |
| 激活 | Any | 是 | 激活任务 |
输出#
| 名称 | 数据类型 | 描述 |
|---|---|---|
| 成功 | Boolean | 任务成功执行时触发 |
| 错误 | Error | 任务因某种原因失败时触发 |
设置#
在General选项卡上,您有常用设置和以下设置:
| 名称 | 数据类型 | 值 | 默认 | 描述 |
|---|---|---|---|---|
| 流函数名称 | String | S7F3 | 消息中使用的SECS-GEM流函数名称。 | |
| 请求消息 | Object | { "type": "A", "name": "PPID", "value": "" } | 自定义请求消息,而不是默认消息。 | |
| 使用S7F1(请求上传) | Boolean | true | 用于指定在从主机发送S7F3进程程序时是否要求查询S7F1进程程序的参数 | |
| S7F1成功代码: | String | 0x00 | 允许使用逗号作为分隔符的多个值(“0x01, 0x04, 0x05, 0x00”)。如果为空,则任何回复都是成功的。 | |
| 请求消息 | Object | { "type": "L", "value": [ { "type": "A", "name": "PPID", "value": "" }, { "type": "BI", "name": "PPBODY", "value": "" } ] } | 自定义请求消息,而不是默认消息 | |
| 配方名称项目路径位置 | String | /[1] | 项目路径位置,在主消息上,应在其中插入“配方名称”输入。如果为空,则不执行替换,主消息将按原样发送。 | |
| 配方本体路径 | String | /[2] | 路径位置,在回复消息上,应在其中检索配方本体 | |
| 配方本体类型 | enum | BufferRecipeBodyString\RecipeBody | BufferRecipeBody | 可以解释消息内容上的配方本体。 |
| 回复路径 | String | / | 结果代码在回复消息中所处的位置 | |
| 成功代码 | S | 0x00 | 允许使用逗号作为分隔符的多个值(“0x01, 0x04, 0x05, 0x00”)。如果为空,则任何回复都是成功的。 |
回复路径是浏览SECS/GEM消息的有用方式,在下面您可以找到一个示例:
示例:
{
"type": "L",
"value": [
{ "type": "A", "value": "test" },
{ "type": "BO", "value": true },
{ "type": "BI", "value": "0x01" },
{ "type": "I1", "value": 1 },
{ "type": "I2", "value": 2 },
{ "type": "I4", "value": 4 },
{ "type": "I8", "value": 8 },
{ "type": "U1", "value": 11 },
{ "type": "U2", "value": 22 },
{ "type": "U4", "value": 44 },
{ "type": "U8", "value": 88 },
{ "type": "F4", "value": 3.14 },
{ "type": "F8", "value": 3.1415 },
{ "type": "L", "value": [
{ "type": "BO", "value": [true, false, false, true] },
{ "type": "BI", "value": [1, 2, 255] },
{ "type": "I1", "value": [1, 2, 3] },
{ "type": "I2", "value": [2, 3, 4] },
{ "type": "I4", "value": [4, 5, 6] },
{ "type": "I8", "value": [8, 9, 10] },
{ "type": "U1", "value": [11, 12, 13] },
{ "type": "U2", "value": [22, 23, 24] },
{ "type": "U4", "value": [44, 45, 46] },
{ "type": "U8", "value": [88, 89, 90] },
{ "type": "F4", "value": [3.14, 3.15, 3.16] },
{ "type": "F8", "value": [3.1415, 3.141516, 3.14151617] }
]}
]
}
SECS/GEM项目值可以使用类似路径的字符串从消息中提取。 分隔符是“/”字符。 索引从1 (1..n)开始。如果使用类型前缀,则将匹配工单索引。
以下示例应有助于解释如何使用它们:
- “/” -> 将返回根节点
- “/[1]” -> 将返回字符串“test”
- “/[4]” -> 将返回整数1
- “/U1” -> 将返回11
- “/U1[1]” -> 也会返回11
- “/L/[3]” -> 将返回[1,2,3]
- “/[14]/[3]”-> 也会返回[1,2,3]
请求消息和回复消息可以是自定义创建的SECS-GEM消息。可使用JSON格式创建消息正文,如回复消息示例中所示。
可以使用 JSON 格式构建 SECS/GEM 消息,其中每个 SECS/GEM 项都表示为具有以下格式的对象:
{
"name": "OptionalName",
"comment": "Optional Comment/Description",
"type": "A",
"value": "test"
}
支持的类型包括:
- A - ASCII(字符串)
- BI - 二进制值 BO - 布尔值
- I1、I2、I4、I8 - 有符号整数
- U1、U2、U4、U8 - 无符号整数
- F4、F8 - 浮点型/双精度
- L - 列表
行为#
在此任务中,您可以在将驱动程序放入工作流时选择驱动程序(如果您有多个与控制器关联的驱动程序)。
激活后,将向设备的驱动程序发送一条S7F1(请求上传)消息。如果设备回复成功,将向设备的驱动程序发送一条S7F3(设置配方本体)消息。
如果回复与正确路径中预期的内容相匹配,并且具有正确的成功代码,则该任务将在Success输出中发出true值。如果任务由于某种原因无法发送消息,或者收到意外回复,则发出Error。
备注#
没有做特别的备注。

