字符串传送SFC20

将一个条码号保存到另一个地址,程序执行了,目标地址里没有数据呢。开始用SFC20 ,后来用SFC83,后来都用上了,试了几次不行,不知道问题在那里。

图片说明:

字符串传送SFC20    字符串传送SFC20    字符串传送SFC20   

最佳答案

SFC20不允许指定 STRING类型的数组。
1、SFC20与SFC83 :
SFC20 “BLKMOV”:复制存储区域,可将存储器区(= 源区域)的内容复制到另一个存储器
区(= 目标区域)。
SFC83 “READ_DBL”:从装载存储器的数据块中读取数据。可将装载存储器(微型存储卡)
中的数据块或数据块的一个数据区复制到目标数据块的数据区中。目标数据块必须
与运行有关;即不能用属性UNLINKED创建。在复制期间,装载存储器的内容
不变。
2、有关SFC20:
、以下为允许的源区域:
 部分数据块
 存储位
输入的过程映像分区(部分过程映像)
输出的过程映像分区(部分过程映像)
、不允许指定 STRING类型的数组。
3、应用SFC20注意:
源区域与目标区域一定不可以交叉。如果指定的目标区域大于源区域,此功能只将
源区域中包含的数据复制到目标区域。
如果指定的目标区域小于源区域,则只复制目标区域中能容纳的数据。
如果ANY指针(源或目标)的类型为BOOL,则指定的长度必须能够被8整除;
否则此SFC将不被执行。
源或目标参数(或二者都)的数据类型也可以为STRING。如果源为字符串,将只复制
该字符串的当前字符。如果目标为字符串,复制字符的当前长度被写入。不能复制“
STRING数组”。这意味着只有“STRING 1”是允许的。
如果已用STEP 7在数据块或本地数据区中定义了源和目标字符串,并要在SRCBLK
和DSTBLK参数中使用这些字符串,SFC20也会将源字符串的“最大长度”和“实际长
度”发送到目标字符串。为了防止发生这种情况,请自行创建在SRCBLK和DSTBLK
参数中使用的ANY指针。请使用STRING数据类型完成此操作。

提问者对于答案的评价:
我的用法错了吗?能不能直接点出我的程序那里错了。

最佳答案作者回复:
SFC20不允许指定 STRING类型的数组为源区域

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

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

相关推荐