반응형

https://youtube.com/live/iB7owpJOwdo

[13편] LS PLC(XEM-DN32H2)의 FEnet과 XGT SERVER 프로토콜로 C#윈폼에서 원격제어하기!(녹칸다의 내맘대로 PLC 시리즈)

녹칸다의 내맘대로 PLC시리즈이다!
이번 시리즈는 아래 구글 슬라이드에 설명자료를 작성하도록 한다!(모두에게 공유되어있음)
https://docs.google.com/presentation/d/1c5YLf60WR_41MiQoi98iuQQTgTxfjQfBKBZt6dUz8R0/edit#slide=id.g22b11a18359_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으로 XGT SERVER 프로토콜을 이용한 원격제어를 해보고자 한다!
LS PLC에 이더넷(ethernet)선을 연결하고 MODBUS TCP로 제어하는 예제를 구현했는데 이번에는 프로토콜을 다르게 적용해보는 것이다!

LS PLC는 자체 프로토콜인 XGT SERVER라는 프로토콜을 활용하면 모드버스보다는 메모리를 활용하기에 직관적이다!
그리고 연속되지 않는 메모리를 순서대로 읽어오는 기능은 modbus에서 제공하지 않으므로 이점이 있다고 볼 수있다!

그러나 가장큰 문제는 LS PLC에서만 활용하는 프로토콜이기에 라이브러리가 형성되지 않았다!(제조사에서도 제공하지는 않는듯함)
그러므로 XGT SERVER 프로토콜을 매뉴얼을 참조해서 직접 구현을 해야한다!
이번시간에는 바로 그것을 C#윈폼으로 해보는 것이다!

Cnet의 XGT SERVER와 FEnet의 XGT  SERVER는 완전 프로토콜이 다르다!(같은줄 알고 안심하다가 당황했었음)
어떻게 하면 좋을지 녹칸다와 함께 알아보도록 하자!

 

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

예제1)LS PLC의 %QX0.0.0에 파일럿램프를 1개 연결하고 TCP로 연결한다음 XGT-SERVER프로토콜(개별쓰기)로 ON/OFF하는 예시를 보이시오!

example13_1.zip
0.01MB
plc13_1.zip
0.04MB

예제2)예제1번에서 %QX0.0.0의 켜짐과 꺼짐 상태를 개별읽기 명령으로 상태를 확인하는 예시를 보이시오!

example13_2.zip
0.01MB
plc13_2.zip
0.04MB

예제3)%QX0.0.0~%QX0.0.2까지 파일럿램프를 3개 연결해서 개별/일괄 쓰기/읽기 작업을 수행해보시오!

example13_3.zip
0.01MB
plc13_3.zip
0.05MB

예제4)%MW0에 값을 저장하고 읽어오는 예제를 구현하시오!(부호가 없는 정수)

example13_4.zip
0.01MB
plc13_4.zip
0.05MB

반응형
Posted by 덕력킹
,