프로그래밍/LS산전PLC

[11편] LS PLC의 FEnet에 이더넷(Ethernet)통신과 모드버스(MODBUS) TCP 프로토콜로 원격제어하기!(녹칸다의 내맘대로 PLC 시리즈)

덕력킹 2023. 6. 21. 23:19
반응형

https://youtube.com/live/O580kTtpfNI

[11편] LS PLC의 FEnet에 이더넷(Ethernet)통신과 모드버스(MODBUS) TCP 프로토콜로 원격제어하기!(녹칸다의 내맘대로 PLC 시리즈)

녹칸다의 내맘대로 PLC시리즈이다!
이번 시리즈는 아래 구글 슬라이드에 설명자료를 작성하도록 한다!(모두에게 공유되어있음)
 https://docs.google.com/presentation/d/1c5YLf60WR_41MiQoi98iuQQTgTxfjQfBKBZt6dUz8R0/edit?pli=1#slide=id.g25406e68b66_0_0 

녹칸다는 아두이노 코딩하는 유튜버이다!
이번 시리즈는 아래와 같은 주의사항이 있다!

1.녹칸다는 PLC에 대해서 잘 모름(가장 중요)
2.아두이노로 코딩하던 사람이 PLC를 바라보는 관점으로 입문자용 자료를 만듦!
3.그러므로 PLC를 정석으로 하고자 하는 의도는 전혀 없음!
4.녹칸다가 가진 PLC CPU는 레더로직(LD)과 ST언어 2가지로 제어가 가능함!
5.레더로직은 전혀 이해가 안되어서 몇가지 샘플만 구동해보는 것으로 마무리 함!(대충 이렇게 하는구나~ 정도 수준)
6.ST언어는 약간 이해가 되므로 아두이노 코딩하는 전략을 기반으로 해서 다양한 예제를 만들어 보도록 함!
7.그러나 녹칸다가 ST언어로 코딩할 내용이 “실제로 이렇게 해도 되는건가?” 는 보장하지 못함, “결론적으로 작동이 됨”에 초점을 맞추도록 함!
8.진행중 잘못된 설명이 있으면 녹칸다에게 알려주면 감사!

이번편에서는 녹칸다가 활용하고 있는 LS PLC인 XEM-DN32H2의 Cnet이 아니라 FEnet을 활용해보도록 한다!
Cnet은 PLC와 원격제어 장비 사이에 유선으로 통신선이 연결되는 것을 말하고 RS232와 RS485통신이 가능하다!
그리고 직전편까지 RS485를 이용해서 제어를 해보았다!

FEnet은 LS PLC를 인터넷에 연결시키고 제어하는것을 말한다!
PLC본체에 보면 이더넷(ethernet)연결 포트가 있는데 인터넷공유기에서 나오는 인터넷선을 여기 연결하면 된다!

그리고 PLC의 적절한 설정을 해주면 외부 프로그램에서 인터넷을 통해 원격제어를 할 수 있게된다!
여기서도 아래와 같이 3가지 프로토콜을 적용할 수 있다!
1.MODBUS TCP
2.MODBUS UDP
3.XGT SERVER

이번편에서는 MODBUS TCP와 MODBUS UDP를 활용해보도록 한다!
왜인지는 모르겠지만 이더넷 제어에서 대표적인 MODBUS는 MODBUS TCP이다!
MODBUS UDP도 작동이 가능하다고 하니 일단 둘다 해보도록 한다!

 

(라이브방송에서 구현한 LS PLC 예제)

예제1) C#에서 modbus 라이브러리를 사용하지 않고 직접 TCP연결을 해서 간단한 제어명령을 전송하는 예제를 구현하시오!(코일 쓰기작업)

 

example11_1.zip
0.01MB
plc11_1.zip
0.04MB

예제2) C#에서 modbus Nmodbus4 라이브러리를 사용하고 TCP연결을 해서 간단한 제어명령을 전송하는 예제를 구현하시오!(코일 쓰기작업)

example11_2.zip
0.01MB
plc11_2.zip
0.27MB

예제3) PLC에 %QX0.0.0~%QX0.0.2까지 3개의 파일럿램프를 연결하고 개별적으로 원격제어하는 예시를 보이시오!(코일의 읽고 쓰기 둘다 확인)

example11_3.zip
0.01MB
plc11_3.zip
0.28MB

예제4) PLC의 읽기전용 레지스터(%MW0)와 읽고쓰기 겸용 레지스터(%MW100)를 제어하는 예시를 구현하시오!

example11_4.zip
0.01MB
plc11_4.zip
0.28MB

예제5)%IX0.0.0버튼을 누르면 PLC의 %MW0의 값이 1씩 증가하고 %IX0.0.1버튼을 누르면 %MW0의 값이 1씩 감소할때 원격제어 프로그램에서 현재 카운터값을 읽어서 화면에 출력하시오!

example11_5.zip
0.01MB
plc11_5.zip
0.27MB

예제6)%IX0.0.0의 버튼을 누르면 값이 0.01씩 증가하고 %IX0.0.1의 버튼을 누르면 값이 0.01씩 감소할때 원격제어 프로그램에서 PLC내부의 값을 모니터링 할 수 있도록 하시오!

example11_6.zip
0.02MB
plc11_6.zip
0.28MB

반응형