ST 코드 보기¶
프리모블록으로 만든 흐름은 IEC 61131-3 ST 코드로 자동 변환됩니다. 산업용 PLC (CODESYS, TIA Portal 등) 로 가져갈 수 있습니다.
무엇을 하는 단계인가요?¶
카드로 만든 자동화 흐름을 표준 PLC 프로그래밍 언어 (ST, Structured Text) 로 변환해 봅니다. 산업 현장에서 사용하는 PLC 코드와 동일한 형식이라 이후 실무로 자연스럽게 연결됩니다.
왜 ST 코드인가요?
IEC 61131-3 의 ST (Structured Text) 는 PLC 프로그래밍의 국제 표준입니다. 학생이 프리모블록으로 만든 흐름이 곧바로 산업용 PLC 코드로 변환되는 것을 보면 블록 코딩 → 산업 코딩 으로 자연스럽게 이행할 수 있습니다.
에디터 모드 전환¶
화면 상단의 모드 전환 탭으로 카드 모드와 ST 코드 모드를 오갈 수 있습니다.
| 모드 | 역할 |
|---|---|
| 카드 모드 (기본) | 카드를 끌어 놓아 시각적으로 흐름 작성 |
| ST 코드 모드 | 자동 변환된 ST 코드 확인 (Monaco 에디터) |
ST 모드는 보기 전용
현재 ST 코드는 읽기 목적입니다. 카드를 수정 후 ST 모드로 전환하면 자동 갱신됩니다. ST 코드 직접 편집 후 카드로 역변환은 차후 버전에서 지원 예정.
카드 → ST 변환 예시¶
단순 흐름¶
카드:
ST 코드:
PROGRAM Main
VAR
count : INT := 0;
END_VAR
BEGIN
LOOP 5 TIMES
TEXT_DISPLAY("Item 1");
count := count + 1;
END_LOOP;
END_PROGRAM.
색상 분류 흐름¶
카드:
ST 코드:
COLOR_DETECT();
IF detected_color = 'red' THEN
ROBOT.MoveTo('A');
ELSIF detected_color = 'blue' THEN
ROBOT.MoveTo('B');
ELSE
ROBOT.MoveTo('C');
END_IF;
ST 문법 핵심¶
| 구문 | 의미 |
|---|---|
PROGRAM ... END_PROGRAM |
프로그램 영역 |
VAR ... END_VAR |
변수 선언 |
BEGIN ... END; |
프로그램 본체 |
IF ... THEN ... ELSIF ... ELSE ... END_IF; |
조건 분기 |
LOOP n TIMES ... END_LOOP; |
정해진 횟수 반복 |
WHILE condition DO ... END_WHILE; |
조건부 반복 |
varName := value; |
변수 할당 |
래더 다이어그램으로 보기¶
같은 흐름을 래더 다이어그램(LD) 으로도 볼 수 있습니다. 래더는 현장 PLC 에서 가장 널리 쓰이는 표기법으로, 전기 회로도처럼 왼쪽 전원선에서 오른쪽으로 신호가 흐릅니다.
화면 위쪽 모드 탭에서 [래더 다이어그램] 을 누릅니다.
읽는 법은 세 가지만 알면 됩니다.
| 기호 | 이름 | 뜻 |
|---|---|---|
─┤ ├─ |
접점 (NO) | 이 조건이 참일 때 통한다 (예: 센서가 감지됨) |
─┤/├─ |
반전 접점 (NC) | 이 조건이 거짓일 때 통한다 (조건의 "아니면" 쪽) |
─( )─ |
코일 | 줄이 통하면 이 동작을 실행한다 (예: 컨베이어 켜기) |
코일 안의 글자는 동작의 종류입니다 — 비어 있으면 일반, S 는 켜서 유지(SET),
R 은 꺼서 유지(RESET) 입니다.
읽기 전용입니다
래더는 자동으로 그려집니다. 블록을 고치면 래더도 따라 바뀌지만, 래더에서 직접 그리거나 고칠 수는 없습니다. 흐름을 바꾸는 곳은 언제나 블록 화면입니다.
인쇄·이미지 저장
상단의 [PNG 저장] 과 [인쇄] 로 래더를 그림 파일이나 종이로 뽑을 수 있습니다. 수업 자료·과제 제출물로 바로 쓸 수 있고, 화면을 어두운 테마로 보고 있어도 인쇄물은 흰 종이에 검은 선으로 나옵니다.
어두운 테마에서는 이렇게 보입니다
표현할 수 없는 카드가 있습니다
래더는 전기 회로 표기법이라 카메라 촬영·AI 판별·변수 선언처럼 회로로 그릴 수 없는 카드는 점선 상자로 "표현 불가" 라고 표시됩니다. 그런 카드는 블록 화면이나 ST 코드로 확인하세요.
표준 코드 내보내기¶
카드를 다양한 PLC 표준 형식으로 내보낼 수 있습니다.
-
IEC 61131-3 ST
표준 Structured Text 형식. 모든 IEC 61131-3 호환 PLC 에서 사용 가능
-
CODESYS
.project파일. CODESYS IDE 에서 바로 열기 가능 -
TIA Portal
.scl파일. Siemens TIA Portal 호환
내보내기 절차¶
- 화면 상단 메뉴에서 파일 → 내보내기 클릭
- 형식 선택 (IEC ST / CODESYS / TIA Portal)
- 저장 위치 지정
- 내보낸 파일을 산업용 PLC IDE 에서 열기
카드 ↔ ST 매핑 예시¶
| 카드 | ST 명령어 | IEC 표준 |
|---|---|---|
N초 기다리기 |
WAIT(seconds) |
TON (Timer ON) |
반복하기 (LOOP) |
LOOP n TIMES ... END_LOOP |
FOR |
만약 ~이면 (IF) |
IF cond THEN ... END_IF |
IF |
횟수 세기 (CTU) |
count := count + 1; IF count >= PV THEN Q := TRUE; |
CTU |
컨베이어 켜기 |
CONV_START(direction) |
커스텀 함수 |
로봇 이동 |
ROBOT.MoveTo(position) |
로봇 API |
계산하기 |
target := a + b; |
할당 |
자주 발생하는 문제¶
ST 코드를 직접 편집하면 카드도 갱신되나요?
차후 버전 지원 예정. 현재는 카드 수정 → ST 자동 갱신만 가능합니다 (단방향).
변수명을 한글로 써도 되나요?
UTF-8 지원하므로 가능합니다. 단 외부 PLC 시스템과 호환성을 위해 영문 권장.
ST 코드가 보이지 않음
카드 모드에서 카드를 추가한 후 ST 코드 모드로 전환하세요. 빈 흐름이라면 ST 코드도 비어 있습니다.
내보낸 CODESYS 파일을 동료와 공유?
가능합니다. CODESYS 가 설치된 환경에서 .project 파일 열기 → 기존 프로젝트와 통합 가능.
강사 팁¶
고학년 학습 단계로 활용
초·중등 학생은 카드 모드만으로 충분합니다. 고등 / 전문대 학생 에게는 ST 코드를 함께 보여주면서 "여러분이 만든 게 진짜 산업용 코드입니다" 라고 강조하면 학습 동기가 올라갑니다.
양방향 비교가 효과적
카드 한 줄 추가 → ST 코드의 어디가 변하는지 확인 → 다시 카드 추가. 이런 양방향 비교가 ST 학습에 가장 효과적입니다.
산업 PLC 와 연계 학습
학생이 만든 흐름을 CODESYS 로 내보내고, 학교에 CODESYS 가 설치된 PC 에서 직접 시뮬레이션 해 보게 하면 실무 연결성이 강해집니다.
다음 단계¶
ST 코드 변환까지 익혔다면 프리모블록의 모든 핵심 기능을 다룬 셈입니다.
- 다른 카드 카테고리 복습 → 프리모블록 인덱스
- 자동화 응용 → 첫 프로그램 만들기 의 "다음 학습" 섹션 참조
- 하드웨어 연결에 문제가 생기면 → 하드웨어 문제 해결
이 페이지에 빠진 내용이나 잘못된 부분을 발견하시면 페이지 하단 📮 피드백 보내기 를 활용해 주세요.