ZMotionPC函数库编程手册范本.docx
- 文档编号:11637208
- 上传时间:2023-03-29
- 格式:DOCX
- 页数:105
- 大小:829.01KB
ZMotionPC函数库编程手册范本.docx
《ZMotionPC函数库编程手册范本.docx》由会员分享,可在线阅读,更多相关《ZMotionPC函数库编程手册范本.docx(105页珍藏版)》请在冰豆网上搜索。
ZMotionPC函数库编程手册范本
ZMotionPC函数库编程手册
Version2.0
版权说明
本手册归市正运动技术所有,未经本公司授权,任何人不得翻印、抄袭本手持中的任何容。
正运动技术公司保留在不事先通知情况下,修改本手册中容的权利。
调试机器要注意安全!
请务必在机器中设计有效的安全保护装置,并在软件中加入出错处理程序,否则所造成的损失,正运动技术公司没有义务或责任对此负责。
1
第一章PC编程概述....................................................................................................1
1.1运动控制器特点.............................................................................................1
1.2开发架构.........................................................................................................1
1.3开发步骤.........................................................................................................2
1.3.1采用VC开发应用程序.....................................................................2
1.4库函数封装方法.............................................................................................4
1.5多控制器.................................................................................................6
第二章基本功能介绍..................................................................................................7
2.1控制器.....................................................................................................7
2.2基本轴参数初始化.........................................................................................8
2.3特殊IO设置...................................................................................................9
2.4单轴运动.......................................................................................................10
2.4.1单轴回零...........................................................................................10
2.4.2单轴点动...........................................................................................11
2.4.3单轴状态...........................................................................................12
2.5多轴插补运动...............................................................................................13
2.5.1常用插补运动...................................................................................13
2.5.2连续插补运动...................................................................................14
2.5.3自动拐角参数设置...........................................................................16
2.6手轮运动.......................................................................................................17
2.7IO与AD/DA设置读取................................................................................17
2.8PC与控制器数据交互..................................................................................18
第三章DLL函数列表...............................................................................................20
3.1控制器操作函数介绍...................................................................................20
3.2运动指令函数介绍.......................................................................................23
3.2.1辅助指令...........................................................................................23
3.2.2多轴直线插补...................................................................................27
3.2.3圆弧、椭圆、螺旋插补...................................................................28
3.2.4特殊运动指令...................................................................................41
3.2.5同步运动指令...................................................................................43
3.2.6单轴运动指令...................................................................................47
3.3轴参数轴状态函数介绍...............................................................................49
3.3.2轴基本参数函数...............................................................................50
3.3.3其他参数函数...................................................................................63
3.3.4特殊信号参数函数(原点,限位…)................................................73
3.4输入输出函数介绍.......................................................................................77
3.5数据通讯函数...............................................................................................82
第四章直接串口控制................................................................................................884.1串口直接命令控制模式...............................................................................88
2
第一章PC编程概述
1.1运动控制器特点
ZMC运动控制器支持PC直接在线控制,提供DLL函数库和VC,VB,C#,LABVIEW等例程。
函数库同时提供WINCE和LINUX的支持。
函数库针对于所有型号的控制器。
ZMC运动控制器在线控制相对PCI具有下面的优势:
1、不使用插槽,稳定性更好。
2、降低对PC的要求,不需要PCI插槽。
3、可以选用MINI电脑或ARM工控电脑,降低整体成本。
4、控制器直接做接线板使用,节省空间。
5、控制器上可以并行运行程序,与PC只需要简单交互,降低PC软件的复杂性。
综上可以看出,选用以太网接口的运动控制器来代替PCI运动控制卡,可以节省空间,降低成本,优化程序,接线更方便,这也是越来越多的应用采用以太网的原因。
1.2开发架构
图1.2ZMC开发架构图
如图1.2红色部分粗线为PC程序与控制器的交互线路,ZMC控制器支持以太网,USB,串口/485等与PC相连,PC程序与控制器上的ZBASIC程序可以同时运行,提高了处理的效率。
1.3开发步骤
1.3.1采用VC开发应用程序
1)打开VC++6.0。
2)新建一个工程
3)选择MFCAPPWizard(exe)
4)选择工程保存路径5)设置工程名,选择确定
图1.3-1新建工程
6)在应用程序类型选择基本对话框。
完成新建
7)将提供的库函数zauxdll.h、zauxdll.lib、zauxdll.dll、及zmotion.dll放到工程路径下(或者直接将通过zauxdll.cpp的源码码加人工程)
图1.3-2添加控件
8)在testDlg.cpp添加头文件#include“zauxdll.h”.
9)在CTestDlg:
:
OnInitDialog()函数中添加控制器代码
ZAux_OpenEth(“192.168.0.11”,&g_handle)
图1.3-3控制器
10)在CTestDlg添加一个成员函数CTestDlg:
:
OnClose();用于关闭窗口断开控制器。
在函数添加ZAux_Close(g_handle);断开。
图1.3-4断开控制器
11)双击启动、停止在对应的事件函数下添加对应的代码:
ZAux_Direct_Singl_Vmove(g_handle,0,1);
ZAux_Direct_Singl_Cancel(g_handle,0,2);
图1.3-5调用函数
12)编译程序后,运行程序,在界面下按下运行,则轴0会按初始化速度正向转动,按下停止,轴0停止运动。
1.4库函数封装方法
ZAux库提供了运动和基本参数设置的封装,以开放源代码的方式提供,详细容参见源码。
ZAux库通过直接把ZBASIC命令通过ZAux_Execute方式或ZAux_DirectCommand方式发送到控制器上,相应函数可以参考ZBASIC手册对应的命令介绍。
如果使用到没有封装的命令或者想封装自己的函数,可以通过ZAux_Execute发送或ZAux_DirectCommand,或是参照已有代码修改增加相应的函数。
发送字符串命令有两种方式,缓冲方式和直接方式。
直接方式:
直接执行单个变量/数组/参数相关命令,此时所有传递的参数必须是具体的数值,不能是表达式;参见ZAux_DirectCommand函数。
ZAux_DirectCommand(控制器句柄,命令字符串,返回字符串,返回字符长度)缓冲方式可以执行所有命令,并支持表达式作为参数,但是速度慢一些;参见ZAux_Execute函数。
ZAux_Execute(控制器句柄,命令字符串,返回字符串,返回字符长度)
图1.4-1字符串命令的通道
例如设置轴速度函数:
ZAux_Direct_SetSpeed(ZMC_HANDLEhandle,intiaxis,
floatfValue)相当与BASIC命令中的“SPEED(轴号)=速度值”。
则封装函数时命令字符串就是“speed(%d)=%f”。
封装步骤:
a)编写源代码:
打开辅助库源码,在zmcaux.cpp中添加对应的函数
int32__stdcallZAux_Direct_SetSpeed(ZMC_HANDLEhandle,intiaxis,floatfValue)
{charcmdbuff[2048];charcmdbuffAck[2048];if(iaxis>MAX_AXIS_AUX)
{returnERR_AUX_PARAERR;
}
sprintf(cmdbuff,"SPEED(%d)=%f",iaxis,fValue);//生成对应的命令字符
串
returnZAux_DirectCommand(handle,cmdbuff,cmdbuffAck,2048);}
b)在zauxdll.def中定义新增加的函数定义
图1.4-2添加函数定义c)在头文件中增加对应的函数
图1.4-3添加头文件d)编译生成新的DLL
1.5多控制器
正运动控制器可以支持一台PC控制多个控制器,常用于多轴、多工位流水线设备,或者车间设备监控。
通常用一个交换机,通过给控制器设置不同的IP地址来访问各个控制器。
注意:
交换机上多有个以太网设备时,除了要保证IP地址不同外,MAC地址也可能冲突(可以用正运动通过的辅助工具修改IP和MAC地址)控制器代码:
char*ip_list[4]={"192.168.0.11","192.168.0.12","192.168.0.13","192.168.0.14
"};for(inti=0;i<4;i++)
{
ZAux_OpenEth(ip_list[i],&g_card[i]);
}
第二章基本功能介绍
本章描述了控制器基本运动功能的使用,并提供了相关的例程,详情参考PC函数库对应的例程。
2.1控制器
表2.1控制器连接相关函数
函数名
功能
ZAux_OpenCom
串口控制器
ZAux_SetComDefaultBaud
串口通讯参数设置
ZAux_OpenEth
以太网控制器
ZAux_SearchEthlist
搜索当前网段下的控制器IP
ZAux_Close
关闭控制器
在对控制器进行操作时必须先调用函数控制器,当成功后方可通过返回的句柄操作对应的控制器。
在关闭应用程序时要调用断开函数释放。
例程2.1.1:
串口控制器
ZMC_HANDLEg_handle=NULL;//返回的句柄
uint32dwBaudRate=38400;//波特率38400uint32dwByteSize=8;//8位数据位uint32dwParity=0;//无校验
uint32dwStopBits=1;//1位停止位uint32comid=1;//的COM口
ZAux_SetComDefaultBaud(dwBaudRate,dwByteSize,dwParity,dwStopBits);//设置串口通讯参数
ZAux_OpenCom(comid,&g_handle);
例程2.1.2:
网口控制器
//COM1口控制器
ZMC_HANDLEg_handle=NULL;
//返回的句柄
char*ipaddr=“192.168.0.11”;
//控制器IP
ZAux_OpenEth(ipaddr,&g_handle);
//以太网控制器
检测函数返回值判断函数是否执行成功,返回0时则成功,非0失败。
以太网口返回不成功时,检查传递的IP是否正确,并且保证电脑IP地址和控制器IP地址在同一个网段。
2.2基本轴参数初始化
表2.2基本轴参数函数
函数名
功能
ZAux_Direct_SetAtype
设置轴类型
ZAux_Direct_SetUnits
设置轴脉冲当量
ZAux_Direct_SetInvertStep
设置脉冲输出模式
ZAux_Direct_SetSpeed
设置轴速度
ZAux_Direct_SetAccel
设置轴加速度
ZAux_Direct_SetDecel
设置轴减速度
ZAux_Direct_SetSramp
设置轴S曲线时间
例程2.2:
初始化参数
ZAux_Direct_SetAtype(g_handle,0,1);//设置轴0为脉冲输出轴
ZAux_Direct_SetUnits(g_handle,0,100);//设置轴0轴参数以100个脉冲为单位
ZAux_Direct_SetInvertStep(g_handle,0,1);//设置轴0为脉冲+方向模式
ZAux_Direct_SetSpeed(g_handle,0,200);//设置轴0速度为200units/s
ZAux_Direct_SetAccel(g_handle,0,2000);//设置轴0加速为2000units/s/s
ZAux_Direct_SetDecel(g_handle,0,2000);//设置轴0加速为2000units/s/s
ZAux_Direct_SetSramp(g_handle,0,0);//设置轴0S曲线时间(0-梯形加减速)
重点提示2.2:
轴类型:
常用的类型为1-脉冲输出类型(步进/伺服),3-编码器输入类型(外部编码器/轴本身的编码器),根据实际的硬件来配置对应的轴类型。
虚拟轴类型为程序部模拟运行的轴,通常用于轴叠加与机械手场合。
Atype类型
描述
0
虚拟轴;
1
脉冲方向方式的步进或伺服
2
模拟信号控制方式的伺服
3
正交编码器
4
步进+编码器
6
脉冲方向方式的编码器,可用于手轮输入
7
脉冲方向方式步进或伺服+EZ信号输入
8
ZCAN扩展脉冲方向方式步进或伺服
9
ZCAN扩展正交编码器。
10
ZCAN扩展脉冲方向方式的编码器。
65
ECAT脉冲类型
66
ECAT速度闭环
67
ECAT力矩闭环
70
ECAT自定义操作,只读取编码器.
图2.2-1轴类型脉冲当量:
脉冲当量为矢量轴参数的基本单位,如速度、加速度、位置…。
当units设置为1时,speed单位为脉冲/S,当units设置为机构移动1mm所需脉冲数时,那么speed单位为mm./s。
必须先修改脉冲当量,然后再修改速度、位移这些参数。
否则当units变化时会导致速度、加速度、位置的变化。
脉冲模式:
0-3为脉冲加方向模式,4-7为双脉冲模式。
模式
正向运动
负向运动
脉冲线
方向线
脉冲线
方向线
0
1
2
3
4
5
6
7
图2.2-2脉冲输出模式
2.3特殊IO设置
表2.3特殊IO函数
函数名
功能
ZAux_Direct_SetDatumIn
设置轴原点信号
ZAux_Direct_SetFwdIn
设置轴正向限位信号
ZAux_Direct_SetRevIn
设置轴负向限位信号
ZAux_Direct_SetAlmIn
设置轴伺服告警信号
ZAux_Direct_SetInvertIn
设置输入口信号反转状态
正运动控制器没有专用的特殊IO口,特殊IO都是通过指令指定分配到各个通用输入输出上的,当特殊状态IO配置为-1时表示为没有对应的状态。
例程2.3:
特殊IO配置
ZAux_Direct_SetDatumIn(g_handle,0,1);//设置IN
(1)为轴0的原点信号
ZAux_Direct_SetFwdIn(g_handle,0,2);//设置IN
(2)为轴0的正限位
ZAux_Direct_SetRevIn(g_handle,0,1);//设置IN
(1)为轴0的负限位,与原点为同一个信号ZAux_Direct_SetAlmIn(g_handle,0,-1);//取消轴0伺服告警信号配置ZAux_Direct_SetInvertIn(g_handle,1,1);//反转IN
(1)为高电平有效
重点提示2.3:
ZMC系列的特殊IO都是认为OFF时状态有效,(即对应正限位输入口OFF状态时,认为对应轴碰到了正限位)。
故对于特殊IO口为常开型传感器时,需要将对应输入口反转为高电平有效,常闭型的按缺省的低电平有效就可以了。
ECI系列的控制器特殊信号与ZMC系列控制器状态是相反的!
2.4单轴运动
2.4.1单轴回零
表2.4-1回零运动函数
函数名
功能
ZAux_Di
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ZMotionPC 函数库 编程 手册 范本
![提示](https://static.bdocx.com/images/bang_tan.gif)