在数据块里有32个字节存放着条码的各个位数,现在想把这32个条码合成字符串,有没有什么快速的方法?如果单个转换成字符串再合并,程序显得太冗长,对于字符串的传送是不是只能以最大双字来传送,块不能传送?
问题补充:
我的目标地址是STRING[32]数组类型,我直接把Asciil类型的数据复制到各数组单元里,然后对该字符串的两个符号位赋此种字符类型的符号值,就可以在触摸屏上以字符串的格式显示了,如果不对符号位赋值,那么触摸屏上必须人为的写入最大数据条目,才能完整的显示出字符串里的数组。
最佳答案
1、将十进制数转换成 ASCII 码:
用户可以使用 ICE 库中的 FC 5 功能将十进制数转换成 ASCII 字符。FC 5 功能完成转换操作。通过两个传输参数来设置该块:
参数“i”:
要转换的双字格式的数字
参数“RetVal”:
存储转换完的 ASCII 码的数据类型为字符串(String)的变量
在 OB 1 中调用 FC 5 功能,并提供相应的参数。转换结果出现在 DB 1 中从数据块字节 2 开始的位置。用户可用变量表监视结果。
功能FC2将两个STRING变量连接在一起,组成一个字符串
2、 ICE 库下载:
S7iec.zip:
http://cache.automation.siemens.com/dnl/jY0NjczMwAA_1851190_FAQ/S7iec.zip
3、字符串变量数据转换的相关一些 IEC 的标准功能:
使用 IEC 的标准功能 FC5, FC16, FC30, FC37, FC38 和 FC39 这些功能块可以实现字符串与其它数据类型(例如双整数)之间的相互的转换。
FC2将两个STRING变量连接在一起,组成一个字符串 .
详见:
<S7-300400的系统软件和标准功能>下载:
http://www2.ad.siemens.com.cn/download/Upload/AS/manual/1023.pdf
4、对于字符串的传送是不是只能以最大双字来传送,块不能传送?
详见上述文档中3 复制功能和块功能,即第3章。
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc245962.html