新建了一个FB块,在IN接口上定义了一个字符串类型的数据。现在在下面的程序要去调用这个字符串中的某一位,或者某一字节,或者字。有点带#号的那种感觉,请问各位大工,博途里有这个功能吗?或者类似的办法。我想到的是调用自动生成的背景数据块里面的数据,但是感觉不太好,有没有其他更好的办法?
最佳答案
可以,如果你要取某个字符,你可以直接用MOVE把某个字符出来,见图2程序段2,你也可以把字符串里的所有字符复制到字节组或者字组里面,见图1(变量定义),图2程序段1,从图4,图5,你就知道字符存放的变量对应关系,就可以直接使用变量名称。
如果你需要某个字符的位,因为字符不能直接MOVE到BOOL数组结构中,那么如图3,将字符转为16进制数,存放到中间量AUX上,再将AUX编译为字符,存放在BOOL数组里面,那么通过调用数组中的位,就能得到位信息。通过实际操作观查,字符ASC码实际是BDC码,不是16进制数。
你仔细看看所有附图。
图片说明:
提问者对于答案的评价:
谢谢,帮大忙了!
最佳答案作者回复:
读取位,那个我发现有个错误,已经更改过了,你看下图片String 3 new,字符不能直接MOVE进BOOL数组,先把字符转为16进制数,存为AUX,再将AUX转为字符,存到BOOL数组上,这样就可以读取字符的位信息。不过要注意字符格式是BCD码,不是16进制。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc206158.html