全国服务热线 15801815554

SIEMENS西门子 S120伺服电机 1FK7022-5AK71-1LG5-Z 

更新时间:2024-07-02 08:00:00
价格:请来电询价
西门子:代理商
S120:全新原装 假一罚十
德国:现货 实体经营
联系电话:15801815554
联系手机:15801815554
联系人:邓经理
让卖家联系我
详细介绍

 

            MAX_LEN:确定字符串的长度 (S7-1200, S7-1500) 说明 (W)STRING 数据类型的变量包含两个长度:Zui大长度和当前长度(即当前有效字符的数 量)。 • 使用方括号为 STRING 关键字中的每个变量指定字符串的Zui大长度。字符串占用的字节数 为Zui大长度加 2。 • 使用方括号为 WSTRING 关键字中的每个变量指定字符串的Zui大长度。字符串占用的字数 为Zui大长度加 2。 • 当前长度表示实际使用的字符位置数。当前长度必须小于或等于Zui大长度。 使用指令“MAX_LEN”,可确定输入参数 IN 中所指定字符串的Zui大长度,并将其作为数字值 输出到输出参数 OUT 中。 说明 检查字符串 指令“MAX_LEN”不会检查参数“IN”处的字符串。如下所示互连指令的参数并选择字符串的数据类型。 CHARS 结构(“inputArrayCHARS”)的长度为 10 个字符 (Array ... [0..9])。根据参数 PCHARS (“pointerCHARS”)的值“2”,从该结构的从第三个位置处开始将字符复制到字符串中 (“outputSTRG”)。从位置“2”开始,结构中的所有字符(“inputArrayCHARS”)都将复制到字 符串(“outputSTRG”),因为参数 CNT(“countCHARS”)的值为“0”。

            有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 示例 在以下示例中,将确定 STRING 数据类型字符串的Zui大长度。 在全局数据块中创建两个用于存储数据的变量。 互连该指令的参数,如下所示: 将确定指定字符串(“inputSTRING”)的Zui大长度,并将其作为数字值,通过输出参数 OUT (“stringMLengthOUT”)返回JOIN:连接多个字符串 (S7-1500) JOIN:连接多个字符串 (S7-1500) 说明 “JOIN”指令可以将多个字符串连接为一个数组。若要将多个字符串转换为一个,该指令提供了以下功能: • 格式选择 可以使用 Mode 参数中的第一个位,指定数组源字符串的序列是应采用 CSV 格式还是 FSR 格式。 在以下示例中,使用表的两列指定了两个源字符串。第一个源字符串的Zui大字符数为 4 个 字符,第二个源字符串的Zui大字符数为 13 个字符,第三个源字符串的Zui大字符数为 10 个 字符,第四个源字符串的Zui大字符数为 14 个字符。– 对于 CSV(逗号分隔值),可以将源字符串的内容连续写入目标数组并使用分隔符分 隔开。(请参见以下示例。) – 对于 FSR(固定长度记录),将在每个源字符串的目标数组中定义一定数量的字符。如 果不需要在目标数组中为源字符串的字符预留空格,则相应的数组元素将使用分隔符 填充。但如果源字符串中的字符数大于为其预留的空格数,则相应数组元素将从前面 开始填写,源字符串的多余字符将被截断(请参见以下示例)。 • 源字符串分隔符的选择 参数 RecSeparator 可用于选择各字符串中使用的分隔符。根据参数 SrcStruct 中输入字符 串中的内容,选择一个字符。如果输入字符串中包含有逗号,则逗号将不能用作分隔符。 用作分隔符的数据类型必须与参数 DstArray 中的目标数组相匹配,从而将该分隔符写入 数组中。 • 所有源字符串末尾分隔符的选择 通过 Mode 参数的第三位,可指定是否在目标数组中复制的字符末尾处写入一个额外字 符作为分隔符(DstArray 参数)。在参数 EndSeparator 处,指定将用作分隔符的字符。 确保使用与为 RecSeparator 参数设置的字符不同的字符(各个字符串的分隔符)。如果 无法区分两个分隔符,那么在使用“SPLIT”指令反向转换的情况下,将获得意外结果。 • 源字符串选择 在 SrcStruct 参数处指定源字符串。对于数据类型,可以使用 Array of STRING、Array of WSTRING 或仅包含 STRING 或 WSTRING 数据类型的结构。这也适用于用户数据类型或嵌 套结构。如果分别只包含数据类型 STRING 或 WSTRING,则可以继续使用。 • 连接字符串的数量指定 如果在参数 SrcStruct(源字符串)处使用 Array of STRING 或 Array of WSTRING(非嵌套 结构),则可以使用参数 Count 指定连接后形成单个字符串的源字符串数量。如果在 SrcStruct 参数处使用 Array of (W)STRING 以外的数据类型,将忽略 Count 参数。通过这 种方式,只能连接数组的较大部分。• 用于写入数组的目标区域的选择 在 DstArray 参数处使用 Array of (W)CHAR 数据类型。在此无法使用 STRING 或 WSTRING 数据类型,这是因为 STRING 的长度限制为 254 个字符或 256 个字节。 • 数组中的位置索引(DestArray 目标参数) 从该位置开始转换。该指令将读取 Position 参数,确定转换完成时的位置。这样可以在 之后调用指令以填充数组。 参数 下表列出了“JOIN”指令的参数: 参数 声明 数据类型 存储区 说明 Mode Input DWORD I、Q、M、D、L 或常量 指定合并为字符串的执行方式(请参见 “Mode”参数)。 RecSeparator Input VARIANT I、Q、M、D、L 源字符串的分隔符 • 对于 CSV:作为各个字符串分隔符的字 符。 • 对于 FSR:作为各个字符串填充字符的字 符。 EndSeparator Input VARIANT I、Q、M、D、L 转换末尾的分隔符 在字符末尾处写入的分隔符,此时为模式参 数设置了位 3 = 1。 SrcStruct Input VARIANT I、Q、M、D、L 指向源字符串的指针。 Count Input UDINT I、Q、M、D、L 或常量 连接的字符串的数量。 只有在 SrcStruct 参数处使用了 Array of (W)STRING 之后,才可以使用 Count 参数。 DestArray InOut VARIANT I、Q、M、D、L 转换之后写入字符的区域。 在 DestArray 参数处使用 Array [0 .. x] of CHAR/WCHAR 数据类型。可以在 SrcStruct 参 数处根据源字符串的长度来设置数组长度 (x)。 Position InOut UDINT I、Q、M、D、L 为整个字符串中的位置制作索引 Ret_Val Return INT I、Q、M、D、L 指令的状态(请参见“RET_VAL 参数”表)。 有关有效数据类型的更多信息,请参见“有效数据类型概述。参数 Mode 位 位值“0” 位值“1” 说明 0 CSV 格式(逗号分 隔值) FSR 格式(固定长 度记录) 格式选择: • 对于 CSV,源字符串由目标数组中的分隔符分隔。 • 对于 FSR,源字符串通过在 RecSeparator 参数处定义的填 充字符写入目标数组。 1 - - 与“JOIN”指令无关。 2 - - 保留(与位值无关) 3 不写入其它分隔符。 在读取字符的末尾 写入由 EndSeparator 参数 定义的字符。 选择在数组(DestArray 参数)中的字符末尾处是否写入一个 额外字符作为分隔符。 4 - - 与“JOIN”指令无关。对于错误代码,请注意以下内容: • 在程序编辑器中,错误代码将显示为整数或十六进制值。有关切换显示格式的信息,请参见“另请参见”。 • 列出的错误代码中第二个位置处的“X”表示导致错误的参数。 示例:错误代码 8352 hex = 第三个参数 (EndSeparator) 出错,请参见参数表。 • 如果无法将错误明确分配到指定的参数,将输出“0”。 示例:CHAR 数据类型将用于分隔符(RecSeparator 参数)。WCHAR 将用作 DestArray 参数处数组的数据 类型。在这种情况下将输出错误代码 80B4。函数块“SLI_FB_JOIN”:程序段 1 的结果 函数“SLI_FC_encodeMode_JOIN”会获取“JOIN”指令将使用的模式,以转换来自输入参数 FORMAT(“mode.format”)和 WRITEENDSEPARATOR(“mode.writeEndSeparator”)的字符 串。因此,转换会以 CSV 格式(“format”为 FALSE)执行,并会在字符串结尾处设置一个字符 (“writeEndSeparator”为 TRUE)。要使用的模式会在函数“SLI_FC_encodeMode_JOIN”的输 出参数 MODE(“#statMode”)中输出。 函数“SLI_FC_calculateLength_JOIN”会计算字符串(“#joinLength”),以根据输入参数 SOURCEARRAY(“sourceArray”)、ONESTRINGOFARRAY(“sourceStruct[0]”)和 MODE (“#statMode”)转换模式中的字符串。函数“SLI_FC_calculateLength_JOIN”计算出整个字符 串长度为 18 个字节。函数块“SLI_FB_JOIN”:程序段 2 的结果 如果常开触点(“execute”)和比较器提供信号状态“TRUE”(“positionInDest”的值小于 “760”),则执行“JOIN”指令。 首次执行“JOIN”指令后,“#finalPosition”变量显示新值。该值基于当前位置值 (“postionInDest”)以及整个字符串的长度(“#joinLength”)。 “JOIN”指令的输出参数 RET_VAL(“returnValue”)指示示例中的处理运行时未出错。由于限 制通过“execute”变量和比较器(“#finalPosition”)执行“JOIN”指令,因此不会出现缓冲区溢 出的情况。 会出现下图所示的采用 CSV 格式的结果:“JOIN”指令停止执行的位置会通过函数“SLI_FC_calculateLength_JOIN”的输出参数 FINALPOSITION(“#finalPosition”)输出。

联系方式

  • 地址:上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201100
  • 电话:15801815554
  • 联系人:邓经理
  • 手机:15801815554
  • 微信:15801815554
  • QQ:190755061