编程功能(共6篇)
编程功能 篇1
在数控加工过程中,数控编程所控制的道具运行轨迹,是以刀具中心为轨迹进行编程的,随着道具的磨损、重磨和换刀, 机床刀具的实际工作半径r变化,导致编程使用时,必须按照新的刀具中心轨迹重新计算轨迹,修改参数。这样不仅无法提高数控加工精度,更增加了大量的编程检查工作,为此,数控编程系统增加了刀具半径补偿功能,这样当刀具半径发生变化时, 数控系统会自动计算道具中心运动轨迹,进行自动修订,这样在进行数控加工时,系统会依据刀具的实际半径r,将刀具中心运动轨迹自动偏离工件加工轨迹r的距离进行切削加工。
熟练地掌握并运用数控刀具半径补偿指令,可以有效地提高编程速度和数控加工精度。
1刀具半径补偿的意义
数控铣床、数控车床或加工中心在进行工件加工时。零件的实际轮廓轨迹与刀具中心运动轨迹之间的偏移量就是刀具半径补偿。如图1:刀具补偿示意图所示,图中实线表示的方形零件为所加工的零件轮廓线,实线外侧和内测的两条虚线,分别表示从外部加工该零件轮廓和从内部加工该零件轮廓,机床刀具中心所运行的轨迹。机床所加工的零件轮廓与机床使用的刀具中心运动轨迹正好相差一个刀具半径r的值。当加工零件外轮廓时,如果刀具向左运动则为右刀补,使用G42指令;反之刀具向右运动则为左刀补,用G41指令;当加工零件内轮廓时,如刀具向右运动即为右刀补,使用G42指令,反之向左运动即为左刀补,使用指令G41。当主轴为正向转动时,为了对加工工件进行顺铣,这时内外轮廓加工都采用左刀补指令G41。 通过G41 G42这两个刀具半径补偿指令的使用,在数控编程加工中就只需要计算出刀具中心运动轨迹的起点坐标,避免了编程工作中对刀具运动轨迹的繁琐计算,从而实现工件的粗加工、精加工,均使用统一程序的目的。
1)简化编程
在数控编程加工中,利用刀具半径补偿指令后,加工轨迹就可以按照所加工工件的外轮廓进行计算编程,不用再计算刀具中心运动轨迹,大大简化了编程计算过程。加工程序准确描述外轮廓轨迹即可,加工过程中遇到刀具更换情况,只要调用不同的刀具半径R来进行修订既可,加工程序依旧可以按原来的程序。这就避免了编程过程中的重复计算,使得编程得以简化。
2)刀具变化更灵活
在成产加工过程中,机床刀具的磨损、重磨经常发生,在加工零件的不同结构需要使用不同的刀具,刀具的更换在复杂零件的加工中也是非常频繁。有刀具半径补偿功能的话,当刀具重磨、磨损和更换时就必须对程序参数进行重新修订,这无疑增加了大量工作量。
零件在自动加工过程中,由于磨损刀具的半径在不断变小,如果不及时更换刀具或者修正编程参数,加工的工件外形尺寸就会超出图纸要求的公差范围,使得产品尺寸不符合加工要求,成为废品,不能满足使用要求,增加了生产成本。
举例说明:如机床刀具的原始半径为r,随着生产加工的使用,刀具产生磨损,与原始尺寸相比刀具磨损量为δ,则此时刀具实际半径就应为r-δ,使用了刀具补偿指令后,在加工过程中不用对原程序参数进行修改,就可以继续满足加工要求,继续使用。同样,当更换刀具时,由于新刀具半径与旧刀具半径不同,利用刀补系统,将新刀具半径替代就刀具半径就可以使用加工程序继续加工零件,这样就可以很好地适应刀具的各种变化,以实现不改变加工程序原始参数即可完成零件的加工要求。
3)利用同一程序完成粗、精加工过程
利用刀具半径补偿的功能还能轻松实现同一程序进行粗、 精加工。理解了刀具半径补偿的意义后,我们就能针对刀补的意义将功能予以扩展。例如,在加工过程中将刀补半径设置为不等于刀具半径,而是等于刀具半径加上精加工余量,这样第一次切削完成即完成了工件的粗加工,在处理粗精加工的时候可以将预设的刀具半径r输入作为刀补半径。这样就可以实现使用同一加工程序,采用同一刀具利用过修改刀补的办法实现对工件轮廓的粗、精加工;同时也可通过修改半径补偿值获得所需要的尺寸精度。
例如加工如图2所示工件,刀具半径r加上粗加工加工余量Δ,设置为刀具补偿半径进行加工,加工完毕后,就完成了工件的粗加工阶段。进行精加工的时候就可以直接以刀具半径r作为补偿值作为刀具补偿参数进行加工。这样就以同一程序就完成了粗加工和精加工,大大简化了数控加工编程过程。
2刀补指令的执行过程
刀补的建立:在加工程序段中包含有G41、G42指令时,数控系统即建立刀具补偿状态。当下列条件得以成立时,数控铣床将以移动坐标轴的形式开始刀具补偿动作。
1)指令G41或G42被指定;
2)在刀具补偿的加工平面内有轴的移动;
3)指定一个补偿号;
4)偏置补偿的加工平面被指定或已经被指定;
5)G00或G01的模式有效。
刀具补偿功能持续范围:当刀具补偿命令开始执行起,刀具的中心运动轨迹就沿着与加工工件轨迹相差一个刀具半径的轨迹运行,直到加工过程技术为止。在这个加工过程中半径补偿在G00、G01、G02、G03的情况下都是有效指令。
取消刀具补偿:加工过程中可以使用G40指令取消程序中的的偏置值,这时,刀具中心回到加工起始点位置,离开被加工的工件。程序结束刀具中心轨迹与编程加工轨迹重合。以下两个条件当有一个触发时,加工中心会将补偿模式取消。1指令G40给出时,补偿平面内有坐标轴的移动。2刀具补偿号为D00。
3注意事项
1)加工平面上增加刀具补偿时,必须在该工件未加工轮廓时有在该加工平面的移动,并道具移动距离要大于刀具半径r。
当切削加工即将开始时,在XOY平面或与XOY平面平行的坐标平面上,加上刀具半径补偿参数,即刀具脱离工件的加工位置。随后再沿着Z轴的方向进行加工,在加工程序编写时重点注意加工程序的结构,以保证不会产生过切现象,当程序运行结束可以获得精确的工件加工轮廓。
图3工件坐标系,如图中所标示内容,在与XOY平面相平行的坐标平面内,以及XOY平面内,利用刀具半径补偿指令, 对工件进行加工,起点位置坐标(0,0,100),也即刀具中心移动轨迹起点位置坐标。这时当加工开始,刀具移动接近加工工件和切削工件开始时,刀具中心会产生沿Z轴方向的位移。此时如果程序结构出现错误,系统就会产生过切现象,并且系统不会报警停止。从而使得产品报废。如下程序列所示:
在与XOY平面平行的平面内以及与XOY平面开始建立刀具半径补偿时,如果Z轴产生了2段连续的移动命令,就会使得刀具产生完全不正确的补偿位置。本程序的刀具补偿自N50程序段开始,这时的数控操作系统仅读取后面的两个程序段, 但N60、N70两个程序段均是由Z轴移动指令,这时系统缺少XOY平面内的坐标,从而导致数控系统无法给出下一步刀具补偿的正确矢量方向。并且此时机床系统不会报警,刀具半径补偿继工作持续进行. 但N50程序段开始工作后,导致切削刀具的中心线轨迹的目标点发生了变化,此时工件产生了过切现象。为避免过切,在建立刀具半径补偿之前,应将刀具停留在一个不会产生干涉的位置。先将刀具沿Z轴方向快速运动靠近工件,最后再按进给速度调整刀具的切削深度。
为避免过切现象产生,上述程序段应做如下修订:
2)当使用刀具补偿时应避免过切削现象:在刀补命令正式使用和程序中结束刀补指令功能结束时,刀具必须在补偿的加工平面内移动,并且移动距离万不可大于刀补值。如果加工的产品是一个内圆弧工件。为保证不产生过切现象,必须保证刀具半径R要小于内圆弧半径。如果刀具半径R大于加工刀具的实际尺寸,就会产过切现象。
3)在G02、G03指令下取消刀具补偿值,加工程序会出错, 产生过切。刀具补偿应在G00、G01指令模式下取消;如果在G02、G03指令模式下取消刀补时,系统会报警提示错误。在G00、G01指令模式下使用可以使用G41、G42、G40。不能重复使用G41和G42指令,否则在刀具补偿的两句连续的指令作用下就会产生过切。
4)各指令要求
其中D00 - D99指令是建立刀具补偿号指令,D00指令是取消刀补。
4结论
刀具半径补偿的内容,在数控教学中非常的重要,以来因为刀具半径补偿参数在数控加工控制理论中的使用十分广泛。熟练的应用刀具半径补偿的原理,灵活的使用刀具半径补偿功能,既可以保证数控加工的准确性、高效性又可以极大的缩减数控加工编程和计算的工作量,但在使用刀具补偿功能时要注意机床的硬件条件和工件加工轮廓的几何面过度处,以避免产生过切和切削不足等加工问题,提高工件的加工精度。
摘要:在《数控编程》课程中,数控系统的刀具半径补偿是一个重点内容也是难点内容。刀补是由计算机在数控系统中自动完成的。数控系统在加工过程中会根据刀具运动的方向和零件轮廓尺寸,依据指令(G40,G41,G42),系统通过机床刀具实际半径计算出刀具的中心运动轨迹,从而完成零件加工。刀具半径补偿在数控加工过程中的过程为:建立刀具补偿建立——维持刀具补偿——撤销刀具补偿。能够理解,并在数控加工编程中注意合理运用,就能避免过切现象,在数控加工过程,刀具补偿使得编程更加的灵活和简便。
关键词:G40,刀具补偿,过切现象,数控编程
参考文献
[1]林其骏.机床数控系统[M].北京:中国科学技术出版社,2005.
[2]刘跃南.机床计算机数控及其应用[M].北京:机械工业出版社,2005.
[3]杨有君.数字控制技术与数控机床[M].北京:机械工业出版社,1999.
编程功能 篇2
创建一个Windows窗体应用程序, 实现图片浏览功能,需要用到的控件有Label控件、Button控件、PictureBox控件、ImageList控件和Timer控件。
Label是标签控件, 用来显示输出文本信息。
ImageList是图像列表控件 , 用于存储图像 , 这些图像随后可由控件显示。可关联具有ImageList属性的控件, 例如Button控件等。Button是按钮控件 , 用于执行用户的单击操作, 常用的属性有Text属性, 用来显示Button控件上的文本信息; ImageList属性, 用来关联ImageList控件。ImageIndex属性, 用来表示在控件上显示的ImageList中的图像的索引。
PictureBox是图片框控件 , 用来显示各种图像。例如 ,BMP位图、JPEG格式的图形、GIF格式的图形等。PictureBox控件常用的属性有: Image属性, 用来指定所显示的图像; ImageLocation属性 , 用来指定所显示图像的路径或URL。SizeMode属性, 用来指示如何显示图像, 如果取值Normal, 图像被置于PictureBox的左上角, 超出部分被剪裁; 如果取值StretchImage, 图像被拉伸或收缩 , 以适合PictureBox的大小;如果取值AutoSize, 调整PictureBox大小为图像大小; 如果取值CenterImage, 图像居中, 超出部分被剪裁; 如果取值Zoom,图像大小按其原有的大小比例被增加或减小。默认为Normal。
Timer是定时器控件, 用于定期引发事件的组件。通过Interval属性可设置定时器的时间间隔长度, 以毫秒为单位。通过Enabel属性可设置定时器开始和停止工作。
首先, 创建一个Windows窗体应用程序, 例如创建一个名为Picture的Windows窗体应用程序。然后添加6个Button控件, 1个PictureBox控件, 一个ImageList控件, 在Windows窗体设计器中适当调整各个控件的大小和位置, 并在属性窗口中设置各个控件的属性, 如表1所示。
接下来, 编写各个控件的代码来实现最后的功能。
(1) 在代码窗口的开头添加语句, 导入命名空间
Imports System.IO
(2) 在Form1程序开关添加语句
用于全局变量I赋值并获取图像列表中各个图像文件的名称。
Public i as Integer=0
Dim ImageURL As String ( ) = Directory.GetFiles (“ D:images”)
(3) 编写Form1_Load事件代码。 在PictureBox中显示第1张图像
Private Sub Form1_Load (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = " 共有" & ImageList1.Images.Count & "张图片,现在是第1张"
PictureBox1.ImageLocation = imageURLs ( Button1.ImageIndex)
Button2.ImageIndex = Button1.ImageIndex + 1
Button3.ImageIndex = Button1.ImageIndex
End Sub
(4) 编写“第一张”命令按钮的Click事件代码
双击“第一张”命令按钮, 在代码窗口中加入以下代码,用于显示文件夹中第一张图片:
Private Sub Button1_Click ( ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = " 共有" & ImageList1.Images.Count & "张图片,现在是第1张"
PictureBox1.ImageLocation = imageURLs ( Button1.ImageIndex)
Button2.ImageIndex = Button1.ImageIndex + 1
Button3.ImageIndex = Button1.ImageIndex
End Sub
(5) 编写“下一张”命令按钮的Click事件代码
双击“下一张”命令按钮, 在代码窗口中加入以下代码,显示下一张图片, 并修改命令按钮上所关联的图片信息:
Private Sub Button2_Click ( ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button2.Click
PictureBox1.ImageLocation = imageURLs ( Button2.ImageIndex)
If Button2.ImageIndex <> Button4.ImageIndex Then
Label1.Text = " 共有" & ImageList1.Images.Count &" 张图片,现在是第" & Button2.ImageIndex + 1 & " 张"
Button2.ImageIndex += 1
Button3.ImageIndex = Button2.ImageIndex - 2
Else
Label1.Text = " 共有" & ImageList1.Images.Count &
" 张图片,现在是最后一张"
Button3.ImageIndex = Button4.ImageIndex - 1
End If
End Sub
(6) 编写“上一张”命令按钮的Click事件代码
双击“上一张”命令按钮, 在代码窗口中加入以下代码,显示上一张图片, 并修改命令按钮上所关联的图片信息:
Private Sub Button3_Click ( ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button3.Click
PictureBox1.ImageLocation = imageURLs ( Button3.ImageIndex)
If Button3.ImageIndex <> 0 Then
Label1.Text = " 共有" & ImageList1.Images.Count &" 张图片,现在是第" & Button3.ImageIndex + 1 & " 张"
Button3.ImageIndex -= 1
Button2.ImageIndex = Button3.ImageIndex + 2
Else
Label1.Text = " 共有" & ImageList1.Images.Count &
" 张图片,现在是第1张"
Button2.ImageIndex = Button1.ImageIndex + 1
End If
End Sub
(7) 编写“最后一张”命令按钮的Click事件代码
双击“最后一张”命令按钮, 在代码窗口中加入以下代码, 显示文件夹中最后一张图片:
Private Sub Button4_Click ( ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button4.Click
Label1.Text = " 共有" & ImageList1.Images.Count & "张图片,现在是最后一张"
PictureBox1.ImageLocation = imageURLs ( ImageList1.Images.Count - 1)
Button2.ImageIndex = ImageList1.Images.Count - 1
Button3.ImageIndex = Button2.ImageIndex - 1
End Sub
(8) 编写“自动播放”命令按钮的Click事件代码
双击“自动播放”命令按钮, 在代码窗口中加入以下代码, 可以实现文件夹中图片的循环播放:
(9) 编写计时器控件的Click事件代码
双击计时器控件Timer1, 在代码窗口中加入以下代码:
(10) 编写“退出”命令按钮的Click事件代码
双击“退出”命令按钮, 在代码窗口中加入以下代码,退出程序的运行:
(11) 运行并测试应用程序
单击工具栏上的“启动调试”按钮, 运行并测试应用程序。应用程序运行界面如图1所示。通过这个程序设计, 深刻体会到相对于字符界面的控制台应用程序, 基于Windows窗体的桌面应用程序可以提供丰富的用户交互界面, 从而实现各种复杂功能的应用程序。大多数窗体都是通过将控件添加到窗体表面来定义用户界面的方式进行设计的, 所以控件的正确使用起到了关键作用。
摘要:VB.NET语言主要用来构建在.NET Framework上运行的各种安全、可靠的应用程序。使用VB.NET,可以创建各种类型的应用程序和服务。相对于字符界面的控制台应用程序,基于Windows窗体的桌面应用程序可以提供丰富的用户交互界面,从而实现各种复杂功能的应用程序。
编程功能 篇3
1 设定刀具补偿量
(1) 编程格式
G90/G91 G10 L P R
(2) 各字的意义
1) G90/G91
绝对/相对坐标编程;在这里设定补偿量时, 是覆盖原有补偿量还是在原有补偿量的基础上累加。
2) L:如图1所示, 决定刀具补正横坐标;
L10表示 (形状) H;
L11表示 (磨耗) H;
L12表示 (形状) D;
L13表示 (磨耗) D;
3) P:如图1所示, 决定刀具补正纵坐标;
P1表示001
P2表示002
Pn表示00n
4) R:表示给刀具赋补偿值
(3) 举例
G90 G10 L10 P1 R120
表示:给H01赋补偿值120, 结果如图1所示。
2 设定工件坐标系
(1) 程序格式
G90/G91 G10 L2 P X Y Z
(2) 各字的意义
1) L2:表示坐标系参数;
2) P:表示补偿位置, 如图2所示;
P0表示设定基本工件坐标系EXT;
P1表示设定工件坐标系G54;
P2表示设定工件坐标系G55;
···
P6表示设定工件坐标系G59;
3) X_Y_Z:就是给具体坐标系赋具体值;
(3) 举例
G90 G10 L2 P 1 X-200 Y-300 Z0
表示:在工件坐标系G54中, X=-200, Y=-300, Z=0;结果如图2;
3 系统参数赋值
可利用G10编程, 进行系统参数的输入, 本文用不到该功能, 在这不予说明。
灵活运用可编程参数设定指令G10可解决生活中的实际问题。
(1) 利用G10编程, 解决学校、企业共用机床的矛盾
为了最大限度的发挥机床的效用, 我校实训车间数控加工中心机床白天给学生实训, 晚上给一家企业加工产品。想法很好, 但真正实施起来却遇到了一些问题。由于二方交错使用机床, 学生实训时, 会更新企业输入的坐标系、刀补值, 而企业加工时一般都是进行批量生产, 一种产品经常需要做好多天, 一旦这些值被更新, 他们就需要重新手工输入或重新对刀和调试, 而这都需要时间, 会影响企业的生产效率的。
能不能通过程序给坐标系、刀补赋值呢?G10就有这样的功能, 可以利用G10指令编程序, 加在企业加工程序的前面, 运行这段程序时就会自动给坐标系和刀补赋值, 而不需要每次重新手工输入或重新对刀了, 这样, 这个问题就可以迎刃而解。
若加工某个工件需10把刀, X、Y方向补偿值放在G54里, 10把刀的长度补偿和半径补偿值分别放在H01、H02···H10和D01、D02···D10里。则编制程序如下:
后接企业加工程序
通过添加上述程序段后, 运行程序时, 首先会自动给坐标系和刀补赋值, 然后再运行企业的加工程序。这样企业避免了手工输入或重新对刀操作, 从而解决了学生实训与企业生产交替进行的矛盾。
上述操作可行性是有前提的:1) 学生实训时不能动企业的夹具, 解决的方法就是在机床上装二个夹具, 一个给学生实训用, 一个给企业加工;2) 企业在运行程序前需要清空程序将要调用到的坐标系和刀具补偿值, 防止这二处有影响坐标系和刀补的数值存在。
(2) 规则曲面的编程
在铣削加工时, 有时需要对棱边倒圆, 如果纯粹用基本指令编程, 程序段很多, 而且很烦。可以巧用FANUC系统提供G10指令编程, 适时改变D寄存器里面的刀补值, 实现对棱边的倒圆, 而且程序段不多, 思路很清晰。
如图3所示, 要在半径为50 mm高为50 mm的圆柱上表面棱边倒半径为5 mm的圆角。
1) 铣削思路
可以先铣削深度为-5 mm的直径100 mm的圆, 再将刀向上抬一个很小间隔, 再铣直径比100 mm小一点的圆, 再将刀向上抬一点, 再铣比上一刀小一点的圆, 这样, 一层一层的铣削, 直到铣到直径为90的圆为止。
上述思路要求在不同层里, 刀轨形状一样, 就是大小不一样。
解决方法:可以在每一层编同样的程序, 只要在不同层里刀具的半径补偿值不一样就行了。可以利用G10指令编程, 在不同层里给D01赋不同的值给就可以使每一层的刀补值不一样。
2) 刀补值、刀具深度值表达式
图4为图3右上角的局部剖视图 (剖面线没画) 。
如图4所示, 剖面圆弧上任一点B与水平方向夹角为变量#1, 则刀具在这个位置切削时, 刀具所在深度Z坐标为:
#3=-5+5*sin[#1], (零件上表面为Z0) (1)
在A点时, 刀具的刀补值就为刀具的实际半径, 如上图所示, 任一点 (B点) 刀补值应比A点小#2, 根据图示几何关系,
#2=5-5*cos[#1],
则刀具在任一点刀补值为:
#4=刀具实际半径-#2 (2)
3) 编程: (FANUC 0i-MB系统)
运行上述程就序可以在圆柱上表面棱边倒出圆角。圆角质量取决于铣削时分的层数, 分的层数越多, 质量越好。
以上方法不仅能进行倒圆角加工, 实际还可以进行倒角、球类、椭圆等曲面加工。只要认真分析几何关系, 得出它们的任一点刀补表达式, 其它问题都可迎刃而解。
4 结束语
只要多动脑筋, 巧妙利用G10的功能, 可以解决许多相关的实际问题。
参考文献
编程功能 篇4
作为控制器, PLC和工控机 (或称IPC) 均广泛应用于工业控制领域。PLC坚固耐用, 可靠性高, 抗干扰能力强, 编程灵活方便, 通用性好, 特别适合输入/输出点数众多的以顺序逻辑控制为主的工业场合。工控机硬件结构方面有总线标准化程度高、兼容性强, 而软件资源丰富、可视化软件编程容易, 程序可移植性好, 运行速度快, 存储量大, 联网方便等特点[1,2,3]。
将PLC的现场控制优势与工控机的图形界面与数据处理等优势相结合, 即PLC作为下位机主要进行控制, 工控机作为上位机进行管理, 这样的架构是实现管控分离的分布式系统, 成为许多中、大型控制系统的普遍配置方案[4,5], 二者又通过通信连接实现管控一体化。
工控机控制系统是基于工控机和一个稳定可靠的操作系统以及一套由不同厂家开发的基于PC的控制软件, 加上一些必要的I/O硬件设备组成的控制系统。该系统是一种开放式控制, 使控制系统和工厂管理系统更易于连接, 能够把实时逻辑控制、连续生产过程和批量生产过程控制、运动控制、可视化操作、信息分析、系统诊断等功能集成到一个紧凑的软件包中, 这些软件通常以通用免费的VC、VB、Delphi等进行开发, 能完成一些PLC难以完成的工作, 并且成本相对于PLC结合工控机的控制系统更为低廉[6,7,8]。但是, 单一工控机控制系统的研究文献均未对顺序逻辑控制方法进行系统、通用化的论述。
梯形图是PLC的一种主要编程语言, 采用经验法设计梯形图, 设计使用的时间、设计的质量与设计者的经验有很大关系。对于复杂的控制系统, 分析起来非常困难, 容易遗漏掉一些应加以考虑的问题;设计出的梯形图往往非常复杂, 难读懂, 这也给PLC控制系统维护和改进带来了很大的困难。顺序功能图 (sequential function chart) 又称为状态转移图或功能图, 它是描述控制系统的控制过程、功能和特性的一种图形, 也是设计可编程程序控制器的顺序控制程序的有力工具。顺序功能图具有直观、简单、逻辑性强的特点, 不仅可使工作效率大为提高, 而且能使程序调试极为方便[9,10,11]。
近年来正在发展的软PLC技术可以解决工控机顺序逻辑控制问题。软PLC技术是一种基于IPC或EPC的将PLC的控制功能封装在软件内的控制技术, 也就是通过软件来实现标准硬件PLC的基本功能。但是, 软PLC技术又会增加额外开发或软件成本[12,13,14], 在PLC顺序控制不占主要的控制系统中采用软PLC技术不是很有必要。
通常的工控机一般不具有顺序功能图和梯形图编译软件, 笔者研究的是基于顺序功能图的VC编程方法, 在单一工控机控制系统上可以较方便地实现类似PLC的顺序控制功能, 在以VC等应用软件编程的工控机控制系统中, 本研究提出的方法容易与其他控制系统功能软件很好地融合, 且实现成本低。
1 典型顺序功能图实例
一个典型顺序功能图实例如图1所示。S0~S8为顺序功能图的“步”, 其中S0为“起始步”;步与步之间的连线为步转换方向线;转换方向线上标出的是转换条件;每步右侧线连方格部分为步输出, 本研究的步输出须以设置 (Set) 和复位 (Reset) 的形式给出, 而不能直接挂线圈。本例S0-S1-S2步转换关系为单行序列, S2-S3转换或S2-S4转换为选择序列, S5-S6、S7的转换为并行序列, 通常的顺序控制均以这3种序列形式组合而成。符合顺序控制的过程只要用顺序功能图准确描述, 就能够以适当方法“翻译”成相应的梯形图程序, 阅读、调试、修改都比较方便, 且不容易出错。程序分步转换程序和步输出程序, 下面以西门子S7-300PLC的梯形图编程为例给出部分程序, 其他程序可以参照编写, 其中步S0~S8以M10.0~M11.0的9个位逻辑表示。
1.1 步转换程序的梯形图实现
图1实例的选择序列S2-S3, S2-S4及其合并S3-S5, S4-S5, 并行序列S5-S6、S7及其合并S6、S7-S8的步转换程序梯形图如图2所示。
1.2 步输出程序的梯形图实现
图1实例的S8步的步输出程序梯形图如图3所示。
2 顺序功能图的VC实现
本研究采用VC++6.0编写基于顺序功能图的顺序控制程序时采用如下方法:
单独开一个线程进入一个循环的扫描控制程序模拟PLC主扫描循环, 从而可以不影响控制系统的其他界面操作, 线程的优先级根据需要而定;在主扫描循环程序中依次编写输入映射、步转换、步输出、输出映射等子程序代码;采用开线程结合Sleep函数实现PLC定时器功能, 逻辑上不同时开启的定时器都可以采用一个线程控制。总体程序流程图如图4所示。其中, 各线程可以根据需要设定不同的优先级。
下面笔者以图1顺序功能图为例分别加以叙述, 其中, 步转换程序和步输出程序仅给出了部分参考程序代码, 其他代码可以参照编写。
2.1 变量定义
定义相关变量及其含义如表1所示。
2.2 主扫描循环线程
编写名为Plc Main Cycle的线程程序如下:
2.3 输入输出映射
输入映射程序功能是将外部输入状态 (数字量输入DI或模拟量输入AI等) 读入到内存变量, 本例将DI读入到Input Map;输出映射程序是将处理好的用以更新外部输出状态的值映射到外部设备 (数字量输出DO或模拟量输出AO等) , 本例将Output Map映射到DO。通常可以调用I/O设备厂家提供的静态链接库或动态链接库相应函数即可完成。
2.4 步转换程序
步转换程序采用条件语句和位操作符、逻辑运算符等即可容易实现, 以图1实例的并行序列S5-S6、S7及其合并S6、S7-S8的步转换程序为例, 参考代码如下:
2.5 定时器线程
与PLC不同, 在Windows多任务操作系统下VC编程没有多个独立定时器可用。针对常用的延时接通定时器, 本研究采用了线程结合Sleep函数的方法来实现。定时器线程代码如下:
需要注意的是, 逻辑上同时运行的定时器不可以采用一个线程控制, 要分别编写和开启不同的类似线程, 否则会引起错乱, 如图1的T2和T3定时器。该方法定时器调用时, 在相应输出程序中先复位对应的延时到标志位, 再设定延时ms数值, 最后开启对应的定时器线程。定时器线程中, 程序挂起设定延时ms数值时长后, 置位对应延时到标志位。延时到标志位的状态供主扫描循环线程查询使用。具体使用代码示例见2.4节S6、S7-S8步转换程序和2.6节S6、S7步输出程序。
2.6 步输出程序
同样, 步输出程序也只需通常的条件语句和位操作符、逻辑运算符即可实现, 图1实例S6和S7步输出程序参考代码如下:
为使程序更清晰、便于移植, 以上步转换程序和步输出程序中, 部分移位的位数也可以采用宏定义。
3 实验及结果
在主频为2.53 GHz, Intel Core i3 CPU的PC机, Windows XP操作系统上, 本研究采用VC++6.0建立基于基本对话框的MFC应用程序, 通过读取Windows的CPU时间戳的方法对主扫描循环时间进行测试, 经运行调试, 顺序控制功能正确, 程序运行约2 min后的某画面如图5所示。
由图5可见, 平均主扫描循环周期仅约6.6×10-5ms, 最大值也仅约1.49 ms, 远小于通常PLC主扫描周期限值 (与I/O设备硬件反应有关, 通常设为150 ms左右) , 可见, 该方法在通常的工控机硬件条件下完全可以承担规模大得多的顺序控制功能;查看Windows任务管理器, 此时CPU使用27%。为减小程序运行时的CPU资源占用, 可在主扫描循环程序中增加Sleep (50) 语句, 运行后CPU资源占用减小为5%左右, 比该程序不运行时占用2%左右略高。
4 结束语
本研究提出了一种工控机在Windows操作系统下, 采用VC编程实现基于顺序功能图的类似PLC顺序控制的控制方法, 在工艺步骤以顺序功能图确定后, 也可以“翻译”成相应的程序代码, 实现顺序控制功能。该方法具有较好的编程灵活方便、低成本和良好的控制性能, 在柔性PCB加强板预贴机上得到较长时间的工程应用验证, 具有一定的应用价值。
摘要:为了在工控机上实现类似于PLC顺序控制的功能, 提出了基于顺序功能图的VC编程方法。以一个典型顺序功能图为例, 通过单独开线程模拟PLC主扫描循环, 从而可以不影响控制系统的其他界面操作;主扫描循环程序依次包含输入映射、步转换、步输出、输出映射等子程序;采用开线程结合Sleep函数实现了PLC定时器功能;给出了实现该顺序功能图的西门子S7-300 PLC主要梯形图程序作为对照, 详细描述了其VC实现的步骤和主要代码。采用VC++6.0编程并在PC机上进行了运行调试, 通过读取Windows的CPU时间戳的方法对主扫描循环时间进行了测试。研究结果表明, 所提出的方法能较好地完成顺序控制功能, 扫描时间短, 可以满足工业控制要求, 具有一定的应用价值。
编程功能 篇5
UG-CAM模块为自动加工模块, UG的数控铣模块包含丰富的操作内容, 如平面铣、型腔铣、固定轴轮廓铣和孔系加工等操作, 基本上覆盖了数控铣床加工全部的操作内容[1]。UG-CAM加工步骤为:设计三维模型→创建几何体→创建加工操作→生成走刀轨迹→过程仿真检验刀具路径→生成G代码→传输程序→数控机床加工零件。主要适用范围为容易建模的复杂零件加工[2]。多功能支座在汽车和电子电器等高速发展的领域有广泛的应用, 其生产加工批量大, 改型频繁, 零件形状复杂和精度要求高, 若是手工编程, 计算量繁琐, 故采用UG-CAM自动编程, 可缩短零件从设计到加工的周期, 保证加工质量并减小工作量, 提高生产效率。
2 零件工艺分析
如图1, 该底座有1个凸台、4个凹槽、5个孔, 整体的粗糙度要求比较高。加工比较复杂, 一次性装夹完成相关的全部切削操作, 此次设计的产品是批量生产的, 所以采用自动加工与编程来完成。共设计6个工步, 数控加工工艺见表1。
工件毛坯:110 mm×110 mm×130 mm板料, 45钢, 锻件, 底平面及周边已加工完毕;加工机床:立式铣床;铣削方式:型腔铣、轮廓铣、啄钻。
3 多功能底座加工操作流程
3.1 实体建模及创建几何体
打开UG8.5, 进入建模模块, 创建实体建模。创建几何体包括三项主要内容:创建机床坐标系、工件几何体和毛坯几何体。单击“加工创建”工具条上的[创建几何体]命令图标, 界面上会出现一个“创建几何体”对话框, 将类型选定“mill_contour”, 几何体选定“GEOMETRY”, 名称为系统默认的“MCS”, 在MCS对话框将安全距离设为10。创建几何体"对话框中, 几何体选择“MCS”, 名称为系统默认的“WORKPIECE”, 指定部件几何体, 选择模型实体。设置的工件几何体如图2。
3.2 创建刀具
创建第一把加工刀具鼓形铣刀D10:类型选择mill_contour, 刀具类型选择铣刀, 名称输入D10, 直径输入10, 刀具号输入1。
创建第二把加工刀具钻头D6, 类型选择drill, 刀具类型选择钻头, 名称输入D6, 直径输入6, 刀具号输入2。
创建第三把加工刀具钻头ф10:。类型选择drill, 刀具类型选择钻头, 名称输入SPOTDRILLING_TOOL, 直径输入10, 刀具号输入3。
创建第一把加工刀具鼓形铣刀D6:类选择mill_contour, 刀具类型选择铣刀, 名称输入D6, 直径输入6, 刀具号输入4。
3.3 创建加工操作
以工步6精加工外轮廓及4个凹槽:4个孔为例, 说明自动编程与加工。
选用D6铣刀, 用“型腔铣”方式进行精加工, 底座平面与侧表面均留0mm余量, 设置中S=3000 r/min, vc=250。
1) 创建工序。单击“加工创建”工具条上的[创建工序]命令, 设置类型:MILL_CONTOUR。子类型:CAVITY_MILL (型腔铣, 第一行第一个图标) 。使用几何体:WORKPIECE (已设置的工件几何体) 。使用刀具:D6。使用方法:MILL_FINISH (精铣) 。名称:CAVITY_MILL。
设置后, 点击应用, 进入型腔铣对话框。
2) 设置刀具路径参数。“切削模式”选择, 最大距离输入2, 其它保持不变。
3) 设置切削参数。单击“型腔铣”对话框中“切削参数”按钮, 进入“切削参数”对话框, 在“策略”选项卡中选择“顺铣”、“深度优先”;在“连接”选项卡中选择“优化”;在“余量”选项卡中选择“使底面余量与侧面余量一致”, 并在部件侧面余量中输入0。
图4工步6后处理步骤
4) 设置非切削移动参数。在“型腔铣”对话框中单击“非切削移动”按钮, 系统弹出“非切削移动”对话框。在“避让”选项卡中, 点击“起点”→“指定”→“指定点”, 设置x=100, y=100, z=100, 返回点x=100, y=100, z=100。
5) 设置进给率和速度在“型腔铣”对话框中, 点击进给率和速度右侧按钮, 设置主轴速度为3000 r/min, 进给率切削为250 mm/min。
6) 生成刀路轨迹并仿真。单击“型腔铣”对话框的“生成”按钮, , 单击“型腔铣”对话框的“确认”按钮, 系统弹出“刀轨可视化”对话框。在“刀轨可视化”对话框中单击如图选项卡, 分别在“刀轨可视化”对话框和“型腔铣”对话框中单击“确定”, 完成型腔铣加工, 生成刀路轨迹如图3。
3.4 生成NC程序
用鼠标将分别将每个工步的刀具轨迹选中, 然后单击“加工操作”工具条上的[后处理]命令图生成, 选中“可用机床”-“MILL_3_AXIS” (即3轴立式铣床) , 命名文件名, 单位设置为“公制/部件”, 单击应用后, 出现“信息”对话框 (图4为工步6的后处理步骤) 。
4 数控铣床加工工件
将生成的后处理程序根据机床的数控系统设定, 进行编辑和修改, 导入斯沃仿真华中数控HNC-21M校验, 加工工件如图5。
5 结语
对于复杂零件的铣削加工, 适宜使用UG-CAM, 免去了凸台和型腔加工中复杂的基点计算, 缩短了零件从设计到加工的周期, 提高了生产效率。
参考文献
[1]吴波, 李花.基于UG的双凹槽圆柱凸轮造型与多轴数控加工[J].装备制造技术, 2014, 42 (20) :19-21.
编程功能 篇6
设计人员在利用CAD进行产品设计时产生大量的DWG文件, 每一个DWG文件中包含一张或数张图纸, 设计的基础资料如:工程项目、图号、设备 (物料) 名称、型号规格、备注等等文本信息都记录在图纸标题栏明细表中。设计工作完成后, 工艺编制、成本预算、物料消耗、物流采购、计划调度、采购施工等管理业务都将依据图纸进行操作。在通常的管理中, 各业务部门往往通过人工的方式从CAD图纸或纸质图纸明细表中获取技术文件数据, 再利用WO RD或E XC EL进行手工二次录入, 编制各自需要的明细表、经过汇总, 生成相应的材料汇总表, 这种单页面的文本制作方式虽然使用了电脑操作, 但并未能摆脱繁重的手工录入和编辑工作, 不能进行数据的自动处理, 存在图纸与制表数据不一致、差错率高、工作量大、编制周期长、效率低下、等多种弊端。因此, 采用自动提取CAD明细表与进行数据库管理的方法是克服以上弊端提高企业工作质量的有效途径。因此2008年初受设备专业委托, 开发一个程序, 能把CAD图纸中的料表自动提取到电子表格中, 并能实现自动地排序、汇总、分页打印, 经过八个月的编程, 目前该软件已编制调试完毕, 并取得了预期的效果, 现将该软件向大家介绍一下。
2、关于料表自动统计软件的几点说明
2.1 关于程序设计语言ObjectARX的介绍
ObjectARX是一种崭新的开发AutoCA D应用程序的工具, 它以C++为编程语言, 采用先进的面向对象的编程原理, 提供可与AutoCAD直接交互的开发环境, 能使用户方便快捷地开发出高效简洁的Auto CAD应用程序。ObjectARX并没有包含在AutoC AD中, 可在AutoDESK公司网站中去下载, 其最新版本是ObjectARX for AutoCAD 2000, 它能够对AutoCAD的所有事务进行完整的、先进的、面向对象的设计与开发, 并且开发的应用程序速度更快、集成度更高、稳定性更强。ObjectARX从本质上讲, 是一种特定的C++编程环境, 它包括一组动态链接库 (DLL) , 这些库与AutoCAD在同一地址空间运行并能直接利用AutoCAD核心数据结构和代码, 库中包含一组通用工具, 使得二次开发者可以充分利用AutoCAD的开放结构, 直接访问AutoCAD数据库结构、图形系统以及CAD几何造型核心, 以便能在运行期间实时扩展AutoCAD的功能, 创建能全面享受AutoCAD固有命令的新命令。Objec t ARX的核心是两组关键的API, 即Ac Db (A uto CAD数据库) 和AcEd (Auto CAD编译器) , 另外还有其它的一些重要库组件, 如Ac RX (Auto CAD实时扩展) 、AcGi (Auto CA D图形接口) 、Ac Ge (Auto CAD几何库) 、AD SRX (Auto CAD开发系统实时扩展) 。Objec tARX还可以按需要加载应用程序, 使用O bjectARX进行应用开发还可以在同一水平上与Windows系统集成, 并与其它Windo ws应用程序实现交互操作
2.2 程序的组成部分及功能
程序由五部分组成, 第一部分为服务器端程序Statbom Server.exe, 此程序需要安装在一台固定的机器上, 进程始终是运行的, 它负责验证客户端的信息, 保证客户端正常地使用, 没有通过服务器端验证许可的就不能使用该软件。第二部分为客户端程序Statbom2004.arx此程序需要使用该软件的客户把该程序拷到本机中, 然后在CAD中加载进行使用。第三部分是一个文本文件So rt.txt, 此文本文件记录了最后生成电子表格规格那一列的排序顺序, 此文本文件可以根据用户的需要进行修改, 最后生成电子表格的排列顺序以该文件为准。第四部分是一个电子表格文件, 即材料表样本.xls, 即最后生成的电子表格的样式。第五部分是一个ACCESS数据库, 即标准图库.mdb, 记录了标准件图库的数据库信息, 因为在设备的料表中包括比较多的标准件, 这些标准件所包含的零部件都是相同的, 把它们建成一个库文件, 比较方便调用, 并且可以重复利用。
2.3 程序的安装
2.3.1 服务器端
->执行Statbom Server.exe;->如果没有注册, 会提示输入注册码;->运行后会隐藏窗口, 并在系统托盘显示图标;->点击图标, 显示主窗口, 点击"设置", 进行设置, 记住勾选"系统启动时, 自动运行"
2.3.2 客户端
将客户端程序statbom2004.arx复制到用户计算机上, 并加载程序:手动加载的方法:输入命令"appload"->找到statbom2004.arx, 点击"加载"按钮;自动加载的方法:输入命令"appload"->点击启动组中的"内容"按钮->找到statbom2004.arx, 关闭启动组对话框;
2.4 程序的使用方法
第一次运行程序输入命令"statbom_ne tcfg"进行网络设置, 在服务器端IP地址栏内输入服务器的IP地址。
->网络设置完以后运行该程序, 在CA D命令行内输入statbom;->在弹出的对话框中指定输出文件的存放位置;->选择所有表格, 选择完毕后, 按鼠标右键确认;->如果有标准件 (以“B设”或“BEQ”或“SEQ”开头) , 将弹出对话框, 提供如下选择:是否拆分;指定拆分的数量;->指定标准件数据库的存放位置;->点击“确定”, 统计好的料表将自动地排序、汇总输出到Excel文件
2.5 系统要求
AutoCAD 2004/2005/2006;Excel 2000及其以后版本;Access 2000及其以后版本。
2.6 相关文件说明
2.6.1 CAD料表文件要求
(1) CAD表格共9列, 包括:件号, 图号或标准号, 名称, 规格, 数量, 材料, 单重, 总重, 备注 (注意:原设计人员CAD料表只有8列, 新料表需把名称及规格分成了两列, 需要加条竖线) ; (2) 所有表格外框线 (4根) 必须位于图层“外框”, 外框图层用户自己定义; (3) 表格中不包括表头和表尾, 即不包括标题行; (4) 表格中的平方符号 (如m2) 应使用多行文本 (MTEXT) 表示, 而不应使用两个单行文本 (TEXT) 错位表示。
2.6.2 标准图库文件
标准图库文件以“mdf”数据库格式保存, 位置位于服务器共享目录下, 如:
serverstdlib标准图库.mdf
标准图库文件包括以下字段: (1) 名称; (2) 规格; (3) 图号或标准号; (4) 零件名称; (5) 规格; (6) 数量; (7) 材料; (8) 单重; (9) 总重; (10) 备注。
2.6.3 最终的Excel材料表
(1) 材料表包括2个sheet:中文首页, 中文打印样表; (2) 中文打印样表中的“规格 (型号) ”列按文件sort.txt文件排序, 其它材料按字母顺序;
//目前材料规格先后顺序如下:钢板、花纹钢板、工字钢、槽钢、角钢、扁钢、圆钢、无缝钢管、有缝钢管、法兰、补强圈、螺栓、螺母; (3) 材料统计方式:国标件按数量统计, 如螺栓M20×45;其它件按重量统计, 如槽钢140×58×6, 花纹钢板5; (4) 中文打印样表自动进行分页处理, 最终生成的材料表如图1所示。
3、结语
从分公司发展的长远来看, 这个软件有十分积极的现实和长远意义。其意义就在于, 充分利用现有Microsoft office软件的资源, 以OBJECT ARX为开发平台, 以最优的性价比和最小的开发成本解决了制约CAD与工艺文件之间数据通信的瓶颈问题, 减轻了人工制表的劳动强度, 提高了工艺文件制作的效率和质量, 缩短设备制造周期, 强化和规范了企业技术和生产管理行为, 同时也为逐步建立企业产品数据库奠定了良好的基础。
一切管理软件都是工具, 工具不是万能的, 关键还是人的创新精神和责任心。因此能否真正发挥软件的作用解决企业的实际问题, 还有待于依靠企业领导、管理人员、信息技术人员的同心协力, 鼎力相助。这种信息系统开发的模式也是企业特别是中小型企业信息化建设的一条可借鉴的有效途径。
参考文献