모델: XW540-T260-R
사용중인 소프트웨어: 자사에서 개발. C#으로 개발 중
환경: windows11
안녕하세요. 다이나믹셀을 제어해보려고 하고 있는 초보입니다.
현재 다이나믹셀을 protocol2.0 가이드를 참고하여 패킷을 만들어 TCP 통신하고 있습니다.
다이나믹셀은 직접적으로 cerial ethernet 컨버터를 통해서 LTE와 연결되어있고 C#으로 개발한 프로그램으로 해당 LTE로 연결하여 다이나믹셀을 제어합니다.
그리고 goal position명령어를 통해 다이나믹셀을 원하는 목표만큼 움직이고 그 움직임을 실시간으로 파악하기위해 present position 명령어 패킷을 만들어 0.5초 또는 1초의 간격으로 송신하는 폴링하였습니다. 하지만 생각하는만큼 쉽게 되지 않았습니다.
현재까지 파악한 문제점 및 현황은 아래와 같습니다.
- 다이나믹셀이 아무런 작동도 하지 않을때(goal position 명령을 하지않은 경우) present position을 폴링하면 정상적으로 현재 위치 데이터를 수신받을 수 있어 정상작동 합니다.
- 그러나 다이나믹셀에게 goal position명령을 송신해서 모터가 움직이는 상태로 폴링을 하면 정상적으로 데이터가 어느정도 오는 듯 하다가 랜덤한 시점에 현재 위치 데이터가 오지 않습니다. 한 번 오지 않으면 그 이후에 데이터가 아무것도 오지않고 다른 명령어를 보내도 응답이 없습니다. 그러다가 goal position까지 도착 후 모터가 다시 움직이지 않는 상태가 되면 그 이후 10초~30초 사이에 다시 명령어에 대한 응답이 옵니다.
- 폴링 간격을 0.5초로 한 것이 문제인건가 싶어 1초로도 시도해보았으나 에러가 나는 시점이 좀 더 늦춰지지 않았습니다. 0.5초와 1초 간격의 폴링을 했을 때 에러가 생기는 시점은 차이가 없었습니다.
이 문제는 다이나믹셀 뿐만 아니라 저희가 설계한 구조적으로 잘못되어있을 수도 있습니다… 그러나 저의 실력이 부족함을 감안하시고 조언해주시면 감사하겠습니다.