Allen-Bradley Reference
Rockwell AB Studio5000/래더로직/AOI 레퍼런스
Allen-Bradley Reference 소개
Allen-Bradley PLC 레퍼런스는 ControlLogix 및 CompactLogix 플랫폼용 Studio 5000 Logix Designer(구 RSLogix 5000)에서 사용하는 명령어 세트를 다루는 Rockwell Automation Allen-Bradley PLC의 검색 가능한 빠른 참조 가이드입니다. 래더 로직 명령어, 타이머 및 카운터 블록, 데이터 조작 명령, Add-On Instruction(AOI), User-Defined Type(UDT), EtherNet/IP 통신, PID 제어, Sequential Function Chart 프로그래밍에 즉시 접근할 수 있습니다.
이 레퍼런스는 Allen-Bradley PLC 명령어를 6가지 실용적 카테고리로 정리합니다: 래더 명령어(XIC, XIO, OTE, OTL/OTU, ONS), 타이머/카운터(TON 온딜레이, TOF 오프딜레이, RTO 보유형, CTU/CTD 업/다운 카운터), 데이터 명령(MOV, ADD/SUB/MUL/DIV 사칙연산, EQU/GRT/LES 비교, CPT 수식 계산, SCP 아날로그 스케일링, COP 배열 복사), AOI/UDT(Add-On Instruction, User-Defined Type, Controller vs Program 태그, Alias 태그), 통신(MSG 명시적 메시지, Produced/Consumed 태그, GSV/SSV 시스템 값), 프로그램 제어(JSR/SBR/RET 서브루틴, PIDE 향상형 PID, SFC 순차 제어, Fault 루틴).
각 항목에는 명령어 니모닉, 동작 방식과 스캔 타임 실행에 대한 설명, 파라미터 설정을 보여주는 실용적인 코드 예제가 포함되어 있습니다. 자기 유지 회로가 있는 모터 기동/정지 회로 작성, 지연 온 시퀀스용 TON 타이머 설정, PLC 간 EtherNet/IP Produced/Consumed 태그 교환, PIDE 온도 루프 튜닝, 재사용 가능한 밸브 제어 AOI 구축 등 Studio 5000에서 사용하는 정확한 구문과 파라미터 이름을 제공합니다.
주요 기능
- 스캔 동작 설명이 포함된 XIC(NO 접점), XIO(NC 접점), OTE(출력), OTL/OTU(래치/언래치), ONS(원샷 상승 에지) 래더 로직 명령어 레퍼런스
- PRE, ACC, DN 비트 설명이 포함된 TON(온딜레이), TOF(오프딜레이), RTO(보유형 누적), CTU(업 카운터), CTD(다운 카운터) 타이머 및 카운터 블록
- MOV, 사칙연산(ADD/SUB/MUL/DIV), 비교(EQU/NEQ/GRT/LES/GEQ/LEQ), CPT 수식 계산, SCP 아날로그 스케일링, COP 배열 블록 복사 데이터 조작 명령어
- 입출력 파라미터 정의, Controller vs Program 태그 범위 지정, Alias 태그 I/O 매핑 예제가 포함된 AOI 및 UDT 설계 패턴
- MSG 명시적 메시지(CIP Data Table Read/Write), RPI 설정이 포함된 Produced/Consumed 암시적 태그 교환, GSV/SSV 시스템 값 접근 EtherNet/IP 통신 레퍼런스
- 파라미터 전달이 포함된 JSR/SBR/RET 서브루틴 호출, KP/KI/KD 튜닝과 CV 제한이 있는 PIDE 향상형 PID, SFC 스텝/전이 프로그래밍의 프로그램 제어 명령어
- GSV를 통한 Major Fault Record 접근, 폴트 타입/코드 식별(Type 4 I/O, Type 6 Instruction), 복구 전략을 포함한 폴트 처리
- 래더 명령어, 타이머/카운터, 데이터 명령, AOI/UDT, 통신, 프로그램 제어 간 타겟 검색을 위한 카테고리 필터링
자주 묻는 질문
Allen-Bradley 래더 로직에서 XIC와 XIO의 차이점은 무엇인가요?
XIC(Examine If Closed)는 주소 비트가 1(ON)일 때 True로 평가되는 a접점(NO)입니다. XIO(Examine If Open)는 비트가 0(OFF)일 때 True로 평가되는 b접점(NC)입니다. 모터 기동/정지 회로에서 XIC는 Start 버튼에, XIO는 Stop 버튼에 사용합니다: --| |-- Start --|/|-- Stop --( )-- Motor. Stop 버튼이 기본 여자 상태인 안전 회로를 구성합니다.
TON, TOF, RTO 타이머는 어떻게 다른가요?
TON(Timer On-Delay)은 입력이 TRUE가 되면 타이밍을 시작하고 설정값(PRE) 경과 후 DN 비트를 세트하며, 입력이 FALSE가 되면 리셋됩니다. TOF(Timer Off-Delay)는 입력이 FALSE가 된 후 설정 시간 동안 DN 비트를 ON으로 유지합니다. RTO(Retentive Timer On)는 입력이 TRUE일 때마다 시간을 누적하고, FALSE가 되어도 ACC 값을 유지하므로 수동 RES 명령으로 리셋해야 합니다. 총 가동시간 추적에 RTO를 사용합니다.
Add-On Instruction(AOI)이란 무엇이고 언제 만들어야 하나요?
AOI는 Studio 5000에서 정의된 입력, 출력, 로컬 파라미터로 로직을 캡슐화하는 사용자 정의 재사용 가능 명령어 블록입니다. 밸브 제어(CmdOpen, CmdClose, FbkOpen, FbkClose 입력; OutOpen, OutClose, Fault 출력)나 모터 기동기 같은 반복 제어 패턴에 AOI를 만듭니다. 코드 재사용, 프로젝트 간 표준화, AOI 정의 업데이트가 모든 인스턴스에 전파되어 유지보수가 쉬워집니다.
두 ControlLogix PLC 간 EtherNet/IP로 데이터를 교환하려면?
실시간 암시적 메시징에는 Produced/Consumed 태그를 사용합니다. 프로듀서 PLC에서 Multicast 연결로 Produced 태그(예: Prod_Data를 DINT[10])를 생성합니다. 컨슈머 PLC에서 I/O 트리에 프로듀서를 모듈로 추가하고 적절한 RPI(예: 20ms)로 원격 Produced 태그를 가리키는 Consumed 태그를 만듭니다. 온디맨드 데이터에는 CIP Data Table Read/Write의 MSG 명령을 사용합니다.
SCP 명령어는 무엇에 사용되나요?
SCP(Scale with Parameters)는 원시 아날로그 입력값을 공학 단위로 변환하는 선형 보간을 수행합니다. InputMin, InputMax, OutputMin, OutputMax를 지정합니다. 예를 들어 0-27648 원시 AI 값을 0-100%로 스케일링하면 InputMin=0, InputMax=27648, OutputMin=0.0, OutputMax=100.0입니다. 필드 트랜스미터의 4-20 mA 또는 0-10 V 아날로그 신호를 의미 있는 공정 값으로 변환하는 데 필수적입니다.
온도 제어를 위한 PIDE 루프는 어떻게 구성하나요?
PIDE(Enhanced PID) 명령어는 PV(온도 센서의 공정 변수), SP(설정값), 튜닝 게인 KP, KI, KD를 사용합니다. CVHLimit과 CVLLimit으로 제어 출력 범위를 제한합니다(예: 히터용 0-100%). 출력 CV가 히터를 구동합니다. P 제어만으로 시작한 후 정상상태 오차 제거를 위해 적분을 추가합니다. PIDE는 자동 튜닝, 안티와인드업, 수동/자동 전환 모드도 지원합니다.
Controller 태그와 Program 태그의 차이는 무엇인가요?
Controller 태그는 글로벌이며 컨트롤러의 모든 프로그램, 루틴, AOI에서 접근 가능합니다. I/O 매핑, 프로그램 간 데이터 공유, HMI 통신에 주로 사용합니다. Program 태그는 특정 프로그램에 로컬이며 다른 프로그램에서 접근할 수 없어 캡슐화를 제공합니다. 공유 데이터(Motor_Speed, System_Ready)에는 Controller 태그를, 의도하지 않은 프로그램 간 접근을 방지하기 위한 내부 로직 변수에는 Program 태그를 사용합니다.
Allen-Bradley PLC에서 폴트 처리는 어떻게 작동하나요?
각 프로그램에는 해당 프로그램 내에서 주요 폴트 발생 시 실행되는 Fault 루틴을 지정할 수 있습니다. GSV(Get System Value)에 Class=PROGRAM, Attribute=MajorFaultRecord를 사용하여 Type과 Code를 포함하는 구조체로 폴트 세부 정보를 읽습니다. Type 4는 I/O 폴트, Type 6은 명령어 폴트를 나타냅니다. 프로그래밍 방식으로 폴트를 클리어하고 복구 로직을 구현할 수 있으며, 컨트롤러 레벨 폴트에는 컨트롤러 속성에서 Controller Fault Handler를 설정합니다.