资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,控制卡的应用技巧,一、控制卡硬件安装,二、控制卡的编程入门,三、控制卡与,G,代码的接囗编程,四、控制卡与,CAD,的接囗编程,一、控制卡的安装,1,、硬件安装,2,、设备驱动的安装,一、控制卡的安装,1,、硬件安装,2,、设备驱动的安装,二、控制卡的编程入门,下面是以,DMC5400,卡在,VB,编译环境下的编程为例,介绍控制卡的入门编程,二、控制卡的编程入门,下面是以,DMC5400,卡在,VB,编译环境下的编程为例,介绍控制卡的入门编程,1,、首先,运行,VB,,并建立一个新的“标准,EXE”,工程,2,、添加,dmc5400,卡的函数定义模块,关于,dmc5400,控制卡的函数定义,dmc5400.bas,文件是,VB,编译环境的函数定义,dmc5400.h,文件是,VC,编译环境的函数定义,与,dmc5400,控制卡相关的所有函数,都定义在这两个文件中,2,、添加,dmc5400,卡的函数定义模块,3,、在工程中添加一个新的类,a,、添加一个新的类,并命名为,CardCls,2,、添加,dmc5400,卡的函数定义模块,3,、在工程中添加一个新的类,a,、添加一个新的类,并命名为,CardCls,b,、加入,CardCls,控制卡相关的代码,实现对控制卡功能函数的二次封装。,封装的好处:,1,)对控制卡自动初始化和自动关闭的,实现,2,)用对象编程的方式,对运动控制卡进行编程,将复杂的编程简易化,2,、添加,dmc5400,卡的函数定义模块,3,、在工程中添加一个新的类,4,、,(,控制卡,),对象的使用,a),在窗体代码中定义对象,例如:,Private pCard As New CardCls,b),调用对象中的成员,实现相关的功能,例如:显示当前的位置,Label1(0).Caption=X:+Format(,pCard.Position(0),0.000),其中:,pcard.position(0),成员函数实现读取第,0,轴的当前位置,并显示 到标签,label(0),。,三、控制卡与,G,代码的编程入门,1,、,G,代码指令,三、控制卡与,G,代码的编程入门,1,、,G,代码指令,2,、,G,代码的常用格式,G00X10.600Y100.000,G01X100.000Y100.000,3,、通过控制卡执行,G,代码的方法,方法,1,、直接调用运动函数执行,G,代码,a,、快速定位,G00X10.600Y100.000Z10,例如:,pCard.MoveTo AxisZ,0,pCard.WaitDone,pCard.FastMoveTo x,y,0,pCard.WaitDone,pCard.MoveTo AxisZ,z,pCard.WaitDone,3,、通过控制卡执行,G,代码的方法,方法,1,、直接调用运动函数执行,G,代码,a,、快速定位,b,、直线插补,G01X10.600Y100.000,例如:,pCard.LineTo x,y,z,pCard.WaitDone,四、控制卡与,CAD,的接囗编程,关于,DXF,文件格式中的线、圆弧及连续线的关键字段,1,、圆,(AcDbCircle),2,、圆弧,(AcDbCircle),3,、线段,(AcDbLine),4,、连续线段,(AcDbPolyline),线段:起点,XYZ,(,10,,,20,,,30,)终点,XYZ,(,11,,,21,,,31,),圆弧:圆心,XYZ,(,10,,,20,,,30,)半径,40,起始角,50,终止角,51,圆:圆心,XYZ,(,10,,,20,,,30,)半径,40,连续线段:段线端点数,90,封闭,/,不封闭,70,点坐标,XYZ,(,10,,,20,,,30,),下面是读入Dxf文件中线段,并调用运动函数的实例代码:,jj=Vb_TextTotalLine,For ii=1 To jj,If VB_GetTextLine(ii,m_str)=True Then,If m_str=AcDbLine Then,If VB_GetTextLine(ii+2,m_str)=True Then x1=Val(m_str),If VB_GetTextLine(ii+4,m_str)=True Then y1=Val(m_str),If VB_GetTextLine(ii+8,m_str)=True Then x2=Val(m_str),If VB_GetTextLine(ii+10,m_str)=True Then y2=Val(m_str),ii=ii+10,pCard.LineTo x1,y1,0 (运行到线段的起点),If pCard.WaitDone=True Then Exit For,pCard.LineTo x2,y2,0 (运行到线段的终点),If pCard.WaitDone=True Then Exit For,End If,End If,Next,关于控制卡封装后的对象成员,1,、,mmScale,成员,功能:确定机床的定位精度,(,脉冲数,/,毫米,),2,、,set_axis_speed,成员,功能:设置指定轴的速度,调用控制卡中的,d5400_set_profile,函数实现,3,、,set_vect_speedd,成员,功能:设置指定直线,/,圆弧插补的速度,调用控制卡中的,d5400_set_vector_profile,函数实现,4,、,Move,成员,功能:让指定轴移动一相对位移,调用控制卡中的,d5400_t_pmove,函数实现,5,、,MoveTo,成员,功能:让指定轴移动到指定的位置,调用控制卡中的,d5400_t_pmove,函数实现,6,、,Line,成员,功能:让,X,、,Y,和,Z,轴作直线插补(相对运动),调用控制卡中的,d5400_t_line3,函数实现,7,、,Line,成员,功能:让,X,、,Y,和,Z,轴作直线插补(绝对运动),调用控制卡中的,d5400_t_line3,函数实现,8,、,WaitDone,成员,功能:等待运动停止,调用控制卡中的,d5400_check_done,函数实现,在对象入囗处加入d5400_board_init函数,实现对控制卡的自动初始化;在出囗处加入d5400_board_close,实现对释放对象时,自动关闭控制卡。例如:,Private Sub Class_Initialize(),If d5400_board_init 1 Then,MsgBox 没找到dmc5400运动控制卡,End If,End Sub,Private Sub Class_Terminate(),d5400_board_close,End Sub,注:这段代码是自动执行,当分配对象时,自动执行Class_Initialize,当释放对象时,自动执行Class_Terminate,以上是对控制卡一些基本的封装应用,掌握这些基本的封装技巧之后,就可以根据自己的需要,针对不同的需求进行封装,便可以实现更高难度的高水平的控制编程。,结束,
展开阅读全文