请画出与上述代码对应的程序流程图;_研华运动控制卡程序开发——多轴回原点...

本文主要介绍研华运动控制卡如何实现多轴回原点并将XYZ三轴走到对应待机位的动作流程,为了更好掌握回原点运动控制流程,这里详细介绍了XYZ三个轴先后回原点,回原点完成后清零及运动到待机位等程序流程开发。本文程序的开发以C#为例,其他的开发语言只是编写语言的区别,对于整体的开发流程无区别。

回原点流程

4c1df86485f00b68d161282ea36e0dfb.png

创建线程

由于回原点整体的动作属于运动流程,因此我们还是用Switch Case的架构来实现,关于线程的建立及相应各个功能,请查看研华运动控制卡程序开发——单轴往返运动一文中的创建线程章节,线程函数规划如下图。

726625d1c73f310c44f3ac966731ba34.png

动作流程编写

本文需要达到的就是所有的回原点动作流程均在Case:SysHomeState里面执行,为此我们只需要在对应的AdvHome()函数里实现回原点运动流程即可。

那AdvHome()函数里,我们又将每一步动作划分到每个Case来执行,如下图。

f641dd60eec5636ea5059422d842aa60.png

每执行完一个Case就跳出到外面大的While循环(上图线程函数中的While),然后再进入Case:SysHomeState,再进到AdvHome()函数里执行下一个Case。因此,在AdvHome()函数里不允许在Case里面增加Sleep来作为延时计算,这样会导致整个线程处在Sleep里面,没法响应其他异常。

代码实现

AdvHome()函数对应的动作流程

0d3d10a98603886716d7564d7840014d.png

0b034a7852929287d51fef3df3e0a74d.png

b5b1e479bb6315fea7a116101f113c7d.png

AdvAxSetHomeVelPar()函数代码

9a1414abebbdb40105135afc079387c8.png

AdvAxMoveHome()函数代码

d9a142fef4215a32a843041a22bc2202.png

AdvMotionDone()函数代码

4f7b705a22b323ddef4c995ac4aba92d.png

WaitTime()函数代码

62296bada5ca3569414206dbee63693d.png

AdvEctAxSetPos()函数代码

EtherCAT总线型驱动器,不支持SetActualPosition指令,调用SetCmdPosition指令后,会对驱动器执行CiA402中的Home mode35模式,将当前的位置设置为输入值。因为该方式是通过SDO方式进行读写设置,所以有一定几率发生调用失败的现象。因此,建议调用完该指令,需判断返回值是否成功以及轴状态是否Ready,若是返回值为失败或轴状态为ErrorStop则需再次重新调用该指令。可通过下图流程图及参考代码进行设置轴位置设置。

45fbc811e8847e67f52019b4b74cdb84.png

eeffd47dd3045674c0dd74f912565569.png

对于脉冲型驱动器模块从站(针对AMAX-3245/85上所控制的轴或者脉冲板卡),因为该模块不是CiA402模块,理论位置和反馈位置不需要同步,因此该模块支持SetCmdPosition和SetActualPosition,且可以分开设定,可通过如下程序代码实现。

8c41825be612d2ab4e9b4aecdfe4d0d9.png

AdvMoveAbs ()函数代码

a9e041a9601d486875feae26d78af237.png

界面Home按钮的响应函数代码

5d6453e083ad8cf1ff29dd3076186e2e.png

最终简单实现界面

f15bae3bbb9faf5583b68fc7cd11dc9c.png

研华运动控制卡PCI-1285-AE说明书 特点 PCI-1245E PCI-1285E PCI-1245E PCI-1285E 四/八轴PCI接口DSP架构经济版 脉冲型运动控制卡 规格 脉冲型运动控制 ƒƒ电机驱动支持 脉冲型伺服/步进电机 ƒƒ轴数 PCI-1245E: 4 PCI-1285E: 8 ƒƒ插补 2轴直线插补 ƒƒ最大输速度 5 Mpps ƒƒ步进计数范围 ±2, 147, 483, 646 ƒƒ脉冲输类型 脉冲/方向 (1-脉冲, 1-方向) CW/CCW (2-脉冲) ƒƒ位置计数 指令/实际 位置范围 ƒƒ速度形式 T-曲线, S-曲线 I/O ƒƒ机械接口 LMT+、LMT-、ORG/轴 ƒƒ伺服驱动接口 ALM、INP ƒƒ通用I/O PCI-1245E 16DI/16DO PCI-1285E 32DI/32DO (RDY/LTC引脚转换为通用输入引脚, CAM-DO/CMP/SVON/ERC引脚转换为通用输 引脚) 编码器接口 ƒƒ输入类型 正交 (A/B相,加/减) ƒƒ每个编码器循环计数 x1, x2, x4 (仅A/B相) ƒƒ输入范围 5 ~ 10 V ƒƒ隔离保护 2,500 VDC ƒƒ最大输入频率 4xAB模式下10 MHz 一般 ƒƒ总线类型 通用 PCI V2.2 ƒƒ连接器 PCI-1245E: 1 x 100-pin SCSI 母头连接器 PCI-1285E: 2 x 100-pin mini-SCSI 母头连接器 ƒƒ尺寸 (L x H) 175 x 100 mm (6.9" x 3.9") ƒƒ编码器输入规格为4xAB模式10 MHz, CW/CCW 模式2.5 MHz ƒƒ脉冲输高达5 M pps/轴 ƒƒ DSP中可以规划10K的轨迹内存缓冲区 ƒƒ支持电子齿轮运动 ƒƒ支持两轴直线插补运动 ƒƒ输方式可通过跳线设置为差分或单端输入方式 ƒƒ 16种HOME模式 ƒƒ可编程中断 ƒƒ硬件紧急输入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值