S7-SCL 中如何比较字符串,或将字符串转变为其他的数据类型?

字符串中的单个元素是无法单独访问的,例如这样的格式不允许:MB10=str[5]。下图实例说明如何使用IECFC26“MID”函数、转换函数“STRING_TO_CHAR”和“CHAR_TO_BYTE”对字符串中某个元素进行访问。


参数含义:

·IN:STRING格式的输入变量。

·L:从位置P开始(含P)的字符串长度。(数据类型:INT)

·P:起始字符位置。(数据类型:INT)

·RET_VAL:STRING格式的输出变量。

字符串比较SCL编程方法:

FC的参数往往传递的是地址。由于FC的STRING类型的参数地址指向调用者中字符串的存储位置,如果此FC被调用时,所传递的指向字符串的地址是无效的。然而对于FB,传递的字符串存储于背景DB中,所传递的地址是总是有效的。对于包含字符串比较程序的FC,在处理之前必须将字符串数据从IN,OUT,IN_OUT传到临时变量区,否则编译会失败,错误消息是:“Parameterassignmentincorrect”(参数分配错误)。

下图是S7-SCL字符串比较FC程序示例。当此FC被调用时,如果没有被装载到FC的临时变量区,string1和string2将无法被获取。


仿真如下:


免责声明:本文章如果文章侵权,请联系我们处理,本站仅提供信息存储空间服务如因作品内容、版权和其他问题请于本站联系