콘텐츠로 이동

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 변환 예시

단순 흐름

카드:

시작
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; 변수 할당

표준 코드 내보내기

카드를 다양한 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 코드 변환까지 익혔다면 팩토블록의 모든 핵심 기능을 다룬 셈입니다.


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