7
西门子模块6ES7223-1BM22-0XA8厂家质保
当今对于大多数设备制造商以及系统集成商而言,面对日益竞争的市场,赢得市场及售后服务响应的及时性与性已变得至关重要。然而,传统的售后服务模式即一旦设备或系统出现故障,工程师需到客户现场进行设备维护,势必花费大量的人力成本与时间成本,从而间接造成设备或系统成本的增加。因此,为节约成本,同时为客户提供为快捷的服务,减少客户的损失,本地化的远程诊断和维护目前已成为用户迫切需要解决的问题。
事实上,随着网络通讯技术的快速发展,从早期借助公用电话交换网络(以下简称PSTN网络)到如今基于互联网,目前远程诊断和维护的解决方案已逐渐完善与成熟。本文将针对具体的应用情况,提出几种基于硬件设备实现PLC远程诊断与维护的解决方案。
方案一、通过使用Modem,借助PSTN 网络建立远程连接
电话网PSTN是目前普及程度、成本的公用通讯网络。PSTN是以电路交换(circuit-switched)方式进行。在进行之前,建立一条端到端的链接电路,一旦链路建立成功,此后所有的数据都会沿着相同的路径和顺序进行传输。因此利用PSTN网络实现远程访问是一种切实可行的解决办法,这也是目前PLC远程诊断与维护广泛采用的解决方案之一。其具体实现方式如配置图1所示:工程师站PC端和远程的PLC站之间是通过Modem直接拨号进行连接。硬件配置上仅需两端各连接一台Modem。当需要对PLC进行远程访问时,通过使用 AT命令或Modem厂家提供的拨号软件直接拨打对端Modem的电话号码即可建立连接。网络支持上,工程师站与PLC远程站均需要电话网的接入。软件方面,仅需继续使用原有PLC组态软件即可。
图1 通过Modem直接拨号方式,建立PC与PLC设备之间的远程连接。
图2 通过路由器,建立PC与PLC设备的远程连接。
图3 通过GPRS Modem,建立PC与PLC设备之间的远程连接。
其实,真正关心PLC的故障,还是在应用过程中。终发现PLC有问题,也是在应用的时候。而对PLC在应用时候的故障诊断,当然是非常重要的,否则,不是PLC的问题能够解决,而是这个客户今后还会不会买你的东西的问题了。
但是,在应用过程中,往往用户以为出问题的PLC里,有都不是PLC的问题。而是由于用户不熟悉而造成的以为是故障、而其实不是故障的现象。用户的接线错误、编程错误、开关位置的错误、仪表故障、传感器故障等,都常常会使人误以为是PLC的错误。
当发现PLC没有按照自己的期望来进行工作时,要对PLC和PLC周边的设备和环境进行诊断。
从PLC外部的情况来进行的故障诊断
在PLC没有像期望的那样开始工作的时候,应该先从PLC的外部来进行判断,这样,可以比较轻易地排除那些不是故障的误会。
所有的PLC在CPU模块、I/O模块或电源模块上都有LED指示灯。通常,红灯表示问题,绿灯表示OK。如果一个LED在闪烁,通常表示功能正在执行或者这个模块在等待什么。对LED灯状态的正确诠释可以节省你很多故障诊断的时间。所以在故障诊断之前,你应该把制造商的故障诊断指南看一遍并放在手边。
如果PLC不能进入运行(RUN)模式,你可以用下面的方法来看看问题是在硬件还是软件:
a)临时将终止循环指令放在你的用户程序的行。如果现在PLC可以进入运行模式了,表示问题在你的软件中;而不是PLC的硬件问题。(有些PLC需要你在进入运行模式之前,先所有的错误状态,即使原来的问题已经正了)。
b)将PLC的内存复位(注意!,你要将PLC的内存的内容做一份拷贝,或者,你确信你愿意丢失内存中所有的程序、数据和组态)。如果PLC现在可以进入运行模式,问题就出在组态或者冲突使用的内存上。
如果在检测一个传感器时,你发现PLC不能从一个传感器得到信号,检查该传感器的输出是否正常,接线是否正确。如果传感器经检查没有问题,则换一个同型号的输入模块,如果PLC能够识别该模块的改变,就表示输入模块故障了(或者你刚才传感器连线错误了),那么,可以按照如下的方法观察PLC输入模块的LED灯是否与传感器的状态变化一致:
a)如果输入LED没有动静,用万用表检查PLC输入模块的端子看看信号是否变化。如果没有,将传感器与PLC的连接断开,单对传感器进行测试。看看外接电源是否正常,检查直流电源的性是否接反。有些PLC是漏电流型(SINK)的,所以对应的传感器电路是正端子接到PLC的输入接点上,其它的DC输入模块是电流源型(SOURCE)的,则传感器电路要通过电源的地线接到输入接点上。
b)如果LED状态是发生变化了,可能是你的程序有问题。在你的用户程序中的行加一条终止循环的指令,然后运行程序,观察输入映射表,如果该位现在改变了,问题就在你的程序,很可能是你的程序中有一条指令对输入映射表进行了改写,从而改变了它的值。
如果输入映射表依然不随着输入模块的LED的状态而改变,那么,可能是传感器电路有故障。传感器电路的电流能力可能不足以驱动输入状态,虽然它可能足以改变LED的状态。检查输入触点有没有不正常的小的电压变化。
如果一个执行器看来无法得到PLC试图写给它的信号,观察输出模块的LED,确信它们是否随着PLC改变输出状态而一起改变:
a) 如果LED确实改变,用万用表检查输出模块的端子,是否提供了足以驱动外部电路的信号,同时也检查性是否正确。如果是,则将执行器从PLC上断开,对执行器单进行测试。(有些输出模块有保险丝,检查一下是否保险丝断了?)
b) 如果LED 不变化,检查输出电路的电源,和它与输出模块的接线,(DC 输出可以是源型或漏型的),如果接线正确,将执行器从PLC的输出模块断开,看看现在LED在不带执行器时是否改变。
换一个同型号的输出模块,如果PLC可以改变的输出状态,那么刚才的模块或接线就有问题。
如果按照上面的方法,发现连接到传感器或执行机构都可以工作,那么你就可以应该PLC内部状态或PLC程序的问题了。
由于PLC是由人来进行安装、组态和编程的,所以可能会发生很多人为的使用过程中的错误。PLC制造商通常都提供了很多工具来找出这些错误。这些错误可以分为以下几类:
致命错误
这些错误将导致PLC离行模式而进入故障模式(类似于硬件故障所导致的情形)。致命错误通常发生在PLC开机自检时或程序执行时的部件失败。有的编程和组态问题(如定时器时,试图运行一个不存在的程序,等)也会导致致命错误。
当PLC进入故障模式时,它将故障LED打开,并将所有的输出关闭为OFF(或者冻结在它们的上一个状态),PLC也会在内存中保存一个故障代码,编程人员可以读取该故障代码确定故障的原因,解决问题后,故障状态,将PLC电源关掉再打开,重新进入运行模式。
现在的PLC通常都会保存对几个近的故障的详细描述,并允许编程人员编写在致命故障发生时可以运行的故障程序,我们在九章曾经描述过故障进程,本章我们主要讨论如何找到和使用故障代码。
非致命故障
非致命故障是PLC可以探测到,但不至于使PLC离行模式的故障。有些可探测的硬件问题,如内存的后备电池电压低,只导致非致命故障。非致命故障也可以由组态和编程错误引起,如一个定时中断程序的执行被一个的程序的运行而延迟,或者一个算术操作产生了一个太大以致无法存入目标内存的数,等等。
非致命故障导致PLC设定相关的状态位或者将相关的错误代码写到内存中。当结果太大或太小以致无法保存时,数据字处理指令将把内存中的算术标志位设置为1。用户程序应当检查这些状态位或代码,并作出响应,因为PLC将像没有错误发生一样继续执行程序,有些非致命错误状态位在的章节已经讨论过,本章我们将讨论另外一些。
编程或组态逻辑错误
这些错误是PLC不能自动检查出来的,但可以用程序中的故障检测指令或者编程单元的程序监视功能来检查。
逻辑错误的例子包括一个用户将一位设为OFF而不是ON,两段用户程序试图控制同一个输出,或者结构化编程旁路了一段需要的程序等等。
早期的PLC设计为不允许逻辑错误,如两个横档控制一个输出,或者跳转指令向程序进行跳转,等,但用户需要大的灵活性,因此,即使这些措施都取消了。有些编程单元在编程人员写出上述具有潜在错误的逻辑语句时,会提供警示信息,但编程者可以忽略它们。
编程语言都包括简单的调试工具:提前终止扫描循环的指令,这样程序可以一段一段来检查;导致致命或非致命的错误,使PLC在某些情况下立即停止;以及其它特别为调试程序中的某一个问题的指令。标准指令比如,计数器,可以临时插入程序中,记录事件发生的次数。编程软件也包括调试工具,如在用户程序执行时,监视和改变数据内存,强迫I/O映射位开或者关,以观察程序如何响应;记录某个特别位或特别字的短时间的变化,然后用历史趋势图显示这些变化;当某个特别位在使用时,生成一个程序中所有地方的交叉参考清单;还有搜索工具,可以找到程序中某个特别地址或指令在程序中的位置



可编程序控制器(Programmable Controller,简称PC)是基于微型计算机技术的通用工业自动控制设备,又称可编程逻辑控制器(Programmable Logic Controller,简称PLC)。它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的命令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或生产过程。
问:我这是一个生产线的扩容项目,对方好象是松下FP0系列PLC看不太清楚,已经集成在设备中不能动,而且不能拿到CPU中程序的情况下,询问如果使用西门子S7-200cn如何与三方PLC通讯?
答:经过实践经验整理并开发的一个基于step7 micro-win的库,可以应用于s7-200和的PLC上。在日常项目当中经常碰到一些客户的特殊需求和工程需求,这个库主要包含两个种类,种就是冗余库是可以让2套200或者PLC起到冗余作用,属于软冗余范围;另一种就是通讯库,可以通过200和的PLC的自由通讯口链接欧姆龙、三菱和松下的PLC的编程口,另外还可以支持国内三菱和松下厂商的产品。下图是已经安装项目库的STEP7 micro-win的编程环境:
1、冗余库
冗余库是我在西门子cs工作时利用业余时间开发的,并没有想到能够应用上,但是无心插柳柳成荫,如在我做的一个植物电厂,项目需求一套简单ESD系统点数只有30点,对于常规ESD系统是有严格要求的并且价格很贵,对于这个植物电厂其实并没有严格按照esd系统设计只是要求了cpu冗余+IO冗余,所以常规的ESD系统(tricon、hima、300F等)都具显庞大而且价格不菲,这也是这个项目费用接受不了了,我就利用开发的200冗余同步库很好的完成这个项目,这个200的冗余库可以完成100点一下的小型冗余系统,这个冗余库可以用在日常工程中需要cpu冗余+IO冗余控制系统。冗余切换时间小于20MS,并已经在成功运用在植物电厂和窑厂一些项目中。
2、通讯库
这个通讯库包含了市面上常见的日系PLC编程口通讯协议,为什么我开发这个库呢,其实源于我抵制日货的思想,有一次我在西门子出差去大连化工厂,他们使用了我们300+wincc做ESD,后来因为SI的问题致使wincc数据不能完整保存,一段时间就出错,我去了那里解决完问题之后和SI攀谈起来,就是问一问现在项目市场好做吗!SI苦着脸跟我说难呀!是关系难做;二就是这里很多设备都被日系产品了,业主考虑稳定性就不愿意使用西门子的。我想可能是因为初期日本设备充斥较多,所以很多设备都是由日系控制产品来完成,业主就是上新设备考虑和以前设备通讯的问题,就延用原来日系控制产品,由此我产生了这个通讯库的想法,我用200的通讯口根据协议编写通讯库,然后200或者的PLC就可以链接日系控制器,这样在日后的项目中业主既可以考虑到通讯兼容性又可以甩掉格备件日系控制器厂商。这个通讯库现在只是支持Omron honstbbbb通讯,三菱FX系列编程口通讯,松下FP系列的编程口通讯,可以在不增加日系控制器的通讯模块的情况下,直接和编程口通讯把数据获得,并可以写入数据。