欢迎来到西门子PLC! 登录 | 注册

西门子S7-200 PLC在伺服电机位置控制中的应用

发布日期:2022-01-20

引言
  随着自动化水平的不断提高,越来越多的工业控制场合需要精确的位置控制。因此,如何更方便、更准确地实现位置控制是工业控制领域(domain)内的一个重要问题。位置控制的精确性主要取决于伺服驱动器和运动控制器的精度。高端的运动控制模块可以对伺服系统进行非常复杂的运动控制。但在有些需要位置控制的场合,其对位置精度的要求比较高,但运动的复杂程度不是很高,这就没有必要选择那些昂贵的高端运动控制系统。
  S7-200系列PLC是一种体积(volume)小、编程简单、控制方便的可编程控制器,它提供了多种位置控制方式可供用户选择,因此,如何利用该系列PLC实现对伺服电机运动位置较为精准的控制是本文的研究重点。

  1. 基本控制系统
  伺服系统分为液压伺服系统、电气-液压伺服系统以及电气伺服系统。本文主要讨论了电气伺服系统中的交流伺服系统,其基本组成为交流伺服电机、编码器和伺服驱动器。交流伺服系统的工作原理是伺服驱动器发送运动命令,驱动伺服电机运动,并接收来自编码器的反馈信号,然后重新计算伺服电机运动目标位置,从而达到精确控制伺服电机运动。
  本伺服系统中选用公司生产的GSX50-0601型伺服直线电动缸。该电动缸由普通伺服电机和一个行星滚珠丝杠组成(composition),用来实现将旋转运动转变为直线运动。此外,选用公司生产的TM型伺服驱动器。它可以利用RS.232串口通信方式和外部脉冲(mài chōng)方式实现位置控制。
  一般来说,一个伺服系统运转需要配置一个上位机,所以本系统采用西门子S7-200 PLC作为上位机控制器。通过高速脉冲输(shū)出、EM253位置控制模块、自由口通信三种方式控制伺服马达运动。

  2. 高速脉冲输出模式
  西门子CPU224XP配置两个内置脉冲发生器,它有脉冲串输出PTO和脉冲宽度调制输出两种脉冲发生模式可供选择。这两个脉冲发生器的最大脉冲输出频率为100 kHz。在脉冲串输出方式中,PLC可生成一个50%占空比脉冲串,用于步进电机或伺服电机的速度和位置的控制。
2.1 硬件构成
  图1为高速脉冲输出方式的位置控制原理图。西门子PLC代理商可编程逻辑控制器实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同。电源用于将交流电转换成PLC内部所需的直流电目前大部分PLC采用开关式稳压电源供电。控制过程中,将伺服驱动器工作定义在脉冲+方向模式(pattern)下,Q0.0发送脉冲信号,控制电机的转速和目标位置;Qo,发送方向信号,控制电机的运动方向。伺服电动缸上带有左限位开关LIM
  一、右限位开关LIM+以及参考点位置开关REF。三个限位信号分别连接到CPU224XP的I0.0~I0.2三个端子上,可通过软件编程,实现限位和找寻参考点。
图1 位置控制原理图
2.2 程序设计
  高速脉冲串输出PTO可以通过(tōng guò)Step 7 Micro/WIN的位置控制向导进行组态,也可通过软件编程实现控制。PTO输出方式没有专门的位置控制指令,只有一条脉冲串输出指令,而且在脉冲发送过程中不能停止,也不能修改参数。为解决以上问题,可以设置脉冲计数值等于10或更小,并能使脉冲发送指令PLS处于激活状态。这样,就可以在任一脉冲串发送完之后修改脉冲周期。
  图2为高速脉冲输出方式方法位置控制(control)流程图。控制思路为:通过PTO模式输出,可以控制脉冲的周期和个数;通过启用高速计数器HSC,对输出脉冲进行实时计数和定位控制,以控制伺服电机的运动过程。
图2 位置控制流程图

  3. EM253位置控制模块
  EM253位置控制模块是西门子S7-200的特殊功能(function)位置控制模块,它能够产生脉冲(mài chōng)串用于步进电机与伺服电机的速度和位置的开环控制。
3.1 硬件构成
  如图3所示为EM253位置控制原理图,定义伺服驱动器工作在脉冲+方向模式下。P0口发送脉冲,P1口发送方向,DIS端硬件使能放大器,并同时清除放大器错误。LIM-、LIM+、REF分别为电机左限位、右限位以及参考点。
图3 EM253位置控制原理图
3.2 程序设计
  EM253位置控制模块可以通过Step 7-Micro/WIN进行向导配置,配置完成后系统将自动生成子程序,编程简单、可轻松实现手动、自动、轨迹运行模式。由于EM253属于开环控制,不能很好地反馈电机实际运动情况。因此,利用伺服驱动器本身的差分输出信号,通过伺服驱动器软件设置,反馈给PLC,实现闭环位置控制。但由于直线伺服电动缸与PLE可允许发送接收信号存在一定差别,因此,需要对输入到PLC的信号进行电平的转化以及降低伺服驱动器发送的反馈脉冲频率。PLC对输入脉冲进行累加,从而得到电机的实际运转位置与运转速度,其脉冲计数程序如下。

  ①计数器初始化程序
LD
  
    SMO. 1//首次扫描时
MOVB
    16#FC, SMB47
  //SMB47 =16#F4,SMB47为高速计数器1的控制字节
HDEF
   1,9
  
    //将HSC1配置为正交模式
MOVD
   0, SMD48
    //设置HSCI的新初始值为0
MOVD
   20000,SMD52
  
  
  
  
  
  
    //设置HSCI的新预设值为20 000
HSC
    I//激活高速计数器I

  ②脉冲计数程序
LD
  
   SMO. 0
MOVD
    HC1,VD600
  
  
    //将高速计数器1所记数值存储在VD600中
DTR
  
   VD600, VD610
  
  
    // VD601〕中的整数转化为实数,存人VD6100
/R
  
    SOOO,VD610
  
  
  
  
  
  
  
    // VD610除以5000存入VD610 ,
  
  
  
  
    5001〕为电机旋转一周编码器发送脉冲数
*R
  
    2.54, VD610
  
  
  
  
  
  
  
    //VD610乘以2.54存人VD610 ,
  
  
  
  
  
  
    2.54为电机旋转一周移动的距离
4  RS-232串口通信方式
4.1硬件构成
  西门子CPU22
  当S7-200系列PLC工作在自由口通信模式下时,一般通过CPU模块的集成接口进行通信。CPU集成接口采用了PPI硬件规范,其接口为RS-485串口,因此,当S7-200系列PLC的CPU与带有RS-232标准接口的计算机或伺服驱动器连接时,需要配套选用S7-200 PLC的PC/PPI转换电缆或一个RS-232/RS-485转换器。
4.2  PLC与伺服系统通信
4.2.1 报文构成
  S-200 PLC在无协议通信方式工作时,不需要任何通信协议,通信参数需要根据与其进行通信的伺服驱动(Driver)器的通信格式进行设定。本伺服系统选用的Xe-nus伺服驱动器可通过RS-232与PLC利用ASCII码进行通信,其ASCII码消息命令格式如下:
  <命令代码><命令具体参数>
  其中:<命令代码>为一个单字母代码;<命令具体参数>表示电机所要执行的任务;为一个回车返回字符,表示命令结束。如:s r0x2A 21表示设置伺服控制器工作在可编程控制模式。
4.2.2 程序设计
  程序设计时,将伺服驱动(Driver)器工作定义在可编程位置模式。该模式支持实时更改伺服电机的运动速度、位置,通过RS-232接收来自PLC的ASCII码命令,执行运动。部分程序如下:

  ①初始化程序
LD
  
    SMO. 1
  
  
  
  
  
  
  
    //首次扫描
MOVB
    9, SMB30
  
  
  
   //设置自由端口0
  
  
  
  
    通信方式SMB30=9、8位数据位、9600、PPI
MOVB
    188, SMB87
  
    //设置自由端口。接收信息控制5MB87 =188
MOVB
    13,SMB89
  
  
   //设置自由端口0
  
  
  
  
  
    结束字符SMB89=13,即结束字符=
MOVW  0, SMW90
  
  
  
    //设置自由端口0
  
  
  
  
  
   空闲超时SMB90=0,信息接收始终处于有效
MOVW200, SMW92
  
  
  
  
  
   //设置自由(freedom)端口0信息超时SMB92 =200 ms
MOVB
   255, SMB94
  
  
  
  
    //设置(set up)自由端口0接收字符最大数SMB94=255
ATCH
    INT_0,9
  
  
  
  
    //发送完成触发中断事件0
ENI
  
  
  
  
    //允许中断

  ②发送信息程序
LDN
  
   VD3501.1
    // V D3501.1为接收延迟。西门子PLC代理商可编程逻辑控制器实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同。电源用于将交流电转换成PLC内部所需的直流电目前大部分PLC采用开关式稳压电源供电。西门子PLC在我国的应用也相当广泛,在冶金、化工、印刷生产线等领域都有应用。西门子公司的PLC产品包括LOGO、S7-200、S7-1200、S7-300、S7-400等。 西门子S7系列PLC体积小、速度快、标准化,具有网络通信能力,功能更强,可靠性高。
  
  
  
  
   自由端口0没有处于接收延迟时
A
  
  
  
  
  
  
  
    SM
  4. 5
  
  
  
  
  
  
  
  
   //自由端口0处于空闲状态,SM4.5 =1
AB=
  
  
    VB18, 7
  
  
  
  
  
  
    //命令字节VB18 =7,即要求设置运动目标位置
SCPY
  
  
   "s  r0xca',VB3100
  
  
  
   //"s  r0xca',复制到VB3100,
  
  
  
  
  
  
  
   "s  r0xca'为设置(set up)运动目标位置命令
SCAT
    VB3600, VB3100
// VB360内的目标位置值连接到设置目标位置命令后
SCAT
    VB3190, VB3100
  
  
  
  
  
  
  
    //VB3190内的结束字节连接到VB3100后;
XMT
  
   VB3100, 0
  
  
  
  
  
  
  
    //通过自由端口0发送命令至伺服驱动器

  ③发送完成中断程序接收信息
LD
  
    SM0.0
  
  
  
  
  
  
   //SM0.0总是为1
S
  
  
   SM87.7, 1