当前位置:首页 > 工业用地 >运动控制卡接口(运动控制卡怎么接线)

运动控制卡接口(运动控制卡怎么接线)

今天正动科技给大家分享《EtherCAT运动控制卡的硬件接线及C#的单轴运动控制》。在正式学习之前,我们先来看看正动科技的运动控制卡ECI2618和ECI2828。这两款产品分别是6轴和8轴运动控制卡。

ECI2618支持6轴脉冲输入和编码器反馈,板载24点输入、16点输出、2AD、2DA,支持手轮接口,特定输出端口支持高速PWM控制。

运动控制卡接口(运动控制卡怎么接线)

ECI2828支持8轴总线输入和编码器反馈,板载24个输入点,16个输出点,2个AD,2个DA,支持手轮接口,特定输出端口支持高速PWM控制。

ECI2618和ECI2828均使用同一套API函数,支持C、C++、C#、LabVIEW、Python、Delphi等开发语言,支持VC6.0、VB6.0、Qt、Net等平台,并支持Windows、Linux、WinCE、iMac等操作系统。

接下来,我们就进入正题吧。本节主要讲ECI2820 EtherCAT运动控制卡的硬件接线以及如何使用C#进行单轴运动控制。

1、ECI2828运动控制卡硬件介绍

ECI2828系列运动控制卡支持最多16轴直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随、虚拟轴、机械手指令等;采用优化的网络通讯协议,可实现实时运动控制。

ECI2828系列运动控制卡支持以太网。 232通讯接口与计算机连接,接收计算机指令运行。可通过EtherCAT总线、CAN总线连接各种扩展模块,扩展输入输出点数或运动轴数量。

ECI2828系列运动控制卡的应用程序可以使用VC、VB、VS、C++、C#等软件进行开发。程序运行时需要动态库zmotion.dll。调试时,可同时连接ZDevelop软件与控制器,方便调试和观察。

2.使用C#语言进行运动控制开发

1、新建MFC工程,添加函数库

(1)在VS2015菜单“文件”“新建”“项目”中,启动创建项目向导。

(2) 选择开发语言为“Visual C#”以及.NET Framework 4 和Windows Forms 应用程序。

(3)在厂家提供的光盘资料中找到C#函数库。路径如下(以64位库为例):

A、输入厂家提供的光盘信息,找到“8.PC Function”文件夹,点击进入。

B. 选择“函数库2.1”文件夹。

C. 选择“Windows 平台”文件夹。

D、根据需要选择对应的函数库。在这里,选择64 位库。

E. 解压C#压缩包,其中包含C#对应的函数库。

F、函数库具体路径如下。

(4) 将厂商提供的C#库文件及相关文件复制到新工程中。

A. 将zmcaux.cs 文件复制到新创建的项目中。

B. 将zaux.dll 和zmotion.dll 文件放入bin\debug 文件夹中。

(5)用vs打开新建的项目文件,在右侧的Solution Explorer中单击Show All,然后右键单击zmcaux.cs文件,单击Inclusion in Project。

(6)双击Form1.cs中的Form1,会出现代码编辑界面,在文件开头写入使用cszmcaux,并声明控制器句柄g_handle。

至此,新项目就完成了,可以进行C#项目开发了。

2.查看PC功能手册

A. PC 功能手册也在CD-ROM 信息中。具体路径如下:“光盘资料\8.PC函数\函数库2.1\ZMotion函数库编程手册V2.1.pdf”。

B、上位机编程,一般是网口连接控制器和工控机。网口链接函数接口为ZAux_OpenEth();如果链接成功,该接口将返回一个链接句柄。通过操作该连杆手柄即可实现对控制器的控制。

ZAux_OpenEth()接口说明:

项目申请截图:

C、使用单轴运动相关指令操作链接手柄“g_handle”来控制控制器的单轴运动。单轴运动相关指令如下。

3.C#进行单轴运动开发

(1)单轴运动控制人机交互界面如下。

(2)简单的程序流程图。

(3) 在Form1的构造函数中调用接口ZAux_OpenEth(),系统初始化时自动链接控制器。

公共表格1()

{

初始化组件();

//链接控制器

zmcaux.ZAux_OpenEth('192.168.0.11', out g_handle);

if (g_handle !=(IntPtr)0)

{

MessageBox.Show('控制器链接成功!', '提示');

定时器1.Enabled=true;

}

别的

{

MessageBox.Show('控制器连接失败,请检查IP地址!', '警告');

}

}

(4)通过定时器更新控制器轴状态:当前坐标、当前速度等。

//定时器

私有无效timer1_Tick(对象发送者,EventArgs e)

{

int 运行状态=0;

浮点数=0;

浮点速度=0;

zmcaux.ZAux_Direct_GetIfIdle(g_handle, nAxis, ref runstate);

zmcaux.ZAux_Direct_GetDpos(g_handle, nAxis, ref curpos);

zmcaux.ZAux_Direct_GetVpSpeed(g_handle, nAxis, ref curspeed);

label_runstate.Text='运动状态:' + Convert.ToString(runstate==0 ? '运行' : '停止');

label_curpos.Text='当前轴坐标:' + curpos;

label_cursp.Text='当前轴速度:' + curspeed;

}

(5) 通过启动按钮的事件处理函数来设置轴参数并开始运动。

//开始移动

私有无效Run_Click(对象发送者,EventArgs e)

{

if (g_handle==(IntPtr)0)

{

MessageBox.Show('未链接到控制器!', '提示');

}

别的

{

//触发示波器记录波形

zmcaux.ZAux_Trigger(g_handle);

//设置轴参数

zmcaux.ZAux_Direct_SetAtype(g_handle, nAxis, 1);

zmcaux.ZAux_Direct_SetUnits(g_handle, nAxis, Convert.ToSingle(TextBox_units.Text));

zmcaux.ZAux_Direct_SetLspeed(g_handle, nAxis, Convert.ToSingle(TextBox_lspeed.Text));

zmcaux.ZAux_Direct_SetSpeed(g_handle, nAxis, Convert.ToSingle(TextBox_speed.Text));

zmcaux.ZAux_Direct_SetAccel(g_handle, nAxis, Convert.ToSingle(TextBox_accel.Text));

zmcaux.ZAux_Direct_SetDecel(g_handle, nAxis, Convert.ToSingle(TextBox_decel.Text));

zmcaux.ZAux_Direct_SetSramp(g_handle, nAxis, Convert.ToSingle(TextBox_sramp.Text));

//判断是连续运动还是点动运动

if (radioButton5.Checked)

{

zmcaux.ZAux_Direct_Single_Vmove(g_handle, nAxis, dir);

}

别的

{

zmcaux.ZAux_Direct_Single_Move(g_handle, nAxis, dir * Convert.ToSingle(TextBox_step.Text));

}

}

}

(6) 通过停止按钮的事件处理函数停止插补运动。

//停止运动

私人无效Stop_Click(对象发送者,EventArgs e)

{

if (g_handle==(IntPtr)0)

{

MessageBox.Show('未链接到控制器!', '提示');

}

别的

{

zmcaux.ZAux_Direct_Single_Cancel(g_handle, nAxis, 2);

}

}

4、调试与监控

编译并运行例程,连接ZDevelop软件进行调试,监控运动控制的轴参数和运动状况。

(1)连接ZDevelop软件,点击“查看”“示波器”,打开示波器监控轴运动。

(2)运行上位机软件进行调试和监控。

这次分享的是Positive Motion Technology EtherCAT运动控制卡的硬件接线以及C#的单轴运动控制。

更多精彩内容请关注“正动助手”公众号。如需相关开发环境和例程代码,请咨询正动技术销售工程师:400-089-8936。

本文由正动科技原创。欢迎大家转载,共同学习,共同提高中国智能制造水平。文章版权归郑运动科技所有。如有转载,请注明文章出处。

最新资讯

推荐资讯