Q&A

AxmSplineWrite함수 사용 문의드립니다.

  • 김지훈
  • 2025-11-17
  • 33

매뉴얼상에 존재하는 예제를 바탕으로 하기 코드를 구성하여 실행하였으나  AXT_RT_MOTION_INTERPOL_VALUE가 결과로 나왔습니다.

Spline 구동에 관하여 문의드립니다.

사용보드 : PCIE-Rxx05SIIIH, SSCNET III/H based Max 32 Axis controller

펌웨어 : AJINEXTEK SIIIH V4.1 2025040901

라이브러리:

    - AXL.dll : ver4.1.7.3

    - EzBasicAxl.dll : ver6.0.0.0

좌표계 구성:

    - Axis 0 : X 축        Unit/Pulse : 1/1    Accel Unit : sec

    - Axis 1 : Y 축        Unit/Pulse : 1/1    Accel Unit : sec

    - Axis 3 : Rotate 축    Unit/Pulse : 1/1    Accel Unit : sec

 

코드 :

Console.WriteLine("=============================================================");
            // MOT파일에서 가감속 단위를 sec로 지정함

            var posCount = 5;
            var posX = new double[posCount];
            var posY = new double[posCount];
            posX[0] = 0;    posY[0] = 0;
            posX[1] = 1000; posY[1] = 2000;
            posX[2] = 2000; posY[2] = 1000;
            posX[3] = 3000; posY[3] = 4000;
            posX[4] = 4000; posY[4] = 3000;
            int coordinate = 0;
            var result = Servo.AxmContiWriteClear(coordinate);
            Console.WriteLine(result);
            result = Servo.AxmContiSetAxisMap(coordinate, 3, new int[] { 0, 1, 3 });
            Console.WriteLine(result);

            int[] arr = new int[10];
            uint size = 0;
            Servo.AxmContiGetAxisMap(coordinate, ref size, arr);
            string axisMap = "Get Axis";
            for (int i = 0; i < size; i++)
            {
                axisMap += $"[{arr[i]}]";
            }
            Console.WriteLine(axisMap);

            result = Servo.AxmContiSetAbsRelMode(coordinate, 0);
            Console.WriteLine(result);

            result = Servo.AxmContiBeginNode(coordinate);
            Console.WriteLine(result);

            result = Servo.AxmSplineWrite(coordinate, posCount, posX, posY, dVel: 30000, dAccel: 0.2, dDecel: 0.2, dPosZ: 1, lPointFactor: 100);
            Console.WriteLine(result);

            result = Servo.AxmContiEndNode(coordinate);
            Console.WriteLine(result);

            Servo.AxmContiSetAbsRelMode(coordinate, 0);
            Console.WriteLine(result);

            result = Servo.AxmContiStart(coordinate, 0, 0);
            Console.WriteLine(result);

출력결과 :

=============================================================
AXT_RT_SUCCESS
AXT_RT_SUCCESS
Get Axis[0][1][3]
AXT_RT_SUCCESS
AXT_RT_SUCCESS
AXT_RT_SUCCESS
AXT_RT_SUCCESS
AXT_RT_SUCCESS
AXT_RT_MOTION_INTERPOL_VALUE

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

안녕하십니까 아진엑스텍입니다.
문의주신 Q&A는 메일로 답변드렸습니다. 확인부탁드립니다