콘텐츠로 이동

ST 코드 보기

프리모블록으로 만든 흐름은 IEC 61131-3 ST 코드로 자동 변환됩니다. 산업용 PLC (CODESYS, TIA Portal 등) 로 가져갈 수 있습니다.

무엇을 하는 단계인가요?

카드로 만든 자동화 흐름을 표준 PLC 프로그래밍 언어 (ST, Structured Text) 로 변환해 봅니다. 산업 현장에서 사용하는 PLC 코드와 동일한 형식이라 이후 실무로 자연스럽게 연결됩니다.

왜 ST 코드인가요?

IEC 61131-3 의 ST (Structured Text) 는 PLC 프로그래밍의 국제 표준입니다. 학생이 프리모블록으로 만든 흐름이 곧바로 산업용 PLC 코드로 변환되는 것을 보면 블록 코딩 → 산업 코딩 으로 자연스럽게 이행할 수 있습니다.

에디터 모드 전환

ST 코드 화면 — 블록이 IEC 61131-3 코드로 변환된 모습
왼쪽은 블록 구조, 오른쪽은 자동 생성된 ST 코드입니다. 블록을 고치면 코드도 즉시 따라 바뀝니다.

화면 상단의 모드 전환 탭으로 카드 모드와 ST 코드 모드를 오갈 수 있습니다.

모드 역할
카드 모드 (기본) 카드를 끌어 놓아 시각적으로 흐름 작성
ST 코드 모드 자동 변환된 ST 코드 확인 (Monaco 에디터)

ST 모드는 보기 전용

현재 ST 코드는 읽기 목적입니다. 카드를 수정 후 ST 모드로 전환하면 자동 갱신됩니다. ST 코드 직접 편집 후 카드로 역변환은 차후 버전에서 지원 예정.

카드 → ST 변환 예시

단순 흐름

카드:

시작
LOOP 5회
  ├─ 메시지 보내기 ("Item {i}")
  ├─ 횟수 세기 (count, PV=5)
LOOP 끝
종료

ST 코드:

PROGRAM Main
VAR
  count : INT := 0;
END_VAR

BEGIN
  LOOP 5 TIMES
    TEXT_DISPLAY("Item 1");
    count := count + 1;
  END_LOOP;
END_PROGRAM.

색상 분류 흐름

카드:

색깔 확인
만약 빨간색이면
  └─ 로봇 이동 A
아니면 파란색이면
  └─ 로봇 이동 B
아니면
  └─ 로봇 이동 C
만약 끝

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 에서 가장 널리 쓰이는 표기법으로, 전기 회로도처럼 왼쪽 전원선에서 오른쪽으로 신호가 흐릅니다.

화면 위쪽 모드 탭에서 [래더 다이어그램] 을 누릅니다.

래더 다이어그램 화면
왼쪽·오른쪽 세로선이 전원선입니다. 가로 한 줄(rung)이 하나의 제어를 나타냅니다.

읽는 법은 세 가지만 알면 됩니다.

기호 이름
─┤ ├─ 접점 (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 호환

내보내기 절차

  1. 화면 상단 메뉴에서 파일 → 내보내기 클릭
  2. 형식 선택 (IEC ST / CODESYS / TIA Portal)
  3. 저장 위치 지정
  4. 내보낸 파일을 산업용 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 코드 변환까지 익혔다면 프리모블록의 모든 핵심 기능을 다룬 셈입니다.


이 페이지에 빠진 내용이나 잘못된 부분을 발견하시면 페이지 하단 📮 피드백 보내기 를 활용해 주세요.