문제

저는 Think'n'Do라는 PC 기반 자동화 소프트웨어 패키지를 사용하여 작업하고 있습니다. 피닉스컨택트 실시간 처리, 입력 읽기/제어 논리/출력 쓰기가 모두 최대 50ms 내에 수행됩니다.우리는 10ms마다 PLC에서 태그를 읽고 쓰는 OPC 서버를 가지고 있습니다.PLC에 태그를 쓰고 쓰여진 값을 다시 읽는 데 오랜 지연이 있습니다(Think'n'Do(50ms) > OPC Server(10ms) > PLC(10ms) > OPC Server(10ms) > Think'n'Do (50ms) ) 수학적으로는 130ms밖에 걸리지 않지만 해당 프로세스를 완료하는 데 최대 6초가 걸립니다.

어디를 봐야 하는지, 왜 그렇게 오래 걸리는지에 대한 아이디어가 있으면 도움이 될 것입니다.

도움이 되었습니까?

해결책

이는 데이터를 가져오도록 OPC 클라이언트를 구성한 방법에 따라 다릅니다.OPC에서 그룹을 구독하면 새로 고침 빈도를 지정하게 됩니다.OPC 클라이언트에 따라 기본값은 1초 또는 5초일 수 있습니다.OPC Server가 업데이트되는 데이터의 빈도에 제한을 둘 수도 있습니다.이는 OPC 클라이언트가 데이터 변경 이벤트를 구독하는 경우에만 적용됩니다.

다른 방법은 OPC 서버에 대한 비동기 또는 동기화 읽기/쓰기를 수행하는 것입니다.여러 가지 읽기 모드도 있습니다.OPC를 사용하고 있으므로 OPC 호환 클라이언트를 사용하여 서버를 테스트할 수 있습니다. 그러면 문제가 Think'n'Do의 설정에 있는지 아니면 PLC/서버에 문제가 있는지 알려줄 것입니다.

제가 사용해본 최고의 범용 OPC 클라이언트는 OPC Quick Client입니다.여기에서 TOP 서버를 통해 얻을 수 있습니다: http://www.toolboxopc.com/Features/Demo/demo.shtml.TOP 서버 데모를 다운로드하고 OPC Quick Client를 설치하세요.이를 사용하여 OPC 서버에 연결하고 태그를 찾아보고 데이터가 어떻게 보이는지 확인할 수 있습니다.내가 사용한 두 번째로 좋은 OPC 클라이언트는 ICONICS(OPC Data Spy라고 함)에서 나온 것입니다. http://www.iconics.com/support/free_tools.asp.

OPC 클라이언트를 사용하여 데이터를 얼마나 빨리 읽을 수 있는지 확인하세요.그룹 새로 고침 빈도를 올바르게 설정했는지 확인하세요.내 생각에 도구는 여러분에게 몇 가지 타이밍 정보도 제공할 수 있다고 생각합니다(그러나 여러분은 6초 지연을 꽤 쉽게 알아낼 수 있을 것입니다).

다른 팁

OPC 서버에서 캐시를 사용하지 않는 것 같습니다.일반적으로 OPC 서버에는 캐시가 있습니다. 클라이언트가 연결하고 캐시를 사용하도록 지정하지 않으면 필요한 성능을 얻을 수 없습니다.새로 고침 기준은 OPC 서버마다 다를 수 있지만 OPC 서버는 장치에서 캐시를 새로 고치는 역할을 합니다.

시스템이 동기 읽기(I/O 호출 차단)를 수행하고 애플리케이션의 논리를 구현한 다음 동기 쓰기(다시 차단)를 구현하는 경우 PLC에 대한 왕복이 여러 번 있다는 점을 고려해야 합니다.

동기 읽기에는 App(request)->OPCServer->PLC->OPCServer->App(result)가 포함됩니다.이는 단지 하나의 항목에 대한 읽기입니다(한 번에 항목 그룹을 요청할 수는 있지만).

그런 다음 유사한 동기화 쓰기에도 App(Write)->OPCServer->PLC->OPCServer->App(Done)이 포함됩니다.

비동기식 읽기 및 쓰기와 그룹 읽기 및 쓰기는 애플리케이션 차단을 줄이는 데 도움이 될 수 있지만 애플리케이션이 이러한 비동기식 동작에 대처할 수 있다는 점에 주의하세요.

살펴봐야 할 또 다른 사항은 PLC 구성입니다. Allen-Bradley PLC에는 외부 네트워크를 통한 I/O 요청을 서비스하는 데 사용되는 스캔 간 지연 설정이 있습니다.해당 시간이 짧고 데이터 대역폭이 높으면 속도가 느려집니다.

다음은 살펴볼 몇 가지 장소입니다.OPC 클라이언트 구성, OPC 클라이언트 자체, OPC 서버 또는 PLC 자체.

확인해야 할 사항은 다음과 같습니다.

  1. OPC 클라이언트 구성 - OPC 태그를 추가한 OPC 그룹은 빠른 스캔 속도를 가져야 합니다(예:사용 목적에 따라 100ms ~ 1초).값을 쓰는 행위에서 값이 더 빨리 들어오는지 알 수 있나요?그렇지 않은 경우 DCOM 또는 네트워크 구성 문제가 있을 수 있습니다.
  2. OPC 클라이언트 - 무료 OPC 클라이언트 소프트웨어(아마도 OPC 재단 웹사이트나 주요 OPC 서버 소프트웨어 공급업체에서)를 다운로드하여 값을 더 빨리 돌려받을 수 있는지 확인하세요.그렇다면 클라이언트에 문제가 있을 수 있습니다.
  3. OPC 서버 - 일부 OPC 서버에는 진단 도구가 있습니다.이 기능을 켜고 실제로 쓰기가 발생한 시간과 읽기가 실제로 발생한 시간을 확인하세요.이러한 질문에 답할 수 있다면 지연의 원인이 PLC인지 OPC 서버인지 식별할 수 있을 것입니다.또한 OPC 서버의 CPU 사용량을 관찰하십시오. 평소보다 더 많은 CPU를 사용하고 있는 것으로 확인되면 OPC 서버가 로드되어 성능이 저하될 수 있음을 의미할 수 있습니다.
  4. 기타 - 마지막으로 PLC, 네트워크가 제대로 작동하는지 확인하십시오.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top