Avatar 是 TeSys island 上物理模块的数字表示。
这些功能块不受现场总线影响,只有 TeSysIslandRef( 中的 TeSys island 设备)才受现场总线影响。每个支持的现场总线都有一个特定 TeSysIslandRef 可用。这个引用的类型为 FB_TeSys_island,在将 TeSys island 设备添加到 后,会自动创建此类型的实例。
Avatar 通过输入 i_sAvatarName 引用。功能块在执行的同时确认所引用的 avatar 输入类型是否受功能块支持。如果不受支持,则取消功能块执行,并显示诊断消息 AvatarNotSupported。
功能块没有逻辑运算,不会修改或解译 avatar 数据。它们将其输入值复制到循环输出数据帧,并将循环输入帧的数据复制到其输出。如果功能块要求非循环数据交换,则由功能块管理读取和写入请求。
系统为每个 TeSys island 总线耦合器提供一个非循环连接,这样,就必须依次处理非循环通讯请求。只有在接收到对先前请求的响应时,才能发送新请求。如果执行期间检测到错误,功能块会停止,并提供错误信息。您无法通过应用程序(如,取消输入)来停止功能块。
一些功能块会提供用于复位或预设功能块参数的输入。在执行功能块且其中一个这样的输入为 TRUE 时,输出更新会被延迟,直到在 avatar 中执行了复位或预设命令。
功能块有两种类型:
系统 avatar 功能块
标准 avatar 功能块
系统 avatar 在 TeSys island 中是唯一的,通过特定功能块实现来支持,由功能块名称中的字符串 System 来指示。这些功能块没有输入 i_sAvatarName。
标准 avatar 受以下两种功能块支持:
控制功能块
读/写功能块
每个控制 avatar 通过自有功能块实现来支持,所述实现可以针对相同 avatar 类型在一个 TeSys island 中的多次使用来实例化。为应用程序中的每个 avatar 创建功能块实例,并将输入 i_sAvatarName 链接到 avatar。
读/写功能块 Asset、Diagnostic 和 Energy avatars 只有一种实现可用,因为大多数 avatars 都支持相同的资产、诊断和电能数据。相关特例在专用功能块描述中进行了介绍。为不支持的 avatar 执行功能块时,会停止功能块,并报错。如果将相同功能块多次用于不同的 avatars,必须为每个 avatar 创建功能块实例。
示例 - 用于两个不同 avatars 的诊断功能块的两个实例: