본문 바로가기
카테고리 없음

[팁] Works2 RS-232C 시리얼통신 예제+485배선

by 차후 2021. 1. 5.
728x90
반응형

안녕하세요. 도움이 되고자 팁을 작성하려고 해요.

경력이 얼마 안되어 부족한 부분이 있을 수 있어요.

 

■ 주제 : GX Works2로 시리얼통신 프로그램 연습하기

■ 모듈

 - Q63P DC24V전원

 - Q03UDECPU

 - Q38B 베이스

 - QJ71C24N-R2(또는 QJ71C24N) 시리얼통신모듈

 - 시리얼 통신을 할 모듈 : Leuze RF리더기 RFM62SL200

 

■ 프로토콜 확인

 - 시리얼 통신을 하기 위해서는 제일먼저 시리얼 통신을 할 모듈의 매뉴얼(사양서)을 찾는 것 입니다.

 - 찾는방법 : 구글링(http://www.google.co.kr), 제조사 홈페이지에서 다운받기, 모듈 구입업체에 문의하여 받기

 - 찾은결과

 - 매뉴얼을 찾아보니 송신 프로토콜이 위와 같네요.

송신프로토콜 : <STX>+<CR><LF>

수신프로토콜 : <STX>수신내용<CR><LF>

 

■ 아스키코드표 참조

 - 구글에서 아스키코드 치면 많이 나와요. 원하는거로 보시면 돼요.

 - 아래 표를 참조해서 송신프로토콜을 HEX값으로 바꿔보았어요.

 - HEX값으로 바꾼 송신프로토콜 : 02 2B 0D 0A

 

 

이제 실제로 연결을 해야합니다.

 

■ D-Sub 선 준비

 - PLC 시리얼통신모듈에 연결할 D-Sub 커넥터 통신선을 준비해야합니다.

 - 4,6번과 7,8번은 Jump로 연결해줍니다.

 - 2,3번은 Direct 또는 Cross로 연결해줍니다.(모듈마다 다름. 다이렉트일수도 있고 크로스일수도 있고)

 

■ GX Works2 파라미터 설정하기

 - New Project를 하시고, PLC Parameter를 설정합니다.

 - I/O Assignment에서 Read PLC Data로 연결된 모듈의 정보를 불러오고요.

 - 저같은경우 시리얼통신모듈을 2개 꽂아놔서 2개가 검색되었어요.

 - Start XY를 원하는 값으로 설정합니다.

 

■ Intelligent Function Module 설정

 - 인텔리전트 모듈에서 마우스 우측 클릭 후 New Module을 눌러요.

 

 - 시리얼통신 모듈을 선택하고요.

 - 모듈 이름을 맞게 선택하고요.

 - 꽂혀있는 슬롯번호에 맞게 넣어줍니다.

 - CPU옆칸부터 0,1,2... 순서예요.

 

 - 좌측에 QJ71C24N-R2를 클릭하시고, Switch Setting을 눌러요.

 - 매뉴얼에 나와있는대로 통신설정을 해줍니다.

 - Communication protocol setting을 Predefined protocol로 바꿔줍니다.

 

 - Various_Control_Spec에서 Word/byte units spec을 1:Byte Unit으로 변경해줘요.

 

 - 메뉴에서 Tool - Predefined Protocol Support Funcion - Serial Communication Module을 선택합니다.

 

 - 왼쪽상단의 New 아이콘을 눌러주세요.

 - 그리고 아래에 Protocol No의 Add를 눌러줘요.

 

 - Type에서 Add New를 눌러요.

 - 그리구 OK를 누릅니다.

 

 - 송신프로토콜을 입력하기 위해 Element Unset을 눌러줍니다.

 

 - 아래에 Add New를 누르고 Static Data를 선택하고 OK를 누릅니다.

 

 - Element Name에는 아무거나 쓰시고

 - Code Type은 Hex를 선택

 - Setting Value는 Hex값 송신프로토콜을 적어주어요.

 - OK를 누릅니다.

 - Close를 누릅니다.

 

 - 수신프로토콜을 입력하기 위해 Element Unset을 눌러요.

 

 - Add New를 누르고 Non-conversion Variable을 선택하고 OK를 눌러요.

 

 - Element Name에는 아무말이나 쓰시고요.

 - Fixed Length는 고정값인지 변하는값인지 선택하고요.

 - Data Length는 수신데이터길이를 써줍니다. 넉넉하게 쓰셔도 돼요.

 - Receive Data Storage Area는 수신데이터 영역을 써줍니다.

 - 결론. 수신한 데이터가 D100~D127에 저장돼요.

 - OK를 누르고 Close를 누릅니다.

 

 - Module Read/Write 메뉴에서 Write to Module을 합니다.

 - 만약 에러가뜨면? PLC 통신설정을 했는지 확인하세요.(빼먹었네용)

 

 - 위와 같이 이더넷(랜선) 또는 USB로 연결하면 돼요.

 

 

■ 프로그램 짜기

 - 에 앞서 시리얼통신모듈을 Slot 0번(CPU의 바로옆)에 꽂았다면,

 - 시리얼통신모듈 에러는 X0E 입니다.

 - 에러리셋은 Y0E를 ON하면 에러리셋됩니다.

 

 - 먼저 사전정의프로토콜에 숫자1을 MOV합니다.

 - D2는 어떻게 결정되는지 아래에 보시면 돼요.

 - 자세한 내용은 매뉴얼을 참조해주세요^^

 

 - M100은 그냥 통신 수신할 때 테스트하려고 아무거나 쓴거고요.

 - G.CPRTCL이라는 명령어가 위에서 설정했던 것을 실행하는 명령어예요.

 - U0은 슬롯번호(CPU바로옆부터 0,1,2...) 정확히 말하자면 선두어드레스 번호예요. (예: 선두어드레스가 00C0이면 UC)

 - K1은 위에서 설정했던 Protocol No를 뜻합니다.(아래 그림 참조)

 

 - D0은 에러코드가 저장되고요. D0을 다른것으로 바꾸시면 사전정의프로토콜 D2도 같이 바꾸셔야해요.

 - M20은 수신이 정상적으로 완료되었을시 한번 ON 됩니다.

 

■ 프로그램 최종

 - 끝입니다. 딱 2줄~

 - M100을 누르면 시리얼통신을 합니다.

 

■ 실행해보면..

Alt키 + O + M + B 를 눌러서 Device/Buffer Memory를 확인해보면

 - 위와같이 수신한 값이 D100이후로 저장되는 것을 볼 수 있습니다.

 

■ 수신 받은 데이터를 가공하는 것만 남았습니다~

 

 

이 글 보시면서 따라하시는분이 있을까 모르겠네요 ^^

제가 찾을 땐 정보가 워낙 없어서..

막막하고 또 막막하고 물어볼 곳도 없고 해서 매뉴얼만 들여다 보느라고 답답했었는데요...

시리얼통신에 막막한 분께 도움이 조금이나마 되었으면 합니다.

 

지적할 부분은 지적해주시면 감사하겠습니다.

 

 

^^

 - 17.4.14 추가

485 배선 방법

 

1번 5번 점프선 연결

3번 7번 점프선 연결

 

485 배선 연결방법입니다.

728x90
반응형

댓글