【转载】西门子840D系统PLC用户报警分析

一、数控系统介绍

 

 

SINUMERIK 840D是西门子公司20世纪90年代推出的高性能数控系统。它主要由数控及驱动单元,MMC,PLC模块等三大部分组成。这三部分在功能上既相互分工,又互为支持。

共享屋 你身边的数控专家

 

在物理结构上,NC-CPU和PLC-CPU合为一体,合成在NCU(Numerical Control Unit)中,但在逻辑功能上相互独立。它把所有 CNC、PLC 和通讯任务综合在单个 NCU 模块中,在安装到NCU盒以后,再把NCU模块插入到SIMODRIVE 611D数字驱动系统中去,直接放置在 I/RF 电源模块右侧,与611D驱动系统构成一个整体。

 

 

SINUMERIK 840D具有以下几个特点: 数字化驱动、轴控规模大、可以实现五轴联动、操作系统视窗化、软件内容丰富功能强大、具有远程诊断功能、保护功能健全、硬件高度集成化、模块化设计、内装PLC系统。

 

 

任何机床都会设计有报警,一个完善的报警系统对于机床的操作和维修都有很大的帮助,能够及时的提供给操作者相应的操作信息,也能很大程度的缩短维修的时间。一个机床的电气系统设计的好与不好,不完全取决于他能否实现某些功能,完成规定的动作。也在于他是否有一个详细,准确,可靠的报警系统。

 

 

840D系统的报警分为2大类,一类是系统的报警,一类是用户的报警。系统报警是系统自带的,由西门子编写的通用报警。而用户报警是由机床制造厂家针对于某类机床所编写的,不同的机床制造商,不同的机床类型,所拥有的用户报警是不同的。

 

 

 

 

二、标准的PLC用户报警

 

 

840D标准的用户报警一共有25组(见图1),从图中可以看出,每一组报警有8个字节,每个字节有8位,所以每一组报警有64个。报警的起始地址DB2.DBX180.0对应于700000号报警,依此类推。其中报警号的中间两位和用户报警区域的数字是一致的,从这个规律我们可以很容易的推算出报警所对应的地址以便于维修时的查找,例如报警是700806,从08这个数字我们知道他是第8组的,那么他所对应的地址就是=DB2.DBX(180+8×8).6=DB2.DBX244.6。

 

 

Area Address Message number

 

 

User area 0 DBX180.0 – DBX187.7 700.000 – 700.063

 

 

User area 1 DBX188.0 – DBX196.7 700.100 – 700.163

 

 

User area 2 DBX196.0 – DBX203.7 700.200 – 700.263

 

 

User area 3 DBX204.0 – DBX211.7 700.300 – 700.363

 

 

User area 4 DBX212.0 – DBX219.7 700.400 – 700.463

 

 

User area 5 DBX220.0 – DBX227.7 700.500 – 700.563

 

 

User area 6 DBX228.0 – DBX235.7 700.600 – 700.663

 

 

User area 7 DBX236.0 – DBX243.7 700.700 – 700.763

 

 

User area 8 DBX244.0 – DBX251.7 700.800 – 700.863

 

 

User area 9 DBX252.0 – DBX259.7 700.900 – 700.963

 

 

… … … … … …

 

 

User area 24 DBX372.0 – DBX379.7 702.400 – 702.463

 

 

( 表 1 )

 

 

报警的文本存于F:\dh\mb.dir\目录下,格式为myplc_xx.com,其中myplc_为任意文件名,但不能超过六个字符,xx为国家代码,这个文件是个文本文件,如果我们要修改其中的报警信息,我们可以把它传到PC上,把后缀COM改为TXT,用文本编辑器修改后,在把后缀改回COM,传回F:\dh\mb.dir目录中覆盖原文件即可。报警文件要在F:\MMC2\MBDDE.INI中定义才能生效,格式为:[TextFiles] UserPLC=”F:”\dh\mb.dir\myplc_,后面的国家代码不用写上,在系统进行语言切换的时候,系统会自动调用于国家代码一样的用户报警文件,前提是你已经编写了不同语言的文件,并存储在F:\dh\mb.dir\目录下。象上海的2台840D磨床就是这样。但很多国外的机床并不是这样,象曲轴的淬火机、连杆的R242A双端面磨床,他们并没有改动F:\MMC2\MBDDE.INI这个文件,而是在F:\user用户目录下又建立一个MBDDE.INI文件,在这里对用户报警文件进行定义。还又一种是定义在F:\OEM目录中的MBDDE.INI文件中,象heller的内铣,TBT的枪钻是属于这种。在USER和OEM目录中的mbdde.ini文件中的内容会自动替代MMC2目录下的mbdde.ini的相关内容。这里所说的替代是在调用时的替代,而不是文件物理写入的覆盖。

 

 

在每一组的报警中,其前4个字节为错误信息EM,后四个字节为操作信息OM,错误信息触发后,在屏幕上的默认显示为红色文本,显示在报警行。当改动了myplc_xx中的报警文本内容,或改变了MBDDE.INI中内容,PCU需要重新启动,以便使改动的内容生效。如果在myplc_xx中没有编写相应的报警文本,那么报警只显示一个报警号,后面跟着四个O型字符。错误信息是需要操作人员确认的,在触发条件不在为1的情况下它依然显示,直到按机床面板上的RESET键才能复位掉。操作信息触发后,在屏幕上的默认显示为黑色文本,显示在报警行,报警的内容同样在myplc_xx中,同错误信息一样,如果在myplc_xx中没有编写相应的报警文本,怎报警也只显示一个报警号,后面跟着四个O型字符。但有一点是和错误信息不同,操作信息是不需要操作者确认的,当操作信息的触发条件不在为1时,操作信息会自动消失。作为这两种用户报警信息的一个共同点就时,他们本身对NC的加工和PLC的运行没有任何影响。也就时说如果某个报警信息被触发了,如果没有相应的条件限制NC或者PLC动作的话,那么对于机床的加工是没有任何影响的,他只是一个显示而已。

 

 

在PLC程序的FB1功能块中可以使用MsgUser参数定义用户报警的数量,范围是0――25,对应于表1中的25个用户报警区域。由于FB1是在0B100中调用的,而OB100只有在上电的情况下才执行一次,而DB2是由所FB1产生的,所以如果更改了MsgUser参数,必须删除DB2和DB3,重新上电,这样才会重新产生更新过的DB2和DB3数据块。举个例子,比如MsgUser初始状态被赋值为10,那么他就只激活表1中的User area 0—User area 9这10个区域,在PLC中使用DBX180.0—DBX259.7是有效的。如果你使用了area 9以后的地址,就会产生一个NC报警(多少号,什么内容?。。。待续。。)。使用STEP7软件打开DB2数据块,在view菜单下切换到DATA VIEW后我们会发现,这里只定义了260个字节(0―259),这和表1中区域9的地址是完全符合的,区域9后面的地址由于在这里没有定义,自然也就无法使用。要想使用全部的报警信息,只要在FB1中把参数MsgUser赋值为25即可。

 

 

所有的标准报警信息都对应于PLC的DB2数据块,但MMC无法直接读取PLC数据块,在PLC中有一个诊断缓冲区,来解决于MMC通讯的问题。所有的报警事件由PLC的基本程序产生并且写入这个诊断缓冲区,在由MMC中的advance HMI软件进行读取和解释翻译,并把所有的报警和信息的事件写入到f:\mmc2\proto.txt日志文件中,在这个日志文件中记录了所有所有事件的过程,其中包括:报警产生的时间,报警号,报警显示的位置,报警文本的位置,报警消除的时间等信息,在HMI软件中还定义了许多各种条件的过滤器,系统根据过滤器的配置,过滤掉proto.txt中不想用到的信息,从而得到想要显示的信息。

 

 

 

 

三、TRANSLINE 2000

 

 

一个控制系统可以包含几个报警系统,所有的报警在触发的时候,都会传送到报警服务器进行处理,进行显示并存储在proto.txt日志文件中。我们厂840D系统的机床,大部分都采用transline 2000 HMI PRO CS AND RT这个软件来配置用户画面,以OP软键的形式来取代按钮。这种方式的好处在于即减少了输入按钮的数量,也节省了输入口,同时以图形的显示方式来实现相应的机床动作,使操作者一目了然。在这个软件中,也提供了用户报警的配置画面(如图1)所示,在这里定义了用做用户报警的数据块,起始地址,数据区的大小,区域的划分,以及区域内的详细配置。标准的报警系统是通过上面所提到的DB2数据块的相应位来处理的,在transline 2000这个软件中,系统默认使用的是数据块DB126来处理和接收用户报警和信息。标准的用户报警和信息文本写在alp_xx.com中,HMI特定的报警和信息的文本写在alhmi_xx.com中,其中XX代表国家的代码,也说明了这个文本中使用的是那个国家的语言。比如简体中文XX=CH,英文XX=UK,德文XX=GR等等。在transline2000中配置的所有用户报警信息被记录在F:\OEM\stoerung.ini文件中,如果我们手里没有transline2000的源文件,可以在这个文件中找到关于用户报警信息的配置。以意大利磨床线的A机床为例,看一下他的stoerung.ini文件:

 

 

[USER]

 

 

WartungOn=0

 

 

WartungNr=705000

 

 

StoerTaskOn=1 ……………………………………启用transline2000的报警配置

 

 

AuslastungOn=0

 

 

DbNrOfMessages=126…………………………………..使用的数据块

 

 

DbbNrOfMessages=10…………………………………..起始地址(字节)

 

 

NrOfBytesToRead=453………………………………….所使用的字节数

 

 

AdressOfTBit=59,76.0

 

 

AdressOfSbit=59,88.2

 

 

AdressOfMbit=59,88.4

 

 

PathOfDayProtFile=f:\oem\giustina\storico\input

 

 

PreNameOfDayProtFile=Alar

 

 

StartNrOfUserMessages=700000……………………….起始的用户信息号

 

 

NrOfAreas=10 ……………………………定义了10个区域

 

 

Area1=m700001-700008 …………………………….区域1

 

 

StartByteArea1=10 ……………………………区域1的起始地址(字节)

 

 

Area2=m700010-700098 ……………………………区域2

 

 

StartByteArea2=11 ……………………………区域2的起始地址(字节)

 

 

Area3=m700100-700107 ……………………………………..区域3

 

 

StartByteArea3=23 ……………………………区域3的起始地址(字节)

 

 

Area4=m700108-700299 ……………………………………..区域4

 

 

StartByteArea4=24 ……………………………区域4的起始地址(字节)

 

 

Area5=a700300-700499 ……………………………………..区域5

 

 

StartByteArea5=49 ……………………………区域5的起始地址(字节)

 

 

Area6=m700500-700599 ……………………………………..区域6

 

 

StartByteArea6=74 ……………………………区域6的起始地址(字节)

 

 

Area7=a701000-703759 ……………………………………..区域7

 

 

StartByteArea7=87 ……………………………区域7的起始地址(字节)

 

 

Area8=a703761-703776 ……………………………………..区域8

 

 

StartByteArea8=432 ……………………………区域8的起始地址(字节)

 

 

Area9=a703777-703792 ……………………………………..区域9

 

 

StartByteArea9=434 ……………………………区域9的起始地址(字节)

 

 

Area10=m703793-703999 ……………………………………..区域10

 

 

StartByteArea10=436 ……………………………区域10的起始地址(字节)

 

 

 

 

transline 2000 hmi pro cs中有一个报警文本画面来编写这些报警,以3681精镗为例,如(图2)所示。在图2中可以看到,起始的报警号是和图1中range1的配置相对应,也就是DB126.DBX0.0对应于702500。在图1中的total number of bytes字节总数应大于在range1中的区域大小,即63>(702999-702500)/8。在number of alarms /message range报警和信息的区域数选项中可以配置1――10个区域,键入不同的数字,下面就会出现和range1一样的区域配置range1—range10,区域之间可以不连贯,可以跳跃,但不能重叠。

 

 

 

 

四、总结:

 

 

在实际的维修过程中,情况要复杂的多,对于一条用户报警,我们有可能找不到上面所提到DB2或者DB126这样的标准数据块所对应的数据位。例如在我厂ALFING公司的3639,3681,3720,3728这四台机床中,他首先把用户报警编写在DB200这个数据块中,然后在用下面这四条指令,把DB200中的数据复制到DB2数据块的用户报警区域。这对于我们查找故障也是一个障碍,一个报警产生了,无法查到相应数据位的输出,因为真正的报警条件触发的是DB200这个数据块中的相应数据位。

 

 

CALL SFC 20 ;系统功能,块复制功能

 

 

SRCBLK :=P#DB200.DBX0.0 BYTE 200 :源区域,起始地址后200个字节

 

 

RET_VAL:=#RetVal :复制过程中的故障代码

 

 

DSTBLK :=P#DB2.DBX180.0 BYTE 200 :目标区域,起始地址后200个字节。

 

 

这就要具体情况具体分析,熟悉每一台机床的PLC程序结构对于维修是很必要的。

© 版权声明
THE END
喜欢就支持一下吧
点赞2 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容