2023. 3. 13. 20:52ㆍplc 시뮬레이션 제작 (Unity)
앞서 포스트한 글에서와 같이 Gx-Work2의 시뮬레이션 기능을 Unity 프로그램을 이용하여 시뮬레이션을 가시적으로 구현하고자 하였고, 일차적으로 완료하였습니다.
관련 내용은 (Unity 3d) Plc시뮬레이션 작업 일기 ①에 올렸으니 참고하시면 됩니다.
2023.03.13 - [plc 시뮬레이션 제작 (Unity)] - (Unity 3d) Plc시뮬레이션 작업 일기 ① 기존 제작 프로그램
■ plc 시뮬레이션 제작 관련 프로그램 목록
- Gx-works2
- Mx-component
- 솔리드웍스
- blender
- Unity
- Visual Studio
시뮬레이션 제작을 시작했던 주 목적은 plc를 배우고 싶거나, 자동화 관련 자격증을 공부하는데 도움을 주기 위해서였습니다.
plc 래더프로그램은 온라인상으로 구할 수 있어서 연습에 사용할 수 있지만, 실제 구동을 확인하기 위해서는 plc가 필요한데, 따로 자격증 학원에 다니지 않는 한 일반적으로 plc에 접근하기 어려운 것이 현실입니다.
그래서 제대로 시뮬레이션을 하지 못하는 학생들을 위해 pc로 동작하는 시뮬레이션을 제작하게 되었습니다.
대상 프로그램은 gx-woksr2를 사용하는 미쓰비시 plc이고, gx-work2 프로그램만 있으면 plc 가 없어도 자신의 래더프로그램을 시험동작할 수 있도록 하였습니다.
기존 유니티 시뮬레이션은 Mx-component(이하 MX)의 ActUtlType64Lib.dll 을 이용하여 GX-works2와 유니티를 직접적으로 연결하는 식이었습니다.
시뮬레이션 프로그램 제작에 사용한 최신 버전의 유니티는 64비트 환경에서만 동작하기에 필연적으로 Mx의 버전이 5 이상이어야 했습니다.
하지만 현재 gx-works2와 MX-component를 다운받을 수 있는 곳에서 구할 수 있는 MX의 버전은 4이고,
Mx 4버전에서 제공하는 .dll파일은 32비트 파일로 유니티와 호환이 되지 않습니다.
그래서 제작한 시뮬레이션의 보급성을 높이기 위해 32비트 환경에서 동작할 수 있도록 수정하는 한편, GX-works2와 유니티를 직접적으로 연결하면서 발생하는 성능저하를 개선하고자 하였습니다.
이전 포스트에서 설명했던 것처럼 유니티 환경내에서 최적화를 하였지만, 여러 한계점으로 인해 여전히 끊김과 간헐적인 프레임 드랍이 발생하였고, 최적화를 위한 통신간격을 조절하면서 0.5초 간격을 가지는 플리커 회로(sm412)는 시뮬레이션으로 구현할 수 없다는 단점이 있었습니다.
그래서 Visual Studio를 사용하여 .Net 윈폼을 제작해 modbus 통신으로 Gx-works2와 유니티 시뮬레이션 사이를 중계할 수 있도록 했습니다. .Net 윈폼에서는 32bit .dll 파일을 사용할 수 있었기에 ActUtlType64Lib.dll가 아닌 ActUtlTypeLib.dll을 사용하였습니다.
프로그램 개선 작업 1일차였지만.. 작업일기을 밀려서 한번에 쓰고 있는데다가 1일차 작업내용을 2일차에 간략히 적은게 전부여서 간단히만 설명하자면 1일차 작업한 내용은 다음과 같습니다.
작업 1일차 (23.03.09. 목요일)
- Visual Studio 에서 .Net 윈폼 디자인 시작
- 코딩
- 실행후 오류, 버그를 고치기 위한 코드 수정
'plc 시뮬레이션 제작 (Unity)' 카테고리의 다른 글
이전에 만들었던 UNITY 3D, MODBUS, PLC 시뮬레이터 링크 저장용 (0) | 2023.06.24 |
---|---|
(Unity 3d) Plc시뮬레이터 작업 일기 ⑤ .Net winform 코드 수정 (0) | 2023.03.14 |
(Unity 3d) Plc시뮬레이터 작업 일기 ④ Unity 스크립트 수정 (2) | 2023.03.14 |
(Unity 3d) Plc시뮬레이터 작업 일기 ③ Visual Studio .Net winform제작 (0) | 2023.03.13 |
(Unity 3d) Plc시뮬레이터 작업 일기 ① 기존 제작 프로그램 (0) | 2023.03.13 |