S7-300中如何将两个字符串连接成一个字符串?如:DB1.DBB0=abcdefg 类型为string[10],DB2.DBB0=abcdefg 类型为string[10],怎么样将DB1.DBB0中的字符串和DB2.DBB0的字符串连成一个字符串存于DB3.DBB0 即其中存为:abcdefgabcdefg
问题补充:
两个字符串连接后存入DB2.DBB20(STRING[30]),DB2.DBB20中存的定义的字符串长度,DB2.DBB21存的是实际的长度。我想要两个字符串连接的时候不需要将长度随其存入,就是DB2.DBB20存的就是字符串的第一个字符。有什么办法可以实现吗?
最佳答案
1、可以应用(IEC)功能:
FC2 CONCAT :字符串组合两个STRING变量。
从STEP 7库“S7libs\Stdlib30”复制到程序目录。或:
ICE 库下载:
S7iec.zip:
http://cache.automation.siemens.com/dnl/jY0NjczMwAA_1851190_FAQ/S7iec.zip
2、FC2:
功能FC2将两个STRING变量连接在一起,组成一个字符串。如果结果字符串比在输出参数中提供的变量长,则将结果字符串限制到设置的最大长度,并将状态字的二进制结果(BR)
位设置为"0"。
参数 声明 数据类型 存储器区 描述
IN1 INPUT STRING D、L 输入变量,格式为STRING
IN2 INPUT STRING D、L 输入变量,格式为STRING
RET_VAL OUTPUT STRING D、L 连接字符串
只能为参数分配一个符号定义的变量。
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/plc242606.html