怎么理解sfc21?

西门子plc 发布于 3个月前 分类:S7-300/400

我看了F1帮助,还是理解不了SFC21,请问如何理解呢?

1个回复

  • plc电工爱好者
    plc电工爱好者

    3.3  使用SFC 21 "FILL"初始化存储区
    描述
    使用 SFC 21 "FILL",可以初始化一个存储区(目标区域),数据采用另一个存储区(源
    区域)的内容。此 SFC拷贝数据直到充满整个存储区。

    注释
    源与目标区域一定不可交叉。
    如果目标区域的长度不为输入参数 BVAL的整数倍,则目标区域永远不能写满到最
    后一个字节。
    如果目标区域长度小于源区域,只拷贝目标区域能容纳的数据。
    如果实际存在的目标区域或源区域小于源区域或目标区域的存储区的参数集大小
    (BVAL、BLK参数),则数据将不传送。
    如果 ANY指针(源或目标)是布尔类型,则指定的长度必须是8的倍数;否则 SFC将不能执行。
    ...
    例外
    下列项目不能用作源区域:
    *  计数器
    *  定时器
    使用 SFC 21不能将数据写到下列单元中:
    *  下列块类型:FB、SFB、FC、SFC、SDB,
    *  计数器,
    *  定时器,
    *  外设 I/O存储区。

    参数  描述  数据类型  存储区  描述
    BVAL INPUT  ANY  I、Q、M、D、 参数BVAL包含用于初始化目标区域的区域
    L  (源区域)的值或说明。不允许使用STRING数
    组。
    RET_VAL OUTPUT  INT  I、Q、M、D、 在功能执行时发生故障,则此参数中包含一个
    L  故障代码。
    BLK OUTPUT ANY I、Q、M、D、 参数BLK包含被初始化的区域(目标区域)的
    L  说明。不允许使用STRING数组。

    数据以结构形式输入
    如果将一个结构作为输入参数传送,注意以下事项:
    STEP 7总是把一个结构的长度定义为偶数个字节数。因此,如果声明一个包含奇数
    个字节数的结构,需要另加一个字节的存储空间。
    实例
    声明一个结构如下:
    TYP_5_BYTE_STRUCTURE :STRUCT
    BYTE_1_2 :WORD
    BYTE_3_4 :WORD
    BYTE_5 :字节
    END_STRUCT
    声明的结构“TYP_5_BYTE_STRUCTURE”需要 6字节存储空间。
    故障代码
    SFC 21 "FILL"只提供常规(非特定的)故障信息。请参见
    通过输出参数 RET_VAL判断错误