跟我学运动控制系列之一 什么是运动控制

如题所述

第1个回答  2017-11-01
我来通过以下几个简单的视频和案例,带你认识一下什么是运动控制。

四轴SCARA机械手控制系统
采用研华嵌入式工业控制器UNO-3082为核心控制单元,搭载研华基于DSP的四轴运动控制卡PCI-1245。采用的是开放性、通用性平台及强大的运算和信息处理能力,丰富的硬件资源,使得整合视觉、图形、运动控制变得十分容易。

三维立体点胶机控制系统
采用研华嵌入式工业控制器UNO-3073GL为核心控制单元,搭载研华基于DSP的四轴运动控制卡PCI-1245,保证系统轻松实现各种复杂运动控制,具备速度前瞻、立体喷涂轨迹切线方向跟随等,使得喷涂更加均匀、平滑、精准。

LED固晶机解决方案
研华针对LED行业分别推出中阶应用与经济型应用两组产品解决方案,采用研华嵌入式双核工业控制器UNO-3084作为计算与控制平台,搭配多轴伺服与步进马达集成应用,使其达到高速生产与高精度制造出高质量LED来提高竞争力。

全自动数控弯管机控制系统
研拓自主研发的CNC数控弯管机采用研华嵌入式运动控制器PEC-3240为核心控制单元,搭配15寸工业触摸式显示器FPM-5151G,可根据实际输入的管型数据仿真出三维图形实现预览,可以输入、编辑、储存和显示各种弯管数据和指令。

全自动绕线机控制系统
采用研华嵌入式工业控制器UNO-3074为核心控制单元,搭载研华基于DSP的四轴运动控制卡PCI-1245。用户可以根据不同的加工工艺,编辑无限多的配方文件,并支持在线出书或者U盘导入功能。只要一次编辑,即可无限调用。本回答被提问者采纳
第2个回答  2020-07-24
深圳正运动技术的多轴脉冲、EtherCAT总线运动控制器ZMC432系列、XPLC系列,4-8轴网络zhi型运动控制卡daoECI2418和ECI2828系列
支持Basic,PLC梯形图,HMI组态三种编程环境,易于仿真,调试与诊断,支持电子凸轮,直线,圆弧,小线段前瞻,多种机械手算法等复杂的运动轨迹控制,
同时支持C#,C++,LabVIEW, VB,.NET,python等多种PC上位机软件开发,广泛应用于3C电子、视觉点胶、半导体、激光加工、木工加工、绕线、印刷包装、机械人delta/SCARA/码垛/五轴加工等行业领域。
还有他们家的EtherCAT IO模块也蛮好用的,具体资料可以上官网找到。
第3个回答  2019-09-30
Mpc013,mpc014,mpc014g模块引脚兼容,指令功能兼容。Mpc013三轴高速独立控制,无插补功能,SPI通信。mpc014四轴共用一个插补核心, SPI通信。mpc014g在mpc014基础上增加串口G代码控制功能。
◆ SPI或串口通讯,仅需使用少量指令便可完成复杂工作。
◆ 单模块四轴输出,多个模块多从机工作可达120轴。
◆ 支持四轴,三轴,二轴,一轴直线插补,二轴圆弧插补,螺旋插补。脉冲输出使用脉冲+方向方式。
◆ 拥有512条运动指令缓存空间,支持连续插补,支持速度前瞻。
◆ 引脚输入输出3.3V,可兼容5V。
void main(void)
{
initial();
init_uart();
// ES = 1;
// EA = 1;

P_SW2 = 0x80;
XOSCCR = 0xc0; //启动外部晶振
while (!(XOSCCR & 1)); //等待时钟稳定
CKDIV = 0x00; //时钟不分频
CKSEL = 0x01; //选择外部晶振
P_SW2 = 0x00;

led=0;
delay_nms(10) ;

/*独立运行轴1,2,3轴回原点,更多方式回原点可自由组合。mpc013专用
set_inp_speed(1 ,200,300,100); //设加速度50000Hz/s2, 运行速度30000Hz
pmove(1,1,-1000000,1); // 1轴多脉冲负方向运动,碰到原点限位自动停止
pmove(1,2,-1000000,1); // 2轴多脉冲负方向运动 ,碰到原点限位自动停止
pmove(1,3,-1000000,1); // 2轴多脉冲负方向运动,碰到原点限位自动停止

do
{
get_inp_state( 1, 2,inbuf); //只需读出2个字节来判断轴状态
}
while(inbuf[1]); //inbuf[1]数据为0表示所有轴都停
set_command_pos(1 ,1,0); //设1轴坐标
set_command_pos(1 ,2,0); //设2轴坐标
set_command_pos(1 ,3,0); //设3轴坐标

*/

/*插补运行轴1,2,3,4轴回原点,更多方式回原点可自由组合。mpc014专用
set_inp_speed(1 ,200,300,100); //设加速度50000Hz/s2, 运行速度30000Hz
inp_move4(1,1,2,3,4 ,-1000000,-1000000,-1000000,-1000000 ,1); // 多轴多脉冲插补负方向运动,碰到原点限位自动停止
do
{
get_inp_state( 1, 2,inbuf); //只需读出2个字节来判断轴状态
}
while(inbuf[1]); //inbuf[1]数据为0表示所有轴都停
set_command_pos(1 ,1,0); //设1轴坐标
set_command_pos(1 ,2,0); //设2轴坐标
set_command_pos(1 ,3,0); //设3轴坐标
set_command_pos(1 ,4,0); //设3轴坐标
*/

while(1)
{
if((!b1)&&(!b1_state))
{
delay_nms(10);
if((!b1)&&(!b1_state))
{
led=0;
b1_state=1;
// set_inp_speed(1 ,500,500,100);

/*下面的指令会直接发到缓存区自动排队运行。mpc014专用*/
inp_move2(1,2 ,3 ,5000 ,5000 ,1);
inp_move2(1,2 ,3 ,5000 ,5000 ,1);
inp_move3(1,2,3,1 ,500,1000 ,2000 ,1);
wait_delay(1 ,1000);
inp_move2(1,1 ,2 ,1000 ,1000 ,1);
write_bit(1 , 0, 1);
inp_move1(1,2 ,10000 ,1 ) ;
inp_move1(1,1 ,1000 ,1) ;
inp_arc(1 ,2,3, -200, 200, -200, 0,0,1) ;
/*上面的指令会直接发到缓存区自动排队运行。mpc014专用*/

// set_inp_speed(1 ,5000,5000,100);
// pmove(1,1,1000, 1); // pmove只有mpc013能用
// wait_stop(1 ,1);
// pmove(1,2,-100, 1);

while(!b1);
}

}
else
led=1;

if((!b1)&&(b1_state))
{
delay_nms(10) ;
if((!b1)&&(b1_state))
{

led=0;
//sudden_stop(1,1); // 立即停止独立轴1轴 ,只适用于mpc013
//sudden_stop(1,6); // 立即停止所有插补轴

get_inp_state( 1, 20,inbuf); //读出20个字节数据放入数组
USRAT_transmit(inbuf,20); // 串口将数组数据发送出去查看
if(inbuf[1]==0) //inbuf[1]数据为0表示所有轴都停
b1_state=0;
while(!b1);
}
}

}

}

串口G代码控制

Mpc014g模块可通过串口 G代码控制模块,串口通讯速率为115200bps,数据位为8位,停止位1位,无校验。
模块通讯协议完全兼容标准G代码,G代码详细的格式与用法请参考标准文档。上电芯片会主动发送字符“>”,工作时上位机每发送一条指令,会回复字符“ok”,发 M114会回复坐标。上位机只有当收到回复后,才可发送下一条指令。目前支持如下指令:

G0-快速定位 坐标,单位mm。速度F表示mm/s。
如:G0 X10 Y10 F30000

G1 - 直线插补 世界坐标,单位mm。
如:G1 X10 Y10 F30000

G2 - 正圆插补 X,Y为终点坐标,I,J为圆心相对起点坐标。
如:G2 X-20 Y20 I-20 J0 F30000

G3 - 逆圆插补
如:G2 X-20 Y20 I-20 J0 F30000

G90 - 绝对坐标
如:G90

G91 - 相对坐标
如:G91

G92 - 设置坐标
如:G92 X0 Y0

M92 - 脉冲系数 每MM多少脉冲,模块默认系数为1。
如:M92 X200 Y200 Z200 E200

M109 - 等待延时,单位MS
如:M109 S2000

M110 - 端口输出 ,T为端口号,Z为值
如:M110 T6 Z1

M112 -急停 ,停所有轴,并清空缓存
如:M112

M114 -读取当前坐标 ,返回轴坐标
如:M114

M115返回轴状态
如:M115

M116返回剩余缓存数量
如:M116

M204 - 设置加速度S,单位mm/s2。
如:M204 S5000
相似回答