基于VC的多轴运动控制器网络控制应用
摘 要:阐述了网络控制的原理和特点,分析了目前比较先进的基于VC分布式组件技术(DCOM技术)的网络控制应用方法,并以多轴运动控制器GT-400-SV为例,介绍其编程方法与应用。
关键词:网络控制;多轴运动控制器;DCOM
1引言
随着计算机技术以及网络技术的发展,尤其是Internet/Intranet的普及,人们对工业系统的过程控制提出了越来越高的要求,控制应当不仅仅局限于现场控制,它们应该与网络技术尤其是Internet/Intranet技术相结合,通过它们远程对实际控制系统进行监控。网络控制的应用非常广泛,如远程控制数控机床、遥作机器人。另外对于工作在有毒、有害、有危险的环境下的控制系统更具有实际意义。
2基于Internet的网络控制系统
网络控制,即网络化的控制,是指在某个区域内一些现场检测、控制及操作设备和通信线路的集合中,用以提供设备之间的数据传输,使该区域内不同地点的用户实现资源共享和协调操作。网络控制系统具有如下特点:
(1) 网络化结构。它支持如总路线型、星型、树型等拓扑结构,与分层控制系统的递阶结构相比,显得更加扁平与稳定。
(2) 智能化节点。带有CPU的智能化节点之间通过网络实现信息传输和功能协调,每个节点都是组成网络控制系统的1个细胞,且具有各自相对独立的功能。
(3) 更好、更完全地实现了ISO7层模型,大大提高网络的可靠性。网络化结构使原先由中央控制器实现的任务下放到智能化现场设备上执行,这使危险因素得到分散,从而提高了系统的可靠性和安全性。在网络控制系统中,各节点都是智能体,具有计算、分析、处理和通信的能力,能对其管辖范围内发生的事件做出反应并提供控制。
(4) 混合的通信媒介。可以使用双绞线、同轴电缆、光纤、无线电射频、红外线等等。
基于Internet/Intranet的分布式网络控制系统,就是将自动控制技术和Internet/Intranet技术相结合,使控制系统网络和Internet/Intranet网络互连,从而实现现场控制信息在Internet/Intranet上实时共享和在Internet/Intranet上对现场设备功能的在线编程。
3多轴运动控制器GT\|400\|SV
GT-400-SV是固高公司开发的高性能伺服运动控制器,它可以同步控制4个运动轴,实现复杂的多轴协调运动。其核心由ADSP2181数字信号处理器和FPGA组成,实现高性能的控制计算。它广泛应用于包括机器人、数控机床、装配线等领域。
GT-|400-SV运动控制器以IBM\|PC及其兼容机为主机,提供标准的ISA总线或PCI总线,方便用户配置系统硬件。该运动控制器提供C语言函数库,实现复杂的控制功能,用户能够将这些控制函数灵活地与自己控制系统所需的数据处理、界面显示、用户接口等部分集成在一起,建立符合特定应用要求的控制系统。
PC机通过主机通讯接口与GT-400-SV运动控制器交换信息。包括向运动控制器发出运动控制指令,并通过该接口获取运动控制器的当前状态和相关控制参数。运动控制器完成实时轨迹规划、位置闭环伺服控制、主机命令处理和控制器I/O管理。运动控制器通过编码器接口,获得运动位置反馈信息,通过4路模拟电压输出(或脉冲输出)接口,控制伺服电机实现主机要求的运动。
运动控制器还提供8路限位开关(每轴2路)输入,4路原点开关(每轴1路)输入,4路伺服电机驱动器报警信号(每轴1路)输入,4路伺服电机驱动器使能信号(每轴1路)输出,4路伺服电机驱动器复位信号(每轴1路)输出以及16路通用数字量输出接口、16路通用数字量输入接口。实现复杂灵活的运动控制。
4VC环境下的网络控制应用
基于VC的网络控制二维教学系统的硬件结构图,如图1所示。
远程控制端主机通过局域网或Internet控制与工作站连接的二维教学平台的动作。各工作站带有PCI总线接口的GT-400-SV多轴运动控制器,用以控制二维平台。运动控制软件包括2个部分:远程控制模块和工作站服务模块。
4.1远程控制与通讯
远程机的控制界面,如图2所示。它控制2台异地平台的运动,可分别独立控制各平台的画圆、椭圆、五角星等操作。工作站与控制机之间为Server/Client模式,工作站为服务器,控制机为客户。两者之间的通信基于VC的分布式组件(DCOM)技术,如图3所示。工作站上的1组运动程序形成1个组件。控制程序的相应操作通过基于分布式COM协议的网络调用该组件的接口,从而执行1组特定的运动程序。同时与各工作站相连的电机的运动位置信息,定期(如20ms)返回到控制主机,这样,在控制主机上可以实时监控各平台的运动情况。整个控制软件的模块流程,如图4所示。
4.2工作站运动控制程序
由于GT\|400\|SV提供完整的C语言静态库(GT400.LIB)和动态链接库(GT400.DLL)库文件,通过VC编写多轴运动控制器的运动程序较为方便。以下为部分GT\|400\|SV多轴运动控制器的设置和运动的代码。
4.2.1多轴运动控制器初始化(其中error()为自定义报错函数)
rtn=GT-Open();error(rtn);//打开控制卡
rtn=GT-Reset();error(rtn);//总复位
rtn=GT-SetSmplTm(162);error(rtn);//设置伺服时间为162μs
rtn=GT-EncSns(3);error(rtn);//设置编码方式
rtn=GT-LmtSns(0);error(rtn);//设置限位开关有效电平为高电平时触发
rtn=GT-SetIntrTm(1000);error(rtn);//设置控制器定时中断的时间常数
rtn=GT-Axis(1);error(rtn);//选定控制轴1为当前轴
rtn=GT-SetKp(10);error(rtn);//比例增益
rtn=GT-SetKi(2);error(rtn);//积分增益
rtn=GT-SetKd(60);error(rtn);//微分增益
rtn=GT-Update();error(rtn);//使以上参数设置有效
rtn=GT-PrflS();error(rtn);//S运动控制模式
rtn=GT-ClrSts();error(rtn);//清状态寄存器
rtn=GT-AxisOn();error(rtn);//控制轴1闭环
4.2.2部分运动代码(radius的值由界面输入)
#define COEF 10000
double cnt1[5]={c1,0,0,0,0};
double cnt2[5]={0,c2,0,0,0};
rtn=GT-MapAxis(1,cnt1);//从控制轴到坐标系的映射
rtn=GT-MapAxis(2,cnt2);
rtn=GT-StrtList();//开始缓冲区命令输入
rtn=GT-MvXY(radius*COEF,0,7,0.001);//以指定的速度和加速度运动到指定位置
rtn=GT-ArcXY(radius*COEF,radius*COEF,-360);//画椭圆
rtn=GT-LnXY(COEF,0);
rtn=GT-LnXY(0,0);//回原点
rtn=GT-EndList();//结束缓冲区命令输入
rtn=GT-StrtMtn();//开始缓冲区命令执行
5 结束语
基于VC下的网络控制系统接口,友好、操作简单,并且稳定性好、可靠性高。它具有极为广泛的应用领域,可应用于远程控制多自由度机器人,构建网络机床数控系统等。
文章版权归西部工控xbgk所有,未经许可不得转载。