自动化网-工控人家园官网

当前位置: 主页 > 工控品牌 > 西门子 >

S7-200 SMART PLC USS通信故障-得到准确ms级的代码执行周期,做自己的多功能定时器块

时间:2016-06-22 09:05来源:未知 作者:admin 点击:
西门子S7-200 SMART PLC USS通信故障-得到准确ms级的代码执行周期,做自己的多功能定时器块
1.   项目基本信息
Basic Project Information
       制药机械、SMART plc ST20、V20变频器、V90伺服电机和驱动、SMARTLINE触摸屏。

2. 问题描述
Problem Description
       故障现象:新设备安装完成后首次上电运行, PLC运行正常,用户正常试机操作,大约一分钟后变频器报F72通信故障,监控PLC程序后发现USS通信块故障代码1--驱动器无响应。重新下载程序和复位驱动器故障均无效。客户工程师更换新的PLC后又能正常运行,但是一分钟左右之后再次出现同样问题,连续更换三台ST20 现象都一致。
       系统构成:


3.  问题分析
Problem Analysis
       1)  V20 变频器F72通讯故障后,更换新的PLC后又能正常工作,变频器能正常运行,表明变频器
没有损坏。
       2)  由于该典型配置同类型制药机械已经使用了好几百套,并且都在最终用户那边正常运行,因此编程错误的可能性也是很小的。
       3)  外围线路存在问题的可能性非常大如接线错误,接地问题,干扰等。


4. 问题处理步骤
Problem Solving Steps
       1)  这个柜体第一个重要的问题是底板,通过颜色就能很直观的看出来,它不是铁板,经过
询问后确认这是一块绝缘板。就是说装在这块底板上的设备都是无法通过外壳地线接通的,经过实际观察发现所有变频器均将外壳接地。PLC通过台达电源供电,供电系统均未接地,包括220V端和24V端,见下图:
       2)  当接地受到破坏时,会导致设备外壳无法通过地线导向大地,电压积累在设备外壳或者
内部,严重者会损坏设备本身。用万用表测量PLC与变频器间有64VAC的电势差,对其它设备测量,电势差小于2V。64V AC电压已经很高了,高到足以损坏设备本身,将PLC和24V电源都接地之后,该压差消失,且再拆去接地线后也无法测量到压差,说明已通过接地线导向大地。
       3)  检查USS通讯电缆后发现,变频器V20侧只接了P和N两个端子,根据手册要求,必须将V20的 5号端子 0V与PLC M端连接(等电位连接线),避免共模压差损坏通讯口,而该线在当前设备上是没有的,正确的连接方法如下图:


                                                                           等电位连接线       
       4)  根据以上现象,怀疑PLC通讯口已经损坏,查看带RS485通讯口电路板,发现RS485通讯口背面的电阻已经烧黑,确认PLC通信口损坏。拆开另外几个损坏的PLC发现也是同样的现象。


                                                                        损坏的RS485接口电阻
5. 处理结果
Final Result
       问题已经找到,原因是没有接地和没有连接等电位连接线。对于问题产生的原因是由于某种因素导致PLC与变频器之间存在一个64V AC的压差,(限于万用表测量交流电压的原理,此点的高频和瞬时强电压无法测量,而此类EMC问题对于电气设备都属于严重威胁)由于没有共地,导致该电压无法通过地线导向大地,更因为没有等电位线,导致只能通过通讯线流动,造成了 PLC通讯口烧毁。
       用户认可西门子提出的解释和说明,并且表示会在以后的使用过程中增加等电位线 和解决接地问题。目前该设备已正常运行。
       电阻都烧黑了,我不是功率器件啊,我没有你想的那么坚强, S7-200 SMART 喃喃地说。

得到准确ms级的代码执行周期,做自己的多功能定时器块

 //************************
//****得到代码执行周期*******
//************************
1、OB1的临时变量区提供了OB1_PREV_CYCLE INT 上一次扫描的运行时间(ms),,长时间的累积会有不少的误差。为什么呢,因为系统提供给你的数值可能是有舍弃小数后值。而且提供的是用户程序运行时间,是否包含接口扫描、通讯、映射等时间不得而知。你可以通过累积OB1_PREV_CYCLE 和sfc64的后台时间比较就知道,两个的差别。
我的方法是通过读取系统时钟,这样无累积误差,(SFC64提供正向增长的双字运行时间)
//****获得系统时钟和程序执行周期***
      CALL SFC   64 (
           RET_VAL                  := LD    96);
      L     LD    96; 
      L     #sysT; 
      -D    ; 
      JPZ   posA; //计数满了,就少计一个周期,影响可以忽略
      L     #cycT; 
posA: T     #cycT; 
      L     LD    96; 
      T     #sysT; 
//------------------- 
消除了系统提供时钟的累积误差。误差最大一个执行周期(3~10ms);
//***************************
//*******多功能定时器********
//***************************
嵌入程序的定时器,是实现功能块封装的重要部分,实现方便的移植
系统提供的IEC定时器,复位比较麻烦,必须再次执行;
自制FB功能块可同时方便实现以下几个功能
1、开关量滤波功能;延时接通延时断开,也可处理有干扰波动值阀值比较;
2、Ton定时器;(TofSet=0)
3、Tof定时器;(TonSet=0)
定时精度最小1ms,实际精度是一个周期;
定时范围2,147,483,647ms(596小时);
//--以下是写的FB块,测试用了好长时间,也还能精简,抛砖引玉;欢迎指教;
//----
//符号注释:开关量滤波,单位ms;
//计数到后, tonAct(DINT)/tofAct(DINT)不再递增。设定值小于等于0,输出同步输入。
//设定时间=set*ration,单位ms。电平使能,复位结束后,使能还在则重新计时;


VAR_INPUT
  TonSet : INT ; //设定延时启动值,默认为0无延时;DIW0
  TofSet : INT ; //设定延时断开值,默认为0无延时;DIW2
  Ratio : INT  := 100; //设定值倍率1=1ms(默认100ms)DIW4
  CycT : INT ; //OB1上次扫描周期,单位ms,DIW6
  Rst : BOOL ; //复位计时器内部保存值和输出,DIX8.0
  En : BOOL ; //需要滤波的DI,DIX8.1
END_VAR
VAR_OUTPUT
  OK : BOOL ; //滤波输出,DIX10.0
END_VAR
VAR
  tonAct : DINT ; //DID12
  tofAct : DINT ; //DID16
END_VAR
//*************************************
BEGIN      SET   ; 
      L     l#0; 
      A     #Rst; 
      JCN    ton;
      R     #OK;      
      T     #tonAct; 
      T     #tofAct; 
      BE    ; 
ton:  A     #En; 
      JCN   tof; 
      T     #tofAct; 
      A     #OK;
      BEc   ;       
 L     #Ratio; 
      L     #TonSet; 
      *I    ; //不要用*D,如果设定错误成负数,会错误被解释成正的大值;
      L     #tonAct; 
      <=D   ; 
      S     #OK; 
      BEC   ; 
      L     #CycT; 
      +D    ; 
      T     #tonAct; 
      BE    ; 
tof:  T     #tonAct; 
      AN    #OK; 
      BEc   ;     
L     #Ratio; 
      L     #TofSet; 
      *i    ;  //不要用*D,如果设定错误成负数,会错误被解释成正的大值;
      L     #tofAct; 
      <=D   ; 
      R     #OK; 
      BEC   ; 
      L     #CycT; 
      +D    ; 
      T     #tofAct; 
      BE    ; 
END_FUNCTION_BLOCK 

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容