MC1002R 2轴脉冲/模拟量+32轴RTEX总线运动控制器
MC1002R是和利时集团自主研发MC1000系列运动控制器中的一款支持RTEX总线运动控制器。该控制器既可通过RTEX总线接口连接松下RTEX总线型伺服驱动器(最多32轴),也可通过脉冲/模拟量接口连接任意厂家的伺服驱动器(2轴);控制器本体集成多路I/O,并可扩展连接和利时LE系列I/O;可提供多路通讯接口(如Modbus RTU/TCP)。MC1002R可用于高性能大中型机器设备的运动控制和逻辑控制。
MC1002R 现已上市,欢迎各位垂询!
PS:MC1000系列产品特色,请关注“和利时 MC系列运动控制器简介”帖子:
http://bbs.gongkong.com/d/201504/616353_1.shtml
欢迎反馈您的建议与意见!
电子凸轮
电子凸轮属于多轴同步运动,这种运动是基于主轴和一个从轴系统,这时的主轴可以是虚拟轴。
凸轮是在机械凸轮的基础上发展起来的,传统机械凸轮是通过凸轮实现非线性的加工轨迹,而电子凸轮直接将轨迹点输入到控制器内,通过设定的解算方式进行运动控制,达到和机械凸轮相同的加工目的。
电子凸轮相对机械凸轮的优势在于:
方便根据需求更改加工轨迹,而不需要繁琐的更改机械凸轮。
加工机械凸轮的成本较高、难度较大。
机械凸轮会磨损、通常是机床噪音的最大来源。
电子凸轮的实现方式分为三部分,分别是:1、设定主轴和从轴;2、设定电子凸轮曲线;3、实现电子凸轮运动。
举例说明:一个O-XY平面画切平台,有2个轴,其中主轴axis0沿X方向运动,从轴axis1沿Y方向运动,在平台上画出如下正弦曲线。要实现这一功能,只需在曲线上取N(本例取1000)个点,建立一个2*N的二维数组,用于存放主轴和从轴的位置坐标序列,然后分别将所取每个点的X坐标值放入主轴位置数组序列,对应的Y坐标值放入从轴位置数组序列,启动后,主轴正向运动,从轴按照与主轴位置所对应的位置序列值运动。
图 6‑19 示波器显示
编程示例如下:
HMC_DriveEnable (DR_EN ); (* 信号使能操作 *)
HMC_SetAxisType (0 , 0); (* 设置axis0属性 *)
HMC_SetUnits (0 ,1);
AXIS0.SPEED := 10;
AXIS0.ACCEL := 100;
AXIS0.DECEL := 100;
HMC_SetAxisType (1,0); (* 设置axis1属性 *)
HMC_SetUnits (1 ,1);
AXIS1.SPEED := 10;
AXIS1.ACCEL := 100;
AXIS1.DECEL := 100;
POINTERarray := ADR (arraympos );(* 设置二维数组,用于存放主轴和从轴的位置值 *)
i:=0; (* 设置正弦运动曲线 *)
WHILE i<1000 DO
arraympos[0,i] := i; (* 设置主轴位置数组列 *)
arraympos[1,i] := SIN (2*3.14*i/1000); (* 设置从轴位置数组列 *)
i := i+1;
END_WHILE
HMC_TriggerScope (); (* 示波器使能 *)
HMC_Forward (0); (* 主轴启动 *)
HMC_Cam (1 ,0,POINTERarray,1000,1,0,0); (* 电子凸轮函数,只进行一次凸轮联动,并立即启动电子凸轮,按照二维数组arraympos里的1000个位置值运动 *)
大家好!
通过对电子凸轮的轨迹规划,电子凸轮实际上就是从轴同主轴在位置上的同步跟随,与速度无关。而“主从轴数组”就是正在构建这种从轴对应主轴的轨迹插补关系,每个对应的数组数据都是在告知当主轴走到ArrayPos[0,i],从轴此刻同样要走到ArrayPos[1,i]。
即使主轴速度加快,凸轮从轴仍然是在走位置跟随,只不过是凸轮解算得出来的从轴运动速度在加快罢了
ps:1.得益于MC控制器“1毫秒”的算法执行周期,HMC_Cam可实时修改凸轮数组数据,并运动实时生效,无需等到下一凸轮周期。
2.HMC_Cam主轴数组数据规划无需等间距,可任意设计两位置点间距。例如,0,1,3,7,15,15.3,15.8,... ...
另附上HMC_Cam的参数说明:
大家好!和利时MC--追剪算法展示如下,请大家多多指教!
追剪即裁断装置做往复运动,裁断装置同物料送料速度达到同步后进行裁剪,然后返回等待位,再次追踪同步,往复运动。
以下以飞锯举例说明。
主要程序如下:
add1 := ADR(Pos);
add2 := ADR(Pos1);
add3 := ADR(Pos2);
add4 := ADR(Pos3);
add5 := ADR(Pos4);
HMC_ClcMoveLinkData(0, 92, 0, 0, add1, PosNum);(*裁剪等待区*)
HMC_ClcMoveLinkData(0.5, 1, 1, 0, add2, PosNum);(*裁剪加速区*)
HMC_ClcMoveLinkData(2, 2,0, 0, add3, PosNum);(*裁剪同步区*)
HMC_ClcMoveLinkData(0.5, 1, 0, 1, add4, PosNum);(*裁剪减速区*)
HMC_ClcMoveLinkData(-3, 4, 1, 1, add5, PosNum);(*裁剪返回区*)
HMC_Cam (1, 0, add1, PosNum, 1, 0, 0);
HMC_Cam (1, 0, add2, PosNum, 1, 0, 0);
Cut_Enable := HMC_Cam(1, 0, add3, PosNum, 1, 0, 0);
HMC_Cam(1, 0, add4, PosNum, 1, 0, 0);
HMC_Cam(1, 0, add5, PosNum, 1, 0, 0);
Camload_Ok := HMC_WaitCmdLoaded(Cut_Enable);(*在同步区驱动裁剪*)
%QX0.0:= 1;(*裁刀动作*)
CamFinish_Ok := HMC_WaitCmdFinish(Cut_Enable);(*同步区结束后立即停止裁剪*)
%QX0.0 := 0;(*裁刀收回*)
(*注意:在实际应用过程中,为了保护裁刀可以将同步区再细化. *)
在MC追剪方案的应用过程中,数组是起到了中间数据交互的作用。首先将曲线通过HMC_ClcMoveLinkData指令解析放在数组中,最后驱动主轴运行,从轴通过HMC_Cam指令解析数组数据与主轴位置一一对应。
需要注意的是HMC_ClcMoveLinkData和HMC_Cam均需要取得数组指针。
HMC_ClcMoveLinkData(追剪运算)
功能
该功能可生成用户所需的主从轴数据,控制从轴对主轴做位置跟随,该运动带有分离可变的加减速阶段。
参数 HMC_ClcMoveLinkData(SlaveDistance,MasterDistance,DistanceAcc,DistanceDec,ArrPos,PosNum);
目标位置变更
包装机械在运行过程中,由于输送带机械振动导致的材料偏移、线速度的变化、包装材料拉伸,还有包装材料上的色标定位之间存在累计误差等影响因素,将极大影响封切质量。通过色标捕捉这一快速响应功能,配以目标位置变更的修正功能,在每一个色标定位周期进行补偿,有效控制住累计误差,将误差维持到允许范围内。
应用举例1:
夹送辊输送一印刷的卡片,卡片在印刷的时候印上了一个色标块(下图中两图案中黑色的方块)。要求把卡片模切下来,模切的位置刚好在卡片中心,不能有累计误差。实现原理:我们在夹送辊的左方加装一个色标传感器,每次行走的距离以色标的位置为参考偏移行走合适的距离,由于是同一个印刷版印出来的,所以色标和卡的图案位置是固定的。这样每次走过的距离都是以色标的位置作为参考,消除了累计的误差。色标传感器接到快速DI0捕捉通道上。
我们假设两卡片图案之间的间距是300 mm,要模切的位置距离色标的位置是offset(位置可以调整)。具体程序如下:
Start_MPOS := 0.0;
End_MPOS := 300.00;
Offset := 30.0;
HMC_SetAxisType(0, 10);(*轴0步进模式*)
HMC_SetUnits(0, 1);
axis0.Speed := 100;
axis0.Accel := 1000;
axis0.Decel := 1000;
WHILE true DO (* 后续程序计算 ,循环扫描*)
IF bStart = 1 THEN
HMC_DefOrigin(0, axis0.MPos);(*当前位置清零*)
HMC_CaptureConfig(0, 0, 1, 0, 0, 1, Start_MPOS, End_MPOS)
HMC_Move(0, 300);(*走一个卡片图案间距*)
WHILE (State_RESULT<>3) DO
Reg_pos := HMC_CaptureGetMpos(0);
( * 读取高速捕捉通道 0 获取到的 Mpos,本例中获取位置例如为280*)
State_RESULT := HMC_CaptureGetState(0 ); ( * 读取高速捕捉通道 0 的状态 *)
END_WHILE
State_RESULT := 999; (*复位高速捕捉返回状态 *)
HMC_MoveModify(0, Reg_pos+ offset);
( *本例中获取位置例如为280, Offset为30,则绝对目标位置为310,所以本例中补偿了10*)
HMC_WaitAxisIdle(0); (*等待MoveModify补偿完毕,再进行下一循环 *)
END_IF
END_WHILE
传送带轨迹:
HMC_CaptureConfig(设置高速捕捉)
功能
高速捕捉设置。
参数
参数 | |
U8 ucChanID | 高速捕捉通道号(0~7) |
U8 bTrigEdge | 触发沿类型:0(上升沿触发),1(下降沿触发) |
U8 ucTrigType | 触发源类型:0(Z相触发),1(DI触发) |
U8 ucTrigID | 触发源号:DI通道号或者Z相所在轴号(仅限高速DI) |
U8 ucCaptureAxis | 待捕获的轴(捕获该轴Mpos,轴号0~63) |
U8 bWinModeEnable | 窗口模式使能:0(禁用窗口),1(窗口内使能),2(窗口外使能) |
F64 dWinStart | 捕获窗口开启位置:ucCaptureAxis的Mpos值 |
F64 dWinEnd | 捕获窗口关闭位置:ucCaptureAxis的Mpos值 |
备注
窗口内使能时,捕获窗口为闭区间;窗口外使能时,捕获窗口为开区间。
高速捕捉功能为用户提供了“根据某个0-1(或1-0)的开关量变化瞬间捕获某个轴的实际位置”的方法。伺服轴与编码器轴捕获精确,步进轴与虚轴存在1ms的捕获误差。