原S5程序中的一段
:C DB 100
:L KY 100,112
:L KB 10
:JU OB 190
:***
请问这一段是什么意思?如何转换?查手册OB190用SFC20替换,可SFC20需要参数,该如何设置呀?
急啊。
问题补充:
谢谢阿鸣,你的答案让我解决了问题,但经过测试,这段语句的意思是将KY100到KY112连续拷贝到DB100中,从DB100的第10个字节开始存储。
最佳答案
1、S5的OB 19,OB192对应S7的SFC20 BLKMOV(复制存储区域)。它们的功能是传送标志到数据块(Transfer flags to data blocks)。
2、可SFC20需要参数,该如何设置呀?
使用SFC20 “BLKMOV”(块移动)可将存储器区(= 源区域)的内容复制到另一个存储器
区(= 目标区域)。
以下为允许的源区域:
. 部分数据块
.存储位
. 输入的过程映像分区(部分过程映像)
. 输出的过程映像分区(部分过程映像)
源参数可以是与程序执行无关的装载存储器中数据块(用关键字UNLINKED编译的数据块)的一部分。
参数:
参数SRCBLK :声明INPUT ,数据类型ANY I、Q、M、D、L ,说明指定被复制的存储区(源区域)。不允许指定STRING类型的数组。
参数RET_VAL:声明 OUTPUT,数据类型 INT I、Q、M、D、L ,说明在功能执行时如有故障发生,此参数值中包含故障代码。
参数DSTBLK :声明OUTPUT ,数据类型ANY I、Q、M、D、L,说明 指定要将数据复制到的存储区(目标区域)。不允许指定STRING类型的数组。
3、应用实例:
其SRCBLK与DSTBLK的类型是ANY的,是用指针表示的.其中一种表示方法:P#[数据块.]位地址 类型号 重复系数.如:P#M50.0 BYTE 8就是从MB50开始8个字节的长度的数据.
CALL SFC20
SRCBLK :=P#M 50.0 BYTE 8
RET_VAL:=MW80
DSTBLK :=P#M 100.0 BYTE 8
4、这一段是什么意思?如何转换?
是将DB100的第100个字节开始的10字节数据送入第112个字节开始的10字节中。
程序为:
OPN DB100
CALL SFC20
SRCBLK :=P#M 100.0 BYTE 10
RET_VAL:=MW80
DSTBLK :=P#M 112.0 BYTE 10
5、SFC20相关文档:
<S7-300400的系统软件和标准功能>下载:
http://www2.ad.siemens.com.cn/download/Upload/AS/manual/1023.pdf
提问者对于答案的评价:
转换成S7程序应为:
OPN DB100
CALL SFC20
SRCBLK :=P#M 100.0 BYTE 13
RET_VAL:=MW80
DSTBLK :=P#DBX0.0 BYTE 13
谢谢阿鸣!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc133340.html