基于研华运动控制卡的十字滑台系统的研制
2018-01-15栾伟峰
摘要:十字滑台作为运动的常用部件在物流、机械等行业中使用广泛,其运动的控制核心可以是单片机、PLC、工控板卡等。
本文采用PCI总线结构的运动控制板卡作为控制核心,实现对十字滑台的运动控制。本文详细介绍十字滑台系统的硬件结构和软件编程,系统硬件包括工控机运动控制板卡的选择、驱动器的连接、外部信号的控制等。以及采用C#软件编写的windows窗口界面应用程序。整个系统操作方便、功能完备、控制性能好。
关键词:工控机;十字滑台;C#语言;实时控制
中图分类号:TG43
引言:
在工业自动化领域,有三种主要的控制方式,即:PLC控制、数控系统控制、PC-Based控制。近几年随着中国制造业结构性调整,PLC控制和数控系统控制呈现萎缩低迷态势,然而PC-Based运动控制却充满活力,发展速度令人瞩目。
目前市场上大多数的PC-based运动控制产品较PLC而言可以实现更为复杂的运动控制;同时,应用者可以利用PC-based厂商提供的底层函数库进行灵活的二次开发和编程。在编程语言上,除传统的PLC语言外,PC-based运动控制产品还为开发者提供C#、C++、Basic等丰富的电脑语言进行编程。
十字运动平台是自动化设备常用的一种运动装置,广泛应用到各个领域,如机械手臂、切割机、光刻机、传送带等,以工控机为核心的十字运动平台,因其良好的可操作性和强大功能,被广泛采用。
研华PCI-1245L 是4 轴的SoftMotion PCI 总线控制器卡,能够实现运动轨迹和时间控制, 程序员无需大规模修改应用码即可集成任何研华SoftMotion 运动控制器。该架构能够帮助用户轻松维护和升级应用。
本文介绍采用研华工控机及相应运动控制卡,匹配安川驱动器,实现对十字平台的运动控制,软件采用C#语言编制,应用程序具有方便的使用界面,能实现单轴、双轴等直线、曲线运动。
1十字滑台的硬件组成
该测试系统分为硬件系统和软件系统。硬件系统以研华工控主机为控制核心,采用研华PCI-1245运动控制板卡、安川驱动器和电机实现对滑台的运动控制。软件采用C#编程,操作美观、方便、并具有开放性。系统硬件框图如图1。
1.1 工控机板卡的选择
系统的核心采用研华运动控制卡PCI-1245L。PCI-1245L 是4 轴的SofMotion PCI 总线控制器卡,板卡配有高性能FPGA,其中包括SoftMotion 算法,能够实现运动轨迹和时间控制,以满足精确运动中的同步应用需求。
1.2伺服驱动器的连接
选用PCI-1245L板卡中的X轴和Y轴,X和Y两轴和驱动器的连接方式是相同的,如图2,图3。板卡的输出脉冲采用差分方式连接,脉冲输出方式采用cw/ccw模式,行程限位开关和原点都采用光耦隔离的方式接入板卡,行程限位开关用于保护系统。 该输入信号通过光耦合器和RC 过滤器连接。 采用限位开关时,外部电源VEX DC 24 V 将成为光耦合器的电压源。 因此,将启用线程功能。电路图如图4。编码器反馈信号到达时,将ECA+/ECA-连接至编码器输出的相位A。这是一个差分对。同样,也适用于ECB+/- 和ECZ+/-。PCI-1245L 的默认设置为正交输入(4xAB 相位)。在上述电路图中,PCI-1245L 采用高速光耦合器用于隔离。源的编码器输出可为差分模式或开集模式。可接受的最大4xAB 相位反馈频率约为4 MHz。
2 软件设计
研华运动设备采用“通用运动架构”为软件架构。该架构包括三层:设备驱动层、整合层和应用层。在应用层选用的二次开发编程语言有C++、C、C#、VB、Labview等多种方式。用户需了解通用运动驱动、根据编程语言调用对应的API接口程序,实现应用程序的编写。研华通用运动(ACM)架构定义了三种类型的操作对象:设备、轴和群组。每个类型都有自己的方法、属性和状态。
工控机的软件要求简洁,方便,能直接控制硬件。C#语言简洁,保留了C++的强大功能,具有快速开发的自由特性,并且.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。因此系统采用C#语言来编写測试程序。
该系统软件是采用VS2010作为开发工具,在Windows7操作系统下的窗体应用程序。测试程序模块化编程,包括回原点、点对点、线性位移、调速、位移等8个模块,每个模块即可以独立运行又可以综合运行。其中点对点程序流程图如下:
using System;
。。。。。。
using Advantech.Motion;//Common Motion API
using System.Runtime.InteropServices; //For Marshal
namespace PCL1245L_DOMO
{
public partial class Frm_ptp : Form
{
public Frm_ptp()
{
InitializeComponent();
}
。。。。。。
private void BtnOpenBoard_Click_1(object sender, EventArgs e)
{
uint Result;
uint i = 0;
uint[] slaveDevs = new uint[16];
uint AxesPerDev = new uint();
uint AxisNumber;
uint buffLen = 0;
Result = Motion.mAcm_DevOpen(DeviceNum, ref m_DeviceHandle);
if (Result != (uint)ErrorCode.SUCCESS)
{
MessageBox.Show("Can Not Open Device", "PTP", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
buffLen = 4;
Result = Motion.mAcm_GetProperty(m_DeviceHandle, (uint)PropertyID.FT_DevAxesCount, ref AxesPerDev, ref buffLen);
if (Result != (uint)ErrorCode.SUCCESS)
{
MessageBox.Show("Get Property Error", "PTP", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
AxisNumber = AxesPerDev;
buffLen = 64;
Result = Motion.mAcm_GetProperty(m_DeviceHandle, (uint)PropertyID.CFG_DevSlaveDevs, slaveDevs, ref buffLen);
if (Result == (uint)ErrorCode.SUCCESS)
{
i = 0;
while (slaveDevs[i] != 0)
{
AxisNumber += AxesPerDev;
i++;
}
}
。。。。。。
}
private void BtnMove_Click_1(object sender, EventArgs e)
{
UInt32 Result;
if (m_bInit)
{
if (radioButtonRel.Checked)
{
Result=Motion.mAcm_AxMoveRel(m_Axishand[CmbAxes.SelectedIndex], Convert.ToDouble(textBoxPos.Text));
}
else
{
Result = Motion.mAcm_AxMoveAbs(m_Axishand[CmbAxes.SelectedIndex], Convert.ToDouble(textBoxPos.Text));
}
if (Result != (uint)ErrorCode.SUCCESS)
{
MessageBox.Show("PTP Move Failed With Error Code[0x" + Convert.ToString(Result, 16) + "]", "PTP", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
return;
}
}
}
4結论
该系统属于工控机测控系统,具有实时运动功能。硬件上采用工控机结合运动控制板卡,实现十字滑台的运动控制,系统集成度高。由C#语言编辑的应用程序功能齐全,操作方便。整个设备可以应用在数控床、物流传动、现代生产线等。
参考文献:
[1]李江全.计算机测控系统设计与编程实现.[M]电子工业出版社,2008
[2]PCI1245用户手册[Z].研华公司.2011
[4]Common Motion用户手册 [Z].研华公司.2011
[5]Anders Hejlsberg等.译者:陈宝国.C#程序设计语言[M]北京:机械工业出版社,2011 References
[1] Li Jiang-quan. Computer measurement and control system design and programming.[M] Electronic industry press,2008
[2] PCI-1245L_User manual_(CH) Advantech Inc. 2011
[3] Common Motion _User manual_(CH) Advantech Inc. 2011
[4] Anders Hejlsberg C# Programming Language .[M]Beijing:Mechanical industry press,2011
作者简介:栾伟峰 女 出生于1973年11月 副教授/高级工程师
1994年~2003年 在苏州半导体总厂有限公司工作 从事自动控制设备的改造和设计。
2003~今 在苏州工业园区职业技术学院 电气自动化技术专业主任 研究方向为自动化控制技术