PLC & Industrial Automation Field Notes

Practical solutions for industrial automation


[실무] 래더만 알던 엔지니어가 ST 언어에 당황하지 않고 익히는 방법

PLC 프로그램에서 래더만 사용하던 엔지니어가 ST 언어를 처음 접하면 구조를 바로 파악하기 어려울 수 있습니다. 래더는 접점과 코일 흐름이 시각적으로 보이지만, ST는 문자 기반으로 조건문, 반복문, 수식, 함수가 작성됩니다. 따라서 ST를 별도의 어려운 언어로 보기보다, 래더로 길어지는 반복 처리와 데이터 연산을 줄이기 위한 도구로 이해하는 것이 효과적입니다.

ST 언어가 낯설게 느껴지는 이유

래더는 전기 회로와 비슷한 형태로 표현됩니다. 접점이 ON인지 OFF인지, 코일이 살아 있는지, 조건이 어디서 끊기는지 화면에서 바로 추적할 수 있습니다.

반면 ST는 문자 기반 언어입니다. 조건문, 대입문, 반복문, 함수가 줄 단위로 작성되기 때문에 처음에는 실행 흐름이 바로 보이지 않을 수 있습니다.

특히 현장에서 접점과 코일을 기대하고 PLC 프로그램을 열었는데 ST 코드만 있는 경우에는 다음 항목을 먼저 파악해야 합니다.

확인 항목설명
조건문어떤 조건에서 실행되는지 확인
대입문어떤 디바이스에 값을 쓰는지 확인
반복문몇 번 반복되는지 확인
함수문자열, 수식, 변환 처리가 있는지 확인
출력 영향최종적으로 어떤 비트나 워드에 영향을 주는지 확인

ST는 접점 흐름이 보이지 않기 때문에 낯설지만, 구조를 나누어 보면 래더와 같은 PLC 프로그램입니다.

ST 언어가 늘어나는 이유

최근 PLC 프로그램에서는 단순 입출력 제어뿐 아니라 데이터 처리 비중이 커지고 있습니다.

예를 들어 다음 작업은 래더만으로 작성하면 프로그램이 길어지고 유지보수가 어려워질 수 있습니다.

작업ST가 유리한 이유
생산 데이터 처리배열, 반복, 조건 처리를 짧게 구성 가능
서버·상위 장비 통신문자열과 데이터 변환 처리에 유리
수식 계산산술식을 한 줄로 표현 가능
레시피 관리반복 복사와 조건 분기 구성에 유리
반복 동작 처리FOR 문으로 반복 구조를 간결하게 작성 가능
문자열 처리FIND, MID, 변환 함수 등을 활용 가능

PLC가 단순 시퀀스 장비에서 데이터 처리 장비로 확장되면서 ST의 사용 비중도 함께 증가하고 있습니다.

래더와 ST의 차이

래더와 ST는 서로 대체 관계라기보다 목적이 다른 도구로 보는 것이 좋습니다.

래더는 현장 트러블슈팅과 시퀀스 흐름 확인에 강합니다. ST는 반복 연산, 데이터 처리, 문자열 처리, 복잡한 조건 계산에 유리합니다.

구분래더ST 언어
표현 방식접점과 코일 중심문자와 수식 중심
장점상태 확인과 트러블슈팅이 직관적계산, 반복, 데이터 처리에 유리
단점반복 로직이 길어질 수 있음익숙하지 않으면 흐름 파악이 느림
적합한 영역장비 시퀀스, 인터락, 수동 조작연산, 배열, 문자열, 반복 처리
유지보수 관점현장 대응에 유리구조화가 잘 되면 수정이 편리

현장에서는 한 가지 언어만 고집하기보다 각 언어가 유리한 영역을 구분해 사용하는 방식이 안정적입니다.

래더가 여전히 중요한 이유

ST 사용이 늘어도 래더의 중요성이 줄어드는 것은 아닙니다.

현장 설비에서는 입력 조건, 출력 조건, 인터락, 비상정지, 수동 조작, 자동 시퀀스 흐름을 빠르게 확인해야 합니다. 이 영역은 래더가 여전히 강합니다.

래더가 적합한 작업은 다음과 같습니다.

작업이유
수동 조작 회로입력과 출력 상태를 바로 확인 가능
인터락 조건어떤 조건에서 동작이 막히는지 추적하기 쉬움
실린더·모터 시퀀스순차 동작 흐름 확인이 직관적
비상정지·안전 조건조건 차단 구조 확인이 빠름
현장 트러블 대응모니터링 중 접점 상태 확인이 쉬움

따라서 ST를 익히더라도 기본 시퀀스와 현장 대응 능력은 래더를 기준으로 갖추는 것이 좋습니다.

ST가 필요한 대표 상황

ST는 래더로 작성하면 지나치게 길어지는 작업에서 효과가 큽니다.

대표적인 상황은 다음과 같습니다.

상황ST 활용 이유
데이터 100개 초기화반복문으로 간결하게 처리 가능
배열 데이터 검사인덱스 기반으로 순차 검사 가능
문자열 수신 데이터 처리문자 검색, 자르기, 변환 처리 가능
소수점 포함 문자열 변환정수부와 소수부 분리 처리 가능
여러 조건의 계산 결과 산출수식 구조가 명확함
반복되는 비교 로직동일 패턴을 반복문으로 처리 가능

예를 들어 D100부터 D199까지 값을 초기화해야 하는 경우, 래더에서는 여러 줄의 MOV 또는 FMOV 구조가 필요할 수 있습니다. ST에서는 반복문을 사용해 같은 동작을 짧게 구성할 수 있습니다.

문자열 처리에서 ST가 유리한 이유

상위 장비, 바코드 리더기, 비전 장비, 계측기와 통신할 때 문자열 데이터를 받는 경우가 있습니다.

예를 들어 상대 장비가 123.456과 같은 문자열 형태로 데이터를 보낸다면, PLC 내부에서는 이를 숫자로 변환해야 비교와 연산에 사용할 수 있습니다.

이때 필요한 처리는 다음과 같습니다.

처리 항목설명
소수점 위치 검색문자열 안에서 소수점 위치 확인
문자열 자르기정수부와 소수부 분리
숫자 변환문자열을 정수 또는 실수 값으로 변환
자리수 보정소수 자릿수에 맞게 배율 조정
결과 저장PLC 내부 연산용 D 영역에 저장

이런 작업은 래더로도 구현할 수 있지만 로직이 길어지기 쉽습니다. ST를 사용하면 문자열 처리 흐름을 순서대로 작성할 수 있어 구조 파악이 비교적 명확해집니다.

ST를 처음 배울 때의 순서

ST를 처음부터 문법 중심으로 외우면 실무 적용이 어렵습니다. 래더에서 익숙한 개념을 ST로 바꾸어 보는 방식이 더 효과적입니다.

학습 순서는 다음과 같이 잡을 수 있습니다.

순서학습 항목목적
1래더 접점 흐름PLC 스캔과 조건 판단 이해
2디바이스 구조X, Y, M, D, W, R, Z 역할 이해
3타이머·카운터기본 시퀀스 요소 이해
4MOV, BMOV, FMOV데이터 이동과 블록 처리 이해
5FOR-NEXT반복 처리 개념 이해
6IF 문조건 분기 구조 이해
7FOR 문반복 연산 구조 이해
8문자열 함수통신 데이터 처리 이해
9함수와 FB재사용 가능한 구조 이해

ST는 래더를 대체하기 위한 첫 번째 언어가 아니라, 래더로 길어지는 부분을 보완하는 언어로 접근하는 것이 좋습니다.

래더 개념을 ST로 바꾸어 이해하기

래더에서 사용하는 기본 개념은 ST에서도 동일하게 존재합니다. 표현 방식만 달라집니다.

래더 개념ST에서의 대응
접점 조건IF 조건식
코일 출력변수 또는 디바이스 대입
자기유지조건과 상태 비트 조합
SET/RSTTRUE/FALSE 대입 또는 전용 명령
비교 접점비교 연산식
MOV대입문
FOR-NEXTFOR 반복문
타이머타이머 함수 또는 FB 호출

예를 들어 래더에서 특정 조건이 ON일 때 M100을 ON시키는 구조는 ST에서는 조건문과 대입문으로 표현됩니다. 핵심은 접점과 코일이 문자 형태로 바뀌었다는 점입니다.

ST 사용 시 주의할 점

ST는 간결하지만 잘못 작성하면 오히려 추적이 어려워질 수 있습니다.

특히 다음 항목을 주의해야 합니다.

주의 항목설명
출력 직접 제어ST 내부에서 Y 출력 직접 제어 시 추적 어려움
초기화 누락반복문 실행 전 변수 초기화 필요
범위 초과배열 또는 인덱스 범위 확인 필요
주석 부족계산 의도를 남기지 않으면 유지보수 어려움
래더와 중복 제어같은 비트를 래더와 ST에서 동시에 제어하지 않도록 주의
스캔 부하반복문과 문자열 처리량이 많으면 스캔 타임 증가 가능

ST는 짧게 작성할 수 있지만, 짧은 코드가 항상 좋은 코드는 아닙니다. 나중에 확인할 수 있도록 변수명, 주석, 데이터 흐름을 명확하게 구성해야 합니다.

메인 시퀀스와 내부 처리를 분리한다

실무에서는 메인 시퀀스를 래더로 구성하고, 내부 계산이나 반복 처리만 ST로 분리하는 방식이 많이 사용됩니다.

이 방식은 현장 대응성과 데이터 처리 효율을 함께 가져갈 수 있습니다.

영역권장 방식
수동 조작래더
자동 시퀀스 흐름래더
인터락 조건래더
대량 데이터 초기화ST 검토
문자열 처리ST 검토
배열 연산ST 검토
복잡한 수식 계산ST 검토

메인 흐름은 래더로 확인 가능하게 두고, 래더로 작성하면 지나치게 길어지는 부분만 ST로 분리하면 유지보수성이 좋아집니다.

ST 언어 학습 체크리스트

ST를 익힐 때는 다음 항목을 기준으로 점검하면 됩니다.

점검 항목확인 내용
IF 문조건 분기를 읽고 작성할 수 있는지
대입문어떤 디바이스에 어떤 값이 들어가는지 추적할 수 있는지
FOR 문반복 횟수와 인덱스 범위를 확인할 수 있는지
변수 초기화반복 전 초기화가 필요한 값을 구분할 수 있는지
문자열 함수FIND, MID, 변환 함수의 목적을 이해하는지
래더 연동ST 결과가 래더의 어떤 조건에 사용되는지 확인하는지
중복 제어같은 디바이스를 여러 곳에서 쓰지 않는지
스캔 타임반복문과 연산량이 과도하지 않은지

이 항목을 기준으로 보면 ST를 단순 코딩 언어가 아니라 PLC 제어 로직의 일부로 이해할 수 있습니다.

ST 언어 활용 기준 정리

ST 언어는 래더를 대체하기 위한 언어라기보다, 래더로 작성하기 복잡한 계산과 반복 처리를 정리하기 위한 도구입니다. 래더는 접점 흐름을 시각적으로 확인하기 쉬워 현장 트러블슈팅과 시퀀스 제어에 강합니다. ST는 수식, 반복문, 문자열 처리, 배열 데이터 처리에 유리합니다.

PLC 프로그램에서 모든 로직을 ST로 작성할 필요는 없습니다. 현장 대응이 중요한 메인 시퀀스, 수동 조작, 인터락, 출력 조건은 래더로 구성하고, 데이터 변환이나 반복 연산처럼 래더로 길어지는 부분은 ST로 분리하는 방식이 실무적으로 적합합니다.

ST를 익힐 때는 문법을 먼저 외우기보다 래더에서 하던 조건 판단, 값 대입, 반복 처리, 데이터 이동을 ST에서는 어떻게 표현하는지 비교하는 것이 좋습니다. IF 문, FOR 문, 대입문, 문자열 함수부터 익히면 실제 프로젝트에서 필요한 범위를 빠르게 적용할 수 있습니다.

ST는 처음에는 낯설지만, 반복 로직과 데이터 처리 구조를 이해하면 PLC 프로그램을 더 간결하게 만드는 도구가 됩니다. 중요한 것은 어떤 언어가 더 우수한지를 정하는 것이 아니라, 현장 대응은 래더로 명확하게 유지하고 복잡한 내부 처리는 ST로 정리하는 기준을 갖는 것입니다.