[15편] LS PLC(XEM-DN32H2)의 FEnet과 MODBUS TCP 프로토콜로 노드레드(node-red)에서 원격제어하기!(녹칸다의 내맘대로 PLC 시리즈)
프로그래밍/LS산전PLC 2023. 7. 12. 23:21https://youtube.com/live/pW_WH2QvF6M
[15편] LS PLC(XEM-DN32H2)의 FEnet과 MODBUS TCP 프로토콜로 노드레드(node-red)에서 원격제어하기!(녹칸다의 내맘대로 PLC 시리즈)
녹칸다의 내맘대로 PLC시리즈이다!
이번 시리즈는 아래 구글 슬라이드에 설명자료를 작성하도록 한다!(모두에게 공유되어있음)
https://docs.google.com/presentation/d/1c5YLf60WR_41MiQoi98iuQQTgTxfjQfBKBZt6dUz8R0/edit#slide=id.g1e4ca1a29ee_0_0
녹칸다는 아두이노 코딩하는 유튜버이다!
이번 시리즈는 아래와 같은 주의사항이 있다!
1.녹칸다는 PLC에 대해서 잘 모름(가장 중요)
2.아두이노로 코딩하던 사람이 PLC를 바라보는 관점으로 입문자용 자료를 만듦!
3.그러므로 PLC를 정석으로 하고자 하는 의도는 전혀 없음!
4.녹칸다가 가진 PLC CPU는 레더로직(LD)과 ST언어 2가지로 제어가 가능함!
5.레더로직은 전혀 이해가 안되어서 몇가지 샘플만 구동해보는 것으로 마무리 함!(대충 이렇게 하는구나~ 정도 수준)
6.ST언어는 약간 이해가 되므로 아두이노 코딩하는 전략을 기반으로 해서 다양한 예제를 만들어 보도록 함!
7.그러나 녹칸다가 ST언어로 코딩할 내용이 “실제로 이렇게 해도 되는건가?” 는 보장하지 못함, “결론적으로 작동이 됨”에 초점을 맞추도록 함!
8.진행중 잘못된 설명이 있으면 녹칸다에게 알려주면 감사!
이번편에서는 녹칸다가 활용하고 있는 LS PLC인 XEM-DN32H2의 FEnet으로 MODBUS TCP 프로토콜을 이용한 원격제어를 해보고자 한다!
직전편에서 LS PLC와 제어를 하기 위한 컴퓨터 사이에 RS485통신으로 연결하고 Cnet과 modbus rtu로 제어했다면 이번에는 인터넷으로 제어해보는 것이다!
LS PLC와 컴퓨터 사이에는 인터넷으로 연결된다!
이때 LS PLC는 공유기와 인터넷선으로 연결되어야하고 이것을 이더넷(ethernet)이라고 한다!
무선을 와이파이(wifi)라고 하는 것과 유사한 것이다!
LS PLC를 집에 있는 인터넷 공유기에 이더넷으로 연결하고 컴퓨터도 인터넷 공유기에 접속시켜서 원격제어 하는 것이다!
이때 LS PLC가 서버역할을 하고 컴퓨터가 클라이언트 역할을 수행하게되고 데이터를 송수신하기 위한 프로토콜은 TCP이다!
XG5000에서 간단한 설정을 통해서 LS PLC를 TCP서버로 작동시킬 수 있다!
이때 제어 프로토콜을 지정할 수 있고 이번편에서는 MODBUS TCP이다!
제어컴퓨터에서 MODBUS TCP프로토콜을 활용할 수 있으면 아주 간단히 LS PLC를 제어할 수 있는 것이다!
직전편과 마찬가지로 제어 컴퓨터에 노드레드(node-red)를 이용하고 modbus노드를 활용하도록 한다!
노드레드에서도 클릭 몇번이면 MODBUS TCP를 사용할 수 있는 환경을 갖출 수 있다!
그러면 남은것은 모드버스 프로토콜을 이용해서 제어하는것 뿐인데 RTU나 TCP나 사용상의 큰 차이는 없다!
(라이브방송에서 구현한 LS PLC 예제)
1.PLC의 읽고쓰기겸용 코일중 %QX0.0.0에 파일럿램프를 1개 연결하고 노드레드에서 ON/OFF하는 예시를 보이시오!(write single coil)
2.PLC의 읽고쓰기겸용 코일중 %QX0.0.0에 파일럿램프를 1개 연결하고 노드레드에서 켜져있는지 꺼져있는지 상태를 확인하시오!(read coils)
3.PLC의 읽고쓰기겸용 코일중 %QX0.0.0~%QX0.0.2까지 총 3개의 파일럿램프를 연결하고 개별적으로 ON/OFF하고 일괄적으로 ON/OFF하고 각 램프의 상태를 알수있도록하시오!
4.PLC의 읽기전용코일에 %IX0.0.0과 %IX0.0.1에 누름버튼을 1개씩 연결하고 눌려짐 상태를 읽어와서 화면에 출력하시오!
5.%IX0.0.0의 누름버튼을 누르면 PLC내부의 카운터값이 1씩 증가하고 %IX0.0.1의 버튼을 누르면 1씩 감소할때 노드레드에서 카운터값을 읽어오는 예시를 보이시오!
6.PLC의 %QX0.0.0~%QX0.0.2까지 3개의 램프가 신호등처럼 동작할때 %IX0.0.0을 누르면 신호등이 작동하고 %IX0.0.1을 누르면 작동이 멈출때 노드레드에서 원격제어하시오!
7.예제6번의 결과를 조금더 기술?을 사용해서 미려하게 만들어보시오!