Adtech ADT-8920A1/ADT-8920B1/ADT-8940B1/ADT-8940D1 取扱説明書

Adtech ADT-8920A1/ADT-8920B1/ADT-8940B1/ADT-8940D1 取扱説明書

Adtech ADT-8920A1/ADT-8920B1/ADT-8940B1/ADT-8940D1 是基于 PCI 或 PCI-E 总线的,高性能的 2 轴/4 轴伺服/步进电机控制卡。一个系统中最多可支持 16 块控制卡,支持即插即用。最大脉冲频率 2MHz,采用先进技术,保证在输出频率很高的时候,频率误差小于 0.1%。支持任意 2-4 轴直线插补,最大插补速度 1MHz。回原点功能模块。外部信号(手轮或通用输入信号)驱动可以实现定量驱动、连续驱动。位置锁存可以锁存逻辑计数器的或实位计数器的值。速度控制可用定速和梯形加减速。具有大容量硬件缓存功能。I/O 响应时间小于 500us。四位拨码开关,可指定 0~9 卡号。

advertisement

Assistant Bot

Need help? Our chatbot has already read the manual and is ready to assist you. Feel free to ask any questions about the device, but providing details will make the conversation more productive.

Adtech ADT-8920A1/ADT-8920B1/ADT-8940B1/ADT-8940D1 取扱説明書 | Manualzz
ADT-8940 A1 系列运动控制卡用户手册
8940A1\8941A1\8920A1\8940D1
深圳众为兴技术股份有限公司
地址:深圳市南山区艺园路田厦 IC 产业园 27-29 栋 5 楼 邮编:518052
电话:0755-26722719 传真:0755-26722718
email:[email protected] http://www.adtechcn.com
ADT-8940A1 系列运动控制卡
版权声明
本手册的所有部分,著作财产权归深圳众为兴技术股份有限公
司(以下简称众为兴)所有,未经众为兴许可,任何单位或个人不
可任意仿制、拷贝、撰抁或转译。本手册无任何形式的担保、立场
表达或其它暗示。如由本手册或其所提到的产品的信息,所引起的
直接或间接的资料流出,利益损失或事业终止,众为兴及其所属员
工不承担任何责任。除此以外,本手册提到的产品及其资料仅供参
考,内容如有更新,恕不另行通知。
版权所有,不得翻印。
深圳众为兴技术股份有限公司
说明书基本信息
本说明书由深圳众为兴技术股份有限公司组织编写。本说明书
主要编写人:艾小云
本说明书于 2009 年 12 月 12 日首次发布,当前版本号
20.04.15.14,项目号 YJ20071219。
第 2 页 共 149 页
ADT-8940A1 系列运动控制卡
注意事项说明
※运输与储存





产品包装箱堆迭不可超过六层
不可在产品包装箱上攀爬、站立或放置重物
不可使用与产品相连的电缆拖动或搬运产品
严禁碰撞、划伤面板和显示屏
产品包装箱应避免潮湿、暴晒以及雨淋
※开箱检查




※接
线





※检
参加接线与检查的人员必须是具有相应能力的专业人员
产品必须可靠接地,接地电阻应小于4 欧姆,不能使用中性线(零
线)代替地线
接线必须正确、牢固,以免导致产品故障或意想不到的后果
与产品连接的浪涌吸收二极管必须按规定方向连接,否则会损坏产
品
插拔插头或打开产品机箱前,必须切断产品电源
修



※其
打开包装后请确认是否是您所购买的产品
检查产品在运输途中是否有损坏
对照清单确认各部件是否齐全,有无损伤
如存在产品型号不符、缺少附件或运输损坏等情况,请及时与我公
司联系
检修或更换元器件前必须切断电源
发生短路或过载时应检查故障,故障排除后方可重新启动
不可对产品频繁通断电,断电后若须重新通电,相隔时间至少1分钟
它







未经允许,请勿擅自打开机壳。
长时间不用时,请切断电源。
特别注意不要让粉尘,铁粉进入控制器。
输出继电器若使用非固态继电器,则须在继电器线圈上并联续流二
极管。检查所接电源是否符合要求,杜绝将控制器烧坏。
控制器的寿命与环境温度有很大关系,若加工现场温度过高,请安
装散热风扇。控制器允许工作的环境温度范围在0℃-60℃之间。
避免在高温、潮湿、多尘或有腐蚀性气体的环境中使用。
在震动强烈的地方,应加橡胶防震垫进行缓冲。
第 3 页 共 149 页
ADT-8940A1 系列运动控制卡
※保
养

在一般的使用条件下(环境条件:日平均30℃,负载率80%,运行率
每天12小时),请按如下项目进行日常检查和定期检查。
● 确认环境温度、温度、尘埃异物
● 有无异常震动、声音
日常检查
日常
● 通风孔有无被纱线等塞住
定期检查
1年
●
●
坚固部件是否松动
端子台是否损伤
第 4 页 共 149 页
ADT-8940A1 系列运动控制卡
目
录
目
录 .......................................................................................................... 5
概述篇 ............................................................................................................ 14
第一章 产品简介 .......................................................................................... 14
第二章 主要性能 .......................................................................................... 15
2.1 描述: ................................................................................................ 15
第三章 应用范围 .......................................................................................... 16
3.1 描述: ................................................................................................ 16
第四章 ADT-8940A1系列功能列表 ............................................................ 16
4.1 描述: ................................................................................................ 16
硬件篇 ............................................................................................................ 18
第一章 硬件安装 .......................................................................................... 18
1.1 出货配置: ........................................................................................ 18
1.1.1 ADT-8940A1 出货配置: .......................................................................18
1.1.2 ADT-8920A1 出货配置: ........................................................................18
1.1.3ADT-8940D1 出货配置: .........................................................................18
1.1.4 ADT-8941A1 出货配置: .......................................................................19
1.2 接线板安装尺寸: ........................................................................... 20
1.2 .1ADT-9162A 尺寸图: .......................................................................20
1.2 .2ADT-9137 尺寸图: .........................................................................21
1.3 安装步骤: ........................................................................................ 21
1.3.1 ADT-8940A1 安装步骤: .......................................................................21
1.3.2 ADT-8920A1 安装步骤: .......................................................................22
1.3.3 ADT-8940D1 安装步骤: .......................................................................22
1.3.1 ADT-8941A1 安装步骤: .......................................................................22
第二章 电气连接 .......................................................................................... 23
2.1 接线图: ............................................................................................ 23
2.1.1 ADT-8940A1 接线图: ........................................................................23
2.1.2 ADT-8920A1 接线图: ........................................................................24
2.1.3 ADT-8940D1 接线图: ........................................................................24
第 5 页 共 149 页
ADT-8940A1 系列运动控制卡
2.1.4 ADT-8941A1 接线图: ........................................................................25
2.2 线号说明 ......................................................................................... 26
2.2.1 ADT-8940A1 和 ADT-8941 卡 J1 对应接线板 ADT-9162 线号说明:26
2.2.2 ADT-8940A1 和 ADT-8941 卡 J2 对应接线板 ADT-9137 线号说明:29
2.2.3 ADT-8940A1 和 ADT-8941 主卡 J4 端 40PIN 引脚定义:................31
2.2.4 ADT-8920A1 卡 J1 对应接线板 ADT-9162 线号说明: ....................31
2.2.5 ADT-8940D1 卡 J1 对应接线板 ADT-9162 线号说明: ....................34
2.4 脉冲/方向输出信号的连接: ........................................................... 36
2.5 编码器输入信号的连接: ............................................................. 37
2.6 数字输入的连接: ............................................................................ 38
2.7 ADT-9162A 接线端子接线图: ....................................................... 39
2.8 ADT-9112 接线端子接线图:........................................................ 40
2.9 编码器信号做通用输入信号时接线示例: ................................. 41
2.10 数字输出的连接: ...................................................................... 41
第三章 驱动安装 .......................................................................................... 43
3.1 WIN98 下驱动程序的安装: ............................................................ 44
3.2 WINXP 下驱动程序的安装: ........................................................... 47
3.3 WIN7 下驱动程序的安装 ............................................................... 49
第四章 电气规格 .......................................................................................... 54
4.1 开关量输入: .................................................................................... 54
4.2 计数输入: ........................................................................................ 54
4.3 脉冲输出: ........................................................................................ 54
4.4 开关量输出: .................................................................................... 54
4.4 电源输出: ........................................................................................ 54
第五章 常见伺服接线图 .............................................................................. 55
5.1 众为兴 QX 系列驱动器接线图: .................................................... 55
5.2 松下 A5 伺服接线图(仅供参考):................................................... 56
5.3 伺服差分 Z 接控制卡时电路转换图: ......................................... 57
第六章 工作环境 .......................................................................................... 58
6.1 工作温度: ........................................................................................ 58
6.2 储存温度: ........................................................................................ 58
6.3 工作湿度: ........................................................................................ 58
6.4 储存湿度: ........................................................................................ 58
软件编程篇 .................................................................................................... 59
第一章 功能说明 .......................................................................................... 59
第 6 页 共 149 页
ADT-8940A1 系列运动控制卡
1.4 硬件缓存插补: ............................................................................... 61
1.5 定量驱动: ....................................................................................... 61
1.6 速度曲线: ....................................................................................... 62
1.6.1 定速驱动: ..........................................................................................62
1.6.2 直线加/速减速驱动: .......................................................................62
1.7 位置锁存: ....................................................................................... 63
1.8 外部信号驱动: ............................................................................... 63
第二章 运动控制库函数使用导航 .............................................................. 63
2.1 ADT-8940A1 系列控制卡函数库概述: ......................................... 63
2.2 WINDOWS 下动态链接库的调用: ................................................... 64
2.3 VC 中调用:...................................................................................... 64
2.4 VB 中调用:...................................................................................... 64
2.5 C++BULILDER 中调用:.................................................................... 64
2.6 LABVIEW 8 中的调用: ................................................................... 65
2.7 DOS 下库函数的调用: ................................................................... 65
2.8 库函数返回值及其含义: ............................................................... 66
第三章 运动控制开发要点 .......................................................................... 67
3.1 卡的初始化: ................................................................................... 67
3.2 速度的设定: ................................................................................... 67
3.2.1 匀速运动: ..........................................................................................67
3.2.2 对称直线加减速: ..............................................................................67
3.2.3 插补速度: ..........................................................................................67
3.3 设定 STOP0、STOP1 信号: ...................................................... 68
3.4 通过拨码开关设定卡号:............................................................... 68
第四章 系统安全机制 .................................................................................. 69
4.1 错误信息监测: ................................................................................ 69
4.2 限位: ................................................................................................ 69
第五章 回零 .................................................................................................. 70
5.1 回零运动: ........................................................................................ 70
5.1.1 所需函数列表: ................................................................................70
5.1.2 例程 ....................................................................................................71
5.1.3 重点备注 ............................................................................................72
第六章 联动控制 .......................................................................................... 73
6.1 单轴定量匀速运动: ........................................................................ 73
第 7 页 共 149 页
ADT-8940A1 系列运动控制卡
6.1.1 所需函数列表 ....................................................................................73
6.1.2 例程 ....................................................................................................73
6.1.3 重点备注 ............................................................................................74
6.2 单轴定量对称梯形加/减速运动: ................................................... 74
6.2.1 所需函数列表: ................................................................................74
6.2.2 例程: ................................................................................................75
6.2.2 重点备注: ........................................................................................76
6.3 多轴运动 ......................................................................................... 76
6.3.1 所需函数列表: ................................................................................76
6.3.2 例程: ................................................................................................77
6.3.3 重点备注: ........................................................................................79
第七章 插补运动控制 .................................................................................. 79
7.1 两轴直线插补(匀速) ...................................................................... 79
7.1.1 所需函数列表: ................................................................................79
7.1.2 例程: ................................................................................................80
7.1.3 重点备注: ........................................................................................81
7.2 两轴直线插补(加减速) .................................................................. 81
7.2.1 所需函数列表: ................................................................................81
7.2.2 例程: ................................................................................................81
7.2.3 重点备注: ........................................................................................82
7.3 三轴直线插补(加减速) .................................................................. 82
7.3.1 所需函数列表: ................................................................................82
7.3.2 例程: ................................................................................................83
7.3.3 重点备注: ........................................................................................84
第八章 轨迹运动控制 .................................................................................. 85
8.1 缓存插补 ......................................................................................... 85
8.1.1 所需函数列表: ................................................................................85
8.1.2 例程: ................................................................................................85
8.1.3 重点备注: ........................................................................................86
第九章 通用数字量I/O ................................................................................ 87
9.1 输入口定义:具体端口定义见硬件篇第二章................................ 87
9.2 输出口定义:具体端口定义见硬件篇第二章................................ 87
9.3 输出口: ............................................................................................ 87
第 8 页 共 149 页
ADT-8940A1 系列运动控制卡
9.3.1 所需函数列表: ................................................................................87
9.3.2 例程: ................................................................................................87
9.3.3 重点备注: ........................................................................................87
9.4 输入口: ............................................................................................ 87
9.4.1 所需函数列表: ................................................................................87
9.4.2 例程: ................................................................................................87
9.4.3 重点备注: ........................................................................................88
第十章 复合运动控制 .................................................................................. 89
10.1 单轴对称梯形相对运动: .............................................................. 89
10.1.1 所需函数列表: ..............................................................................89
10.1.2 例程: ..............................................................................................89
10.1.3 重点备注: ......................................................................................90
10.2 单轴对称梯形绝对运动: .............................................................. 90
10.2.1 所需函数列表: ..............................................................................90
10.2.2 例程: ..............................................................................................90
10.2.3 重点备注: ......................................................................................91
10.3 对称直线插补相对运动: .............................................................. 91
10.3.1 所需函数列表: ..............................................................................91
10.3.2 例程: ..............................................................................................91
10.3.3 重点备注: ......................................................................................92
10.4 对称直线插补绝对运动: .............................................................. 92
10.4.1 所需函数列表: ..............................................................................93
10.4.2 例程: ..............................................................................................93
10.4.3 重点备注: ......................................................................................94
第十一章 辅助控制 ...................................................................................... 95
11.1 位置锁存: ...................................................................................... 95
11.1.1 所需函数列表: ..............................................................................95
11.1.2 例程: ..............................................................................................95
11.1.3 重点备注: ......................................................................................96
11.2 手动驱动: ...................................................................................... 96
11.2.1 所需函数列表: ..............................................................................96
11.2.2 例程: ..............................................................................................96
11.2.3 重点备注: ......................................................................................97
第 9 页 共 149 页
ADT-8940A1 系列运动控制卡
第十二章 ADT-8940A1系列基本库函数列表 ............................................ 98
12.1 V210 版本库函数列表: ................................................................ 98
第十三章 ADT-8940A1系列基本库函数详解 .......................................... 101
13.1 基本参数设置类: ........................................................................ 101
13.1.1 初始化卡: ................................................................................... 101
13.1.2 获取当前库版本: ....................................................................... 101
13.1.3 设置输出脉冲的工作方式: ...................................................... 101
13.1.4 设定正/负方向限位输入 nLMT 信号的模式: ......................... 102
13.1.5 设定 stop0 输入信号的模式: .................................................. 102
13.1.6 设定 stop1 输入信号的模式: .................................................. 103
13.1.7 延时时间: ................................................................................... 103
13.1.8 硬件停止: ................................................................................... 103
13.1.8 获取拨码开关值: ....................................................................... 104
13.2 驱动状态检查类: ........................................................................ 104
13.2.1 获取各轴的驱动状态: .............................................................. 104
13.2.2 获取插补的驱动状态: .............................................................. 105
13.2.3 延时状态: ................................................................................... 105
13.2.4 硬件版本: ................................................................................... 105
13.2.5 获取各轴的停止信息: .............................................................. 105
13.3 运动参数设定类: ........................................................................ 106
13.3.1 加速度设定: ............................................................................... 106
13.3.2 初始速度设定: ........................................................................... 107
13.3.3 驱动速度设定: ........................................................................... 107
13.3.4 逻辑位置计数器设定: .............................................................. 107
13.3.5 实际位置计数器设定: .............................................................. 108
13.3.6 设定加速速度: ........................................................................... 108
13.4 运动参数检查类: ........................................................................ 108
13.4.1 获取各轴的逻辑位置: .............................................................. 108
13.4.2 获取各轴的实际位置(即编码器反馈输入值):................... 109
13.4.3 获取各轴的当前驱动速度: ...................................................... 109
13.4.4 获取输出点: ............................................................................... 109
13.5 驱动类: ........................................................................................ 110
第 10 页 共 149 页
ADT-8940A1 系列运动控制卡
13.5.1 定量驱动: ................................................................................... 110
13.5.2 单轴连续运动: ........................................................................... 110
13.5.3 驱动减速停止: ........................................................................... 110
13.5.4 驱动立即停止: ........................................................................... 111
13.5.5 两轴直线插补: ........................................................................... 111
13.5.6 三轴直线插补: ........................................................................... 112
13.5.7 四轴直线插补: ........................................................................... 112
13.6 开关量输入输出类: .................................................................... 112
13.6.1 读单个输入点: ........................................................................... 112
13.6.2 输出单点: ................................................................................... 113
13.7 复合驱动类: ................................................................................ 113
13.7.1 单轴相对运动: ........................................................................... 113
13.7.2 单轴绝对运动: ........................................................................... 114
13.7.3 两轴直线插补相对运动: .......................................................... 114
13.7.4 两轴直线插补绝对运动: .......................................................... 114
13.7.5 三轴直线插补相对运动: .......................................................... 115
13.7.6 三轴直线插补绝对运动: .......................................................... 115
13.7.7 四轴直线插补相对运动: .......................................................... 116
13.7.8 四轴直线插补绝对运动: .......................................................... 116
13.7.10 两轴缓存圆弧插补运动: ........................................................ 117
13.8 外部信号驱动类: ........................................................................ 117
13.8.1 外部信号定量驱动:................................................................... 117
13.8.2 外部信号连续驱动:................................................................... 118
13.8.3 禁用外部信号驱动:................................................................... 118
13.9 位置锁存: .................................................................................... 118
13.9.1 位置锁存设置函数:................................................................... 118
13.9.2 获取所存状态: ........................................................................... 119
13.9.3 获取锁定的位置: ....................................................................... 119
13.9.4 清除锁存状态: ........................................................................... 119
13.10 硬件缓存: .................................................................................. 120
13.10.1 单轴缓存: ................................................................................. 120
13.10.2 两轴缓存: ................................................................................. 120
第 11 页 共 149 页
ADT-8940A1 系列运动控制卡
13.10.3 三轴缓存: ................................................................................. 120
13.10.4 四轴缓存: ................................................................................. 121
13.10.5 重设缓存: ................................................................................. 121
13.10.6 读取缓存数: ............................................................................. 122
13.10.7 读取缓存状态: ......................................................................... 122
13.10.8 读取缓存状态: ......................................................................... 122
13.11 回零函数: .................................................................................. 123
13.11.1 设置回零信号: ......................................................................... 123
13.11.2 回零速度参数设置:................................................................. 124
13.11.3 启动回零: ................................................................................ 124
13.11.4 获取回零状态: ........................................................................ 124
第十四章 运动控制开发编程示例 ............................................................ 126
14.1 描述: ............................................................................................ 126
第十五章 常见故障及解决方案 ................................................................ 127
15.1 运动控制卡检测失败: ................................................................ 127
15.2 电机运行异常: ............................................................................ 127
15.3 开关量输入异常: ........................................................................ 128
15.4 开关量输出异常: ........................................................................ 129
15.5 编码器异常: ................................................................................ 129
附录A:驱动安装和卸载常见问题 ........................................................... 130
1、检测不到控制卡,无法安装驱动 ............................................... 130
2、WIN7 32 位系统安装驱动后,为什么图标显示有蓝色小问号?130
3、WIN7 系统安装驱动后,双击示例程序“BIN”文件夹里的“DEMO.EXE”,
提示“控制卡初始化失败”.................................................................. 131
3.1 “以管理员身份运行”程序,重启电脑后,直接双击程序能成功找到
控制卡 ......................................................................................................... 131
3.2 “以管理员身份运行”程序,能提示“控制卡可以使用”,但是重
启电脑后,直接双击程序依然提示“控制卡初始化失败”,解决办法:132
4、WIN7 系统,按右键“以管理员身份运行”示例程序,提示“控制卡没有安
装”? ................................................................................................... 134
5、如何完整卸载 WIN7 下控制卡驱动? ....................................... 136
6、VISUAL STUDIO 编写程序如何获取 WIN7 系统管理员权限.......... 137
6.1 VC 如何以管理员身份运行程序 ........................................................ 137
6.2 VB.net 如何以管理员身份运行程序 ................................................ 137
第 12 页 共 149 页
ADT-8940A1 系列运动控制卡
6.3 C#如何以管理员身份运行程序 ......................................................... 138
7、如何完整卸载 XP 系统下控制卡驱动? .................................... 142
附录B: 电路转换和抗干扰常见问题 ..................................................... 147
1、伺服驱动器的 Z 相信号差分和控制卡集电极转换 ................... 147
2、输入点增加抗干扰接法 ............................................................... 147
3、输出点增加抗干扰接法 ............................................................... 148
第 13 页 共 149 页
ADT-8940A1 系列运动控制卡
概述篇
第一章 产品简介
ADT-8940A1 系列(包含 ADT-8940A1\ADT-8941A1\ADT-8920A1\ADT8940D1)
是基于 PCI 或 PCI-E 总线的高性能二轴、四轴伺服/步进控制卡,一个系统中可支持多
达 16 块控制卡,支持即插即用.。
脉冲输出方式可用单脉冲(脉冲+方向)或双脉冲(脉冲+脉冲)方式,最大脉冲
频率 2MHz,采用先进技术,保证在输出频率很高的时候,频率误差小于 0.1%。
支持任意 2-4 轴直线插补,最大插补速度 1MHz。
回原点功能模块。
外部信号(手轮或通用输入信号)驱动可以实现定量驱动、连续驱动。
位置锁存可以锁存逻辑计数器的或实位计数器的值。
速度控制可用定速和梯形加减速。
具有大容量硬件缓存功能。
I/O 响应时间小于 500us。
四位拨码开关,可指定 0~9 卡号。
位置管理采用两个加/减计数器,一个用于管理内部驱动脉冲输出的逻辑位置计
数器,一个用于接收外部的输入,输入信号是 A/B 相输入的编码器或光栅尺,作为实
际位置计数器
计数器位数高达 32 位,最大范围–2,147,483,648~+2,147,483,647。
提供 DOS、WINDOWS95/98/NT/2000/XP/WINCE/WIN7 开发库,可用 VC++、VB、
C#、.NET、BC++、LabVIEW、Delphi、C++Builder 等进行软件开发。
ADT-8940A1 系列运动控制卡
第二章 主要性能
2.1 描述:
 32 位 PCI 总线,即插即用
 所有输入、输出均采用光耦隔离,抗干扰性强
 2 轴或 4 轴伺服/步进电机控制,每轴可独立运动,互不影响
 脉冲输出的频率误差小于 0.1%
 最大脉冲输出频率为 2MHz
 I/O 响应时间小于 500us
 运动过程中可以时时的改变速度
 脉冲输出可用单脉冲(脉冲+方向)或双脉冲(脉冲+脉冲)方式
 各 轴 均 有 位 置 反 馈 输 入 , 32 位 计 数 , 最 大 计 数 范 围
-2,147,483,648~+2,147,483,647
 梯形加/减速
 2-4 轴直线插补
 最大插补速度 1MHz
 回原点模块
 四位拨码开关,可指定 0~9 卡号(适用于 VER:D 以后的版本)
 具有外部信号驱动、位置锁存、硬件缓存功能
 运动中可以实时读出逻辑位置、实际位置、驱动速度
 8940A1 系列最多有 40 路数字输入(每轴位置反馈可作为 2 个输入点
使用,共 8 个)
 8940A1 系列最多有 16 路数字输出,NPN 集电极开路,5-24VDC,额定
电流 50mA,单路最大电流 100mA
 每轴两个限位输入,可设置成无效,作为通用输入使用
 支持在一个系统中使用多达 10 个控制卡
 支持 DOS、WINDOWS95/98/NT/2000/XP/WINCE/WIN7 等操作系统
ADT-8940A1 系列运动控制卡
第三章 应用范围
3.1 描述:
 机器视觉、自动检测设备、AOI;
 生物、医学自动采样设备;
 切割设备:钻石切割机、海绵切割机;
 点胶行业;
 半导体封装行业:固晶机;
 广告行业:数控围字机;
 包装印刷设备:印刷机、移印机;
 雕刻设备;
 工业机器人设备;
 PCB 加工、SMT 等行业;
第四章 ADT-8940A1 系列功能列表
4.1 描述:
√ 具备功能 - 不具备功能 * 可选功能
序号
功能名称
ADT-8940A1
ADT-8941A1
ADT-8920A1
ADT-8940D1
√
√
√
√
√
√
-
-
40 路
40 路
24 路
24 路
16 路
16 路
12 路
12 路
脉冲量输
出模式:
1
脉冲+方
向、脉冲+
脉冲
4 路增量
2
式编码器
输入
3
4
数字信号
输入
数字信号
输出
ADT-8940A1 系列运动控制卡
5
6
7
原点信号
输入
限位信号
输入
硬件急停
输入
√
√
√
√
√
√
√
√
√
√
-
-
√
√
√
√
√
√
√
√
√
√
-
√
√
√
-
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
多轴联动
8
(点位运
动)
9
10
11
12
13
14
15
16
2 轴直线
插补
3 轴直线
插补
4 轴直线
插补
2 轴圆弧
插补
硬件缓存
插补
在线改变
驱动速度
位置锁存
多种回零
模式
ADT-8940A1 系列运动控制卡
硬件篇
第一章 硬件安装
1.1 出货配置:
1.1.1 ADT-8940A1 出货配置:
1. ADT-8940A1 系列用户手册(本手册)
2. ADT-8940A1 系列多轴 PCI 总线高性能运动控制卡
3. ADT-8940A1 系列用户光盘
4. ADT-DB37
1 条
5. ADT-D37GG
1 条
6. ADT-9137 端子板
1 块
7. D62GG
1 条
8. ADT-9162A 端子板
1 块
1.1.2 ADT-8920A1 出货配置:
1. ADT-8940A1 系列用户手册(本手册)
2. ADT-8920A1 二轴 PCI 总线高性能运动控制卡
3. ADT-8940A1 系列用户光盘
4. D62GG
1 条
5. ADT-9162A 端子板
1 块
1.1.3ADT-8940D1 出货配置:
1. ADT-8940A1 系列用户手册(本手册)
2. ADT-8940D1 系列 PCI 总线高性能运动控制卡
3. ADT-8940A1 系列用户光盘
4. D62GG
1 条
5. ADT-9162A 端子板
1 块
ADT-8940A1 系列运动控制卡
1.1.4 ADT-8941A1 出货配置:
1. ADT-8940A1 系列用户手册(本手册)
2. ADT-8941A1 多轴 PCI-E 总线高性能运动控制卡
3. ADT-8940A1 系列用户光盘
4. ADT-DB37
1 条
5. ADT-D37GG
1 条
6. ADT-9137 端子板
1 块
7. D62GG
1 条
8. ADT-9162A 端子板
1 块
ADT-8940A1 系列运动控制卡
1.2 接线板安装尺寸:
1.2 .1ADT-9162A 尺寸图:
ADT-8940A1 系列运动控制卡
1.2 .2ADT-9137 尺寸图:
1.3 安装步骤:
1.3.1 ADT-8940A1 安装步骤:
1. 关闭电脑电源(注:ATX 电源需总电源关闭)
。
2. 打开电脑机箱后盖。
ADT-8940A1 系列运动控制卡
3.
4.
5.
6.
选择一条未占用的 PCI 插槽,插入 ADT-8940A1。
确保 ADT-8940A1 的金手指完整插入 PCI 插槽,拧紧螺丝。
将 D62GG 连接线的一端和控制卡的 J1 接口相连,另一
端和 ADT-9162A 接线端子相连。
根据用户情况决定是否安装 J2 接口线。安装 J2 的步骤:
(1)将 ADT-DB37 扁平线的一端和控制卡的 J2 相连,另
一端和 ADT-DB37 转接板的 P2 相连;(2)在机箱后面固
定好 ADT-DB37 转接板;(3)将 ADT-D37GG 分别和转接
板的 P2 和 ADT-D37GG 接线端子相连。
7.
1.3.2 ADT-8920A1 安装步骤:
1. 关闭电脑电源(注:ATX 电源需关闭总电源)
。
2. 打开电脑机箱后盖。
3. 选择一条未占用的 PCI 插槽,插入 ADT-8920A1。
4. 确保 ADT-8920A1 的金手指完整插入 PCI 插槽,拧紧螺丝。
5. 将 D62GG 连接线的一端和控制卡的 J1 接口相连,另一
端和 ADT-9162A 接线端子相连。
1.3.3 ADT-8940D1 安装步骤:
1. 关闭电脑电源(注:ATX 电源需关闭总电源)
。
2. 打开电脑机箱后盖。
3. 选择一条未占用的 PCI 插槽,插入 ADT-8940D1。
4. 确保 ADT-8940D1 的金手指完整插入 PCI 插槽,拧紧螺丝。
5. 将 D62GG 连接线的一端和控制卡的 J1 接口相连,另一
端和 ADT-9162A 接线端子相连。
1.3.1 ADT-8941A1 安装步骤:
1. 关闭电脑电源(注:ATX 电源需总电源关闭)
。
2. 打开电脑机箱后盖。
3. 选择一条未占用的 PCI-E 插槽,插入 ADT-8941A1。
4. 确保 ADT-8941A1 的金手指完整插入 PCI-E 插槽,拧紧螺
丝。
ADT-8940A1 系列运动控制卡
5.
6.
将 D62GG 连接线的一端和控制卡的 J1 接口相连,另一
端和 ADT-9162A 接线端子相连。
根据用户情况决定是否安装 J2 接口线。安装 J2 的步骤:
(1)将 ADT-DB37 扁平线的一端和控制卡的 J2 相连,另
一端和 ADT-DB37 转接板的 P2 相连;(2)在机箱后面固
定好 ADT-DB37 转接板;(3)将 ADT-D37GG 分别和转接
板的 P2 和 ADT-D37GG 接线端子相连。
第二章 电气连接
2.1 接线图:
2.1.1 ADT-8940A1 接线图:
一块 ADT-8940A1 卡有二个输入/输出接口,其中 J1 为 62 针插座,J2 为 37
针插座。
J1 为 X、Y、Z、A 轴的脉冲输出、开关量输入和开关量输出 OUT0-OUT11
的信号接线;J2 为 X、Y、Z、A 轴的编码器输入和开关量输入的信号接线,
以及开关量输出 OUT12-OUT15 信号的接线;
ADT-8940A1 系列运动控制卡
2.1.2 ADT-8920A1 接线图:
ADT-8920A1 卡的输入/输出接口 J1 为 62 针插座。
J1 为 X、Y 轴的脉冲输出、开关量输入和开关量输出 OUT0-OUT11 的信号接线;
2.1.3 ADT-8940D1 接线图:
一块 ADT-8940D1 卡有 1 个输入/输出接口 J1, J1 为 62 针插座 ,包含 X、Y、Z、A 轴的
脉冲输出、开关量输入和开关量输出 OUT0-OUT11 的信号接线;
ADT-8940A1 系列运动控制卡
2.1.4 ADT-8941A1 接线图:
一块 ADT-8941A1 卡有二个输入/输出接口,其中 J1 为 62 针插座,J2 为 37
针插座。
J1 为 X、Y、Z、A 轴的脉冲输出、开关量输入和开关量输出 OUT0-OUT11
的信号接线;J2 为 X、Y、Z、A 轴的编码器输入和开关量输入的信号接线,
以及开关量输出 OUT12-OUT15 信号的接线;
ADT-8940A1 系列运动控制卡
2.2 线号说明
2.2.1 ADT-8940A1 和 ADT-8941 卡 J1 对应接线板 ADT-9162 线号说明:
线 号
符 号
说 明
1
PCOM1
2
XPU+/CW+
X 脉冲信号+
3
XPU-/CW-
X 脉冲信号-
4
XDR+/CCW+
X 方向信号+
5
XDR-/CCW-
X 方向信号-
6
YPU+/CW+
Y 脉冲信号+
7
YPU-/CW-
Y 脉冲信号-
8
YDR+/CCW+
Y 方向信号+
9
YDR-/CCW-
Y 方向信号-
10
PCOM2
11
ZPU+/CW+
Z 脉冲信号+
12
ZPU-/CW-
Z 脉冲信号-
13
ZDR+/CCW+
Z 方向信号+
用于单端输入的驱动器
用于单端输入的驱动器
不可接外接电源
不可接外接电源
ADT-8940A1 系列运动控制卡
14
ZDR-/CCW-
Z 方向信号-
15
APU+/CW+
A 脉冲信号+
16
APU-/CW-
A 脉冲信号-
17
ADR+/CCW+
A 方向信号+
18
ADR-/CCW-
A 方向信号-
19
INCOM1
20
IN0(XLMT-)
X 反向限位信号,可做通用输入使用
21
IN1(XLMT+)
X 正向限位信号,可做通用输入使用
22
IN2 (XSTOP0)
X 原点信号 0,可做通用输入使用
23
IN3 (XSTOP1)
X 原点信号 1,可做通用输入使用
24
IN4(XEXP+)
X 手动正转信号,可做通用输入使用
25
IN5(XEXP-)
X 手动反转信号,可做通用输入使用
26
IN6 (YLMT-)
Y 反向限位信号,可做通用输入使用
27
IN7 (YLMT+)
Y 正向限位信号,可做通用输入使用
28
INCOM2
29
IN8 (YSTOP0)
Y 原点信号 0,可做通用输入使用
30
IN9 (YSTOP1)
Y 原点信号 1,可做通用输入使用
31
IN10(YEXP+)
Y 手动正转信号,可做通用输入使用
32
IN11(YEXP-)
Y 手动反转信号,可做通用输入使用
33
IN12(ZLMT-)
Z 反向限位信号,可做通用输入使用
34
IN13(ZLMT+)
Z 正向限位信号,可做通用输入使用
35
IN14(ZSTOP0)
Z 原点信号 0,可做通用输入使用
36
IN15(ZSTOP1)
Z 原点信号 1,可做通用输入使用
37
INCOM3
38
IN16(ZEXP+)
Z 手动正转信号,可做通用输入使用
39
IN17(ZEXP-)
Z 手动反转信号,可做通用输入使用
40
IN18(ALMT-)
A 反向限位信号,可做通用输入使用
41
IN19(ALMT+)
A 正向限位信号,可做通用输入使用
42
IN20(ASTOP0)
A 原点信号 0,可做通用输入使用
43
IN21(ASTOP1)
A 原点信号 1,可做通用输入使用
44
IN22(AEXP+)
A 手动正转信号,可做通用输入使用
45
IN23(AEXP-)
A 手动反转信号,可做通用输入使用
20-27 脚开关量输入点公共端
29-36 脚开关量输入点公共端
38-45 脚开关量输入点公共端
ADT-8940A1 系列运动控制卡
46
OUT0
开关量输出点
47
OUT1
开关量输出点
48
OUT2
开关量输出点
49
OUT3
开关量输出点
50
OUTCOM1
51
OUT4
开关量输出点
52
OUT5
开关量输出点
53
OUT6
开关量输出点
54
OUT7
开关量输出点
55
OUTCOM2
56
OUT8
开关量输出点
57
OUT9
开关量输出点
58
OUT10
开关量输出点
59
OUT11
开关量输出点
60
OUTCOM3
OUT8-11 开关量输出点公共负端
61
+12V
内部正 12V 输出,不可接外接电源
62
GND
内部地(如果伺服采用差分输出的高速脉冲口
OUT0-3 开关量输出点公共负端
OUT4-7 开关量输出点公共负端
时,控制卡内部地必须和伺服脉冲输出口的地
线连接)
注意:数字输入和数字输出都为低电平有效
ADT-8940A1 系列运动控制卡
2.2.2 ADT-8940A1 和 ADT-8941 卡 J2 对应接线板 ADT-9137 线号说明:
线 号
符 号
说 明
1
XECA+
X 轴编码器 A 相输入+
2
XECA-
X 轴编码器 A 相输入-,可做通用输入信号 IN32
3
XECB+
X 轴编码器 B 相输入+
4
XECB-
X 轴编码器 B 相输入-,可做通用输入信号 IN33
5
YECA+
Y 轴编码器 A 相输入+
6
YECA-
Y 轴编码器 A 相输入-,可做通用输入信号 IN34
7
YECB+
Y 轴编码器 B 相输入+
8
YECB-
Y 轴编码器 B 相输入-,可做通用输入信号 IN35
9
ZECA+
Z 轴编码器 A 相输入+
10
ZECA-
Z 轴编码器 A 相输入-,可做通用输入信号 IN36
11
ZECB+
Z 轴编码器 B 相输入+
12
ZECB-
Z 轴编码器 B 相输入-,可做通用输入信号 IN37
13
AECA+
A 轴编码器 A 相输入+
14
AECA-
A 轴编码器 A 相输入-,可做通用输入信号 IN38
15
AECB+
A 轴编码器 B 相输入+
16
AECB-
A 轴编码器 B 相输入-,可做通用输入信号 IN39
17
INCOM4
18-25 脚开关量输入点公共端
ADT-8940A1 系列运动控制卡
18
IN24(XIN)
X 轴位置锁存信号, 可做通用输入使用
19
IN25(YIN)
Y 轴位置锁存信号, 可做通用输入使用
20
IN26(ZIN)
Z 轴位置锁存信号, 可做通用输入使用
21
IN27(AIN)
A 轴位置锁存信号, 可做通用输入使用
22
IN28
通用输入
23
IN29
通用输入
24
IN30
通用输入
25
IN31
硬件停止信号,可做通用输入使用
26
OUT12
开关量输出点
27
OUT13
开关量输出点
28
OUT14
开关量输出点
29
OUT15
开关量输出点
30
OUTCOM4
31
+12V
内部+12V 电源正端
不可接外接电源
32
+12V
内部+12V 电源正端
不可接外接电源
33
+5V
内部+5V 电源正端
不可接外接电源
34
+5V
内部+5V 电源正端
不可接外接电源
35
GND
内部电源地线
36
GND
内部电源地线
37
GND
内部电源地线
OUT12-15 开关量输出点公共负端
注意:数字输入和数字输出都为低电平有效
说明:编码器用作通用输入信号时,XECA+、XECB+、YECA+、YECB+、ZECA+、
ZECB+、AECA+、AECB+分别用作对应输入信号的公共端。
公共端电压只能用+5V
...,如果用外部+12V 电源,必须串 1K 电阻,如果用外部+24V 电源,
必须串 3K 电阻。具体接线方法参照本章 2.9:编码器信号做通用输入信号时接线示例。
ADT-8940A1 系列运动控制卡
2.2.3 ADT-8940A1 和 ADT-8941 主卡 J4 端 40PIN 引脚定义:
2.2.4 ADT-8920A1 卡 J1 对应接线板 ADT-9162 线号说明:
ADT-8940A1 系列运动控制卡
线 号
符 号
说 明
1
PCOM1
2
XPU+/CW+
X 脉冲信号+
3
XPU-/CW-
X 脉冲信号-
4
XDR+/CCW+
X 方向信号+
5
XDR-/CCW-
X 方向信号-
6
YPU+/CW+
Y 脉冲信号+
7
YPU-/CW-
Y 脉冲信号-
8
YDR+/CCW+
Y 方向信号+
9
YDR-/CCW-
Y 方向信号-
10
PCOM2
用于单端输入的驱动器
11-18
未定义
未使用
19
INCOM1
20-27 脚开关量输入点公共端
20
IN0(XLMT-)
X 反向限位信号
21
IN1(XLMT+)
X 正向限位信号
22
IN2 (XSTOP0)
X 原点信号 0,可做通用输入使用
23
IN3 (XSTOP1)
X 原点信号 1,可做通用输入使用
24
IN4(XEXP+)
X 手动正转信号,可做通用输入使用
25
IN5(XEXP-)
X 手动反转信号,可做通用输入使用
26
IN6 (YLMT-)
Y 反向限位信号
27
IN7 (YLMT+)
Y 正向限位信号
28
INCOM2
29
IN8 (YSTOP0)
Y 原点信号 0,可做通用输入使用
30
IN9 (YSTOP1)
Y 原点信号 1,可做通用输入使用
31
IN10(YEXP+)
Y 手动正转信号,可做通用输入使用
32
IN11(YEXP-)
Y 手动反转信号,可做通用输入使用
33-36
IN10-IN15
通用输入
37
INCOM3
38-45 脚开关量输入点公共端
38-45
IN16-IN23
通用输入
46
OUT0
开关量输出点
47
OUT1
开关量输出点
48
OUT2
开关量输出点
用于单端输入的驱动器
不可接外接电源
不可接外接电源
29-36 脚开关量输入点公共端
ADT-8940A1 系列运动控制卡
开关量输出点
49
OUT3
50
OUTCOM1
51
OUT4
开关量输出点
52
OUT5
开关量输出点
53
OUT6
开关量输出点
54
OUT7
开关量输出点
55
OUTCOM2
56
OUT8
开关量输出点
57
OUT9
开关量输出点
58
OUT10
开关量输出点
59
OUT11
开关量输出点
60
OUTCOM3
OUT8-11 开关量输出点公共负端
61
+12V
内部正 12V 输出,不可接外接电源
62
GND
内部地
OUT0-3 开关量输出点公共负端
OUT4-7 开关量输出点公共负端
注意:数字输入和数字输出都为低电平有效
ADT-8940A1 系列运动控制卡
2.2.5 ADT-8940D1 卡 J1 对应接线板 ADT-9162 线号说明:
线 号
符 号
说 明
1
PCOM1
2
XPU+/CW+
X 脉冲信号+
3
XPU-/CW-
X 脉冲信号-
4
XDR+/CCW+
X 方向信号+
5
XDR-/CCW-
X 方向信号-
6
YPU+/CW+
Y 脉冲信号+
7
YPU-/CW-
Y 脉冲信号-
8
YDR+/CCW+
Y 方向信号+
9
YDR-/CCW-
Y 方向信号-
10
PCOM2
11
ZPU+/CW+
Z 脉冲信号+
12
ZPU-/CW-
Z 脉冲信号-
13
ZDR+/CCW+
Z 方向信号+
14
ZDR-/CCW-
Z 方向信号-
用于单端输入的驱动器
用于单端输入的驱动器
不可接外接电源
不可接外接电源
ADT-8940A1 系列运动控制卡
15
APU+/CW+
A 脉冲信号+
16
APU-/CW-
A 脉冲信号-
17
ADR+/CCW+
A 方向信号+
18
ADR-/CCW-
A 方向信号-
19
INCOM1
20
IN0(XLMT-)
X 反向限位信号,可做通用输入使用
21
IN1(XLMT+)
X 正向限位信号,可做通用输入使用
22
IN2 (XSTOP0)
X 原点信号 0,可做通用输入使用
23
IN3 (XSTOP1)
X 原点信号 1,可做通用输入使用
24
IN4(XEXP+)
X 手动正转信号,可做通用输入使用
25
IN5(XEXP-)
X 手动反转信号,可做通用输入使用
26
IN6 (YLMT-)
Y 反向限位信号,可做通用输入使用
27
IN7 (YLMT+)
Y 正向限位信号,可做通用输入使用
28
INCOM2
29
IN8 (YSTOP0)
Y 原点信号 0,可做通用输入使用
30
IN9 (YSTOP1)
Y 原点信号 1,可做通用输入使用
31
IN10(YEXP+)
Y 手动正转信号,可做通用输入使用
32
IN11(YEXP-)
Y 手动反转信号,可做通用输入使用
33
IN12(ZLMT-)
Z 反向限位信号,可做通用输入使用
34
IN13(ZLMT+)
Z 正向限位信号,可做通用输入使用
35
IN14(ZSTOP0)
Z 原点信号 0,可做通用输入使用
36
IN15(ZSTOP1)
Z 原点信号 1,可做通用输入使用
37
INCOM3
38
IN16(ZEXP+)
Z 手动正转信号,可做通用输入使用
39
IN17(ZEXP-)
Z 手动反转信号,可做通用输入使用
40
IN18(ALMT-)
A 反向限位信号,可做通用输入使用
41
IN19(ALMT+)
A 正向限位信号,可做通用输入使用
42
IN20(ASTOP0)
A 原点信号 0,可做通用输入使用
43
IN21(ASTOP1)
A 原点信号 1,可做通用输入使用
44
IN22(AEXP+)
A 手动正转信号,可做通用输入使用
45
IN23(AEXP-)
A 手动反转信号,可做通用输入使用
46
OUT0
20-27 脚开关量输入点公共端
29-36 脚开关量输入点公共端
38-45 脚开关量输入点公共端
开关量输出点
ADT-8940A1 系列运动控制卡
47
OUT1
开关量输出点
48
OUT2
开关量输出点
49
OUT3
开关量输出点
50
OUTCOM1
51
OUT4
开关量输出点
52
OUT5
开关量输出点
53
OUT6
开关量输出点
54
OUT7
开关量输出点
55
OUTCOM2
56
OUT8
开关量输出点
57
OUT9
开关量输出点
58
OUT10
开关量输出点
59
OUT11
开关量输出点
60
OUTCOM3
OUT8-11 开关量输出点公共负端
61
+12V
内部正 12V 输出,不可接外接电源
62
GND
内部地(如果脉冲信号是和伺服电机上采用差
OUT0-3 开关量输出点公共负端
OUT4-7 开关量输出点公共负端
分输出的高速脉冲口时,控制卡内部地必须和
伺服的脉冲输出口的地线连接)
注意:数字输入和数字输出都为低电平有效
2.4 脉冲/方向输出信号的连接:
脉冲输出为差动输出方式,可与步进/伺服驱动器很方便的连接。
下图为脉冲与方向的阳极已连通的接法
ADT-8940A1 系列运动控制卡
下图为脉冲与方向信号独立的接法,
建议采用此种方法,
因为是差动接法,
抗干扰性强。
注意:如果脉冲信号是和伺服电机上采用差分输出的高速脉冲口时,控制卡内部地必须和
伺服的脉冲输出口的地线连接.
2.5 编码器输入信号的连接:
注意:ADT-8940A1 系列中只有 ADT-8940A1 有编码器接口
ADT-8940A1 系列运动控制卡
2.6 数字输入的连接:
说明:
(1)IN0-IN7 的公共端为 INCOM1
IN8-IN15 的公共端为 INCOM2
IN16-IN23 的公共端为 INCOM3
IN24-IN31 的公共端为 INCOM4
(2)为了使输入信号有效,首先必须确保对应输入信号的“光耦公共
端”(INCOM1 或 INCOM2 或 INCOM3 或 INCOM4)已经和 12V 或 24V 的电源正端相
ADT-8940A1 系列运动控制卡
连;其次普通开关的一端或接近开关的地线和电源负端(地线)相连;最后普
通开关的另一端或接近开关的控制端必须和端子板对应的输入端相连。
2.7 ADT-9162A 接线端子接线图:
ADT-8940A1 系列运动控制卡
2.8 ADT-9112 接线端子接线图:
说明:当跳线帽 T1、T2 并联使用,当跳线帽接通时,四个公共端被统一
连接到 24 电源;P2 接线端子上 1、8、15、22 脚不需要另外接至 +24 电源。
当跳线帽 T1、T2 断开时,用户需要另外将 1、8、15、22 脚中任意一脚
或 4 脚全部接至+24 电源,上述 24 路输入才可以正常使用。
ADT-8940A1 系列运动控制卡
2.9 编码器信号做通用输入信号时接线示例:
说明:编码器用作通用输入信号时,XECA+、XECB+、YECA+、YECB+、ZECA+、
ZECB+、AECA+、AECB+分别用作对应输入信号的公共端。
公共端电压只能用+5V
...,如果用外部+12V 电源,必须串 1K 电阻,如果用外部+24V 电源,
必须串 3K 电阻。
2.10 数字输出的连接:
通用继电器接法:
ADT-8940A1 系列运动控制卡
固态继电器接法(需注意固态继电器控制端极性)
:
图示为三相固态继电器接法,二相,单相固态继电器与此接法类似。
说明:
(1)OUT0-OUT3 的公共端是 OUTCOM1
(2)为了使输出信号有效,在使用外部电源时,必须确保输出公共端
OUTCOM 和外部电源负端(地线)相连;在使用内部电源时,必须确保内部电
源地线(GND)和地相连。继电器线圈的一端接电源正端;另一端接端子板对
应的输出端。
(3)下图是继电器采用外部电源供电的实际接线图(以 J1 端子板
ADT-9162A、ADT-9112 为例,一般情况下采用 ADT-9112 接线端子时无须接继电
器)
。
ADT-9162A 接线端子接线图:
ADT-8940A1 系列运动控制卡
ADT-9112 接线端子接线图:
说明:P4 端的 1、5、9、13 脚开关量输出点公共负端已经接地,用户也可以
另外接地;请将负载接于+24V 电源与输出触点之间,负载可以是阻性、感性
也可以是容性;ADT-9112 接线端子的数字输出部分,采用功率放大电路设
计,输出电流高达 500MA,可以直接驱动汽缸、电磁阀等器件,无须外接继
电器。
注意:输出外接电压不要超过+24V,负载最大电流请不要超过 500MA。
第三章 驱动安装
ADT-8940A1 系列运动控制卡
ADT-8940A1 系列运动控制卡卡在 Win98/NT/Win2000/WinXP /Win7 下
必须安装驱动程序才能使用,在 DOS 下则无须安装驱动程序。
以下以 Win2000、 WinXP、 Win7 为例,其余系统可参考。
控制卡驱动程序位于光盘上“开发包\驱动\控制卡驱动程序”文件夹下
面,驱动程序文件名为 8940A1.INF。
3.1 Win98 下驱动程序的安装:
以下用 Win98 Professional 中文版为例,说明驱动程序的安装,其余版本的
Win98 与此类似。
在将 ADT-8940A1 卡安装到电脑上的 PCI 插槽后,开机时应以管理员身份登录,
电脑开机后应发现新硬件,出现如下画面:
ADT-8940A1 系列运动控制卡
单击“下一步”后,再显示如下画面
点击“浏览”按钮,选择光盘“开发包\驱动\控制卡驱动程序”,即可找到 8940A1.INF
文件的路径,点击“确定”
,出现如下界面
ADT-8940A1 系列运动控制卡
点击“确定”后,出现如下画面:
单击“下一步”后出现如下画面
单击“完成”后,即完成 ADT-8940A1 卡的安装
ADT-8940A1 系列运动控制卡
3.2 WinXP 下驱动程序的安装:
WinXP 下的安装与上面类似,参考下图:
按上图选择后,出现如下画面
按上图选择后,再单击“下一步”后,出现如下画面
ADT-8940A1 系列运动控制卡
点击“浏览”按钮,选择光盘“开发包\驱动\控制卡驱动程序”
,即可找到
8940A1.INF 文件的路径,点击“下一步”
,出现如下界面
ADT-8940A1 系列运动控制卡
单击“完成”后,即完成 ADT-8940A1 卡的安装
3.3 Win7 下驱动程序的安装
Win7 32 位或 64 位系统下的安装步骤如下:
1、将控制卡插上 PCI 插槽后,通过“我的电脑”按鼠标右键选择“属性”
,
进入设备管理器,如图所示:
展开“其他设备”
,选中“PCI 数据捕获和信号处理器”,按鼠标右键,
ADT-8940A1 系列运动控制卡
如下图所示:
2、在弹出的对话框中,单击 “更新驱动程序软件(P)”,出现如下对话
框:
选择“浏览计算机以查找驱动程序软件(R)”选项,然后点击“浏览(R)”
按钮,指定搜索的驱动所在的路径,如下图所示:
ADT-8940A1 系列运动控制卡
3、单击“确定”后,出现如下对话框:
4、单击“下一步”后,开始安装驱动程序后,出现如下界面:
ADT-8940A1 系列运动控制卡
5、选择“始终安装此驱动程序软件(I)”后,出现如下界面
等待完成,出现如下对话框
ADT-8940A1 系列运动控制卡
即完成 ADT-8940A1 卡的安装。
注意:WIN7 系统需要管理员权限对 PCI 驱动进行加载,如果第一次运行
控制卡应用程序直接双击,会导致控制卡初始化失败,所以在第一次安装完
成后,必须对控制卡应用程序(比如 VC 示范程序“DEMO.EXE”)按鼠标右键,
选择 “以管理员身份运行(A)”程序(如下图),之后启动应用程序就只用
双击就可以正常运行。
ADT-8940A1 系列运动控制卡
第四章 电气规格
4.1 开关量输入:
通道:35 路,全部光耦隔离。
输入电压:12-24V
高电平>4.5V
低电平<1.0V
隔离电压:2500V DC
4.2 计数输入:
通道:4 路 AB 相编码输入,全部光耦隔离。
最高计数频率:2MHz
输入电压:5-24V
高电平>4.5V
低电平<1.0V
隔离电压:2500V DC
4.3 脉冲输出:
通道:4 脉冲,4 方向,全部光耦隔离。
最高脉冲频率:4MHz
输出类型:5V 差动输出
输出方式:脉冲+方向 或 脉冲+脉冲
4.4 开关量输出:
输出通道:32 路,全部光耦隔离。
输出类型:NPN 集电极开路 5-24VDC,最大电流 100mA
4.4 电源输出:
输出电压: +5V。
输出类型:直流源,最大电流 500mA。
ADT-8940A1 系列运动控制卡
第五章 常见伺服接线图
5.1 众为兴 QX 系列驱动器接线图:
下图为控制卡接 QX 伺服驱动器接线:使用外部电源、外部使能,含报警信
号。
ADT-8940A1 系列运动控制卡
5.2 松下 A5 伺服接线图(仅供参考):
ADT-8940A1 系列运动控制卡
5.3 伺服差分 Z 接控制卡时电路转换图:
ADT-8940A1 系列运动控制卡
第六章 工作环境
6.1 工作温度:
工作温度: 0℃—60℃
6.2 储存温度:
储存温度: -20℃—80℃
6.3 工作湿度:
工作湿度: 20%—95%
6.4 储存湿度:
储存湿度: 0%—95%
ADT-8940A1 系列运动控制卡
软件编程篇
第一章 功能说明
1.1 脉冲输出方式:
脉冲输出有独立2脉冲和1脉冲两种方式,采用独立2脉冲方式时,正
方向驱动由PU/CW 输出驱动脉冲,负方向驱动由DR/CCW输出驱动脉
冲;采用1脉冲方式时,由PU/CW输出驱动脉冲,由DR/CCW输出方向信
号。
1.2 硬件限制信号:
硬件限制信号(LMT+,LMT-)是限定正方向和负方向驱动脉冲输出
的输入信号,可设置成有效和无效,以及高低电平,并且正负限位可单独
设置有效/无效。设置成无效时可作为普通输入点使用。
硬件限制信号(STOP0,STOP1)是可以实现硬件停止各轴驱动的输
入信号,可设置为有效和无效,以及高低电平停止方式,设置为无效时可
做一般输入点使用,另外STOP0,STOP1信号在插补驱动时仅仅对最低插
补轴有效。
1.3 直线插补:
本卡可作2-4轴直线插补,支持任意2轴和任意三轴直线插补,采用改
进的逐点比较法实现,可保证长轴的脉冲是均匀的,精度在一个脉冲以内。
首先取参与插补的轴中发出脉冲最多的轴,此轴即为长轴,其余轴
按比例分配,速度控制只要控制长轴的速度即可。
ADT-8940A1 系列运动控制卡
举例说明如下(1-X轴,2-Y轴,3-Z轴,4-A轴)
做 4 轴直线插补
1 号轴发 1000 个脉冲,2 号轴发 500 个,3 号轴发 250 个,4 号轴发
2000 个。
从上图可知,W轴为长轴,其余轴按脉冲比例分配输出。
关于插补的速度,虽然是设置参与插补的轴中,轴号小的轴的速度,
实际是长轴以这个速度运动,如:在X-Y直线插补时,X移动距离大于Y
移动距离时,X为长轴,X轴的驱动速度为设定的速度,X移动距离小于Y
移动距离时,Y为长轴,Y轴的驱动速度为设定的速度。
例一:2、3轴作两轴直线插补,2轴正向发10000个脉冲,3轴反向发5000
个脉冲,即2号轴为长轴
set_startv(0,2,1000);
set_speed(0,2,1000);
inp_move2(0,2,3,10000,-5000);
执行如上程序后,2 号轴为长轴,以 1000/2=500Hz 的频率发出 10000
个脉冲,3 号轴的频率应为 500*5000/10000=250Hz。
例二:2、3 轴作两轴直线插补,2 轴正向发 5000 个脉冲,3 轴反向发
10000 个脉冲,即 2 号轴为长轴
set_startv(0,2,1000);
set_speed(0,2,1000);
inp_move2(0,2,3,5000,-10000);
执行如上程序后,3 号轴为长轴,以 1000/2=500Hz 的频率发出 10000
个脉冲,2 号轴的频率应为 500*5000/10000=250Hz。
上面以匀速为例为方便计算运行速度,插补也可按梯形加减速运动。
ADT-8940A1 系列运动控制卡
1.4 硬件缓存插补:
硬件缓存插补功能可以有效的避免两次插补之间出现停顿的现象,从
而提高加工效率。
对于普通的插补指令(不带fifo前缀的插补),如果需要在上一插补
点结束后继续下一插补,只能不断查询上一插补是否完成,然后输出下一
插补的数据,如果上位机的速度较慢,或者上位机运行多任务操作系统,
在两次插补之间就会出现停顿,会影响插补的效果,插补速度也难以提高。
硬件缓存插补功能可以有效解决这一问题,它可以将多条插补命令连续存
放在硬件缓存空间内。即便是已经在执行插补命令运动,也可写入插补命
令。
当一个空的硬件缓存空间有命令写入时,控制卡会立即执行第一条写
入的命令,并且按照命令先写入先执行的原则执行,当硬件缓存空间为空
时执行完当前插补运动后自动停止。向硬件缓存空间存放插补命令时需要
预先判断缓存空间是否满,若空间已满就不能继续写入插补命令了,否则
继续写入会造成命令丢失。
注意:
1.当执行硬件缓存插补运动时,需要立即停止插补运动时,需要先
清除缓存,然后停止当前运动。
2.在执行硬件缓存插补时不要再执行其它运动命令,否则会引起运
动混乱。
1.5 定量驱动:
定量驱动的意思是以固定速度或加/减速度输出指定数量的脉冲。需
要移动到确定的位置或进行确定的动作时,使用此功能。加/减速的定量
驱动如下图所示,输出脉冲的剩余数比加速累计的脉冲数少时就开始减
速,输出指定的脉冲数后驱动结束。
进行加/减速的定量驱动需要设定下列参数:
a) 加/减速 A/D
b) 初始速度 SV
c) 驱动速度 V
d) 输出脉冲数 P
ADT-8940A1 系列运动控制卡
加/减速定量驱动是一般如上图所示从计算的减速点开始自动减速,
1.6 速度曲线:
1.6.1 定速驱动:
定速驱动就是以一成不变的速度输出驱动脉冲。如果设定的驱动速度小
于初始速度,就没有加/减速驱动,而是定速驱动。使用搜寻原点、编码器Z
相等信号时,找到信号后马上要立即停止的话,不必进行加/减速驱动,只需
运行低速的定速驱动。
为了定速驱动,下列参数需预先设定:

范围 R

初始速度 SV

驱动速度 V
1.6.2 直线加/速减速驱动:
直线加/减速驱动是线性地从驱动的初始速度加速到指定的驱动速度。
定量驱动时,加速的计数器记录加速所累计的脉冲数。当剩余输出脉冲
ADT-8940A1 系列运动控制卡
数少于加速脉冲后,就开始减速(自动减速)。减速时将用指定的减速度线
性地减速至初始速度。
为了直线加/减速驱动,下列参数需预先设定:

范围 R

加速度 A 加速度和减速度

减速度 D 加/减速度个别设定时的减速度( 必要时)

初始速度 SV

驱动速度 V
1.7 位置锁存:
利用每个轴上的 IN 信号实现硬件位置锁存功能,利用一个锁存信号可以
锁定所有轴的当前位置,锁定的位置可以是逻辑位置,也可以实际位置。
位置锁存的功能在测量系统中有重要的应用
1.8 外部信号驱动:
外部信号驱动是指利用外部信号(手轮或开关)控制的运动,主要用于手
动调试机器过程中,在示教方式的系统中尤为方便。
为了简化接线,本运动控制卡将四个轴的正向驱动信号短接在一起,将
四个轴的负向驱动信号短接在一起,从而保证外部信号的对外接口只有一路
编码器的信号线。
第二章 运动控制库函数使用导航
2.1 ADT-8940A1 系列控制卡函数库概述:
ADT-8940A1 函数库实质是用户操作运动控制卡的接口,用户通过调用
ADT-8940A1 系列运动控制卡
接口函数,即可控制运动控制卡完成相应的功能。
运动控制卡提供了 DOS 下的运动函数库和 Windows 下的动态链接库,
下面分别介绍 DOS 和 Windows 下的函数库的调用方法。
2.2 Windows 下动态链接库的调用:
Windows 下的动态链接库“8940A1.dll”利用 VC 编写而成,位于光盘“开
发包\驱动\动态链接库”下,适用于 Window 下常用的编程语言工具:VB、
VC、C++Builder、VB.NET、VC.NET、Delphi 和组态软件 LabVIEW 等。
2.3 VC 中调用:
(1) 新建一个项目;
(2) 将光盘“开发包\VC”下的“8940A1.lib”和“adt8940a1.h”文件拷
贝到新建项目的路径下;
(3) 在新建项目”工作区”的”文件视图”中,右击鼠标,选择“Add Files to
Project”,在插入文件对话框中,文件类型选择为“Library Files(.lib)”,
搜索出“8940A1.lib”并且选择,点击“OK”,完成静态库的加载;
(4) 在源程序文件或头文件或全局头文件“StdAfx.h”的申明部分加上
#include “adt8940a1.h“;
经过上述四步,用户即可调用动态链接库中的函数。
说明:VC.NET 中的调用方法和 VC 相似。
2.4 VB 中调用:
(1) 新建一个项目;
(2) 将光盘“开发包\VB”下的“adt8940a1.bas”文件拷贝到新建项目的
路径下;
(3) 选择“工程\添加模块”菜单命令,选择对话框中的“现存”
标签页,搜索出“adt8940a1.bas”模块文件,点击打开按钮;
经过上述三步,即可在程序中调用动态链接库的函数。
说明:VB.NET 中的调用方法和 VB 相似。
2.5 C++Bulilder 中调用:
(1) 新建一个项目;
(2) 将光盘中“开发包\C++Builder”中的“8940A1.lib”和“adt8940a1.h”
拷贝到新建项目路径下;
(3) 选择“Project\Add to Project”菜单命令,在对话框中,文件类型选
ADT-8940A1 系列运动控制卡
择为“Library files(*.lib)”,搜索出“8940a1.lib”文件,点击“打开”
按钮;
(4) 在程序文件的申明部分加上#include “adt8940a1.h”;
经过上述四步,即可在程序中调用动态链接库。
2.6 LabVIEW 8 中的调用:
(1) 新建一个 VI;
(2) 将光盘中“开发包\驱动\控制卡驱动”中“8940A1.dll”拷贝到新建
路径下;
(3) 在需要调用库函数的地方,在程序框图的窗口中,在函数模板中选择
“Connectivity\Libraries & Executables”下面的“Call Library Function
Node”节点,添加到调用处;
(4) 双击节点,首先在“Call Library Function”对话框中选择“8940A1.dll”
动态链接库,其次选择需要的库函数,最后配置好函数的返回值和参
数属性;
经过上述四步,即可在程序中调用动态链接库。
2.7 DOS 下库函数的调用:
DOS 下的函数库是利用 Borland C3.1 编译而成,存放在光盘“开发
包\C++或 C”下,库函数分为大模式和巨模式两种,适用于标准 C 和
Borland C3.1 或以上版本。
Borland C 调用函数库的方法如下:
(1) 在 Borland C 的开发环境下,选择“Project\Open Project”命令新建
一个项目;
(2) 将 光 盘 中 “ 开 发 包 \C 或 C++ ” 下 面 的 “ 8940A1H.LIB ” 或
“8940A1L.LIB”和“8940A1.H”文件拷贝到新建项目路径下;
(3) 选择“Project\Add Item”命令,在对话框中选择“8940A1H.LIB”
或“8940A1L.LIB”,单击“Add”按钮;
(4) 在用户程序文件中增加#include “8940A1.h”申明;
经过上述四步,即可在程序中调用库函数。
ADT-8940A1 系列运动控制卡
2.8 库函数返回值及其含义:
为了保证用户在使用库函数时,正确掌控库函数的执行情况,函数库中
的每个库函数都会在执行结束后,返回库函数的执行结果。用户依据返回值,
可以很方便地判断出函数调用是否成功。
函数库中除“int adt8940a1_initial(void)”和“int read_bit(int cardno, int
number)”的返回值特殊外,其他函数的返回值只有“0”和“1”两种情况,
其中“0”表示调用正确,“1”表示调用失败。
下面以列表的形式介绍函数返回值的含义。
函数名
adt8940a1_initial
Read_bit
其他所有函数
返回值
含义
-1
未安装相关服务
-2
PCI 插槽故障
0
没有安装控制卡
>0
代表控制卡的数量
0
低电平
1
高电平
-1
代表卡号或输入点超限错误
0
正确
1
错误
说明:返回值 1 错误,正常是由于调用库函数的过程中,传递的参数值
cardno(卡号)或 axis(轴号)错误引起的。卡号的值从 0、1、2 依次向上编号,
所以在只用一块卡的情况下,卡号必须为 0;轴号的值只能是 1、2、3、4,
其他的值都是错误的。
ADT-8940A1 系列运动控制卡
第三章 运动控制开发要点
本卡在编程时常会遇到一些问题,其实,大部分问题是由于对本控制卡
的原理不理解而产生的,以下就一些常见的、易产生误解的情况作一些说明。
3.1 卡的初始化:
在程序的开始首先应调用adt8940a1_initial()函数,确认ADT8940A1卡的
安装是否正确,然后设置脉冲输出的模式,限位开关的工作模式,以上参数
应根据具体的机器来设置,一般只应在程序初始化时设置一次,以后不应再
设置。
说明:库函数“adt8940a1_initial”是通往ADT8940A1卡的“门户”,只
有在调用该函数对运动控制卡初始化成功后,再调用其他函数才有意义。
3.2 速度的设定:
3.2.1 匀速运动:
参数的设置很简单,只需要将驱动速度设置成等于起始速度,其余的
参数不用设置。
相关函数:
set_startv
set_speed
3.2.2 对称直线加减速:
这是最常用的一种方式,需设置起始速度、驱动速度,加速度,采用
自动减速。
相关函数:
set_startv
set_speed
set_acc
注意:加速度函数使用的值应乘上125才为实际的加速度。
3.2.3 插补速度:
ADT8940A1卡可以任意2轴作直线插补,任意3轴作直线插补,以及4
轴直线插补。
ADT-8940A1 系列运动控制卡
关于插补的速度,是使用最前面的一个轴的速度参数,作为长轴的速
度,例如
inp_move2 (0,3,1,100,200)
是采用第一个轴的速度参数,即X轴,而与参数中的顺序无关。
inp_move3 (0,3,4,2,100,200,500)
是采用第二个轴的速度参数,即Y轴,而与参数中的顺序无关。
说明:插补时的速度倍率是单轴运动时倍率的一半,即在同样的参数
时,插补的速度只有单轴运动的一半。
3.3 设定 STOP0、STOP1 信号:
STOP0、STOP1为每个轴都有的信号,因此共有8个STOP信号,此信
号主要用于机器回原点时使用,回原点方式可根据情况使用一个或多个信
号,但需注意的是此信号为减速停止,对于采用高速回零时应注意,可采
用原点开关前加一减速开关,即采用两个STOP信号,一个作为原点开关,
一个作为减速开关。也可只用一个信号,在碰到STOP信号后减速停止后,
反向匀速运动再次碰到时停止。
3.4 通过拨码开关设定卡号:
初始化卡时,控制卡会根据其硬件版本和带拨码开关的情况,判断是否
需要启用拨码开关。
只有当PCI插槽中8940A1卡都带拨码开关,并且其硬件版本都不低于
3.0,才能通过拨码值设置卡号;否则将不启用拨码开关,初始化卡时会根据
PCI插槽距离CPU的远近,自动分配卡号,卡号的顺序从0,1,2...依次增加。
例如:如果3张8940A1卡全部带有拔码开关,且硬件版本为3.0,可以
设置3个不同的拨码值为各张卡的卡号。如果1张8940A1卡带拔码开关,
硬件版本为3.0,同时有其他不带拔码开关的8940A1卡一起使用时,不启
用拨码开关。如果1张8940A1卡带拔码开关,硬件版本为2.6(低于3.0),不
能启用拨码开关。
ADT-8940A1 系列运动控制卡
第四章 系统安全机制
4.1 错误信息监测:
使用get_stopdata()函数获取错误信息可获取轴的停止信息,包括由硬
件限位引起的停止,原点信号引起的停止,正常停止,以及其他停止。
4.2 限位:
运动控制卡可使用限位开关或者软件限位控制轴的运动范围,负向限
位开关或者负向软件限位触发后,
只能朝正向运动,
而不能再朝负向运动;
正向限位开关或者正向软件限位触发后,只能朝负向运动,而不能再朝正
向运动.
ADT-8940A1 系列运动控制卡
第五章 回零
5.1 回零运动:
5.1.1 所需函数列表:
设置回零模式
SetHomeMode_Ex
设置回零速度
SetHomeSpeed_Ex
启动回零
HomeProcess_Ex
查询状态
GetHomeStatus_Ex
注意事项
见重点备注
以单轴回原点进行举例,多轴亦可用。
采用STOP0为原点信号
(1) 回原点分为四大步:
第一步:快速接近stop0(logical0原点设置),找到stop0;
第二步:慢速反向离开stop0,反向移动指定原点范围脉冲数;
第三步:再次慢速接近stop0;
第四步:慢速接近stop1(logical1编码器Z相).
(2) 第四步可以选择是否执行,通过logical1来选择.
ADT-8940A1 系列运动控制卡
5.1.2 例程
void main()
{
int retnX = -1;
retnX = SetHomeMode_Ex(0, 1, 0, 0, 0, -1, 2000, 400, 100); //'设置回零模式
retnX = SetHomeSpeed_Ex(0, 1, 100, 500, 200, 100, 200);
//'设置回零速度
retnX = HomeProcess_Ex(0, 1) ;//'启动回零
if (retnX < 0
{
|| retnX > 20)
// MessageBox ("回零失败");
Return;
}
while(true)
{
//DoEvent();
retnX = GetHomeStatus_Ex(0, 1);//查询回零状态
// HomeStatus.Caption = "回原点状态:" + CStr(retnX)
if (retnX < 0
|| retnX > 10)
{ //MessageBox("回零失败");
break;
}
ADT-8940A1 系列运动控制卡
if( retnX == 0 )
{
//MessageBox ("成功");
break;
}
}
}
5.1.3 重点备注
回零注意参数设置,原点(STOP0)搜寻起始速度不能大于原点搜寻速
度,如不需搜寻 STOP1 信号,把此参数设为-1,需要时,请按照函数说
明进行设置即可,上例是以 X 轴为例,如需多轴回零,只需再增加函数调
用即可,注意,此处举例并未搜寻 Z 相信号,即 STOP1 信号,如需,可
进行设置即可调用。
ADT-8940A1 系列运动控制卡
第六章 联动控制
联动控制包括单轴点位运动、多轴点位运动,在项目中具体实施,根据需
要。
本章所有例程都相互独立,在实施项目的过程中卡的初始化和倍率的设置
只需设一次即可,即在程序系统初始化的过程中卡的初始化设置后,就无
需设置.
6.1 单轴定量匀速运动:
6.1.1 所需函数列表
设置初始速度
set_startv
设置驱动速度
set_speed
驱动指令
pmove
读驱动状态
get_status
注意事项
见重点备注
6.1.2 例程
目的:
让X轴的步进电机以1000 pps的速度运动10000步:
程序如下:
#include “adt8940a1.h”
ADT-8940A1 系列运动控制卡
void main()
{
int cardno;
cardno= adt8940a1_initial();
if(cardno<=0) return;
//未安装ADT8940卡
//以下只对第一块卡X轴操作也可对多
个轴进行操作
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
set_pulse_mode(0,1,1,0,0);
//设置X轴为脉冲+方向方式
set_startv(0,1,1000);
set_speed(0,1,1000);
//如果起始速度大于或等于驱/动
速度,则为匀速运动
pmove(0,1,10000);
//开始驱动
int s;
while(1)
{
get_status(0,1,&s);
//读驱动状态
if(s==0)break;
//驱动结束跳出
……
//可执行读键盘,显示位置等函数
}
return ;
}
6.1.3 重点备注
本例程中涉及控制卡初始化函数,赔率函数以及设置脉冲模式函数之前如
果设置,就不需要再次设置,只需在程序初始化中设置一次即可。
6.2 单轴定量对称梯形加/减速运动:
6.2.1 所需函数列表:
设置初始速度
set_startv
设置驱动速度
set_speed
ADT-8940A1 系列运动控制卡
设置加/减速度
set_acc
驱动指令
pmove
读驱动状态
get_status
注意事项
见重点备注
6.2.2 例程:
目的:
让X轴以下列速度运动20000步
起始速度:2000 pss
驱动速度:20000 pss
加/减速度:40000 pss
加速时间应为(20000-2000)/40000=0.45 秒
加速脉冲应为0.45*(20000+2000)/2=4950 个
减速与加速相同。
#include “adt8940a1.h”
void main()
{
ADT-8940A1 系列运动控制卡
int cardno;
cardno=adt8940a1_initial();
if(cardno<=0) return;
//未安装ADT8940卡
//以下只对第一块卡X轴操作
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
set_pulse_mode(0,1,1,0,0);
//设置X轴为脉冲+方向方式
set_startv(0,1,2000);
//起始速度 2000
set_speed(0,1,20000);
//驱动速度 20000
set_acc(0,1,40000);
//加/减速度
pmove(0,1,20000);
//开始驱动
int s;
while(1)
{
get_status(0,1,&s);
//读驱动状态
if(s==0)break;
//驱动结束跳出
……
//可执行读键盘,显示位置等函数
}
return ;
}
6.2.2 重点备注:
本例程中涉及控制卡初始化函数,设置脉冲模式函数之前如果设置,就不
需要再次设置,只需在程序初始化中设置一次即可。
6.3 多轴运动
6.3.1 所需函数列表:
设置初始速度
set_startv
设置驱动速度
set_speed
设置加速度
set_acc
ADT-8940A1 系列运动控制卡
驱动指令
pmove
连续运动指令
continue_move
读驱动状态
get_status
注意事项
见重点备注
以上虽为单轴操作,但实际上可同时设置另外几轴的数据,互相之间
并不影响,如在X轴驱动时,设置好Y轴的参数,然后驱动Y轴,对X轴的
运动不会有任何影响,如此可独立操作四轴,
下面是一个简单的例子,X轴以匀速(1000pps)运动1000步,Y轴以
直线加减速运动300000步(起始速度10000pps,驱动速度200000pps,加
减时间 0.2秒)
,Z轴以完全S曲线加速连续运动(起始速度 100 pps,驱动
速度4000 pss,加速时间1.2秒)
,W轴以匀速(300000 pps)连续运行,按
‘s’键停止。
首先计算Y轴的加速度,为(200000-10000)/0.2=950000
然后计算Z轴的加速度及加速度的变化率,加速度计算方法为:首先
在0.6秒内加速至2000 pps,然后0.6秒内再加至4000 pps,则加速度为
2000*2/0.6=6667 pps/sec,加速度的变化率为6667/0.6=11111 pps/sec/sec。
6.3.2 例程:
程序如下:
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include “ADT-8940a1.h”
void main()
{
int cardno;
cardno=ADT-8940a1_initial();
if(cardno<=0) return;
//未安装ADT-8940卡
//以下只对第一块卡X轴操作
//如果有多块卡,即cardno>1
ADT-8940A1 系列运动控制卡
//可修改卡号,操作其他卡
set_pulse_mode(0,1,1,0,0);
//设置X轴为脉冲+方向方式
set_pulse_mode(0,2,1,0,0);
//设置Y轴为脉冲+方向方式
set_pulse_mode(0,3,1,0,0);
//设置Z轴为脉冲+方向方式
set_pulse_mode(0,4,1,0,0);
//设置W轴为脉冲+方向方式
set_startv(0,1,1000);
//起始速度 1000
set_speed(0,1,1000);
//驱动速度 1000
//Y轴
set_startv(0,2,10000);
set_speed(0,2,200000);
set_acc(0,2,950000);
//Z轴
set_startv(0,3,100);
set_speed(0,3,4000);
set_acc(0,3,6667);
//A轴
set_startv(0,4,300000);
set_speed(0,4,300000);
pmove(0,1,1000);
pmove(0,2,300000);
continue_move(0,3,0);
continue_move(0,4,0);
int s1,s2,s3,s4;
while(1)
{
get_status(0,1,&s1);
get_status(0,2,&s2);
get_status(0,3,&s3);
get_status(0,4,&s4);
//起始速度 10000
//驱动速度 200000
//加速度 950000
// 300000
//开始驱动
//读X驱动状态
//读Y驱动状态
//读Z驱动状态
//读A驱动状态
ADT-8940A1 系列运动控制卡
if(s1==0 && s2==0 && s3==0 && s4==0)break;
//驱动结束跳出
if(kbhit())
key=getch();
else
key=-1;
if(key==’s’)
{
dec_stop(0,3);
dec_stop(0,4);
}
}
return ;
}
6.3.3 重点备注:
本例程中涉及控制卡初始化函数,设置脉冲模式函数之前如果设置,就不
需要再次设置,只需在程序初始化中设置一次即可。
第七章 插补运动控制
本章所有例程都相互独立,在实施项目的过程中卡的初始化和倍率的设置
只需设一次即可,即在程序系统初始化的过程中卡的初始化和倍率设置
后,就无需设置,请客户注意,倍率设置一次即可,倍率如何设置,见第
三章 3.1 节控制卡的初始化。
7.1 两轴直线插补(匀速)
7.1.1 所需函数列表:
设置初始速度
set_startv
设置驱动速度
set_speed
驱动指令
inp_move2
ADT-8940A1 系列运动控制卡
读插补状态
get_inp_status
注意事项
见重点备注
插补速度是以第一轴速度为基准,开始插补前只要设好第一轴的参数
即可。下面是一个匀速直线插补的简单例子,圆弧插补与多轴直线插补的
匀速驱动基本相同。
7.1.2 例程:
程序如下:
#include “adt8940a1.h”
void main()
{
int cardno;
cardno=adt8940a1_initial();
if(cardno<=0) return;
set_pulse_mode(0,1,1,0,0);
set_pulse_mode(0,2,1,0,0);
set_startv(0,1,1000);
set_speed(0,1,1000);
//未安装ADT8940卡
//以下只对第一块卡X轴操作
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
//设置X轴为脉冲+方向方式
//设置Y轴为脉冲+方向方式
//X起始速度 1000
//X驱动速度 1000
inp_move2(0,1,2,10000,-20000); //X-Y开始插补
//X正向移动10000步
//Y反向移动20000步
int s1;
while(1)
{
get_inp_status(0,&s1); //读插补状态
if(s1==0)break; //插补结束跳出
……
//可执行读键盘,显示位置等函数
ADT-8940A1 系列运动控制卡
}
return ;
}
7.1.3 重点备注:
本例程中涉及控制卡初始化函数,赔率函数以及设置脉冲模式函数之前如
果设置,就不需要再次设置,只需在程序初始化中设置一次即可。
7.2 两轴直线插补(加减速)
7.2.1 所需函数列表:
设置初始速度
set_startv
设置驱动速度
set_speed
设置加速度
set_acc
插补指令
inp_move2
读插补状态
get_inp_status
注意事项
见重点备注
两轴直线插补的加/减速驱动,只要将第一轴设置成直线加减速或S曲
线加减速即可,注意,驱动开始之前须设成减速有效状态。
将上面的例子改成加减速驱动,X-Y直线加减速。
7.2.2 例程:
程序如下:
#include “adt8940a1.h”
void main()
{
int cardno;
cardno=adt8940a1_initial();
if(cardno<=0) return;
//未安装ADT8940卡
//
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
ADT-8940A1 系列运动控制卡
set_pulse_mode(0,1,1,0,0); //设置X轴为脉冲+方向方式
set_pulse_mode(0,2,1,0,0);
//设置Y轴为脉冲+方向方式
set_pulse_mode(0,3,1,0,0);
//设置Z轴为脉冲+方向方式
set_pulse_mode(0,4,1,0,0);
//设置W轴为脉冲+方向方式
set_startv(0,1,1000);
//X起始速度 1000
set_speed(0,1,8000);
//X驱动速度
8000
set_acc(0,1,1000);
inp_move2(0,1,2,10000,-20000); //X-Y开始插补
//X正向移动10000步
//Y反向移动20000步
int s1;
while(1)
{
get_inp_status(0,&s1); //读插补状态
if(s1==0)break; //插补结束跳出
……
//可执行读键盘,显示位置等函数
}
return ;
}
7.2.3 重点备注:
本例程中涉及控制卡初始化函数,设置脉冲模式函数之前如果设置,就不
需要再次设置,只需在程序初始化中设置一次即可。
7.3 三轴直线插补(加减速)
7.3.1 所需函数列表:
设置初始速度
set_startv
设置驱动速度
set_speed
设置加速度
set_acc
插补指令
inp_move3
ADT-8940A1 系列运动控制卡
读插补状态
get_inp_status
注意事项
见重点备注
三轴直线插补可为任意三轴,以第一轴的速度为基准。
下面是一个直线加减速的简单的例子,其余加减速方式只须改一下设
置即可。
7.3.2 例程:
#include “adt8940a1.h”
void main()
{
int cardno;
cardno=adt8940a1_initial();
if(cardno<=0) return;
//未安装ADT8940卡
//以下只对第一块卡X轴操作
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
set_pulse_mode(0,1,1,0,0);
set_pulse_mode(0,2,1,0,0);
set_pulse_mode(0,3,1,0,0);
set_pulse_mode(0,4,1,0,0);
//设置X轴为脉冲+方向方式
//设置Y轴为脉冲+方向方式
//设置Z轴为脉冲+方向方式
//设置W轴为脉冲+方向方式
set_startv(0,1,1000);
set_speed(0,1,8000);
set_acc(0,1,1000);
//X起始速度
//X驱动速度
1000
8000
inp_move3(0,1,2,3,5000,10000,-20000); //X-Y-Z开始插补
//X正向移动5000步
//Y正向移动10000步
//Z反向移动20000步
int s1;
while(1)
ADT-8940A1 系列运动控制卡
{
get_inp_status(0,&s1);
if(s1==0 )break;
……
//读插补状态
//插补结束跳出
//可执行读键盘,显示位置等函
数
}
return ;
}
7.3.3 重点备注:
本例程中涉及控制卡初始化函数,设置脉冲模式函数之前如果设置,就不
需要再次设置,只需在程序初始化中设置一次即可。
ADT-8940A1 系列运动控制卡
第八章 轨迹运动控制
本章所有例程都相互独立,在实施项目的过程中卡的初始化设置只需设一
次即可,即在程序系统初始化的过程中卡的初始化和倍率设置后,就无需
设置.此处仅举例说明,实现圆弧可用缓存软件圆弧插补。
8.1 缓存插补
8.1.1 所需函数列表:
清除缓存
reset_fifo
读取缓存是否满
read_fifo_full
缓存插补
fifo_inp_move2
注意事项
见重点备注
8.1.2 例程:
程序如下:
#include “adt8940a1.h”
void main()
{
int cardno;
int s1,s2;
cardno=adt8940a1_initial();
if(cardno<=0) return;
//未安装ADT8940卡
//以下只对第一块卡X轴操作
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
set_pulse_mode(0,1,1,0,0);
//设置X轴为脉冲+方向方式
set_pulse_mode(0,2,1,0,0);
//设置Y轴为脉冲+方向方式
int m=reset_fifo(0);//清除缓存
for (int i=0; i<50; )
{
ADT-8940A1 系列运动控制卡
//加工50段数据,每段为100个脉冲
if (read_fifo_full(0)==0)//0:未满,1:满
{
//读取缓存是否满
m=fifo_inp_move2(0,1,2,100,100,3000);
i++;
}
else
{
//MessageBox("缓存满,稍后存放");
break;
}
}
return ;
}
8.1.3 重点备注:
本例程中涉及控制卡初始化函数,设置脉冲模式函数之前如果设置,就不
需要再次设置,只需在程序初始化中设置一次即可。
ADT-8940A1 系列运动控制卡
第九章 通用数字量 I/O
运动控制卡为用户提供了一个通用的数字量输入/输出口,主机可通过指
令的方式对输入/输出口进行操作。
9.1 输入口定义:具体端口定义见硬件篇第二章
9.2 输出口定义:具体端口定义见硬件篇第二章
9.3 输出口:
9.3.1 所需函数列表:
输出函数
write_bit
注意事项
见重点备注
9.3.2 例程:
程序如下:以1号端口为例,打开输出
#include “adt8940a1.h”
void main()
{
Const int cardno = 0;
write_bit(cardno,1,1);
return ;
}
9.3.3 重点备注:
输出端口根据需要定义端口号。
9.4 输入口:
9.4.1 所需函数列表:
读取输入点函数
read_bit
注意事项
见重点备注
9.4.2 例程:
程序如下:以1号端口为例,读取1号端口的电平,低电平有效
ADT-8940A1 系列运动控制卡
#include “adt8940a1.h”
void main()
{
Const int cardno = 0;
int value = -1;
value = read_bit(cardno,1);
if(value == 0)
{
//执行其他相应操作
}
return ;
}
9.4.3 重点备注:
此函数根据端口的返回值调用。
ADT-8940A1 系列运动控制卡
第十章 复合运动控制
特别说明:复合运动的功能都可以上面都可用联动控制和插补控制章节中
提到的函数完成,只是函数参数不一样,客户可根据自己需要选择。
本章所有例程都相互独立,在实施项目的过程中卡的初始化设置只需设一
次即可,即在程序系统初始化的过程中卡的初始化和倍率设置后,就无需
设置
10.1 单轴对称梯形相对运动:
10.1.1 所需函数列表:
驱动指令
symmetry_relative_move
读驱动状态
get_status
注意事项
见重点备注
10.1.2 例程:
目的:
让X轴以下列速度运动30000步
起始速度:2000 pss
驱动速度:20000 pss
#include “adt8940a1.h”
void main()
{
int cardno;
cardno=adt8940a1_initial();
if(cardno<=0) return;
//未安装ADT8940a1卡
//以下只对第一块卡X轴操作
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
ADT-8940A1 系列运动控制卡
set_pulse_mode(0,1,1,0,0);
//设置X轴为脉冲+方向方式
symmetry_relative_move(0,1, 30000, 2000 ,20000 , 0.1);
int s;
while(1)
{
get_status(0,1,&s);
//读驱动状态
if(s==0)break;
//驱动结束跳出
……
//可执行读键盘,显示位置等函数
}
return ;
}
10.1.3 重点备注:
复合运动控制函数根据需要使用。
本例程中涉及控制卡初始化函数,设置脉冲模式函数之前如果设置,就不
需要再次设置,只需在程序初始化中设置一次即可。
10.2 单轴对称梯形绝对运动:
10.2.1 所需函数列表:
驱动指令
symmetry_absolute_move
读驱动状态
get_status
注意事项
见重点备注
10.2.2 例程:
目的:
让X轴以下列速度运动30000步
起始速度:2000 pss
驱动速度:20000 pss
#include “adt8940a1.h”
void main()
{
int cardno;
ADT-8940A1 系列运动控制卡
cardno=adt8940a1_initial();
if(cardno<=0) return;
//未安装ADT8940A1卡
//以下只对第一块卡X轴操作
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
set_pulse_mode(0,1,1,0,0);
//设置X轴为脉冲+方向方式
symmetry_absolute_move(0,1, 30000, 2000 , 20000 , 0.1);
int s;
while(1)
{
get_status(0,1,&s);
//读驱动状态
if(s==0)break;
//驱动结束跳出
……
//可执行读键盘,显示位置等函数
}
return ;
}
10.2.3 重点备注:
复合运动控制函数根据需要使用。
本例程中涉及控制卡初始化函数,设置脉冲模式函数之前如果设置,就不
需要再次设置,只需在程序初始化中设置一次即可。
10.3 对称直线插补相对运动:
以两轴直线插补为例
10.3.1 所需函数列表:
驱动指令
symmetry_relative_line2
读驱动状态
get_inp_status
注意事项
见重点备注
10.3.2 例程:
程序如下:
#include “adt8940a1.h”
void main()
ADT-8940A1 系列运动控制卡
{
int cardno;
cardno=adt8940a1_initial();
if(cardno<=0) return;
//未安装ADT8940卡
//
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
set_pulse_mode(0,1,1,0,0); //设置X轴为脉冲+方向方式
set_pulse_mode(0,2,1,0,0);
//设置Y轴为脉冲+方向方式
symmetry_absolute_line2(0, 1, 2, 10000,- 20000, 1000, 8000, 0.1);
//X-Y开始插补
//X正向移动10000步
//Y反向移动20000步
int s1;
while(1)
{
get_inp_status(0,&s1); //读插补状态
if(s1==0)break; //插补结束跳出
……
//可执行读键盘,显示位置等函数
}
return ;
}
10.3.3 重点备注:
复合运动控制函数根据需要使用。
三轴直线插补只需换成三轴直线插补指令即可。
本例程中涉及控制卡初始化函数,设置脉冲模式函数之前如果设置,就不
需要再次设置,只需在程序初始化中设置一次即可。
10.4 对称直线插补绝对运动:
以两轴直线插补为例
ADT-8940A1 系列运动控制卡
10.4.1 所需函数列表:
驱动指令
symmetry_absolute_line2
读驱动状态
get_inp_status
注意事项
见重点备注
10.4.2 例程:
程序如下:
#include “adt8940a1.h”
void main()
{
int cardno;
cardno=adt8940a1_initial();
if(cardno<=0) return;
//未安装ADT8940卡
//
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
set_pulse_mode(0,1,1,0,0); //设置X轴为脉冲+方向方式
set_pulse_mode(0,2,1,0,0);
//设置Y轴为脉冲+方向方式
symmetry_absolute_line2 (0, 1, 2, 10000,- 20000, 1000, 8000, 0.1);
//X-Y开始插补
//X正向移动10000步
//Y反向移动20000步
int s1;
while(1)
{
get_inp_status(0,&s1); //读插补状态
if(s1==0)break; //插补结束跳出
……
//可执行读键盘,显示位置等函数
}
ADT-8940A1 系列运动控制卡
return ;
}
10.4.3 重点备注:
复合运动控制函数根据需要使用。
三轴直线插补只需换成三轴直线插补指令即可。
本例程中涉及控制卡初始化函数,设置脉冲模式函数之前如果设置,就不
需要再次设置,只需在程序初始化中设置一次即可。
ADT-8940A1 系列运动控制卡
第十一章 辅助控制
本章所有例程都相互独立,在实施项目的过程中卡的初始化设置只需设一
次即可,即在程序系统初始化的过程中卡的初始化设置后,就无需设置
11.1 位置锁存:
11.1.1 所需函数列表:
锁存模式
set_lock_position//
捕捉位置锁存是否执行
get_lock_status
获取锁存位置
get_lock_position
注意事项
见重点备注
11.1.2 例程:
目的:
以X轴为例绑定锁存信号说明
#include “adt8940a1.h”
void main()
{
int cardno;
int status = -1;
long pos = -1;
cardno=adt8940a1_initial();
if(cardno<=0) return;
//未安装ADT8940卡
//以下只对第一块卡X轴操作
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
set_lock_position(0,1,0,0);
get_lock_status(0, 1, &status);
if(status == 1)
{
get_lock_position(0, 1, &pos);
ADT-8940A1 系列运动控制卡
}
return ;
}
11.1.3 重点备注:
一个锁存信号绑定在一个轴上。
本例程中涉及控制卡初始化函数之前如果设置,就不需要再次设置,只需
在程序初始化中设置一次即可。
11.2 手动驱动:
11.2.1 所需函数列表:
手动手脉
manual_pmove
连续手脉
manual_continue
关闭外部信号驱动使能
manual_disable
注意事项
见重点备注
11.2.2 例程:
目的:
让X轴以下列速度运动2000步
起始速度:1000 pss
驱动速度:2000 pss
加/减速度:2000 pss
#include “adt8940a1.h”
void main()
{
int cardno;
cardno=adt8940a1_initial();
if(cardno<=0) return;
//未安装ADT8940卡
//以下只对第一块卡X轴操作
//如果有多块卡,即cardno>1
//可修改卡号,操作其他卡
set_pulse_mode(0,1,1,0,0);
//设置X轴为脉冲+方向方式
ADT-8940A1 系列运动控制卡
set_startv(0,1,1000);
//起始速度
set_speed(0,1,2000);
//驱动速度
set_acc(0,1,2000);
//加/减速度
int res = manual_pmove(0,1,20000);
if(res != 0)//
{
//关闭外部信号驱动使能
manual_disable(0,1);
}
return ;
}
11.2.3 重点备注:
manual_continue 函数是连续发脉冲,manual_pmove 发定量脉冲。
本例程中涉及控制卡初始化函数,设置脉冲模式函数之前如果设置,就不
需要再次设置,只需在程序初始化中设置一次即可。
ADT-8940A1 系列运动控制卡
第十二章 ADT-8940A1 系列基本库函数列表
注意:8940A1 系列(8940A1\8920A1\8940D1)共用 8940A1 的驱动及库函数。
8920A1 无 Z、A 轴,无 J2 接口,无法使用下面表格中黑色底色的函数。
8940D1 无 J2 接口,无法使用 set_actual_pos,get_actual_pos 函数
12.1 V210 版本库函数列表:
函数
函数名称
类别
功能描述
页码
adt8940a1_initial
初始化卡
13.1.1
get_lib_version
获取版本号
13.1.2
set_pulse_mode
脉冲模式
13.1.3
set_limit_mode
限位模式
13.1.4
set_stop0_mode
停止模式
13.1.5
set_stop1_mode
停止模式
13.1.6
set_delay_time
延时状态
13.1.7
set_suddenstop_mode
硬件停止
13.1.8
get_card_index
获取拨码开关值
13.1.9
get_status
获取单轴驱动状态
13.2.1
驱 动
get_inp_status
获取插补驱动状态
13.2.2
状 态
get_delay_status
延时状态
13.2.3
get_hardware_ver
硬件版本
13.2.4
get_stopdata
获取单轴停止信息
13.2.5
set_acc
设定加速度
13.3.1
运 动
set_startv
设定初始速度
13.3.2
参 数
set_speed
设定驱动速度
13.3.3
set_command_pos
设定逻辑计数器
13.3.4
set_actual_pos
设定实位计数器
13.3.5
基 本
参数
检查
设定
ADT-8940A1 系列运动控制卡
set_symmetry_speed
设定加速速度
13.3.6
get_command_pos
获取逻辑位置
13.4.1
get_actual_pos
获取实际位置
13.4.2
get_speed
获取驱动速度
13.4.3
get_out
获取输出点
13.4.4
pmove
单轴定量驱动
13.5.1
continue_move
单轴连续运动
13.5.2
dec_stop
减速停止
13.5.3
sudden_stop
立即停止
13.5.4
inp_move2
两轴插补
13.5.5
inp_move3
三轴插补
13.5.6
inp_move4
四轴插补
13.5.7
开 关
read_bit
读单个输入点
13.6.1
量类
write_bit
输出单点
13.6.2
symmetry_relative_move
单轴相对运动
13.7.1
symmetry_absolute_move
单轴绝对移动
13.7.2
symmetry_relative_line2
两轴直线插补相对移动
13.7.3
复 合
symmetry_absolute_line2
两轴直线插补绝对移动
13.7.4
驱 动
symmetry_relative_line3
三轴直线插补相对运动
13.7.5
symmetry_absolute_line3
三轴直线插补绝对运动
13.7.6
symmetry_relative_line4
四轴直线插补相对运动
13.7.7
symmetry_absolute_line4
四轴直线插补绝对运动
13.7.8
fifo_arc
两轴缓存软件圆弧_
13.7.11
外 部
manual_pmove
外部信号定量驱动
13.8.1
信 号
manual_continue
外部信号连续驱动
13.8.2
manual_disable
禁用外部信号驱动
13.8.3
运 动
参 数
检查
驱 动
类
类
驱动
ADT-8940A1 系列运动控制卡
set_lock_position
位置锁存工作模式
13.9.1
位 置
get_lock_status
获取锁存状态
13.9.2
锁存
get_lock_position
获取锁存位置
13.9.3
clr_lock_status
清除锁存状态
13.9.4
fifo_inp_move1
1轴缓存
13.10.1
fifo_inp_move2
2轴缓存
13.10.2
fifo_inp_move3
3轴缓存
13.10.3
硬 件
fifo_inp_move4
4轴缓存
13.10.4
缓存
reset_fifo
清除缓存
13.10.5
read_fifo_count
获取缓存状态
13.10.6
read_fifo_empty
获取缓存状态
13.10.7
read_fifo_full
获取缓存状态
13.10.8
SetHomeMode_Ex
设置回零参数
13.11.1
SetHomeSpeed_Ex
回零速度参数
13.11.2
HomeProcess_Ex
启动回零
13.11.3
GetHomeStatus_Ex
获取回零状态
13.11.4
回 原
点 模
块
ADT-8940A1 系列运动控制卡
第十三章 ADT-8940A1 系列基本库函数详解
13.1 基本参数设置类:
13.1.1 初始化卡:
int
adt8940a1_initial(void);
功能:
初始化卡
返回值:
(1)返回值>0 时,表示 ADT8940A1 卡的数量。如果为 3,则下面的可用卡号分别
为 0、1、2;
(2)返回值=0 时,说明没有安装 ADT8940A1 卡;
(3)返回值<0时,-1表示没有安装相关服务,-2表示PCI桥存在故障。
-3 表示拨码开关设置重复;-4 表示拨码开关读取异常;
注意:初始化函数是调用其它函数的前提,所以必须最先调用,以确认可使用的卡
数以及初始化一些参数。
13.1.2 获取当前库版本:
int
get_lib_version(int cardno);
功能:
获取当前库版本
参数:
cardno
卡号
返回值:
库版本的版本号
13.1.3 设置输出脉冲的工作方式:
int set_pulse_mode(int cardno, int axis, int value,int logic,int dir_logic);
功能:
设置输出脉冲的工作方式
参数:
cardno
卡号
axis
轴号(1-4)
ADT-8940A1 系列运动控制卡
value
0:脉冲+脉冲方式
logic
0: 正逻辑脉冲
dir-logic
0:方向输出信号正逻辑 1:方向输出信号负逻辑
返回值
1:脉冲+方向方式
1: 负逻辑脉冲
0:正确
1:错误
默认模式为:脉冲+方向,正逻辑脉冲,方向输出信号正逻辑
13.1.4 设定正/负方向限位输入 nLMT 信号的模式:
int
set_limit_mode(int cardno,
int axis,
int v1,int v2,int logic);
功能:
设定正/负方向限位输入 nLMT 信号的模式
参数:
cardno
卡号
axis
轴号(1-4)
v1
0:正限位有效
1:正限位无效
v2
0:负限位有效
1:负限位无效
logic
0:低电平有效
1:高电平有效
0:正确
1:错误
返回值
默认模式为:正、负限位低电平有效
13.1.5 设定 stop0 输入信号的模式:
int
set_stop0_mode(int cardno,
功能:
设定stop0输入信号的模式
int axis,
int v,int logic);
ADT-8940A1 系列运动控制卡
参数:
cardno
卡号
axis
轴号(1-4)
v
0:无效
1:有效
logic
0:低电平有效
1:高电平有效
0:正确
1:错误
返回值
默认模式为: 无效
13.1.6 设定 stop1 输入信号的模式:
int
set_stop1_mode(int cardno,
int axis,
int v,int logic);
功能:
设定 stop1 输入信号的模式
参数:
cardno
卡号
axis
轴号(1-4)
v
0:无效
1:有效
logic
0:低电平有效
1:高电平有效
0:正确
1:错误
返回值
默认模式为:无效
13.1.7 延时时间:
int
set_delay_time(int cardno,long time)
功能:
延时时间
参数:
cardno
卡号
time
延时时间
返回值
说明:
0:正确
1:错误
时间单位为1/8us,最大值为长整型的最大值。
13.1.8 硬件停止:
int
set_suddenstop_mode(int cardno,int v,int logical)
功能:
硬件停止
ADT-8940A1 系列运动控制卡
参数:
cardno
卡号
v
0:无效
1:有效
logical
0:低电平
1:高电平
返回值
0:正确
1:错误
说明:硬件停止信号固定使用P2端子板25引脚(IN31)
13.1.8 获取拨码开关值:
int
get_card_index (int index[])
功能:
获取当前所有 A1 卡的拨码开关值
参数:
拨码开关数值组成的数组,可用运动控制卡数量和本数组的元素个数保
index
持一致
index[0]
第 1 张控制卡拨码开关值
index[1]
第 2 张控制卡拨码开关值
index[2]
第 3 张控制卡拨码开关值
...
最多支持的控制卡数量为 10
返回值
0:正确
1:错误
注意:只有当 PCI 插槽中 8940A1 卡都带拨码开关,并且其硬件版本都不低于 3.0,才能
通过拨码值设置卡号;否则将不启用拨码开关,初始化卡时会根据 PCI 插槽距离 CPU 的远
近,自动分配卡号,卡号的顺序从 0,1,2...依次增加。
例如:如果 3 张 8940A1 卡全部带有拔码开关,且硬件版本为 3.0,可以设置 3 个不
同的拨码值为各张卡的卡号。如果 1 张 A1 卡带拔码开关,硬件版本为 3.0,同时有其他
不带拔码开关的 8940A1 卡一起使用时,不启用拨码开关。如果 1 张 8940A1 卡带拔码开
关,硬件版本为 2.6(低于 3.0),不能启用拨码开关。
13.2 驱动状态检查类:
13.2.1 获取各轴的驱动状态:
int
get_status(int cardno,int axis,int *value)
功能:
获取各轴的驱动状态
参数:
cardno
卡号
ADT-8940A1 系列运动控制卡
axis
轴号(1-4)
value
驱动状态的指针
0:驱动结束
返回值
非 0:正在驱动
0:正确
1:错误
13.2.2 获取插补的驱动状态:
int
get_inp_status(int cardno,int *value)
功能:
获取插补的驱动状态
参数:
卡号
cardno
插补状态的指针
value
返回值
0:插补结束
1:正在插补
0:正确
1:错误
13.2.3 延时状态:
int
get_delay_status(int cardno)
功能:
延时状态
参数:
卡号
cardno
返回值
0:延时结束
13.2.4 硬件版本:
int
get_hardware_ver(int cardno)
功能:
硬件版本
参数:
cardno
返回值
卡号
硬件版本号
13.2.5 获取各轴的停止信息:
int
get_stopdata(int cardno,int axis,int *value)
功能:
1:延时进行中
ADT-8940A1 系列运动控制卡
获取各轴的驱动状态
参数:
cardno
卡号
axis
轴号(1-4)
value
停止信息的指针
0:无错误
非 0:有限位或是 STOP 停止信号触发.
通 过 低 四 位 表 示 触 发 脉 冲 停 止 的 信 号 类 型 , 正 限 位 :D0, 负 限
位:D1,STOP0:D2,STOP1:D3,
例如:value 值为 1 时,正限位
value 值为 2 时,负限位
value 值为 4 时,STOP0
value 值为 8 时,STOP1
也可能组合出现,value 为 3(1+2)时,正负限位都触发等等
返回值
0:正确
1:错误
注意:硬件版本2.3以上才能获取到停止信息
13.3 运动参数设定类:
13.3.1 加速度设定:
 注意:以下参数在初始化后值不确定,使用前必须设定
int
set_acc(int cardno,int axis,long value);
功能:
加速度设定,单位:PPS/SEC
参数:
返回值
cardno
卡号
axis
轴号
value
加速度(0-64000)
0:正确
1:错误
注意:加速度的实际值为:value*125,其中125是基数固定值
ADT-8940A1 系列运动控制卡
13.3.2 初始速度设定:
int
set_startv(int cardno,int axis,long value);
功能:
初始速度设定,单位:PPS (pulse per second,每秒钟的脉冲数,也可以叫“脉冲频
率”)
参数:
cardno
卡号
axis
轴号
value
起始速度(0-2M)
返回值
0:正确
1:错误
13.3.3 驱动速度设定:
int
set_speed(int cardno,int axis,long value);
功能:
驱动速度的设定, 单位:PPS (pulse per second,每秒钟的脉冲数,也可以叫“脉冲
频率”)
参数:
cardno
卡号
axis
轴号
value
速度(0-2M)
返回值
0:正确
1:错误
13.3.4 逻辑位置计数器设定:
int
set_command_pos(int cardno,int axis,long value);
功能:
设定逻辑位置计数器的数值
参数:
cardno
卡号
axis
轴号
value
范围(-2147483648~+2147483647)
返回值
0:正确
1:错误
逻辑位置计数器任何时候都能进行读写操作
ADT-8940A1 系列运动控制卡
13.3.5 实际位置计数器设定:
int
set_actual_pos(int cardno,int axis,long value);
功能:
设定实际位置计数器的数值
参数:
cardno
卡号
axis
轴号
value
范围(-2147483648~+2147483647)
返回值
0:正确
1:错误
注意:实际位置计数器任何时候都能进行读写操作。不适用于ADT-8920A1和
ADT-8940D1
13.3.6 设定加速速度:
int
set_symmetry_speed(int cardno,int axis,long lspd,long hspd,double tacc);
功能
设定加速速度的值
参数
cardno
卡号
axis
轴号(1-4)
lspd
起步速度
hspd
驱动速度
tacc
加速时间
返回值
0:正确
1:错误
注意:该函数由设定加速速度模式的函数和设定起始速度、驱动速度、加速度时间的
多个函数组合而成。
13.4 运动参数检查类:
以下函数在任何时候均可调用
13.4.1 获取各轴的逻辑位置:
int
get_command_pos(int cardno,int axis,long *pos)
功能:
获取各轴的逻辑位置
参数:
cardno
卡号
ADT-8940A1 系列运动控制卡
axis
轴号
pos
逻辑位置值的指针
返回值
0:正确
1:错误
说明:此函数可随时得到轴的逻辑位置,在电机未失步的情况下,pos 的值代表轴的当前
位置。
13.4.2 获取各轴的实际位置(即编码器反馈输入值)
:
int get_actual_pos(int cardno,int axis,long *pos)
功能:
获取各轴的实际位置
参数:
cardno
卡号
axis
轴号
pos
实际位置值的指针
返回值
0:正确
1:错误
注意:实际位置计数器任何时候都能进行读写操作。不适用于ADT-8920A1和
ADT-8940D1。此函数可随时得到轴的实际位置,在电机有失步的情况下,pos的值依
然代表轴的实际位置。
13.4.3 获取各轴的当前驱动速度:
int
get_speed(int cardno,int axis,long *speed)
功能:
获取各轴当前的驱动速度
参数:
cardno
卡号
axis
轴号
speed
当前驱动速度的指针
返回值
0:正确
1:错误
注意:数据的单位和驱动设定数值V一样。此函数可随时得到轴的驱动速度。
13.4.4 获取输出点:
int
get_out(cardno,int number)
功能:
ADT-8940A1 系列运动控制卡
获取输出点
参数:
返回值
cardno
卡号
number
输出点
获取输出端口的当前状态,0: 低电平
1: 高电平
-1:错误
13.5 驱动类:
13.5.1 定量驱动:
int
pmove(int cardno,int axis,long pulse)
功能:
定量驱动
参数:
cardno
卡号
axis
轴号
pulse
输出的脉冲数
>0:正方向移动
<0:负方向移动
范围(-268435455~+268435455)
返回值
0:正确
1:错误
注意:写入驱动命令之前一定要正确地设定速度曲线所需的参数
13.5.2 单轴连续运动:
int
continue_move (int cardno, int axis, int dir)
功能: 单轴连续运动
参数:
cardno
卡号
axis
轴号(1-4)
dir
方向
返回值
0:正向 ;1:负向
-1:限位信号停止;
1:错误;
0:正确
注意:写入驱动命令前,一定要正确地设定速度参数.
13.5.3 驱动减速停止:
int
dec_stop(int cardno,int axis)
功能:
ADT-8940A1 系列运动控制卡
驱动减速停止
参数:
cardno
卡号
axis
轴号
返回值
0:正确
1:错误
说明:在驱动脉冲输出过程中,此命令作出减速停止,驱动速度比初始速度慢的时候
也可以用本命令立即停止。
注意:直线插补时,如需要减速停止,应当只对最前的插补轴使用此指令,否则可
能不能达到预定的结果。
13.5.4 驱动立即停止:
int
sudden_stop(int cardno,int axis)
功能:
驱动立即停止
参数:
cardno
卡号
axis
轴号
返回值
0:正确
1:错误
立即停止正在驱动中的脉冲输出,在加/减速驱动中也立即停止。
注意:直线插补时,如需要立即停止,应当只对最前的插补轴使用此指令,否则可
能不能达到预定的结果。
13.5.5 两轴直线插补:
int
inp_move2(int cardno,int axis1,int axis2,long pulse1,long pulse2)
功能:
两轴直线插补
参数:
cardno
卡号
axis1 ,axis2 参与插补的轴号
pulse1,pulse2
返回值
移动的相对距离
0:正确
范围(-8388608~+8388607)
1:错误
ADT-8940A1 系列运动控制卡
13.5.6 三轴直线插补:
int
inp_move3(int cardno,int axis1,int axis2,int axis3,long pulse1,long pulse2,long
pulse3)
功能:
三轴直线插补
参数:
cardno
卡号
axis1 ,axis2,axis3 参与插补的轴号
pulse1,pulse2,pulse3
指定轴axis1,axis2,axis3移动的相对距离
范围(-8388608~+8388607)
返回值
0:正确
1:错误
注意:此函数不适用于ADT-8920A1
13.5.7 四轴直线插补:
int
inp_move4(int cardno,long pulse1,long pulse2,long pulse3,long pulse4)
功能:
四轴直线插补
参数:
cardno
卡号
pulse1,pulse2,pulse3,pulse4 X-Y-Z-A轴移动的相对距离,范围(-8388608~+8388607)
返回值
0:正确
注意:此函数不适用于ADT-8920A1
13.6 开关量输入输出类:
13.6.1 读单个输入点:
int
read_bit(int cardno,int number)
功能:
读取单个输入点
参数:
cardno
卡号
number
输入点索引号
8940A1输入点范围: 0-39
8920A1输入点范围: 0-23
1:错误
ADT-8940A1 系列运动控制卡
8940D1输入点范围: 0-23
返回值
0:低电平 1:高电平 - 1:错误
13.6.2 输出单点:
int
write_bit(int cardno,int number,int value)
功能:
输出单个点设定
参数:
cardno
卡号
number
输出点索引号
8940A1输出点范围: 0-16
8920A1输出点范围: 0-11
8940D1输出点范围: 0-11
value
返回值
0:低
1:高
0:正确
1:错误
13.7 复合驱动类:
为了方便客户的使用,我们使用基本库函数封装了复合驱动类的函数,这部分函
数主要是将速度模式设置、速度参数设置和运动函数进行了集成,另外考虑了绝对运
动和相对运动的概念。
13.7.1 单轴相对运动:
int
symmetry_relative_move(int cardno, int axis, long pulse, long lspd ,long hspd,
double tacc);
功能
参照当前位置,以加减速进行定量移动
参数
cardno
axis
pulse
lspd
hspd
tacc
返回值
卡号
轴号(1-4)
脉冲
低速
高速
加速时间(单位:秒)
0:正确
1:错误
ADT-8940A1 系列运动控制卡
13.7.2 单轴绝对运动:
int
symmetry_absolute_move(int cardno, int axis, long pulse, long lspd ,long hspd,
double tacc);
功能
参照零点位置,以加减速进行定量移动
参数
cardno
axis
pulse
lspd
hspd
tacc
返回值
卡号
轴号(1-4)
脉冲
低速
高速
加速时间(单位:秒)
0:正确
1:错误
13.7.3 两轴直线插补相对运动:
int symmetry_relative_line2(int cardno, int axis1, int axis2,long pulse1, long pulse2,
long lspd ,long hspd, double tacc) ;
功能
参照当前位置,以加减速进行直线插补
参数
cardno
axis1
axis2
pulse1
pulse2
lspd
hspd
tacc
返回值
卡号
轴号1
轴号2
1号轴的脉冲
2号轴的脉冲
低速
高速
加速时间(单位:秒)
0:正确
1:错误
13.7.4 两轴直线插补绝对运动:
int symmetry_absolute_line2(int cardno, int axis1, int axis2,long pulse1, long pulse2,
long lspd ,long hspd, double tacc) ;
功能
参照零点位置,以对称加减速进行直线插补
参数
ADT-8940A1 系列运动控制卡
cardno
axis1
axis2
pulse1
pulse2
lspd
hspd
tacc
返回值
卡号
轴号1
轴号2
1号轴的脉冲
2号轴的脉冲
低速
高速
加速时间(单位:秒)
0:正确
1:错误
13.7.5 三轴直线插补相对运动:
int symmetry_relative_line3(int cardno, int axis1, int axis2, int axis3, long pulse1, long
pulse2, long pulse3, long lspd ,long hspd, double tacc);
功能
参照当前位置,以加减速进行直线插补
参数
cardno
axis1
axis2
axis3
pulse1
pulse2
pulse3
lspd
hspd
tacc
返回值
卡号
轴号1
轴号2
轴号3
1号轴的脉冲
2号轴的脉冲
3号轴的脉冲
低速
高速
加速时间(单位:秒)
0:正确
1:错误
注意:此函数不适用于ADT-8920A1
13.7.6 三轴直线插补绝对运动:
int symmetry_absolute_line3(int cardno, int axis1, int axis2, int axis3, long pulse1,
long pulse2, long pulse3, long lspd ,long hspd, double tacc);
功能
参照零点位置,以加减速进行直线插补
参数
cardno
axis1
axis2
axis3
卡号
轴号1
轴号2
轴号3
ADT-8940A1 系列运动控制卡
pulse1
pulse2
pulse3
lspd
hspd
tacc
返回值
1号轴的脉冲
2号轴的脉冲
3号轴的脉冲
低速
高速
加速时间(单位:秒)
0:正确
1:错误
注意:此函数不适用于ADT-8920A1
13.7.7 四轴直线插补相对运动:
int symmetry_relative_line4(int cardno,
long pulse1, long pulse2, long pulse3, long
pulse4,long lspd ,long hspd, double tacc);
功能
参照当前位置,以加减速进行直线插补
参数
cardno
pulse1
pulse2
pulse3
pulse4
lspd
hspd
tacc
返回值
卡号
1号轴的脉冲
2号轴的脉冲
3号轴的脉冲
4号轴的脉冲
低速
高速
加速时间(单位:秒)
0:正确
1:错误
注意:此函数不适用于ADT-8920A1
13.7.8 四轴直线插补绝对运动:
int symmetry_absolute_line4(int cardno, long pulse1, long pulse2, long pulse3, long
pulse4, long lspd ,long hspd, double tacc);
功能
参照零点位置,以加减速进行直线插补
参数
cardno
pulse1
pulse2
pulse3
pulse4
lspd
卡号
1号轴的脉冲
2号轴的脉冲
3号轴的脉冲
4号轴的脉冲
低速
ADT-8940A1 系列运动控制卡
高速
加速时间(单位:秒)
hspd
tacc
返回值
0:正确
1:错误
注意:此函数不适用于ADT-8920A1
13.7.10 两轴缓存圆弧插补运动:
int adt8940a1_fifo_arc(int cardno,int axis1,int axis2,long startposx,long startposy,long
endposx,long endposy,long centerx,long centery,int dir,long startv,long speedv,long
acc);
功能:
硬件缓存轴圆弧插补
参数:
cardno
卡号
axis1,axis2
插补轴号(1-4)
startpos,endpos,center 对应圆弧起点,终点,和圆心坐标
dir
圆弧方向:0 顺时针,1 逆时针
startv
起步速度
speedv
运行速度
acc
加速度
返回值
0:正确
-1:参数错误
-2 限位停止
1 外部停止
13.8 外部信号驱动类:
13.8.1 外部信号定量驱动:
int
manual_pmove(int cardno, int axis, long pos)
功能:
外部信号定量驱动函数
参数:
cardno
卡号
axis
轴号(1-4)
pos
脉冲
返回值
0:正确
1:错误
说明:(1)发出定量脉冲,但驱动没有立即进行,需要等到外部信号电平发生变化
(2)可以使用普通按钮,也可以接手轮
ADT-8940A1 系列运动控制卡
13.8.2 外部信号连续驱动:
int
manual_continue(int cardno, int axis)
功能:
外部信号连续驱动函数
参数:
cardno
卡号
axis
轴号(1-4)
返回值
0:正确
1:错误
说明:(1)发出定量脉冲,但驱动没有立即进行,需要等到外部信号电平发生变化
(2)可以使用普通按钮,也可以接手轮
13.8.3 禁用外部信号驱动:
int
manual_disable(int cardno, int axis)
功能:
关闭外部信号驱动使能
参数:
cardno
卡号
axis
轴号(1-4)
返回值
0:正确
1:错误
13.9 位置锁存:
13.9.1 位置锁存设置函数:
int
set_lock_position(int cardno, int axis,int mode,int regi,int logical)
功能:
设置到位信号功能,锁定所有轴的逻辑位置和实际位置
参数:
axis—参照轴
mode—位置锁存工作模式|0:无效
|1:有效
regi—计数器模式
|0:逻辑位置
|1:实际位置
logical—电平信号 |0:由高到低
|1:由低到高
返回值
0:正确
1:错误
说明:使用指定轴 axis 的 IN 信号作为触发信号
ADT-8940A1 系列运动控制卡
13.9.2 获取所存状态:
int
get_lock_status(int cardno, int axis, int *v)
功能:
获取锁存状态
参数:
cardno
卡号
axis
轴号(1-4)
V
0|未执行同步操作
1|执行过同步操作
返回值
0:正确
1:错误
说明:利用该函数可以捕捉位置锁存是否执行
13.9.3 获取锁定的位置:
int
get_lock_status(int cardno, int axis, int *v)
功能:
获取锁定的位置
参数:
卡号
cardno
axis
轴号(1-4)
pos
锁存的位置
返回值
0:正确
1:错误
13.9.4 清除锁存状态:
int
clr_lock_status(int cardno, int axis)
功能:
清除锁存状态
参数:
cardno
卡号
axis
轴号(1-4)
返回值
0:正确
1:错误
ADT-8940A1 系列运动控制卡
13.10 硬件缓存:
13.10.1 单轴缓存:
int
fifo_inp_move1(int cardno,int axis1,long pulse1,long speed)
功能:
缓存单轴指令
参数:
cardno
卡号
axis1
轴号(1-4)
pulse1
缓存的脉冲
speed
缓存的速度
返回值
0:正确
1:错误
说明:共有 2048 个缓存空间,每条单轴缓存指令占用 3 个空间,可缓存 682 条指令
13.10.2 两轴缓存:
int
fifo_inp_move2(int cardno,int axis1,int axis2,long pulse1,long pulse2,long speed)
功能:
缓存两轴插补指令
参数:
cardno
卡号
axis1
轴号(1-4)
axis2
轴号(1-4)
pulse1
缓存的脉冲数
pulse2
缓存的脉冲数
speed
缓存的速度
返回值
0:正确
1:错误
说明:共有 2048 个缓存空间,每条两轴缓存指令占用 4 个空间,可缓存 512 条指令
13.10.3 三轴缓存:
int
fifo_inp_move3(int cardno,int axis1,int axis2,int axis3,long pulse1,long pulse2,long
pulse3,long speed);
功能:
三轴缓存
参数:
ADT-8940A1 系列运动控制卡
cardno
卡号
axis1
轴号(1-4)
axis2
轴号(1-4)
axis3
轴号(1-4)
pulse1
缓存的脉冲数
pulse2
缓存的脉冲数
pulse3
缓存的脉冲数
speed
缓存的速度
返回值
0:正确
1:错误
说明:共有 2048 个缓存空间,每条三轴缓存指令占用 5 个空间,可缓存 409 条指令
注意:此函数不适用于ADT-8920A1
13.10.4 四轴缓存:
int
fifo_inp_move4(int cardno,long pulse1,long pulse2,long pulse3,long pulse4,long speed);
功能:
四轴缓存
参数:
cardno
卡号
axis1
轴号(1-4)
axis2
轴号(1-4)
axis3
轴号(1-4)
axis4
轴号(1-4)
pulse1
缓存的脉冲数
pulse2
缓存的脉冲数
pulse3
缓存的脉冲数
pulse4
缓存的脉冲数
speed
返回值
缓存的速度
0:正确
1:错误
说明:共有 2048 个缓存空间,每条四轴缓存指令占用 6 个空间,可缓存 341 条指令
注意:此函数不适用于ADT-8920A1
13.10.5 重设缓存:
int
reset_fifo(int cardno)
ADT-8940A1 系列运动控制卡
功能:
清除缓存
参数:
cardno
返回值
卡号
0:正确
1:错误
13.10.6 读取缓存数:
int
read_fifo_count(int cardno,int *value)
功能:
读取缓存数,存放进去的指令还剩多少条未执行
参数:
cardno
卡号
value
未执行的指令所占的字节数
返回值
0:正确
1:错误
13.10.7 读取缓存状态:
int
read_fifo_empty(int cardno)
功能:
读取缓存是否为空
参数:
cardno
返回值
卡号
0:非空
1:空
13.10.8 读取缓存状态:
int
read_fifo_full(int cardno)
功能:
读取缓存是否满了,满了之后将不能再存数据
参数:
cardno
返回值
卡号
0:未满
1:满
ADT-8940A1 系列运动控制卡
13.11 回零函数:
13.11.1 设置回零信号:
int
SetHomeMode_Ex(int m_nCardNum,int m_nAxisNum,int m_nHomeMode, int
m_nStop0Active,int m_nLimitActive,int m_nStop1Active,long m_nBackRange,long
m_nEncoderZRange,long m_nOffset);
功能:
设置回零信号,步骤参数
参数:
int
m_nCardNum
卡号
int
m_nAxisNum
轴号
int
m_nHomeMode
回零方向和回零类型
通过低二位表示回零方向的方向和类型,
D0表示回零方向 0:负方向,1:正方向
D1表示回零类型 0:直线运动,精确定位原点时,按固定正向退出原点,然后负方向
接近原点;
1:圆周运动,精确定位原点时,先反向退出原点,然后按设定回零
方向接近原点.
例如:值为0时,方向为负向回零,类型为直线运动,低二位为00
值为1时,方向为正向回零,类型为直线运动,低二位为01
值为2时,方向为负向回零,类型为圆周运动,低二位为10
值为3时,方向为正向回零,类型为圆周运动,低二位为11
int
m_nStop0Active stop0 有效电平设置;0:低电平停止 1:高电平停
int
m_nLimitActive limit信号 有效电平设置;0:低电平停止
止
1:高电
平停止
int
m_nStop1Active stop1 有效电平设置;0:低电平停止 1:高电平停
止; -1:无效,不搜索stop1
long
m_nBackRange
反向距离 >1
long
m_nEncoderZRange
编码器Z相范围 >1
long
m_nOffset
原点偏移量;==0不偏移,>0正方向偏移,<0负方向
偏移
返回值
0:正确
错误信息提示
-x表示第x个参数错误,比如-1,表示第1个参数(卡号)错误
-1至-8:错误类型
ADT-8940A1 系列运动控制卡
13.11.2 回零速度参数设置:
int SetHomeSpeed_Ex(int m_nCardNum,int m_nAxisNum,long m_nStartSpeed,long
m_nSearchSpeed,long m_nHomeSpeed,long m_nAcc,long m_nZPhaseSpeed);
功能:
回零速度参数
参数:
int
m_nCardNum
卡号
int
m_nAxisNum
轴号
long
m_nStartSpeed
long
m_nSearchSpeed 原点搜寻速度
long
m_nHomeSpeed
低速接近原点速度
long
m_nAcc
回原点过程中的加速度
long
m_nZPhaseSpeed 编码器Z相(STOP1)搜寻速度
原点(STOP0)搜寻起始速度
返回值
0:正确
错误信息提示
-x表示第x个参数错误,比如-1,表示第1个参数(卡号)错误
-1至-7:错误类型
13.11.3 启动回零:
int
HomeProcess_Ex(int m_nCardNum,int m_nAxisNum);
功能:
启动回零
参数:
int
m_nCardNum
卡号
int
m_nAxisNum
轴号
返回值
0:正确
1:错误
说明 调用该函数时启动回零动作
13.11.4 获取回零状态:
int
GetHomeStatus_Ex(int m_nCardNum,int m_nAxisNum);
功能:
获取回零状态
参数:
int
m_nCardNum
卡号
int
m_nAxisNum
轴号
ADT-8940A1 系列运动控制卡
返回值 0:回零成功;-1:参数1错误;-2:参数2错误;-3:回零未启动;
(1-10)执行的步骤1 :快速接近原点,搜索STOP0
2 :检查STOP0是否找到
3 :反向退出原点
4 :检查反向退出原点是否完成
5 :低速接近原点,搜索STOP0
6 :检查STOP0搜索是否完成
7 :低速接近Z相,搜索STOP1.如果STOP1设置为-1,则跳过7,8两
步。
8 :检查STOP1搜索是否完成
9 :原点偏移
10 :检查原点偏移
-100x:回零第x步出现异常,如:-1001:回零第1步出现异常
-1020:回零被终止
ADT-8940A1 系列运动控制卡
第十四章 运动控制开发编程示例
所有运动控制函数均为立即返回,当驱动命令发出后,运动过程由运
动控制卡控制完成,此时用户的上位机软件既可以对整个运动过程进
行实时监控,也可强制停止运动过程。
说明:轴在运动过程中,不允许向运动轴发新的驱动指令,否则会放
弃上次的驱动,而执行后面的驱动指令。
14.1 描述:
尽管编程语言“五花八门”
,种类繁多,但就其本质而言,最终可以
“九九归一”。概括起来就是“三大结构和一个思想”,其中“三大结构”是指所有编
程语言中都强调的顺序结构、循环结构和分支结构,一个思想主要指完成设计任务时
所用到的算法以及模块划分,这是整个程序设计的重点和难点。
为了保证程序具有通用性、规范性、可扩展性以及维护方便等特点,下面所有的
示例从项目设计的角度着眼,将示例划分为以下几个模块:运动控制模块(对控制卡提
供的库函数进一步进行封装),功能实现模块(配合具体工艺的代码段),监控模块和停
止处理模块。
下面我们简单介绍ADT8940A1卡函数库在VB和VC编程语言中的应用,如果使用
其它编程语言可参照VB和VC示例程序。
ADT-8940A1 系列运动控制卡
第十五章 常见故障及解决方案
15.1 运动控制卡检测失败:
在使用控制卡的过程中,如果遇到检测不到控制卡的现象,可以参照下面的方法逐步
进行排查。
(1) 务必按照控制卡安装说明,分步安装好控制卡的驱动程序,确保在系统目录
(system32或System)下有控制卡动态库文件;
(2) 检查运动控制卡和插槽接触是否良好。可以通过重插或更换插槽的方式测试,
另可用橡皮擦对控制卡的金手指的污诟的清除再装上测试;
(3) 在系统设备管理器中,检查运动控制卡和其它硬件是否有冲突。使用PCI卡时,
可以先取下其它板卡,如:声卡,网卡等;PC104卡可以调整拨码开关重新设定
基地址,程序中卡初始化时使用的基地址必须和实际基地址相同;
(4) 检查操作系统是否存在问题,可以通过重新安装其他版本的操作系统进行测
试;
(5) 按照上面的步骤检查后,如果依然找不到运动控制卡,可以通过更换运动控制
卡,进一步进行检测,以便诊断运动控制卡是否已经损坏;
15.2 电机运行异常:
在运动控制卡正常的前提下,电机出现异常现象时,可以参照下面的情况排除故障。
(1) 运动控制卡发出脉冲时,电机不运动







请检查控制卡和端子板的连接线是否接好;
电机驱动器的脉冲和方向信号线是否已经正确地连接到端子板;
伺服驱动器的外部电源是否已经连接好;
伺服、步进电机驱动器是否存在报警状态,如有报警则按报警对应代码检
查原因所在;
伺服SON是否连接好,伺服电机是否有激磁状态等;
如果是伺服电机请检查驱动器的控制方式,本公司的控制卡支持“位置控
制方式”
;
电机、驱动器坏
(2) 步进电机运转时发出异常尖叫声,电机出现明显失步现象。





控制器的速度过快,请计算电机的速度,步进电机每秒10~15转属于正常
范围;
机械部卡死或机器的阻力太大;
电机的选型不够,请更换大力矩型号电机;
请检查驱动器的电流和电压,电流设为电机的额定电流的1.2倍,供电电压
在驱动器的额定范围;
检查控制器起始速度,一般起始速度为0.5~1左右,加减速时间0.1秒以上;
(3) 伺服、步进电机在加工过程中出现明显振动或噪音现象
ADT-8940A1 系列运动控制卡




伺服驱动器的位置环增益和速度环增益太大,在定位精度允许的情况下降
低服驱动器的位置环增益和速度环增益;
机器刚性太差,调整机器的结构;
步进电机选型不够,请更换大力矩型号电机;
步进电机的速度处于电机的共振区域,请避开此共振区或增大细分的办法
来解决;
(4) 电机定位不准





请检查机械丝杠螺距和电机每转脉冲数与实际应用系统所设定的参数是
否相符,即脉冲当量;
如果伺服电机,则增大位置环增益和速度环增益;
请检查机器的丝杠间隙,用千分表测试丝杠的反向间隙,如有间隙请调整
丝杠;
如果是不定时、不定位置的定位不准,则要检查外部干扰信号;
电机选型不够在运动中出现抖动或失步现象;
(5) 电机没有方向



检查DR+ DR-接线有没有错误,是否接牢;
请确定控制卡采用的脉冲模式是否与实际驱动器模式相符,本控制卡支持
“脉冲+方向”和“脉冲+脉冲模式”
步进电机要检查电机线有没断线、接触不良等现象;
15.3 开关量输入异常:
在系统调试、运行过程中,某些输入信号检测异常,可以使用下面介绍的方法进行检
查。
(1) 没有信号输入





据前面讲述的普通开关和接近开关的接线图,检查线路是否正确,确保输
入信号的“光藕公共端”已经和内部或外部电源(+12V或24V)的正端相连;
本公司的I\O点的输入开关使用NPN型,如果没有请检查开关开型号和接
线方式;
检查光藕是否已经损坏。在线路正常的情况下,输入点在断开和闭合的情
况下,输入状态不发生改变,可以利用万用表检测光藕是否已经被击穿,
通过更换光藕可以解决光藕被击穿的问题;
检查开关电源的12V或24V是否正常;
开关损坏;
(2) 信号时有时无



检查是否存在干扰,可以在I\O测试画面检测信号的状态;如果是干扰情
况则增加独石电容型号为104或采用屏蔽线等;
机械在正常运行过程中,出现明显的颤抖或异常停止现象,请检查限位开
关信号是否存在干扰或限位开关性能是否可靠;
外部接线是否接触良好;
(3) 归零不准

速度太快,降低归零速度;
ADT-8940A1 系列运动控制卡



外部信号存在干扰,请检查干扰源;
归零方向错误;
归零开关安装位置不当或开关松动;
(4) 限位无效





在I\O测试下检测限位开关是否有效;
手动、自动加工时速度太快;
外部信号存在干扰,请检查干扰源;
手动方向错误;
限位开关安装位置不当或开关松动;
15.4 开关量输出异常:
开关量输出异常,可以依据下面介绍的方法进行排查。
(1) 输出异常




依据前面讲述的输出点的接线图,检查线路是否正确,确保输出公共端(地
线)和所用电源的地线相连;
检查输出器件是否已经损坏;
检查光藕是否已经损坏,利用万用表检测光藕是否已经被击穿,通过更换
光藕可以解决光藕被击穿的问题;
安全要领。输出使用感性负载时一定要并联续流二级管,型号IN4007或
IN4001;
(2) 输出不良判断方法
断开输出点上对外的接线,在输出点上接一10K左右的上拉电阻到电源端,
此时输出的地线需接到电源的GND,并用万用表的红表笔点有12V的正极,黑
表笔点在信号输出端同时用手点动测试画面的按钮看是否有电压输出,如果有
则检查外围线路,否则检查板卡的公共端是否接好、内部光藕不良等;
15.5 编码器异常:
在使用编码器出现异常时,可以参照下面介绍的方法进行排查。
(1) 检查编码器接线。确保编码器的接线符合前面介绍的差动或集电极开路方式;
(2) 检测编码器电压。运动控制卡正常接受的是+5V的信号,如果选用的是+12V或
+24V编码器,务必在编码器A、B相和端子板A、B相之间串联1K(+12V)电阻;
(3) 编码器计数不准。编码器的外围接线一定要采用屏蔽双绞线,编码器线不能跟
强电等一些干扰较强的电线捆绑在一起,必须分开在30~50MM以上;
ADT-8940A1 系列运动控制卡
附录 A:驱动安装和卸载常见问题
1、检测不到控制卡,无法安装驱动
在使用控制卡的过程中,如果遇到检测不到控制卡的现象,可以参照
下面的方法逐步进行排查。
(1)检查控制卡未插入前PCI前,操作系统的主板驱动是否正常安装;
(2)确认控制卡是否正常安装在电脑中,检查运动控制卡和插槽接触是
否良好。可以通过重插或更换插槽的方式测试,另可用橡皮擦对控制卡的金
手指的污诟的清除再装上测试;
(3)检查操作系统版本和驱动程序支持的系统版本匹配,控制卡型号和
驱动程序型号是否匹配;
(4)在系统设备管理器中,检查运动控制卡和其它硬件是否有冲突。使
用PCI卡时,可以先取下其它板卡,如:声卡,网卡等;PC104卡可以调整拨
码开关重新设定基地址,程序中卡初始化时使用的基地址必须和实际基地址
相同;
(5)按照上面的步骤检查后,如果依然找不到运动控制卡,可以通过更
换运动控制卡,进一步进行检测,以便诊断运动控制卡是否已经损坏;
2、WIN7 32 位系统安装驱动后,为什么图标显示有蓝色小问号?
ADT-8940A1 系列运动控制卡
这个蓝色小问号是由于控制卡驱动没有进行微软官方的徽标认证,导致
图标没有正常显示公司的 LOGO。控制卡的驱动正常工作,不影响客户的正
常使用。
3、WIN7 系统安装驱动后,双击示例程序“Bin”文件夹里的“DEMO.exe”
,
提示“控制卡初始化失败”
这个现象分两种情况:
3.1 “以管理员身份运行”程序,重启电脑后,直接双击程序能成
功找到控制卡
WIN7 系统需要管理员权限对 PCI 驱动进行加载,如果第一次运行控制
卡应用程序直接双击,会导致控制卡初始化失败,所以在第一次安装完成后,
必须对控制卡应用程序(比如 VC 示范程序“DEMO.EXE”
)按鼠标右键,
选择 “以管理员身份运行(A)”程序(如下图)
,之后启动应用程序就只用双
击就可以正常运行。
ADT-8940A1 系列运动控制卡
3.2 “以管理员身份运行”程序,能提示“控制卡可以使用”,但
是重启电脑后,直接双击程序依然提示“控制卡初始化失败”,解
决办法:
第一步:点击左下方的“开始”菜单,选择“控制面板”进入设置,选择如
下图所示红色框内的“用户账户和家庭安全”
第二步:在更改用户账户设置下方,点击左下方的“更改用户账户控制设置”
菜单,如下图红色框内:
ADT-8940A1 系列运动控制卡
第三步:在更改用户账户设置,将计算机更改的消息设置滑动条修改为“从
不通知”
,如下图红色框内:
第四步:通过电脑开机时,按“F8”
,选择“禁用驱动签名强制”,然后按“Enter”
键进入操作系统。如下图所示:
ADT-8940A1 系列运动控制卡
进入 WINDOWS 7 系统后,直接双击程序即可。
4、WIN7 系统,按右键“以管理员身份运行”示例程序,提示“控制卡
没有安装”?
出现这种情况是由于有些特殊型号的主板,在其 BOIS 设置中对 WIN7
系统下的硬件设备强制要求驱动的数字签名有效,而控制卡驱动签名可能已
经处于失效状态。如下图所示,在控制卡驱动文件中,找到“adtcard.sys”和
“windrvr6.sys”这个两驱动文件,按右键选择“属性”,选择“数字签名”
选项,可以查看数字签名的相关信息。
ADT-8940A1 系列运动控制卡
解决办法是通过电脑开机时,按“F8”
,选择“禁用驱动签名强制”
,然后按
“Enter”键进入操作系统。如下图所示:
ADT-8940A1 系列运动控制卡
5、如何完整卸载 WIN7 下控制卡驱动?
先从设备管理器中选中控制卡型号,然后按鼠标右键,在弹出的菜单中选择
“卸载”
,
在确认卸载的对话框中,选择“删除此设备的驱动程序软件”
ADT-8940A1 系列运动控制卡
6、Visual Studio 编写程序如何获取 WIN7 系统管理员权限
Visual studio(简称 VS)关于 UAC 账户管理权限三种不同设置说明:
asInvoker :应用程序就是以当前的权限运行。
highestAvailable:以当前用户可以获得的最高权限运行。
requireAdministrator:仅以系统管理员权限运行。
6.1 VC 如何以管理员身份运行程序
VC(VS2008 及以上版本),直接项目右键---属性---连接器---清单文件---uac 执
行级别 选择 requireAdministrator 重新编译 这样你的程序直接运行就拥有管
理员权限了。
6.2 VB.net 如何以管理员身份运行程序
VB.net(VS2008 及以上版本),直接在项目属性的“应用程序”里面点击“查
看 UAC 设置”,
ADT-8940A1 系列运动控制卡
在新打开的 app.manifest 里面把 <requestedExecutionLevel level="asInvoker"
uiAccess="false" /> 替 换 成
<requestedExecutionLevel level="
requireAdministrator " uiAccess="false" /> 再编译就行了。
6.3 C#如何以管理员身份运行程序
6.3.1: 在 Visual Studio 中--解决方案资源管理器--右键项目名称--属性,找
到“安全性”选项,
6.3.2:勾选“启用 ClickOnce 安全设置”,
ADT-8940A1 系列运动控制卡
6.3.3:这时,在项目下面会多出一个“app.manifest”的文件,选中它,并找到
代码段<requestedExecutionLevel level="asInvoker" uiAccess="false" />,将其改
为:<requestedExecutionLevel level=" highestAvailable" uiAccess="false" />,
打开:
ADT-8940A1 系列运动控制卡
将上图部分修改为:
6.3.4:改正后,不要急于重新编译生成,再次打开“属性--安全性”界面,
将“启用 ClickOnce 安全设置”前面的勾去掉后再编译运行。 不然程序会报错
无法运行。
ADT-8940A1 系列运动控制卡
6.3.5:最后,保存修改,重新编译运行程序。
打开程序时,会提示“用户账户控制”来获取管理员权限运行,点击“是”则获
取了管理员权限。
ADT-8940A1 系列运动控制卡
7、如何完整卸载 XP 系统下控制卡驱动?
答:如果是驱动程序已经是安装包的形式安装的,如 ADT-8940A1 系列
卸载时只需从系统的“开始”菜单进入,找到“ADT8940A1 驱动”文件夹,
选择“卸载驱动”即可。
如果是旧版方式的通过指定路径安装的驱动,完整卸载以 ADT-850 为例,其
他型号 PCI 卡如 ADT-8948A1, ADT-856 等与此相同的操作步骤。
1、正常进入设备管理器卸载驱动
ADT-8940A1 系列运动控制卡
2、
请先把 C 盘中所有文件夹的属性设置为显示,
进入 C:\WINDOWS\system32
中查找其中名字有 adt850 的文件,然后删除掉,如下图所示
操作第 2 步之前,请把 C 盘中所有文件夹的属性设置为显示;
ADT-8940A1 系列运动控制卡
3、搜索后找到的文件,全部删除掉。
进入 C:\WINDOWS\inf 文件夹,搜索文件中的一个字或词组:Adt850.inf;找
到后删除
ADT-8940A1 系列运动控制卡
这里找到的是:oem11.inf,删除.inf 文件;
ADT-8940A1 系列运动控制卡
4、进入 C:\WINDOWS\inf 文件夹,删除上面找到的与.inf 同名的.PNF 文件
5、下一步开始重新安装最新的驱动程序即可。
ADT-8940A1 系列运动控制卡
附录 B: 电路转换和抗干扰常见问题
1、伺服驱动器的 Z 相信号差分和控制卡集电极转换
伺服驱动器(或编码器)为差分信号(比如:Z+,Z-)
,接控制卡集电极开路的STOP1
信号(ADT-8504,ADT-8948A1,ADT-856, ADT-8960)
,如下图:
2、输入点增加抗干扰接法
控制卡通用输入点如果确认存在干扰源(大功率变频器或激光发生器等等)
,可以在
输入点和公共端之间增加10ΚΩ电阻,如下图:
ADT-8940A1 系列运动控制卡
3、输出点增加抗干扰接法
控制卡通用输出点如果确认存在干扰源(大功率变频器或激光发生器等等)
,可以在
输出端增加0.01μ F电容,如下图:
ADT-8940A1 系列运动控制卡
修改履历(一)
反馈人
反馈日
期
当前版
本/总页
数
问题描
述
工程师
确认
修订后
版本
修订后
总页数
修订人

advertisement

Key Features

  • PCI/PCI-E 总线
  • 2/4 轴控制
  • 最大 2MHz 脉冲频率
  • 直线插补
  • 回原点功能
  • 外部信号驱动
  • 位置锁存
  • 硬件缓存
  • I/O 响应时间 < 500us
  • 4 位拨码开关

Frequently Answers and Questions

该设备可以控制哪种类型的电机?
Adtech ADT-8920A1/ADT-8920B1/ADT-8940B1/ADT-8940D1 可以控制伺服电机和步进电机。
该设备最多可以控制多少轴?
该设备最多可以控制 4 轴。
该设备的最大脉冲频率是多少?
该设备的最大脉冲频率为 2MHz。

Related manuals

Download PDF

advertisement