- 4 示例程序
- 5 编程环境
- 6 程序员和操作员使用的缩写
G代码
编辑G代码(也称为RS-274)是使用最广泛的计算机数控(CNC)编程语言。它主要用于计算机辅助制造以控制自动化机床,并且有许多变体。G代码指令被提供给机器控制器(工业计算机),该控制器告诉电机移动到哪里、移动多快以及遵循什么路径。两种最常见的情况是,在机床(例如车床或铣床)中,切削刀具根据这些指令移动,通过刀具路径切削掉材料,只留下完成的工件和/或未完成的工件精确定位在围绕三个维度的最多九个轴中的任何一个,相对于刀具路径,并且其中一个或两个可以相对于彼此移动。同样的概念也延伸到非切削工具,如成型或抛光工具、照片绘图、3D打印等添加剂方法和测量仪器。
实现
编辑1950年代后期,麻省理工学院伺服机构实验室开发了数控编程语言的xxx个实现。在此后的几十年中,许多(商业和非商业)组织开发了许多实现。在这些实现中经常使用G代码。美国使用的主要标准化版本是由电子工业联盟在1960年代初制定的。最终版本于1980年2月被批准为RS-274-D。在其他国家,通常使用标准ISO6983,但许多欧洲国家使用其他标准。例如,德国使用DIN66025,波兰以前使用PN-73M-55256和PN-93/M-55251。扩展和变体由控制制造商和机床制造商独立添加,特定控制器的操作人员必须了解每个制造商产品的差异。G代码的一种标准化版本,称为BCL(BinaryCutterLanguage),仅在极少数机器上使用。BCL是在MIT开发的,用于控制CNC机器的直线和圆弧。在1970年代到1990年代期间,许多CNC机床制造商试图通过标准化Fanuc制造的机床控制器来克服兼容性困难。西门子是CNC控制领域的另一个市场主导者,尤其是在欧洲。在2010年代,控制器差异和不兼容不再那么麻烦,因为加工操作通常是使用CAD/CAM应用程序开发的,这些应用程序可以通过称为后处理器的软件工具(有时缩短为仅邮政)。一些数控机床使用对话式编程,这是一种类似向导的编程模式,要么隐藏G代码,要么完全绕过G代码的使用。一些流行的例子是Okuma'sAdvancedOneTouch(AOT)、SouthwesternIndustries'ProtoTRAK、Mazak'sMazatrol、Hurco'sUltimax和Winmax、Haas'IntuitiveProgrammingSystem(IPS)和MoriSeiki'sCAPS会话软件。G代码最初是一种有限的语言,缺乏诸如循环、条件运算符和程序员声明的变量等结构,这些变量具有包含自然词的名称(或使用它们的表达式)。它无法对逻辑进行编码,而只是一种连接点的方法,程序员在这些点中以手写方式计算出许多点的位置。G代码的最新实现包括更接近高级编程语言的宏语言功能。此外,所有主要制造商(例如Fanuc、Siemens、Heidenhain)都通过NC程序使用的变量提供对可编程逻辑控制器(PLC)数据的访问,例如轴定位数据和工具数据。这些结构使开发自动化应用程序变得更加容易。
具体代码
编辑G代码,也称为预备代码,是CNC程序中以字母G开头的任何单词。通常它是告诉机床执行何种操作类型的代码,例如:
还有其他代码;类型代码可以被认为是计算机中的寄存器。多年来一直有人指出,术语G代码是不精确的,因为G只是完整语言中众多字母地址中的一个。它来自该术语的字面意义,指的是一个字母地址以及可以用它形成的特定代码(例如,G00、G01、G28),但英文字母表的每个字母都在该语言的某个地方使用.尽管如此,G代码被转喻地确立为语言的通用名称。
信件地址
有些字母地址仅用于铣削或仅用于车削;大多数都用于两者。下面的粗体字是整个程序中最常见的字母。资料来源:铁匠2008;史密斯2010;格林等人。1996年。
FANUC上常见的G代码列表以及用于铣削和车削的类似设计的控件
资料来源:铁匠2008;史密斯2010;格林等人。1996年。注意:模态表示代码在被另一个允许的代码替换或取消之前一直有效。非模态意味着它只执行一次。例如,参见下面的代码G09、G61和G64。
FANUC上常见的M代码列表以及用于铣削和车削的类似设计的控件
资料来源:铁匠2008;史密斯2010;格林等人。1996年。一些较旧的控件要求M代码位于单独的块中(即不在同一行)。
示例程序
编辑这是一个通用程序,演示了如何使用G代码车削直径为1乘以1长的零件。假设机器中有一根材料棒,并且棒材的长度和直径略微过大,并且棒材从卡盘表面突出超过1。(注意:这是通用的,它可能不适用于任何真机!请特别注意下面的第5点。)需要注意的几点:
- 即使在这个简短的程序中,也有一些编程风格的空间。N06行中的代码分组可以放在多行上。这样做可能更容易跟踪程序执行。
- 许多代码是模态的,这意味着它们在取消或被矛盾代码替换之前一直有效。例如,一旦选择了变速切削(CSS)(G96),它将一直有效,直到程序结束。在操作中,主轴转速随着刀具靠近工件中心而增加,以保持恒定的表面速度。同样,一旦选择了快速进给(G00),所有的刀具移动都是快速的,直到选择了一个进给率代码(G01,G02,G03)。
- 通常的做法是在CNC机械上使用负载xxx器。如果主轴或进给负载超过在设置操作期间设置的预设值,负载xxx器将停止机器。负载xxx器的工作是多种多样的:
- 在刀具破损或编程错误的情况下防止机器损坏。
- 警告工具变钝,必须更换或磨尖。因此,一台机器告诉操作员照看多台机器,本质上,暂停你在那边做的事情,然后来这里处理一些事情。
- 通常的做法是快速将工具带入靠近零件的安全点(在本例中为0.1远),然后开始进给工具。安全距离有多近,取决于程序员和/或操作员的偏好以及原材料的xxx材料条件。
- 如果程序错误,机器很可能会崩溃,或者在高功率下将工具撞到零件、虎钳或机器上。这可能代价高昂,尤其是在较新的加工中心中。可以在程序中穿插可选的停止(M01代码),让程序零碎地运行以进行测试。可选停止保留在程序中,但在正常运行期间会被跳过。幸运的是,大多数CAD/CAM软件都附带CNC模拟器,可在程序执行时显示工具的移动。如今,周围的物体(卡盘、夹具、夹具、尾座等)都包含在3D模型中,并且模拟很像整个视频游戏或虚拟现实环境,使意外崩溃的可能性xxx降低。
- 许多现代数控机床还允许程序员在模拟模式下执行程序,并在特定执行点观察机床的运行参数。这使程序员能够在将材料或工具丢失给不正确的程序之前发现语义错误(而不是语法错误)。根据零件的大小,蜡块也可用于测试目的。此外,许多机器支持操作员对快速和进给率的超控,可用于降低机器的速度,从而允许操作员在发生碰撞之前停止程序执行。
- 上面程序中已经包含的行号(即N0...N16)通常不是机器运行所必需的,并且增加了文件大小,因此在行业中很少使用它们。但是,如果在代码中使用了分支或循环语句,那么行号很可能会作为这些语句的目标包含在内(例如GOTON99)。
- 有些机器不允许在同一行中有多个M代码。
编程环境
编辑G-code的编程环境与一般编程环境并行发展——从最早的环境(例如,用铅笔编写程序,将其输入磁带打孔机)到结合CAD(计算机辅助设计)、CAM(计算机辅助制造)和功能丰富的G代码编辑器。(G代码编辑器类似于XML编辑器,在语义上使用颜色和缩进[加上其他功能]以基本文本编辑器无法提供的方式帮助用户。CAM包类似于一般编程中的IDE。)两个高层次的范式转变已经朝着:
- 放弃手动编程(只有铅笔或文本编辑器和人类思维),使用通过后处理器自动生成G代码的CAM软件系统(类似于通用编程中视觉技术的发展)
- 放弃参数结构的硬编码结构(类似于一般编程中将常数硬编码到方程中与将其声明为变量并随意为其分配新值之间的差异;以及一般的面向对象方法)。
宏(参数)CNC编程使用人性化的变量名称、关系运算符和循环结构,就像一般编程一样,以机器可读的语义捕获信息和逻辑。较旧的手动CNC编程只能以数字形式描述零件的特定实例,而宏编程则描述了可以轻松应用于各种实例的抽象。这种趋势类似于计算机编程从低级编程语言到高级编程语言的演变。STEP-NC反映了相同的主题,这可以被视为沿着以机床、夹具和固定装置以及数控开发开始的道路上的又一步,所有这些都试图将技能融入工具中。G代码和STEP-NC的最新发展旨在将信息和语义构建到工具中。这个想法并不新鲜。从数控开始,端到端CAD/CAM环境的概念就是DAC-1和APT等早期技术的目标。对于通用汽车和波音等大公司来说,这些努力都很好。然而,中小型企业经历了一个更简单的NC实施时代,使用相对原始的连接点G代码和手动编程,直到CAD/CAM得到改进并在整个行业中传播。任何具有大量轴、主轴和工具站的机床都很难手动进行良好的编程。多年来一直这样做,但并不容易。这一挑战在CNC螺杆机和旋转传送编程中已经存在了几十年,现在也出现在今天的新型加工中心,称为车铣复合机、铣车复合机床、多任务机床和多功能机床。现在CAD/CAM系统被广泛使用,CNC编程(例如使用G代码)需要CAD/CAM(相对于手动编程)在这些类型的机器所服务的细分市场中具有实用性和竞争力。正如Smid所说,将所有这些轴与一些附加功能结合起来,至少可以说,成功所需的知识量是相当大的。然而与此同时,大约从2000年代中期开始,似乎手动编程(即在没有CAD/CAM辅助的情况下编写G代码行)的消亡可能即将到来。但是,目前仅在某些情况下手动编程已过时。
如今,大量的CAM编程发生在对手动编程生疏或无法进行手动编程的人中——但并非所有CNC编程都可以在不知道G代码的情况下完成、或完成得一样好或有效。在机器上定制和完善CNC程序是一个实践领域,直接编辑G代码比编辑CAM刀具路径和重新后处理程序更容易或更有效。CAD/CAM软件使在计算机控制的机器上以切割零件为生变得更加容易和更加困难。高效编写G代码对CAM软件来说可能是一个挑战。理想情况下,CNC机械师应该熟悉手动和CAM编程,以便在需要时使用蛮力CAM和优雅的手动编程的好处。在内存非常昂贵的时候,许多旧机器都是用有限的计算机内存构建的。32K被认为有足够的空间用于手动程序,而现代CAM软件可以发布千兆字节的代码。CAM擅长快速输出可能会占用更多机器内存并需要更长运行时间的程序。这通常使得加工少量零件非常有价值。但是必须在创建程序所需的时间和程序加工零件所需的时间之间取得平衡。在具有大量内存的较新机器上只制作几个零件变得更容易和更快。这对手动程序员和手动机械师都造成了影响。考虑到退休后的自然流动率,当他们的商业环境大多无法再提供培养该技能所需的无数小时的深厚经验时,期望维持大量精通手动编程的操作员是不现实的;然而,这种经验基础的损失是可以理解的,并且有时会非常想念这样的一个池,因为如果没有这种技能,一些CNC运行仍然无法优化。在具有大量内存的较新机器上只制作几个零件变得更容易和更快。这对手动程序员和手动机械师都造成了影响。考虑到退休后的自然流动率,当他们的商业环境大多无法再提供培养该技能所需的无数小时的深厚经验时,期望维持大量精通手动编程的操作员是不现实的;然而,这种经验基础的损失是可以理解的,并且有时会非常想念这样的一个池,因为如果没有这种技能,一些CNC运行仍然无法优化。在具有大量内存的较新机器上只制作几个零件变得更容易和更快。这对手动程序员和手动机械师都造成了影响。考虑到退休后的自然流动率,当他们的商业环境大多无法再提供培养该技能所需的无数小时的深厚经验时,期望维持大量精通手动编程的操作员是不现实的;然而,这种经验基础的损失是可以理解的,并且有时会非常想念这样的一个池,因为如果没有这种技能,一些CNC运行仍然无法优化。当他们的商业环境大多无法再提供培养该技能所需的无数小时的深厚经验时,期望维持大量精通手动编程的操作员是不现实的;然而,这种经验基础的损失是可以理解的,并且有时会非常想念这样的一个池,因为如果没有这种技能,一些CNC运行仍然无法优化。当他们的商业环境大多无法再提供培养该技能所需的无数小时的深厚经验时,期望维持大量精通手动编程的操作员是不现实的;然而,这种经验基础的损失是可以理解的,并且有时会非常想念这样的一个池,因为如果没有这种技能,一些CNC运行仍然无法优化。
程序员和操作员使用的缩写
编辑此列表只是一个选择,除了几个关键术语外,主要避免重复工程图纸缩写和符号中列出的许多缩写。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/138556/