아하아멘

아하아멘

채택률 높음

PLC의 통신 데이터가 정상적으로 수신되는데 값이 간헐적으로 이전 값으로 되돌아가는 이유는 무엇인가요?

PLC와 상위 제어장치 또는 다른 PLC가 통신하는 설비에서 통신 오류 경보는 발생하지 않는데, 특정 데이터 값이 가끔 이전 값으로 되돌아가거나 잠시 과거 값으로 표시되는 현상이 나타날 수 있습니다. 통신 상태는 정상으로 표시되므로 단순한 통신 단절만으로는 원인을 설명하기 어렵습니다. 송신 장치와 수신 장치가 동일한 메모리 주소를 여러 프로그램에서 갱신하거나, 통신 갱신 주기와 프로그램 처리 주기가 맞지 않으면 이러한 현상이 발생할 수 있나요? 현장에서 데이터 갱신 문제를 확인하려면 송수신 주기와 메모리 쓰기 위치를 어떻게 추적해야 하나요?

4개의 답변이 있어요!

  • 안녕하세요. 최광민 전기기사입니다.

    통신 연결이 정상이어도 데이터 값이 이전 값으로 되돌아가는 현상은 통신 주기, 메모리 갱신 순서 또는 동일한 데이터에 대한 중복 쓰기 때문에 발생할 수 있습니다. 예를 들어 수신 장치가 통신으로 값을 갱신하는 동시에 PLC 프로그램의 다른 네트워크가 같은 레지스터에 이전 값을 기록하면 값이 일시적으로 되돌아간 것처럼 나타날 수 있습니다. 또한 송신 측의 데이터 갱신 주기보다 수신 측의 읽기 주기가 빠르거나, 여러 데이터 항목이 서로 다른 시점에 갱신되면 화면에서 값이 일관되지 않게 보일 수 있습니다. 점검할 때는 송신 측 원본값과 수신 측 저장값, 통신 갱신 주기, 데이터 타임스탬프 및 동일 메모리 주소를 변경하는 프로그램 위치를 비교해야 합니다. 가능하다면 통신 모니터나 이벤트 기록을 이용해 값이 바뀌는 시점과 프로그램 실행 조건을 확인하는 것이 좋습니다. 통신 오류가 없다는 사실만으로 데이터가 항상 최신 상태라고 판단해서는 안 되며, 장치별 데이터 갱신 방식과 메모리 쓰기 권한을 명확하게 구분해야 합니다. 특히 여러 장치가 같은 데이터를 수정하는 구조라면 데이터의 원본 장치와 갱신 책임을 정해 중복 쓰기를 방지하는 것이 중요합니다.

    채택 보상으로 320베리 받았어요.

    채택된 답변
  • 안녕하세요. 최정훈 전기기사입니다.

    데이터가 예전 값으로 돌아가는건 서로 다른 루틴에서 같은 메모리를 동시에 건드려서 그래요. 그래서 한쪽에서 쓴값을 다른 쪽에서 덮어써 버리니까 값이 튀는거죠. 그리고 통신 주기랑 스캔 주기가 안 맞을 때도 이런 일이 자주 생겨요.

    ​그래서 현장에서 이 문제를 잡으려면 먼저 크로스 레퍼런스로 중복 쓰기를 확인해 봐야 해요. 하지만 그래도 원인이 잘 안 보일수잇죠. 그러면 통신 주기를 꼼꼼히 추적해 보시는 게 확실한 방법인겁니다.

  • 안녕하세요. 김경환 전기기사입니다.

    PLC 통신 데이터가 이전 값으로 되돌아가는 현상은 통신 단절이 없어도 발생할 수 있습니다. 여러 프로그램이나 장치가 동일한 메모리 주소에 값을 기록하게 되면 나중에 실행된 프로그램이 기존 값을 덮어쓸 수 있습니다. 또한 송수신 주기와 PLC 프로그램 처리 주기가 맞지 않으면 오래된 데이터가 일시적으로 표시될 수 있습니다. 원인을 찾으려면 해당 메모리 주소를 기록하는 모든 프로그램을 확인하고, 통신 갱신 주기와 데이터 변경 이력을 함께 추적해야 할 듯 합니다.

  • 안녕하세요. 이대길 전기기능사입니다.

    프로그램 여러 개가 같은 기억 장소를 서로 고치려 하거나 통신 타이밍이 맞지 않으면 값이 자꾸 엉뚱하게 바뀌므로 어디서 이 값을 건드리는지 꼼꼼히 확인해야 한답니다