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

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

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

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

数控系统

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

搜索
热门关键字:

数控机床

 | 数控车床 | 数控系统 | 滚齿机 | 数控铣床 | 铣刀 | 主轴 | 立式加工中心 | 机器人
您现在的位置:数控系统网> 加工与维修>NUM数控PLC程序变量写输出查找方法剖析
NUM数控PLC程序变量写输出查找方法剖析
2015-9-11  来源: 神龙汽车有限公司襄阳工厂   作者:周 毅

  

     【摘要】 从NUM数控系统PLC梯形图程序变址操作和C语言函数操作两种特殊的变量操作方式,通过三个变量的分析查找,详细介绍NUM数控系统PLC程序变量写输出的查找方法。


      在NUM数控机床故障维修中,有许多变量往往没有直接的输出线圈,维修人员经常碰到这种情况无从深入查找,给维修人员故障查找带来很大的困难,为了广大维修人员快速排出故障,掌握NUM特殊变量写输出的查找方法,下面以XF0235数控磨床和ETFA机械手PLC程序为例,详细介绍查找方法。


      1、变址操作


      NUM数控系统通过变址增量很容易地扫描大量连续变量的值。除了变量.&(地址)之外所有的变量都可以变址,变址必须是一个 %Mxxx.W 变量,同时变址增量只能是字节。
变量变址操作原理如下,如果%M100.W = 8,则%M5.B [%M100.W] 寻址变量为%MD.B,其中%M5.B是基地址,%M100.W是变址(偏移),5 + %M100.W = 5 + 8 = 13,十六进制为D,即对应变量地址为%MD.B。
 
 
      1.1 以故障位%M8d.0为例进行分析查找
 
      首先查找交互参照表,要查找变量的局部交互参照表如下:

      

      从上表可知,该变量在交叉表中没有线圈,所以应考虑变址赋值。根据规律往回查找变量交互参照表,查找同类型功能(故障位)的第一个变量的写地址,即基地址。

     

      从上交叉表可以看出,第一个故障位对应%M0.0,在%SP29第0步中有写输出,查看%SP29第0步,程序如下:

     

      从程序中可知要查找的变量%M8d.0应包含在%M0.0[%M11d0.W]变址中,

      %M0.0[%M11d0.W]  %M8d.0
      根据变址规则:0 + %M11d0.W = 8d  即:%M11d0.W = 8d
      由上述程序可知%M11d0.W = %Y2.W,则即:%Y2.W = 8d
      由于NUM数控PLC程序的地址是按16进制编址的,所以在程序中查找0x8d,在%SP141中找到3处,如下:

      %SP141

     

     

      通过分析上面程序三处0x8d的程序,后面的网络中刚好有要查找的%M8d.0触点,可判断是该程序块执行了spy(0x1d,0x8d,0x44,0x15,0x1)函数,而执行spy函数时刚好其四个参数进入局部变量%Y,即%Y0.L=0x8d, 屏幕上显示的第一行故障报警号
 
      %Y4.L=0x44, 屏幕上显示的第二行故障报警号
      %Y8.L=0x15, 故障类型
      %YC.L=0x1,动作类型
 
      从%Y0.L=0x8d得出%Y2.W=0x8d,也就说明执行spy(0x1d,0x8d,0x44,0x15,0x1)函数时把%M8d.0置位,而spy(0x1d,0x8d,0x44,0x15,0x1)函数即为故障信息显示程序,0x8d=141为故障号。继续向前翻页查找%Wf.0和%Wf.1,故障的原因为%I606.2和%I606.3,见如下程序块。

       %SP141

     

      从上面可推知,M变量的地址转换为10进制刚好等于故障号,也就是说故障报警时对应报警号的v变量置位。


      1.2 以M功能变量%v1e6.0为例进行分析查找
 
      要查找变量的交互参照表如下:


      

      从上表可知,该变量在交叉表中没有线圈,应考虑变址赋值。看符号象是M功能码,根据规律往回查找变量交互参照表,查找同类型功能的第一个变量的写地址,即基地址。

      

      从交叉表可以看出,第一个M功能码对应% V100.0,在%SP0第0步中有写输出,查看%SP0第0步,程序如下:

      

      从中可知要查找的变量%v1e6.0应包含在上述%v100.0[var]变址中,
 
      %v100.0[var]  %v1e6.0
 
      根据变址规则:100 + var = 1e6  即:var = 1e6-100=e6,因0xe6=230,也即var=230,从程序已知这个值来自于M功能码,并且M230是一个不带应答的M功能码,由上可知var=%Mff0.W 或 %Mff2.W ,已知%v1e6.0为侧头前进命令,与轴组1有关,同时在零件加工程序中查找M230,M230在%508中,而%508又由%1.1调用,显然该M功能码来自轴组1,所以只能是%R104.W = 230,从而可知当1号轴组执行不带应答的M230功能码时置位%v1e6.0。

  
     总结:变量%v100.0~%v1ff.0对应M0~M255功能码的执行,当这些M功能码执行时置位相对应的v变量,要查找的变量的地址减去100的十进制数为M功能码号。


      2、函数操作


      函数操作一般是对字节、字和长字进行操作,对位是一种间接的赋值方式,所以函数操作对位来说只能通过间接查找方法,下面以ETFA机械手PLC程序M.F13变量为例进行分析查找。


     通过交互参照表查找M.F13没有直接写输出的地址,分析为间接写输出,找相近的M.F10,在%SP22的第6步有写输出,局部交互参照表如下。


     

      打开%SP22梯形图第6步,M.F13包含在M.F10中,通过oct(字节转化为位)函数把B.400-B.407八个位传给B.408-B.40F,再通过bit(位转化为字节)函数把B.408-B.40F八个位传给M.F10-M.F17,由此可知M.F13的值来自于B.403。查B.403有多个输出,它是一个中间变量,要找离M.F10之前临近的B.403,见下面%SP22第4-5步程序。
 


     

      %SP22第6步程序:

      

      在线查看B.403的状态,发现机械手与机床联机时B.49a被置1,导致B.403闪断,从而导致M.F13为0。
 
      查找B.49a输出,见下面%SP1第4步程序。

      %SP1第4步程序:


      

      分析B.49a置位的原因,发现E.35一直为0,查看E.35原理图为Z轴原位开关(AXE Z DEGAGE),调整该开关,使E.35=1,故障解决。


      间接位操作函数
 
      间接位操作函数是以字节、字、长字进行操作,它间接地改变了位的值,除了bit、oct外还有以下函数。
      setb(&dest, b, n)函数从目标地址(dest)开始,连续给n个字节赋值,值为b。
      setw(&dest, b, n) 函数从目标地址(dest)开始,连续给n个字赋值,值为b。
      setl(&dest, b, n) 函数从目标地址(dest)开始,连续给n个长字赋值,值为b。


      spy(moduleno {, argn}6 ...) 函数第一个变量为调用子程序的号,后为6个可选参数,函数执行时可选参数的值进入局部变量%Y,%Y为 32位的长字,局部变量的分配如下:
 
      %Y0.L包含第一个参数的值
      %Y4.L包含第二个参数的值
      %Y8.L包含第三个参数的值
      %Yc.L包含第四个参数的值
      %Y10.L包含第五个参数的值
      %Y14.L包含第六个参数的值


      3、结束语


      通过上述三个变量的详细分析和查找,对于NUM数控PLC梯形图变量的查找和故障维修,必将为广大NUM数控维修人员起到极其重要的指导作用。

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