본문 바로가기

Program/PLC5

[LS PLC / C#] XGB/XGT FEnet Socket 통신 (5) - BIT 통신 [비트단 데이터 참조 방식] 이전글에서 소개했듯 이미 DLL에 구현되어 있지만 막상 사용하면 저는 데이터가 이상하게 들어오거나 읽어지지 않았기 때문에 별도의 방법으로 비트정보를 파악할 수 있는 방법을 소개하겠습니다. 비트단위 자체의 데이터를 참조하여 읽어올 수 있는 수단은 모든 PLC 통신에서 없는 것으로 알고 있습니다. (혹시나 있다면 제가 잘못 아는 것이니 댓글로 알려주세요) 대부분 워드단위나 바이트단위의 데이터를 읽어와서 파싱 해서 사용합니다.LS PLC에서 비트영역을 읽어올 수 있는 영역대가 별도로 존재하는 것인지는 공부가 더필요할 것 같습니다. 그런데 협업을 하는 입장에서 어드레스 맵을 구현 하는데 제어의 의견이 아무래도 많이 반영되다 보니 제어 측이 관리하기 편하게 구성하는 경우가 많습니다.결.. 2024. 3. 14.
[LS PLC / C#] XGB/XGT FEnet Socket 통신 (4) - XGT Socket dll [XGT DLL]통신 뚫기에 급급해서 나중에 안 사실이지만 LS 산전에서는 Ethernet Client Software를 제공한다. 참 얼탱이 없는 사실에 이 이후로 뭔갈 하기 전에 좀 더 자세히 써치 하는 습관이 들었다. 우선 구현해 놓은 로직은 그대로 사용하고 추가로 개발하는 경우 사용하였다. 예상대로 너무너무 편했다. 알아서 enum구현도 해주고 에러도 뱉어주며 바이트 뒤집기를 일일이 신경 쓰지 않아도 된다. 크리티컬 섹션도 구현되어있으며 디폴트로 연결 종류에 따라 헤더도 자동 구성된다. [Download 경로 및 주의사항]다운로드 경로는 여기 있다.주의할점은 XGK와 XGI CPU 소켓통신은 지원하지만 소형 PLC인 XBM-DN323H2, XBC 등은 지원하지 않는다. 소형 PLC의 경우에는 라이.. 2024. 3. 12.
[LS PLC / C#] XGB/XGT FEnet Socket 통신 (3) - Data Read Write [XGT Socket Read Write]지난번에 헤더까지 작성하고 LS PLC를 언급하는 걸 잊어먹고 있었습니다. 다시 이어서 작성하는 LS XGT Socket 통신입니다. Read Write 헤더까지는 알아봤고 이제 데이터를 쓰고 읽고를 해봅시다. 필자는 집이나 회사에 LS PLC가 없어서 자세한 내용은 캡처하지 못하니 소스를 첨부드리겠습니다. 필요하신 분은 메일 적어주시면 보내드리겠습니다.[XGT Socket Read]데이터 읽는 부분입니다.12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777.. 2024. 3. 6.
[LS PLC / C#] XGB/XGT FEnet Socket 통신 (2) - Header구성 이전글에서 XGB와 XGT 차이점, 그리고 대체 내 소켓프로그램은 왜 쓰레기값을 들고 오는가에 대해 잠깐 살펴봤다. 뭐 쓰레기값이던 말든 뭔가 들고 오는 거 자체가 안 되는 사람도 있을 테니까 그 사람들을 위한 정보부터 소개한다. 대부분의 PLC 소켓통신이 그렇듯 소켓에 헤더를 달아서 보내줘야 PLC도 헤더를 참조해서 리시브를 던져준다. (근데 이놈은 왜 막 주고 난리..) 헤더 타입에는 총 네구간이 있는데 중요한 건 'Company Header'와 'Data Type', 'Data' 세 가지이다. 쓰다 보니 다 중요하네? Company Header에는 통신하고자 하는 PLC 정보가 포함된다. Data Type과 Data는 이전 문서에서도 설명 했듯 연속으로 읽어올 경우 Byte로 구현해야 하기 때문에 .. 2023. 10. 24.