본문으로 건너뛰기

Beckhoff TwinCAT/ADS

ADS (Automation Device Specification) 는 독일 Beckhoff 의 TwinCAT 런타임이 사용하는 통신 규약입니다. TwinCAT 2 / 3 가 동작하는 산업용 PC (IPC) 와 EtherCAT 마스터 환경에서 주로 쓰입니다.

자동차 라인 / 반도체 / 풍력 / 모션 컨트롤 등 PC-기반 제어 환경이라면 십중팔구 ADS 입니다.


등록 폼 입력값

입력 칸무엇을 적나요예시
IP 주소TwinCAT 가 동작하는 IPC 의 IP192.168.0.80
포트ADS TCP 포트48898 (표준 / 변경 비추천)
Target AMS NetId (target-netid)대상 IPC 의 AMS NetId — 비우면 IP주소.1.1 자동192.168.0.80.1.1
Target AMS 포트 (target-port)TwinCAT 런타임 포트851 (TwinCAT 3 PLC) / 801 (TwinCAT 2 PLC1)

그 외 옵션: source-netid / source-port (게이트웨이 측 AMS 식별자 — 기본 32905), connect-timeout / read-timeout (ms, 기본 3000). 옛 옵션 키 표기 (ams-net-id / ams-port / target-ams-net-id / timeout-request) 는 폐기되었습니다.

AmsNetId 형식

a.b.c.d.1.1 형태로 6 옥텟. 보통 IPC 의 IP 주소 뒤에 .1.1 을 붙인 값이지만 TwinCAT System Manager 에 표시된 NetId 가 정답 입니다. 위치는 시스템 트레이의 TwinCAT 아이콘 → Properties → AMS NetId.

Route 등록 (필수)

ADS 는 양쪽이 서로의 NetId 를 알고 있어야 통신합니다. 게이트웨이가 PLC 를 처음 호출하면 PLC 측에서 Add Route Dialog 가 뜨거나 자동으로 거부됩니다. TwinCAT System Manager → RoutesAdd 에서 게이트웨이 IP / NetId 를 추가하고 TwinCAT 라이센스가 valid 한지 확인하세요.

라이센스 만료 시 통신 거부

TwinCAT 3 의 경우 30 일 평가판이 만료되면 ADS 응답이 끊깁니다. License Manager 에서 라이센스 상태를 먼저 점검하세요.


태그의 PLC 주소 표기

ADS 는 두 가지 접근 방식을 지원합니다.

1. 메모리 영역 직접 (Indexed)

표기의미
M0:4메모리 영역 (M%) offset 0, 4 byte
I0:2입력 영역 offset 0, 2 byte
Q0:2출력 영역 offset 0, 2 byte

<영역>:<offset>:<size> 형식. size 는 byte 단위.

2. 심볼릭 (Symbolic)

표기의미
MAIN.fCounterMAIN 프로그램의 fCounter 변수
MAIN.fCounter:REAL자료형 명시 (32-bit 실수)
GVL.bRunning:BOOLGlobal Variable List 의 bRunning

심볼릭 표기는 PLC 측에 TPY (TwinCAT 2) 또는 심볼 다운로드 (TwinCAT 3 → Build → Activate Configuration) 가 되어 있어야 합니다.


데이터 형식 매칭

PLC 의 값데이터 형식형식 보조PLC 주소 예
BOOLBoolean(비움)GVL.bRunning:BOOL
BYTE / SINTIntegerBMAIN.bByte:BYTE
INT (16-bit)Integer(비움)MAIN.nCount:INT
DINT (32-bit)IntegerDWMAIN.nTotal:DINT
REAL (32-bit 실수)FloatREALMAIN.fTemp:REAL
LREAL (64-bit 실수)DoubleLREALMAIN.fPos:LREAL
STRING(80)StringSTR[80]MAIN.sName:STRING

흔한 문제와 해결

증상 / 메시지가능한 원인해결
“No route to host”Route 미등록TwinCAT System Manager → Routes 에서 게이트웨이 추가
“Target port not found”AmsPort 가 시리즈와 불일치TC2 = 801, TC3 = 851 재확인
“Symbol not found”심볼 다운로드 미실행TwinCAT 3 에서 Activate Configuration 후 재시도
모든 값 0TwinCAT 가 RUN 이 아닌 STOP / CONFIG 모드System Manager 에서 RUN 으로 전환
라이센스 오류평가판 만료License Manager 에서 라이센스 갱신

자주 쓰는 예시

태그 이름PLC 주소데이터 형식형식 보조
운전중 플래그GVL.bRunning:BOOLBoolean(비움)
카운터MAIN.nCount:DINTIntegerDW
온도MAIN.fTemp:REALFloatREAL
배치 이름MAIN.sBatch:STRINGStringSTR[80]

더 자세한 예제 / 자동화 등록

고급 — REST API 의 ADS 예제를 참고하세요.