在程序调用中为什么在外圆上加工凹圆弧型圆弧无法进行插补

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
宏程序在圆周圆弧凹槽铣削加工编程中的应用
下载积分:1000
内容提示:宏程序在圆周圆弧凹槽铣削加工编程中的应用
文档格式:DOC|
浏览次数:18|
上传日期: 06:55:54|
文档星级:
该用户还上传了这些文档
宏程序在圆周圆弧凹槽铣削加工编程中的应用
官方公共微信zhaozhi129
级别: 实习会员
发帖数量: 3 个
工控威望: 48 点
下载积分: 119 分
在线时间: 6(小时)
注册时间: 最后登录:
请教大家一个问题,我现在使用倍福plc通过canopen通讯控制两个伺服电机,能不能控制这两个电机进行圆弧的插补运动?如果实现?本人是新手,请大家指点,非常感谢!
没有伞的孩子必须努力奔跑!
级别: 略有小成
发帖数量: 235 个
工控威望: 349 点
下载积分: 5479 分
在线时间: 295(小时)
注册时间: 最后登录:
倍福不是有SYSTEM MANAGER 下面 CNC NC CAM吗&&你买的什么级别的PLC啊 什么型号 面板式 还是嵌入式啊楼主留言:我用的嵌入式控制器,cx1020,没有看到你说的cnc nc cam啊 是不是没有这个功能啊?
zhaozhi129
级别: 实习会员
发帖数量: 3 个
工控威望: 48 点
下载积分: 119 分
在线时间: 6(小时)
注册时间: 最后登录:
大家帮帮忙啊
级别: 工控侠客
发帖数量: 310 个
工控威望: 2485 点
下载积分: 869 分
在线时间: 316(小时)
注册时间: 最后登录:
合信226H有四轴脉冲口,支持任意两轴圆弧插补,或者直线插补,都是现成的库函数,写几个变量就可以
雅马哈,爱普生,电装机器人。
级别: 网络英雄
发帖数量: 1691 个
工控威望: 5376 点
下载积分: 20360 分
在线时间: 283(小时)
注册时间: 最后登录:
呵呵没有太大的意义,还是用运动控制器来做
这个人很懒,什么也没有留下!
级别: 家园常客
发帖数量: 478 个
工控威望: 633 点
下载积分: 16013 分
在线时间: 238(小时)
注册时间: 最后登录:
插补程序是在PLC里写吗。没见过一头雾水。谁能指点一下。
大家好才是真的好
wananjushi
级别: 网络英雄
发帖数量: 898 个
工控威望: 5667 点
下载积分: 8552 分
在线时间: 185(小时)
注册时间: 最后登录:
实际上台达可编程控制器就有如何走圆弧程序命令
wananjushi
知识改变命运,学习铸就人生
级别: 工控侠客
发帖数量: 267 个
工控威望: 3029 点
下载积分: 350 分
在线时间: 151(小时)
注册时间: 最后登录:
现在的PLC都比三菱的西门的强大了啊,都能进行插补了啊,发展很快啊
级别: 家园常客
发帖数量: 72 个
工控威望: 816 点
下载积分: 550 分
在线时间: 53(小时)
注册时间: 最后登录:
等高人出现
级别: 略有小成
发帖数量: 115 个
工控威望: 231 点
下载积分: 8245 分
在线时间: 136(小时)
注册时间: 最后登录:
用基恩士的运动控制模块(MC20)不过就是有点贵,只要一些触发指令就可以了,可以做直线插补绝对/相对,圆弧插补绝对/相对都可以,编程简单。
接近开关厂家
级别: 探索解密
发帖数量: 112 个
工控威望: 150 点
下载积分: 1421 分
在线时间: 21(小时)
注册时间: 最后登录:
楼上的头像很不错
接近开关在线订购:查看: 4671|回复: 6|关注: 0
使用MATLAB做圆弧插补怎么只有第一象限好使啊
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
程序如下,等待高手指点:'(
Xs = input('input the start of X\nXs = ');
Ys = input('input the start of Y\nYs = ');
Xe = input('input the end of X\nXe = ');
Ye = input('input the end of Y\nYe = ');
h = input('input step\nh = ');
bIsCW = input('input bIsCW\nbIsCW = ');
Mount = (abs(Xe-Xs)+abs(Ye-Ys))/h;
Count = 0;
lDevVal=0;
xCurVal=Xs;
yCurVal=Ys;
if(Xs&=0&Ys&0) nDir = 1;
if(Xs&0&Ys&=0) nDir = 2;
if(Xs&=0&Ys&0) nDir = 3;
if(Xs&0&Ys&=0) nDir = 4;
while (Count&Mount)
if(xCurVal&=0&yCurVal&0) nDir = 1;
if(xCurVal&0&yCurVal&=0) nDir = 2;
if(xCurVal&=0&yCurVal&0) nDir = 3;
if(xCurVal&0&yCurVal&=0) nDir = 4;
lDevVal=xCurVal*xCurVal+yCurVal*yCurVal-Xs*Xs-Ys*Ys;
if(bIsCW==1)
if(nDir==1)
if (lDevVal&=0)
&&xCurVal = xCurVal-h;& &
& && &&&else
& && && &yCurVal = yCurVal+h;& && &&&
& && &&&end
& && & x = [x xCurVal];
& && & y = [y yCurVal];
&&Count = Count+1;
& && &&&hold on
if(nDir==2)
if (lDevVal&=0)
&&xCurVal = xCurVal+h;& &
& && &&&else
& && && &yCurVal = yCurVal+h;& && &&&
& && &&&end
& && & x = [x xCurVal];
& && & y = [y yCurVal];
&&Count = Count+1;
& && &&&hold on
if(nDir==3)
if (lDevVal&=0)
&&xCurVal = xCurVal+h;& &
& && &&&else
& && && &yCurVal = yCurVal-h;& && &&&
& && &&&end
& && & x = [x xCurVal];
& && & y = [y yCurVal];
&&Count = Count+1;
& && &&&hold on
if(nDir==4)
if (lDevVal&=0)
&&xCurVal = xCurVal-h;& &
& && &&&else
& && && &yCurVal = yCurVal-h;& && &&&
& && &&&end
& && & x = [x xCurVal];
& && & y = [y yCurVal];
&&Count = Count+1;
& && &&&hold on
if(nDir==1)
if (lDevVal&=0)
&&xCurVal = xCurVal-h;& &
& && &&&else
& && && &yCurVal = yCurVal+h;& && &&&
& && &&&end
& && & x = [x xCurVal];
& && & y = [y yCurVal];
&&Count = Count+1;
& && &&&hold on
if(nDir==2)
if (lDevVal&=0)
&&xCurVal = xCurVal-h;& &
& && &&&else
& && && &yCurVal = yCurVal-h;& && &&&
& && &&&end
& && & x = [x xCurVal];
& && & y = [y yCurVal];
&&Count = Count+1;
& && &&&hold on
if(nDir==3)
if (lDevVal&=0)
&&xCurVal = xCurVal+h;& &
& && &&&else
& && && &yCurVal = yCurVal-h;& && &&&
& && &&&end
& && & x = [x xCurVal];
& && & y = [y yCurVal];
&&Count = Count+1;
& && &&&hold on
if(nDir==4)
if (lDevVal&=0)
&&xCurVal = xCurVal+h;& &
& && &&&else
& && && &yCurVal = yCurVal+h;& && &&&
& && &&&end
& && & x = [x xCurVal];
& && & y = [y yCurVal];
&&Count = Count+1;
& && &&&hold on
<h1 style="color:# 麦片财富积分
关注者: 2
希望能给予你帮助
仔细的研究了一下你的代码,花了不少时间啊。呵呵。你这个代码太。。。了,一个解释也没有,不但没有读过的人,就算是写的这个程序的人过一段时间再读这个程序,也非常费时啊。
你这个插补的过程不全,不是只能在第一象限工作,而是只能在一个象限工作。
我帮你把代码都解释了一下,所有的参数都给了说明,你仔细看看附件里的代码吧。
%起始点的坐标
Xs = input('input the start of X\nXs = ');
Ys = input('input the start of Y\nYs = ');
%结束点的坐标
Xe = input('input the end of X\nXe = ');
Ye = input('input the end of Y\nYe = ');
h = input('input step\nh = ');
%%判断是顺时针还是逆时针,1代表逆时针
bIsCW = input('input bIsCW\nbIsCW = ');
%%Mount是总共需要走的步数
Mount = (abs(Xe-Xs)+abs(Ye-Ys))/h;
%记录插补的次数
Count = 0;
%lDevVal的值是用来判断是在圆内还是在圆外,等于0是在圆上
lDevVal=0;
%%xCurVal,yCurVal是用来控制插补过程中的点
xCurVal=Xs;
yCurVal=Ys;
%%标示所在的象限
%%%%设定起始点所在的象限%%%%
if(Xs&=0&Ys&0) nDir = 1;
if(Xs&0&Ys&=0) nDir = 2;
if(Xs&=0&Ys&0) nDir = 3;
if(Xs&0&Ys&=0) nDir = 4;
%%%% 插补过程%%%%
while (Count&Mount)
& & %%%%标记所在的象限%%%%
& & if(xCurVal&=0&yCurVal&0) nDir = 1;%第一象限
& & if(xCurVal&0&yCurVal&=0) nDir = 2;%第二象限
& & if(xCurVal&=0&yCurVal&0) nDir = 3;%第三象限
& & if(xCurVal&0&yCurVal&=0) nDir = 4;%第四象限
& & %lDevVal的值是用来判断是在圆内还是在圆外,在圆内的就是小于0,在圆外的话就是大于0
& & %%等于0就是在圆上
& & lDevVal=xCurVal*xCurVal+yCurVal*yCurVal-Xs*Xs-Ys*Ys;
& & if(bIsCW==1)%逆时针方向
& && &&&if(nDir==1) %在第一象限的处理措施
& && && && &if (lDevVal&=0) %现在的点在圆外
& && && && && & xCurVal = xCurVal-h;&&%x轴左移h
& && && && &else&&%点在圆内
& && && && && & yCurVal = yCurVal+h; %y轴上移h
& && && && &end
& && && && &x = [x xCurVal];%记录坐标
& && && && &y = [y yCurVal];
& && && && &Count = Count+1;%点的个数加1
& && && && &hold on
& && &&&end
& && &&&if(nDir==2)%在第二象限
& && && && &if (lDevVal&=0)&&%现在的点在圆外
& && && && && & xCurVal = xCurVal+h;&&%x轴右移h
& && && && &else
& && && && && & yCurVal = yCurVal+h;& && &%y轴上移h&&
& && && && &end
& && && && &x = [x xCurVal];
& && && && &y = [y yCurVal];
& && && && &Count = Count+1;
& && && && &hold on
& && &&&end
& && &&&if(nDir==3)
& && && && &if (lDevVal&=0)
& && && && && & xCurVal = xCurVal+h;& &%x轴右移h
& && && && &else
& && && && && & yCurVal = yCurVal-h;& &&&%y轴下移h& &
& && && && &end
& && && && &x = [x xCurVal];
& && && && &y = [y yCurVal];
& && && && &Count = Count+1;
& && && && &hold on
& && &&&end
& && &&&if(nDir==4)
& && && && &if (lDevVal&=0)
& && && && && & xCurVal = xCurVal-h;& &%x轴左移h
& && && && &else
& && && && && & yCurVal = yCurVal-h;& &&&%y轴下移h& &
& && && && &end
& && && && &x = [x xCurVal];
& && && && &y = [y yCurVal];
& && && && &Count = Count+1;
& && && && &hold on
& && &&&end
& & else%%顺时针方向,读懂了上面的,下面的就是小Ks了吧,呵呵
& && &&&if(nDir==1)
& && && && &if (lDevVal&=0)
& && && && && & xCurVal = xCurVal-h;& &
& && && && &else
& && && && && & yCurVal = yCurVal+h;& && &&&
& && && && &end
& && && && &x = [x xCurVal];
& && && && &y = [y yCurVal];
& && && && &Count = Count+1;
& && && && &hold on
& && &&&end
& && &&&if(nDir==2)
& && && && &if (lDevVal&=0)
& && && && && & xCurVal = xCurVal-h;& &
& && && && &else
& && && && && & yCurVal = yCurVal-h;& && &
& && && && &end
& && && && &x = [x xCurVal];
& && && && &y = [y yCurVal];
& && && && &Count = Count+1;
& && && && &hold on
& && &&&end
& && &&&if(nDir==3)
& && && && &if (lDevVal&=0)
& && && && && & xCurVal = xCurVal+h;& &
& && && && &else
& && && && && & yCurVal = yCurVal-h;& && &&&
& && && && &end
& && && && &x = [x xCurVal];
& && && && &y = [y yCurVal];
& && && && &Count = Count+1;
& && && && &hold on
& && &&&end
& && &&&if(nDir==4)
& && && && &if (lDevVal&=0)
& && && && && & xCurVal = xCurVal+h;& &
& && && && &else
& && && && && & yCurVal = yCurVal+h;& && &&&
& && && && &end
& && && && &x = [x xCurVal];
& && && && &y = [y yCurVal];
& && && && &Count = Count+1;
& && && && &hold on
& && &&&end
plot(x,y)%%画出插补的过程
[ 本帖最后由 yangzhijie1488 于
14:47 编辑 ]
14:43 上传
点击文件名下载附件
3.8 KB, 下载次数: 876
<h1 style="color:# 麦片财富积分
关注者: 2
这段代码基本能工作了,就是在象限与象限交接的地方需要修改。你仔细改吧,等我有空了,我会帮你看看的。呵呵
我认为应该给我5分,2分太少了。花了至少有1.5个小时才看懂这段代码,呵呵,大老板,你不要这么小气嘛,再给点。
[ 本帖最后由 yangzhijie1488 于
14:52 编辑 ]
<h1 style="color:# 麦片财富积分
<h1 style="color:# 麦片财富积分
为什么我就得不出给的那2个图呢、郁闷
[ 本帖最后由 xubin893 于
00:43 编辑 ]
<h1 style="color:# 麦片财富积分
嗯,正要用。谢谢了!
<h1 style="color:# 麦片财富积分
仔细的研究了一下你的代码,花了不少时间啊。呵呵。你这个代码太。。。了,一个解释也没有,不但没有读过的 ...
您好,请问您写的这段程序是基于数字积分法的圆弧插补吗?还是逐点比较法?
站长推荐 /2
Powered by数控程序中的:G02(顺时针圆弧插补) 和 G03(逆时针圆弧插补)求用法详解_百度知道
数控程序中的:G02(顺时针圆弧插补) 和 G03(逆时针圆弧插补)求用法详解
只要说明一下它们具体怎么用,什么意思(普通人能听懂的白话)就行。谢了。
麻烦解释一下,还有圆弧插补呢这些只是解释了顺时针和逆时针,谢谢?什么意思啊
提问者采纳
G01(直线插补),只是存在加工直线与圆弧的差别;辨别的时候都是要以机床刀架为后置刀架(刀架位于操作者的对面); 圆弧插补就是它的定义;G03(逆时针圆弧插补)意思就是它的走刀路线是逆时针方向G02(顺时针圆弧插补)意思就是它的走刀路线是顺时针方向;不过G01与G02G03的最大差别还是G02G03加工的时候需要加刀尖半径补偿
其他类似问题
为您推荐:
圆弧插补的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁在使用圆弧插补令g02&#47;g03时,应注意哪些问题?_百度知道
在使用圆弧插补令g02&#47;g03时,应注意哪些问题?
我有更好的答案
注意顺时针还是逆时针,刀尖半径
其他类似问题
为您推荐:
圆弧插补的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 圆弧面上加工等径凹槽 的文章

 

随机推荐