为机床工具企业提供深度市场分析                     

用户名:   密码:         免费注册  |   申请VIP  |  

English  |   German  |   Japanese  |   添加收藏  |  
广州数控
数控系统

车床 铣床 钻床 数控系统 加工中心 锻压机床 刨插拉床 螺纹加工机床 齿轮加工机床
磨床 镗床 刀具 功能部件 配件附件 检验测量 机床电器 特种加工 机器人

数控系统

电工电力 工程机械 航空航天 汽车 模具
仪器仪表 通用机械 轨道交通 船舶

搜索
热门关键字:

数控机床

 | 数控车床 | 数控系统 | 滚齿机 | 数控铣床 | 铣刀 | 主轴 | 立式加工中心 | 机器人
您现在的位置:数控系统网> 技术前沿>通过人机界面实现伺服压装深度的在线修改
通过人机界面实现伺服压装深度的在线修改
2015-3-24  来源: 神龙汽车有限公司襄阳工厂   作者:贺云飞 付茂

    

      摘  要:采用西门子611U单轴数控与S7-300 PLC进行PROFIBUS通讯,编写PLC通讯程序,并在西门子操作面板上开发人机界面,实现对压装深度值的实时显示和在线修改,解决压装深度调整修改困难、时间长和质量风险问题。
  


       
     1. 引言 


  
     压装深度一直是伺服压装设备的技术关键,设置固定的压装深度不能满足所有压装的工艺和质量要求,经常需要频繁调整和修改。而一般的压床没有设置调整导管的压装深度的人机界面。当压装深度不满足工艺要求时,只能通过编程器与611U数控联机才能修改数控压装参数。一是这种方法操作难度较大,时间长,同时需要专业的自动化工程师来操作修改;二是修改值不能直接反应到人机界面上,有极大的质量风险。为了更方便的在最短时间内完成深度调整工作,在操作面板上开发增加一个压装深度调整界面,实现在人机界面上直接修改压装深度成为必要。
 

 

     2、611U数控系统数据通讯格式


  
     西门子611U数控系统通过PROFIBUS-DP总线与S7-300 CPU上的DP口来实现数据通讯,通讯采用RS485接口及支持9.6k~12Mbps波特率的高速数据传输,其中数据的报文头尾主要是用于规定数据的功能码、传输长度、奇偶校验、发送应答等内容,主从站之间的数据读写核心是参数接口(简称PKW)和过程数据(简称PZD)。
 
    PKW参数区域,用于读、写参数值;PZD过程数据区域,包括控制字、设定值、状态字和实际值。如果PLC需要通过总线来读、写数控系统中的某个参数,就需要用到PKW区域;如果PLC要通过总线来控制数控系统运行或者读取数控系统当前各种状态值等就要用PZD区域。PKW和PZD的数据通讯格式共有五种:PPO1、PPO2、PPO3、PPO4、PPO5,其传输的字节长度及结构形式各不相同。在PLC和611U数控系统的通讯方式配置时要对PPO进行选择,每一种类型的结构形式如表1。

     表1  PKW和PDZ数据通讯格式类型的结构形式

     
 

     以上5种不同的PPO类型是用不同的数据长度选择的,而数据长度是由数控系统在自动化运行环境中需要完成的任务决定的。例如:PPO3和PPO4中不包含PKW区域数据,所以只能用于进行过程控制,不能对数控参数进行读写。


     参数区域PKW的数据结构如下:PKE为一个字,0~10位是写待读写的参数号;第11位是系统预留位;12~15位是写作业报文ID号。


     PKW区的第二个字IND,0~7位是表示子参数号也就是索引号;8~15位是系统预留位。
 
     PWE为两个字存放参数值。总线数据传输作业过程是:首先由PLC将作业报文ID发送到611U数控系统中,然后系统读取到作业ID后根据作业ID的任务来更新(读取或者写入)参数区域的参数值,最后611U数控系统发给PLC一个与作业ID相对应的响应ID,PLC读取到响应ID后,就说明参数读写作业已完成。
  
     系统作业ID,其系统参数有几种不同的形式,包括单字节参数、双字节参数、另外还有带索引下标的阵列参数等,对于不同的参数其读写方式也不一样,不同参数的读写作业ID如表2。
 
     表2  不同参数的读写作业ID
  
     
 

     与作业ID号相对应的ID如表3。
 
     表3  与作业ID号对应的相应ID
  
     
 

     作业执行过程中如果出现错误导致作业无法完成,则系统返回ID号为7,具体错误类型代码放在参数区的第四个字,代码含义如表4。
 
     表4  故障代码含义
  
     
  


    3、数控系统中导管压装程序块格式


  
    在611U数控系统中,压装导管的程序块使用的是基本的定位指令。每个驱动轴最多可独立编程达64个移动程序段,程序保存在参数中。一个程序段包含程序段号、指令、指令参数、方式、位置、速度、加速度修调、减速度修调和结束方式,如表5。
 

     表5  基本定位指令程序段格式
  
    


    上面程序段段号为3,PLC调用3号程序时,这段定位程序执行。定位程序无指令参数,方式选择有两种:ABSOLUTE为绝对位置定位方式;RELATIVE为相对位置定位方式。定位目标位置为200.000mm,运动速度为1500mm/min,加速度和减速度都为100%。程序段的结束方式一共有三种:END、CONTINUE WITH STOP、CONTINUE WITH FLYING:
 
    END方式下程序运行完这个程序段后,就结束;
 
    CONTINUE WITH STOP方式下程序运行完这个程序段后,轴减速停止,然后继续执行下一个程序段;
    CONTINUE WITH FLYING方式下程序运行完这个程序段后,轴不停止,然后继续执行下一个程序段,后两种方式程序段如表6;
 
    表6  CONTINUE WITH方式下程序段
  
    
 

    上面两段程序执行过程中,速度与时间的曲线图如图1。

  
    
  
    图1 两种方式下速度与时间的曲线图
 

    从上面的曲线图中可以直观的看出CONTINUE WITH STOP方式和CONTINUE WITH FLYING方式的区别。
 

 

     4、数控系统中导管压装程序块对应的参数


  
     在611U数控系统中,每一个程序块中的每一项都对应着一个参数,程序块可以通过参数来修改,因此PLC通过总线数据的传递即可更改这些参数,实现PLC更改数控程序。
与程序块对应的参数为80—87号,对应关系如表7。
 

     表7 参数80-87对应关系
  
     
  
     在611U数控系统中每个驱动轴有64个程序段,如何与64套单独的参数相对应,系统通过索引下标区分这64个程序段对应的参数,即80—87号每个参数都要带一个索引下标,下标范围为0—63,共64个,用来区分不同的程序段。每一个程序段的每一个信息都有一个参数与之对应,PLC通过总线可以更改任意一个程序段的任何信息。
 
     本机床需要更改压装导管的深度位置,必须知道压装导管程序中压装深度位置对应的参数,因压床可以对两种类型的零件进行压装,所以压装两种类型的导管也有两个程序,在611U程序块中对应的是3号程序和13号程序,压装深度位置对应的参数是81号参数,因此要更改压装深度就要从PLC中更改参数81:3和参数81:13这两个(3和13是参数81的索引下标)。
 

 

     5、PLC读写数控压装深度参数的功能块设计


  
    考虑到程序应用的通用性,采用模块化编程,设计出参数读写用的功能块FC块,通过功能块接口变量进行参数传递,将数控系统地址、需要读写的参数号、参数索引地址等信息作为功能块的接口变量,这样通过调用同一个功能块,写入不同的接口变量就可以很方便的读写不同数控轴的不同参数。
 
    首先确定参数读写FC的接口变量,IN输入接口变量需要4个:PKW区域的起始地址;待读写的参数号;待读写参数的索引下标;读或写标志位。定义前三个接口变量的数据类型为INT整数型,第四个接口变量数据类型为BOOL位型,定义1为写标志,表示PLC向611U数控系统写数据, 0为读标志,表示PLC从611U读数据。
 
    压装深度参数数值需要定义到IN-OUT输入输出接口变量中,因在FC块调用过程中,需要对该参数进行读或写。
 
    为了判断读写功能的完成情况,FC块执行参数读写任务完成以后,还需要反馈一个完成信号,因此在OUT输出接口变量中定义一个读写完成信号。
 
    FC程序块的接口变量中还需要定义一些临时变量,用于存放程序执行过程中临时用到的一些变量。参数读写需要用到系统功能块SFC14、15,这两个系统功能块的接口变量里有ANY类型的参数,需要一次对应8个字节的PKW区域所有,因此需要在临时变量中定义:PKE两个字节、IND两个字节、PWE四个字节。另外还要定义两个临时变量来存放参数读写时的返回ID值,用来判断参数读写完成后是否出错:TypeRep一个字节; SFC14、15执行后的返回值:RET_V两个字节。以上定义的接口变量如表8。


    表8接口变量定义

    
 

     通讯程序编写时,先将需要读写参数的参数号及索引地址写入PKW区域里的PKE和IND:
 
L #PAR_NO
T #PKE  //写入参数号
L #PAR_IND
T #IND  //写入参数下标
程序需要根据接口输入变量PAR_W的状态来判断当前是读参数还是写参数,然后跳转到相应的程序段执行:
A #PAR_W
JC _W          //若为1则跳转到写参数程序段
从数控系统中读出带索引的参数值,作业ID号应该为6,需要将此ID号写入PKE的高4位,用字或运算保留其他的位并且将高4位改为6;作业ID号6对应的返回ID应该为4号:
L W#16#6000    //读参数作业ID号为6
L #PKE
OW             //字或运算保留低12位
T #PKE         //将作业ID号加入PKE中
L 4
T #TypeRep     //读参数返回ID应该为4
JU _C          //直接跳转到总线数据发送程序段
往系统中写参数值的作业ID为8,返回ID为5,同时需要将写入参数的数值写到PWE中:

_W:  NOP 0     //写参数程序段标号
L W#16#8000    //写参数作业ID号为8
L #PKE
OW             //字或运算保留低12位
T #PKE         //将作业ID号加入PKE中
L #PAR_V
T #PWE         //将写入参数的数值写到PWE
L 5
T #TypeRep      //写参数返回ID应该为5
相关读写参数填写完成后,调用系统功能块SFC15来向总线发送数据,并对应写入发送数据的总线地址、PKW区域的起始地址及长度:
_C:   NOP   0
CALL  SFC15                //往总线上传送数据

LADDR  :=#PKW_ADD          //总线地址
RECORD :=P#L 0.0 BYTE 8    //PKW区域的起始地址及长度
RET_VAL:=#RET_V            //SFC15执行的返回值
读写命令发送到总线上由系统执行,接着用系统功能块SFC14从总线上读出执行的结果来判断执行情况、取回读出的参数值等:
CALL  SFC14                //从总线上读入数据
LADDR  :=#PKW_ADD          //总线地址
RET_VAL:=#RET_V            // SFC14执行的返回值
RECORD :=P#L 0.0 BYTE 8    // PKW区域的起始地址及长度
数据读出来后要进行处理分析,检查返回的ID号是否与之前写入#TypeRep的值相等,如果相等说明读写任务成功完成,读出来的参数值有效可用,同时将读写任务完成信号接通:
L #PKE                  //取PKE区的数据
L 2#1111000000000000    //高4位数据保留其余清零
AW                      //字与运算
SRW 12                  //右移12位分离出返回ID号(高4位)
L #TypeRep              //前面赋值的返回值
==I                     //比较
JCN _AL                 //如果不相等,出错跳转
L #PWE                  //取出读出来的参数值
T #PAR_V
SET  
= #ACT_OK               //读写任务完成信号
_AL: NOP 0
 
    读写参数的功能块编写完成后,在主程序中调用功能块就可以实现不同参数的读写功能,调用功能块如下。

  
    
 

 

     6、人机界面开发


  
     人机界面开发采用Wincc flexible,变量地址表如表9。
 
     表9人机界面变量地址表
  
     


    开发后的人机界面,压装部位选择、读写命令控制、写入参数的输入等都可通过面板上的按键完成,实现面板操作直接更改611U数控系统的压装参数,更改压装深度,人机界面如图2。
  
   

    图2 人机界面

  


    7、结束语


  
    改进后的人机界面使得原来只有通过编程器才能修改的压装深度值,能够直观的显示当前设定的压装深度值,不仅可以直接在人机界面上修改,而且减轻了现场自动化工程师的工作量,同时还使得工艺人员可以对压装深度方便、直接的掌控,给操作和维修人员带来了极大便捷,有效的控制了压装质量,降低了质量风险。

    投稿箱:
        如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com