Siemens PLC 프로토콜로 통신할 때, 가끔씩 PLC에서 수신한 상태 코드는 정상이지만 포즈 데이터가 0으로 나타나는 원인은?
문제 설명
Siemens PLC 프로토콜로 통신할 때 PLC가 비전 시스템에게 명령어를 보낸 후 비전 시스템의 로그 창에 포즈 데이터가 이미 전송됨을 표시하고 PLC에서 수신한 상태 코드도 정상을 표시하지만 PLC에서 수신한 포즈 데이터는 0입니다.

원인 분석
PLC는 오류 방지를 위해 주기적으로 포즈 레지스터 데이터를 초기화하지만, 이 초기화 타이밍이 가끔 비전 시스템의 포즈 데이터 기록 시점과 충돌할 수 있습니다.
해결 방법
-
포즈 레지스터를 초기화하는 작업에 대해 별도의 '자동 실행 스텝 번호’를 설정하십시오. 예를 들어, 이미지 캡처 초기화 시에 이를 수행할 수 있습니다.
-
‘MM_Empty_Target’ 기능을 사용하는 경우에도 위의 항목 1에서 언급한 방법을 따라야 합니다(아래 그림 참고).
해당 기능이 지속적으로 활성화되어 있는 경우, 매 스캔 사이클마다 INOUT 인터페이스 파라미터 값을 읽고 씁니다. 포즈가 0인 실행 사이클 중에 비전 시스템이 포즈 데이터를 작성 중인 경우(아래 그림의 Target_Pose 파라미터 참조), 해당 포즈 데이터는 초기화됩니다. -
MM Interface 데이터 블록이 기능 블록의 INOUT 인터페이스 파라미터로 전체 전달되고, 해당 기능 블록이 지속적으로 활성화되어 있는 경우에도 포즈 데이터가 0이 되는 문제가 발생할 수 있습니다. 다음과 유사한 방법을 통해 해당 문제를 해결할 수 있습니다. MM Interface 데이터 블록에 '카메라 제어' 및 '카메라 읽기' 구조체를 추가하고, 이 구조체 데이터를 기능 블록의 OUT 인터페이스 파라미터와 IN 인터페이스 파라미터로 각각 설정하십시오(아래 그림 참고).