[9편] LS PLC Cnet으로 RS232와 RS485통신으로 모드버스(MODBUS) RTU 프로토콜로 원격제어하기 2편!(녹칸다의 내맘대로 PLC 시리즈)
프로그래밍/LS산전PLC 2023. 6. 14. 23:09https://youtube.com/live/Wb6Dbgf3GJI
[9편] LS PLC Cnet으로 RS232와 RS485통신으로 모드버스(MODBUS) RTU 프로토콜로 원격제어하기 2편!(녹칸다의 내맘대로 PLC 시리즈)
녹칸다의 내맘대로 PLC시리즈이다!
이번 시리즈는 아래 구글 슬라이드에 설명자료를 작성하도록 한다!(모두에게 공유되어있음)
https://docs.google.com/presentation/d/1c5YLf60WR_41MiQoi98iuQQTgTxfjQfBKBZt6dUz8R0/edit#slide=id.g22956733dec_0_0
녹칸다는 아두이노 코딩하는 유튜버이다!
이번 시리즈는 아래와 같은 주의사항이 있다!
1.녹칸다는 PLC에 대해서 잘 모름(가장 중요)
2.아두이노로 코딩하던 사람이 PLC를 바라보는 관점으로 입문자용 자료를 만듦!
3.그러므로 PLC를 정석으로 하고자 하는 의도는 전혀 없음!
4.녹칸다가 가진 PLC CPU는 레더로직(LD)과 ST언어 2가지로 제어가 가능함!
5.레더로직은 전혀 이해가 안되어서 몇가지 샘플만 구동해보는 것으로 마무리 함!(대충 이렇게 하는구나~ 정도 수준)
6.ST언어는 약간 이해가 되므로 아두이노 코딩하는 전략을 기반으로 해서 다양한 예제를 만들어 보도록 함!
7.그러나 녹칸다가 ST언어로 코딩할 내용이 “실제로 이렇게 해도 되는건가?” 는 보장하지 못함, “결론적으로 작동이 됨”에 초점을 맞추도록 함!
8.진행중 잘못된 설명이 있으면 녹칸다에게 알려주면 감사!
8편에서 녹칸다가 LS산전의 PLC인 XEM-DN32H2를 이용해서 원격으로 제어하는 예제를 구현했었다!
LS PLC의 Cnet에서 RS485통신을 활용하는 것이었다!
8편에서 녹칸다는 아래 2가지 내용을 스킵하고 넘어갔었다!
1.MODBUS 프로토콜에 대해서 이미 알고있다!
2.C#윈폼의 사용방법을 이미 알고 있다!
그때 LS PLC에 ST언어로 작성된 프로그램과 메모리를 MODBUS로 원격제어 하겠다는 목표를 세웠었다!
(그렇지 않으면 충분한 시간내 내용이 완성이 안될 것 같았음)
그러나 가만 생각해보면 어떻게든 잘 모르는 사람을 입문하도록 하기 위해서는 상기 1,2번의 내용을 무시하고는 넘어갈 수 없을것 같다!(그게 맞지 않겠냐는 피드백도 있었음)
그러므로 8편에서 내용은 전체적인 흐름을 판단하는데 활용하고(아~ 저렇게 작동되는 거구나)
이번에 할 9편에서는 MODBUS프로토콜과 C#윈폼의 기본 사용방법과 더해서 C#의 NMODBUS4라이브러리를 활용하는 방법에 대해서 조금더 다뤄 보고자 한다!
즉 8편과 9편의 순서가 약간 바뀐셈이 되는데 결과를 먼저보고 과정을 보는 형식이라고 이해하면 될 듯하다!
(라이브방송에서 구현한 LS PLC 예제)
1.LS PLC의 %QX0.0.0에 램프를 1개 연결하고 마스터장비에서 modbus로 on/off할 수 있도록 하시오!(라이브러리 사용 안하고 로우레벨 통신)
2.LS PLC의 %QX0.0.0에 램프를 1개 연결하고 마스터장비에서 modbus로 on/off할 수 있도록 하시오!(라이브러리 사용)
3.%QX0.0.0에 연결된 램프를 on/off하고 %IX0.0.0에 버튼을 연결해서 버튼의 눌려짐 상태를 read coils/inputs로 읽어오시오!
4.read/write register를 실습하는 코드를 구현하시오!
5.PLC의 읽고쓰기겸용 레지스터에 0번지와 1번지에 동시에 값을 읽고쓰는 예제를 구현하시오!
6.PLC의 읽고쓰기겸용 코일의 0번과 1번을 동시에 on/off하시오!