跳转至

Connect IoT - TCPIP驱动程序#

此驱动程序在TCP/IP层上交互,允许主动和被动连接。

解析器用于获取原始的TCP/IP数据并将它们转换为可用的消息。

数据类型#

这些是受支持的特定数据类型:

名称 描述
字符串 字符串值
布尔值 布尔值
整数 整数值
十进制 十进制值
对象 结构化值

异常流程参数#

异常流程支持以下参数:

名称 类型 可能的值 默认值 描述
mode 枚举 Active
被动
Active 主动连接到设备(Active)或被动等待设备连接(Passive)。
对于Active模式: 驱动程序使用.connect(),设备则使用.listen()。
对于Passive模式:设备使用.connect(),驱动程序则使用.listen()
主机 字符串 0.0.0.0 Active 模式:驱动程序应连接到的主机。
Passive 模式:绑定listen()调用的地址
端口 整数 0 Active 模式:套接字应连接到的端口。
Passive 模式:驱动程序将在其上侦听设备连接的端口。如果端口为0,操作系统将分配一个任意的未使用端口,可在运行时在驱动程序执行日志中检索该端口。
localAddress 字符串 0.0.0.0 Active 仅模式:套接字应连接的本地地址。
localPort 整数 0 Active 仅模式:套接字应连接的本地端口。
family 枚举 4
6
4 IP堆栈的版本可以是4或6。
maxClients 整数 1 Passive 仅模式:允许的客户端套接字数量上限。
keepAliveTime 整数 10000 PassiveActive模式):保持活动时间(毫秒)
socketEncoding 枚举 ascii
utf8
utf16le
ucs2
base64
binary
hex
ascii 流编码
parserType 枚举 Raw
Readline
ByteLength
Delimiter
InterByteTimeout
准备就绪
Regex
Readline 选择用于确定何时识别从设备接收到的数据并准备好处理的解析器(有关详细信息,请查看每个解析器的特定部分)。
delimiter 字符串 "\r\n" 在解析器ReadlineDelimiterReadyRegularExpression中使用:用于拆分传入文本的字符串分隔符。简单的字符串替换可以像\r\n\t一样使用如果解析器为RegularExpression,则可以使用正则表达式,例如:[\r\n]+
encoding 枚举 ascii
utf8
utf16le
ucs2
base64
binary
hex
ascii 在解析器ReadlineRegex中使用:接收到的数据的文本编码
byteLengthSize 整数 8 在解析器ByteLength中使用:触发事件前要接收的字节数
timeoutValue 整数 1000 在解析器InterByteTimeout中使用:发出数据前的静默时间段(以毫秒为单位)
maxBufferSize 整数 65536 在解析器中使用:InterByteTimeout:发出数据前的最大字节数
对发送内容转换不可打印的ASCII字符 布尔值 False 对发送的值执行字符替换。用相应的ASCII值替换ASCII令牌名称。(请参阅表非可打印ASCII字符 - 令牌/值替换)。
对接收内容转换不可打印的ASCII字符 布尔值 False 对收到的值执行字符替换。将不可打印的ASCII代码替换为对应的<NAME>。(请参阅表非可打印ASCII字符 - 令牌/值替换)。
默认命令消息开始 字符串 命令开头使用的默认值
默认命令消息分隔符 字符串 命令参数之间使用的默认值
默认命令消息结束 字符串 命令末尾使用的默认值

解析器#

解析器是指用于处理传入数据的转换流的集合。以下解析器可用:

名称 参数 描述
Raw 接收到的任何数据都将立即处理。
Readline delimiter 在接收到配置的换行分隔符后发出数据。
ByteLength byteLengthSize 在接收到特定字节数后立即发出数据。
Delimiter delimiter 每次接收到特定序列时都发出数据。
字节间超时 timeoutValue
maxBufferSize
在指定的时间内未接收任何字节或缓冲区已满后,将发出数据。
准备就绪 delimiter 在发出就绪事件和发出数据事件之前,直到一系列就绪字节(与delimiter参数匹配)才会发出数据
Regex delimiter
encoding
正则表达式(分隔符参数)用于拆分传入文本。匹配项将作为要处理的数据发出。

扩展参数#

与其他异常流程驱动程序一样,还需要一些额外参数来对预期行为提供更多上下文。

属性#

名称 类型 可能的值 默认值 描述
identifierType 枚举
RegularExpression
Token
用于标识属性的方法。如果使用None,则将忽略identifierValue,并且所有消息都将更新该属性。Token 类型将仅匹配消息开头的identifierValue文本,而RegularExpression将匹配配置的正则表达式identifierValue字段。
identifierValue 字符串 属性标识符的值。对RegularExpression(输入有效的正则表达式)或Token(输入预期文本)identifierType有效。
convertIdentifierNonPrintableASCIIChars 布尔值 false 如果为true,则对Identifier Value执行字符替换。将不可打印的ASCII代码替换为对应的<NAME>。(请参阅表非可打印ASCII字符 - 令牌/值替换)。

备注/行为#

  • 属性上使用的标识符用于标识属性,而不是从属性中提取任何类型的信息。要从属性值中提取信息,可以使用控制器工作流(例如类型为Regular ExpressionRegular Evaluator任务)。

事件#

名称 类型 可能的值 默认值 描述
triggerMode 枚举 AllValues
DifferentValues
Periodic
AllValues 确定数据作为事件发出的方式和时间。
AllValues:每次收到触发器属性值时
DifferentValues:每次收到不同的触发器属性值时
Periodic:定期(每隔periodicDataInterval,以毫秒为单位),忽略属性会更新周期或值。
periodicDataInterval 整数 1000 发布数据的毫秒数。仅对triggerMode有效 Periodic

事件属性#

名称 类型 可能的值 默认值 描述
isTrigger 布尔值 true 接收到属性(事件触发器模式AllValues)或值更改(事件触发器模式AllValuesDifferentValues)时触发事件

备注/行为#

  • 当事件具有多个属性带isTrigger标志时:
    • 每次任何属性值更改时都会触发它。
    • 此时将请求其他属性的值。
    • 可能有多个触发器具有相同的设置值(因为它们未更改)。如果不希望出现这种行为,请将其分成多个事件,每个事件都有自己的触发器集。
  • 如果事件没有具有isTrigger标志的属性,则从不触发(除非事件定义为Periodic

命令#

名称 类型 可能的值 默认值 描述
命令结构行为 枚举 UseEquipmentSetupTaskSettings
UseCurrentCommandSettings
RawCommandParameters
RawCommand
UseEquipmentSetupTaskSettings 命令可以使用来自设备设置任务(使用设备设置任务令牌)的配置(令牌和ASCII转换定义)或对每个命令进行自定义(使用当前命令令牌)。在RawCommand模式下,不使用令牌,发送设备ID数据。在RawCommandParameters模式下,命令参数串联并发送。
命令设备ID用法 枚举 AtBeginning
AtEnd
NotUsed
AtBeginning 命令设备ID可以在已发送消息的开头、已发送消息的结尾使用,也可以根本不使用,并且该消息将只包含命令参数。请注意,如果commandBehaviorRawCommandRawCommandParameters,则忽略此字段。
对发送值转换不可打印的ASCII字符 布尔值 False 如果为true,则对命令发送值执行令牌替换。用字符值替换ASCII令牌名称。(请参阅表非可打印ASCII字符 - 令牌/值替换)。
消息启动令牌 字符串 命令开头使用的值
消息分隔符令牌 字符串 命令参数之间使用的值
消息结束令牌 字符串 消息结束令牌
Reply Expected 布尔值 False 如果此命令需要回复,则应为true
对回复内容转换不可打印的ASCII字符 布尔值 False 如果为true,则对命令回复接收的值执行字符替换。将回复内容中不可打印的ASCII代码替换为对应的<NAME>(请参阅表非可打印ASCII字符 - 令牌/值替换)。
Reply TimeOut (ms) 整数 1000 命令答复以指定的毫秒值超时。

备注/行为#

  • 如果Reply Expected为true,则在等待Reply TimeOut (ms)时不会发送其他命令(将在收到回复或达到超时值后排队并发送)
  • 如果Reply TimeOut等于或小于0,则加载默认值(1秒)

示例方案#

命令设备ID用法#

所选选项 命令发送的值
AtBeginning <StartToken>CommandDeviceID<SeparatorToken>Parameter_1_Value<SeparatorToken>Parameter_2_Value<EndToken>
AtEnd <StartToken>Parameter_1_Value<SeparatorToken>Parameter_2_Value<SeparatorToken>CommandDeviceID<EndToken>
NotUsed <StartToken><SeparatorToken>Parameter_1_Value<SeparatorToken>Parameter_2_Value<EndToken>

对发送值转换不可打印的ASCII字符#

转换前 转换后
<DeviceID<TAB>Parameter_1_Value> <DeviceID\tParameter_1_Value>
  • 注意:
    • 起始令牌: <
    • 分隔符令牌: <TAB>
    • 结束令牌: >

命令参数#

名称 类型 可能的值 默认值 描述
参数类型 枚举 CommandParameter
RawCommandParameter
CommandParameter 允许将此参数配置为常规命令参数或RAW命令。如果Command Structure BehaviorRawCommandParameters,则至少应有一个参数类型为RawCommandParameter(如果定义了多个,则执行串联)。

示例#

RAW命令示例#

参数#
  • 测试方案:
    • 命令结构行为RawCommandParameters
    • 参数01:参数类型:CommandParameter
    • 参数01值:TestPar_1
    • 参数02:参数类型:RawCommandParameter
    • 参数02值:TestRaw_2
    • 参数03:参数类型:RawCommandParameter
    • 参数03值:TestRaw_3
    • 起始令牌: <
    • 分隔符令牌: <TAB>
    • 结束令牌: >
  • 发送的值:
    • TestRaw_2TestRaw_3
DeviceId#
  • 测试方案:
    • 命令结构行为RawCommand
    • 命令设备ID:DeviceId
    • 参数01:参数类型:CommandParameter
    • 参数01值:TestPar_1
    • 参数02:参数类型:RawCommandParameter
    • 参数02值:TestRaw_2
    • 参数03:参数类型:RawCommandParameter
    • 参数03值:TestRaw_3
    • 起始令牌: <
    • 分隔符令牌: <TAB>
    • 结束令牌: >
  • 发送的值:
    • DeviceId

非可打印ASCII字符 - 令牌/值替换#

令牌 令牌 令牌 令牌 令牌
<NUL> 0 <SOH> 1 <STX> 2 <ETX> 3 <EOT> 4
<ENQ> 5 <ACK> 6 <BEL> 7 <BS> 8 <TAB> 9
<LF> 10 <VT> 11 <FF> 12 <CR> 13 <SO> 14
<SI> 15 <DLE> 16 <DC1> 17 <DC2> 18 <DC3> 19
<DC4> 20 <NAK> 21 <SYN> 22 <ETB> 23 <CAN> 24
<EM> 25 <SUB> 26 <ESC> 27 <FS> 28 <GS> 29
<RS> 30 <US> 31 <DEL> 127

请注意:

  • 值以十进制表示。
  • 这些令牌/值替换值是硬编码的。