SIEMENS西门子 S120伺服电机 1FK7022-5AK71-1LG5-Z
- 供应商
- 浔之漫智控技术(上海)有限公司
- 认证
- 西门子
- 代理商
- S120
- 全新原装 假一罚十
- 德国
- 正品现货 实体经营
- 联系电话
- 15801815554
- 手机号
- 15801815554
- 联系人
- 邓经理
- 所在地
- 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
- 更新时间
- 2024-11-22 08:00
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 ofstring 或 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 指向源字符串的指针。 countinput 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 udinti、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”)输出。