ALARMBUFFER 객체 액세스
ALARMBUFFER 객체는 게시자/구독자 인프라의 일부입니다. 게시자/구독자 인프라는 Logix 컨트롤러 통신 하위 시스템의 일부입니다. Logix 컨트롤러 통신 하위 시스템은 컨트롤러의 하위 시스템에서 보낸 메시지를 다른 장치에서 수신하도록 하는 CIP에 대한 게시자/구독자 메시징 패턴을 구현합니다. 현재, 디지털 및 아날로그 알람과 배치 장비 단계 하위 시스템에서는 게시자/구독자 인프라를 사용하여 CIP를 통해 메세지를 구독 응용 프로그램에 전달합니다.
ALARMBUFFER 객체를 사용하면 게시자/구독자 하위 시스템에 대한 연결이 존재하는지 확인하고 연결 상태를 확인할 수 있습니다. AlarmBuffer 객체 인스턴스는 모든 구독 응용 프로그램에 대해 존재합니다. 즉, AlarmBuffer 객체는 한 시점에서 존재할 수 있지만 다른 시점에는 존재하지 않을 수 있습니다. 따라서 시스템 값 가져오기(GSV) 명령어는 대상 태그(INT[0].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 구성원)가 0으로 설정됩니다. 구독자가 AlarmBuffer 객체를 생성할 때 구독자 이름을 제공하지 않으면 AlarmBuffer 객체에 대한 생성 서비스를 호출할 때 사용한 연결과 관련된 장치 일련 번호로 구독자 이름 속성이 설정됩니다. | |
GSV 명령어 예
프로그램에는 컨트롤러의 현재 AlarmBufferInstances 목록을 가져오는 GSV 명령어가 포함되어 있을 수 있습니다. 이 명령어는 컨트롤러에 있는 각 AlarmBuffer 객체와 연관된 AlarmBuffer 객체 인스턴스 ID(DINT[1] – DINT[n-1])와 함께 현재 컨트롤러에 있는 알람 버퍼 객체(DINT[0])의 총 개수를 반환합니다. GSV 명령어는 Dest(대상) 태그 이름 아래에 AlarmBuffer 객체(DINT[0])의 개수 값을 표시합니다.
프로그램에서는 AlarmBuffer 객체 인스턴스 ID를 사용하여 컨트롤러에 있는 AlarmBuffer 객체의 특정 인스턴스와 관련된 정보를 가져올 수 있습니다. 알람 버퍼 객체는 언제든지 생성 및 삭제될 수 있으므로 유효하거나 유효하지 않은 데이터를 나타내는 상태 워드(INT[0])는 AlarmBufferStatus, BufferSize 및 BufferUsage 속성의 대상 태그에 반환됩니다. 속성 이름이 AlarmBufferStatue, BufferSize 또는 BufferUsage이면 반환되는 값은 (INT[1])입니다. 속성 이름이 SubscriberName이면 반환되는 값은 구독자 이름입니다. SubsriberName 속성에 대한 상태는 반환되지 않습니다.
래더 다이어그램다음은 AlarmBuffer 객체 ID를 검색하는 GSV 명령어의 예입니다.

AlarmBufferInstances의 GSV가 값을 배열로 반환하더라도 배열 주소를 사용하여 해당 인스턴스에 대한 속성 값을 가져올 수는 없습니다. myAlarmBufferInstances[x](여기서, x = 1, 2, 3,...)의 값은 다음 설명에 나오는 myAlarmBufferID처럼 직접(인덱싱되지 않은) 태그로 복사 또는 이동해야 합니다.
다음은 AlarmBuffer 객체의 버퍼 크기를 검색하는 GSV 명령어의 예입니다.
속성 이름이 AlarmBufferStatus, BufferSize 또는 BufferUsage인 경우 Dest(대상) 태그 이름 아래에 표시되는 숫자는 유효하거나 유효하지 않은 비트 값입니다.
구조화된 텍스트
다음은 AlarmBuffer 객체 ID를 검색하는 GSV 명령어의 예입니다.
GSV(AlarmBuffer, AlarmBufferInstances, myAlarmBufferInstances[0]);
다음은 AlarmBuffer 객체를 검색하는 GSV 명령어의 예입니다.
GSV(AlarmBuffer, myAlarmBufferID, BufferSize, myBufferSize[0]);
의견을 작성 부탁드립니다.