s7-300中怎么把一串数字转化为字符串
郑志武
发布于2013-01-15 23:48
4132
0
标签:
在数据块里有32个字节存放着条码的各个位数,现在想把这32个条码合成字符串,有没有什么快速的方法?如果单个转换成字符串再合并,程序显得太冗长,对于字符串的传送是不是只能以大双字来传送,块不能传送?
问题补充:
我的目标地址是string[32]数组类型,我直接把asciil类型的数据复制到各数组单元里,然后对该字符串的两个符号位赋此种字符类型的符号值,就可以在触摸屏上以字符串的格式显示了,如果不对符号位赋值,那么触摸屏上必须人为的写入大数据条目,才能完整的显示出字符串里的数组。
佳答案
1、将十进制数转换成ascii码:
用户可以使用ice库中的fc5功能将十进制数转换成ascii字符。fc5功能完成转换操作。通过两个传输参数来设置该块:
参数“i”:
要转换的双字格式的数字
参数“retval”:
存储转换完的ascii码的数据类型为字符串(string)的变量
在ob1中调用fc5功能,并提供相应的参数。转换结果出现在db1中从数据块字节2开始的位置。用户可用变量表监视结果。
功能fc2将两个string变量连接在一起,组成一个字符串
2、ice库下载:
s7iec.zip:
https://cache.automation.siemens.com/dnl/jy0njczmwaa_1851190_faq/s7iec.zip
3、字符串变量数据转换的相关一些iec的标准功能:
使用iec的标准功能fc5,fc16,fc30,fc37,fc38和fc39这些功能块可以实现字符串与其它数据类型(例如双整数)之间的相互的转换。
fc2将两个string变量连接在一起,组成一个字符串.
详见:
<s7-300400的系统软件和标准功能>下载:
https://www2.ad.siemens.com.cn/download/upload/as/manual/1023.pdf
4、对于字符串的传送是不是只能以大双字来传送,块不能传送?
详见上述文档中3复制功能和块功能,即第3章。