李 群,林喜鉴,林 娟
(福建省计量科学研究院,福建 福州 350003)
基于VC的以太网型交流伺服运动控制系统的研究
李 群,林喜鉴,林 娟
(福建省计量科学研究院,福建 福州 350003)
文中简单介绍了以太网型的交流伺服运动控制系统的整体构架,以SMC6480G以太网型运动控制器开发为例,对以太网型运动控制器的交流伺服运动控制系统的硬件平台、软件系统的研究,详细介绍硬件平台的总体框架,并利用Visual C++编程实现PC对交流伺服运动控制系统的开发和控制。
VC++;以太网型运动控制器;交流伺服系统
1.1以太网型运动控制系统介绍
目前市场在用的运动控制器有PCI总线型和RS232总线型,它们在应用上都存在严重的缺点:①基于PCI总线的运动控制卡,要以插卡形式嵌入PC机的PCI插槽上,但由于笔记本电脑多不支持PCI接口,且易受周围环境的污染造成插槽易氧化;②基于RS232总线的运动控制卡,RS232串口易损坏、传输速率低、抗干扰差、传输距离有限,不能进行长距离的运动控制。
而以太网型运动控制器可使得PC与以太网型运动控制器都通过以太网接口(RJ45接口)实现点对点长距离运动控制,采用五类双绞线进行传输,距离可达到100米。
下面以可编程以太网运动控制器SMC6480G为硬件平台,对以太网型运动控制器的交流伺服运动控制系统的硬件平台、软件系统进行研究。
系统的硬件由上位机PC电脑、SMC6480G以太网运动控制器、L5-400交流伺服驱动器和ACM6004L2H-B交流伺服电机构成,设计出半闭环传动控制系统。如图1所示。
图1 系统硬件构成框图
PC电脑+SMC6480G独立式以太网运动控制器组成上位控制单元。PC主要任务是对运动控制系统进行管理,对各参数进行设置(包括软件和硬件参数)和提供友好的人机交互平台。PC和运动控制器之间通过以太网构成一个运动控制系统,利用VC++调用运动控制器各种函数来编程,最终实现由计算机通过以太网对运动控制器发送指令和采集其信息的目标[1]。
驱动部分是由伺服驱动器(L5-400)和伺服电机(ACM6004L2H-B)组成。驱动器接收控制器发出的指令对电机的运转进行控制,同时也接收电机反馈信号对其运转进行调整,这样便形成半闭环运动控制系统。
2.1SMC6480G以太网运动控制器
雷赛SMC6480G运动控制器的产品特点:
(1)网络接口,以太网10M/100M;
(2)4轴独立运动控制;
(3)每轴最大输出脉冲频率5MHz;
(4)两种脉冲输出类型:双脉冲或脉冲方向;
(5)SMC6480G DLL函数库适用于Windows 2000/xp/win7操作系统;
(6)可用VB/VC/C++/LabView等语言工具编程。
SMC6480G运动控制器可独立控制4个伺服电机,每路电机的控制信号有指令脉冲信号(PUL+、PUL-)、方向脉冲信号(DIR+、DIR-)。参照说明书,把指令和方向脉冲信号设置成差分输出方式[2]。SMC6480G与交流伺服驱动器的连接如图2所示。
图2 SMC6480G与L5-400驱动器的接线图
2.2L5交流伺服系统(L5-400伺服驱动器+ACM60042H-B伺服电机)
L5交流伺服系统选择位置控制模式对驱动器进行控制,信号输入选择差分输入电路,采用“脉冲+方向”的指令脉冲模式。
直线运动控制系统的脉冲指令工作流程如图3。
由运动平台技术参数可知,滚珠丝杆导程(螺距)L=10mm;为在校准中数据记录和处理方便用,设置脉冲当量为1µm/pulse,即给伺服电机输入一个指令脉冲,滑台移动1µm。那么伺服电机旋转一周需要输入的指令脉冲数为10mm/1µm=10000。
设置驱动器工作于脉冲位置指令模式,当驱动器的Pr.009、Pr.010参数都设置为1,即指令分倍频比为1,即运动控制卡发出n个指令脉冲给驱动器,驱动器也发出n个指令脉冲给伺服电机。由于伺服电机旋转一周需要输入的指令脉冲数为10000,故运动控制卡给伺服驱动器输入的脉冲数也为10000。
然后由ACM60042H-B伺服电机的技术参数可知,伺服编码器解析度为2500 pulse,可知伺服电机转一周编码器输出2500个检测脉冲。由于L5-400驱动器的编码器数字输入信号频率为4倍频,即伺服电机旋转一周,电机编码器输出2500个脉冲,驱动器的编码器输入端检测到10000个脉冲输入。
故伺服电机旋转一周时,运动控制卡输入给伺服驱动器的指令脉冲数与伺服驱动器编码器检测的脉冲数都为10000,故电子齿轮比为1。
根据上述参数值设置要求,对L5-400驱动器参数进行基本设定,其设定内容如下:
Pr0.01:参数设为0,为位置控制;
Pr0.02:参数设为2,为重视定位;
Pr0.03:参数设为11,调整伺服刚性;
Pr0.04:参数设为250,设定电机的负载惯量比;
Pr0.06:参数设为1,设置指令脉冲输入的旋转方向;
Pr0.07:参数设为1,设置成差分输入模式;
Pr0.09:参数设为1,对指令脉冲输入的分频、倍频处理的分子进行设置;
Pr0.10:参数设为1,对指令脉冲输入的分频、倍频处理的分母进行设置;
Pr0.11:参数设为2500,设定电机旋转一圈输出的脉冲数为10000。
3.1基于windows平台的应用软件结构
雷赛运动控制器的控制系统架构如图4所示。
运动控制可以描述为以下几个步骤:
(1)PC应用程序,通过参数配置,人机操作接口(包括显示屏和键盘)传递给设备的控制软件;
(2)设备的控制软件将操作信息转化为运动参数并根据这些参数调用DLL库中运动函数;
(3)运动函数发出控制指令给控制器;
(4)雷泰运动控制器再根据控制指令发出相应的驱动信号(如脉冲、方向信号)给驱动器及电机、读取编码器数据、读写通用输入输出口。
在开发应用软件的过程中所需要做的就是针对上面所说的步骤1、2进行编程。雷泰公司配套提供了VC++ 6.0下运动控制函数动态链接库。SMC6480G运动控制函数库是一个运动控制API函数库,通过动态链接库可以实现对自己的单轴电机进行精确、高速、协调的控制[3]。
3.2Visual C++ 6.0环境下的软件开发
SMC6480G控制器具有良好的开放性,支持C/C++、BASIC等语言的开发应用程序。文中是在Windows xp系统下利用Visual C++ 6.0的MFC以面向对象方式进行编程。控制器在Windows下开发的底层动态库包括头文件smc6480.h,smc6x.lib和smc6x.dll。在VC++环境中,将运动函数链接到工程项目中,将smc6x.lib加入到工程。在调用运动函数的文件头部代码中加入#include“smc6480.h”语句。每个函数的具体功能,可以打开头文件smc6480.h了解每个函数的具体定义。在Visual C++ 6.0环境下对运功控制系统的软件开发典型流程如图5所示。
图5 运动控制系统的软件开发典型流程
在Visual C++ 6.0开发环境下设计了软件界面,通过以太网链接,对系统的各种参数进行了设置。成功实现了通过以太网口完成PC对交流运动控制系统的开发。运动控制系统的控制面板如图6所示。
图6 运动控制系统的控制面板图
文中以SMC6480G以太网型运动控制器开发为例,对以太网型运动控制器的交流伺服运动控制系统的硬件平台、软件系统的研究,详细介绍了硬件平台的总体框架,利用Visual C++编程介绍了二次开发的全过程,并实现PC对交流伺服运动控制系统的开发和控制。
[1]曹预备,周亚军.主从式交流伺服运动控制系统的数据通信[J].控制与检测,2009, (09):56-63.
[2]聂国强,左力.SMC6480运动控制器在锂电池焊接上的应用[J].伺服控制,2010, (06):91-93.
[3]徐峰,林喜鉴.基于VC++的非金属超声波检测仪校准装置软件系统设计[J].计量与测试技术,2012,39(11):6-7.
The Research of an Ethernet AC Servo Control Systerm Fulfilled by VC++
LI Qun, LIN Xi-Jian, LIN Juan
(Fujian Metrology Institute, Fuzhou 350003, Fujian, China)
The structure of AC(Alternating current) servo control systerm based on ethernet is breifly introduced in paper.The motion CU(Controll Unit) used in paper is SMC6480G. And we study hardware and software of the servo control systerm based on this CU.In paper, we also expound on the structure of the hardware based on SMC6480G and fulfill PC control and development to the AC servo control systerm by VC++( Visual C++).
VC++; Motion CU based on ethernet; AC servo systerm
2016-01-02
李 群,男,福建省计量科学研究院力学室,副主任,工程师,硕士
林喜鉴,男,福建省计量科学研究院力学室,检定员,工程师
林 娟,女,福建省计量科学研究院力学室,检定员,工程师,硕士