공정제어 시스템을 위한 PLC HMI 구현 화면 분석(공정제어 , 사거리신호등구현, 타이머의 효율적인 메모리 사용 , 기본 메모리구조 설명 )

2024. 5. 21. 17:02충남 인력개발원/plc (GX Works)

 

DAY0521_공정제어.gxw
0.94MB
DAY0521_공정제어.prx
0.64MB

실제 구동화면이다 초기화 > 수량선택(숫자바 터치시 수량선택 가능) > 시작

 

단계별 분석 과정:
소개:

공정 제어 시스템에서 HMI (Human-Machine Interface)의 중요성에 대해 간단히 소개합니다.
이번 분석의 목적을 설명합니다. 예를 들어, 화면 레이아웃, 기능 및 사용자 상호작용에 대한 이해를 포함합니다.
HMI 화면 개요:

이미지에 표시된 HMI 화면의 전반적인 설명을 제공합니다.
제어 버튼, 디스플레이 패널 및 기타 중요한 요소를 포함한 화면의 주요 섹션을 설명합니다.
화면 요소의 상세 분석:

제어 버튼:

설명:
제어부: 시스템 제어에서의 역할을 설명합니다.
시작: 프로세스를 시작하는 기능을 설명합니다.
정지: 프로세스를 중지하는 기능을 설명합니다.
일시 정지: 프로세스를 일시 정지하는 기능을 설명합니다.
초기화: 시스템을 초기화하는 기능을 설명합니다.
목적 및 사용:
각 버튼의 목적과 사용 시점을 자세히 설명합니다.
공정 지표:

금속 수량, 비금속 수량:
이러한 지표의 목적과 프로세스 모니터링에 어떻게 도움이 되는지 설명합니다.
금속 목표 수량:
이 목표 수량이 어떻게 설정되고 조정되는지 설명합니다.
판별 물품:
이 디스플레이가 식별 프로세스에서 하는 역할을 논의합니다.
흐름 및 공정 시각화:

화면에서 공정 흐름이 어떻게 시각화되는지 설명합니다.
S1, S2, S3, S4, B, F로 표시된 요소의 의미와 공정에서의 역할을 설명합니다.
상호작용 및 사용자 인터페이스 디자인:

사용자 친화성과 효율성 측면에서 레이아웃을 분석합니다.
색상 코드(R, Y, G)의 중요성과 다른 상태 또는 경고를 나타내는 데 어떤 의미가 있는지 논의합니다.
직관적인 탐색 및 중요한 제어에 대한 빠른 접근성을 위해 전반적인 디자인을 평가합니다.
기능 및 운영 흐름:

HMI를 사용하여 시스템이 단계별로 어떻게 작동하는지 설명합니다.
일반적인 사용자 상호작용 및 시스템 응답의 예를 제공합니다.
결론:

분석의 주요 사항을 요약합니다.
HMI 디자인의 강점과 개선이 필요한 부분을 논의합니다.


래더 다이어그램 상세 분석

1. 초기화 (Initialization)
BK_RST (M0): 초기화 신호를 리셋합니다.
초기화 타이머 (T2041): 초기화 과정에서 일정 시간 동안 타이머를 설정하여 초기화 과정이 완료될 때까지 기다립니다.
금속 수량 리셋 (C0): 금속 수량을 리셋합니다.
비금속 수량 리셋 (C1): 비금속 수량을 리셋합니다.

L0  ---------------------------- [BK_RST M0 K8192]
    ---------------------------- [T초기화리셋 T2041 K5]
    ---------------------------- [H금속수량 RST C0]
    ---------------------------- [H비금속수량 RST C1]
    ---------------------------- [RST L0]

 

2. 일시 정지 (Pause)
TG_SW (X3): 일시 정지 스위치.
H일시정지 (M2): 일시 정지 상태를 관리합니다.

TG_SW (X3)  ---------------------- [H일시정지 M2]
    ------------------------------- [CJ P0]
    ------------------------------- [RST L0]

 

3. 공정 시작 (Process Start)
공급추 (X11): 공정 시작 시 공급을 관리합니다.
S1 센서 (X8): 공정 시작 시 센서의 상태를 확인합니다.
T물품없음 (T2047): 물품이 없음을 확인하는 타이머.
H물품없음 인도 (M10): 물품 없음 상태를 표시합니다

 

공급추 (X11)  -------------------- [S1센서 X8]
    ------------------------------- [T물품없음 T2047 K5]
    ------------------------------- [H물품없음 인도 M10]

 

4. 공정 제어 (Process Control)
PB1 (X0): 공정 시작 버튼.
H금속수량 (M1): 금속 수량을 관리합니다.
H정지 (M1): 정지 상태를 관리합니다.
H금속목표 (D0): 금속 목표 수량을 설정합니다.
공정전진 (M8190): 공정이 전진 중임을 표시합니다.

 

PB1 (X0)  ---------------------- [S1센서 X8]
    ---------------------------- [T물품없음 T2047]
    ---------------------------- [H정지 M1]
    ---------------------------- [H금속수량 C0]
    ---------------------------- [H금속목표 D0]
    ---------------------------- [시작 M8191]
    ---------------------------- [공급전진 M8190]
    ---------------------------- [공정시작 M8174 SET]

 

5. 공정 완료 (Process Completion)
H공정전진 (M8190): 공정 전진 상태를 확인합니다.
드릴온 (M8189): 드릴 작동 상태를 관리합니다.
가공전진 (M8187): 가공 전진 상태를 확인합니다.
공정종료 (M8175): 공정이 종료되었음을 표시합니다.

H공정전진 (M8190)  ------------ [공급추 X11]
    ---------------------------- [S1센서 X8]
    ---------------------------- [드릴온 M8189]
    ---------------------------- [가공전진 M8187]
    ---------------------------- [공정종료 M8175]

 


 

래더 다이어그램 추가 분석

 

1. 공정 전진 및 완료 조건 (Process Forwarding and Completion)
가공전진 (M8187): 가공 과정에서 전진 상태를 관리합니다.
가공전진 완료 (X13): 가공 전진이 완료되었음을 나타냅니다.
종료 (M8175): 공정이 종료되었음을 나타냅니다.
드릴오프 (M8186): 드릴이 꺼져 있음을 나타냅니다.

가공전진 (M8187)  ---------------- [가공전진 X13]
    ------------------------------- [종료 M8175]
    ------------------------------- [드릴오프 M8186]

 

2. 공정 정지 및 재시작 (Process Stop and Restart)
T드릴정지 (T2044): 드릴 정지 타이머.
공급전진 (M8185): 공급 전진 상태를 관리합니다.
송출전진 (M8184): 송출 전진 상태를 관리합니다.
송출추진 (M8183): 송출 추진 상태를 관리합니다.

T드릴정지 (T2044)  -------------- [종료 M8175]
    ------------------------------- [공급전진 M8185]
    ------------------------------- [송출전진 M8184]
    ------------------------------- [송출추진 M8183]

 

3. 금속/비금속 공정 및 배출 (Metal/Non-metal Process and Discharge)
금속 (M8181): 금속 공정을 관리합니다.
T금속지연 (T2043): 금속 지연 타이머.
배출전진 (M8179): 배출 전진 상태를 관리합니다.
배출추진 (M8178): 배출 추진 상태를 관리합니다.

금속 (M8181)  --------------------- [T금속지연 T2043]
    ------------------------------- [배출전진 M8179]
    ------------------------------- [배출추진 M8178]

 

4. 비금속 공정 및 배출 (Non-metal Process and Discharge)
비금속 (M8180): 비금속 공정을 관리합니다.
T비금속지연 (T2042): 비금속 지연 타이머.
비중 (M8176): 비중을 관리합니다.
종료 (M8175): 공정이 종료되었음을 나타냅니다.

비금속 (M8180)  ------------------- [T비금속지연 T2042]
    ------------------------------- [비중 M8176]
    ------------------------------- [종료 M8175]

 

5. 출력부 (Output Section)
공급전진 (M8190): 공급 전진 신호를 출력합니다.
공급추진 (M8185): 공급 추진 신호를 출력합니다.
송출전진 (M8184): 송출 전진 신호를 출력합니다.
송출추진 (M8183): 송출 추진 신호를 출력합니다.
배출전진 (M8179): 배출 전진 신호를 출력합니다.
배출추진 (M8178): 배출 추진 신호를 출력합니다.

공급전진 (M8190)  --------------- [공급전진 Y20]
    ------------------------------- [공급추진 Y21]
송출전진 (M8184)  ---------------- [송출전진 Y22]
    ------------------------------- [송출추진 Y23]
배출전진 (M8179)  ---------------- [배출전진 Y24]
    ------------------------------- [배출추진 Y25]

 

 

1. 램프 처리 (Lamp Processing)
가공전진 (M8188): 가공 전진 상태를 관리합니다.
드릴온 (M8189): 드릴 작동 상태를 관리합니다.
컨구동 (M8182): 컨베이어 작동 상태를 관리합니다.
금속 (M8181), 비금속 (M8180): 금속 및 비금속 공정을 관리합니다.

가공전진 (M8188)  --------------- [가공전진 Y26]
드릴온 (M8189) ------------------- [TG_SW X3] [H일시정지 M2]
                                ------------------ [가공드릴 Y27]
컨구동 (M8182) ------------------ [TG_SW X3] [H일시정지 M2]
                                ------------------ [CON_CW Y28]
금속 (M8181) --------------------- [SM412] [적색램프 Y30]
비금속 (M8180) ------------------ [SM412] [녹색램프 Y32]

2. 수량 파악 (Quantity Check)
금속 (M8181), 비금속 (M8180): 금속 및 비금속 수량을 파악합니다.
공정시간 (T0): 공정 시간을 계산합니다.
종료 (M8175): 공정이 종료되었음을 나타냅니다.

금속 (M8181) ---------------------- [H금속목표 C0] [H금속수량 C1]
비금속 (M8180) ------------------- [H비금속수량 C1]
공정시간 (T0) -------------------- [K200 T공정시간] [공정시작 M8174]
종료 (M8175) ---------------------- [RST]

3. 판별 물품 메시지 표시 (Identification Item Message Display)
금속 (M8181), 비금속 (M8180): 판별 물품의 메시지를 표시합니다.
MOV 명령어: 메시지 번호를 이동시킵니다.

금속 (M8181), 비금속 (M8180) --- [MOV K1 H메시지번호 D1]
                                ------------------ [MOV K1 H메시지번호 D2]
                                ------------------ [MOV K2 H메시지번호 D1]
                                ------------------ [MOV K3 H메시지번호 D2]

4. 에어 체크 알람 표시 (Air Check Alarm Display)
공급전진 (M8190), 공급전 (X10): 에어 체크 알람을 표시합니다.
T공급전진지연 (T2040): 에어 체크 지연 타이머.

공급전진 (M8190), 공급전 (X10) --- [T공급전진지연 T2040] [H공압이상 M20]

5. 외부 입력 테스트 (External Input Test)
알람 (M8171): 외부 입력 테스트 시 알람을 표시합니다.
MOV 명령어: 알람 메시지를 이동시킵니다.

알람 (M8171) --------------------- [MOV K1 D30]
                                 ------------------ [MOV K100 D32]
                                 ------------------ [MOV K100 D33]
                                 ------------------ [MOV K2 D31]
                                 ------------------ [MOV K0 D30]

6. 문제 알림 (Problem Alert)
알람 (M8171), 알람1 (M8170), 알람2 (M8169), 알람3 (M8168): 문제 발생 시 알람을 표시합니다

 

알람 (M8171) --------------------- [MOV K1 D31]
                                 ------------------ [MOV K2 D31]
                                 ------------------ [MOV K0 D30]
알람1 (M8170) -------------------- [D50.0]
알람2 (M8169) -------------------- [D50.1]
알람3 (M8168) -------------------- [D50.2]

 

7. 주작업 이미지 표시 (Main Operation Image Display)
이미지 회전 (M8167): 주작업 이미지를 회전하여 표시합니다.
MOV 명령어: 이미지 번호를 이동시킵니다.

이미지 회전 (M8167) ------------- [SM412] [D60 K3]
                                ------------------ [MOV K1 D60]

 


 

"PLC 기반 공정 제어 시스템의 HMI 설정 및 데이터 처리 분석"

 

단계별 분석 과정:
소개:

공정 제어 시스템에서 HMI (Human-Machine Interface)의 역할과 중요성에 대해 간단히 소개합니다.
이번 분석의 목표를 설명합니다. 예를 들어, HMI 화면 구성 및 설정, 데이터 표시기와 메시지 표시기의 설정과 기능 분석을 포함합니다.
HMI 데이터 표시기 구성:

기본 설정:
데이터 표시기의 파트 ID와 설명을 설정하는 방법을 설명합니다.
데이터 표시기의 기본 설정 메뉴에서 제공하는 옵션 (수치 표시, 문자열 표시, 날짜/시간 표시, 통계 데이터 표시, 제한값 표시, 입력 표시)을 설명합니다.
모니터링 워드 어드레스:
모니터링 워드 어드레스를 설정하는 방법과 의미를 설명합니다.
PLC와의 통신을 위한 주소 설정의 중요성을 설명합니다.
데이터 유형:
데이터 유형을 16비트, 32비트 등으로 설정하는 방법과 의미를 설명합니다.
비율 설정, 부호 설정, 반올림 설정 등의 추가 설정 옵션을 설명합니다.
HMI 메시지 표시기 설정:

기본 정보:
메시지 표시기의 파트 ID와 설명을 설정하는 방법을 설명합니다.
표시 문자열:
직접 입력, 문자열 표시, 회람 메시지의 기능과 설정 방법을 설명합니다.
문자열 번호 지정:
문자열 번호와 워드 어드레스 지정 방법을 설명합니다.
시작점 지정:
데이터 시작점 설정과 관련된 주소 지정 방법을 설명합니다.
스크롤 행수:
스크롤 행수를 설정하는 방법과 의미를 설명합니다.
HMI 데이터 및 메시지 표시기 분석:

데이터 표시기 예시:
금속 수량, 비금속 수량, 금속 목표 수량, 판별 물품과 같은 데이터 표시기의 예시를 분석합니다.
각각의 표시기가 어떤 데이터를 표시하는지 설명합니다.
메시지 표시기 예시:
예시로 제공된 메시지 표시기를 분석하고, 설정된 데이터와 표시 방법을 설명합니다.
결론:

분석의 주요 사항을 요약합니다.
HMI와 래더 다이어그램의 강점과 개선이 필요한 부분을 논의합니다.

 

HMI 카운터 설정과 래더 다이어그램 분석
서론
본 포스팅에서는 HMI 상의 카운터 설정과 이를 래더 다이어그램에서 어떻게 구현했는지를 분석합니다. 특히 터치바 버튼을 사용하여 제작 수량을 조작하는 부분과의 연관성을 중점으로 다룹니다.

 

1. HMI 카운터 설정

 

1.1 카운터 설정 개요
파트 ID: DD_0000
데이터 표시기 종류: 수치 표시, 문자열 표시, 날짜/시간 표시, 통계 데이터 표시, 제한값 표시, 입력 표시
모니터링 워드 어드레스: [PLC1]CN00000
데이터 종류: 16비트 Dec (십진수)
입력 허가: 체크 가능
비율 설정: 없음
1.2 그래픽 표시

금속 수량: 디지털 카운터로 표시
비금속 수량: 디지털 카운터로 표시
금속 목표: 디지털 카운터로 설정
판별 물품: 문자열로 표시
2. 래더 다이어그램에서의 카운터 구현
2.1 카운터 관련 래더 다이어그램 섹션
이미 제공된 이미지들 중 카운터를 사용하는 부분을 집중적으로 살펴보겠습니다.

2.2 래더 다이어그램 예시
래더 다이어그램에서 카운터를 사용하여 HMI의 수량을 조작하는 부분을 확인합니다.

2.3 구체적인 카운터 설정
래더 다이어그램에서 카운터를 설정하고 값을 모니터링 워드 어드레스에 연결하여 HMI에 표시합니다.

금속 수량 카운터:

|----[ 금속 수량 카운터 ]----|
| 금속 수량 레지스터: D100 |
| 금속 수량 카운터: C100 |
|----[ 금속수량 증가 ]----|

비금속 수량 카운터:

|----[ 비금속 수량 카운터 ]----|
| 비금속 수량 레지스터: D200 |
| 비금속 수량 카운터: C200 |
|----[ 비금속수량 증가 ]----|

 

2.4 버튼 입력에 따른 수량 조작
래더 다이어그램에서 터치바 버튼을 사용하여 수량을 조작하는 로직을 구현합니다.

터치바 버튼 입력:

|----[ 터치바 버튼 입력 ]----|
| 금속 수량 증가 버튼: X0 |
| 비금속 수량 증가 버튼: X1 |
|----[ 금속 수량 증가 ]----|
| 금속 수량 레지스터: D100 |
| 금속 수량 카운터: C100 |
|----[ 비금속 수량 증가 ]----|
| 비금속 수량 레지스터: D200 |
| 비금속 수량 카운터: C200 |

 

래더 다이어그램 구현:

|----[ 금속 수량 증가 ]----|
| X0 (금속 수량 증가 버튼) |---| C100 증가 | D100 |

|----[ 비금속 수량 증가 ]----|
| X1 (비금속 수량 증가 버튼) |---| C200 증가 | D200 |

 

3. HMI 및 래더 다이어그램 싱크 맞추기
3.1 HMI 설정과 래더 다이어그램 연계
래더 다이어그램에서 설정된 카운터 값이 HMI의 디스플레이에 정확하게 반영되도록 모니터링 워드 어드레스를 설정합니다.

|----[ 그래프 출력 설정 ]----|
| 모니터링 워드 어드레스: [PLC1]CN00000 |
|----[C100]----|

| 모니터링 워드 어드레스: [PLC1]CN00001 |
|----[C200]----|

 

결론
이 포스팅에서는 HMI에서의 카운터 설정과 래더 다이어그램에서의 구현을 통해 HMI 그래프와의 연동을 분석했습니다. 터치바 버튼을 통해 수량을 조작하는 기능이 래더 다이어그램에서 어떻게 구현되는지를 설명하였습니다.


로딩바 설정

1. 그래프 설정
파트 ID: GR_0000
그래프 종류: 메타 그래프 (Meter Graph), 통계 그래프 (Statistical Graph), 일반 그래프 (General Graph)
모니터링 워드 어드레스: [PLC1]TN00000
데이터 종류: 16비트 Bin (이진수)
비트 길이: 16비트
소스 범위: 상수
소스 범위 지정: 상수
최소값: 0
최대값: 160
그래프 모양: 막대 그래프 (Bar Graph)
표시 방향: 우 (Right)

파트 ID: GR_0000
설명: 없음
그래프 종류: 메타 그래프, 통계 그래프, 일반 그래프
모니터링 워드 어드레스: [PLC1]TN00000
데이터 종류: 16비트 Bin
비트 길이: 16비트
소스 범위: 상수
소스 범위 지정: 상수
부호: 없음
최소값: 0
최대값: 160
그래프 모양: 막대 그래프
표시 방향: 우

2. 그래프 구성 요소 및 설정
모니터링 워드 어드레스: PLC와의 통신을 위한 주소 설정으로, 데이터를 모니터링할 위치를 지정합니다.
데이터 종류: 데이터를 이진수 형태로 받아 처리합니다.
비트 길이: 데이터의 비트 길이를 설정합니다.
소스 범위: 데이터를 입력할 범위를 상수로 지정합니다.
최소값 및 최대값: 그래프의 표시 범위를 설정합니다.
그래프 모양: 막대 그래프로 설정하여 데이터의 변화를 시각적으로 쉽게 파악할 수 있습니다.
표시 방향: 그래프가 오른쪽으로 증가하는 방향으로 표시됩니다.
3. 메타 그래프 설정
메타 그래프: 아날로그 미터와 같은 형식으로 데이터를 시각화합니다.
표시 범위: 0에서 100까지 표시합니다.
부호: 부호는 표시되지 않습니다.
최소값: 0
최대값: 100
채우기 표시: 그래프가 채워질 때 채우기 표시 옵션을 사용할 수 있습니다.
시작점 표시: 그래프의 시작점을 표시할 수 있습니다.
4. 추가 설정 예시
통계 그래프: 데이터를 통계적으로 시각화하여 분석합니다.
일반 그래프: 일반적인 데이터를 시각화하여 표시합니다.
그래프 모양: 막대 그래프 외에도 다양한 그래프 모양을 선택할 수 있습니다.
표시 방향: 왼쪽, 오른쪽, 위, 아래 등 다양한 방향으로 표시할 수 있습니다.

 

타이머 구현 부분 분석
타이머 관련 래더 다이어그램 섹션
이미 제공된 이미지들 중 타이머를 사용하는 부분을 집중적으로 살펴보겠습니다.

1. 초기화 관련 타이머

|----[ 초기화 ]----|
| [T초기화리셋] T2041 |

2. 공정 시작 및 금속 수량 타이머

|----[ 공정시작 ]----|
| 공급출 X11, S1센서 X8 |
| [T물품없음] T2047 |

3. 가공 전진 및 종료 타이머

|----[ 가공전진 ]----|
| 가공전진 M8188 |
| [가공전진 Y26] |
| 가공전진이 완료된 후 |
| [종료 M8175] |

 

 

분석 및 그래프 설정 부분과의 싱크 확인
1. 초기화 타이머

|----[ 초기화 ]----|
| [T초기화리셋] T2041 |

이 부분은 초기화 상태를 위한 타이머 설정입니다. 초기화 완료 후 T2041 타이머가 리셋됩니다.

2. 공정 시작 타이머

|----[ 공정시작 ]----|
| 공급출 X11, S1센서 X8 |
| [T물품없음] T2047 |

 

이 부분은 공정이 시작될 때 사용되는 타이머입니다. 공정 시작 시 T2047 타이머가 설정됩니다.

3. 가공 전진 및 종료 타이머

|----[ 가공전진 ]----|
| 가공전진 M8188 |
| [가공전진 Y26] |
| 가공전진이 완료된 후 |
| [종료 M8175] |

이 부분은 가공 전진과 종료를 관리하는 타이머입니다. 가공이 완료되면 T2047 타이머가 리셋되고 종료 상태로 전환됩니다.

그래프 설정 부분과의 싱크
기존 래더 다이어그램에서 타이머로 구현된 부분은 HMI에서 그래프 설정을 통해 시각화할 수 있습니다. 예를 들어, T2047 타이머의 값을 HMI 그래프에서 모니터링하여 공정의 진행 상태를 시각화할 수 있습니다.

|----[ 그래프 출력 설정 ]----|
| 모니터링 워드 어드레스: [PLC1]TN00000 |
|----[T2047]----|

위의 설정을 통해 T2047 타이머의 값을 그래프로 표시할 수 있습니다. 이로써 공정 상태를 실시간으로 모니터링하고 시각적으로 확인할 수 있습니다.

결론
기존 래더 다이어그램에서 타이머로 구현된 부분을 분석하여 그래프 설정과의 싱크를 맞추었습니다. 이 분석을 통해 HMI에서의 그래프 설정이 래더 다이어그램의 타이머와 어떻게 연계되는지 이해할 수 있습니다.

 


배너 구현: HMI 설정과 래더 다이어그램 예시 분석
서론
PLC와 HMI 시스템에서 배너는 중요한 알림 및 상태 표시 역할을 합니다. 본 포스팅에서는 배너 설정과 래더 다이어그램에서의 구현을 분석합니다.

1. HMI 배너 설정
1.1 배너 설정 개요
문자열 색상: 회색 (#7)
배경 색상: 검정 (#0)
비트 어드레스: [PLC1]X0009 (S3 감지), [PLC1]X0008 (S1 감지)
메시지: S3 감지, S1 감지
표시 상태: OFF
1.2 배너 구성 요소 및 설정
문자열 색상: 배너에 표시될 텍스트의 색상 설정
배경 색상: 배너의 배경 색상 설정
비트 어드레스: PLC에서 배너를 활성화할 비트 주소
메시지: 배너에 표시될 메시지 내용
표시 상태: 배너가 표시되는 조건 (ON/OFF)
2. 래더 다이어그램에서의 배너 구현
2.1 배너 관련 래더 다이어그램 섹션
래더 다이어그램에서 배너를 구현하는 부분을 집중적으로 살펴보겠습니다.

2.2 래더 다이어그램 예시
배너를 활성화하기 위한 래더 다이어그램의 논리 흐름을 설명합니다.

2.3 구체적인 배너 설정
래더 다이어그램에서 특정 조건을 만족할 때 배너를 활성화하는 로직을 구현합니다.

배너 활성화:

|----[ 배너 활성화 ]----|
| 감지 센서: X0009 (S3 감지), X0008 (S1 감지) |
|----[S3 감지]----|
| X0009 (S3 감지) |---| 배너 활성화 | D100 |

|----[S1 감지]----|
| X0008 (S1 감지) |---| 배너 활성화 | D200 |

 

2.4 배너 메시지 출력
래더 다이어그램에서 설정된 비트 어드레스에 따라 HMI에서 배너 메시지를 출력하도록 설정합니다.

배너 메시지 출력 :

|----[ 배너 메시지 출력 ]----|
| 비트 어드레스: X0009 (S3 감지) |
| 메시지: S3 감지 |
|----[X0009]----|

| 비트 어드레스: X0008 (S1 감지) |
| 메시지: S1 감지 |
|----[X0008]----|

 

HMI와 래더 다이어그램의 연계
3.1 HMI 설정과 래더 다이어그램 연계
래더 다이어그램에서 설정된 비트 어드레스가 HMI의 배너 메시지와 정확하게 연동되도록 설정합니다.

비트 어드레스와 HMI 배너 연계:

|----[ HMI 배너 설정 ]----|
| 비트 어드레스: [PLC1]X0009 |
| 메시지: S3 감지 |
|----[X0009]----|

| 비트 어드레스: [PLC1]X0008 |
| 메시지: S1 감지 |
|----[X0008]----|

 

위의 설정을 통해 특정 조건에서 배너가 활성화되어 HMI 화면에 알림이 표시되도록 합니다.

결론
이 포스팅에서는 HMI에서의 배너 설정과 래더 다이어그램에서의 구현을 통해 HMI 배너와의 연동을 분석했습니다. 감지 센서와 연계된 배너 메시지가 HMI에 정확히 표시되도록 래더 다이어그램에서 설정하는 방법을 설명하였습니다.

 


HMI 버튼 설정 및 실제 래더 다이어그램 연동 분석
HMI 버튼 설정
HMI 화면에서 설정된 버튼의 기능은 다음과 같습니다:

시작 버튼 (SL_0014)

비트 주소: [PLC1]M000001
비트 동작: 비트 모멘터리
정지 버튼 (SL_0015)

비트 주소: [PLC1]M000001
비트 동작: 비트 모멘터리
일시 정지 버튼 (SL_0016)

비트 주소: [PLC1]M000002
비트 동작: 비트 모멘터리
초기화 버튼 (SL_0017)

비트 주소: [PLC1]M000000
비트 동작: 비트 셋
실제 래더 다이어그램과의 연동
이제 실제 래더 다이어그램과 HMI 버튼 설정을 대조하여 분석해보겠습니다. HMI 버튼에서 설정된 비트 주소가 래더 다이어그램에서 어떻게 사용되는지 확인합니다.

초기화 (Initialization)
초기화 버튼을 누르면 [PLC1]M000000 비트가 ON 됩니다.
초기화 래더 다이어그램 예시:

L0
--| M000000 |---------------( R )----| 초기화 래더 다이어그램 예시입니다.
|--[ M000000 ]------------( 초기화 동작 )--|

시작 (Start)
시작 버튼을 누르면 [PLC1]M000001 비트가 ON 됩니다.
시작 래더 다이어그램 예시:

L1
--| M000001 |---------------( S )----| 공정 시작
|--[ M000001 ]------------( 공정 시작 )--|

정지 (Stop)
정지 버튼을 누르면 [PLC1]M000001 비트가 OFF 됩니다.
정지 래더 다이어그램 예시:

L2
--| /M000001 |--------------( R )----| 공정 정지
|--[ M000001 ]------------( 공정 정지 )--|

일시 정지 (Pause)
일시 정지 버튼을 누르면 [PLC1]M000002 비트가 ON 됩니다.
일시 정지 래더 다이어그램 예시:

L3
--| M000002 |---------------( S )----| 공정 일시 정지
|--[ M000002 ]------------( 공정 일시 정지 )--|

 

X상세한 래더 다이어그램 분석
이제 실제 래더 다이어그램과 대조하여 HMI 버튼 설정이 어떻게 구현되었는지 확인합니다.

초기화 (Initialization)

초기화 버튼 [SL_0017]의 비트 주소는 [PLC1]M000000입니다.
실제 래더 다이어그램에서 초기화 동작을 확인합니다.

[Ladder Section for Initialization]
|--[ M000000 ]---------------[ BK_RST M0 K8192 ]
|                            |
|                            [ T 초기화 리셋 ]

시작 (Start)

시작 버튼 [SL_0014]의 비트 주소는 [PLC1]M000001입니다.
실제 래더 다이어그램에서 시작 동작을 확인합니다.

[Ladder Section for Start]
|--[ M000001 ]---------------[ CJ P0 ]
|                            |
|                            [ T 공정 시작 ]

정지 (Stop)

정지 버튼 [SL_0015]의 비트 주소는 [PLC1]M000001입니다.
실제 래더 다이어그램에서 정지 동작을 확인합니다.

[Ladder Section for Stop]
|--[ /M000001 ]--------------[ R M000001 ]
|                            |
|                            [ T 공정 정지 ]

일시 정지 (Pause)

일시 정지 버튼 [SL_0016]의 비트 주소는 [PLC1]M000002입니다.
실제 래더 다이어그램에서 일시 정지 동작을 확인합니다.

[Ladder Section for Pause]
|--[ M000002 ]---------------[ S M2 ]
|                            |
|                            [ T 일시 정지 ]

종합 분석
각 HMI 버튼은 지정된 비트 주소를 통해 래더 다이어그램의 특정 동작을 제어합니다.
HMI에서 설정된 비트 주소와 래더 다이어그램의 비트 주소가 일치해야 동작이 제대로 이루어집니다.
HMI 버튼을 통해 공정의 시작, 정지, 일시 정지, 초기화가 효과적으로 제어됩니다.


 

4거리 신호등 제어를 위한 래더 다이어그램을 작성하는 데 있어, 기본적인 요구사항과 단계는 다음과 같습니다. 신호등 제어 시스템은 각 방향에 대해 빨간색, 노란색, 초록색 신호를 순서대로 켜고, 모든 방향이 안전하게 동작하도록 해야 합니다.

기본 요구사항
4개의 방향 (북, 동, 남, 서)
각 방향별 3개의 신호 (빨간색, 노란색, 초록색)
각 신호의 점등 시간 (초록색 30초, 노란색 5초, 빨간색 35초)
모든 방향이 동시에 초록색이 켜지지 않도록
래더 다이어그램 논리
타이머를 사용하여 각 신호의 점등 시간을 제어
타이머의 완료 신호를 사용하여 다음 상태로 전환
각 방향의 신호를 순차적으로 점등
예시 래더 다이어그램
다음은 각 신호등 상태를 제어하기 위한 래더 논리입니다. 각 방향을 N(북), E(동), S(남), W(서)로 표현하고, 각각의 신호를 R(빨간), Y(노란), G(초록)으로 표시합니다.

 



초기화

|----[ 초기화 조건 ]----[ SET T0 ]----|  // 초기화 시퀀스, T0 타이머 시작

북 방향 신호 제어

|----[ T0 ]----[ 타이머 설정 K300 ]----[ T1 ]----|  // 30초 후 T1 타이머 시작
|                                                 |
|----[ T1 ]----[ 타이머 설정 K50  ]----[ T2 ]----|  // 5초 후 T2 타이머 시작
|                                                 |
|----[ T2 ]----[ 타이머 설정 K350 ]----[ T0 ]----|  // 35초 후 T0 타이머 재시작

|----[ T0 ]----[ SET G_N ]-----------------------|  // 북쪽 초록불 켬
|----[ T1 ]----[ SET Y_N ]-----------------------|  // 북쪽 노란불 켬
|----[ T2 ]----[ SET R_N ]-----------------------|  // 북쪽 빨간불 켬

동 방향 신호 제어

|----[ T2 ]----[ 타이머 설정 K300 ]----[ T3 ]----|  // 30초 후 T3 타이머 시작
|                                                 |
|----[ T3 ]----[ 타이머 설정 K50  ]----[ T4 ]----|  // 5초 후 T4 타이머 시작
|                                                 |
|----[ T4 ]----[ 타이머 설정 K350 ]----[ T2 ]----|  // 35초 후 T2 타이머 재시작

|----[ T2 ]----[ SET G_E ]-----------------------|  // 동쪽 초록불 켬
|----[ T3 ]----[ SET Y_E ]-----------------------|  // 동쪽 노란불 켬
|----[ T4 ]----[ SET R_E ]-----------------------|  // 동쪽 빨간불 켬

남 방향 신호 제어

|----[ T4 ]----[ 타이머 설정 K300 ]----[ T5 ]----|  // 30초 후 T5 타이머 시작
|                                                 |
|----[ T5 ]----[ 타이머 설정 K50  ]----[ T6 ]----|  // 5초 후 T6 타이머 시작
|                                                 |
|----[ T6 ]----[ 타이머 설정 K350 ]----[ T4 ]----|  // 35초 후 T4 타이머 재시작

|----[ T4 ]----[ SET G_S ]-----------------------|  // 남쪽 초록불 켬
|----[ T5 ]----[ SET Y_S ]-----------------------|  // 남쪽 노란불 켬
|----[ T6 ]----[ SET R_S ]-----------------------|  // 남쪽 빨간불 켬

서 방향 신호 제어

|----[ T6 ]----[ 타이머 설정 K300 ]----[ T7 ]----|  // 30초 후 T7 타이머 시작
|                                                 |
|----[ T7 ]----[ 타이머 설정 K50  ]----[ T8 ]----|  // 5초 후 T8 타이머 시작
|                                                 |
|----[ T8 ]----[ 타이머 설정 K350 ]----[ T6 ]----|  // 35초 후 T6 타이머 재시작

|----[ T6 ]----[ SET G_W ]-----------------------|  // 서쪽 초록불 켬
|----[ T7 ]----[ SET Y_W ]-----------------------|  // 서쪽 노란불 켬
|----[ T8 ]----[ SET R_W ]-----------------------|  // 서쪽 빨간불 켬

 

종합 래더 다이어그램 요약
위의 논리를 종합하면, 4개의 타이머를 순차적으로 설정하여 각 방향의 신호등을 제어합니다. 각 타이머가 종료되면 다음 타이머가 시작되고, 해당 타이머에 맞는 신호등이 켜지도록 합니다.

이를 통해 4거리 신호등이 안전하게 순차적으로 동작하게 됩니다.

 


GP-PRO EX의 타이머(TN), 카운터(CN) 등의 약어 및 기능에 대한 설명은 다음과 같습니다.

 


GP-PRO EX 주요 약어 및 기능
TN (Timer Number)

타이머를 지정하는 어드레스 넘버입니다. 타이머 기능을 사용하여 특정 시간 후에 신호를 발생시키거나 동작을 제어할 수 있습니다.
CN (Counter Number)

카운터를 지정하는 어드레스 넘버입니다. 카운터 기능을 사용하여 특정 이벤트의 발생 횟수를 세고, 일정 횟수에 도달했을 때 동작을 제어할 수 있습니다.
SN (Step Number)

스텝 시퀀스를 지정하는 어드레스 넘버입니다. 시퀀스 제어에서 특정 스텝을 제어하는데 사용됩니다.
MN (Monitor Number)

모니터링 데이터를 지정하는 어드레스 넘버입니다. HMI 화면에서 실시간 데이터를 표시하는 데 사용됩니다.
DM (Data Memory)

데이터 메모리 어드레스를 지정하는 약어입니다. PLC 내부의 데이터 메모리를 읽거나 쓰는 데 사용됩니다.
LM (Lamp)

램프를 제어하는 어드레스 넘버입니다. HMI 화면에서 램프의 상태를 제어할 수 있습니다.
RW (Register Word)

레지스터 워드 어드레스를 지정하는 약어입니다. PLC 내부의 레지스터 값을 읽거나 쓰는 데 사용됩니다.
예시 설명
TN0000: 타이머 번호 0에 대한 어드레스. 이 타이머는 특정 시간 간격 후에 동작을 트리거합니다.
CN0001: 카운터 번호 1에 대한 어드레스. 특정 이벤트가 1회 발생할 때마다 카운터를 증가시킵니다.
DM100: 데이터 메모리 주소 100번에 대한 어드레스. 이 주소에 저장된 데이터를 읽거나 쓸 수 있습니다.
참고 문서
GP-PRO EX의 기능과 어드레스 넘버에 대한 자세한 설명은 프로페이스 공식 매뉴얼이나 사용자 가이드에서 확인할 수 있습니다. 매뉴얼에는 각 기능의 사용법과 설정 방법에 대한 자세한 내용이 포함되어 있습니다.

공식 매뉴얼이나 가이드는 프로페이스의 공식 웹사이트에서 다운로드할 수 있습니다. 

아래는 프로페이스 공식 매뉴얼 다운로드 페이지 링크입니다.

https://www.pro-face.com/otasuke/files/manual/gpproex/new/refer/gpproex.htm#t=mergedProjects%2Fpreface%2Fpreface_ov_refertop.htm

 

GP-Pro EX V4.0 Reference Manual

 

www.pro-face.com

 

주요 약어 및 기능

 


타이머(TN)
TN: 타이머(Timer) 주소를 지정합니다.
기능: 타이머 설정 및 현재 타이머 값의 모니터링.
카운터(CN)
CN: 카운터(Counter) 주소를 지정합니다.
기능: 카운터 설정 및 현재 카운터 값의 모니터링.
비트(B)
B: 비트 메모리(Bit Memory) 주소를 지정합니다.
기능: 개별 비트의 제어 및 상태 모니터링.
워드(W)
W: 워드 메모리(Word Memory) 주소를 지정합니다.
기능: 16비트 워드 데이터의 읽기 및 쓰기.
내부 릴레이(M)
M: 내부 릴레이(Internal Relay) 주소를 지정합니다.
기능: 플래그로 사용되어 상태 제어 및 모니터링.
시스템 릴레이(SM)
SM: 시스템 릴레이(System Relay) 주소를 지정합니다.
기능: 시스템 상태 및 제어 플래그로 사용.
데이터 레지스터(D)
D: 데이터 레지스터(Data Register) 주소를 지정합니다.
기능: 일반적인 데이터 저장용 레지스터.
시스템 데이터 레지스터(SD)
SD: 시스템 데이터 레지스터(System Data Register) 주소를 지정합니다.
기능: 시스템 관련 데이터 저장용 레지스터.
파일 레지스터(R)
R: 파일 레지스터(File Register) 주소를 지정합니다.
기능: 데이터 저장을 위한 대용량 레지스터.
인덱스 레지스터(Z)
Z: 인덱스 레지스터(Index Register) 주소를 지정합니다.
기능: 인덱스 및 간접 주소 지정용.
타이머 현재 값(T)
T: 타이머 현재 값(Timer Current Value) 주소를 지정합니다.
기능: 타이머의 현재 값을 모니터링.
카운터 현재 값(C)
C: 카운터 현재 값(Counter Current Value) 주소를 지정합니다.
기능: 카운터의 현재 값을 모니터링.


현재값 주소 지정과 일반 주소 지정의 차이점

 


PLC 프로그래밍에서 "현재값 주소 지정"과 "일반 주소 지정"의 차이점은 주로 다음과 같은 요소에 따라 구분됩니다:

기능적인 차이점

일반 주소 지정: 주로 특정 변수나 데이터 저장소에 접근하는데 사용됩니다. 예를 들어, 비트 메모리, 워드 메모리, 데이터 레지스터 등 다양한 유형의 메모리 영역을 지정하여 읽기/쓰기를 수행합니다.
예: [PLC1]M0000 (내부 릴레이 주소)
현재값 주소 지정: 주로 타이머나 카운터와 같은 특수 기능 모듈의 현재 상태를 읽거나 모니터링할 때 사용됩니다. 이러한 주소는 타이머의 경과 시간이나 카운터의 현재 값을 실시간으로 읽기 위해 사용됩니다.
예: [PLC1]T0000 (타이머 현재 값), [PLC1]C0000 (카운터 현재 값)
용도 차이점

일반 주소 지정은 프로그램 내에서 특정 작업을 수행하기 위한 데이터의 설정 및 제어에 사용됩니다. 일반적으로 프로그램 논리의 흐름을 제어하고 상태를 저장하기 위해 사용됩니다.
현재값 주소 지정은 주로 모니터링 용도로 사용되며, 타이머나 카운터의 현재 값을 실시간으로 읽어와서 화면에 표시하거나 제어 로직 내에서 조건을 검사하는 데 사용됩니다.
사용 예시

일반 주소 지정:
[PLC1]M0000: 내부 릴레이로, 특정 조건이 참일 때 이 비트가 ON/OFF 됩니다.
[PLC1]D0000: 데이터 레지스터로, 계산 결과나 특정 데이터를 저장합니다.
현재값 주소 지정:
[PLC1]T0000: 특정 타이머의 현재 시간을 나타내며, 경과된 시간을 밀리초 단위로 표시합니다.
[PLC1]C0000: 특정 카운터의 현재 값을 나타내며, 카운터가 센 입력 펄스의 개수를 보여줍니다.
예시
타이머 설정 및 현재값 읽기

|------[ ]------[TMR T0000 K100]------|  // 타이머 설정, T0000이 K100 (100ms) 후에 동작

 

타이머가 설정되면 T0000 주소에 지정된 타이머가 동작하며, [PLC1]T0000 주소에서 현재 경과 시간을 읽을 수 있습니다.
카운터 설정 및 현재값 읽기

|------[ ]------[CNT C0000 K50]------|  // 카운터 설정, C0000이 50까지 카운팅

 

카운터가 설정되면 C0000 주소에 지정된 카운터가 동작하며, [PLC1]C0000 주소에서 현재 카운트 값을 읽을 수 있습니다.
이와 같은 차이점을 이해함으로써 PLC 프로그래밍에서 타이머와 카운터의 활용도를 높일 수 있습니다. 일반 주소와 현재값 주소를 올바르게 사용하면 제어 시스템의 정확성과 효율성을 향상시킬 수 있습니다.카운터가 설정되면 C0000 주소에 지정된 카운터가 동작하며, [PLC1]C0000 주소에서 현재 카운트 값을 읽을 수 있습니다.
이와 같은 차이점을 이해함으로써 PLC 프로그래밍에서 타이머와 카운터의 활용도를 높일 수 있습니다. 일반 주소와 현재값 주소를 올바르게 사용하면 제어 시스템의 정확성과 효율성을 향상시킬 수 있습니다.


4방향 신호등 제어를 위한 래더 다이어그램
목표:
PLC를 사용하여 4방향 신호등 시스템을 제어하는 래더 다이어그램을 설계합니다. 이 시스템은 각 방향(북, 남, 동, 서)의 녹색, 황색, 적색 신호를 순차적으로 제어해야 합니다.

개인구현

 


가정:
각 신호등은 세 가지 상태를 가집니다: 녹색, 황색, 적색.
사이클은 다음과 같이 진행됩니다: 녹색 -> 황색 -> 적색 -> 녹색.
각 상태의 지속 시간은 다음과 같습니다:
녹색: 30초
황색: 5초
적색: 30초
입력 및 출력:
입력(센서/버튼):

X0: 시작 버튼
X1: 정지 버튼
X2: 리셋 버튼
출력(신호등):

Y0: 북쪽 녹색
Y1: 북쪽 황색
Y2: 북쪽 적색
Y3: 남쪽 녹색
Y4: 남쪽 황색
Y5: 남쪽 적색
Y6: 동쪽 녹색
Y7: 동쪽 황색
Y8: 동쪽 적색
Y9: 서쪽 녹색
Y10: 서쪽 황색
Y11: 서쪽 적색
타이머:
T0: 북쪽 녹색 타이머
T1: 북쪽 황색 타이머
T2: 북쪽 적색 타이머
T3: 남쪽 녹색 타이머
T4: 남쪽 황색 타이머
T5: 남쪽 적색 타이머
T6: 동쪽 녹색 타이머
T7: 동쪽 황색 타이머
T8: 동쪽 적색 타이머
T9: 서쪽 녹색 타이머
T10: 서쪽 황색 타이머
T11: 서쪽 적색 타이머
헥사값 사용:
타이머 프리셋 및 주소 지정을 헥사값으로 사용하여 구현합니다.

래더 다이어그램 단계:
초기화:

시작 및 정지 버튼으로 시스템 제어.
리셋 버튼으로 시스템 초기화.
신호등 사이클:

각 방향의 신호등 순서 정의.
타이머를 사용하여 녹색, 황색, 적색 신호를 전환.

|--------[ 시작 버튼 (X0) ]--------( [M0 설정] )
|--------[ 정지 버튼 (X1) ]---------( [M0 리셋] )
|--------[ 리셋 버튼 (X2) ]--------( [M1 리셋] )
|--------[ M0 ]------------------------( [M1 설정] )

// 북쪽 신호등 제어
|--------[ M1 ]--------[ T0  ]---------( [Y0] )  // 북쪽 녹색
|                            |-( T0: 30초 )
|--------[ T0 완료 ]--------[ T1 ]--------( [Y1] )  // 북쪽 황색
|                            |-( T1: 5초 )
|--------[ T1 완료 ]--------[ T2 ]--------( [Y2] )  // 북쪽 적색
|                            |-( T2: 30초 )
|--------[ T2 완료 ]--------( [T0 리셋] )
|                            |-( [T1 리셋] )
|                            |-( [T2 리셋] )
|                            |-( [T3 설정] )

// 남쪽 신호등 제어
|--------[ T2 완료 ]--------[ T3  ]---------( [Y3] )  // 남쪽 녹색
|                            |-( T3: 30초 )
|--------[ T3 완료 ]--------[ T4 ]--------( [Y4] )  // 남쪽 황색
|                            |-( T4: 5초 )
|--------[ T4 완료 ]--------[ T5 ]--------( [Y5] )  // 남쪽 적색
|                            |-( T5: 30초 )
|--------[ T5 완료 ]--------( [T3 리셋] )
|                            |-( [T4 리셋] )
|                            |-( [T5 리셋] )
|                            |-( [T6 설정] )

// 동쪽 신호등 제어
|--------[ T5 완료 ]--------[ T6  ]---------( [Y6] )  // 동쪽 녹색
|                            |-( T6: 30초 )
|--------[ T6 완료 ]--------[ T7 ]--------( [Y7] )  // 동쪽 황색
|                            |-( T7: 5초 )
|--------[ T7 완료 ]--------[ T8 ]--------( [Y8] )  // 동쪽 적색
|                            |-( T8: 30초 )
|--------[ T8 완료 ]--------( [T6 리셋] )
|                            |-( [T7 리셋] )
|                            |-( [T8 리셋] )
|                            |-( [T9 설정] )

// 서쪽 신호등 제어
|--------[ T8 완료 ]--------[ T9  ]---------( [Y9] )  // 서쪽 녹색
|                            |-( T9: 30초 )
|--------[ T9 완료 ]--------[ T10 ]--------( [Y10] )  // 서쪽 황색
|                            |-( T10: 5초 )
|--------[ T10 완료 ]--------[ T11 ]--------( [Y11] )  // 서쪽 적색
|                            |-( T11: 30초 )
|--------[ T11 완료 ]--------( [T9 리셋] )
|                            |-( [T10 리셋] )
|                            |-( [T11 리셋] )
|                            |-( [T0 설정] )  // 북쪽 녹색으로 루프백

 

설명:
초기화:

X0 (시작 버튼)이 M0를 설정하여 신호등 사이클을 시작합니다.
X1 (정지 버튼)이 M0를 리셋하여 사이클을 중지합니다.
X2 (리셋 버튼)이 M1을 리셋하여 시스템을 초기화합니다.
신호등 사이클:

각 방향(북, 남, 동, 서)의 신호등은 녹색, 황색, 적색 상태를 타이머로 제어합니다.
타이머는 각각 30초(녹색), 5초(황색), 30초(적색)로 설정됩니다.
사이클은 북쪽 녹색에서 시작하여 북쪽 황색, 북쪽 적색으로 전환됩니다.
북쪽 적색이 끝난 후, 남쪽 녹색으로 이동하고 이 시퀀스는 모든 방향에 대해 반복됩니다.
헥사값 주소:
타이머 프리셋 및 제어를 헥사값으로 구현하여 메모리 사용을 효율적으로 하고 주소 지정을 용이하게 합니다.
결론:
이 래더 다이어그램은 타이머와 상태 전환을 사용하여 4방향 신호등 시스템을 제어하는 포괄적인 솔루션을 제공합니다. 헥사값을 사용한 타이머 주소 지정으로 효율적이고 조직적인 제어 논리를 보장합니다.

 

 

 

교수님 구현

DAY0521_신호등1차.gxw
0.89MB
DAY0521_신호등1차.prx
0.92MB

신호등 제어 래더 다이어그램: 헥사값을 사용한 분석
신호등 제어를 위한 래더 다이어그램을 헥사값을 사용하여 구현한 예제를 다양한 관점에서 분석해보겠습니다.

1. 타이머 설정 및 순차 동작
타이머 설정
각 타이머(T0 ~ T7)는 각각 다른 시간 값을 가지고 있으며, 이는 K값으로 지정됩니다.
예를 들어, T0 타이머는 K50 시간 동안 동작하고, 종료되면 T1 타이머가 시작됩니다.
순차 동작
각 타이머가 종료되면 다음 타이머를 활성화합니다.
이 과정은 T0에서 T7까지 반복됩니다.
2. 헥사값을 사용한 데이터 이동
데이터 이동 명령어 (DMOV)
타이머가 종료될 때마다 특정 헥사값이 지정된 주소로 이동됩니다.
예를 들어, T0 타이머가 종료되면 H451721 값이 K6Y20 주소로 이동됩니다.
3. 헥사값의 역할
헥사값의 의미
각 헥사값은 특정 신호등 상태를 나타냅니다.
예를 들어, H451721 값은 신호등의 빨간불, H451491 값은 노란불, H45C851 값은 녹색불을 의미할 수 있습니다.
헥사값의 사용 이유
헥사값은 이진 데이터의 간단한 표현으로, 래더 다이어그램에서 다양한 상태를 효율적으로 제어할 수 있게 합니다.
4. 타이머와 헥사값의 상호작용
타이머와 헥사값의 관계
각 타이머는 특정 시간이 경과하면 다음 타이머를 활성화하고, 특정 헥사값을 해당 주소로 이동시킵니다.
이를 통해 신호등의 상태를 주기적으로 변경할 수 있습니다.

[타이머 설정 및 순차 동작]
| T0 ---[ K50 ]--- (T1) 
| T1 ---[ K10 ]--- (T2) 
| T2 ---[ K50 ]--- (T3) 
| T3 ---[ K10 ]--- (T4) 
| T4 ---[ K50 ]--- (T5) 
| T5 ---[ K10 ]--- (T6) 
| T6 ---[ K50 ]--- (T7) 
| T7 ---[ K10 ]--- (T0) 

[데이터 이동]
| T0 ---[ DMOV H451721 K6Y20 ] 
| T1 ---[ DMOV H451491 K6Y20 ] 
| T2 ---[ DMOV H45C851 K6Y20 ] 
| T3 ---[ DMOV H452451 K6Y20 ] 
| T4 ---[ DMOV H721451 K6Y20 ] 
| T5 ---[ DMOV H491451 K6Y20 ] 
| T6 ---[ DMOV H85145C K6Y20 ] 
| T7 ---[ DMOV H451452 K6Y20 ]

5. 신호등 제어의 실제 구현
헥사값을 통한 신호등 상태 변경
각 헥사값은 신호등의 특정 상태를 제어합니다.
예를 들어, H451721 값이 이동되면 신호등이 빨간불로 변경됩니다.
타이머와 헥사값의 주기적 전환
타이머는 일정 시간 동안 동작하며, 종료 시 헥사값을 이동시켜 신호등의 상태를 주기적으로 변경합니다.
6. 장점과 고려사항
장점
헥사값을 사용하여 신호등의 다양한 상태를 간단하고 효율적으로 제어할 수 있습니다.
타이머를 사용하여 주기적인 상태 변화를 구현할 수 있습니다.
고려사항
각 헥사값이 의미하는 바를 명확하게 정의하고, 래더 다이어그램에 반영해야 합니다.
타이머의 시간 설정과 헥사값의 이동이 정확하게 이루어져야 신호등이 올바르게 작동합니다.
결론
헥사값을 사용하여 신호등 제어를 구현하면 다양한 상태를 효율적으로 제어할 수 있습니다. 타이머와 헥사값의 상호작용을 통해 신호등의 주기적인 상태 변화를 쉽게 구현할 수 있습니다. 이를 통해 교통 신호 제어와 같은 자동화 시스템에서 중요한 역할을 할 수 있습니다.

기존 구현 방식과 새로운 제시된 방식의 차이점 및 장단점
기존 구현 방식
기존의 신호등 제어 래더 다이어그램은 타이머와 기본 래더 논리 요소를 사용하여 신호등의 상태를 제어합니다. 이 방식은 주로 타이머를 사용하여 일정 시간 간격으로 신호등의 상태를 전환합니다.

주요 요소
타이머(T0 ~ T7): 각 타이머는 신호등 상태 전환을 제어하며, 일정 시간 후 다음 타이머를 활성화합니다.
일반적인 래더 논리: 일반적인 래더 논리를 사용하여 타이머와 다른 요소를 연결하여 제어합니다.
장점
단순성: 타이머와 기본 래더 논리를 사용하여 간단하게 구현할 수 있습니다.
직관성: 각 타이머가 순차적으로 동작하면서 상태를 전환하기 때문에 동작 과정이 직관적입니다.
단점
유연성 부족: 신호등 상태 전환이 고정된 시간 간격으로 이루어지기 때문에 유연한 제어가 어렵습니다.
확장성 한계: 더 복잡한 제어 로직을 추가하려면 래더 다이어그램이 복잡해질 수 있습니다.
새로운 제시된 방식
새로운 방식은 헥사값과 데이터 이동 명령어(DMOV)를 사용하여 신호등 상태를 제어합니다. 이는 특정 헥사값을 지정된 주소로 이동시켜 신호등의 상태를 변경하는 방식입니다.

주요 요소
헥사값(H451721 등): 각 헥사값은 신호등의 특정 상태를 나타냅니다.
DMOV 명령어: 데이터 이동 명령어를 사용하여 헥사값을 지정된 주소로 이동시켜 신호등 상태를 변경합니다.
장점
유연성: 헥사값을 사용하여 다양한 상태를 쉽게 정의하고 제어할 수 있습니다.
효율성: 데이터 이동 명령어를 사용하여 상태 전환이 빠르고 효율적입니다.
확장성: 복잡한 제어 로직을 쉽게 추가할 수 있습니다.
단점
복잡성: 헥사값과 데이터 이동 명령어를 이해하고 사용하는 데 추가적인 학습이 필요할 수 있습니다.
디버깅 어려움: 헥사값을 사용하여 상태를 제어하기 때문에 디버깅이 어려울 수 있습니다.
비교 분석

결론
기존 방식은 단순하고 직관적이지만 유연성과 확장성에서 한계가 있습니다. 새로운 방식은 헥사값과 DMOV 명령어를 사용하여 유연하고 효율적인 제어가 가능하지만, 복잡성 증가와 디버깅의 어려움이 있습니다. 상황에 따라 두 가지 방식 중 적절한 방식을 선택하여 구현하는 것이 중요합니다.

 


DAY0521_신호등1차_02수정.gxw
0.90MB

사용된 함수 설명 및 필요성
1. *D 함수
*D 함수는 곱셈(Multiplication) 연산을 수행하는 함수입니다. 여기서 D1, D2, D3 등은 데이터 레지스터를 의미하며, 곱셈 결과를 저장하는 데 사용됩니다.

2. WORD 함수
WORD 함수는 16비트 데이터를 32비트 데이터로 변환하는 역할을 합니다. 이 함수는 데이터 크기를 늘리거나 여러 데이터 포인트를 통합하여 처리할 때 유용합니다.

사용 이유
시간 연장 기능 구현

신호등의 초록불 시간을 10초 추가로 연장하기 위해서는 기본 설정된 시간에 추가 시간을 곱하여 더해야 합니다. 이를 위해 *D 함수를 사용하여 기본 시간에 추가 시간을 곱한 값을 계산합니다.
예를 들어, *D D1 K10 D12278 명령어는 D1 레지스터의 값에 10을 곱하여 결과를 D12278 레지스터에 저장합니다. 이는 교통 신호의 시간을 연장하는 데 사용됩니다.
데이터 변환 및 이동

WORD 함수는 16비트 데이터를 32비트로 변환하여 보다 정밀한 시간 제어를 가능하게 합니다. 신호등 제어 시스템에서 각 신호의 정확한 시간을 유지하려면 데이터 변환이 필수적입니다.
예를 들어, WORD D12278 D12287 명령어는 D12278 레지스터의 16비트 데이터를 D12287 레지스터의 32비트 데이터로 변환합니다. 이는 더 큰 범위의 시간 값을 처리하고 관리하는 데 필요합니다.
코드 예시와 설명
기본 타이머 설정 및 추가 조건 적용

|---------| SM402    |------| MOV K50 D12283 | (차로1시간)
|---------|          |------| MOV K50 D12287 | (차로2시간)
|---------|          |------| MOV K50 D12286 | (차로3시간)
|---------|          |------| MOV K50 D12284 | (차로4시간)

|---------| SM400    |------| * D1 K10 D12278 | (차로2시간 + 10초)
|---------|          |------| WORD D12278 D12287 | (차로2시간)
|---------|          |------| * D2 K10 D12276 | (차로3시간 + 10초)
|---------|          |------| WORD D12276 D12286 | (차로3시간)
|---------|          |------| * D3 K10 D12274 | (차로4시간 + 10초)
|---------|          |------| WORD D12274 D12284 | (차로4시간)
|---------|          |------| * D0 K10 D12272 | (차로1시간 + 10초)
|---------|          |------| WORD D12272 D12283 | (차로1시간)

 

장단점
장점
정밀한 시간 제어: WORD 함수를 사용하여 32비트 데이터로 변환함으로써 보다 정밀한 시간 제어가 가능합니다.
유연한 시간 연장: *D 함수를 사용하여 필요에 따라 시간을 쉽게 연장할 수 있습니다.
단점
복잡성: 함수 사용으로 인해 래더 다이어그램의 복잡도가 증가할 수 있습니다.
유지보수: 복잡한 함수 구조로 인해 유지보수가 어려울 수 있습니다.
이와 같은 방식을 사용하면 신호등 제어 시스템에서 특정 조건(예: 버튼 누름)에 따라 초록불의 시간을 유연하게 연장할 수 있으며, 이를 통해 교통 흐름을 효율적으로 관리할 수 있습니다.

 

메모리 구조에 대한 설명
PLC(Programmable Logic Controller)에서 메모리 구조는 중요한 개념으로, 각종 데이터를 저장하고 접근하는 방식에 대한 이해를 필요로 합니다. 아래는 메모리 구조와 관련된 주요 요소들에 대한 설명입니다.

1. 메모리 영역
PLC 메모리 구조는 여러 영역으로 나뉩니다. 각 영역은 특정한 데이터 유형과 용도를 가지고 있습니다. 예를 들어, 비트 메모리, 워드 메모리, 타이머/카운터 메모리 등이 있습니다.

2. 비트 메모리
비트 메모리는 1비트 크기의 데이터를 저장하는 메모리 영역입니다. 주로 입력/출력 신호, 상태 플래그 등을 저장하는 데 사용됩니다. 예를 들어, X0, Y0, M0 등이 비트 메모리 주소로 사용됩니다.

3. 워드 메모리
워드 메모리는 16비트 또는 32비트 크기의 데이터를 저장하는 메모리 영역입니다. 주로 아날로그 값, 카운터 값 등을 저장하는 데 사용됩니다. 예를 들어, D0, D1 등이 워드 메모리 주소로 사용됩니다.

4. 타이머/카운터 메모리
타이머와 카운터 메모리는 타이머와 카운터의 값을 저장하는 특별한 메모리 영역입니다. 예를 들어, T0, C0 등이 타이머/카운터 메모리 주소로 사용됩니다.

5. 데이터 형식
PLC에서는 다양한 데이터 형식을 지원합니다. 각 데이터 형식은 메모리의 특정 영역과 관련이 있으며, 그 크기와 구조가 다릅니다.

비트(Bit): 1비트 크기의 데이터로, ON/OFF 상태를 나타냅니다.
워드(Word): 16비트 크기의 데이터로, 숫자 값 등을 저장합니다.
더블 워드(Double Word): 32비트 크기의 데이터로, 큰 숫자 값 등을 저장합니다.
6. 메모리 주소 지정
PLC에서 메모리 주소를 지정할 때는 각 영역별로 고유한 형식을 사용합니다. 예를 들어, 비트 메모리 주소는 X0, Y0, M0 등으로, 워드 메모리 주소는 D0, D1 등으로 지정됩니다.

7. *D 및 WORD 함수의 사용 이유
*D 및 WORD 함수는 메모리 영역 간 데이터 전송 및 처리에 사용됩니다. *D 함수는 더블 워드(32비트) 데이터를 처리하는 데 사용되며, WORD 함수는 워드(16비트) 데이터를 처리하는 데 사용됩니다. 이 함수들은 특정 데이터 형식을 다른 메모리 영역으로 이동하거나 변환할 때 필요합니다.

예를 들어:

*D 함수: 더블 워드 데이터를 처리해야 할 때 사용합니다. 이는 대용량 데이터를 다루는 경우 유용합니다.
WORD 함수: 워드 데이터를 처리할 때 사용합니다. 이는 일반적인 16비트 데이터를 다루는 데 적합합니다.
이러한 메모리 구조와 함수들은 PLC 프로그래밍에서 효율적인 데이터 관리와 제어를 가능하게 합니다.

참고 이미지
타이머 메모리 설정 화면
이 이미지는 PLC에서 타이머 메모리를 설정하는 화면을 보여줍니다. 여기서 T100 타이머의 설정 값과 현재 값을 확인할 수 있습니다.

위 내용을 바탕으로, 특정 요구사항에 맞게 PLC 메모리를 구성하고, 효율적으로 데이터를 관리할 수 있습니다. PLC 메모리 구조에 대한 이해는 시스템의 안정성과 효율성을 높이는 데 중요한 역할을 합니다.


디바이스 메모리 표기: TN, CN, T, C 구분의 이유
PLC(Programmable Logic Controller) 프로그래밍에서 디바이스 메모리를 표기할 때, TN (Timer Number), CN (Counter Number), T (Timer), C (Counter)와 같은 표기를 사용해야 하는 이유는 다음과 같은 메모리 관점에서의 필요성 때문입니다.

1. 메모리 구분과 관리
각각의 디바이스(Timer, Counter 등)는 특정 메모리 영역을 차지합니다. 이러한 메모리 영역을 명확히 구분하지 않으면 데이터의 혼동이나 메모리 충돌이 발생할 수 있습니다. 따라서, 각 디바이스를 고유하게 식별할 수 있는 표기법을 사용하는 것이 중요합니다.

T (Timer): 타이머는 시간 기반의 작업을 처리하기 위해 사용됩니다. 각 타이머는 특정 메모리 공간에 자신의 값을 저장하며, 이 값은 타이머의 설정값과 현재 시간을 나타냅니다.
C (Counter): 카운터는 이벤트의 횟수를 세는 데 사용됩니다. 각 카운터는 특정 메모리 공간에 자신의 값을 저장하며, 이 값은 카운터의 현재 값을 나타냅니다.
2. 프로그램의 가독성과 유지보수성 향상
디바이스 메모리를 명확히 표기함으로써 프로그램의 가독성이 향상됩니다. 각 디바이스가 어떤 역할을 하는지 쉽게 알 수 있기 때문에, 프로그램을 이해하고 유지보수하는 데 큰 도움이 됩니다.

TN (Timer Number): 타이머의 고유 번호를 나타내어, 어떤 타이머가 사용되고 있는지를 명확히 구분합니다.
CN (Counter Number): 카운터의 고유 번호를 나타내어, 어떤 카운터가 사용되고 있는지를 명확히 구분합니다.
3. 시스템 안정성과 신뢰성 확보
PLC 시스템에서 디바이스 메모리를 명확히 구분하지 않으면 메모리 충돌이나 데이터 오염이 발생할 수 있습니다. 이는 시스템의 오작동을 초래할 수 있으며, 결과적으로 시스템의 안정성과 신뢰성을 떨어뜨립니다. 따라서, 디바이스 메모리를 구분하여 표기하는 것은 안정적인 시스템 운영을 위해 필수적입니다.

4. 메모리 주소와 데이터 형식의 차이
각 디바이스는 서로 다른 데이터 형식을 사용합니다. 예를 들어, 타이머는 보통 16비트 또는 32비트 데이터를 사용하며, 카운터도 마찬가지로 특정 비트 크기의 데이터를 사용합니다. 이러한 데이터 형식을 명확히 구분하여 처리해야만 정확한 데이터 관리를 할 수 있습니다.

T (타이머): 일반적으로 16비트 또는 32비트 데이터를 사용합니다.
C (카운터): 일반적으로 16비트 또는 32비트 데이터를 사용합니다.
예시
PLC 프로그램에서 타이머와 카운터를 설정하고 사용하는 예시는 다음과 같습니다.

|-----------|------------|-----------|
| 디바이스  | 주소      | 설명      |
|-----------|------------|-----------|
| 타이머    | T0        | 첫 번째 타이머 |
| 카운터    | C0        | 첫 번째 카운터 |
| 타이머 번호 | TN100   | 타이머 번호 100 |
| 카운터 번호 | CN50    | 카운터 번호 50  |
|-----------|------------|-----------|

이와 같이, 타이머(T)와 카운터(C)를 명확히 구분하여 사용하면, 프로그램의 가독성과 유지보수성이 향상되고 시스템의 안정성이 확보됩니다.

16비트 워드 디바이스 사용 시 비트의 지정 및 활용 방법에 대해 설명드리겠습니다.

워드 디바이스의 비트 지정
워드 디바이스는 비트를 지정할 수 있으며, 이를 통해 비트 단위로 데이터를 처리할 수 있습니다. 워드 디바이스는 16비트로 구성되며, 각 비트는 개별적으로 설정하거나 사용할 수 있습니다.

예시 설명
(a) 워드 디바이스의 비트 No.를 지정하여 사용하는 예:

워드 디바이스 내의 각 비트는 0에서 15까지 번호가 매겨집니다.
예를 들어 D0 워드의 5번째 비트를 지정하고 싶다면, D0.5로 표기합니다.
이는 D0 워드의 5번째 비트가 ON/OFF 되는 것을 의미합니다.
(b) 워드 디바이스의 비트 지정 예제:

예를 들어, D0 워드의 5번째 비트(D0.5)가 ON일 때 Y10 출력을 설정합니다.
해당 비트가 ON일 때와 OFF일 때 각각 동작을 다르게 지정할 수 있습니다.
메모리 관점에서의 구분
워드 디바이스와 비트 디바이스를 구분하여 사용하는 이유는 다음과 같습니다:

메모리 효율성: 비트 단위로 데이터를 처리하면 메모리를 효율적으로 사용할 수 있습니다. 워드 디바이스는 한 번에 16비트를 처리할 수 있어 데이터 전송 및 처리가 더 빠르고 효율적입니다.
구조적 명확성: PLC 프로그램에서 워드와 비트를 명확히 구분하여 사용하면 프로그램의 가독성이 높아지고, 디버깅 및 유지보수가 용이해집니다.
다양한 기능 지원: 워드 디바이스는 타이머(T), 카운터(C) 등의 다양한 기능을 지원하여 복잡한 로직을 구현할 수 있습니다.
구현 예시
아래 예제는 D0 워드의 5번째 비트(D0.5)를 사용하여 Y10을 설정하는 래더 다이어그램입니다:

| X0       |--------------------(SET)-----------------| Y10
|          |                                              |
| D0.5     |--------------------(SET)-----------------| Y10

이 예제에서는 X0 신호가 입력되면 D0 워드의 5번째 비트(D0.5)가 ON되고, 이 비트가 ON되면 Y10이 설정됩니다.

이와 같은 방식으로 16비트 워드 디바이스를 활용하여 효율적인 제어 로직을 구현할 수 있습니다.

 

 

실제 예제를 통한 설명

16비트의 워드 디바이스를 사용하여 타이머와 카운터를 설정하는 방법과 해당 설정을 통해 신호등 제어를 구현하는 방법에 대해 설명드리겠습니다.

16비트 워드 디바이스 설명
워드 디바이스의 구성:

워드 디바이스는 16비트 길이의 데이터를 저장할 수 있는 메모리 공간입니다.
각각의 비트는 ON(1) 또는 OFF(0) 상태를 가질 수 있으며, 이를 통해 다양한 디지털 신호를 표현할 수 있습니다.
워드 디바이스의 비트 지정:

예를 들어, 워드 디바이스 D0의 5번째 비트는 D0.5로 표기됩니다.
각 비트는 독립적으로 제어할 수 있으며, 필요한 비트만을 ON/OFF 상태로 설정할 수 있습니다.
타이머 및 카운터 설정:

타이머(T)와 카운터(C)는 주로 워드 디바이스를 사용하여 설정됩니다.
타이머는 지정된 시간이 경과하면 신호를 생성하는 역할을 합니다.
카운터는 특정 이벤트가 발생한 횟수를 세어 일정 횟수에 도달하면 신호를 생성합니다.
신호등 제어 예제
신호등 제어를 위해 타이머와 카운터를 사용하여 각 방향의 신호를 제어하는 예제입니다. 이 예제에서는 교차로에서 4방향 신호등을 제어합니다.

래더 다이어그램 설명
타이머 설정:

타이머 T0는 10초 동안 신호를 유지합니다.
타이머 T1, T2, T3는 각각 다음 신호로 넘어가기 위한 10초의 대기 시간을 설정합니다.
각 타이머는 10초 동안 동작하며, 완료 시 다음 타이머를 시작합니다.
카운터 설정:

카운터 C0는 버튼을 눌러 추가 시간을 설정하는 데 사용됩니다.
예를 들어, 버튼을 눌러 10초를 더 추가할 수 있습니다.
워드 디바이스 사용:

워드 디바이스 D0는 각 신호등의 상태를 저장합니다.
특정 비트를 ON 상태로 설정하여 신호등을 제어합니다.
예제 코드

[Timer]
| SM400  |-----| T0 (K100)  |---------| Output (Red Light) | Y0 |
| T0     |-----| T1 (K100)  |---------| Output (Green Light) | Y1 |
| T1     |-----| T2 (K100)  |---------| Output (Yellow Light) | Y2 |
| T2     |-----| T3 (K100)  |---------| Output (Red Light) | Y3 |

[Counter for additional time]
| Button |-----| C0 (K1)  |
| C0     |-----| ADD Time (10s)  | 

[Word Device Configuration]
| D0.0 (Green Light) |-----| T0 Active |
| D0.1 (Yellow Light)|-----| T1 Active |
| D0.2 (Red Light)   |-----| T2 Active |
| D0.3 (Red Light)   |-----| T3 Active |

 

장단점 비교
기존 구현 방식의 장점
간결성: 간단한 래더 로직으로 구성되어 이해하기 쉽습니다.
신뢰성: 잘 정의된 타이머와 카운터를 사용하여 예측 가능한 동작을 보장합니다.
기존 구현 방식의 단점
유연성 부족: 추가 시간 설정과 같은 동적 변경에 대한 대응이 어려울 수 있습니다.
확장성 부족: 복잡한 로직을 추가할 경우 래더 다이어그램이 복잡해질 수 있습니다.

 

새로운 구현 방식의 장점
유연성: 워드 디바이스와 더블 함수 사용으로 동적 시간 설정이 가능합니다.
확장성: 다양한 조건에 따른 로직 추가가 용이합니다.
새로운 구현 방식의 단점
복잡성 증가: 워드 디바이스와 더블 함수 사용으로 인해 래더 다이어그램이 복잡해질 수 있습니다.
메모리 사용 증가: 추가적인 메모리 공간을 필요로 할 수 있습니다.
이와 같은 구현 방법을 통해 신호등 제어 시스템을 보다 유연하고 확장 가능하게 구성할 수 있습니다. 필요에 따라 타이머와 카운터, 워드 디바이스의 조합을 통해 다양한 제어 로직을 구현할 수 있습니다

 

수 체계와 헥사값을 이해

PLC(Programmable Logic Controller)의 수 체계와 헥사값을 이해하면 래더 다이어그램을 보다 효율적으로 작성하고, 메모리 관리를 최적화하며, 제어 로직을 간결하게 구성할 수 있습니다. 여기에는 몇 가지 중요한 개념과 팁이 있습니다.

1. 수 체계 이해
이진법(Binary): PLC 내부적으로 모든 데이터는 이진수로 처리됩니다. 기본적인 ON/OFF 상태를 0과 1로 표현하며, 메모리 비트, 플래그, 접점 상태 등을 이진수로 관리합니다.
십진법(Decimal): 사람이 읽기 쉽게 하기 위해 주로 사용됩니다. 타이머나 카운터의 설정 값, 시간 지연 등은 십진수로 입력됩니다.
십육진법(Hexadecimal): 메모리 주소 지정, 데이터 레지스터 값 등을 효율적으로 표현하기 위해 사용됩니다. 한 자리의 헥사값은 4비트의 이진수를 나타냅니다.
2. 주요 PLC 명령어 및 약어
LD, AND, OR: 접점의 ON/OFF 상태를 논리적으로 연결합니다.
OUT: 특정 출력 코일을 설정합니다.
TIM (Timer), CNT (Counter): 타이머 및 카운터를 설정합니다.
MOV: 데이터를 특정 레지스터로 이동합니다.
DMOV: 더블 워드 데이터를 이동합니다.
ADD, SUB: 산술 연산을 수행합니다.
CMP: 비교 연산을 수행합니다.
3. 메모리 유형 및 주소 지정
X (입력), Y (출력): 물리적인 입력/출력 포트입니다. 예를 들어, X0, Y1과 같이 사용됩니다.
M (내부 메모리 비트): 내부 플래그 또는 비트 메모리입니다. 예: M0, M1.
D (데이터 레지스터): 데이터 저장용 워드 메모리입니다. 예: D0, D1.
T (타이머), C (카운터): 타이머 및 카운터 메모리입니다. 예: T0, C0.
4. 헥사값과 메모리 효율화
헥사값을 사용한 주소 지정: 헥사값을 사용하면 주소 지정이 간결해지고, 메모리 맵핑이 보다 효율적입니다. 예를 들어, D10 대신 H0A로 표현할 수 있습니다.
메모리 블록 관리: 데이터를 연속된 메모리 블록에 저장하여 효율적으로 관리할 수 있습니다. 예: D0부터 D10까지의 블록을 연속적으로 사용.
5. 최적화 팁
명령어 최소화: 가능한 한 적은 명령어를 사용하여 동일한 로직을 구현하면 프로그램이 간결해지고, 실행 속도가 빨라집니다.
조건문 통합: 여러 조건을 통합하여 하나의 조건문으로 처리하면 래더가 단순해집니다.
데이터 타입 통일: 데이터 타입을 통일하여 사용하는 것이 메모리 관리와 디버깅에 유리합니다.
주석 및 설명 추가: 복잡한 래더 로직에는 주석을 추가하여 가독성을 높입니다.
예제: 헥사값을 사용한 타이머 설정

| SM400 |-----| T0 K100  |---------| H451721 | K6Y20 |
| T0    |-----| T1 K100  |---------| H451491 | K6Y20 |
| T1    |-----| T2 K100  |---------| H45C851 | K6Y20 |
| T2    |-----| T3 K100  |---------| H452451 | K6Y20 |
| T3    |-----| T4 K100  |---------| H721451 | K6Y20 |
| T4    |-----| T5 K100  |---------| H491451 | K6Y20 |
| T5    |-----| T6 K100  |---------| H85145C | K6Y20 |
| T6    |-----| T7 K100  |---------| H451452 | K6Y20 |

이 예제에서는 타이머 설정 값을 헥사값으로 지정하여 래더 다이어그램을 간결하게 만들고, 메모리 주소를 효율적으로 관리하고 있습니다.

이러한 수 체계와 메모리 관리 방법을 이해하고 활용하면, PLC 프로그래밍의 효율성과 성능을 크게 향상시킬 수 있습니다.


 

1. PLC의 데이터 타입과 주소 체계 이해
이진수, 16진수, 10진수: PLC에서는 주로 이진수와 16진수를 사용하여 데이터를 처리합니다. 10진수는 사용자와의 인터페이스에서 주로 사용됩니다.
디바이스 주소: PLC 메모리에서 각 디바이스는 특정 주소를 가지며, 이 주소를 통해 데이터를 읽고 쓸 수 있습니다. 디바이스 타입에는 입력(X), 출력(Y), 내부 릴레이(M), 타이머(T), 카운터(C) 등이 있습니다.
2. 16진수 사용의 장점
축약 표현: 16진수는 이진수보다 더 많은 정보를 간결하게 표현할 수 있어 코드가 더 깔끔해집니다.
편리한 디버깅: 디버깅 과정에서 이진수를 해석하는 것보다 16진수를 해석하는 것이 더 쉽습니다.
3. 워드와 더블 워드 사용
워드(Word): 16비트 데이터를 나타내며, PLC 메모리에서 한 워드는 두 개의 연속된 바이트로 구성됩니다. 주로 데이터 레지스터(D)에서 사용됩니다.
더블 워드(Double Word): 32비트 데이터를 나타내며, 두 개의 연속된 워드로 구성됩니다. 더 많은 데이터를 처리할 때 사용됩니다.
4. 비트 지정
워드 디바이스의 비트 지정: 워드 디바이스의 특정 비트를 지정하여 제어할 수 있습니다. 예를 들어, D0 워드의 5번째 비트를 ON/OFF 시킬 수 있습니다.
타이머와 카운터: PLC 프로그램에서 타이머와 카운터의 설정 값을 효율적으로 관리하기 위해 워드와 더블 워드를 사용합니다.


타이머의 시한 (타이머 설정 범위와 단위)
QCPU 타이머 설정

저속 타이머 (Slow Timer):

설정 범위: 1ms ~ 1000ms
설정 단위: 1ms
기본값: 100ms
저속 접점 타이머 (Slow Contact Timer):

설정 범위: 1ms ~ 1000ms
설정 단위: 1ms
기본값: 100ms
고속 타이머 (High-Speed Timer):

설정 범위: 0.1ms ~ 100ms
설정 단위: 0.1ms
기본값: 10ms
고속 접점 타이머 (High-Speed Contact Timer):

설정 범위: 0.1ms ~ 100ms
설정 단위: 0.1ms
기본값: 10ms
QnACPU 타이머 설정

저속 타이머 (Slow Timer):

설정 범위: 10ms ~ 10000ms
설정 단위: 10ms
기본값: 100ms
저속 접점 타이머 (Slow Contact Timer):

설정 범위: 10ms ~ 10000ms
설정 단위: 10ms
기본값: 100ms
고속 타이머 (High-Speed Timer):

설정 범위: 1ms ~ 1000ms
설정 단위: 1ms
기본값: 10ms
고속 접점 타이머 (High-Speed Contact Timer):

설정 범위: 1ms ~ 1000ms
설정 단위: 1ms
기본값: 10ms
추가 설명
타이머의 시한 설정:

타이머의 설정 범위와 단위는 PLC의 파라미터 설정에서 결정됩니다. 이는 프로그램 작성 시 정확한 타이머 값을 설정하는 데 중요합니다.
저속 타이머는 넓은 범위의 시간을 설정할 수 있어 상대적으로 긴 시간의 지연을 필요로 하는 작업에 유용합니다.
고속 타이머는 짧은 시간의 지연을 필요로 하는 작업에 사용됩니다. 예를 들어, 빠른 반응이 필요한 제어 시스템에 적합합니다.
타이머의 설정 값 변경:

기본 설정 값은 타이머의 초기값으로, 필요에 따라 변경할 수 있습니다.
프로그램의 요구사항에 따라 타이머의 설정 값을 조정하여 다양한 시간 제어를 구현할 수 있습니다.
OUT T: 명령어의 기본 스탭 수:

PLC 프로그램에서 OUT T: 명령어는 기본적으로 4 스탭을 차지합니다. 이는 프로그램 작성 시 메모리와 스탭 수를 관리하는 데 중요합니다.
요약
타이머 설정의 유연성:

QCPU와 QnACPU 모두 다양한 범위와 단위를 제공하여 다양한 요구사항을 충족할 수 있습니다.
적절한 타이머 설정은 시스템의 효율성과 정확성을 높일 수 있습니다.
타이머 설정의 중요성:

정확한 타이머 설정은 PLC 시스템의 성능에 직접적인 영향을 미칩니다.
타이머 설정은 각 작업의 특성에 맞게 조정되어야 하며, 이를 통해 최적의 성능을 유지할 수 있습니다.

 

타이머 메모리 효율적 사용 방법

 


1. 저속 타이머 (Slow Timer)와 고속 타이머 (High-Speed Timer)의 적절한 선택:

저속 타이머는 넓은 시간 범위를 설정할 수 있으므로, 긴 시간 동안의 지연을 필요로 하는 작업에 사용합니다. 예를 들어, 공정에서의 특정 단계가 일정 시간 이상 지속되어야 하는 경우 사용합니다. 저속 타이머의 범위는 보통 1ms에서 1000ms 또는 그 이상으로 설정할 수 있습니다.
고속 타이머는 매우 짧은 시간 동안의 지연을 필요로 하는 작업에 적합합니다. 고속 응답이 필요한 제어 시스템에서 주로 사용됩니다. 고속 타이머의 범위는 0.1ms에서 100ms 또는 그 이하로 설정할 수 있습니다.

 

2. 타이머 설정 값의 최적화:

각 타이머의 기본 설정 값을 필요에 맞게 조정함으로써 메모리 사용을 최적화할 수 있습니다. 예를 들어, 필요 이상의 긴 시간으로 타이머를 설정할 경우 메모리를 낭비하게 됩니다.
타이머의 설정 값을 프로그램의 요구 사항에 맞게 최적화함으로써 메모리 사용 효율성을 높일 수 있습니다.

 

3. 타이머 공유와 재사용:

공정의 여러 단계에서 동일한 시간 지연을 필요로 하는 경우, 동일한 타이머를 공유하거나 재사용할 수 있습니다. 이를 통해 타이머 메모리의 사용을 최소화할 수 있습니다.
타이머 재사용 시에는 타이머가 사용되지 않는 구간을 확인하고, 해당 타이머를 다른 단계에서 재활용하는 방법을 고려할 수 있습니다.

 

4. 타이머의 간접 지정 사용:

타이머의 간접 지정을 통해 메모리 공간을 절약할 수 있습니다. 간접 지정은 특정 메모리 주소를 통해 타이머를 설정하거나 제어하는 방법으로, 타이머를 동적으로 변경할 수 있습니다.


타이머별 사용 상황
1. 저속 타이머 (Slow Timer):

사용 상황: 주로 긴 시간 지연이 필요한 작업에 사용됩니다. 예를 들어, 특정 공정 단계의 지속 시간이나 기계의 가동 시간 설정에 적합합니다.
설정 범위: 1ms ~ 1000ms (또는 그 이상)
예시: 제조 공정에서 각 공정 단계가 일정 시간 동안 지속되어야 할 때 사용됩니다.

 

2. 고속 타이머 (High-Speed Timer):

사용 상황: 짧은 시간 지연이 필요한 작업에 사용됩니다. 예를 들어, 고속 반응이 필요한 제어 시스템이나 센서 데이터의 실시간 처리에 적합합니다.
설정 범위: 0.1ms ~ 100ms (또는 그 이하)
예시: 포장 기계의 빠른 작업 사이클, 고속 생산 라인의 데이터 처리


요약
또한, PLC 메모리의 효율적 사용을 위해 타이머 설정의 최적화와 재사용, 간접 지정을 활용하는 것이 중요합니다. 저속 타이머와 고속 타이머를 각각의 상황에 맞게 사용함으로써 메모리 사용을 최소화하고, 시스템의 효율성을 극대화할 수 있습니다. 이러한 방법을 통해 PLC 프로그램의 성능을 향상시킬 수 있습니다.

 


해석 및 분석
1. 타이머 코일 및 현재값 유지
저속 타이머와 고속 타이머: 타이머 코일이 OFF일 때 현재값을 유지합니다.
저속 접점 타이머와 고속 접점 타이머: 타이머 코일이 OFF일 때 현재값을 변경합니다.
이 의미는 저속 타이머와 고속 타이머의 경우 타이머가 동작하지 않더라도 현재값을 유지하므로 다시 시작할 때 같은 상태로 시작됩니다. 반면, 저속 접점 타이머와 고속 접점 타이머는 타이머가 OFF일 때 값이 변경되므로 초기화된 상태로 다시 시작하게 됩니다.

2. 타임업 전후의 상태 변화
타이머의 ON -> OFF 상태 변화는 다음과 같습니다:

타임업 전: a 점접이 OFF
타임업 후: a 점접이 ON
이 표는 타이머가 동작하는 동안 접점의 상태가 어떻게 변화하는지 보여줍니다. 타이머가 완료되기 전에는 접점이 OFF 상태를 유지하고, 타이머가 완료되면 접점이 ON 상태로 변환됩니다.

3. 설정값 및 인덱스 수식
설정값: 설정값은 32768부터 -1까지 설정할 수 있습니다.
인덱스 수식: Z0, Z1로 가능하며, 제한이 없습니다.
설정값을 통해 타이머가 동작하는 시간을 정의할 수 있으며, 인덱스 수식을 통해 다양한 타이머 값을 쉽게 변경할 수 있습니다.

메모리적 관점에서의 효율적인 사용법
1. 저속 타이머 및 고속 타이머
저속 타이머는 긴 시간 동안 동작하는 타이머로, 예를 들어 1ms에서 1000ms까지 설정이 가능합니다. 이는 주로 긴 시간 간격을 필요로 하는 공정에 사용됩니다. 고속 타이머는 짧은 시간 동안 동작하는 타이머로, 0.1ms에서 100ms까지 설정이 가능하여 빠른 응답이 필요한 공정에 적합합니다.

2. 타이머 메모리 사용 최적화
타이머 메모리를 효율적으로 사용하기 위해서는 타이머가 필요하지 않을 때 타이머 코일을 OFF로 유지하여 메모리 소비를 줄일 수 있습니다. 또한, 동일한 타이머를 반복적으로 사용하는 대신 다양한 타이머를 활용하여 메모리 충돌을 방지할 수 있습니다.

3. 타이머 종류에 따른 사용 상황
저속 타이머: 긴 시간 간격을 필요로 하는 공정(예: 대기 시간, 냉각 시간 등)
고속 타이머: 빠른 응답이 필요한 공정(예: 신속한 제어, 펄스 제어 등)
저속 접점 타이머: 일정 시간 후에 동작해야 하는 공정(예: 지연 스타트, 타임업 후 공정 시작 등)
고속 접점 타이머: 빠르게 반복되어야 하는 동작(예: 주기적 제어, 펄스 발생 등)
위와 같은 타이머 설정 및 사용 방법을 통해 PLC 시스템의 메모리를 효율적으로 사용할 수 있습니다. 타이머를 효율적으로 관리하면 PLC의 전체 성능을 향상시킬 수 있으며, 메모리 자원을 최적화하여 더 많은 작업을 동시에 처리할 수 있습니다.

 


DAY0521_신호등1차_03점멸.gxw
0.90MB
DAY0521_신호등1차_03점멸.prx
0.95MB

 

교차로 신호등 제어 래더 다이어그램
아래는 헥사값과 WORD 함수를 사용하여 교차로 신호등을 제어하는 래더 다이어그램을 구현한 예시입니다. 이 다이어그램은 각 신호등에 대해 10초씩 연장할 수 있는 기능을 포함하고 있습니다.

1. 초기화 단계

(0)   | SM402       | MOV  K50      | D12283   |    차로1시간   |
      |             | MOV  K50      | D12287   |    차로2시간   |
      |             | MOV  K50      | D12286   |    차로3시간   |
      |             | MOV  K50      | D12284   |    차로4시간   |
(13)  | SM400       | *D1  K10      | D12278   |    차로2시간+32 |
      |             | WORD D12278   | D12287   |    차로2시간+32 |
      |             | *D2  K10      | D12276   |    차로3시간+32 |
      |             | WORD D12276   | D12286   |    차로3시간+32 |
      |             | *D3  K10      | D12274   |    차로4시간+32 |
      |             | WORD D12274   | D12284   |    차로4시간+32 |
      |             | *D0  K10      | D12272   |    차로1시간+32 |
      |             | WORD D12272   | D12283   |    차로1시간+32 |

2. 정렬 버튼 및 타이머 제어

(42)  | SM400       | T7            |          |    차로2시간   |
      |             | 정렬버튼 (M0)  |          |
(51)  | T0          |                |          |    차로1시간   |
      |             | K10            |          |
(56)  | T1          |                |          |    차로2시간   |
      |             | K10            |          |
(62)  | T2          |                |          |    차로3시간   |
      |             | K10            |          |
(67)  | T3          |                |          |    차로4시간   |
      |             | K10            |          |
(73)  | T4          |                |          |    차로1시간   |
      |             | K10            |          |
(78)  | T5          |                |          |    차로2시간   |
      |             | K10            |          |
(84)  | T6          |                |          |    차로3시간   |
      |             | K10            |          |
(89)  | SM400       | DMOV           | H451721  |    K6Y20       |
      |             |                |          |                |
(94)  | T0          | DMOV           | H451491  |    K6Y20       |
      |             |                |          |                |
(99)  | T1          | DMOV           | H45C851  |    K6Y20       |
      |             |                |          |                |
(104) | T2          | DMOV           | H452451  |    K6Y20       |
      |             |                |          |                |
(109) | T3          | DMOV           | H721451  |    K6Y20       |
      |             |                |          |                |
(114) | T4          | DMOV           | H491451  |    K6Y20       |
      |             |                |          |                |
(119) | T5          | DMOV           | H85145C  |    K6Y20       |
      |             |                |          |                |
(124) | T6          | DMOV           | H451452  |    K6Y20       |
      |             |                |          |                |
(129) | 정렬버튼    | SM412          | M0       |    차로 정렬   |
      |             |                |          |
(143) | SM400       |                |          |    초기화       |
(146) | DATERD      |                | D1000    |    데이터 읽기  |

추가 설명:
초기화 단계: 시스템이 시작되면 각 타이머에 대해 초기 값을 설정합니다.
정렬 버튼: M0를 사용해 정렬 버튼이 눌리면 각 타이머의 시간을 10초씩 연장합니다.
타이머 제어: 각 타이머(T0~T6)는 10초 간격으로 신호를 변경하며, 각 타이머가 종료될 때 DMOV 명령어를 사용해 신호를 업데이트합니다.
DMOV 명령어: 각 타이머 종료 시 헥사값(H451721, H451491 등)을 K6Y20에 이동해 신호를 제어합니다.
DATERD: 특정 데이터를 D1000에 읽어와 추가적인 데이터 처리를 수행합니다.
헥사값과 워드 함수 사용 이유:
헥사값: 데이터의 명확한 식별과 관리를 위해 사용됩니다.
WORD 함수: 워드 디바이스의 비트를 지정해 데이터를 효율적으로 관리하며, 각 비트를 통해 타이머를 유연하게 제어합니다.
메모리적 관점에서 타이머 사용:
저속 타이머: 장기적인 주기 제어에 사용됩니다.
고속 타이머: 빠른 응답이 필요한 작업에 사용됩니다.
효율적인 메모리 사용: 동일 타이머 반복 사용을 최소화하고, 메모리 분산을 통해 효율적으로 관리합니다.
이 구조를 통해 교차로 신호등 제어 시스템을 보다 유연하고 효율적으로 구현할 수 있습니다.

 

해석 및 설명
내용 요약
이 페이지는 BIN32 비트 데이터에서 BIN16 비트 데이터로 변환하는 방법을 설명합니다.

BIN32 비트 데이터를 BIN16 비트 데이터로 변환하는 명령어:

WORD: BIN32 비트 데이터의 상위 16비트를 BIN16 비트 데이터로 변환.
WORDP: BIN32 비트 데이터의 하위 16비트를 BIN16 비트 데이터로 변환.
기능:

지정된 디바이스의 BIN32 비트 데이터를 부호를 포함한 BIN16 비트 데이터로 변환.
변환 후 BIN16 비트 데이터는 디바이스에 저장.
데이터 범위는 -32768 ~ 32767.
에러 처리:

지정된 디바이스 내용이 범위를 벗어나면 에러 발생.
에러 코드는 4100으로 저장됨.
프로그램 예시:

예시에서는 X20이 ON되면 R100, R101의 BIN32 비트 데이터를 BIN16 비트 데이터로 변환하여 D100에 저장하는 프로그램을 보여줍니다.
상세 해석
명령어 설명
WORD:
이 명령어는 32비트 데이터를 상위 16비트로 변환합니다. 예를 들어, BIN32 데이터가 0x12345678이면, 상위 16비트는 0x1234가 됩니다.
WORDP:
이 명령어는 32비트 데이터를 하위 16비트로 변환합니다. 예를 들어, BIN32 데이터가 0x12345678이면, 하위 16비트는 0x5678가 됩니다.
기능 및 에러
변환 후 데이터는 지정된 디바이스에 저장됩니다.
변환 가능한 데이터 범위는 -32768 ~ 32767입니다. 이 범위를 초과하면 에러 코드 4100이 발생합니다.
에러 발생 시 SM0 플래그가 ON되고, SD0에 에러 코드가 저장됩니다.
프로그램 예시
래더 모드 예시:
X20이 ON되면, R100과 R101의 BIN32 비트 데이터를 각각 BIN16 비트 데이터로 변환하여 D100에 저장합니다.
리스트 모드 예시:
스텝, 명령, 디바이스가 나열되어 있으며, R100, R101을 변환하여 D100에 저장합니다.
메모리 관점에서 타이머 활용
타이머는 메모리 효율성을 고려하여 사용해야 합니다. 타이머 설정값을 적절하게 조정하여 필요한 시간만큼만 사용할 수 있습니다. 예를 들어, 저속 타이머는 1ms ~ 1000ms, 고속 타이머는 0.1ms ~ 1000ms 범위로 설정할 수 있어 정밀한 시간 제어가 가능합니다. 타이머의 설정 단위를 줄여 불필요한 메모리 낭비를 방지하고, 필요한 시간 정확도를 유지할 수 있습니다.

추가 이미지 해석
OUT 명령어와 타이머 설정값
타이머 코일이 OFF 상태일 때와 ON 상태일 때 타이머의 현재값이 유지되는지 또는 0으로 설정되는지를 보여줍니다.
설정값이 0일 때 타이머는 설정된 시간이 경과할 때까지 동작을 멈춥니다.
타이머 설정값 범위와 인덱스 수식
설정값의 범위는 -32768 ~ 32767로 설정할 수 있으며, 인덱스 수식을 통해 타이머 설정값을 동적으로 조정할 수 있습니다.
인덱스 수식에 제한이 없어서 다양한 타이머 제어가 가능합니다.
이러한 내용들은 PLC 프로그래밍에서 메모리를 효율적으로 사용하고, 다양한 타이머 설정을 통해 복잡한 제어 시스템을 구현하는 데 매우 유용합니다.

결론
PLC 프로그래밍에서 BIN32 비트 데이터를 BIN16 비트 데이터로 변환하는 것은 메모리 활용도 및 데이터 처리 효율성을 높이는 중요한 방법입니다. 이를 통해 복잡한 데이터 처리와 제어를 더 효과적으로 수행할 수 있습니다. 추가적인 타이머 설정과 에러 처리를 통해 안정적이고 신뢰성 높은 시스템을 구축할 수 있습니다.

 

WORD 명령어를 사용한 이유

 


WORD 명령어는 주로 32비트 데이터를 16비트 데이터로 변환하는 데 사용됩니다. 이것은 데이터를 더 작은 단위로 나누어 보다 정밀하게 제어할 수 있게 합니다. 우리의 구현에서 이 명령어를 사용한 이유는 다음과 같습니다:

데이터 크기 조정:

우리가 사용한 헥사 값들은 32비트 데이터로 구성되어 있습니다.

를 16비트 단위로 나누어 사용하면 메모리의 효율적인 사용과 데이터의 정밀한 제어가 가능해집니다.


예를 들어, H451721이라는 32비트 데이터를 상위 16비트(H4517)와 하위 16비트(H4521)로 나누어 필요한 비트만큼 사용할 수 있습니다.
메모리 효율성:

PLC 메모리는 한정되어 있기 때문에 데이터를 작은 단위로 나누어 필요한 부분만 사용하는 것이 메모리 효율성을 높입니다.
16비트로 변환하여 사용하면 필요하지 않은 부분의 데이터를 저장할 필요가 없어 메모리 낭비를 줄일 수 있습니다.


정밀한 제어:

32비트 데이터는 큰 단위의 데이터를 처리할 때 유용하지만, 실제 제어에서는 더 작은 단위의 정밀한 데이터 처리가 필요할 수 있습니다.
예를 들어, 교통 신호등 제어에서는 각 신호등의 상태를 정밀하게 제어하기 위해 16비트 단위의 데이터가 더 적합할 수 있습니다.
비트 연산의 용이성:

16비트 단위로 데이터를 변환하면 각 비트에 대한 연산과 제어가 더 용이해집니다.
예를 들어, 특정 비트를 ON/OFF하는 작업을 할 때 16비트 데이터는 32비트 데이터에 비해 연산이 간단하고 빠릅니다.
WORD 명령어 예시
WORD 명령어를 사용하여 D12283라는 디바이스에 32비트 데이터를 16비트 데이터로 변환하여 저장하는 경우:

[ MOV   K50  D12283 ]  // 상위 16비트 데이터 이동
[ MOV   K50  D12287 ]  // 하위 16비트 데이터 이동
[ WORD  D1   K10  D12278 ]  // BIN32 데이터를 BIN16 데이터로 변환하여 D12278에 저장

이 예시는 32비트 데이터를 두 개의 16비트 데이터로 나누어 저장하는 것을 보여줍니다.
결론
우리의 구현에서 WORD 명령어를 사용한 이유는 주로 메모리의 효율적인 사용, 정밀한 제어, 그리고 비트 연산의 용이성을 위해서입니다. 이는 PLC 프로그래밍에서 데이터 처리와 제어의 효율성을 극대화하는 중요한 방법입니다. 32비트 데이터를 16비트 데이터로 나누어 사용하면 불필요한 메모리 낭비를 줄이고, 필요한 부분만 정확하게 제어할 수 있습니다.

 

 


 

 

DAY0521_신호등1차_04자동점멸.prx
0.95MB
DAY0521_신호등1차_04자동점멸.gxw
0.91MB

추가된 래더 다이어그램 분석
펄스 상승 검출 (P) 기능:

펄스 상승 검출 기능은 짧은 시간 동안 신호가 ON에서 OFF로 변할 때 발생하는 순간적인 신호를 감지하는 것입니다. 이를 통해 특정 조건이 발생했을 때만 동작하도록 제어할 수 있습니다.
사용된 명령어와 기호:

SET 및 RST: 특정 비트(M0)를 SET하거나 RST하는 명령어입니다. 이는 해당 비트를 1로 설정하거나 0으로 리셋합니다.

DMOV: 데이터 이동 명령어로, 특정 데이터를 지정된 주소로 이동시킵니다.
DATE: 현재 날짜 및 시간을 특정 메모리 영역에 저장하는 명령어입니다.
DATERD: 날짜 및 시간을 읽어오는 명령어입니다.
구체적인 래더 다이어그램 설명
라인 129 ~ 139:

SM412가 ON일 때 M0 비트를 설정합니다.
SM412가 OFF로 변할 때 M0 비트를 리셋합니다. 

이는 SM412의 상태에 따라 M0 비트가 설정되고 리셋되는 것을 의미합니다.


라인 143 ~ 160:

SM400이 ON일 때, 특정 데이터 영역(D1003, D1010, D1004, D1011)의 값을 비교합니다.
두 데이터가 동일하면 M0 비트를 SET하고, 그렇지 않으면 RST합니다.
이 구문은 두 값이 동일한지 비교하여 특정 비트를 제어하는 것입니다.
추가된 래더 다이어그램 그림
라인 129 ~ 160

|---[ SM412 ]---[ M0 ]-----------------------------[ DMOV H451452 K6Y20 ]---|
|---[ SM412 ]---[ /SM412 ]--------------------------[ DMOV H451451 K6Y20 ]---|
|---[ SM412 ]---[ ]--------------------------------[ DMOV H0 K6Y20 ]---------|
|---[ SM400 ]---[ ]--------------------------------[ DATERD D1000 ]-----------|
|---[ = D1003 D1010 ]---[ = D1004 D1011 ]---[ SET M0 ]---[ RST M0 ]-----------|

 

이와 같은 구문을 통해 데이터 비교와 특정 비트 제어가 가능합니다. 또한, 펄스 상승 검출 기능을 통해 순간적인 신호를 감지하여 제어 로직을 구현할 수 있습니다.

이와 같은 래더 다이어그램을 통해 더욱 직관적으로 이해하고 효율적인 PLC 프로그래밍을 구현할 수 있습니다. 필요한 경우, 각 명령어의 세부 동작을 추가로 설명하여 더욱 명확한 이해를 도울 수 있습니다.

 

 

최종 hmi 구현 화면