
🔹 1. ENCO 명령어 개요
ENCO (Encode Bit String):
ENCO 명령어는 정수값을 비트로 인코딩하여, 지정된 비트 영역에 1개의 비트만 ON 상태로 설정하는 명령어입니다.
주로 위치 지정, 단계 분기, 상태 전환 등에서 사용됩니다.
항목설명
| 명령어 | ENCO |
| 적용 CPU | Q 시리즈 |
| 데이터 타입 | Source: 16bit (WORD) / Destination: Bit (M, B 등) |
| 처리 시간 | 빠름 (일반 제어용) |
🔹 2. ENCO 명령어 형식
[ENCO S D]
파라미터설명
| S | 원본 값 (0~63 범위의 정수, 예: D100) |
| D | 비트 영역 시작 주소 (예: M1000) |
동작 설명:
- S 값에 해당하는 1개의 비트만 ON되고, 나머지는 OFF 됩니다.
- D는 비트 배열의 시작 주소, 최대 64비트 대상.
❗ S 값이 0~63을 넘어가면 전부 OFF 됩니다.
🔹 3. 실전 예제: D100의 값을 M1000~M1063에 인코딩
🛠 예제 조건
- D100에는 0~63 사이의 값이 저장되어 있음
- 해당 값에 해당하는 위치의 비트 (M1000~M1063 중 하나)를 ON
🧾 예제 프로그램
; D100에 저장된 숫자에 해당하는 M비트 ON ENCO D100 M1000
📈 동작 예시
D100 값ON 되는 M 비트결과 설명
| 0 | M1000 | M1000 ON, 나머지 OFF |
| 5 | M1005 | M1005 ON |
| 63 | M1063 | M1063 ON |
| 64 이상 | 없음 | 모두 OFF (범위 초과) |
🔹 4. 시뮬레이션 예제
예제 1: D100 = 3 → M1003 ON
[설정 전] D100 = 3 M1000~M1063 = 모두 OFF [ENCO 실행] ENCO D100 M1000 [설정 후] M1003 = ON 나머지 M = OFF
예제 2: D100 = 66 → 모두 OFF (범위 초과)
D100 = 66 → ENCO 무효 처리 → M1000~M1063 모두 OFF
🔹 5. 주의 사항 및 팁
✅ ENCO 범위는 64비트 (0~63)
✅ 비트 배열 설정시 겹치지 않게 주의
✅ PLC 전원이 OFF → ON 시, 비트 상태 초기화 가능성 있음
✅ ENCO는 빠른 상태 전환 제어에 유용함
🔹 6. 활용 사례
📍 상태 전환 제어
- 예: 기계의 모드 전환 (대기, 가공, 에러 등)
📍 단계 분기 제어
- ENCO로 단일 단계 선택 후, 조건 분기 처리
📍 연산 최적화
- 복잡한 비교 없이 비트 ON으로 처리 가능
🔹 7. 관련 명령어 비교
명령어기능 비교
| ENCO | 정수 → 비트 1개 ON |
| DECO | 비트 배열 → 정수 |
| MOV | 데이터 전송 |
| SET | 단일 비트 ON |
📌 결론
ENCO 명령어는 간단한 정수 값을 바탕으로 단일 비트만 ON 상태로 설정해주기 때문에, 상태 관리나 분기 제어 등에 매우 유용합니다.
D100과 같은 레지스터에 상태값을 저장하고, 이를 ENCO로 M1000~M1063 비트에 반영함으로써 간결하고 빠른 로직 구성이 가능합니다.