2016-10-07 14 views
0

매초마다 OPCDA 서버를 폴링합니다. 이를 달성하기 위해 OPC Foundation의 표준 .NET DLL을 사용합니다.OPCDA 읽기 시간

내 서비스는 OPCDA 서버와 동일한 서버에 있습니다. 그러나, 나의 읽기 시간은 종종 약 900-1000ms입니다. 내 코드 또는 서버 설정에 이상이 있습니까? 약 20 개의 OPCDA 태그를 조사합니다. 그러한 작업의 "표준"응답 시간은 무엇입니까? 아니면 말할 수 없습니까?

+0

더 나은 성능을 얻으려면 HDA를 지원하는 OPC UA 서버로 전환하거나 OPC DA 태그를 OPC UA 노드로 노출하는 OPC UA 게이트웨이를 사용하십시오. –

답변

1

정상적으로 들리지만 데이터의 출처가 무엇인지 모른 채 특정 말을하는 것은 불가능합니다.

+0

더 구체적인 응답을 제공하기 위해 필요한 정보는 무엇입니까? 틀렸어? –

+0

뭔가 ... "오, 예, 다른 쪽 끝은 RS485에서 말하는 하나 이상의 끔찍한 낡은 Modbus 장치입니다 ... 그래, 그게 아마도 통신이 느린 이유 야." –

+0

OPC에서 주기적으로 폴링을 수행하는 것이 좋습니다. 구독을 사용해야합니다. 왜? 장치에서 읽은 시간이 1 초 정도 걸리고 1 초 비율로 폴링하면 읽기 트레드에 처리 작업이 남아 있지 않으므로 읽기 시간의 변동이 즉시 영향을줍니다. 구독을 사용하면 들어오는 알림을 기다린 다음 처리하여보다 안정적인 타이밍을 제공하고 서버가 정기적으로 데이터를 얻는 방법에 대한 최상의 결정을 내릴 수 있습니다. – ZbynekZ

0

서버에서 데이터를 가져 오는 데 사용하는 OPC DA 인터페이스의 설명서와 전달할 매개 변수를 확인하십시오.

동기 읽기를 사용할 경우 서버 측 또는 백엔드에서 문제가 발생합니다 (서버가 실제 데이터를 읽는 데 너무 많은 시간이 필요함).

비동기 읽기 (구독)를 사용하는 경우 '업데이트 속도'와 같은 이름의 매개 변수를 확인하십시오. 새 데이터를 클라이언트에 보내는 빈도를 정의합니다. 예 : 1 초이면 클라이언트는 1 초보다 빠른 새 데이터를 수신합니다.

구독은 모든 OPC DA 버전에서 지원됩니다. 서버가이 인터페이스를 구현하지 않으면 비동기 적으로 읽을 수 없으며 '구현되지 않음'과 같은 오류 코드가 표시됩니다.

0

어떤 OPC 서버를 사용하고 있습니까? 업데이트 속도를 고정 시키거나 클라이언트 업데이트 속도를 존중하는 설정이있을 수 있습니다.