데이터계측분석/데이터통신 기술자료

LabVIEW에서 OPC 사용하기

에이티에스 2023. 2. 22. 19:36
728x90

OPC는 공장 현장의 디바이스, 실험실 장비, 테스트 시스템 픽스처 및 데이터베이스를 포함한 수많은 데이터 소스 간에 통신하기 위한 표준 인터페이스입니다.

장치별 프로토콜 개발에서 중복 노력을 완화하고, 장치 간의 불일치를 제거하고, 하드웨어 기능 변경에 대한 지원을 제공하고, 산업 제어 시스템에서 액세스 충돌을 피하기 위해 OPC 재단은 모든 클라이언트가 모든 OPC 호환 장치에 액세스할 수 있도록 하는 표준 인터페이스 집합을 정의했습니다.

PLC(프로그래머블 로직 컨트롤러) 및 PAC(프로그래머블 자동화 컨트롤러)와 같은 대부분의 산업용 데이터 수집 및 제어 장치 공급업체는 OPC Foundation 표준과 함께 작동하도록 설계되었습니다.

 

COM/DCOM

OPC DA(데이터 액세스) 사양의 기본 계층은 Windows 운영 체제에 대한 다양한 프로그래밍 언어로 프로세스 간 통신을 가능하게 하는 Microsoft의 COM/DCOM 기술을 기반으로 합니다. 최신 운영 체제에서는 프로세스가 캡슐화되어 안정성과 보안이 향상됩니다. COM은 프로세스 간에 로컬 및 원격 프로시저 호출을 허용하는 통신 인터페이스 계층을 제공합니다. DCOM(분산 COM)은 네트워크로 연결된 컴퓨터의 개체 간 통신을 지원하기 위한 COM의 자연스러운 확장입니다.

DCOM은 보안 투명성을 달성하여 클라이언트 또는 구성 요소에서 보안과 관련된 코딩이나 디자인 없이 분산 응용 프로그램을 안전하게 만들 수 있습니다. 이는 DCOM을 사용하여 개발자와 관리자가 각 구성 요소에 대한 보안 설정을 구성할 수 있기 때문입니다. Windows 운영 체제에서 관리자가 파일 및 디렉터리에 대한 ACL(액세스 제어 목록)을 설정할 수 있는 것처럼 DCOM도 구성 요소에 대한 ACL을 저장합니다. 이러한 ACL은 특정 클래스의 구성 요소에 액세스할 수 있는 사용자 또는 사용자 그룹을 나타냅니다.

 

OPC 구현

OPC를 사용하면 클라이언트 및 서버 응용 프로그램이 서로 통신할 수 있습니다. OPC는 산업용 네트워크와 독점 PLC 드라이버 간의 추상화 계층으로 설계되었습니다. OPC 표준은 인터페이스가 클라이언트에 제공할 것으로 예상되는 동작을 지정합니다. 클라이언트는 표준 함수 호출 및 메서드를 사용하여 인터페이스에서 데이터를 수신합니다.

결과적으로, 컴퓨터 분석 또는 데이터 수집 프로그램이 OPC 클라이언트 프로토콜을 포함하고, 산업용 디바이스 드라이버에 연관된 OPC 인터페이스가 있는 한, 프로그램은 디바이스와 통신할 수 있다. 이 사양에는 데이터 제어 시스템 및 애플리케이션 데이터베이스 작업뿐만 아니라 온라인 데이터 액세스, 경보 및 이벤트 처리, 이러한 모든 데이터 소스에 대한 기록 데이터 액세스를 위한 프로토콜도 포함되어 있습니다.

 


데이터 액세스 서버에는 세 가지 부서가 있습니다.

  • 서버 - 그룹 개체의 모든 포함
  • 그룹 - 자신에 대한 정보를 유지하고 포함하고 OPC 항목을 구성
  • Item - 그룹 내에서 보유 고유 식별자를 포함합니다. 식별자는 개별 데이터 원본과 값, 품질 및 타임스탬프 정보에 대한 참조 역할을 합니다. 값은 원본의 데이터입니다. 품질 상태는 장치에 대한 정보를 제공합니다. 타임스탬프는 데이터가 검색된 시간입니다.

OPC 응용 프로그램은 항목 자체가 아닌 OPC 그룹을 통해 모든 항목에 액세스합니다. 또한 그룹에는 OPC 클라이언트에서 데이터 변경 내용을 사용할 수 있도록 하는 속도를 서버에 알려주는 특정 업데이트 속도가 포함되어 있습니다. 각 그룹에 특정한 불감대역은 값이 지정된 불감대역 백분율보다 작게 변경된 경우 값을 거부하도록 서버에 지시합니다.

OPC 서버는 또한 클라이언트에 경보 및 이벤트 처리를 제공합니다. 서버 내에서 알람은 클라이언트에게 특별한 중요성을 지닌 비정상적인 조건, 즉 서버, 그룹 또는 서버 내의 항목의 상태와 관련된 조건입니다.

예를 들어 믹서의 실제 온도를 나타내는 데이터 원본 값이 특정 온도 아래로 떨어지면 OPC 서버는 응용 프로그램이 저온을 제대로 처리할 수 있도록 응용 프로그램에 경보를 보냅니다. 이벤트는 시스템 오류, 시스템 구성 변경 및 운영자 작업과 같이 서버와 클라이언트에 중요한 감지 가능한 발생입니다.

OPC는 또한 원시 데이터 스토리지 서버와 복잡한 데이터 스토리지 및 분석 서버를 포함하여 히스토리 엔진에 의해 저장된 데이터에 액세스하는 방법인 히스토리 데이터 액세스 표준을 통합합니다.

OPC의 이 기능은 독점 데이터베이스 시스템의 상호 운용성을 허용합니다.

 

많은 채널 수 애플리케이션에 이상적인 OPC

제어 시스템의 산업 표준화에 대한 OPC 재단의 명시된 설계, 목표 및 동기는 효율적이고 확장성이 뛰어난 고채널 시스템의 구현을 가능하게 했습니다.

클라이언트 소프트웨어 개발자와 이러한 응용 프로그램의 사용자는 데이터가 그룹으로 구성되고 데이터 요소의 이름 지정 또는 태그 지정이 클라이언트 소프트웨어에 의해 결정되기 때문에 필요에 맞게 조정된 솔루션을 구현하는 데 더 큰 유연성을 갖습니다. 그룹화는 데이터를 더 잘 구성하고 유사한 데이터 집합을 쉽게 참조할 수 있기 때문에 대규모 데이터 원본 집합을 처리하는 데 유용합니다. OPC 애플리케이션에서 태그는 I/O 포인트에 고유 식별자를 제공합니다. OPC 사양에 따라 클라이언트 또는 서버 소프트웨어가 태그 이름 지정을 담당합니다.

소프트웨어는 프로그래밍 방식으로 태그 이름을 지정하거나 사용자 이름 태그를 지정할 수 있습니다. 이러한 유연성은 클라이언트 소프트웨어가 채널 수가 많은 애플리케이션에 맞게 조정된 솔루션을 제공할 수 있는 능력에 중요한 요소입니다.

클라이언트 소프트웨어는 서버가 클라이언트에 새 데이터를 제공하는 속도도 지정합니다. 서버가 데이터 게시를 담당하기 때문에 클라이언트 소프트웨어는 시간이 많이 걸리는 데이터 폴링을 수행할 필요가 없으므로 분석 및 데이터 로깅에 더 많은 시간을 할애할 수 있습니다. 또한 클라이언트 소프트웨어는 대신 새 데이터가 도착할 때까지 기다리는 반응형 개체가 됩니다. 따라서 클라이언트는 이벤트 구동 상태가 되고 큰 데이터 집합을 훨씬 더 효율적으로 처리합니다.

또한 클라이언트는 서버에서 데드밴드를 지정하여 클라이언트가 중요한 데이터를 확인한 다음 중요하지 않은 데이터를 무시할 수 있도록 합니다. 불감대역 백분율은 이전에 기록된 값에서 특정 백분율 이상 변경되지 않는 값을 거부합니다.

중간 불감대 값을 설정함으로써 클라이언트는 클라이언트가 필수적이라고 생각하는 채널에 대한 정보만 수신합니다. 이렇게 하면 클라이언트가 불필요한 정보로 넘쳐나는 것을 방지할 수 있습니다.

이러한 방식으로 클라이언트는 훨씬 더 많은 수의 채널을 모니터링할 수 있습니다.

OPC는 이제 산업 표준이므로 클라이언트 소프트웨어는 사용 가능한 거의 모든 공급업체 장치에 연결할 수 있습니다.

클라이언트 소프트웨어는 이제 많은 유형의 장치와 호환되므로 많은 수의 다양한 장치를 염두에두고 소프트웨어를 설계 할 수 있습니다. 이는 OPC 연결을 사용하여 채널이 많은 애플리케이션 소프트웨어를 구현할 때 개발 소프트웨어에 큰 이점을 제공하는 많은 OPC 특성 중 일부입니다.

 

LabVIEW에서 OPC 사용하기

LabVIEW를 사용하면 개발자들이 OPC 시스템과 통합할 수 있습니다. OPC 클라이언트와 서버를 LabVIEW 어플리케이션에 연결하여 데이터를 공유할 수 있습니다. LabVIEW가 이 작업을 수행할 수 있도록 하는 기본 구성요소는 공유 변수 엔진 (SVE)입니다. SVE는 LabVIEW가 설치될 때 컴퓨터에 서비스로 설치됩니다.

SVE는 NI 게시-구독 프로토콜 (NI-PSP)이라는 독점 기술을 사용하여 공유 변수 업데이트를 관리합니다. SVE에 공유 변수를 배포하면 SVE는 컴퓨터에서 실행되는 별도의 프로세스로 작동합니다.

예를 들어, LabVIEW 또는 VI 실행 여부에 관계없이 컴퓨터가 다시 시작된 후 SVE 항목을 자동으로 사용할 수 있습니다. 또한 SVE는 언제든지 업데이트를 위해 계속 액세스할 수 있으며 중지될 때까지 계속 실행됩니다. 

 

그림 1. 공유 변수 엔진은 OPC 클라이언트 또는 서버일 수 있습니다.

 

OPC의 경우, SVE는 NI-PSP 데이터 항목과 다른 어플리케이션 사이의 중개자 역할을 합니다. I/O 서버를 OPC 클라이언트로 구성할 수 있습니다. 본 기능은 LabVIEW 데이터 로깅 및 감시 컨트롤 (DSC) 모듈에 포함되어 있습니다. SVE를 OPC 서버로 설정하여 NI-PSP 데이터 항목을 네트워크에 게시하여 다른 OPC 클라이언트가 상호 작용할 수 있도록 할 수 있습니다.

 

LabVIEW를 OPC 클라이언트로 사용하기

DSC 모듈은 OPC 기초 OPC 서버 인터페이스를 구현하는 모든 서버와 통신하기 위한 OPC 클라이언트 I/O 서버를 제공합니다. 이를 통해 LabVIEW는 OPC 서버와 상호 작용하는 모든 PLC와 통신할 수 있습니다.

OPC 클라이언트 I/O 서버는 로컬 또는 네트워크 컴퓨터에 설치되어 실행 중인 사용 가능한 모든 OPC 서버를 나열합니다. 그림 2는 LabVIEW와 PLC 간의 통신에 관련된 구성요소의 관계를 보여줍니다.

그림 2. LabVIEW와 SVE는 OPC를 통해 PLC와 통신할 수 있습니다.

 

PLC는 네트워크에 데이터를 게시합니다. OPC 서버 프로그램은 PLC의 독점 드라이버를 사용하여 PLC의 각 물리적 I/O에 대한 OPC 태그를 생성합니다. 내쇼날인스트루먼트는 NI OPC 서버와 OPC 서버 솔루션을 제공합니다. NI OPC 서버에는 업계의 여러 PLC에 대한 드라이버 목록이 포함되어 있습니다.

 DSC 모듈과 함께 제공되는 OPC 클라이언트 I/O 서버는 OPC DA 표준을 사용하여 각 OPC 태그에 연결할 수 있습니다. SVE에서 여러 OPC 클라이언트 I/O 서버를 서로 다른 업데이트 속도, 불감대역 백분율 및 다시 연결 폴링 속도로 구성할 수 있습니다. SVE는 별칭 지정을 활성화하여 다른 공유 변수가 바인딩할 수 있는 각 OPC 태그에 대한 PSP URL을 제공합니다. SVE에 공유 변수를 배포하고 공유 변수가 값을 수신하면, LabVIEW는 VI를 사용하여 공유 변수를 편리하게 읽고 쓸 수 있습니다.

 

OPC 서버로 LabVIEW 사용하기

SVE는 OPC 서버 역할을 할 수 있습니다. 그러나 SVE에는 필수 독점 PLC 드라이버가 포함되어 있지 않으므로 OPC 서버로서의 SVE를 NI OPC 서버와 혼동해서는 안 됩니다. SVE는 네트워크 공유 변수를 가져와 OPC DA 클라이언트가 연결할 수 있는 OPC 태그를 만들 수 있습니다.

이를 통해 LabVIEW VI는 다른 OPC 클라이언트 소프트웨어와 편리하게 통신할 수 있습니다.

그림 3. OPC 서버로서의 SVE

 

SVE를 OPC 서버로 사용하기 위한 일반적인 어플리케이션은 내쇼날인스트루먼트의 데이터 수집 (DAQ) 디바이스와 NI-DAQmx 드라이버를 사용하여 DAQmx 버추얼 채널을 설정하는 것입니다. 이 DAQmx 버추얼 채널은 NI-PSP URL로 참조할 수 있습니다. 따라서 SVE는 네트워크 게시된 공유 변수를 DAQ 디바이스가 읽는 값에 바인딩할 수 있습니다. 그런 다음 SVE는 OPC DA 표준을 사용하여 공유 변수에 대한 OPC 태그를 만듭니다.

이러한 방식으로 OPC 클라이언트는 DAQ 디바이스를 읽고 쓸 수 있습니다. 

728x90
반응형
그리드형