[쉽고 간단한 안내서] TwinCAT ADS
ADS(Automation Device Specification)는 Beckhoff
Automation에서 개발한 무료 개방형 통신 프로토콜로 TwinCAT 시스템 내의
NC, PLC, HMI 등 서로 다른 소프트웨어 디바이스 간의 데이터 교환을 위한 통신 계층입니다. TwinCAT 시스템에서 소프트웨어의 개별 디바이스(예: TwinCAT PLC, TwinCAT NC…)는 독립적인 장치로
간주되며 이러한 개체 간의 메시지는 "메시지 라우터"와 ADS 인터페이스를 통해 교환됩니다. TwinCAT 메시지 라우터는
모든 TwinCAT PC에 존재합니다. 이를 통해 모든 TwinCAT 서버 및 클라이언트 프로그램이 명령과 데이터를 교환할 수 있습니다. ADS는 TCP/IP를 기본으로 사용하며 다른 PC 또는 장치와 통신할 수 있습니다. TCP/IP 사용하여 연결된
시스템 내(예: 다른
PC에서 TwinCAT의 변수 접근)의 모든
데이터에 접근할 수 있습니다. |
TwinCAT
시스템 구조는 소프트웨어의 개별 디바이스(TwinCAT PLC, User HMI 등)를 독립된 장치로 취급합니다. 디바이스 별로 소프트웨어 모듈('서버' 또는 '클라이언트')이
있으며, 시스템 내 서버는 소프트웨어 형태로 동작하는 '디바이스'이며, 해당 동작은 하드웨어 디바이스와 완전히 동일합니다. 「클라이언트」는, 「서버」의 서비스를 요청하는 프로그램입니다. TwinCAT은 ADS 기반의 캠 컨트롤러, 오실로스코프, PID 컨트롤러 등 새로운 소프트웨어 디바이스를 개발
및 추가할 수 있으므로 TwinCAT 시스템은 지속적으로 발전할 수 있습니다.
이러한 개별 디바이스 간의
메시지는 "메시지 라우터"와 일관된 ADS(Automation Device Specification) 인터페이스를 통해 교환됩니다. ADS는 시스템 내 TCP/IP 접속을 개입시켜 모든 메세지가 관리
및 전달되며, TwinCAT 메시지 라우터는 모든 TwinCAT 디바이스에
존재합니다. 이를 통해 모든 TwinCAT 서버와 클라이언트
프로그램에서 명령어와 데이터 교환, 메시지 전송, 상태 정보
전송 등이 가능합니다.
라이브러리 및 런타임 컴포넌트는
공통 프로그래밍 언어(등)에 대해 제공됩니다. ( .NET, C/C++, Delphi 및 Java). 또한 타사
소프트웨어(예: MATLAB®, NI LabVIEW™, Office)와의 통신을 위한 인터페이스가 제공됩니다. ADS Web 서비스는, 디바이스에 의존하지 않는 Web 애플리케이션(HTML5, WCF)의 개발을 가능하게 합니다. 메시지 라우터는 여러
연결을 관리하며 메시지를 효율적으로 전달합니다. 데이터 패킷은, 통합
진단 인터페이스를 사용해 ADS 모니터로 기록할 수 있습니다. 무료 TwinCAT3 ADS는 TwinCAT 시스템과의 통신에 필요한 기본
컴포넌트를 제공합니다.
이번 안내서에서는 TwinCAT에서 ADS 구성과 기능에 대해 살펴보도록 하겠습니다.
TwinCAT과 ADS
TwinCAT의 디바이스와 ADS 구성도.
ADS Protocol의
구조와 기능.
아래 그림은
ADS Protocol의 구조이며, AMS NetId / Port /
Index group / Index offset / data로
구성되어 있으며 각 항목의 기능을 살펴보도록 하겠습니다.
ADS 디바이스 식별
ADS 각 디바이스는 PortNr와 AMS NetId를 통해 식별됩니다.
AMS Ports
TwinCAT 메시지 라우터 내의 ADS 디바이스는 PortNr라고 불리는 번호로 식별됩니다. ADS 디바이스의 경우
이는 고정 사양이지만 순수한 ADS 클라이언트 애플리케이션(예를
들어 HMI 시스템)은 메시지 라우터에 처음 액세스할 때
가변 포트 번호가 할당됩니다.
다음은 이미 할당되어 있는 AMS Ports입니다.
AMS NetId
네트워크 내의 각 TwinCAT 디바이스는 AMS NetId에 의해 식별됩니다. AMS Net Id는 6옥텟으로 구성됩니다. 첫 번째 4옥텟은 자유롭게 선택할 수 있으며 마지막 2개의 옥텟(일반적으로 1.1.1)은
필드버스 또는 그 이후 디바이스의 서브넷 마스크로 기능합니다.
NetId 설정
로컬 또는 원격 TwinCAT 장치의 AMS
NetId는 TC3 프로젝트의
SYSTEM\Routes\NetId Management에서 설정할 수 있습니다.
또는 AMS NetId는 TwinCAT SysTray -> Router -> Change AMS NetId에서 로컬로 구성할 수 있습니다. AMS NetId를 변경한 후에는 장치를 재시작해야 적용됩니다.
Index group / Index offset
Index group은 AMS 포트 내에
데이터를 구분하며, Index offset은 바이트 단위의 읽기 또는 쓰기 선두를 나타냅니다. 포트 내에 각 디바이스에는 Index group과 Index offset의 규격이 있으며 아래의 사진은 PLC의 Index group / Index offset 규격입니다.
"Index-Group/Offset"
Specification of the PLC services
This
section includes services to access the PLC memory range (%M field).
아래 사진에 있는 Var1 변수는
PLC Memory Range(%M) 영역의 데이터이므로 Index
group은 0x00004020입니다.
TwinCAT에서 생성한 변수는 Project Instance -> Data Area에서 Index
offset을 확인할 수 있습니다. 다른 인터페이스에서 Index
group/offset로 TwinCAT의 변수에 접근할 수 있으며 변수명으로도 접근할 수
있습니다.
ADS를 통한 TwinCAT과 다른 애플리케이션의 통신
아래의
그림은 TwinCAT과 Visual Basic, C++ 등
다른 애플리케이션의 ADS 전송 계층을 보여줍니다. TwinCAT에서
지원하는 DLL, OPC 등의 라이브러리 사용하여 TwinCAT과
다른 애플리케이션과의 데이터를 쉽게 주고받을 수 있습니다.
TwinCAT에서 지원하는 ADS 라이브러리.
TwinCAT은 아래 항목의 라이브러리를 지원하며, 링크를 통해
ADS Sample을 확인하실 수 있습니다.
-
Visual C++ (Beispiele
ADS-DLL, Beispiele ADS-DLL (CE), ADS WebService)
-
Visual Basic (ADS OCX,
ADS DLL, ADS .NET, ADS Script DLL)
-
Microsoft .NET (ADS NET,
ADS WebService)
-
Delphi (Beispiele ADS
OCX, Beispiele ADS DLL, ADS .NET, ADS WebService)
-
Borland C++ Builde (Beispiele
ADS DLL)
-
NI LabVIEW (TwinCAT ADS
DLL, TwinCAT ADS OCX, ADS .NET)
-
NI Measurement Studio (Beispiele
ADS DLL)
-
Flash (Flash)
-
Java (TcJavaToADS, ADS
WebService)
-
Silverlight/Expression (Silverlight,
WPF)
ADS Sample : [링크]
방화벽을 통한 ADS 연결
ADS 장치(TwinCAT Engineering PC, Third
party Scada
시스템 등)가 방화벽을 통해 TwinCAT 런타임과 통신하는 방법을 설명하는 데 사용됩니다
방화벽 규칙 / 포트 필터 설정
ADS 통신을 확립하려면 TwinCAT Runtime에 대한 착신 연결에 대해 다음 규칙을 구성해야 합니다.
ADS Return Code
아래의 사진은 ADS 통신에서 발생하는 Error Code표입니다.
Error Code : [링크]
Global error codes
Router error codes
General ADS error codes
RTime error codes
TCP Winsock error codes
위 내용에 대해 심화 내용이 필요하신 경우, 해당 내용을 댓글로 적어 주시면 다음 연재 시 반영하도록 하겠습니다. 문의사항은 아래 연락처로 연락 부탁드립니다. 전화 :
02-2107-3242 (대표전화, 내선번호 1번: 영업, 내선번호 2번: 마케팅, 내선번호 3번: 기술) 홈페이지 : https://www.beckhoff.com/kr/ 제품문의 : Info-KR@beckhoff.com 기술문의 : support-kr@beckhoff.com |
참고자료
TE1000 | TwinCAT 3 ADS Basics [링크]
TC1000 | TwinCAT 3 ADS [링크]
본 문서의 무단전재 및 재배포를 금지합니다
본 문서는 공식 매뉴얼이 아닌, 교육용 참고자료임을 명시합니다
2022.04.19
Beckhoff Korea / Henry Lee
댓글
댓글 쓰기