• 목록
  • 아래로
  • 위로
  • 쓰기
  • 검색

미쓰비스 iQ-F 시리즈 FX5UC 모델 READ 불가ㅠㅠ 도와주세요!!!

  • 으흠
  • 100
  • 9
PLC 기종 미쓰비시 / iQ-F 시리즈 / FX5UC

안녕하세요. 가입하고 첫글입니닷 앞으로도 잘 부탁드리겠습니다^^

 

현재  iQ-F 시리즈 FX5UC, 이더넷, 바이너리로 통신으로 데이터 읽어오기 프로그램을 개발중입니다.(C#)

 

PLC 와 연결은 됐지만 READ 메세지를 보내도 읽어오는 데이터가 없습니다ㅠㅠ 데이터가 있는건 확실합니다!

 

아래는 제가 메뉴얼을 참조하여 작성한 전송 프로토콜입니다.

 

혹시 잘못되어 수정할 부분 알려주시면 감사하겠습니다!

 

            //arrHeader[0] = (byte)(Convert.ToChar(0X35));    //5   서브헤더
            //arrHeader[1] = (byte)(Convert.ToChar(0X30));    //0
            //arrHeader[2] = (byte)(Convert.ToChar(0X30));    //0
            //arrHeader[3] = (byte)(Convert.ToChar(0X30));    //0

            //arrHeader[4] = (byte)(Convert.ToChar(0X30));    //0   네트워크번호
            //arrHeader[5] = (byte)(Convert.ToChar(0X30));    //0

            //arrHeader[6] = (byte)(Convert.ToChar(0X46));    //F   요구대상국번
            //arrHeader[7] = (byte)(Convert.ToChar(0X46));    //F

            //arrHeader[8] = (byte)(Convert.ToChar(0X46));    //F   요구대상유니트I/O번호
            //arrHeader[9] = (byte)(Convert.ToChar(0X46));    //F
            //arrHeader[10] = (byte)(Convert.ToChar(0X30));   //0
            //arrHeader[11] = (byte)(Convert.ToChar(0X33));   //3

            //arrHeader[12] = (byte)(Convert.ToChar(0X30));   //0   요구대상멀티드롭국번호
            //arrHeader[13] = (byte)(Convert.ToChar(0X30));   //0

            //arrHeader[14] = (byte)(Convert.ToChar(0X31));   //1   요구데이터길이
            //arrHeader[15] = (byte)(Convert.ToChar(0X38));   //8
            //arrHeader[16] = (byte)(Convert.ToChar(0X30));   //0
            //arrHeader[17] = (byte)(Convert.ToChar(0X30));   //0

            //arrHeader[18] = (byte)(Convert.ToChar(0X30));   //0   1.리저브? 2.예비?
            //arrHeader[19] = (byte)(Convert.ToChar(0X30));   //0
            //arrHeader[20] = (byte)(Convert.ToChar(0X30));   //0
            //arrHeader[21] = (byte)(Convert.ToChar(0X30));   //0

            //arrHeader[22] = (byte)(Convert.ToChar(0X30));   //0   1.예비? 2.커맨드?
            //arrHeader[23] = (byte)(Convert.ToChar(0X31));   //1
            //arrHeader[24] = (byte)(Convert.ToChar(0X30));   //0
            //arrHeader[25] = (byte)(Convert.ToChar(0X34));   //4

            //arrHeader[26] = (byte)(Convert.ToChar(0X30));   //0   서브커맨드
            //arrHeader[27] = (byte)(Convert.ToChar(0X30));   //0
            //arrHeader[28] = (byte)(Convert.ToChar(0X30));   //0
            //arrHeader[29] = (byte)(Convert.ToChar(0X30));   //0
            //                                                              //    요구데이터부
            //arrHeader[30] = (byte)(Convert.ToChar(0X35));   //5   디바이스번호(7000)
            //arrHeader[31] = (byte)(Convert.ToChar(0X38));   //8
            //arrHeader[32] = (byte)(Convert.ToChar(0X31));   //1
            //arrHeader[33] = (byte)(Convert.ToChar(0X42));   //B
            //arrHeader[34] = (byte)(Convert.ToChar(0X30));   //0
            //arrHeader[35] = (byte)(Convert.ToChar(0X30));   //0

            //arrHeader[36] = (byte)(Convert.ToChar(0X41));   //A   디바이스코드(D)
            //arrHeader[37] = (byte)(Convert.ToChar(0X38));   //8   

            //arrHeader[38] = (byte)(Convert.ToChar(0X30));   //0   디바이스점수(1점)
            //arrHeader[39] = (byte)(Convert.ToChar(0X31));   //1
            //arrHeader[40] = (byte)(Convert.ToChar(0X30));   //0
            //arrHeader[41] = (byte)(Convert.ToChar(0X30));   //0
 

공유

facebooktwitterpinterestbandkakao story
퍼머링크

댓글 9

1등 touro 2024.03.13. 14:03

PLC와 연결되었는데 어디까지인지 알 수 없네요.
SLPM connection 설정은 GX-Works3 프로젝트에서 Project - Parameter - Module Parameter - Ethernet Port - Basic Settings - External Device Configuration에서 할 수 있습니다.
"github c# SLMP"로 검색하면 학습할 수 있는 오픈프로젝트를 받을 수 있으니 참고하시기 바랍니다.

으흠 작성자 2024.03.13. 14:44
touro
답변 감사합니다! 혹시 어디까지인지 알 수 없다는게 무슨 말씀이실지 여쭤봐도 될까요?!
설정과 오픈프로젝트는 잘 참고해보겠습니다 감사합니다 :)
touro 2024.03.13. 16:16
으흠
PLC와 연결이
1) 단지 물리적인 이더넷케이블 연결인지
2) PING 응답을 받은 상태까지의 연결인지
3) C#프로젝트 디버깅상태에서 요구패킷을 전송했을 때 오류메시지를 받은 상태까지의 연결인지
정확한 언급이 없어 상황판단이 안된다는 것이었습니다.
으흠 작성자 2024.03.13. 16:21
touro
넵. Ping 응답은 받은 상태이며, 디버깅했을시에 Receive 패킷에 아무것도 담기지 않았습니닷
touro 2024.03.13. 16:22
touro
PLC-PC 연결이 되면 GX-Works3 메뉴에서 Diagnostics - Ethernet Diagnostics 확인하시면 접속PC의 IP를 확인할 수 있습니다.
으흠 작성자 2024.03.14. 09:40
touro

스크린샷 2024-03-14 093358.png

현재 502번 포트와 연결되어 있습니다. 혹시 SLMP 가 아닌 MODBUS 에 연결되어 있어서 READ 가 안되는 것일까요,,?ㅜㅠ

4999번 포트로 테스트해본 결과 해당 포트는 socket connection 이 되지 않습니다,,

touro 2024.03.15. 00:08
으흠
그림을 보니 PC가 모드버스 502포트에 접속해서 통신하고 있네요.
SLMP 4999포트는 HMI와 접속하고 있으므로 추가로 PC와는 통신할 수 없으니
SLMP connection을 하나 더 추가하고 포트 4998로 통신하면 될 것같습니다.
으흠 작성자 2024.03.15. 08:03
touro
감사합니다!. 시도해보겠습니다
으흠 작성자 2024.03.20. 09:37
touro
안녕하세요! 말씀해주신 방법으로 시도해보니 잘 읽어옵니닷! 도움 감사해요 좋은 하루되세요 :)
권한이 없습니다. 로그인

신고

"님의 댓글"

이 댓글을 신고 하시겠습니까?

삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?