导航:首页 > 编程知识 > 如何用指令编程序

如何用指令编程序

发布时间:2024-06-13 15:19:38

Ⅰ 到底怎么在linux里编写c程序

在linux下通常使用gedit或vim直接编写.c程序,然后通过gcc指令编译。以Ubuntu系统为例,内详细过程如下:

1、进入容桌面Temp文件

Ⅱ 华中数控基本编程指令有哪些

二)常用G代码的使用
▲ G50:坐标轴设定(实际上是:根据刀具的实际位置,确定工件坐标系的X、Z坐标值)
G50指令执行后,不产生运动,但工件坐标系按指令值作了更新。
使用举例:G50 X100 Z250;
其实质含义是:工件坐标系的X坐标立即被被修改为100,Z坐标修改为250。,系统立即以新的坐标值显示。一股用于录入方式下通过对刀建立工件坐标系。
关于工件坐标系(即编程所使用的坐标系):
以车床主轴旋转轴线作为X方向的零位(即径向零位)。
Z轴方向的零位(即轴向零位)可根据工件情况确定,一般以卡盘端面或工件右端面作为零位。
坐标系的正负方向:以离开工件方向为正,即Z轴为主轴旋转轴线、从左向右为正,X轴为径向走刀方向、从中心向外为正(从车削加工的角度来看,常规的切削进刀方向大都是朝向X、Z轴的负方向)。
当使用绝对值编程时,X坐标始终是正值(除特殊情况外),Z坐标则不一定。
当使用相对值编程时,常规的外园车削均是朝向负方向的,所以U、W值常常是负值。(相对值编程时,刀具的前进方向与坐标轴正方向一致为正,相反为负,简言之,即进去为负,出来为正)。

▲ G00 快速移动
使用举例:G00 X50 Z200;或用相对坐标:G00 U15 W5;
后面带的二个尺寸字段X 、Z 或U、W用以指示移动的目标位置。执行G00的结果是使刀具从当前位置向目标位置快速移动。
G00实际上不属于插补命令,执行时X、Z轴各自独立运动,,如某一坐标轴先到达后,该轴先停止运动,另一轴继续(沿X或Z方向)移动。因此,移动轨迹一般开始是一段钭直线,然后是一段平行于X或Z轴的直线。
使用G00时必须注意刀具是否可能与工件相碰。
▲ G01 直线插补
使用举例:G01 X50 Z200 F20;或用相对坐标:G01 U15 W5;
与G00相似,用X 、Z 或U、W指示插补运动结束时的目标位置。
大多数车削加工,如外园、内孔、端面、锥面均使用G01来完成。
程序中使用G01的注意事项:
①程序中,如果是首次使用G01,必须指定进给量F值,以后如进给量不变,则F字段可省略。
②使用G01前,必须保证刀具的当前位置为正确位置(由于G01中只指定了插补的终点位置,并未指明插补的起点位置)
③G00、G01及其坐标值都是模态指令,下一程序段中可省略相同的字段。
如: N0010 G00 Z200;
N0020 X90;(作用等于G00 X90 Z200;)
N0030 G01 Z150 F70;
N0040 X95; (作用等于G01 X95 Z150 F70;)
▲ G02、G03 园弧插补
使用举例:
G00 X50 Z152;(快速定位到起点)
G01 G150;
G02 X150 Z100 R50 F30;
(X150、Z150为园弧的终点坐标,R50为园弧的半径)
也可以用从起点到园心的坐标距离I、K来表示:
G02 X150 Z100 I50 F30;(I50:指起点至园心的X方向距离为50,Z方向的距离为零,K0可省略。)
注意事项:
①本车床只使用前刀架,顺逆时针的判断与标准相反。
②本例中园弧从右面小头向左切削,为逆时针,用G02指令。如从大端处向右面小端加工园弧,则应使用G03。
③I、K的值注意正负号:从起点向园心的方向与坐标轴正方向一致为正。
④I值属于半径方向的距离,不要用直径计算。
▲ G04 暂停
用法举例:G04 P500;(暂停500毫秒,即0.5秒)
G04 X3.5;(暂停3.5秒)
可用于切槽、台阶端面等需要刀具在加工表面作短暂停留的埸合。
《三》 单一固定循环G90、G92、G94
单一固定循环把“G00快速接近工件”→”插补运动走刀”→”插补退刀”→”G00快速返回”这四动作组合在一起。以简化程序。
▲G90:内外园车削循环
使用举例:
G90 X50 Z35 F0.2 (园柱面车削)
G90 X50 Z35 R2.5 F0.2 (园锥面车削,R2.5指起点半径与终点半径之差)
注意事项:
①工件余量大时,可多次调用G90,例如:
G90 X75 Z20 F0.2;
X70;(由于是模态,相同的字段不必重复键入)
X65;
②与G01在用法上的区别:
G01必须事先把刀具用指令移动到正确的起点位置,以保证加工尺寸
G90车削开始时的起点X坐标是由本段自动计算后移动到位的,故在G90的上一个程序段中,应把刀具移动到一个合适的退刀位置。
▲G94的用法与G90相似,用于端面切削,G92在螺纹车削中介绍。
《四》 复合型车削固定循环
(1)粗精车指令配合使用的G70—G73,其中G70为精车指令(与G71或G72或G73配合使用),此类指令在程序中的使用由三部分组成,以G71为例说明如下:
#第一部份:有二个G71程序段,第一个G71用来规定每一次粗车的吃刀深度,退刀量等;第二个G71用来确定与精车程序段的关系,保证精车余量、并开始粗车。
#第二部份:用来确定精车的轨迹路线,由若干个程序段组成。供精车时使用,并为粗车时提供数据。
#第三部份:G70程序段,即实际开始精车的指令。
使用举例:
N20 G00 X200 Z302;(快速定位到粗车起点)
N30 G71 U5 R1 F30;(U5:每次粗车切深5mm-半径方向;R1:每次退刀1mm)
N40 G71 P50 Q80 U0.6 W0.2;
(P50:描述精车轨迹的第一个程序段号是N50)
(Q80:描述精车轨迹的最后一个程序段号是N80)
(U0.6、W0.2:留给精车的径向余量、轴向余量)
N50 G00 X100;(描述精车轨迹的第一个程序段,)
(注意:1、在此段中径向快速定位到正确的开始精车位置。
2、此段不允许有Z方向的定位。
3、从N50、N80各段不可省略程序段号。
4、从N50到N80各段的X、Z方向坐标值只允许单向减少或单向增大。)
N60 G01 Z260 F20;
N70 G01 X195 Z210;
N80 G01 Z200;(描述精车轨迹的最后一个程序段)
(可在此处插入换也指令)
N110 G70 P50 Q80;(开始精车,实际执行N50到N80间各程序段)
N120 G00 X220 Z320;(精车结束,退出)
▲上述G71+G70指令的粗车是以多次Z轴方向走刀以切除工件余量,为精车提供一个良好的条件,适用于毛坯是园钢的工件。
▲G72+G70车削循环,与G71相似,但粗车是以多次X轴方向走刀来切除工件余量,适用于毛坯是园钢、各台阶面直径差较大的工件。
▲G73+G70车削循环,基本用法相同,但各次粗车的运动轨迹与精车轨迹相似,适用于一些毛坯为锻件、铸件,这类毛坯已初步具有成品的外形,不宜使用G71、G72指令。
(2)G75外园切槽循环例:
G00 X81 Z-30 ;(定位到槽的起点,注意考虑切刀宽度)
G75 R0 ;(R0:每次X方向退刀0,即直接切到槽底)
G75 X50 Z-80 P16000 Q5000 R0 F50
X,Z:槽的终点坐标。
P:X方向每次切入深度(半径值,单位0.001mm)。
Q:Z方向每次移动量(单位0.001mm),注意应小于切刀宽度。
R:每次Z方向退刀量。
(3)G76循环指令在螺纹加工中介绍。
《五》 螺纹加工
本系统螺纹加工指令有三条:G32、G92、G76。公制的导程用F指定,英制的每英寸牙数用I指定。
(1)G32:是最基本的螺纹加工指令。
用法举例:G32 X15.2 Z100 F2;
X15.2、Z100是螺纹终点坐标,F2:导程(单头螺纹即为螺距)为2(若为每英寸牙数,则使用I,如I11,为每英寸11牙。使用该指令前,应先将刀具定位到正确的起点位置,只要使起点的X坐标小于(内螺纹则为大于)终点的X坐标,即可车出锥螺纹。刀具在Z轴方向的起点位置应距离工件≥2倍导程。
(2)G92:为单一固定循环,G92每执行一次,可完成快速进刀--螺纹切削—快速退刀—返回起点。
G92还能在螺纹车削结束时,按要求有规则退出(称为螺纹退尾倒角),因此可在没有退刀槽的情况下车削螺纹。
用法举例:G92 X15.2 Z100 F2;
意义与G32相同,但在使用G92前,只须把刀具定位到一个合适的起点位置(X方向处于退刀位置),执行G92时系统会自动把刀具定位到所需的切深位置。而G32则不行:起点位置的X方向必须处于切入位置。
车锥螺纹举例:G92 X29.2 Z150 R-1.5 I11(R-1.5:起点半径与终点半径之差。
(3)G76:
为复合型螺纹切削循环,由二个G76程序段组成,指定有关参数后可自动运行多次循环,直到把螺纹车好。
G76根据牙型角(GSK980TA限定为80o,、60o,、55o,、30o,、29o,、0o ,GSK980TD没有这种限制)沿钭向逐次切入,以保证刀具为单侧切削刃工作,可避免扎刀的发生。随着螺纹的逐渐切深,系统按规律减少切削深度,直到达到设定的最小切削深度后,按最小切削深度进刀。
使用举例:
N10 G00 X80 Z280;(快速定位到起点)
N20 G76 P030660 Q50 R0.1;(P后面的6位数分别表示:精车次数3次、螺尾倒角量为6,即退尾长度为螺距的60%,牙型角60度。)
(Q50:最小切削深度0.05(半径值、指令中单位为0.001)、
(R0.1:留给精车的余量0.1(半径值))
N30 G76 X71 Z200 R0 P1949 Q250 F3;(X、Z为螺纹终点位置)
(R0:车锥螺纹时指定起点与终点的半径差,此处R0为直螺纹,可省略)
(P1949:半径方向的螺纹牙高为1.949,指令中单位为0.001)
(Q250::第一次半径方向切入深度为0.25mm,指令中单位为0.001)。
▲ 螺纹加工应注意的事项:
①主轴转速:不应过高,尤其是是大导程螺纹,过高的转速使进给速度太快而引起不正常,一些资料推荐的最高转速为:
使用伺服进给电机时:导程*主轴每分钟转速不超过3000
②切入、切出的空刀量,为了能在伺服电机正常运转的情况下切削螺纹,应在Z轴方向有足够的空切削长度,一些资料推荐的数据如下:
切入空刀量≥2倍导程; 切出空刀量≥0.5倍导程
③螺纹加工过程中不应变换转速。

《七》T代码与刀补:
T代码用来选择刀具号并指定刀补号。
如T0202;第一个02为选择02号刀具,第二02为指定02号刀补值为当前刀补值。
通常刀具号应与刀补号一致,但00号刀补系统设定为取消刀补,即刀补值为零,有时程序要求取消刀补(如在用G50设定坐标系时),可使用如:
T0100;即使用1号刀,同时取消刀补。
《六》 F代码及G98、G99:
F代码用于指定进刀量。
G98、G99 用于每分钟进给量、每转进给量的变换
系统默认的进给量单位为G98即: 毫米/分钟,普通车床加工一般采用毫米/转,
习惯普通车床每转走刀量的工人可在在插补指令开始前,使用G99指令(如G99 F0.15)把系统进给量设置为每转进给量。然后在插补指令中用F字段确定实际进给量.
《八》S代码及G96、G97、G50 S
▲S代码用于指定主轴转速,如S500,即500转/分,但如果在G96恒线速状态下,则为切削加工线速度。
▲G96恒线速、G97取消恒线速、G50 S主轴最高转速限制。
加工端面时,如果主轴转速固定,由于加工表面直径的变化,切削速度也随着变化,有可能导致表面粗糙度不一致等现象,恒线速控制可随着工件直径的减小而相应增加主轴转速,有助于提高加工表面质量、提高生产率。
恒线速情况下车端面时,刀具接近工件中心时,转速会变得相当大,这是很危险的,必须使用G50 S来限制最高转速:
使用举例:G50 S2000;(限制最高转速为2000转/分)
G96 S150;(恒线速开始,指定切削速度为150米/分)
G01 X10; (开始车端面)
G97 S200;(取消恒线速,指定转速为200转/分

《七》 调用子程序(用户宏程序)及G65指令
使用子程序可以减少编程工作量,避免重复劳动,并可使程序结构清晰,便于阅读分析。GSK980T用户宏程序是一种可以使用变量的子程序,这类子程序被主程序调用时,可以根据变量的不同取值,作出相应的的处理,使用灵活,功能较强。
例:M98 P0050008;(005:调用5次;0008:所调用子程序号为O0008)
M98 P0008;(只调用一次)
说明:980T的子程序是一个独立的程序,也称为宏程序,应该把子程序作为一个单独的程序进行编写并保存,
子程序的最后一个程序段为:M99;。系统执行到M99后,即返回主程序,执行M98的下一程序段。
M98,M99举例

主程序 O0007;
M03 S1500 T0101;
G00 X81 Z0;
M98 P0050008;
G00 X90 Z200;
M30;
子程序 O0008;
G00 W-10;
G01 X0 F150;
G00 X82;
M99;

Ⅲ 数控编程的指令有哪些

1.2.3.2. 运动方式相关 G 指令
* 倒角、倒圆 G01 指令
倒角控制机能可以在两相邻轨迹之间插直线倒角或圆弧倒角。

l )直线倒角
格式: G01X__Z__ C
功能:直线倒角G01,指令刀具从A点到B点,然后到C点(见图1一10)。
说明:X、Z:在G90时,两相邻直线的交点,即G点的坐标值;
在 G91 时.是G点相对于起始直线轨迹的始点A点的移动距离。
C :是相邻两直线的交点6,相对于倒角始点A的距离。

2 )圆弧倒角
格式:G01X__Z__R__:
功能:圆弧倒角G01,指令刀具从A点到B点,然后到c点(见图1一11)。
说明:X、Z:在G90时.是两相邻直线的交点,即G点的坐标值;
在091时,是G点相对于起始直线轨迹的始点A点的移动距离。
R: 是倒角圆弧的半径值。
实例1-12

(根据下列格式套用,编辑数据参.实用简单)
参见图1-12
%1012(绝对指令编程)
N1 G92 X70 Z60
N2 G90 G01 XO Z70F300 M03
N3 G01 X26 C3
N4 Z48 R3
N6 Z0
N7 G00 X70 Z60
N8 M05
N9 M30
%1112(噌量指令编程)
N1 G92 X70 Z80
N2G91 G00X—70Z—10
N3 G01 X26 C3 F300
N4 Z—22 R3
N5 X39 Z—14C3
N6 Z—34
N7 G00 X5 Z80
N8 M30
注: 1 、使用增量指令编程进行倒角控制时,如O1112程序的N3、N4程序段,其指令必须汾别从点D、G开始计算距离,而不是从点E、H开始。
2 、单段工作方式下,刀具将在点D、G处停止前进,而非停于E、H点。
3 、在螺纹切削程序段中不得出现倒角控制指令。
4 、如X、Z轴指定的移动量比指定的R或C小时,系统将报警。
5 、在 G01 状态下. C 、 R 指令均出现时,以后出现的为准。

Ⅳ 如何使用SSE指令集编写应用程序

1、编译器的自动矢量化

-mfpmath=sse

仅建议在P4和以上级别的处理器上使用该选项。

-mmmx

-msse
-msse2
-msse3
-m3dnow
-mssse3(gcc-4.3新增)
-msse4.1(gcc-4.3新增)
-msse4.2(gcc-4.3新增)
-msse4(含4.1和4.2,gcc-4.3新增)
是否使用相应的扩展指令集以及内置函数,需要按照自己的cpu做选择。

2、使用C/C++类库

目前,GNU
GCC等大多数编译器都提供了对SSE指令集的变成支持,允许用户在C++代码中不用编写汇编代码,就可以直接通过调用库函数而直接使用SSE指令。

3、使用编译器的内嵌原语(Intrinsics)

SSE的intrinsics的规则

_mm_<opcode>_<suffix>

其中,<opcode>是指令的类别,像add、sub等等,<suffix>是指令的种类。在SSE浮点运算指令中,只有两种:ps和ss。

ps:Packed
Single-precision,指对寄存器中的四个单精度浮点同时进行运算。

ss:Scaler
Single-precision,指对寄存器中的DATA0进行运算。

编程时需要包含下表所示的头文件:

mmintrin.h

MMX

xmmintrin.h

SSE

emmintrin.h

SSE2

pmmintrin.h

SSE3

tmmintrin.h

SSSE3

intrin.h

SSE4A

smmintrin.h

SSE4.1

nmmintrin.h

SSE4.2

mm3dnow.h

3DNOW

说明:如果导入一个高版本的指令集头文件,那么一般就不需要在导入低版本的指令了。

4、使用内嵌汇编

指令语法特征

如:PADDUSW(无符号饱和模式的字组相加)

前缀:P代表成组数据类型

操作指令:如ADD、SUB等

后缀:US为无符号饱和处理

S为有符号饱和处理

B、W、D、Q分别为字节组、字组、双字组、四字。

GCC的asm结构

用汇编编写的程序运行速度快,但开发速度非常慢,效率也很低。如果只是想对关键代码段进行优化,更好的办法是将汇编指令嵌入到C语言程序中,充分利用高级语言和汇编语言各自的优点。一般来讲,在C代码中嵌入汇编语句要比“纯粹”的汇编语言代码复杂的多,因为需要解决如何分配寄存器,以及如何与C代码中的变量相结合等问题。内联汇编能够灵活操作,而且可以使其输出通过C变量显示出来。因为它具有这种能力,所以asm可以用作汇编指令和C程序之间的接口。使用__asm__关键字,如果超过一行的指令,每行要加上双引号,并且后面加上\n\t。如果希望确保编译器不会在“asm”内部优化指令,可以在“__asm__”后面使用关键字“volatile”。

内联汇编的基本要素

具体语法结构,请看我的一篇博文:《GCC内嵌汇编》文章连接:

http://blog.chinaunix.net/u3/119372/showart_2417924.html

基本要素说明:

限定符

意义

“m” “v” “o”

内存单元

“r”

任意寄存器

“q”

寄存器eax,ebx,ecx,edx之一

“i” “h”

直接操作数

“E” “F”

浮点数

“g”

任意

“a” ”b” ”c” ”d”

分别表示寄存器eax,ebx,ecx,edx

“S” ”D”

寄存器esi,edi

“I”

常数(0至31)

5、SSE编程注意事项

数据对齐

CPU内存单元以16Byte为边界,如果数据在运算之前不进行对齐,会是指令运算产生大量延时。

GCC:

float
__attribute__((aligned(16))) a[4]={1.2f,3.5f,1.7f,2.8f};

VC:

__declspec(align(16)) float a[4]={1.2f,3.5f,1.7f,2.8f};

阅读全文

与如何用指令编程序相关的资料

热点内容
怎么查微信公众号什么时候开通的 浏览:717
安装三菱编程闪退怎么回事 浏览:488
手机怎么创建word文件格式 浏览:694
c语言连接数据库 浏览:887
数据线粉色和白色哪个是正 浏览:775
vb编程应注意什么 浏览:855
js循环添加控件 浏览:615
学习计算机网络的作用 浏览:235
access数据库最新内容怎么调 浏览:203
上古世纪新版本跑商 浏览:267
iphone5国际漫游设置 浏览:107
ipodwatch如何安装app 浏览:114
谁有微信抢红包的群号 浏览:872
word07页码从任意页开始 浏览:791
js禁止滑动事件 浏览:800
苹果查序号怎么看不是 浏览:61
linux在txt文件 浏览:568
ps如何导入文件匹配 浏览:201
转转app怎么把自己的账号租出去 浏览:828
福昕阅读器合并照片pdf文件 浏览:591

友情链接