CAFE

PLC간 이더넷 통신_수신 데이터 이상 질문입니다.

작성자우이쒸|작성시간12.05.14|조회수2,549 목록 댓글 2

PLC-PLC 이더넷 통신을 하고 있습니다.

통신 방식은 고정버퍼에 의한 교신 (무수순) 방식입니다.

 

문제점은 A PLC -> B PLC로 송신 데이터는 설정값 20 Byte로 송신 & 수신이 잘 되나,

B PLC -> A PLC로 송신 데이터는 설정값 20 Byte로 되어 있으나, A PLC로 수신되는 데이터는 20 또는 40 또는 60 Byte로

수신이 됩니다.  20 Byte씩 수신이 되어야 하나 같은 데이터를 2~3번 연속적으로 읽습니다.

 

참고로 A PLC CPU는 "Q12H" 이고, B PLC는 "Q06UDEH"입니다.

속도가 빠른 B PLC를 A PLC가 못 따라가나 의심도 해 봤는데, 프로그램 분석해 보면 그것도  아닌 것 같습니다.

프로그램 캡쳐해서 올립니다.

 B PLC 송신부

 

 

A PLC 수신부

 

 

추가적으로 위 증상으로 인하여 A PLC 버퍼메모리 5760 (커넥션 5 수신 데이터 길이)를 강제로 20으로 설정 후 BUFRCV 명령 실행시 맞게 동작 됩니다. 하지만 버퍼메모리 5760은 읽는 영역인데, 강제로 값을 바꿔서 사용해도 문제가 없는지 궁금합니다.

 

매뉴얼 상에는

"""""""""(2) 고정 버퍼에 의한 교신(무수순)의 경우
무수순에는 스테이트먼트데이터 길이가 없으므로, 수신한 데이터는 그대로
수신 버퍼 영역에 저장됩니다.
수신측에서 어플리케이션 데이터의 바이트수나 데이터 종류 등을 알 수 있
도록, 스테이트먼트의 어플리케이션 데이터 중에 데이터 길이나 데이터 종
류 코드를 포함시키는 등의 체크 수단을 마련할 것을 권합니다.""""""라고 나오는데

스테이트먼트의 어플리케이션 데이터 중에 데이터 길이나 데이터 종
류코드를 어떻게 추가하는지에 대한 방법은 찾지 못 했습니다.

 

고수님들의 조언을 부탁 드립니다.

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자freeman | 작성시간 12.05.16 차라리 Melsec-Net를 이용하여 Data를 서로 읽는 방법이 나을것 같습니다.
    Ethernet이 연결 되어 있으면 가능한 방법으로 서로 IP를 입력하면 전용 명령으로 간단히 처리가 가능합니다.
    더 궁금하시면 Sample Program 보내드립니다. 하지만 GX-Work2f로 작성이 되어 있습니다.
  • 작성자우이쒸 작성자 본인 여부 작성자 | 작성시간 12.05.17 freeman 님 조언 감사합니다.
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼