CNC系统固定循环功能的Delphi实现
2016-01-14李庆婷王英杰刘恒宽
李庆婷++王英杰++刘恒宽
摘 要:数控系统的译码功能直接决定了数控机床的性能。一个稳定、可靠、快速的译码系统是数控机床进行高速、高精度加工的前提。该文用Delphi语言编写了实现译码算法的译码软件,并且基于Delphi语言的对话框模式编写了外观精美、易于操作的功能界面。
关键词:CNC系统 译码 高精度
中图分类号:TP311 文献标识码:A 文章编号:1672-3791(2015)02(b)-0028-01
1 数控CNC系统软件界面的建立
软件界面的设计直接关系到它的合理性和美观,从而影响客户对该软件的喜爱程度。基于此对该软件的界面需要细心的设计,设计过程介绍如下。
(1)创建父窗体Form1。
创建父窗体与其它窗体的方法类似,不同之处在于设置窗体的FormStyle属性。FormStyle属性可决定一个窗体是父窗体还是子窗体,在“Object Inspector”窗口中将“FormStyle”属性设置成“fsMDIForm(父窗体)”。
(2)创建子窗体Form4。
创建子窗体时将窗体的FormStyle属性设置为fsMDIChild(子窗体)。子窗体的默认状态是可见的。
2 固定循环功能的Delphi编程实现
钻孔循环G81的实现程序如下所示。
paintbox1.canvas.MoveTo(round(x1*1.3*s),-round(y1*1.3*s));//刀具起始位置
paintbox1.canvas.LineTo(round(x2*1.3*s),-round(y2*1.3*s));//孔的X、Y位置
paintbox1.canvas.LineTo(round(x2*1.3*s),-round(R*1.3*s));//刀具到达R平面
paintbox1.canvas.LineTo(round(x2*1.3*s),-round(Z*1.3*s));//刀具到达Z平面
x2:=x2+1 ;//刀具在X方向右移一个单位长度,为下一步清晰表示返回路线
paintbox1.canvas.LineTo(round(x2*1.3*s),-round(Z*1.3*s));//刀具到达X方向的下一个位置,Y没变
paintbox1.canvas.LineTo(round(x2*1.3*s),-round(R*1.3*s));//刀具返回R平面
运行结果如图1所示。
3 对复合固定循环功能G71的译码实现
设从C点出发,沿-X方向进刀,然后沿-Z方向走刀,再沿+Z方向回刀为一次走刀循环。假设通过次走刀循环加工后,第次走刀循环如图2中的轨迹1→2→3→4所示,现要求解出轨迹1、2、3、4的交点坐标值。
已知C点坐标,根据走刀循环次数和,首先通过下式求出轨迹1和2的交点坐标,设为。
。
而对于坐标点求解(,只要求出)则要根据所对应的编程轮廓类型来求解。首先需要判断对应哪个轮廓段,然后通过该轮廓段中的G指令如G01或G02等来判断出是直线还是圆弧。该轮廓段两端点坐标在程序中给出,这里设为。如果为圆弧段,则还有和坐标字,代表圆心相对圆弧起点的增量坐标,分别对应于X轴,Z轴。这里设为。
则对于直线段,可求出:
。
而对于圆弧段,可求出:
(顺时针圆弧)。
(逆时针圆弧)。
求出,和也不难求出下式:
。
这样就可以把这段循环分解成各直线段进行编译,然后将各数据按格式写入文件中。最后在复合固定循环处理完后,位置指针回到数控加工程序的下一程序段,继续对以下各段进行译码实现。如图2所示。
4 结语
利用Delphi语言进行译码软件的编写,实现译码算法。同时编写外观精美并易于操作的功能界面,从而实现人机对话功能。最后通过示例验证开发的译码软件的正确性,实现了部分G功能码的译码算法。
参考文献
[1] 明日科技.Delphi开发经验技巧宝典[M].北京:人民邮电出版社,2007.
[2] 姚道敏,俞立钧,周伯荣,等.数控系统译码模块程序设计[J].组合机床与自动化加工技术,2007(7):73-76.
[3] 罗学科,谢富春.数控原理与数控机床[M].北京:化学工业出版社,2008.