为什么字符串中的字符无效_S7-SCL 中如何比较字符串,或将字符串转变为其他的数据类型?...

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

4640d8ea58e1c7d65ac3c67172202d71.png

参数含义:

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

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

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

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

字符串比较SCL编程方法:

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

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

1653d93c854f6d56744eb1a09a02053c.png

仿真如下:

e9ae1891e107f324c1c11c92a4e3fc5c.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值