如何使用 SFB37 (AR_SEND) 在 WinCC 中对一个过程变量进行过程驱动归档?

n

描述:
这篇文章介绍了如何使用 SFB37 (AR_SEND) 来传送一个过程值到 WinCC 过程值归档内。这里遵守条目号 23629327 中所述的步骤。

编号 步骤
1 定义要归档的数据的数据格式
根据要传送的数据结构,使用 AR_SEND 块归档多种数据格式。选择一种可行的数据格式。
有关要传送数据块结构的详细介绍,请参见 WinCC 在线帮助 "WinCC Information System > Communication > SIMATIC S7 Protocol Suite > Special functions > Data exchange with the S7 function block AR_SEND"。 n

该例中选择了下列格式,这里只传送一个过程变量值:n

报头类型 (INT := 9)
1/10 秒 1/100 秒 1/1000 秒 星期
周期 (DINT := 1)
单元(类型) (BYTE := B#16#1) 单元(范围) (BYTE := B#16#1)
AR_ID 子编号 (INT := 1)
过程数据 - 数据类型 (INT := 5)
过程值数目 (INT := 1)
过程值 (REAL)

数据结构元素的描述:n

  • 报头类型 = 9
    报头带有时间戳和 AR_ID 子编号。n
  • 日期和时间 (年、月、日、时、分、秒、...)
    时间戳来自运行时的当前系统时间。n
  • 周期= 1
    按一定频率读取过程值。开始时间点在报头的时间戳内指定,这个值必须给出。单元(范围)的时间单位和“周期”因子对过程值之间的时间间隔有效。n
  • 单元(类型)= 1
    在报头中输入的时间戳对于过程值有效。n
  • 单元(范围)= 1
    保留。n
  • AR_ID 子编号= 1
    在PLC过程值和WinCC归档变量间定义任务。n
  • 过程数据 - 数据类型= 5
    S7 数据类型 = 实型(REAL)
    WinCC 数据类型 = 浮点型n
  • 过程值数目 = 1
    传送了一个过程值。n
  • 过程值
    来自运行时的当前值。
2 在 STEP 7 项目中组态 AR_SEND 发送块
在这个例子中已经创建了功能块 (FB),它只用 AR_SEND 块执行数据交换的核心功能。在步骤 1 中定义的数据结构被数值填充,为“Sending”(发送) 传送 AR_SEND 块。可以以多背景方式调用 SFB37 (AR_SEND)。AR_SEND 块的相关输入/输出端在新建的 FB 接口上可用。在实际中,根据所涉及的情况不同,可能必须编程更多功能,例如: n

  • 为了保证传送时的数据一致性,不应该在传送过程中更改数据。为此,比方说只有当 AR_SEND 块的 "DONE" 输出值为 "1" 时,才能重新写入发送区域。n
  • 为了减少通讯负载,也可以只在过程值发生变化时才把数据传送到 WinCC。也可以当要传送的数据结构中的值发生变化时再收集过程数据,然后在发生定义的事件时进行发送。例如,只能在时间最大值结束之后或超出了定义的数值变化(滞后)之后才发送数据。n
  • 因为 S7 程序中调用 AR_SEND 块的次数有限,如果存在大量测量点要归档的话,则应该使用 AR_SEND 块选择不同版本的数据传送。仍然可以在一个数据块中传送多个不同测量点的值。

更多信息:

  1. 已经在 SCL 中创建该块。如果使用不同的语言 (STL),步骤是完全相同的。n
  2. 已将要传送数据的数据结构定义为 UDT,并且在 FB 的接口中使用。

    如何使用 SFB37 (AR_SEND) 在 WinCC 中对一个过程变量进行过程驱动归档?
    ( 5 KB )
    图01

    在 AR_SEND 块的 LEN 参数上设置传送的数据块长度。可以直接从 STEP 7 程序的块容器中打开 UDT 来确定要传送的数据区长度。在 STL 编辑器中,会在最后一行中以字节为单位显示结构 (UDT) 的长度。

    如何使用 SFB37 (AR_SEND) 在 WinCC 中对一个过程变量进行过程驱动归档?
    ( 14 KB )
    图02

  3. 在外部运行输入 AR_ID AR_SEND 块,并分配系统属性 S7_server:='alarm_archiv'S7_a_type:='ar_send'。这样,将 FB 合并到程序中时,STEP 7 会分配一个唯一连续的 AR_ID。下面两个图显示了使用 SCL 和 STL 语言的块接口。

    如何使用 SFB37 (AR_SEND) 在 WinCC 中对一个过程变量进行过程驱动归档?
    ( 15 KB )
    图 03

    如何使用 SFB37 (AR_SEND) 在 WinCC 中对一个过程变量进行过程驱动归档?
    ( 12 KB )
    图 04

  4. 下面两个图形给出了 CFC 图中和 STL 中的块调用。

    如何使用 SFB37 (AR_SEND) 在 WinCC 中对一个过程变量进行过程驱动归档?
    ( 28 KB )
    图 05

    如何使用 SFB37 (AR_SEND) 在 WinCC 中对一个过程变量进行过程驱动归档?
    ( 8 KB )
    图 06

    如果在 STEP 7 程序中使用该块,则可以通过 SFC1 (READCLK,读系统时钟) 确定当前系统时间并把它保存到一个全局数据块中。可以将这个数据连到该块的 "Time Stamp" 输入端上。

可以下载该块的 SCL 和 STL 源代码。

如何使用 SFB37 (AR_SEND) 在 WinCC 中对一个过程变量进行过程驱动归档? WinCC_ArSendOnePV.zip ( 3 KB )

重要事项
示例程序是免费软件。任何用户都可以免费使用、复制和传播该程序。该程序的作者和所有者对此软件的功能性和兼容性所引起的任何问题不负任何责任。用户需要完全承担使用该软件的所有可能的风险。由于该软件是免费的,所以没有质量保证期,也没有任何错误更正和热线支持。

可以在 SCL 或 STL 编辑器中使用复制/粘贴功能插入相关的源代码。为了成功编译此源代码,应该在符号编辑器中为 UDT 和 FB 预先定义编号。

如何使用 SFB37 (AR_SEND) 在 WinCC 中对一个过程变量进行过程驱动归档?
( 16 KB )
图07

3在 WinCC 中组态过程驱动归档
此步骤的组态在上述的条目号 23629327 和 WinCC 在线帮助文件中有详细描述。为了完整起见,将重新列出主要步骤:

  • WinCC Tag Manager:在 SIMATIC S7 协议组中设置连接
  • WinCC Tag Manager:创建原始数据类型 "Archive Data Link" 的原始数据变量
  • WinCC Tag Logging:创建过程控制的归档变量

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论