[쉽고 간단한 안내서] 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 )를 독립된 장치로 취급합니다. 디바이스 별로 소프트웨어 모듈('서버' 또는 '클라이언트')이 있으며, 시스템 내 서버는 소프트웨어 형태로 동작하는 '디바이스'이며, 해당 동작은 하드웨어 디바이스와 완전히 동일합니다. 「클라이언트」는, 「서버」의 서비스를 요청하는 프로그램입니다. TwinCATADS 기반의 캠 컨트롤러, 오실로스코프, 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 각 디바이스는 PortNrAMS 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 groupAMS 포트 내에 데이터를 구분하며, 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 group0x00004020입니다.



TwinCAT에서 생성한 변수는 Project Instance -> Data Area에서 Index offset을 확인할 수 있습니다. 다른 인터페이스에서 Index group/offsetTwinCAT의 변수에 접근할 수 있으며 변수명으로도 접근할 수 있습니다.



 

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

댓글

이 블로그의 인기 게시물

[IPC 메뉴얼] BECKHOFF PC 기본 설정 방법

트라이텍, EtherCAT과 DeviceNet [월간CONTROL 2013/11]

[IPC 메뉴얼] BECKHOFF Device Manager 기본 사용 방법