Q&A

원호 보간 문의

  • 조현상
  • 2023-05-24
  • 2,946

PCI-N404 보드를 사용하여 연속 보간을 사용하고 있습니다. 

연속 보간중 원호보간이 원이 반듯한 원이 아니고 살짝식 찌그러지는 원이 그려집니다. 

 

           

            int lCoordinate = 0;

            uint lSize = 2;
            int[] lRealAxesNo = { 0, 1};

            // 기존의 연속 보간데이터들은 삭제한다.
            CAXM.AxmContiWriteClear(lCoordinate);

            CAXM.AxmContiSetAxisMap(lCoordinate, lSize, lRealAxesNo);

            // 0번 좌표계를 절대위치구동으로 설정한다.
            CAXM.AxmContiSetAbsRelMode(lCoordinate, (uint)AXT_MOTION_ABSREL.POS_ABS_MODE);
            // 보간큐 등록시작
            CAXM.AxmContiBeginNode(lCoordinate);

 

            double[] dCenPos = { 0, 0 };            

            CAXM.AxmContiSetAbsRelMode(lCoordinate, (uint)AXT_MOTION_ABSREL.POS_ABS_MODE);    

            double dVel = 1000;
            double dAcc = 200;
            double dDec = 200;

            double angle = 360;
            if(dVel != 0)
            {
                uint uCWDir = 0;                                          // [0] Cw방향, [1] Ccw방향 
                if (angle < 0)
                {
                    angle = Math.Abs(angle);
                    uCWDir = 1;
                }
                
                //if (angle < 0) uCWDir = 1;

                CAXM.AxmCircleAngleMove(lCoordinate, lRealAxesNo , dCenPos, angle, dVel, dAcc, dDec, uCWDir);
            }

 

            // 보간큐 등록 끝
            CAXM.AxmContiEndNode(lCoordinate);

            // 보간큐 시작!
            // (0): 속도 지정   보간모드
            // (1): 노드 가감속 보간모드
            // (2): 자동 가감속 보간모드
            uint dwProfileset = 1;
            
            CAXM.AxmContiStart(lCoordinate, dwProfileset, 360);

 

코드는 위와 같이 사용 하였습니다. 

원을 정확하게 그리려면 어떻게 해야 하는지 문의 드립니다. 

안녕하십니까 아진엑스텍입니다.

안녕하십니까 아진엑스텍입니다.
문의하신 Q&A는 적어주신 메일로 답변드렸습니다.
감사합니다.