当前位置: 主页 > PLC控制

FB块IN接口上的字符串的访问调用问题

新建了一个fb块,在IN接口上定义了一个字符串类型数据。现在在下面的程序要去调用这个字符串中的某一位,或者某一字节,或者字。有点带#号的那种感觉,请问各位大工,博途里有这个功能吗?或者类似的办法。我想到的是调用自动生成的背景数据块里面的数据,但是感觉不太好,有没有其他更好的办法?

最佳答案

可以,如果你要取某个字符,你可以直接用MOVE把某个字符出来,见图2程序段2,你也可以把字符串里的所有字符复制到字节组或者字组里面,见图1(变量定义),图2程序段1,从图4,图5,你就知道字符存放的变量对应关系,就可以直接使用变量名称。
如果你需要某个字符的位,因为字符不能直接MOVE到BOOL数组结构中,那么如图3,将字符转为16进制数,存放到中间量AUX上,再将AUX编译为字符,存放在BOOL数组里面,那么通过调用数组中的位,就能得到位信息。通过实际操作观查,字符ASC码实际是BDC码,不是16进制数。
你仔细看看所有附图。

图片说明:

FB块IN接口上的字符串的访问调用问题FB块IN接口上的字符串的访问调用问题FB块IN接口上的字符串的访问调用问题7589f6a8c149adbbbb12c04CEb3875aeFB块IN接口上的字符串的访问调用问题FB块IN接口上的字符串的访问调用问题FB块IN接口上的字符串的访问调用问题FB块IN接口上的字符串的访问调用问题FB块IN接口上的字符串的访问调用问题FB块IN接口上的字符串的访问调用问题FB块IN接口上的字符串的访问调用问题FB块IN接口上的字符串的访问调用问题

提问者对于答案的评价:
谢谢,帮大忙了!

最佳答案作者回复:
读取位,那个我发现有个错误,已经更改过了,你看下图片STring3new,字符不能直接MOVE进BOOL数组,先把字符转为16进制数,存为AUX,再将AUX转为字符,存到BOOL数组上,这样就可以读取字符的位信息。不过要注意字符格式是BCD码,不是16进制。

  • 关注微信

猜你喜欢

微信公众号