分享GTS-800二次开发流程步骤


本文摘自PHP中文网,作者零下一度,侵删。

1、打开控制器         GT_Open
2、启动伺服使能        GT_ClrSts
3、轴规划位置清零       GT_SetPrfPos
4、轴运动模式         GT_PrfTrap
5、轴目标位置         GT_SetPos
6、轴转动速度         GT_SetVel
7、启动轴           GT_Update
8、关闭使能          GT_AxisOff
9、关闭控制器         GT_Close

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

C#:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using gts;

 

 

namespace GTS

{

    class Program

    {

        static void command(string sz, short nR)

        {

            Console.WriteLine(sz + " = " + nR);

        }

 

        static void Main(string[] args)

        {

            short mAxis = 2;

            short nR = mc.GT_Open(0, 1);

            if (nR != 0)

            {

                command("GT_Open", nR);

                Console.WriteLine("Open error");

                return;

            }

            command("GT_Open", nR);

            // 清除各轴的报警和限位

            command("GT_ClrSts", mc.GT_ClrSts(mAxis, 1));

            // 伺服使能

            command("GT_AxisOn", mc.GT_AxisOn(mAxis));

            // 位置清零

            command("GT_ZeroPos", mc.GT_ZeroPos(mAxis, 1));

            // 轴规划位置清零

            command("GT_SetPrfPos", mc.GT_SetPrfPos(mAxis, 0));

            // 设置指定轴为点位运动模式。

            command("GT_PrfTrap", mc.GT_PrfTrap(mAxis));

            // 设置点位运动参数

            mc.TTrapPrm trap = new mc.TTrapPrm();

            trap.acc = 0.25;

            trap.dec = 0.125;

            trap.smoothTime = 25;

            command("GT_SetTrapPrm", mc.GT_SetTrapPrm(mAxis, ref trap));

            // 设置轴的目标位置

            command("GT_SetPos", mc.GT_SetPos(mAxis, 50000));

            // 设置轴的目标速度

            command("GT_SetVel", mc.GT_SetVel(mAxis, 25));

            // 启动轴运动

            command("GT_Update", mc.GT_Update(1 << mAxis - 1));

 

            mc.GT_Close();

            Console.ReadKey();

        }

    }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

C++源码:

#include "stdafx.h"

#include "windows.h"

#include "conio.h"

#include "gts.h"

 

#define AXIS        1

 

// 该函数检测某条GT指令的执行结果,command为指令名称,error为指令执行返回值

void commandhandler(char *command, short error)

{

    // 如果指令执行返回值为非0,说明指令执行错误,向屏幕输出错误结果

    if(error)

    {

        printf("%s = %d\n", command, error);

    }

}

int main(int argc, char* argv[])

{

    short sRtn;

    TTrapPrm trap;

    long sts;

    double prfPos;

 

    // 打开运动控制器

    sRtn = GT_Open();

    // 指令返回值检测,请查阅例2-1

    commandhandler("GT_Open", sRtn);

    // 配置运动控制器

    // 注意:配置文件取消了各轴的报警和限位

    sRtn = GT_LoadConfig("test.cfg");

    commandhandler("GT_LoadConfig ", sRtn);

    // 清除各轴的报警和限位

    sRtn = GT_ClrSts(1, 8);

    commandhandler("GT_ClrSts", sRtn);

    // 伺服使能

    sRtn = GT_AxisOn(AXIS);

    commandhandler("GT_AxisOn", sRtn);

 

    // 位置清零

    sRtn = GT_ZeroPos(AXIS);

    commandhandler("GT_ZeroPos", sRtn);

    // AXIS轴规划位置清零

    sRtn = GT_SetPrfPos(AXIS, 0);

    commandhandler("GT_SetPrfPos", sRtn);

    // 将AXIS轴设为点位模式

    sRtn = GT_PrfTrap(AXIS);

    commandhandler("GT_PrfTrap", sRtn);

    // 读取点位运动参数

    sRtn = GT_GetTrapPrm(AXIS, &trap);

    commandhandler("GT_GetTrapPrm", sRtn);

    trap.acc = 0.25;

    trap.dec = 0.125;

    trap.smoothTime = 25;

    // 设置点位运动参数

    sRtn = GT_SetTrapPrm(AXIS, &trap);

    commandhandler("GT_SetTrapPrm", sRtn);

    // 设置AXIS轴的目标位置

    sRtn = GT_SetPos(AXIS, 50000L);

    commandhandler("GT_SetPos", sRtn);

    // 设置AXIS轴的目标速度

    sRtn = GT_SetVel(AXIS, 50);

    commandhandler("GT_SetVel", sRtn);

    // 启动AXIS轴的运动

    sRtn = GT_Update(1<<(AXIS-1));

    commandhandler("GT_Update", sRtn);

 

    do

    {

        // 读取AXIS轴的状态

        sRtn = GT_GetSts(AXIS, &sts);

        // 读取AXIS轴的规划位置

        sRtn = GT_GetPrfPos(AXIS, &prfPos);

        printf("sts=0x%-10lxprfPos=%-10.1lf\r", sts, prfPos);

    }while(sts&0x400);  // 等待AXIS轴规划停止

 

    // 伺服关闭

    sRtn = GT_AxisOff(AXIS);

    printf("\nGT_AxisOff()=%d\n", sRtn);

    getch();

    return 0;

 

}

以上就是分享GTS-800二次开发流程步骤的详细内容!

相关阅读 >>

c#操作styline二次开发实现画线功能

c# 一些面试试题的实例教程

总结.net mvc实现长轮询实例

分享GTS-800二次开发流程步骤

更多相关阅读请进入《GTS-800》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...