全国服务热线 15801815554

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

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


              SPLIT 的编程示例 (S7-1500) 下例中将 Array of CHAR 字符串转换为三个单独的 Array of STRING 字符串。 说明 更加复杂的示例 如果要多次调用源区域,请使用这一(“SPLIT multiple calls”)指令的示例库 (页 713)示例的 修改版本。 本例修改版中的函数“SLI_FC_calculateLength_SPLIT”考虑了起始位置 (“positionInSource”),还会计算用于执行 SPLIT 的新断点(“#finalPosition”)。 修改版的示例还允许将多个字符串(来自一个 Array of CHAR)转换为多个单独的字符串 (Array of STRING)。当待读取的 ARRAY 采用 FSR 格式时 SPLIT 指令的两个示例 源数组按照 DestStruct 参数指定的目标字符串长度分隔成多个字符串。函数块“SLI_FB_SPLIT”:程序段 1 的结果 函数“SLI_FC_encodeMode_SPLIT”会获取“SPLIT”指令将使用的模式,以转换来自输入参数的 字符串。因此,转换会以 CSV 格式执行(“format”为 FALSE)。应忽略其它字符 (“ignoreAdditionalChar”为 TRUE),字符串结尾处的分隔符应包含在计数中 (“countEndSeparator”为 TRUE),目标区域中的未使用空间应保持不变 (“unusedStringsToZero”为 FALSE)。要使用的模式会在输出参数 MODE(“#statMode”)中 输出。 函数“SLI_FC_calculateLength_SPLIT”会根据输入参数 SOURCEARRAY(“sourceArray”)和 MODE(“#statMode”)计算字符串(“#splitLength”)。因此,整个字符串的长度应为 18 个 字符。

          函数块“SLI_FB_SPLIT”:程序段 2 的结果 如果常开触点(“execute”)的信号状态为“TRUE”,则执行“SPLIT”指令。 输入参数 RECSEPARATOR(“recSeparator”)和 ENDSEPARATOR(“endSeparator”)用于将源 字符串的分隔符和表示转换结束的分隔符传递到“SPLIT”指令。本例中使用逗号和分号作为分 隔符。 Array of CHAR 字符串通过输入参数 SRCARRAY(“sourceArrayCSV”)以 CSV 格式发送。该字 符串会转换为多个字符串,并有一个 Array of STRING 在 DSTSTRUCT 参数(“destArray”) 中。 会根据第一个单元格中 POSITION 参数(“positionInSource”)的“0”值开始读取 Array of CHAR 的字符。 说明 起始位置 如果要使用其它起始位置(“positionInSource”),则必须调整函数 “SLI_FC_calculateLength_SPLIT”中“CHARS_TO_Strg”指令的 PCHARS。 此时,也可使用“SPLIT multiple calls”示例。 字符串转换结束时,会输出位置(positionInSource 的值为 18),并指向 Array of CHAR 中 的下一单元格。输出参数 COUNT (“countOutputStrings”)指示发现的字符串数(“3”)。输出参数 RET_VAL(“returnValue”)可用于指示本示例中的执行过程是否出错。由于限制通 过“execute”变量执行“SPLIT”指令,因此不会出现缓冲区溢出的情况。 会出现下图所示的 CSV 格式的结果: 函数块“SLI_FB_SPLIT”:程序段 3 的结果 如果变量“positionInSource”的值等于变量“#splitLength”的值,则“execute”变量复位。读取 到 Array of CHAR 的确定位置并已转换字符串后,会停止执行“SPLIT”指令。 其它转换 转换 CSV 格式/变量 2 的源数据: 会出现下图所示的 CSV 格式的结果,但不计入分隔符:转换 FSR 格式的源数据: 要转换源区域“sourceArrayFSR”的字符串,请使用 FSR 格式。 要求: • 输入参数 SRCARRAY(参见 SPLIT)和 SOURCEARRAY(参见函数 “SLI_FC_calculateLength_SPLIT”)互连到“sourceArrayFSR”变量。 • 变量“format”和“countEndSeparator”的值为“TRUE”。 目标:不应插入其它字符(“ignoreAdditionalChar”的值为“TRUE”)。但本例中未实现此目标。 “SPLIT”指令会根据目标数组(“destArray”)的数据类型 (STRING[12]) 计算每一个将以长度为 12 个字符的形式输出的字符串。由于源区域(“sourceArrayFSR”)中包含的字符串(包括填 充字符)的长度仅为 10 字符,其中两个字符串会全部输出(填充为 12 个字符)。这样只 会移除第三个字符串的填充字符,该字符串只在结尾处有填充字符。 目标区域(“destArray”)数组的未使用单元格保持不变(“unusedStringsToZero”为 FALSE)。 “SPLIT”指令的输出参数 RET_VAL(“returnValue”)指示附加字符已忽略。ATH: 将 ASCII 字符串转换为十六进制数 (S7-1200, S7-1500) 说明 使用指令“ATH”将 IN 输入参数中指定的 ASCII 字符串转换为十六进制数。转换结果输出到 OUT 输出参数中。 • 使用 IN 参数 (ASCII) 处的指针,可引用以下数据类型:STRING, WSTRING, CHAR, BYTE, Array of CHAR, Array of BYTE, WCHAR, Array of WCHAR, Array of WORD。 • 使用 OUT 参数(十六进制)处的指针,可引用以下数据类型:Array of CHAR, Array of BYTE, Array of WORD, STRING, BYTE, CHAR, WORD, INT, DWORD, DINT, SINT, USINT, UINT, UDINT。 以下数据类型jinxian于 S7-1500:Array of WCHAR, WSTRING, WCHAR, ULINT, LINT, LWORD 通过参数 N,可指定待转换 ASCII 字符的数量。Zui多可转换 32767 个有效 ASCII 字符。只能 解释数字“0”到“9”、大写字母“A”到“F”以及小写字母“a”到“f”。所有其它字符都将转换为 0。 由于 ASCII 字符为 8 位,而十六进制数只有 4 位,所以输出字长度仅为输入字长度的一半。 ASCII 字符将按照读取时的顺序装换并保存在输出中。仅写入十六进制数。即,不对目标范 围进行初始化。

              HTA: 将十六进制数转换为 ASCII 字符串 (S7-1200, S7-1500) 说明 使用指令“HTA”将 IN 输入中指定的十六进制数转换为 ASCII 字符串。转换结果存储在 OUT 参 数指定的地址中。 • 可以使用 IN 参数 (十六进制) 中的指针引用以下数据类型:Array of CHAR、Array of BYTE、 STRING、BYTE、CHAR、WORD、Array of WORD、INT、DWORD、Array of DWORD、 DINT、SINT、USINT、UINT、UDINT。仅 S7-1500:Array of WCHAR、WSTRING、 WCHAR、ULINT、LINT、LWORD、Array of LWORD • 使用 OUT 参数 (ASCII) 中的指针,可以引用以下数据类型:STRING、WSTRING、Array of CHAR、Array of WCHAR、Array of BYTE、Array of WORD 使用参数 N,可指定待转换十六进制字节的数量。由于 ASCII 字符为 8 位,而十六进制数只 有 4 位,所以输出值长度为输入值长度的两倍。在保持原始顺序的情况下,将十六进制数的 每个半位元组转换为一个字符。 Zui多可将 32767 个字符写入 ASCII 字符串中。转换结果由数字“0”到“9”以及大写字母“A”到“F” 表示。 如果 OUT 参数中无法显示转换的完整结果,则结果将部分写入该参数。 如果结果的地址范围大于转换结果,则仅将得到的 ASCII 字符串写入到 OUT 参数中;而不 执行 OUT 初始化。LEN: 确定字符串的长度 (S7-1200, S7-1500) 说明 (W)STRING 数据类型的变量包含两个长度:Zui大长度和当前长度(即当前有效字符的数 量)。 • 使用方括号为 STRING 关键字中的每个变量指定字符串的Zui大长度。字符串占用的字节数 为Zui大长度加 2。 • 使用方括号为 WSTRING 关键字中的每个变量指定字符串的Zui大长度。字符串占用的字数 为Zui大长度加 2。 • 当前长度表示实际使用的字符位置数。当前长度必须小于或等于Zui大长度。 使用指令“LEN”,可查询 IN 输入参数中指定的字符串当前长度。并将其作为数值输出到输出 参数 OUT 中。空字符串 ('') 的长度为零。 如果该指令在执行过程中出错,则参数 OUT 处将输出值“0”。 说明 读出Zui大长度 使用指令“MAX_LEN (页 2682)”,可以读取字符串的Zui大长度。示例 在以下示例中,确定 STRING 数据类型字符串的长度。 在全局数据块中创建两个用于存储数据的变量。

联系方式

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