访问 ALARMBUFFER 对象

ALARMBUFFER 对象是发布者/订阅者基础架构的一部分。发布者/订阅者基础架构是 Logix 控制器通信子系统的一部分。Logix 控制器通信子系统实现用于 CIP 的发布者/订阅者消息传递模式,此模式支持其他设备接收由控制器子系统发送的消息。目前,数字和模拟报警及批处理设备相位子系统使用发布者/订阅者基础架构通过 CIP 将消息传递给订阅应用程序。
ALARMBUFFER 对象可帮助用户确定是否存在与发布者/订阅者子系统之间的连接及其状态。每个订阅应用程序都存在一个 AlarmBuffer 对象实例。这意味着,AlarmBuffer 对象可能在某个时间点存在,但在另一时间点不存在。因此,获取系统值 (GSV) 指令返回状态作为目标标签 (INT[0].0) 的一部分。当状态位为零时,很可能表示 AlarmBuffer 对象不再存在。
属性
数据类型
指令
说明
AlarmBufferInstance
DINT[n]
GSV
返回 AlarmBuffer 对象 ID。
DINT[0]
Number of AlarmBuffer objects.
DINT[1...(n-1)
AlarmBuffer object IDs.
If the number of AlarmBuffer objects is greater than n-1, only the IDs of the first (n-1) objects are returned.
You do not have to specify an AlarmBuffer Instance ID for this attribute.
AlarmBufferStatus
INT[2]
GSV
返回指定 AlarmBuffer 对象的状态。用户需要指定 AlarmBuffer 实例 ID 才能获取该单个实例的状态。
INT[0].0
1-AlarmBufferStatus Attribute is valid.
0-AlarmBufferStatus Attribute is invalid.
INT[1]
AlarmBuffer Status Attribute value.
The Status attribute contains the following:
INT[1].0
1-Multi-message packets enabled.
0-Multi-message packets disabled.
INT[1].1
1-Buffer is enabled.
0-Buffer is disabled.
INT[1].2
1-Data stored in the buffer.
0-Buffer is empty.
INT[1].3
1-Buffer is full.
0-Buffer is not full.
INT[1].4
1-Initialization Status messages WILL NOT be sent (at subscription time and on Redundancy switchover).
0-Initialization Status messages WILL be sent.
All other bits are reserved and are set to 0.
BufferSize
INT[2]
GSV
返回指定 AlarmBuffer 对象的缓冲区大小(以 kB 为单位)。用户需要指定报警缓冲区实例 ID 才能获取该单个实例的缓冲区大小。
INT[0].0
1-BufferSize Attribute is valid.
0-BufferSize Attribute is invalid.
INT[1]
Buffer Size Attribute value.
BufferUsage
INT[2]
GSV
返回指定 AlarmBuffer 对象所使用的缓冲区空间百分比。用户需要指定 AlarmBuffer 实例 ID 才能获取该单个实例的缓冲区使用百分比值。
INT[0].1
1-BufferUsage Attribute is valid.
0-BufferUsage Attribute is invalid.
INT[1]
BufferUsage Attribute value.
SubscriberName
STRING
GSV
返回指定 AlarmBuffer 对象的订阅者名称。用户需要指定 AlarmBuffer 实例 ID 才能获取该单个实例的订阅者名称。
任何字符串类型都可以作为目标标签引用。
如果订阅者名称不适合提供的目标标签字符串,则指令只能提供名称中能够适合目标标签的部分。
如果调用指令时实例 ID 指定的 AlarmBuffer 对象实例不存在,则字符串长度(.LEN 成员)将设置为零。
请注意,如果订阅者在创建 AlarmBuffer 对象时没有提供订阅者名称,则将订阅者名称属性设置为与用于调用 AlarmBuffer 对象“创建”服务的连接相关联的设备序列号。
GSV 指令示例
用户程序可以包含 GSV 指令,以获取控制器中当前 AlarmBufferInstances 的列表。该指令将返回控制器中当前存在的报警缓冲区对象的总计数 (DINT[0]) 以及控制器中存在的各个 AlarmBuffer 对象的关联 AlarmBuffer 对象实例 ID (DINT[1] – DINT[n-1])。GSV 指令在 Dest(目标)标签名称下显示 AlarmBuffer 对象的数量值 (DINT[0])。
用户程序可以使用 AlarmBuffer 对象实例 ID 来获取与控制器中存在的 AlarmBuffer 对象的特定实例相关的信息。在目标标签中,可返回 AlarmBufferStatus、BufferSize 和 BufferUsage 属性的状态字 (INT[0]),指示有效或无效的数据,因为可以随时创建和删除报警缓冲区对象。当 Attribute Name 等于 AlarmBufferStatue、BufferSize 或 BufferUsage 时,返回值存于 (INT[1]) 中。当 Attribute Name 为 SubscriberName 时,返回值为订阅者名称。不会为 SubsriberName 属性返回状态。
ladder_icon 梯形图
以下示例说明用于检索 AlarmBuffer 对象 ID 的 GSV 指令。
GSV instruction RLL retrieving the AlarmBuffer
虽然 AlarmBufferInstances 的 GSV 将返回值存于数组中,但无法使用数组地址来获取该实例的属性值。用户必须将 myAlarmBufferInstances[x](其中 x = 1、2、3、...)中的值复制或移动到直接(未加索引)标签中,如下图所示的 myAlarmBufferID。
以下示例说明用于检索 AlarmBuffer 对象缓冲区大小的 GSV 指令。
当 Attribute Name 为 AlarmBufferStatus、BufferSize 或 BufferUsage 时,在 Dest(目标)标签名称下显示的数字是有效或无效的位值。
结构化文本
以下示例说明用于检索 AlarmBuffer 对象 ID 的 GSV 指令。
GSV(AlarmBuffer, AlarmBufferInstances, myAlarmBufferInstances[0]);
以下示例说明用于检索 AlarmBuffer 对象的 GSV 指令。
GSV(AlarmBuffer, myAlarmBufferID, BufferSize, myBufferSize[0]);
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal