본문 바로가기
PLC/LS (XGT)

LS PLC XGB (XBC-DN32U) MODBUS TCP 통신

by 쪼렙엔지니어 2020. 5. 15.
반응형

오늘은 모드버스 통신 두번째 시간으로 MODBUS TCP통신을 연습해 보려고 합니다.

MODBUS TCP통신은 Ehternet을 이용한 Open 통신프로토콜이라고 생각하시면 됩니다.

Searial을 이용한 MODBUS통신프로토콜인 MODBUS RTU는 아래 포스팅을 참조하시기 바랍니다.

https://mech19.tistory.com/42

 

LS PLC XGB (XBC-DN32U) MODBUS RTU 통신

오늘은 MODBUS(모드버스) 통신에 대해 얘기해 볼까 합니다. ​ MODBUS통신은 Searial통신과 Ethernet통신을 이용한 통신프로토콜의 종류중에서 가장 범용적으로 많이 사용되는 OPEN Protocol 입니다. ​ 거��

mech19.tistory.com

그리고 처음 방문하신 분들을 위해 XG5000과 CIMON의 기본 사용법은 참조하실 포스팅을 아래에

링크로 걸어두겠습니다.

https://mech19.tistory.com/20

 

XG5000을 이용한 XGB(XGT) PLC 프로그래밍

PLC의 여러가지 언어들 중 레더언어를 이용하여 프로그래밍 하는 기초를 포스팅 해볼까 합니다. ​ 더불어 XG5000의 시뮬레이터 이용등 좀 더 다양한 사용법도 함께 알아보도록 하겠습니다. ​ XG50

mech19.tistory.com

https://mech19.tistory.com/7?category=807459

 

CIMON 기본작화 및 사용법 (1)

이제 CIMON의 기본 작화 및 사용법에 대해 알아보겠습니다. CIMON은 SCADA이지만 작화 및 사용법은 일반 HMI와 크게 다르지 않습니다. PLC도 한 기종을 배우면 다른 기종도 금방 습득할 수 있지만 HMI나

mech19.tistory.com

https://mech19.tistory.com/8?category=807459

 

CIMON 기본작화 및 사용법 (2)

지난번 포스팅에서는 버튼 하나와 램프 하나로 버튼을 누르면 램프에 불이 들어오는것을 확인했습니다. 다만 버튼을 누르고 있는 동안에만 불이 들어왔었습니다. ​ 이제 이번 포스팅에는 버튼

mech19.tistory.com

 

그럼 본격적으로 시작해 보겠습니다.

LS산전 PLC인 XGB시리즈와 CIMON SCADA의 MODBUS TCP통신입니다.

먼저 XG5000을 실행하여 새프로젝트를 하나 생성합니다.

여기서 먼저 통신설정을 하도록 하겠습니다.

왼쪽 프로젝트 관리창에서 NewPLC [B0S1 내장 FEnet]을 더블클릭하여

아래와 같은 [기본 설정 - FEnet] 페이지를 열도록 합니다.

이 페이지는 XGB PLC의 Ethernet 통신 설정을 하는 페이지입니다.

먼저 국번은 0번부터 시작으로 0번으로 맞추시면 되고, IP주소와 서브넷 마스크를 위와 같이 설정합니다.

그리고 [드라이버 설정]에서 서버 모드를 모드버스 서버로 맞추고 [모드버스 설정]을 클릭해서

아래 모드버스 주소 설정 창을 띄웁니다.

여기서 비트는 M address를 워드는 D address를 사용할 것이므로 상기와 같이 설정하고

확인을 누른 후 빠져나옵니다.

이제 기본적인 통신설정을 모두 완료되었으니 간단한 프로그램을 작성해 보겠습니다.

상기 프로그램은 M0를 ON시키면 D0의 값이 1씩 증가하는 프로그램입니다.

지난번 MODBUS RTU 포스팅에서 작성했던 프로그램과 동작에 대한 결과는 같으나 프로그램은 조금

다른것을 느끼셨을 겁니다.

MODBUS RTU 포스팅에서는 M0에 일반 A접점을 사용한 뒤 증감 명령어를 INCP를 사용하여

M0주소가 ON을 유지하고 있는 시간과 관계없이 ON이 되는 횟수마다 D0값이 1씩 증가되게

만들었었고,

이번 MODBUS TCP포스팅에서는 M0에 Pulse on A접점을 사용하여 증감명령어를 INCP가 아닌 INC를

사용해도 상기와 동일한 결과가 나오도록 만들었습니다.

여러가지 각기 다른 방법을 이용해도 동일한 결과를 만들어 낼 수 있다는 것을 기억해야 하며,

이것에 정답은 없으며 이런 명령어 연습은 직접 많이 자주 해보는것이 가장 좋습니다.

이제 프로그램까지 작성을 완료했으면 PLC에 쓰기를 하고 CIMON을 시작하겠습니다.

CIMOND를 실행하여 새 프로젝트를 하나 생성해 줍니다.

바로 통신설정부터 해보겠습니다.

[도구] - [I/O디바이스] 를 실행하여 아래 I/O 디바이스 설정 페이지를 열도록 합니다.

[새 디바이스]를 클릭하여 디바이스 종류 선택 페이지를 열도록 합니다.

MODICON Modbus TCP를 선택한 뒤 디바이스 이름을 정하도록 합니다.

디바이스 이름은 아무거나 하셔도 상관없습니다.

확인을 누르고 빠져나오면 아래와 같이 디바이스가 하나 생성된 것을 확인 할 수 있습니다.

먼저 [통신포트] 탭을 눌러 통신포트 설정부터 하겠습니다.

소켓 포트 번호는 자동지정인듯 하며, IP 어드레스는 PC의 이더넷 네트워크 어댑터 입력되어 있는

IP 어드레스를 입력 해야 합니다.

PC의 IP 주소를 확인하거나 변경하려면 아래 네트워크 연결에 들어가셔서,

이더넷(PC마다 이름이 다를거에요.)이라고 되어 있는 유선 네트워크 아이콘의 속성을 열면 됩니다.

그럼 아래와 같은 유선네트워크 속성창을 열수 있고, 여기서

터넷 프로토콜 버전 4(TCP/IPv4)를 더블클릭하여 들어가시면 됩니다.

그러면 아래와 같이 입력되어 있는 IP주소를 확인 할 수 있습니다.

이제 다시 CIMON으로 다시 돌아와서 계속 진행 하겠습니다.

통신포트 설정까지 마치고 난 뒤 아래 화면에서 스테이션 추가를 클릭하여 진행 하도록 합니다.

스테이션 추가 버튼을 클릭하게 되면 아래와 같은 스테이션 설정 화면이 나타나게 됩니다.

스테이션 이름은 아무거나 사용하시면 되고, IP address를 설정하겠습니다.

IP 설정 버튼을 클릭하여 아래 IP 어드레스 설정 화면을 열도록 하겠습니다.

여기에 PLC의 IP 어드레스를 입력해야 합니다.

아까 PLC에 설정하였던 IP 어드레스를 입력하도록 합니다.

보조 IP 어드레스에는 서브넷 마스크 값을 넣도록 합니다.

그런데 서브넷 마스크 값을 넣지 않아도 1:1 통신에서는 정상작동 하는것을 확인 했습니다...;;;;

그렇게 하여 스테이션 설정이 완료되고 나면 통신블록 설정을 해주도록 합니다.

통신블록은 MODBUS RTU에서의 내용과 동일합니다.

블록번호는 0번부터 시작하고,

어드레스에서 앞자리 수는 0은 비트 쓰기/읽기, 1은 비트 읽기, 3은 워드 읽기, 4는 워드 쓰기/읽기 라고

생각하시면 됩니다.

상기 화면의 내용은 비트 어드레스 00001번부터 16개의 word를 주고 받고 이것을

0번 블록으로 지정하겠다는 의미입니다. 통신주기는 1초입니다.

상기 화면의 내용은 워드 어드레스 40001번부터 1개의 word를 주고 받고 이것을

1번 블록으로 지정하겠다는 의미입니다. 통신주기는 1초입니다.

이제 밖으로 빠져나오면 아래 화면과 같이 통신블록이 생성된 것을 확인 할 수 있습니다.

이제 저장을 누르고 종료를 눌러 빠져나오면,

스테이션까지 잘 만들어진 것을 아래화면 처럼 확인 할 수 있습니다.

이제 [도구] - [데이터베이스] 를 실행하여 태그를 생성하도록 합니다.

저는 아래와 같이 생성하였습니다.

중요한것은 실제 I/O 어드레스는 모드버스 주소 (M0 -> 00001, D0 -> 40001)를 사용해야 한다는 점입니다.

이제 아래와 같이 M0 버튼과 D0 태그값을 생성하여

CIMONX를 실행해 보면 잘 돌아간다는 것을 확인할 수 있습니다.

오늘은 여기까지 이며, 다음번에는 Ethernet이라는 통신에 대하여 좀 더 이야기 나누어 보겠습니다.

감사합니다.

 

반응형

댓글