西门子PLC与力士乐L65在手轮控制中的应用
2018-04-23李树军梁为育涂伟鹏封璞佳梁泽荣吴军豪
高 炜,李树军,梁为育,涂伟鹏,封璞佳,梁泽荣,吴军豪
(1.西北工业大学机电学院,陕西 西安 710072;2.航空工业陕西飞机工业(集团)有限公司,陕西 汉中 723200)
0 引言
在工业生产过程中,电子手轮具有移动方便、抗干扰和带载能力强、人机交互良好等优点,应用广泛。一般情况下,电子手轮作为厂家提供的配套设备,已集成于控制系统中。此时,可通过基于计算机的操作平台或电子手轮控制电机的运动。但在某些非标自动化生产中,设备未集成电子手轮,操作人员需在现场实时监测这些运动部件的运动情况。此时,可在原有设备中集成一套以电子手轮为交互设备的实时控制装置。
针对这种情况,本文设计了一套基于力士乐L65与西门子PLC的手轮实时控制系统。经实际验证,该系统可应用于其他类似场合。
1 系统硬件设计
1.1 系统硬件结构
在实际工业生产中,采用多轴运动控制器来控制多个电机协同运动。 IndraControl L65作为力士乐多轴运动控制的代表,具有强大的多轴运动控制功能。鉴于电子手轮的信号线数量较多,而PLC具有输入/输出端口较多、传输速率高等优点,故使用PLC接收手轮的实时脉冲。PLC具有较好的抗干扰能力。但是因为手轮的电压与PLC的输入端口电压不匹配,所以需要通过转接卡把手轮的脉冲信号接入PLC。首先把电子手轮的实时脉冲通过转接卡接入到S7-200的输入端口,通过S7-200的通信模块EM277的Profibus-DP端口接到L65的Profibus-DP端口。L65利用内部编程系统Indraworks处理接收到的实时信号,并传输给相应的驱动器和力士乐电机。将接收到的数据通过EtherNET传输到交换机中,再把交换机与工控机相连,以实现整套基于力士乐L65与西门子S7-200的手轮实时控制电机运动方案。系统硬件原理图如图1所示。
图1 系统硬件原理图 Fig.1 Schematic diagram of system hardware
1.2 系统硬件组成
系统硬件主要包括电子手轮、转接卡、S7-200、L65、驱动器及电机等部分。
电子手轮的全称为手动脉冲发生器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器[1]。此处电子手轮调试使用通用6轴手轮,型号为ATT-PY100-LL-J-RP。手轮共有OFF档、X档、Y档、Z档、A档、B档五个档位,并有X1、X10、X100三种倍率。手轮中央有红色醒目急停按钮,用以紧急情况使用。手轮侧面配有黄色使能按键。只有在使能键按下并旋转手轮时,方能向S7-200输入口发出脉冲信号[2]。
转接卡用于将电子手轮的5 V电压转换为PLC的24 V电压输入,并把各个信号线对应接入PLC的输入端口。转接卡电路如图2所示。采用TLP521光电耦合器,使前端与负载完全隔离,减小电路干扰。电源模块采用HDW5-24S05A1型号。
图2 转接卡电路图 Fig.2 Circuit of transfer card
S7-200 CPU支持高速数字量输入和两路高速数字量输出。CPU224XP高速输入用作单相脉冲输入时,可以达到200 kHz;用作双向90°正交脉冲输入时,速度可以达到100 kHz,可满足电子手轮转动的实时脉冲计数[3]。基于工业现场对电子手轮实时性的要求,选用西门子PLC(型号S7-200 CPU-224XP)作为电子手轮脉冲输入端口。该PLC可使用6个高速计数器,可编程并具有复位输入。2个独立的输入端可同时作加、减计数,可连接两个相位差为90°的A/B相增量编码器。
EM 277经过串行I/O总线连接到S7-200 CPU。Profibus网络经过其DP通信端口,连接到EM 277 Profibus-DP模块。这个端口可运行于9 600 bit/s和12 Mbit/s之间的任何Profibus波特率。作为DP从站,EM 277模块接收从主站发来的多种I/O配置,向主站发送和接收不同数量的数据[4]。
L65作为高精度运动控制实时多轴控制系统,提供了一个功能齐全的开放平台。通过EtherCAT、Sercos、Profinet等现场总线,将来自不同厂商的产品接入到开放的控制系统。系统采用灵活的多线连接技术,具有功能参数设置简单、免维护且低功率损耗、结构紧凑灵巧等特点,有效减少了安装空间和成本。
在满足系统使用性能的基础上,考虑经济成本、系统精简及集成控制的开放性,选用Rexroth IndraDrive Cs伺服驱动器及IndraDynS-MSK同步伺服电机作为驱动运动部件的动力装置。伺服驱动器通过网线串联,形成闭合的Sercos环直接同步处理,大大提高了电机的响应速度。这种“多轴控制+伺服驱动器+伺服电机”的控制组合,采用其内部协议通信,通过IndraWorks软件编辑程序和现场调试,在精简系统的同时,减少了系统集成和现场调试的工作量。
2 系统软件设计
2.1 S7-200软件设计
电子手轮的输入脉冲通过转接卡输入到S7-200的输入端口。由于电子手轮的脉冲数随时间变化速率较快,故属于高速计数。高速计数是针对输入的高频率脉冲,用于累计计数触发事件。电子手轮可以捕捉到持续时间小于一个扫描周期的脉冲[5]。
CPU224XP支持6台高速计数器(HSC0至HSC5)。每台高速计数器使用一条“高速计数器定义”指令[6]。此处以两台手动脉冲发生器为例,使用HSC0和HSC2两个高速计数器。HSC0的高速计数器专用输入端口为I0.0、 I0.1、 I0.2。HSC2的高速计数器专用输入端口为I1.2、 I1.3、 I1.4、 I1.5[7]。
高数计数器HSC0和HSC2参数设置及部分PLC程序如下。
LD SM0.1
MOVB 16#FC,SMB37
MOVB 16#FC,SMB57
MOVD +0,SMD38
MOVD +0,SMD58
MOVD +1600000,SMD42
MOVD +1600000,SMD62
HDEF 0,9
HDEF 2,9
ENI
HSC 0
HSC 2
手轮顺时针转动,I0.1接通,T99定时器不工作。手轮停止转动,T99定时器延时0.7 s后,停止工作,用来监测手轮是否转动
LD I0.1
O M6.0
AN T99
= M6.0
AN I0.1
TON T99,+70
手轮停止转动时,每隔0.5 s检查与上一个0.5 s的脉冲数是否相等。若不相等,置位I0.1;若相等,则复位I0.1。
LD T99
LD I0.7
O I1.0
O I1.1
ALD
A SM0.5
LPS
AD<> VD900,VD1200
MOVD VD900,VD1200
AENO
S I0.1,1
LPP
AD= VD900,VD1200
MOVD VD900,VD1200
AENO
R I0.1,1
R M6.0,1
2.2 S7-200与L65通信设计
在Indraworks中,设置L65与S7-200的地址映射关系,并设置内存映射地址偏移量。此处设置偏移量为0,即I/O Offset in the V-memory的值为0,也可以根据需求,自行设置偏移量[8-9]。
在Indraworks中添加EM277通信模块的GSD文件。在Indraworks的Profibus_DP_Master模块中添加GSD文件,并找到EM277_Profibus_DP通信模块,再添加32个字的数字量输入输出模块。
由于ProfiBus模块的通信地址从IW2开始,故在内存地址偏移量为0的情况下,L65的输入IW2对应S7-200的VW64,IW4对应VW66,输出QW2对应S7-200的VW0,IW4对应VW2,以此类推。
2.3 L65软件设计
2.3.1 Indraworks简介
首先在Indraworks中创建工程项目,并通过配置IP连接到L65,再扫描添加网络中的驱动轴和面板I/O。通过网线或光纤形成闭合的Sercos环,并自动分配地址。Sercos III采用以太网传输数据的方式,L65控制为主站,伺服系统和可编程控制器I/O口等为从站。设置好循环周期,主站按周期向从站发送主站同步数据电文,所有从站同步接收,控制从站运行。主站给从站发送数据报文和数据控制指令,比如伺服轴位置、速度、增量等指令,从站全部接收,但是仅在指定位置找到自己所需的数据。伺服从站发送伺服数据电文给主站,其中包括电机状态应答信号、伺服轴实际位置、扭矩、转速、诊断及报警信号等。
L65采用标准的IEC 61131-3编程语言编辑和配置参数,具有符合开放性要求的PLCopen的功能库标准模块,并且支持用户自行开发功能块。L65将电机运动控制、状态反馈、参数设置等功能都封装成标准的Function Block,通过简单的调用和变量参数设置实现电机的运动控制。功能块的用户输入变量包括功能块启动变量Execute、用户位置指令Position、用户速度指令Velocity;输出变量包括运动过程是否完成Active、目标位置是否到达Done。L65绝对位置功能块如图3所示。
图3 L65绝对位置功能块 Fig.3 L65 absolute position function block
2.3.2 Indraworks驱动器配置
Indraworks驱动器配置如下。
①设置运动及编码形式。系统中所有电机采用绝对编码方式,即在系统断电后,电机的零点不丢失。实际生产中,采用绝对编码方式不丢失零点,保证关机暂停以后的任务得以继续进行。
②设置传动比及丝杠导程。根据伺服传动机构的传动比及导程进行配置,驱动器即可将接收的直线位置值准确地转化为电机的旋转位置,并将编码器旋转值转化成直线运动位置反馈。
③设置限位。在满足轴行程范围要求的基础上安装正、负限位开关,共用限位开关为零位开关。根据本系统中使用常开型限位开关,勾选限位开关类型N/O,激活限位开关功能。
④零点设置。在Reference travel direction选项中设置回零方向,Positive是从正向回零,Negative是从反向回零。根据限位开关安装位置及坐标系设置要求,设置负向回零。为节约空间,用限位开关同时作为回零开关,勾选Limit switch as zero switch。
2.3.3 Indraworks变量定义
首先在函数块的变量定义区定义所需变量并注释其含义,截取部分变量如下所示。
FUNCTION_BLOCK SMControl_New
VAR_INPUT
InputPulse:DWORD;
//输入脉冲
PowerState:BOOL;
//电机使能状态
SMEnable:BOOL;
//手脉使能按下
HMIEnable:BOOL;
//人机界面使能
ControlAxis:AXIS_REF;
//受控电机
END_VAR
VAR
mv:MC_MoveVelocity;
//速度模块建立
VelocityOut:REAL;
//电机运行最大速率
EnableRun:BOOL;
//速度模块使能信号
InputEnable:BOOL;
//手轮脉冲信号
MVActive:BOOL;
//速度模块完成信号
ms:MC_Stop;
//停止模块建立
InputPulse0:DINT;
//32位脉冲输入
InputPulse1:REAL;
//实数型脉冲输入
t1:TON;
//延时接通定时器
VelocityOut_D:REAL;
//电机设定运行速率
END_VAR
2.3.4 Indraworks程序设计
首先通过NE模块判断输入的脉冲数是否为0,若不为0,则InputEnable为True。然后判断SMEnable使能键是否按下、HMIEnable上位机是否使能,PowerState电机是否上电,InputEnable手轮是否转动。若以上全部为True,则延时0.1 s以消除抖动,并使能EnableRun为True。
由于不同档位的电机运行速率不同,根据S7-200中传送的数据已经将不同速率档位的脉冲数做了相应的处理。为防止操作人员人为地以超过额定速度转动手轮,设置了自动清零功能。X1档位在计数满100时自动清零,X10档位在计数满10 000时自动清零,X100档位在计数满1 000 000时自动清零,并可根据不同的脉冲数来确定不同的电机运行速率。
当使能EnableRun为True且手轮转动时,MC_MoveVelocity激活,并按照设定的参数控制电机的运行。当MC_MoveVelocity模块完成后,MVActive为True,激活MC_Stop使电机停止运动。
3 结束语
本文设计了一套基于力士乐L65与西门子PLC的手轮实时控制系统,可广泛应用于一般伺服电机与步进电机。该系统结构紧凑、模块化强、使用方便、精度高、效率快、安全性高,有效地解决了一般情况下工业生产中需集成电子手轮控制装置的问题,具有良好
的推广价值。
参考文献:
[1] 黄风. 手轮在PLC简易数控系统中的应用[J]. 金属加工(冷加工),2011(3):72-73.
[2] 王益红,陈志同. 基于PMAC的数控机床手轮功能的实现[J]. 机械工程师,2005(12):68-70.
[3] 崔坚.西门子S7可编程控制器:STEP7编程指南[M].北京:机械工业出版社,2007.
[4] 邓三鹏,刘钢,吴立国,等. 基于PLC的储油罐清理机器人液压
系统设计[J]. 液压与气动,2013(3):35-37.
[5] 陈进,施海涛,李桥. 基于PLC的船舶压载舱监控系统设计[J]. 自动化仪表,2017,38(3):30-32,36.
[6] 聂国伦,白生威. 基于PLC技术的矿井提升机位置与速度控制系统设计[J]. 煤矿机械,2011(4):157-159.
[7] 黄风. 手轮在三菱FXPLC定位控制系统中的应用[J]. 制造技术与机床,2011(3):167-168.
[8] 朱学兵. PLC在数控机床手轮控制中的应用[J]. 电气传动自动化,1999(3):50-52.
[9] 谭聪,金璐. PLC控制原理分析及其在工业中的应用[J]. 硅谷,2014(1):95-101.