您好,欢迎访问一九零五行业门户网

丹佛斯运动控制器在远程伺服控制中的应用

引言:伺服位置控制是工业自动化领域经常遇到的控制需求,过去经典的解决方案是用运动控制模块发送脉冲信号控制步进或伺服驱动系统。但是随着生产和技术发展,伺服驱动功率越来越大,控制方法也逐步从脉冲控制变为高速通讯控制。丹佛斯运动控制器能与驱动器和各种现场总线通讯卡紧密结合,为用户提供了可编程开放式的通讯控制接口,是目前市场上的通用远程伺服控制工作站之一。
一、epsilonswb发泡模机运动控制要求:
图为epsilonswb发泡模机的基本机械结构图。
该机有上模翻转、下模翻转、整体翻转3个角度位置控制和上模升降一个垂直位置控制,定位精度要求都很高。其中上模满载时重达半吨。
电驱动必须实现并满足如下要求:
1.发泡模机在机械上为对称结构,上模升降、下模翻转和整体翻转这三个基本动作都是由两边两台电机同时驱动的,电机和减速机构型号规格*相同。这样如何使两台刚性连接的电机输出转速输出转矩保持一致,是电气驱动需要解决的难题之一。
如果使用同步伺服电机,这将是一个非常困难的控制要求。可行的办法为令其中一台同步伺服电机作主机,工作于速度(位置)模式;另一台同步伺服电机作辅机,工作于转矩模式,其转矩给定值为主伺服电机的输出转矩值。
但是如果使用异步伺服电机,用一台伺服驱动器同时驱动两台电机,利用异步电机的固有特性,可以方便地实现转速同步,并且转矩输出一致。右图为此种运行模式时两台电机的输出转矩,可见输出转矩的不平衡是由于电机的转矩-转差特性不同造成的,这个问题可以用选择相同厂家相同型号电机的办法解决,而且是选额定转差比较大的异步电机。
图二、输出转矩示意图
丹佛斯fc302驱动器能够同时带两台异步伺服电机,作电机自适应时只要将电机功率、电机电流设为2台异步伺服电机的总合就可以了。
2.机械抱闸控制
上模非常重,起动时如果驱动器和机械抱闸配合不好,很容易下溜或上冲。
图三、机械抱闸控制时序图
丹佛斯fc302驱动器内置起重设备的机械抱闸控制输出,上图为其动作的时序图,电机起动之初是工作于转矩输出方式的,在机械抱闸逐步松开的过程中,电机控制模式也平滑地从转矩控制模式转换为转速控制模式。在过渡期间,还可以提升转速控制的pid,有助于进一步提高驱动器的负载响应能力。
3.下模翻转和整体翻转是通过曲柄机构实现的,因此实际机械角度与电机角位移是非线性关系
图四、电机角位移-机械翻转角度关系图
这要靠运动控制器内部运算或用查表插值运算的办法解决。
二、运动控制的高速总线通讯接口程序编制和定义:
现场总线通讯控制在主站和从站之间传递预定字长的过程数据,丹佛斯运动控制器在现场总线网络中作为远程伺服控制工作站运行,控制命令的执行和实际位置、状态的反馈全靠过程数据交互实现。为了方便与其他主机的衔接,在参考了西门子fm系列运动控制模块的控制办法,再结合现场总线的控制特点,定义了如下过程数据:
表一:过程数据pcd定义
  pcd1
pcd2
pcd3
pcd4
写入
控制字
速度给定
位置给定
转矩给定
读出
状态字
当前实际速度
当前实际位置
当前实际转矩
其中控制字定义如下:
表二:控制字定义

位 = 0
位 = 1
0
自由运行
伺服锁定
1
正转
反转
2
点动
3
转速控制模式
4
转矩控制模式
5
相对定位控制模式
6
定位控制模式
7
回零位
8
故障复位
9
动作完成标志清除
10-15
保留
状态字定义如下:
表三:状态字定义

位 = 0
位 = 1
0
无正转限位信号
正转限位信号动作
1
无反转限位信号
反转限位信号动作
2
机械制动抱紧
机械制动释放
3
运动过程中
动作完成
4
驱动系统正常
驱动系统报警
5
运动控制器控制就绪
6
回零位完成
7-15
保留
三.丹佛斯运动控制器简介:
丹佛斯运动控制器是与丹佛斯的fc300系列驱动器紧密结合的,其接口如图所示:
x55为编码器2输入接口,缺省用于连接从电机编码器;
x56为编码器1输入接口,缺省用于连接主电机编码器;
x57为10数字量输入接口;
x58为24vdc电源;
x59为8数字量输出接口。
丹佛斯运动控制器的编程方式
丹佛斯运动控制器使用丹佛斯公司开发的aposs运动控制语言,其编程风格模仿c语言,并提供多种便利指令,其界面如下图所示:
丹佛斯运动控制器能提供如下基本功能:
1.输入输出逻辑控制功能;
2.同步控制功能,电子凸轮;
3.定位控制功能;
4.中断功能,如时间中断,i/o中断等;
5.基本数学、逻辑运算功能;
……
丹佛斯运动控制器支持的高速通讯协议:
profibus、canopen、devicenet、interbus、lonworks、工业以太网
……
丹佛斯运动控制器程序例(部分):
//homemode1
if(step==16)then
homevel=gethome_vel
if(home_done==0)then
servo_on=1
if(svon_dlyt.2==1)then
if(homevel>0andls_fwd==0)or(homevel<0andls_rev==0)then
if(home_dog==1)then
cstop//cvel0
//cstart
step=17
else
acc50
cvelhomevel
cstart
endif
else
cstop//cvel0
//cstart
if(home_dog==1)then
step=17
else
step=18
endif
endif
else
cstop//cvel0
//cstart
endif
else
cstop//cvel0
//cstart
其它类似信息

推荐信息