字符串

请教两个问题
 两把扫描枪和CP313用DP通讯,扫描枪读上来的数据是字符串的格式,我通过MOV保存在DB1里,在DB1里建了一个字符数据组。两把枪的数据都保存在DB1里面,每把把枪的数据是32位的 因此在DB1里面建的数据位是64位字符。这样做对吗,还是每一把枪单独建一个数据组保存在不同的数据块里面。
 因为读上来的数据是用来比较的,我想把每把枪的30位集合成数据串,(去掉前面两位)进行比较怎么把单个的字符做成数据组呢。
谢谢

最佳答案

1、字符串怎么样写到DB块里?
可以应用系统功能来传送,如SFC20.使用SFC20”BLKMOV"(块移动),可将源存储区的内容复制到目标存储区。源区域与目标区域不能交叉。如
CALL  SFC20                                      //调用SFC20
SRCLBLK  :=P#M54.0 BYTE 20     //源存储器区
RET_VAL   :=MW10                          //执行SFC20出错时的错误代码
DSTBLK    :=P#DB2.DBX0.0 BYTE 20  //目标存储器区
2、如何取字符串中间指定字符?
功能FC26,它提供字符串的中间部分(从第P个字符(含第P个字符)开始的L个字符)。
3、字符串变量数据转换的相关一些 IEC 的标准功能:
 使用 IEC 的标准功能 FC37, FC38 和 FC39 这些功能块可以实现字符串与其它数据类型(例如双整数)之间的相互的转换。  
  FC37 STRNG_DI: 将字符串转换为双整数 
 FC38 STRNG_I:  将字符串转换为整数 
 FC39 STRNG_R:  将字符串转换为实数
4、上述功能的具体用法,详见:
<S7-300400的系统软件和标准功能>下载:
http://www.ad.siemens.com.cn/products/as/simaticplc/download/070625_151.pdf

提问者对于答案的评价:
谢谢大家热心的回答

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc244860.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐