和利时MC运动控制器
最后附上宣传彩页:MC功能介绍/技术参数表 请下载!
MC1002E EtherCAT总线式运动控制器(同时支持2轴位置闭环模拟量控制/位置开环脉冲控制)
MC1002R RTEX总线式运动控制器(同时支持2轴位置闭环模拟量控制/位置开环脉冲控制)
MC1004 4轴运动控制器,支持位置闭环模拟量控制/位置开环脉冲控制
MC1008 8轴运动控制器,支持位置闭环模拟量控制/位置开环脉冲控制
MC1004L 经济型4轴运动控制器,支持4路位置开环脉冲控制/1路编码器输入
产品定位
和利时MC系列运动控制器,是控制机器运行的专用控制器;集成了多种运动控制专用接口以及丰富的运动控制算法;致力于智能设备领域的市场应用。
产品特性一:外围接口完备
1. 运动控制直连接口 MC1004以及MC1008的伺服直连式接口信号可入可出,速度极快。既可输入编码器信号接收反馈信息,输入频率可达6MHZ;又可输出脉冲串信号控制伺服运动,输出频率可达2MHZ
注:运动控制网络式接口,于2015年6月份推出RTEX总线控制器MC1002R,将在2016年4月份推出EtherCAT总线控制器MC1002E.
2. 本地IO和扩展IO 数字量共24DI/16DO。具有高速IO,12路高速DI(10KHZ),12路慢速DI(20HZ);8路高速DO(10KHZ),路慢速DO(20HZ);模拟量,4轴控制器2AI4AO,8轴控制器4AI8AO,电压型。为满足IO点数较多的方案需求,可通过MC1901适配器扩展LE IO模块,无需编程,仅作简单配置即可。
3. 串口通讯接口 MC支持Modbus RTU主从协议,以RS485通讯方式通讯速率最高达1.5Mbps,其他厂家仅支持到38400bps;MC支持自由口协议。
4. 以太网通讯接口 控制器自带以太网口用于编程调试;支持Modbus TCP主从站协议,10/100/1000Mbps自适应,可与各类第三方设备通讯。
5. SD卡接口支持文件读写功能 无需借助上位机,直接通过控制器即可对任意文件进行读写操作;支持生成日志文件;可创建、修改、删除配方方案;支持用户对各类二次加工文件例如PLT格式图库文件进行解析并执行,以平面画切实验台为例;最大支持32GB。
6. 电源接入 24V直流供电,安全电压,更具安全性。
产品特性二:以“轴”为对象的运动控制核心算法,可实现0.125-8毫秒伺服控制周期
7. 插补 可做直线插补,圆弧插补,螺旋线插补,球弧插补,更可实现样条曲线插补高级功能,可做64轴任意多轴插补运动。可广泛应用于切割设备,雕铣设备,点胶设备,木工机械及要求高速、高精度的半导体加工中心、数控机床等等。
8. 联动 1)凸轮允许用户自定义主动轴轨迹区间,无须做等比例区间规划;2)电子齿轮允许动态改变电子齿轮比,改变后的比例实时起效;3)运动叠加可设定不同连接比例,将多轴运动进行叠加且实时起效。可广泛应用于印刷、包装、纺织,绕线设备等等。
9. 高级功能 1)纳秒级的高速色标捕捉,确保包装印刷机器在高速运转过程中实现高精度对位纠偏;2)高速脉冲输出功能,以电子加工行业为例,可实现高精度的激光到位输出功能,可驱动电机以4米/秒的速度高速运转,在2米长工件上连续打出2万个等间距点阵;3)运动前瞻功能,最大64级缓存的前瞻运算,直线运动刚劲有力,曲线运动柔和降速,做到了生产效率和机械使用寿命的双提升;4)追剪/飞剪运算功能,针对冶金,印刷,包装行业开发,通过简单规划主从轴对应的行程区间,即可完成追踪同步,让生产线连续作业无需停线切割操作。
产品特性三:一套丰富的运动控制算法需要出色的软硬件支撑
10. 硬件 MC控制器采用双核ARM Cortex-A9处理器,667M主频;运算采用64位双精度浮点数进行运算,确保运算精度
11.操作系统 自主研发符合工业级操作系统,较之市面上的商业操作系统,代码简洁可靠性较高,同时充分发挥了CPU性能,保证了系统的高实时性;用户可采用多任务方式编程,最多可支持8个任务同时运行;
12.AT软件 积累多年过程自动化(核电,火电,石化,化工,冶金等等)软件研发经验,自主开发适合工厂自动化的软件编程环境AutoThink;采用符合IEC61131-3的编程规范,支持梯形图LAD,结构文本ST,功能块FBD,顺序功能图SFC编程语言; 中文编程环境,标签化编程,各项功能简约直接,将主要时间留给编程调试工程师。不同于大多数运动控制器的解释执行机制,MC控制器采用的是高效的编译执行机制,用户程序执行效率是其他同类控制器的10倍以上。
产品特性四:一款具有安全性的产品需要完善的知识产权保护功能
13. 四重加密措施 1)用户编译后的2进制代码只可下装,无相同工程不可上载; 2)MC控制器具有控制器上锁解锁功能;3)支持用户工程和程序加密,可设置只读或读写密码;4)依据MC控制器独有的ID进行加密,使得每一台MC控制器都可独立加密。
回复内容:
对: henji 你们的直线插补是咋用的,我想了解下 内容的回复!
您好!感谢您的关注!
直线插补,MC按照维度分为平面2D,空间3D,多维ND,按照轨迹模式以上每种又分为增量和绝对值定位两类。MC的直线插补指令如下所示:
HMC_Move2D(2轴直线插补)、HMC_MoveAbs2D(2轴绝对值直线插补)、HMC_Move3D(3轴直线插补)、HMC_MoveAbs3D(3轴绝对值直线插补)、HMC_MoveND(N轴直线插补)、HMC_MoveAbsND (N轴绝对值直线插补)
下面以一个平面切割轮廓为三角形的物料为例,三角形如下:
编写程序如下:
(*分别设置使用的三个轴的轴类型*)
HMC_SetAxisType (10 ,0); (*合轴即XY规划轨迹的合成轴,轴号10,虚轴*)
HMC_SetAxisType (0 ,10); (*X轴,轴号0,步进轴类型*)
HMC_SetAxisType (1,10); (*Y轴,轴号1,步进轴类型*)
HMC_Move2D(10,0,1,300,0); (*X轴正向移动300,Y轴静止。第1条直角边*)
HMC_Move2D(10,0,1,0,400); (*X轴保持静止,Y轴正向移动400。第2条直角边*)
HMC_Move2D(10,0,1,-300,-400);(*X轴负向移动300,Y轴负向移动400。斜边*)
Axis10.Speed:=MainSpeed; (*插补运动的速度由合轴速度设定,实时修改立即生效*)
Axis10.Accel:=MainAccel; (*插补运动的加速度由合轴加速度设定,实时修改立即生效*)
Axis10.Decel:=MainDecel; (*插补运动的减速度由合轴减速度设定,实时修改立即生效*)
通过AutoThink软件示波器观察实际运行轨迹如下图:
2轴直线插补实现三角形轮廓轨迹
下面再给大家介绍下圆弧插补的简易例子
切割如下图工件。
以上图O点为起始点,编写程序如下图:
HMC_Move2D(6,0,1,2000,0);
HMC_MoveCircle(6,0,1,3,0,-2000,0,-1000); (*以当前点A为起始点,终点和圆心都以A点为原点*)
HMC_Move2D(6,0,1,-2000,0);
HMC_MoveCircle(6,0,1,3,0,2000,0,1000); (*以当前点C为起始点,终点和圆心都以C点为原点*)
运行程序,在AT示波器中得到轨迹如下:
HMC_MoveCircle(圆弧插补)
函数原型
UDINT HMC_ MoveCircle (USINT ucAxisID,USINT ucAxisX,USINT ucAxisY,USINT ucMode,LREAL dAx,LREAL dAy, LREAL dBx,LREAL dBy)
您好!MC控制器是可以做空间弧线轨迹,即球弧插补。除此之外,还可以做螺旋线插补以及平面和空间的样条曲线插补。
下面举一个球弧的小例子:
以(0, 0, 0)为起始点,经过(0, 1000, -1000)点,终点为(1000, 0, -1000)点,使用模式0,编写程序如下:
HMC_MoveSpherical (0,1,2,3,0,1000,0,-1000,0,1000,-1000 );
AT示波器记录各分轴Dpos,将数据导出,通过第三方软件读取数据绘制三维图形如下:
HMC_MoveSpherical(球弧插补)
n 函数原型
UDINT HMC_MoveSpherical (USINT ucAxisID,USINT ucAxisX,USINT ucAxisY,USINT ucAxisZ,USINT ucMode,LREAL dAx,LREAL dAy,LREAL dAz, LREAL dBx,LREAL dBy,LREAL dBz)
您好!感谢您对MC的关注!
我们这里可以举个例子来说明!
避障取放物料
三轴直角坐标机械手需把物料从位置A搬运至位置B,然后从B返回A,周而复始。由于AB之间有一些障碍物,因此需规划合适的路径避开障碍。
如果采用常规的三轴直线插补,则路径规划如下图中红色曲线所示。由图可知在每个转折点1、2、3、4均需减速至0,然后开始下一段运动,大大降低了搬运效率。
若使用样条插补,以A点为当前起点运动至B点,在路径上取节点1'2'3'4'5'6',则样条插补轨迹示意图如下。由于样条插补轨迹的方向变化是平滑的,不会像直线插补那样在转折点处减速至0,因此可以大大提高搬运效率及运动的平稳性。
设A点为坐标原点,B点坐标为(3000,-4000,0)。
若采用样条插补,从A点运行至B点,在路径上取节点1'2'3'4'5'6',存入节点位置数组pArrPos中。 1'2'3'4'5'6'的坐标依次为(750,0,500)、(1500,-1000,500)、(1500,-2000,500)、(1500,-3000,500)、(2250,-4000,500)、(2250,-4000,0)。
从A点运行至B点的样条插补程序如下:
(****首先定义大小为pArrPos[3][6]的节点数组,然后对节点数组赋值****)
pArrPos[0][0] := 750; (*第1个目标点在轴0(X轴)上的坐标分量*)
pArrPos[0][1] := 1500; (*第2个节点在轴0(X轴)上的坐标分量*)
pArrPos[0][2] := 1500; (*第3个节点点在轴0(X轴)上的坐标分量*)
pArrPos[0][3] := 1500; (*第4个节点点在轴0(X轴)上的坐标分量*)
pArrPos[0][4] := 2250; (*第5个节点点在轴0(X轴)上的坐标分量*)
pArrPos[0][5] := 3000; (*第6个节点点在轴0(X轴)上的坐标分量*)
pArrPos[1][0] := 0; (*第1个节点点在轴1(Y轴)上的坐标分量*)
pArrPos[1][1] := -1000; (*第2个节点点在轴1(Y轴)上的坐标分量*)
pArrPos[1][2] := -2000; (*第3个节点点在轴1(Y轴)上的坐标分量*)
pArrPos[1][3] := -3000; (*第4个节点点在轴1(Y轴)上的坐标分量*)
pArrPos[1][4] := -4000; (*第5个节点点在轴1(Y轴)上的坐标分量*)
pArrPos[1][5] := -4000; (*第6个节点点在轴1(Y轴)上的坐标分量*)
pArrPos[2][0] := 500; (*第1个节点点在轴2(Z轴)上的坐标分量*)
pArrPos[2][1] := 500; (*第2个节点点在轴2(Z轴)上的坐标分量*)
pArrPos[2][2] := 500; (*第3个节点点在轴2(Z轴)上的坐标分量*)
pArrPos[2][3] := 500; (*第4个节点点在轴2(Z轴)上的坐标分量*)
pArrPos[2][4] := 500; (*第5个节点点在轴2(Z轴)上的坐标分量*)
pArrPos[2][5] := 0; (*第6个节点点在轴2(Z轴)上的坐标分量*)
(*定义数组pArrSplineData[72], pArrSlenthData[6], pArrJerkData [6],
保存计算得到的样条参数*)
(*调用函数生成样条曲线参数*)
HMC_CalcMoveSplineNDdata(pArrPos,6,3,0,
pArrSplineData,72, pArrSlenthData, pArrJerkData);
(*定义分轴轴号数组pArrAxis[3]*)
pArrAxis[0] := 0; (*第1个端点轴轴号(X轴)*)
pArrAxis[1] := 1; (*第2个端点轴轴号(Y轴)*)
pArrAxis[2] := 2; (*第3个端点轴轴号(Z轴)*)
(*定义合轴轴号AxisNo_Spline *)
AxisNo_Spline := 3;
(*执行样条插补指令*)
HMC_MoveSplineND(AxisNo_Spline,pArrAxis,3,0, pArrPos,6,
pArrSplineData, pArrSlenthData, pArrJerkData);
在AT中运行,直线插补轨迹(绿色)与样条插补轨迹(红色)的XY平面俯视图如下图所示:
直线插补与样条插补采用相同的加减速及最大速度参数,在AT中运行,运行过程中直线插补速度曲线(青色)与样条插补速度曲线(红色)如下图所示。由图中可看出,直线在每个转折点1、2、3、4均需减速至0,然后开始下一段运动,大大降低了搬运效率。样条插补轨迹整个运动过程比较平滑,不会像直线插补那样在转折点处减速至0,因此可以大大提高效率以及运动的平稳性。
为限制样条插补在转折较为急剧之处的冲击,设置样条插补中合轴轴参Jerk限制值为5000,AT中运行速度曲线如下图所示(直线插补速度曲线(青色)与样条插补速度曲线(红色))。由图可知,在转折较为急剧之处,通过降低该段的最大速度,保证运行中的冲击不超过设定值5000。
若要从B点运行至A点,则只需把样条节点1'2'3'4'5'6'顺序倒置,存入pArrayPos数组中,即可生成回程的样条参数模型。
回复内容:
对: sumofox 你好!电子凸轮我想了解下你们的做法,请具体讲解下凸轮,... 内容的回复!
您好!感谢您的关注!
首先,电子凸轮有主轴、从轴之分,凸轮主从轴位置预先存储在主从轴位置数组pArrPos中。pArrPos为二维数组,第一维pArrPos[0]为主轴位置,第二维pArrPos[1]为从轴位置,二者为一一对应关系。凸轮启动时,根据不同的启动方式设定凸轮主轴起点位置;凸轮运行过程中,主轴运行正常的运动控制指令,控制器根据主轴当前Mpos值和pArrPos中数据计算出从轴的理论位置,驱动从轴进行相应的联动动作,同时根据当前主轴Mpos值计算判断是否满足凸轮撤消条件。
下面先举一个小例子(ST语言)之后再做解释:
以单次事件启动凸轮(ucMode = 2)为例
该程序实现凸轮主轴与从轴联动运行的轨迹为正弦曲线。向凸轮主轴投放Hmc_Move指令驱动凸轮主轴运动,当0号通道DI上升沿到来时,0号高速捕获通道被触发,凸轮指令以捕获到的主轴位置为启动位置启动运行,凸轮从轴开始作相应的联动动作。当主轴越过凸轮有效行程边界时,凸轮功能自动撤销。AT中运行结果如下图所示。
(**生成主从轴位置数组**)
delta := 3.1415926*2/100;
FOR n := 0 TO 100 DO
ArrPos2[0,n] := (delta*n)*150;
ArrPos2[1,n] := SIN(delta*n)*1000;
END_FOR
(*配置高速捕获通道:0号通道DI触发,上升沿触发,待捕获轴为0号轴*)
HMC_CaptureConfig (0,0,1,0,Axis0.AxisID,0,0,0);
(*投放单次事件启动凸轮指令,0轴为主轴,1轴为从轴,高速捕获通道号为0*)
HMC_Cam (Axis1.AxisID,Axis0.AxisID,ADR(ArrPos2),101,1,2,0);
(*向主轴投送Move指令,驱动凸轮主轴单向运动。*)
HMC_Move(Axis0.AxisID,2000);
HMC_Cam(电子凸轮)
函数原型
HMC_Cam(USINT ucSlaveAxis,USINT ucMasterAxis,POINTER TO LREAL pArrPos,UDINT uiPosNum,LREAL dScale,USINT ucMode,LREAL dTrigMes)
从凸轮功能启动后时主轴位置的边界范围划分,凸轮可分为:
(1) 单次凸轮—— 凸轮启动后,若凸轮主轴位置在有效行程范围内,则凸轮可保持正常联动运行(主轴单向、往复运动均可。当主轴在有效行程范围内往复运动时,从轴也会进行往复性的联动动作),主轴超过有效行程范围时凸轮指令将自动撤销。
(2) 循环凸轮—— 凸轮主轴位置没有边界范围限制,启动后如果不执行相应的撤销指令,凸轮功能将一直有效。
从凸轮指令投放后被执行时,凸轮功能启动条件的触发方式划分,凸轮可分为如下几种:
(1) 立即启动—— 凸轮指令投放后被执行时立即启动凸轮功能,启动位置为主轴当前Mpos位置;
(2) 固定位置启动(到位启动)—— 凸轮指令投放后被执行时,当凸轮主轴Mpos从负向跨过凸轮启动位置时,凸轮功能启动,启动位置为该固定位置;
(3) 事件启动—— 凸轮指令投放后被执行时,当设定的某高速捕获通道被触发时启动凸轮,启动位置为高速捕获通道所捕获到的主轴Mpos位置;
(4) DI启动—— 凸轮指令投放后被执行时,当设定的某DI信号为1时启动凸轮,启动位置为程序检测到DI为1时主轴Mpos位置。
回复内容:
对: sumofox 那请问循环凸轮该如何停?有的时候我们需要一个完整凸轮动... 内容的回复!
可使用HMC_CancelREPCam指令对正在运行的循环凸轮联动指令使用条件撤销功能,功能生效时,循环凸轮指令将在完成当前凸轮完整行程后撤销。
举例如下:
MasterAxisID := 1; (*主轴轴号*)
SlaveAxisID := 0; (*从轴轴号*)
HMC_Cam(SlaveAxisID,MasterAxisID,ADR(arrPos),100,1,4,0); (*使用arrPos中的主从轴位置数组投放凸轮指令,模式为循环凸轮,启动方式为立即启动*)
Hmc_Move(MasterAxisID,200000); (*驱动主轴运动*)
TimeDelay(7000); (*延时7秒*)
HMC_CancelREPCam(SlaveAxisID,1); (*撤销循环凸轮*)
回复内容:
对: henji 您好,我这里有一个项目,需要大约15个数字量输入点,7... 内容的回复!
首先,您设备有4根轴,且都是开环脉冲控制,可以考虑我们的四轴经济型运动控制器MC1004L,这款控制器仅支持开环脉冲控制方式;
(PS:如果需要4轴闭环模拟量/开环脉冲控制请选择MC1004)
其次,MC全系目前都支持最大可实现64轴插补联动,按照您的需求MC1004L可实现2轴最小0.25ms的伺服周期响应;算法上,我们可以实现平面或空间的直线/圆弧/样条曲线插补,GEAR/CAM等等运动控制算法;
还有,MC1004L本体带有10DI,8DO,按照您现场点数需求,如果是单机设备,您还需要本地扩展一块LE系列 DI模块。
这样主控部分就基本搭建好了。