미쯔비시PLC 이더넷 통신 설정 - Q06HCPU, QJ71E71-100 사용
- 코딩 팁
- 2017. 3. 11.
미쯔비시PLC를 이용하는 예시입니다. Q06HCPU, QJ71E71-100를 사용했으며, 이 장비를 이용해 통신이 잘 안 된다면, 상대방 장비 스펙을 다시 확인해 주세요.
1. 드라이버 설치
USB 드라이버 설치 (Easysocket)
PC에서 Q06HCPU PLC CPU 모듈을 인식하기 위한 드라이버입니다. 한국 미쓰비시 고객 지원 페이지에서 드라이버 다운합니다.
[MITSUBISHI ethernet 예제] Easysocket.zip 다운로드
설치에 필요한 항목은 Easysocket – USBDrivers에 존재합니다. 폴더 내용 확인하고 바로 드라이버를 설치하세요.
[미쯔비시 plc pc 이더넷 통신] Easysocket.zip 파일 구성
드라이버 설치가 정상적으로 이뤄지면 아래처럼 장치 관리자에서 확인됩니다. (QJ71E71-100 연동할 수 있습니다)
[MITSUBISHI ethernet 예제] Easysocket 설치 후 업데이트
드라이버 설치 확인 (Gx Work2에서 Q06HCPU 확인)
GX Work2를 실행하고 아래 순서에 맞춰 프로젝트를 생성하세요.
1. Gx Work2에서 프로젝트 – 프로젝트 새로 만들기 클릭
1-1. 프로젝트 종류 – 심플 프로젝트
1-2. 미쯔비시PLC 시리즈 – QCPU(Q 모드)
1-3. 미쯔비시PLC 타입 – Q06H
1-4. 프로그램 언어 – 래더
2. 프로젝트 생성 후 좌측 메뉴에서 내비게이션->접속 대상 선택
Connection1 더블 클릭
- Serial USB – PLC Module – No Specification 선택
- 통신 테스트 클릭해서 아래처럼 성공 메시지 확인
[MITSUBISHI ethernet 예제] Q06HCPU와 통신 테스트
2. Q06HCPU 이더넷 통신 설정
통신 설정 (이더넷 설정)
파라미터 – 네트워크 파라미터 – Ethernet / CC IE / MELSECNET 더블 클릭하세요. 이 화면에서 각종 네트워크 설정이 필요합니다.
[미쯔비시 plc pc 이더넷 통신] 네트워크 파라미터 설정
이어서 아래처럼 초기 값 설정 후 동작 설정을 클릭합니다.
PLC CPU 모듈이 처음 구동될 때 QJ71E71-100을 설정하는 내용이죠. 아스키 – 바이너리 통신 전환도 이 메뉴에서 설정할 수 있습니다.
[MITSUBISHI ethernet 예제] Ethernet 동작 설정
TCP 설정
동작설정 아래 아래의 오픈 설정을 눌러 아래의 화면 띄웁니다.
Unpassive 방식은 누구와의 Q06HCPU가 통신도 가능케 하겠다는 의미이고요. 송수신 버퍼는 별도로 설정합니다.
PLC 파라미터 설정
TCP 설정을 해도 CPU 모듈에서 이를 활용할 사항을 추가로 설정하지 않으면 이더넷 모듈은 사용하지 못합니다.
Gx Work2 좌측의 파라미터 – PLC 파라미터를 더블 클릭하세요.
I/O 할당 설정란
우측 하단의 미쯔비시PLC 데이터 읽기 클릭합니다.
0번 슬롯에 꽂혀있는 QJ71E71-100 이더넷 모듈을 Q06HCPU로 인식시키는 것이죠. 데이터 읽은 후 맨 아래의 체크를 눌러 이상 상태 확인합니다.
[미쓰비시 plc pc 이더넷 통신] PLC 데이터 읽기 클릭
[MITSUBISHI ethernet 예제] PLC 쓰기 성공 화면
아래 그림처럼 빠른 실행 아이콘 중 미쯔비시 PLC 쓰기 클릭합니다. 그러면 우측의 화면이 보이게 돼요.
앞에서 설정한 파라미터를 포함해 프로그램들을 Q06HCPU 모듈에 써서 해당 사항을 적용시킵시다.
[미쓰비시 plc pc 이더넷 통신] GX Work2 PLC 쓰기 클릭
정상적으로 실행되면 우측 그림처럼 완료 메시지 확인이 됩니다.
QJ71E71-100 설정이 완료되면, 장비의 스위치를 이용해 Reset 해야 설정이 적용되니 주의하시고요.
[MITSUBISHI ethernet 예제] GX Work2 PLC 쓰기 완료
3. 데이터 확인 / 변경
디바이스 제어
R0을 넣은 뒤 엔터를 누르면 R 영역의 0번지로 화면이 전환됩니다. (QJ71E71-100와 데이터 통신 가능한 상태)
[미쓰비시 plc pc 이더넷 통신] PLC 디바이스 제어
표시 형식을 전환하여 다른 유형으로 상태를 확인할 수도 있죠.
[MITSUBISHI ethernet 예제] 디바이스 표시 형식 변경
B 영역의 타입은 Bit입니다.
B 영역으로 이동 후 우측란을 더블 클릭하면 해당 디바이스 번지의 값을 설정할 수 있어요.
[미쓰비시 plc pc 이더넷 통신] 디바이스 현재값 변경창
표시 형식을 바꾸면 다른 자료형으로 확인할 수 있습니다.
[MITSUBISHI ethernet 예제] PLC 디바이스 표시 형식 변경
4. 실습
데이터 읽어보기
W0 영역에 234를 설정해 봅니다.
MELSEC Communication Protocol 문서 참조
관련 글
MELSEC PLC NET 메뉴얼과 DLL 사용 (멜섹 c++, 네트워크, 통신)
PLC 프로그래밍, ES:0180502 오류 해결 방법 2가지
PLC - MODBUS ASCII와 RTU의 차이 (모드버스 프로토콜)
-
한주현2017.05.29 12:07
감사합니다~ 많은 도움이 됬습니다ㅎ
-
2017.05.29 21:55 신고
우리 열심히 해보아요~ ㅎ
-
-
김희태2017.05.30 08:45
감사합니다~~
-
2017.05.30 21:41 신고
ㅎㅎㅎ 저도 감사합니다.
-
-
놀라워라2018.10.01 22:56
저기요 사장님 QJ71E71-100 설정중 아스키-바이너리설정은 차이가 뭔가용 ..
아스키와바이너리가 뭔지는 알지만 어떤 설정은 바이너리 방식을하더라구요 ..
장비가 쓰는거만테스트하니 차이를 잘모르겠네요 ..-
2018.10.02 09:04 신고
아스키는 문자, 바이너리는 숫자라는 점이 중요하고요. 통신 대상에 따라 아스키-바이너리 설정은 바뀔 수 있습니다.
아마 대상 장비가 바이너리로 통신하나 봐요. 대상 장비를 살펴보셔야 합니다.
-
-
놀라워라2018.10.04 11:47
사장님 감사합니다.
통신연결 잘되었습니다 ㅎㅎ
감사합니다 !!-
2018.10.04 18:03 신고
네~ 사장님~ 짜릿하게 잘 되셨죠?~ 수고하세요~
-
-
kim2019.05.21 17:00
컨넥션1 에서 설정을 어떻게 잡아줘야하는지 알려주실수있나요 ㅠㅠ
-
2019.05.21 17:40 신고
설정은 장비마다 다릅니다. 장비 메뉴얼을 보셔야 돼요.
-
-
23212019.05.22 09:19
자국포트는 임의 설정인가요?
-
2019.05.22 09:24 신고
네. 이 역시 장비마다 설정 방법이 다르므로, 위 포스트대로 따라했음에도 잘 안 된다면 다른 옵션 보셔야 합니다.
-
-
김도호2019.09.06 16:40
500000FF03FF000018001004010000W*0000000003
로 보내면
D054 로 응답이 돌아 옵니다
D054 가 무슨 원인 일까요 ????
찾아 볼수가 없네요
-
2019.09.07 22:42 신고
문서를 봐야 아는데 제가 볼 수가 없는 상황이네요;;;;;;
-
-
김도호2019.09.06 16:47
문의 드립니다
<조건>
PLC : network 1 ,국번 2
D2290번지에서 36 워드 읽음
아래 코드에서 위 상태 만족하는 부분을 어떻게 수정 해야 할까요????
length of demand data 의 길이는 어떻게 구하나요 ?????
아래 코드는 3E 프레임 형태 입니다
위 조건을 "1E 프레임"의 형태도 표시가 될까요 ???
=================================================
cmd = "";
cmd = cmd + "5000";//sub HEAD (NOT)
cmd = cmd + "00";// network number (NOT) -- 00->01 수정
cmd = cmd + "FF";// PLC NUMBER
cmd = cmd + "03FF";// DEMAND OBJECT MUDULE I/O NUMBER
cmd = cmd + "00";// DEMAND OBJECT MUDULE DEVICE NUMBER 00->01 수정
cmd = cmd + "0018";// Length of demand data
cmd = cmd + "000A";// CPU inspector data
cmd = cmd + "0401";// Read command
cmd = cmd + "0000";// Sub command
cmd = cmd + "D*";// device code
cmd = cmd + StartAddress; //adBase 000000
cmd = cmd + EndAddress; //BASE ADDRESS 0003
SData = Encoding.ASCII.GetBytes(cmd);
//데이터를 송신。
ns.Write(StringToByte(cmd), 0, StringToByte(cmd).Length);
-
2019.09.07 22:42 신고
글쎄요. 제가 plc를 다루지 않아서 .....;;;;
-
-
나그네2021.06.07 11:58
누가 불펌한거 같은데 확인 좀 해보세요
https://m.blog.naver.com/mmmmv/221658999972
이상한 링크 아닙니다.
검색하다보니 이사이트랑 내용이 똑같습니다.-
2021.06.07 14:31 신고
쩝;;; 그대로 복사해서 붙여넣기 했네요. 이래서 제가 복사방지를 걸긴 했는데 ... 피곤하게 살기 싫어서 알아도 놔둡니다. ㅎㅎㅎ
-