西门子PLC s7-300字符串
郑志武
发布于2012-12-19 23:51
16
0
标签:
两把扫描枪和cp313用dp通讯,扫描枪读上来的数据是字符串的格式,我通过mov保存在db1里,在db1里建了一个字符数据组。两把枪的数据都保存在db1里面,每把把枪的数据是32位的因此在db1里面建的数据位是64位字符。这样做对吗,还是每一把枪单独建一个数据组保存在不同的数据块里面。
因为读上来的数据是用来比较的,我想把每把枪的30位集合成数据串,(去掉前面两位)进行比较怎么把单个的字符做成数据组呢。
谢谢
佳答案
1、字符串怎么样写到db块里?
可以应用系统功能来传送,如sfc20.使用sfc20”blkmov"(块移动),可将源存储区的内容复制到目标存储区。源区域与目标区域不能交叉。如
callsfc20//调用sfc20
srclblk:=p#m54.0byte20//源存储器区
ret_val:=mw10//执行sfc20出错时的错误代码
dstblk:=p#db2.dbx0.0byte20//目标存储器区
2、如何取字符串中间指定字符?
功能fc26,它提供字符串的中间部分(从第p个字符(含第p个字符)开始的l个字符)。
3、字符串变量数据转换的相关一些iec的标准功能:
使用iec的标准功能fc37,fc38和fc39这些功能块可以实现字符串与其它数据类型(例如双整数)之间的相互的转换。
fc37strng_di:将字符串转换为双整数
fc38strng_i:将字符串转换为整数
fc39strng_r:将字符串转换为实数
4、上述功能的具体用法,详见:
<s7-300400的系统软件和标准功能>下载:
https://www.ad.siemens.com.cn/products/as/simaticplc/download/070625_151.pdf