예약된 출력 모듈
출시 예정된 출력 모듈 1756-OB16IS, 1732E-OB8M8SR 및 1756-OB16IEFS는 MAOC 모션 명령어와 함께 작동해 위치 기반 출력 제어를 제공하도록 설계되었습니다(PLS라고도 함). MAOC 명령어 자체는1732E-OB8M8SR 모듈용
ControlLogix
및 CompactLogix
에서 모든 모션 축의 위치를 위치 참조로, 모든 출력 또는 부울을 출력으로 사용하여 위치 기반 출력 제어를 허용합니다. MAOC는 모션 그룹 기본 업데이트 속도(일반적으로 2 ms ~ 10 ms)로 모션 축 위치를 기반으로 출력을 업데이트합니다. 출력 켜기 및 끄기 횟수는 축 위치 및 속도로 결정됩니다.모듈의 정격 분해능으로 낮춘 분해능에서 모듈에 대해 예약된 출력의 켜기/끄기 횟수를 예약하기 위해 출력은 다음의 사용 가능한 모듈에 따라 예약됩니다.
1756-OB16IS의 경우 16개 출력 중 8개(출력 0 ~ 7)가 100 μs 단위로 증가합니다. 출력은 출력 연결 데이터 저장소에서 제공한 16개 일정 중 하나 이상에 데이터를 입력해 예약됩니다.
1732E-OB8M8SR의 경우 8개 출력 중 8개(출력 0 ~ 7)가 100μs 단위로 증가합니다. 출력은 출력 연결 데이터 저장소에서 제공한 16개 일정 중 하나 이상에 데이터를 입력해 예약됩니다.
1756-OB16IEFS의 경우 16개 출력 중 16개(출력 0~15)가 10μs 단위로 증가합니다. 출력은 출력 연결 데이터 저장소에서 제공한 32개 일정 중 하나 이상에 데이터를 입력해 예약됩니다.
중요:
1756-OB16IS 모듈에서 MAOC 명령어를 사용하는 경우 이 모듈에는 기본 통신 형식 즉, 지점당 예약된 출력 데이터를 사용해야 합니다. 이 모듈에서 MAOC 명령어를 사용할 때 통신 형식을 변경하면 에러가 발생할 수 있습니다.
연산
출력은 지점을 기준으로 예약되고 각 개별 출력점은 자체 타임스탬프에 따라 제어됩니다.
개별 일정은 컨트롤러에서 생성되어, 모듈의 출력 이미지 표에 저장된 후 백플레인 또는 EtherNet/IP를 통해 예약된 출력 모듈로 전송됩니다. 일정은 시퀀스 카운트, 일정과 연결할 출력점, 물리적 출력점에 출력 값을 적용해야 할 시간 그리고 예약된 시간에 적용할 값을 지정합니다. I/O 모듈은 일정을 수신해 저장합니다. 각 일정의 타임스탬프는 모듈에서 모니터링합니다. 일정이 만료되면 즉, 현재 시간이 예약된 타임스탬프와 일치하면 출력 값이 해당 출력 비트에 적용됩니다. ASIC의 타이머 하드웨어는 예약 알고리즘을 최적화하는 데 사용됩니다. 또한 이 하드웨어는 지연 시간 및 지터 성능도 줄입니다. 각 일정의 상태는 출력 에코 연결에서 보고되며 모듈의 입력 이미지에서 반영됩니다.
예약된 출력 기능은 1756-OB16IS 모듈에서는 CST(조정 시스템 시간) 타임스탬프를 따릅니다. 섀시의 하나 이상의 컨트롤러가 CST 시간 마스터여야 합니다.
1756-OB16IEFS 및 1732E-OB8M8SR 모듈은 모든 출력을 동기화하는 CIP Sync 그랜드마스터 클럭과 함께 UTC 시간을 사용합니다.
1756-OB16IS 모듈의 경우 사용되지 않는 출력이 정상 출력으로 사용되어 CST 타임스탬프가 만료될 때까지 기다리는 것이 아니라 즉시 적용될 수 있습니다. 마스크가 모듈로 전송되어 정상 출력으로 기능할 출력을 지정합니다.
예약된 각 출력 모듈은 개별적으로 예약할 수 있습니다. 각 모듈 유형에 사용할 수 있는 예약된 지원은 다음 표를 참조하십시오.
모듈 | 총 출력 | 예약된 출력 | 총 일정 | 최소 예약 간격 | 시간 기준 |
1756-OB16IS | 16 [0 ~ 15] | 8 [0 ~ 7] | 16 | 100μs | CST |
1732E-OB8M8SR | 8 [0 ~ 7] | 8 [0 ~ 7] | 16 | 100μs | UTC |
1756-OB16IEFS | 16 [0 ~ 15] | 16 [0 ~ 15] | 32 | 5μs | UTC |
예약된 출력은 출력점 사이에 있어야 합니다. 예약되지 않은 출력은 정상 출력점으로 사용됩니다. 마스크는 어떤 지점이 예약되었으며 어떤 지점이 예약되지 않았는지를 나타냅니다. 모든 예약 구성은 MAOC 명령어를 통해 수행됩니다.
시퀀스 카운트에 대한 변경으로 나타난 새 일정을 현재 일정이 만료되기 전에 I/O 모듈에서 수신하면 현재 일정을 덮어쓰게 됩니다. 이 메커니즘은 현재 활성 일정을 취소하는 데 사용될 수 있습니다. 출력 에코 연결에 반환된 상태 비트는 각 일정의 현재 상태를 결정하고 해당 이벤트 태스크를 트리거하는 데 사용될 수 있습니다.
컨트롤러에서 새 일정을 1756-OB16IS로 전송하고 CST 타임스탬프가 이미 지난 경우 출력은 CST 시간의 하위 24비트가 완전히 래핑될 때까지 출력이 어설션됩니다. 이 모듈은 만료된 CST 타임스탬프가 있는지 확인하지 않습니다.
주의:
두 일정 사이의 시간이 최소 일정 간격보다 짧으면 지터가 발생합니다. 즉, 두 출력이 예약된 시간이 다르더라도 둘 다 동시에 활성화됩니다.
원격 작업
1756-OB16IS 모듈을 사용하는 예약된 출력은 원격 섀시와 작동하지 않습니다.
MAOC 명령어와 사용
모션 및 MAOC 명령어와 사용하는 경우 출력 이미지의 값은 컨트롤러의 모션 플래너 펌웨어가 제어합니다. 모션 플래너는 데이터가 모듈로 전송되도록 트리거합니다. 그럼에도 불구하고 정상 프로그램 또는 태스크 스캔 역시 데이터가 모듈로 전송되도록 트리거합니다. 데이터 무결성은 항상 지정된 마지막 일정에 대한 시퀀스 카운트를 설정하는 펌웨어에서 유지합니다.
출력 캠 명령어는 예정되지 않은 출력보다 기본 업데이트 기간 하나 만큼 더 빨리 예약된 출력에 대한 캠 이벤트를 처리합니다. 프로그래밍된 켜기 또는 끄기 이벤트가 감지되면 일정이 출력 모듈로 전송되어 다음 기본 업데이트 기간 내 적절한 시간에 출력을 켜거나 끕니다. 출력 캠 명령어는 기본 업데이트 기간을 16개의 시간 슬롯으로 나눕니다.
예를 들어, 기본 업데이트 기간 2 ms는 16개의 125 μs 타임 슬롯을 생성합니다. 캠 켜기/끄기 이벤트는 기본 업데이트 기간 내 자신의 위치에 따라 시간 슬롯에 할당됩니다. 캠 요소에 대한 래치 및 언래치 이벤트가 둘 다 동일한 시간 슬롯에 할당되면 서로를 취소합니다. 이는 캠 요소의 최소 펄스 너비가 시간 슬롯 하나보다 큼을 의미합니다.
캠 요소의 최소 펄스 너비는 OB16IS 최소 펄스 너비인 100 μs 또는 기본 업데이트 최소 펄스 너비의 1/16 중 더 큰 펄스 너비보다 커야 합니다.
MAOC 명령어는 하나의 기본 업데이트 보다 앞서 래치 및 언래치 이벤트를 감지하고 다음 기본 업데이트 내에서 발생할 이벤트를 예약합니다. 이는 예약된 각 출력 래치 및 언래치 위치에 하나의 기본 업데이트 내부 지연을 적용해 수행됩니다. 래치 또는 언래치 이벤트가 감지되면 기본 업데이트 시작부터 이벤트까지의 델타 시간이 계산되고 출력이 다음 기본 업데이트 기간에 해당하는 CST 또는 UTC에 발생하도록 예약됩니다. 이를 촉진하기 위해 현재 기본 업데이트 기간이 발생했을 때 출력 캠 기능이 캡처된 CST 또는 UTC에 액세스합니다.
MAOC 명령어는 1756-OB16IS에 대한 예약된 출력 비트와 예약되지 않은 출력 비트를 둘 다 처리할 수 있습니다.
MAOC의 출력 캠 표에서 사용하도록 구성되지 않은 예약된 출력은 관련 일정 마스크에서 할당되지 않습니다. 이러한 출력은 개별 로직의 일반 이산 출력으로 조작할 수 있습니다. 이는 1756-OB16IS 모듈의 경우 출력 비트 0~7 또는 0~15에 직접 영향을 미칠 수는 없지만 출력 비트 8~15는 수정할 수 있음을 나타냅니다.
팁:
1756-OB16IS 모듈의 경우 데이터 비트를 0 또는 1로 그리고 ScheduleMask의 해당 비트는 0으로 강제 설정해 출력 0 ~ 7을 강제 구성할 수 있습니다. 출력 8 ~ 15의 경우에는 데이터 비트만 강제해야 합니다. 1732E-OB8M8SR 및 1756-OB16IEFS 모듈의 경우에는 1756-OB16IS 모듈에 사용하는 것과 동일한 방식으로 출력 0 ~ 7과 출력 0 ~ 15를 강제합니다.
1756-OB16IS와 1732E-OB8M8SR에서 지원되는 일정은 16개, 1756-OB16IEFS 모듈에서 지원되는 일정은 32개로 제한되기 때문에 모든 기본 업데이트 기간에서 처리할 수 있는 이벤트 수에 몇 가지 제약이 적용됩니다.
1756-OB16IS 및 1732E-OB8M8SR 모듈의 경우 각 기본 업데이트에는 8개 일정만 사용할 수 있습니다. 하지만 각 업데이트에 출력 이벤트 8개가 포함된 연속하는 기본 업데이트 2개를 허용합니다. 8개 일정으로 구성된 그룹 하나를 현재 예약된 출력 모듈에서 처리 중이므로 8개 일정으로 구성된 두 번째 그룹은 다음 기본 업데이트에 대해 동시에 설정할 수 있습니다.
마찬가지로, 1756-OB16IEFS 모듈의 경우 각 기본 업데이트에는 16개 일정만 사용할 수 있습니다. 하지만 각 업데이트에 출력 이벤트 16개가 포함된 연속하는 기본 업데이트 2개를 허용합니다. 16개 일정으로 구성된 그룹 하나를 현재 예약된 출력 모듈에서 처리 중이므로 16개 일정으로 구성된 두 번째 그룹은 다음 기본 업데이트에 대해 동시에 설정할 수 있습니다.
다음 다이어그램은 1756-OB16IS에 대한 기본 업데이트 기간, 캠 래치 이벤트와 시간 슬롯 사이의 관계를 보여줍니다.

각 시간 슬롯에는 다음 테이블에서 설명하는 정보가 저장됩니다.
항목 | 설명 |
래치 이벤트 마스크 | 래치 이벤트가 감지되면 래치 이벤트가 속한 시간 슬롯이 계산되고 이 래치의 출력 비트에 해당하는 래치 이벤트 마스크의 비트가 설정됩니다. |
언래치 이벤트 마스크 | 언래치 이벤트가 감지되면 언래치 이벤트가 속한 시간 슬롯이 계산되고 이 언래치의 출력 비트에 해당하는 언래치 이벤트 마스크의 비트가 설정됩니다. |
간격 | 래치 또는 언래치 이벤트가 발생한 기본 업데이트의 시각부터 계산된 마이크로초 단위 시간입니다. |
펄스 켜기 마스크 | 펄스 출력의 경우 펄스 켜기 이벤트가 계산되는 시간 슬롯과 펄스 이벤트의 출력 비트에 해당하는 펄스 켜기 마스크의 비트가 설정됩니다. |
펄스 끄기 마스크 | 펄스 출력의 경우 펄스 끄기 이벤트가 계산되는 시간 슬롯과 펄스 이벤트의 출력 비트에 해당하는 펄스 끄기 마스크의 비트가 설정됩니다. |
출력 켜기 마스크 | 정상 출력의 경우 래치 또는 펄스 켜기 이벤트의 출력 비트에 해당하는 비트가 설정되어 이러한 이벤트에 대해 출력이 켜져 있음을 나타냅니다. 반전된 출력의 경우 언래치 또는 펄스 끄기 이벤트의 출력 비트에 해당하는 비트가 설정되어 이러한 이벤트에 대해 출력이 꺼져 있음을 나타냅니다. |
출력 끄기 마스크 | 정상 출력의 경우 언래치 또는 펄스 끄기 이벤트의 출력 비트에 해당하는 비트가 설정되어 이러한 이벤트에 대해 출력이 꺼져 있음을 나타냅니다. 반전된 출력의 경우 래치 또는 펄스 켜기 이벤트의 출력 비트에 해당하는 비트가 설정되어 이러한 이벤트에 대해 출력이 꺼져 있음을 나타냅니다. |
이는 시간 슬롯 데이터가 사용되는 방법을 간단하게 보여줍니다.

또한 시간 슬롯은 중복 캠 요소를 처리하는 데 사용됩니다. 세마포는 각 출력 비트의 현재 활성 상태를 나타내기 위해 유지됩니다. 또한 동일한 시간 슬롯에 프로그래밍된 캠 요소 래치 및 언래치 이벤트가 발생하면 이러한 이벤트는 서로를 취소합니다.
캠 요소의 최소 너비는 시간 슬롯의 너비 또는 기본 업데이트 기간의 1/16에 해당합니다.
I/O 하위 시스템
MAOC 명령어의 출력 파라미터는 메모리 태그 또는 출력 모듈의 데이터 태그로 지정할 수 있습니다. 태그에 대한 포인터가 MAOC 명령어로 전달됩니다. 또한 유형 IO_MAP의 내부 파라미터도 MAOC 명령어로 전달됩니다. 출력 파라미터가 컨트롤러 메모리를 참조하는 경우 IO_MAP 파라미터는 NULL입니다. 출력 파라미터가 출력 모듈을 참조하는 경우 IO_MAP 파라미터는 모듈의 맵 구조를 가리킵니다. MAOC 명령어는 드라이버 표에 저장된 모듈 유형을 확인해 출력 파라미터가 예약된 출력 모듈과 연결되어 있는지 확인할 수 있습니다.
출력 데이터 구조
필드 | 크기 | 설명 |
값 | 4바이트 | 예약되지 않은 출력 비트에 대한 데이터 값. 0 = 꺼짐 1 = 켜짐 |
마스크 | 4바이트 | 어느 출력 비트를 예약할지 선택합니다. 첫 번째 8개 비트(0 ~ 7) 또는 16개 비트(0 ~ 15)만 예약할 수 있습니다. 0 = 예약되지 않음 1 = 예약됨 |
ScheduleTimestamp | 8바이트 | 1756-OB16IEFS 및 1732E-OB8M8SR에만 해당. UTC 시간으로 표시되는 기본 업데이트 타임스탬프. |
16개 일정 구조의 배열
필드 | 크기 | 설명 |
일정 ID | 1바이트 | 유효한 ID는 1756-OB16IS 및 1732E-OB8M8SR 모듈의 경우 1 ~ 16이고, 1756-OB16IEFS 모듈의 경우 1 ~ 32입니다. 기타 모든 값은 일정이 고려되지 않음을 나타냅니다. |
시퀀스 번호 | 1바이트 | 예약된 출력 모듈이 일정 사본을 유지합니다. 시퀀스 번호의 변경은 모듈에 이 일정의 데이터를 처리하도록 지시합니다. |
포인트 ID | 1바이트 | 이 일정과 연결된 출력 비트를 나타냅니다. 1756-OB16IS 및 1732E-OB8M8SR 모듈의 경우 값으로 00 ~ 07을, 1756-OB16IEFS 모듈의 경우에는 00 ~ 15를 입력합니다. |
포인트 값 | 1바이트 | 포인트 ID에 지정된 출력 비트의 다음 상태. 0 = 꺼짐 1 = 켜짐 |
타임스탬프 | 4바이트 | 1756-OB16IS - CST의 하위 32비트. 1756-OB16IEFS, 1732E-OB8M8SR - 기본 업데이트 타임스탬프의 오프셋(예약된 시간 = ScheduleTimestamp + Time Stamp). 지정된 출력 비트의 상태를 변경할 시점을 나타냅니다. |
일정 처리
값 및 마스크 필드가 처리되어 예약되지 않은 모든 데이터 비트가 모듈 출력 데이터 저장소로 이동됩니다. 모든 일정이 처리된 후 이러한 데이터는 출력 터미널에 기록됩니다. 각 일정이 처리되는데, 다음과 같은 경우에는 일정이 고려되지 않습니다.
- 일정 ID가 1 ~ 16 또는 1 ~ 32 범위에 없는 경우.
- 포인트 ID가 0 ~ 7 또는 0 ~ 15 범위에 없는 경우.
- 시퀀스 번호가 변경되지 않은 경우
일정이 고려되면 활성 상태로 표시됩니다. 모든 활성 일정은 몇 마이크로초마다 검사됩니다. 일정 타임스탬프는 현재 시간과 비교됩니다. 현재 시간이 예약된 타임스탬프보다 크거나 같으면 일정의 포인트 값이 지정된 출력 비트에 대한 모듈 출력 데이터 저장소로 이동됩니다.
의견을 작성 부탁드립니다.