ZMotion-PC函数库编程手册.docx_第1页
ZMotion-PC函数库编程手册.docx_第2页
ZMotion-PC函数库编程手册.docx_第3页
ZMotion-PC函数库编程手册.docx_第4页
ZMotion-PC函数库编程手册.docx_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深圳市正运动技术有限公司ZMotion PC函数库编程手册2.0版ZMotion PC函数库编程手册Version 2.0版 权 说 明本手册版权归深圳市正运动技术有限公司所有,未经本公司授权,任何人不得翻印、抄袭本手持中的任何内容。正运动技术公司保留在不事先通知情况下,修改本手册中内容的权利。调试机器要注意安全!请务必在机器中设计有效的安全保护装置,并在软件中加入出错处理程序,否则所造成的损失,正运动技术公司没有义务或责任对此负责。1目 录第一章 PC 编程概述.11.1 运动控制器特点.11.2 开发架构.11.3 开发步骤.21.3.1 采用 VC 开发应用程序. 21.4 库函数封装方法.41.5 多控制器链接.6 第二章 基本功能介绍.72.1 控制器链接.72.2 基本轴参数初始化.82.3 特殊 IO 设置.92.4 单轴运动.102.4.1 单轴回零.102.4.2 单轴点动. 112.4.3 单轴状态.122.5 多轴插补运动.132.5.1 常用插补运动.13 2.5.2 连续插补运动.142.5.3 自动拐角参数设置.162.6 手轮运动.172.7 IO 与 AD/DA 设置读取.172.8 PC 与控制器数据交互.18 第三章 DLL 函数列表.203.1 控制器操作函数介绍.203.2 运动指令函数介绍.233.2.1 辅助指令.233.2.2 多轴直线插补.273.2.3 圆弧、椭圆、螺旋插补.283.2.4 特殊运动指令.41 3.2.5 同步运动指令.433.2.6 单轴运动指令.473.3 轴参数轴状态函数介绍.493.3.2 轴基本参数函数.503.3.3 其他参数函数.633.3.4 特殊信号参数函数(原点,限位). 733.4 输入输出函数介绍.773.5 数据通讯函数.82 第四章 直接串口控制.88 4.1 串口直接命令控制模式.882深圳市正运动技术有限公司ZMotion PC函数库编程手册2.0版第一章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.2 ZMC 开发架构图如图 1.2 红色部分粗线为 PC 程序与控制器的交互线路,ZMC 控制器支持以太网,USB,串口/485 等与 PC 相连,PC 程序与控制器上的 ZBASIC 程序可以同时运行,提高了处理的效率。1.3 开发步骤1.3.1 采用 VC 开发应用程序1) 打开 VC+6.0。2) 新建一个工程3) 选择 MFC APPWizard(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_HANDLE handle, int iaxis,float fValue)相当与 BASIC 命令中的“SPEED(轴号) = 速度值”。则封装函数时命令字符串就是 “speed(%d) =%f”。封装步骤:a) 编写源代码:打开辅助库源码,在 zmcaux.cpp 中添加对应的函数int32 _stdcall ZAux_Direct_SetSpeed(ZMC_HANDLE handle, int iaxis, float fValue) charcmdbuff2048; charcmdbuffAck2048; if( iaxis MAX_AXIS_AUX) returnERR_AUX_PARAERR;sprintf(cmdbuff, SPEED(%d)=%f, iaxis, fValue); /生成对应的命令字符串return ZAux_DirectCommand(handle, cmdbuff, cmdbuffAck, 2048); b) 在 zauxdll.def 中定义新增加的函数定义图 1.4-2 添加函数定义 c) 在头文件中增加对应的函数图 1.4-3 添加头文件 d) 编译生成新的 DLL1.5 多控制器链接正运动控制器可以支持一台 PC 控制多个控制器,常用于多轴、多工位流水线设备,或者车间设备监控。通常用一个交换机,通过给控制器设置不同的 IP 地址来访问各个控制器。注意:交换机上多有个以太网设备时,除了要保证 IP 地址不同外,MAC 地址也可能冲突(可以用正运动通过的辅助工具修改 IP 和 MAC 地址)控制器链接代码:char*ip_list4=192.168.0.11,192.168.0.12,192.168.0.13,192.168.0.14; for(int i =0;i4;i+)ZAux_OpenEth(ip_listi,&g_cardi);第二章基本功能介绍本章描述了控制器基本运动功能的使用,并提供了相关的例程,详情参考 PC 函数库对应的例程。2.1 控制器链接表 2.1 控制器连接相关函数函数名功能ZAux_OpenCom串口链接控制器ZAux_SetComDefaultBaud串口通讯参数设置ZAux_OpenEth以太网链接控制器ZAux_SearchEthlist搜索当前网段下的控制器 IPZAux_Close关闭控制器链接在对控制器进行操作时必须先调用链接函数链接控制器,当链接成功后方可通过返回的句柄操作对应的控制器。在关闭应用程序时要调用断开链接函数释放链接。例程 2.1.1:串口链接控制器ZMC_HANDLEg_handle = NULL;/链接返回的句柄uint32dwBaudRate =38400;/波特率 38400 uint32dwByteSize = 8;/8 位数据位 uint32dwParity = 0;/无校验uint32 dwStopBits = 1; /1 位停止位 uint32 comid = 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”;/控制器 IPZAux_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/sZAux_Direct_ SetAccel (g_handle,0,2000); /设置轴 0 加速为 2000units/s/sZAux_Direct_ SetDecel (g_handle,0,2000); /设置轴 0 加速为 2000units/s/sZAux_Direct_ SetSramp (g_handle,0,0);/设置轴 0S 曲线时间(0-梯形加减速)重点提示 2.2:轴类型:常用的类型为 1-脉冲输出类型(步进/伺服),3-编码器输入类型(外部编码器/轴本身的编码器),根据实际的硬件来配置对应的轴类型。虚拟轴类型为程序内部模拟运行的轴,通常用于轴叠加与机械手场合。Atype类型描述0虚拟轴;1脉冲方向方式的步进或伺服2模拟信号控制方式的伺服3正交编码器4步进+编码器6脉冲方向方式的编码器,可用于手轮输入7脉冲方向方式步进或伺服+EZ信号输入8ZCAN扩展脉冲方向方式步进或伺服9ZCAN扩展正交编码器。10ZCAN扩展脉冲方向方式的编码器。65ECAT脉冲类型66ECAT速度闭环67ECAT力矩闭环70ECAT自定义操作,只读取编码器.图 2.2-1 轴类型脉冲当量:脉冲当量为矢量轴参数的基本单位,如速度、加速度、位置。当 units 设置为 1 时,speed 单位为 脉冲/S,当 units 设置为机构移动 1mm 所需脉冲数时,那么 speed 单位为 mm./s。 必须先修改脉冲当量,然后再修改速度、位移这些参数。否则当 units 变化时会导致速度、加速度、位置的变化。脉冲模式:0-3 为脉冲加方向模式,4-7 为双脉冲模式。模式正向运动负向运动脉冲线方向线脉冲线方向线01234567图 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_Direct_Singl_Datum单轴回零运动ZAux_Direct_SetCreep设置二次回零的爬行速度例程 2.4.1:单轴回零ZAux_Direct_SetDatumIn(g_handle,0,1);/设置 IN(0)为轴 0 的原点信号ZAux_Direct_ SetSpeed (g_handle,0,100);/设置轴 0 速度为 200units/sZAux_Direct_ SetCreep(g_handle,0,10);/设置轴 0 爬行速度为 10units/sZAux_Direct_Singl_Datum(g_handle,0,4);/轴 0 按模式 4 回零,负向 2 次回零。正运动控制器提供了多种回零方式,通过传不同模式值选择对应的回零方式与方向。方式 1: Z 相模式,轴以 CREEP 速度运行直到 Z 信号出现。DPOS 值自动重置为 0 同时纠正 MPOS。只有在 ATYPE 设置为 7,并且将对应轴编码器 Z 相接入时有效。mode=1时正向回零,mode=2时负向回零。速度creep第一个Z相信号初始位置图 2.4-1 Z 相模式回零方式 2:原点+反找模式,轴以SPEED速度向原点运行,直到碰到原点开关。然后轴以CREEP速度反向运动直到离开原点开关。 DPOS值自动重置为0同时纠正 MPOS,mode=3时正向回零,mode = 4时负向回零。Creep慢速离开Speed快速回零初始位置传感器位置反向位置原点位置图2.4-2原点+反找回零方式 3:原点+反找+Z 信号模式,轴以 SPEED 速度向原点运行,直到碰到原点开关。然后轴以 CREEP 速度反向运动直到离开原点开关,然后再继续以爬行速度反转直到碰到 Z 信号。DPOS 值自动重置为 0 同时纠正 MPOS。只有在 ATYPE设置为7,并且将对应轴编码器Z相接入时有效。mode=5正向回零,mode=6负向回零。第一个Z信号Creep慢速离开Speed快速回零初始位置传感器位置反向位置原点位置图2.4-3原点+反找+Z相回零方式 4:原点一次回零模式,轴以SPEED速度向运行,直到碰到原点开关。DPOS值自动重置为0同时纠正MPOS。mode=8正向回零,mode=9负向回零。Speed速度回零初始位置传感器位置原点位置图 2.4-4 原点一次回零方式 5:对于原点在正负限位中间的情况,在各个模式上加 10,表示在回零过程中碰到了限位不取消运动,而是继续反向去找原点。2.4.2 单轴点动表 2.4-2 单轴点动函数函数名功能ZAux_Direct_Singl_Vmove单轴连续运动ZAux_Direct_Singl_Move单轴相对距离运动ZAux_Direct_Singl _MoveAbs单轴绝对距离运动ZAux_ Direct_Singl_Cancel单轴运动停止控制器每个轴都有自己独立的轴参数,并且运动的参数值全局性的,即速度,加速度一变则立刻生效,可以实现在线变速的功能。例程 2.4.2 单轴运动intrun_state = 0;/轴运动状态ZAux_Direct_ SetSpeed (g_handle,0,200);/设置轴 0 速度为 200units/sZAux_Direct_ SetAccel (g_handle,0,2000);/设置轴 0 加速为 2000units/s/sZAux_Direct_ SetDecel (g_handle,0,2000);/设置轴 0 加速为 2000units/s/sZAux_Direct_ SetSramp (g_handle,0,0);/设置轴 0S 曲线时间 0(梯形加减速)ZAux_Direct_Singl_Move(g_handle,0,100);/轴 0 相对与当前位置运动 100 unitsdoZAux_Direct_GetIfIdle(g_handle,0,& run_state); /读取轴 0 运动状态,0-运动,-1 停止While (run_state = 0)/等待轴 0 停止重点提示 2.4.2连续运动在切换方向时可以直接再次调用 VMOVE 直接替换前面的连续运动,不需要 cancel 后调用。调 cancel 停止运动时,使用的减速度为ZAux_Direct_SetFastDec(缺省默认等于decel的值)设置的值减速,要实现急停时可以将fastdec设置一个较大值。2.4.3 单轴状态表 3.4-3 单轴状态函数函数名功能ZAux_Direct_GetDpos轴坐标读取ZAux_Direct_GetIfIdle轴运动状态读取ZAux_Direct_GetAxisStatus轴状态读取重点提示 2.4.3轴运动状态的判断调用 ZAux_Direct_GetIfIdle 函数可判断当前轴运动状态,状态 IDLE 返回只有 0,-1 两种值,0 表示当前轴正在运动中,-1 表示当前轴没有运动,也可以通过 ZAux_Direct_GetMtype 判断当前轴的的运动状态是否处于 IDLE 状态来实现相同效果。轴状态的判断通过调用 ZAux_Direct_GetAxisStatus 函数返回一个 32 位的状态值,状态值的每一位表示不同的轴状态。表 2.4.3-1 轴状态位值意义12随动误差超限警告24与远程轴通讯出错416正向硬件限位报警532负向硬件限位报警664找原点中7128HOLD 速度保持信号输入8256随动误差超限出错9512超过正向软限位101024超过负向软限位112048CANCEL 执行中124096脉冲频率超出限制18262144电源异常224194304伺服告警信号输入238388608轴进入了暂停状态2.5 多轴插补运动正运动控制器可以支持直线、圆弧、螺旋、空间圆弧、椭圆和椭圆螺旋等各种插补运动。并且可以随意组合轴做插补运动,从而实现一台控制器对多工位的控制。2.5.1 常用插补运动表 2.5-1 常用插补运动函数函数名功能ZAux_Direct_Base设置运动轴列表ZAux_Direct_Move多轴相对直线插补运动ZAux_Direct_MoveAbs多轴绝对直线插补运动ZAux_Direct_MoveCirc2二轴相对三点定圆弧插补运动ZAux_Direct_MoveCirc2Abs二轴绝对三点定圆弧插补运动ZAux_Direct_MSpherical空间圆弧插补运动插补运动的运动参数都是设置在主轴上的,主轴即为 ZAux_Direct_Base (ZMC_HANDLE handle, int imaxaxises, int *piAxislist)指令中轴列表 piAxislist 中的第一个轴为主轴。主轴速度,加速度,减速度为各个参与插补运动轴轴参数的矢量方向合成参数。判断运动状态时,直接判断主轴状态即可。例程 2.5.1 三轴直线插补int axislist3 = 1,0,2;/运动 BASE 轴列表,其中轴 1 为主轴float poslist3 = 100,200,300;/运动列表,轴 1-100,轴 0-200,轴 2-300ZAux_Direct_SetSpeed(g_handle,axislist0,100); /设置插补速度 100,设置在主轴上 ZAux_Direct_SetAccel(g_handle,axislist0,1000); /设置插补加速度 1000ZAux_Direct_Base(g_handle,3,axislist);/选择轴列表ZAux_Direct_MoveAbs(g_handle,3,poslist);/调用运动,轴 0,1,2 走到对应的绝对位置重点提示 2.5.1空 间 圆 弧 指 令 只 有 相 对 运 动 指 令 , 一 般 通 过 ZAux_Direct_GetEndMoveBuffer 指令读取对应轴的运动结束位置来将绝对坐标转为相当偏移来调用相对空间圆弧指令。2.5.2 连续插补运动表 2.5-2 连续插补相关函数函数名功能ZAux_Direct_SetMerge连续插补运动开关ZAux_Direct_GetRemain_Buffer读取剩余的运动缓冲个数ZAux_Direct_SetForceSpeedSP 运动运行速度ZAux_Direct_SetStartMoveSpeedSP 运动起始速度ZAux_Direct_GetEndMoveSpeedSP 运动结束速度ZMotion 运动控制器每个轴都具有多级的运动缓冲,当前有运动指令正在执行时,后面调用的运动指令会填入缓冲,当前面的运动执行完毕时缓冲会自动空出。避免程序的阻赛。也可以用 MOVE_DELAY 把延时指令填入缓冲,这样在运动指令之间自动延时,或者用 MOVE_OP 在运动中插入 IO 操作,当连续插补开关 MERGE 打开时,会把相同主轴的插补运动会自动被连续起来。VMOVE/JOG图 2.5-2 运动缓冲所有的插补运动都有对应的自定义速度的 SP 运动,如 movesp,moveabssp. 等等。SP 运动的速度不再受全局速度 speed 的控制,而是通过专门的速度指令设置对应段的起始、运行、结束速度,这些速度也是随着运动一起进入运动缓冲的。例程 2.5.2 连续插补运动int axislist3 = 0,1,2;/运动 BASE 轴列表, float poslist3 = 0,0,0;/运动列表, int iremain = 0;/剩余缓冲ZAux_Direct_Base(g_handle,3,axislist);/选择轴列表ZAux_Direct_SetMerge(g_handle,axislist0,1);/连续插补开关ZAux_Direct_SetStartMoveSpeed(g_handle, axislist 0,1000); / 设一个较大值大于最大的FORCE_SPEED,表示不启用起始速度ZAux_Direct_GetEndMoveSpeed(g_handle, axislist 0,1000); for(int i = 0;i100;i+) poslist0 = i*2; poslist1 = i*3; poslist2 = i*5; doZAux_Direct_GetRemain_Buffer (g_handle, 0, &iremain);/读取剩余缓冲While(iremain 1)等待有剩余缓冲ZAux_Direct_SetForceSpeed(g_handle, axislist 0,i+10);/设置运行速度ZAux_Direct_MoveAbsSp(g_handle, 3, poslist );/调用 SP 运动重点提示 2.5.2连续插补发送运动前 (包括 move_op、move_delay 指令)都需要先判断主轴的运动缓冲是否有空余,然后在发送运动,当缓冲区满时向控制器发送运动,发送的命令会返回错误,不能填进运动缓冲。当然不同运动指令占用的缓冲区大小是不一致的。ZAux_Direct_GetRemain_Buffer 是按占缓冲最大的空间圆弧指令返回的。表示可以填放剩余空间圆弧命令的个数。2.5.3 自动拐角参数设置表 2.5-3 拐角设置函数函数名功能ZAux_Direct_SetCornerMode设置拐角减速模式ZAux_Direct_SetDecelAngle设置拐角减速起始角度ZAux_Direct_SetStopAngle设置拐角减速停止角度ZAux_Direct_SetFullSpRadius设置小圆限速半径ZAux_Direct_SetZsmooth设置自动倒角半径设备在拐角处高速运行时会产生强烈振动,这时一般需要在拐处做减速处理。可以通过控制器上的自动拐角模式做对应的减速处理。CornerMode 的不同位对应的不同的减速模式,设置为 0 时表示拐角不减速。例程 2.5.3 拐角减速设置int axislist4 = 0,1,2,3;/运动 BASE 轴列表int corner_mode = 2+4+32;/拐角模式自动拐角+小圆限速+倒角float m_startang = 15*3.14/180;/拐角减速开始角度float m_stopang = 90*3.14/180;/拐角减速停止角度float m_fullradius = 5;/小圆半径floatm_zsmooth = 5/倒角半径ZAux_Direct_SetLspeed(g_handle,axislist0,0);/设置起始速度ZAux_Direct_SetCornerMode(g_handle,axislist0,corner_mode); /设置拐角模式 ZAux_Direct_SetDecelAngle(g_handle,axislist0,m_startang); /设置开始减速角度 ZAux_Direct_SetStopAngle(g_handle,axislist0,m_stopang); /设置开始减速角度ZAux_Direct_SetFullSpRadius(g_handle,axislist0,m_fullradius); /设置小圆半径 ZAux_Direct_SetZsmooth(g_handle,axislist0,m_zsmooth); /设置倒角半径重点提示 2.5.3自动拐角减速时,速度是通过矢量方向的拐角大小开始减速的,由开始减速角度到停止减速角度之间做线性减速,当拐角达到停止减速角度时,速度减到 lspeed 设定的值。关系如下图所示。图 2.5-3 拐角减速2.6 手轮运动表 2.6-1 手轮运动函数函数名功能ZAux_Direct_Connect同步跟随指令ZAux_Direct_SetClutchRate设置连接速率手轮为一个外部编码器轴,会占有控制器的一个编码器接口。手轮运动时脉冲按照设置的比例同步跟随手轮运动,在通过运动时连接速率通常设置为 0,表示根据轴的速度/加速度参数来跟踪连接。例程 2.6 手轮运动ZAux_Direct_SetAtype(g_handle,4,3);/配置轴 4 为手轮轴ZAux_Direct_SetUnits(g_handle,4,100);/脉冲当量int m_naxis = 0;/当前脉冲轴float m_radio = 1;/倍率ZAux_Direct_SetClutchRate(g_handle,m_naxis,0);/设置连接速率ZAux_Direct_Connect(g_handle,m_radio,4,m_naxis); /手轮同步运动,轴 0 跟随轴 4 运动重点提示 2.6同步指令连接 2 个轴后,取消时需要用 cancel 指令取消当前轴的同步运动,然后再调用别的运动,当切换同步倍率时可以直接调用 CONNECT 来取代前面的CONNECT 指令。2.7IO 与 AD/DA 设置读取表 2.7-1 输入输出函数函数名功能ZAux_Direct_GetIn读取单个输入口状态ZAux_Direct_SetOp设置单个输出口状态ZAux_Direct_GetOp读取单个输出口状态ZAux_Direct_GetAD读取单个 AD 输入值ZAux_Direct_SetDA设置单个 DA 输出值ZAux_Direct_GetDA读取单个 DA 输出值上述都是对单一的输入输出口进行操作,在实际操作过程中为了提高效率可能同同时对多个 IO 进行读取或者设置,可以直接操作连续的对应的 MODBUS 寄存器来操作多个 IO,或者 AD、DA。例程 2.7uint32 iostatus = 0;ZAux_Direct_SetOp(g_handle,0,1);/打开输出 0ZAux_Direct_GetIn(g_handle,1,&iostatus); /读取输入 1 的状态 ZAux_Direct_SetDA(g_handle, 0, 2048);/设置 da 输出 da(0) = 2047,5V uint8 iostate12 = 0;ZAux_Modbus_Get0x(g_handle,10000,16,&iostate10);/读取 in(0-15)的状态,其中 iostate10表示 0-7,iostate11表示 8-15 的状态。重点提示 2.7 输入输出、模拟量都是有对应的 modbus 寄存器的,操作对于的 modbus 寄存器可以直接对输入输出进行操作。Modbus_bit(10000)以上映射 in(0)以上,即 0x(10000) - in(0).Modbus_bit(20000)以上映射 out(0)以上,即 0x(20000) - out(0).Modbus_reg(13000)以上映射 DA(0)以上,即 4x(13000) - ad(0)Modbus_reg(14000)以上映射 AD(0)以上,即 4x(14000) - da(0)2.8PC 与控制器数据交互表 2.8-1 数据交互相关函数函数名功能ZAux_Modbus_Set0x设置 modbus 位寄存器ZAux_Modbus_Set4x设置 modbus 字寄存器ZAux_Direct_SetTable设置系统 table 寄存器ZAux_Direct_SetVrf设置 VR 寄存器ZAux_FlashWritef写控制器 FLASH 空间ZAux_Direct_GetVariablef读取控制器上全局变量浮点型ZAux_Direct_GetVariableInt读取控制器上全局变量整形更多详情参考 3.5 节例程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论