CMC5401-M4PLUS 基于TC6014的四轴运动控制器的APP应用

14.5 串口之库函数应用

定长驱动:设置好参数(范围、初始速度、加/减速度、加/减速度变化率、速度曲线S 曲线或T型曲线驱动、减速模式:手动减速或自动减速)→设定输出定长脉冲数发送定 长驱动命令。

X轴正向输出20000个脉冲

发生数据代码为:

1) 设定范围:01 01 00 7A 12 00  。设定X轴范围8000000

2) 设定初始速度和驱动速度:02 01 03 E8 13 88。设定X轴初始速度1000,驱动速度 5000

3) 设定加/减速度:03 01 05 DC 05 DC。设定X轴加减速度都为15000.

4) 设定加/减速度变化率:04 01 05 DC 05 DC。设定X轴加减速度变化率都为1500

5) 设定加/减速同步:05 01。设置X轴加减速度同步。(默认问同为)

6) 设置脉冲输出模式:07 01 01。设置X轴脉冲输出模式为方向脉冲,方向电平为低。

7) 定长驱动自动减速:0A 01。设置X轴定长驱动自动减速模式。

8) 定长脉冲驱动:0D 01 00 00 4E 20 。设置X轴正方向定长驱动20000个脉冲。

连续驱动:先要设定好速度参数及速度曲线

X轴负方向连续驱动:

发生数据代码为:

0F 01   X轴负向连续驱动

停止轴驱动

发生数据代码为:

1F 01 X轴减速停止

2轴直线插补:

1)设定好2个轴插补结束点

2)发送2轴直线插补命令插补命令

XY轴2轴直线插补

发生数据代码为:

22 01 00 00 27 10    X轴插补结束点10000;

22 02 00 00 4E 20 Y轴结束插补点20000;

23 01 02 发送2轴直线插补命令

3轴直线插补:

1)设定好3个轴插补结束点

2)发送3轴直线插补命令插补命令

XYZ轴3轴直线插补

发生数据代码为:

22 01 00 00 27 10    X轴插补结束点10000;

22 02 00 00 4E 20 Y轴结束插补点20000;

22 02 00 00 75 30 Y轴结束插补点30000;

24 01 02 04 发送3轴直线插补命令

2轴圆弧插补:

  1. 设定好2个轴插补结束点
  2. 设定好圆心点坐标

3)发送2轴直线插补命令插补命令

XY轴顺时针圆弧插补插补:

发生数据代码为:

22 01 00 00 27 10    X轴插补结束点10000;

22 02 00 00 4E 20 Y轴结束插补点20000;

25 01 00 00 13 88 X轴圆心坐标

25 02 00 00 00 00 Y轴圆心坐标

26 01 02 发送2轴顺时针圆弧插补命令

单步插补:

  1. 设定单步插补模式(命令控制或外部信号控制)
  2. 先设定好插补参数(插补结束点,圆心点等)
  3. 等待单步插补信号(命令或者外部信号)

外部信号控制2轴直线单步插补

发生数据代码为:

2B 01 03                       启动X轴EXPLSN滤波功能

2C 01 02                     设置X轴滤波延时时间

       2a                                外部信号控制单步插补

22 01 00 00 27 10       X轴插补结束点10000;

22 02 00 00 4E 20       Y轴结束插补点20000;

23 01 02        发送2轴直线插补命令

等待外部信号EXPLS有效,每当外部信号为低时输出一个插补脉冲。

当需要执行其他驱动时,需退出单步插补:

fd

外部信号nEXPP, nEXPM定长驱动:

发生数据代码为:

2B 01 03                     启动X轴EXPP 、EXPM滤波功能

2C 01 02                    设置X轴滤波延时时间

32 01 00 00 4E 20       启动X轴外部信号定长驱动,脉冲输出20000

等待外信号有效(nEXPP下降沿时X轴为正向定长驱动,nEXPM下降沿时X轴为负向定长驱动)

外部信号nEXPP, nEXPM连续驱动:

发生数据代码为:

2B 01 03                     启动X轴EXPP 、EXPM滤波功能

2C 01 02        设置X轴滤波延时时间

33 01                         启动X轴外部信号连续驱动

当外部信号为低电平时输出脉冲,外部信号为高电平时停止输出脉冲。

获取当前逻辑位置计数器值

发生数据代码为:

1a 01                           获取X轴当前逻辑位置

使能外部信号停止驱动:

发生数据代码为:

2B 01 00                     启动X轴IN0滤波功能

2C 01 02        设置X轴滤波延时时间

36 01 01 00        使能外部信号IN1停止驱动,有效逻辑电平为低电平

如果X正在驱动,当IN1为低电平时驱动停止。

当需要禁止IN1的停止驱动时:

37 01 01                   禁止X轴外部信号IN1停止驱动

同步运动

假设X轴处于定长驱动,当X驱动停止时Y轴正方向定长输出5000个脉冲。

发生数据代码为:

3D 01 02 00 00 05    设定同步运动从轴Y,同步条件驱动停止

3E 02 00 00 00 同步条件有效Y的同步运动:正向定长脉冲驱动...

0C 02 00 00 13 88 从轴Y轴的定长脉冲输出脉冲数5000

当需要释放X轴的同步运动时:

3F 01                               释放X轴的同步运动

14.6 串口之APP应用函数示例

T型曲线加减速同步自动减速定长驱动

D0-命令码:D0

D1-指定要操作的轴:01-X,02-Y,04-Z,08-U,0F-所有轴

D2~D5:输出脉冲数

D6:驱动方向

示例:X轴正向定长输出20000个脉冲

发送数据代码:D0 01 00 00 4E 20 20

T型曲线加减速不同步自动减速定长驱动

D0-命令码:D1

D1-指定要操作的轴:01-X,02-Y,04-Z,08-U,0F-所有轴

D2~D5:输出脉冲数 0~268435455

D6:驱动方向20-正向,21-负向

示例:X轴正向定长输出20000个脉冲

发送数据代码:D1 01 00 00 4E 20 20

T型曲线加减速不同步手动减速定长驱动

D0-命令码:D2

D1-指定要操作的轴:01-X,02-Y,04-Z,08-U,0F-所有轴

D2~D5:手动减速点  -2,147,483,646 ~ +2,147,483,646

D6~D9:输出脉冲数 0~268435455

D10:驱动方向20-正向,21-负向

示例:X轴正向定长输出20000个脉冲,手动减速点位15000

发送数据代码:D2 01 00 00 3A 98 00 00 4E 20 20

S型曲线加减速同步自动减速定长驱动

D0-命令码:D3

D1-指定要操作的轴:01-X,02-Y,04-Z,08-U,0F-所有轴

D2~D5:输出脉冲数 0~268435455

D6:驱动方向20-正向,21-负向

示例:X轴正向定长输出20000个脉冲

发送数据代码:D3 01 00 00 4E 20 20

S型曲线加减速不同步手动减速定长驱动

D0-命令码:D4

D1-指定要操作的轴:01-X,02-Y,04-Z,08-U,0F-所有轴

D2~D5:手动减速点  -2,147,483,646 ~ +2,147,483,646

D6~D9:输出脉冲数 0~268435455

D10:驱动方向20-正向,21-负向

示例:X轴正向定长输出20000个脉冲,手动减速点位15000

发送数据代码:D4 01 00 00 3A 98 00 00 4E 20 20

T型曲线连续驱动

D0-命令码:D5

D1-指定要操作的轴:01-X,02-Y,04-Z,08-U,0F-所有轴

        D2:驱动方向22-正向,23-负向

        示例:X轴正向定连续驱动

        发生数据代码:D5 01 22

S型曲线连续驱动

D0-命令码:D6

D1-指定要操作的轴:01-X,02-Y,04-Z,08-U,0F-所有轴

        D2:驱动方向22-正向,23-负向

        示例:X轴正向连续驱动

        发生数据代码:D6 01 22

2轴恒速插补

D0-命令码:D7

D1-指定插补轴1:01-X,02-Y,04-Z,08-U

D2-指定插补轴2:01-X,02-Y,04-Z,08-U

D3~D6-轴1的范围16000~(8000000/1.414)

D7~D10:轴1终点 -2,147,483,646 ~ +2,147,483,646

D11~D14:轴2终点 -2,147,483,646 ~ +2,147,483,646

              示例:XY轴恒速插补,X轴的范围为4000000,X轴终点15000,Y轴终点15000

          发生数据代码:D7 01 02 00 30 09 00 00 00 3A 98 00 00 3A 98

3轴恒速插补

D0-命令码:D8

D1-指定插补轴1:01-X,02-Y,04-Z,08-U

D2-指定插补轴2:01-X,02-Y,04-Z,08-U

D3-指定插补轴3:01-X,02-Y,04-Z,08-U

D4~D7:轴1的范围16000~(8000000/1.732)

D10~D13-轴1插补终点 -2,147,483,646 ~ +2,147,483,646

D12~D15-轴2插补终点 -2,147,483,646 ~ +2,147,483,646

D16~D19-轴3插补终点 -2,147,483,646 ~ +2,147,483,646

             示例:XYZ轴恒速插补,X轴的范围为4000000,X轴终点10000,Y轴终点10000,Z轴终点10000

             发生数据代码:D8 01 02 04 00 3D 09 00 00 00 27 10 00 00 27 10 00 00 27 10

2轴直线插补

D0-命令码:D9

D1-指定插补轴1:01-X,02-Y,04-Z,08-U

D2-指定插补轴2:01-X,02-Y,04-Z,08-U

D3~D6:轴1插补结束点-2,147,483,646 ~ 2,147,483,646

D7~D10:轴2插补结束点 -2,147,483,646 ~ 2,147,483,646

        示例:XY轴直线插补,X轴的插补结束点20000,Y轴插补结束30000

        发生数据代码:D9 01 02 00 00 4E 20 00 00 75 30

3轴直线插补

D0-命令码:DA

D1-指定插补轴1:01-X,02-Y,04-Z,08-U

D2-指定插补轴2:01-X,02-Y,04-Z,08-U

D3-指定插补轴3:01-X,02-Y,04-Z,08-U

D4~D7:轴1插补结束点-2,147,483,646 ~ 2,147,483,646

D8~D11:轴2插补结束点-2,147,483,646 ~ 2,147,483,646

D12~D14:轴3插补结束点-2,147,483,646 ~ 2,147,483,646

        示例:XY轴直线插补,X轴的插补结束点20000,Y轴插补结束30000,Z轴插补       结束点40000

 发生数据代码:DA 01 02 04 00 00 4E 20 00 00 75 30 00 00 9C 40

2轴顺时针圆弧插

D0-命令码:DB

D1-指定插补轴1:01-X,02-Y,04-Z,08-U

D2-指定插补轴2:01-X,02-Y,04-Z,08-U

D3~D6:轴1插补圆心点-2,147,483,646 ~ 2,147,483,646

D7~D10:轴2插补圆心点-2,147,483,646 ~ 2,147,483,646

D11~D14:轴1插补结束点-2,147,483,646 ~ 2,147,483,646

D15~D18:轴2插补结束点-2,147,483,646 ~ 2,147,483,646

示例:XY轴顺时针圆弧插补,X轴圆心点坐标5000,Y轴圆心点坐标0,X轴插补结束点5000,Y轴插补结束点-5000

发生数据代码:DB 01 02 00 00 13 88 00 00 00 00 00 00 13 88 FF FF EC 78

2轴逆时针圆弧插补

D0-命令码:DB

D1-指定插补轴1:01-X,02-Y,04-Z,08-U

D2-指定插补轴2:01-X,02-Y,04-Z,08-U

D3~D6:轴1插补圆心点-2,147,483,646 ~ 2,147,483,646

D7~D10:轴2插补圆心点-2,147,483,646 ~ 2,147,483,646

D11~D14:轴1插补结束点-2,147,483,646 ~ 2,147,483,646

D15~D18:轴2插补结束点-2,147,483,646 ~ 2,147,483,646

示例:XY轴逆时针圆弧插补,X轴圆心点坐标5000,Y轴圆心点坐标0,X轴插补结束点0,Y轴插补结束点0

发生数据代码:DC 01 02 00 00 13 88 00 00 00 00 00 00 00 00 00 00 00 00

自动回原点(IN0为近原点信号,IN1为原点信号,IN2为Z相信号)

             D0-命令码:56

             D1-要操作的轴:01-X,02-Y,04-Z,08-U

             D2-IN0有效电平:0-低电平,1-高电平

             D3-IN1有效电平:0-低电平,1-高电平

             D4-IN2有效电平:0-低电平,1-高电平

             D5-Step1方向:0-正方向,1-负方向

             D6~D7-原点搜索速度(必须大于初始速度)。1~8000

             D8~D11-偏移脉冲:0~268435455

             示例:X轴的IN0 IN1 IN2有效电平都为低电平,Step1为负方向,原点搜索速度为200,偏移脉冲3500

             发送数据代码:56 01 00 00 00 01 00 C8 00 00 0D AC

自动回原点(IN0 IN1为原点信号)

             D0-命令码:57

             D1-要操作的轴:01-X,02-Y,04-Z,08-U

             D2-IN0 IN1有效电平:0-低电平,1-高电平

             D3-Step1方向:0-正方向,1-负方向

            D4~D5-原点搜索速度(必须大于初始速度)。1~8000

            D6~D9-偏移脉冲:0~268435455

             示例:X轴的IN0 IN1 有效电平都为低电平,Step1 为负方向,原点搜索速度为200,偏移脉冲2500

             发送数据代码:57 01 00 01 00 C8 00 00 09 C4

自动回原点(IN0 IN1 限位为原点信号)

             D0-命令码:58

             D1-要操作的轴:01-X,02-Y,04-Z,08-U

             D2-IN0 IN1限位有效电平:0-低电平,1-高电平

             D3-Step1方向:0-正方向,1-负方向

             D4~D7-偏移脉冲:0~268435455

             示例:X轴的IN0 IN1 LMTM有效电平都为低电平,Step1为负方向,偏移脉冲2500

             发送数据代码:58 01 00 01 00 00 09 C4

自动回原点(IN0为 近原点信号,IN1为原点信号)

             D0-命令码:59

             D1-要操作的轴:01-X,02-Y,04-Z,08-U

             D2-IN0有效电平:0-低电平,1-高电平

             D3-IN1有效电平:0-低电平,1-高电平

             D4-Step1方向:0-正方向,1-负方向

             D5~D6-原点搜索速度。1~8000

             D7~D10-偏移脉冲:0~268435455

             示例:X轴的IN0 IN1 有效电平都为低电平,Step1为负方向,原点搜索速度为200,偏移脉冲2500

 发送数据代码:59 01 00 00 01 00 C8 00 00 09 C4

综上所描写,我们还增加了很多的功能在后期的modbus和其它功能的使用,这部分是基础的函数功能的概括,如需真正使用的还是要把所有的整合成自己的工艺文件进行开发使用。

NOTE:

增加功能:驱动保持

TC6014的这个功能使得每个轴都可以同时发送驱动命令,当发送了这个设置命令的时候,在发送定长运动命令是不会执行的,会把这个命令锁存住。当发送驱动保持解除命令的时候之前所有的运动命令就开始一起动,用在一些需要XYZU严格同时启动的情况。

函数原型

u8 TC6014_EnableInputSignalStopDrive(u8 axis, u8 SignalNumber, u8 LogicalLevel)

说明

使能指定轴驱动保持命令

参数

axis:AXIS_X--X轴,AXIS_Y--Y轴,AXIS_Z--Z轴,AXIS_U--U轴,AXIS_ALL--所有轴

SignalNumber:输入信号。0--IN0,1--IN1,2--IN2,3--IN3

LogicalLevel:输入信号逻辑有效电平。0--低电平有效,1--高电平有效

返回值

0--输入信号SignalNumber大于3,1--操作成功

示例

使能X轴的IN1停止驱动功能,低电平有效:

status=TC6014_EnableInputSignalStopDrive(AXIS_X, 1, 0);

增加功能:驱动保持解除

TC6014的这个功能使得每个轴都可以同时发送驱动命令,当发送了这个设置命令的时候,在发送定长运动命令是不会执行的,会把这个命令锁存住。当发送驱动保持解除命令的时候之前所有的运动命令就开始一起动,用在一些需要XYZU严格同时启动的情况。

函数原型

u8 TC6014_EnableInputSignalStopDrive(u8 axis, u8 SignalNumber, u8 LogicalLevel)

说明

使能指定轴驱动保持解除命令

参数

axis:AXIS_X--X轴,AXIS_Y--Y轴,AXIS_Z--Z轴,AXIS_U--U轴,AXIS_ALL--所有轴

SignalNumber:输入信号。0--IN0,1--IN1,2--IN2,3--IN3

LogicalLevel:输入信号逻辑有效电平。0--低电平有效,1--高电平有效

返回值

0--输入信号SignalNumber大于3,1--操作成功

示例

使能X轴的IN1停止驱动功能,低电平有效:

status=TC6014_EnableInputSignalStopDrive(AXIS_X, 1, 0);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值