S7 PLC的控制器:自定义扩展
SIMATIC S7的模块化控制器
可随时通过可插拔I/O模块、功能和通讯模块灵活地进行扩展,为用户的需求提供量身定做的解决方案。根据用户的应用范围可以从性能,范围和接口选择等方向进行选择。我公司的模块化PLC也表现为高可用性或故障安全的安全系统。
上海翰粤是西门子工控及自动化产品*分销商咨询!
:郑辕鸿(销售工程师)
:
(): 传真():
:zx2013888 :www.hanyue.cc
:
浅谈软冗余
作为一名S7 PLC工程师,面对众多类型的问题,软冗余无疑zui“漫长”或者说zui“困难”的问题之一。究其原因,主要出自两个:
1.配置过程和实现过程“复杂”,很多初次接触的工程师较难入手。
2.有很多“隐蔽”的知识点,如果在实现软冗余过程中没有注意到,会出现形形*的奇怪问题。
为了能给正在使用或者将来要使用软冗余的工程师一点帮助,现在结合上出现的常见问题和难点,与大家分享一下:
1.什么是软冗余?需要什么呢?
软冗余:顾名思义用软件编程的方式实现PLC的冗余,PLC之间需要通过MPI接口(CPU上有)或者通过以太网、PROFIBUS同步当前数据。当一个PLC故障时,另一个PLC继续进行控制,避免生产的停顿。
硬件需要:
1).控制器:准备两个PLC(呵呵),如果需要通过以太网方式同步准备两个CP343-1,如果需要通过profibus方式同步准备两个CP342-5,如果准备MPI同步用 PLC即可。
2).ET200M分布式IO,需要注意选择冗余的(6ES7153-2AR03-0XA0 CONSISTING OF TWO IM153-2HF (-2BA02) AND ONE BUSMODULE IM/IM 6ES7195-7HD10-0XA0)
3).安装使用有源导轨
和有源总线模模块
所有的支持软冗余的硬件见如下链接:
http://support.automation.siemens.com/CN/view/zh/42614519
软件:STEP7编程软件(V5.4):6ES7810-4CC08-0YA5和软冗余软件包(V1.2): 6ES7862-0AC01-0YA0
2.如何连接硬件与编程?如果使用MPI方式同步,连接的示意图如下:
如果使用以太网或者PROFIBUS方式同步,连接的示意图如下:
编程限于篇幅有限在此不做赘述,请参考如下文档:
SIEMENS PLC系统软件冗余的说明与实现 http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0039
3.常见“陷阱”
1).DB块问题
该问题占软冗余疑难故障的3成以上,通常在硬件型号正确,安装无误的情况下,出现问题首先需要考虑DB块是否正确:
同时需要检查DB5的尺寸是否正确:
如果修改了FC100的参数,需要在线删除删除旧的DB块程序(FC100中使用的DB,如DB1,2,3,5等),在线可以通过单击下图按钮实现:
2).参数填写问题
如果不满足此要求,则主站和备用站状态不正常,无法同时工作或者切换后始终有一个CPU无法运行。
3).通信问题
DP通信基本的问题应作为首要考虑的因素,即通信电缆是否正确制作,地址拨码是否与组态*,终端电阻设置是否正确,这些基本的内容应作为首要检查的对象!
如果不满足如上条件,则下载完成后主站备用站同步正常。可以手动切换,但是手动拔掉PROFIBUS电缆,状态字不会切换。
以上这些常见的问题需要在使用软冗余时注意,建议使用软冗余的工程师在进行项目之前仔细阅读手册和使用入门文档,可提高对错误的判断和查找的能力。
4.参考资料:手册(中文/英文),使用入门: 软冗余手册:
http://support.automation.siemens.com/cn/view/zh/1137637
SIEMENS PLC系统软件冗余的说明与实现
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0039
注意:由于切换机制和时效的原因,不建议并且不应该在需要使用硬件冗余的场合用软冗余代替,当容许在从一个站切换到另一个站(主机切换到待机)时丢失几个处理周期这类临时故障的应用场所,可以使用软冗余。
300以太网模块S7通信不上
大家好,作为西门子的一名工程师,今天与大家分享一个上的故事。
这是一个有关通信的问题。
问题描述:两个343-1之间无法通信,使用的连接方式为S7连接,调用的程序块是PUT, GET (FB14,FB15)。
交流如下:
客户:通信不上,怎么办?
我:首先这两个以太网模块能用计算机网卡通信上么?
客户:可以
我:先检查使用的程序块,调用的FB14,FC15是不是从库-->simatic net--> CP300中调用?
客户:没错,就是这个程序块。
我:您的链接状态在线监控一下,是否已经连接?
客户:怎么监控?
我:在netpro中点击activate deactivate connection status按钮,位置就在上载按钮右边。
客户:连接状态是established。
我:连接已经建立了,那就看程序的状态吧。
客户:程序?我CPU 报错了! CPU的SF红灯是亮的!
我:这种情况下需要看诊断缓冲区,您看看有什么错误。
客户:你等一下啊,我看看。有一个错误说没有DB块22。
我:那要检查您的程序了,看看什么地方调用了DB22,并且检查您有没有下载DB22.
客户:我也不知道哪里调用了DB22。
我:在CPU的诊断缓冲区页面中有个open block按钮,通过这个打开按钮,可以找到出错的程序位置。
客户:原来是这段程序啊,这段不用了,我注销掉。你等一下啊。一会就好。
我:现在还有SF错误么?
客户:还有。
我(汗):这种情况下还需要看诊断缓冲区,看看存在有什么错误。
客户:缺少FC10,我下载了FC10,没有SF灯亮了,但是还是没有通信上。
我:那需要看通信程序。 随后一步步的检查所有的参数,容易出错的地方有:REQ需要连一个脉冲变量,ID填写netpro中建立的连接ID号,地址ADDR_1和RD_1,SD_1参数的地址需要存在。
客户:还是没有通信上,都是0。 这个时候我突然想到,有些情况下,客户发送和接受的数据区的数据都是0,会不会是看到都是0就认为没有通信上呢, 估计就是这个原因,没有出错还貌似没有通上!
我:您方便在变量表中监控一下两方的数据,看看是否都是0?
客户:等我看看。。
过了一会,客户告诉我说数据区都是零,但是在发送方置了一个1后也没有收到。
我:程序上有出错的信息么?
客户:status管脚和error管脚都是0
我:那这样把,我发一个以太网通信模块常见问题集给你您再比对一下,这里有例子程序和说明。
我没有办法了。
第二天:打过去问客户说已经做通了,我问怎么做通的,原来参数错了,netpro有两个连接,实际使用的连接ID是2,填的是1。
但是这个不能解释为什么error和status是0啊,我又问客户您昨天的触发管脚是否按我们说的是脉冲?不是啊,一个常闭点。
OK:
事情是这样的:
1.连接ID不对,数据一次也过不来。
2.通信请求管脚没有使用脉冲触发(客户使用的是常闭点),导致通信程序一直没有执行。(因此没有出错信息)
总结: 以太网通信请参考如下文档,以太网通信模块常见问题集
http://www2.ad.siemens.com.cn/download/html/4126.aspx
一般以太网通信查错的顺序是:
1. 以太网模块是否可以ping通,或者是否可以通过网线上下载或者监控程序。
2. 连接是否正确建立,即在netpro中监控连接的状态
3. 调用正确的程序,300以太网模块使用的通信程序需要在库-->simatic net--> CP300中调用。400以太网模块使用的通信程序需要在库-->simatic net--> CP400中调用。
4. 检查程序调用的是否正确,仔细检查每一个管脚,有LADDR参数的地方一定一定要填写模块组态的IO起始地址(在硬件组态中可以看到),REQ需要使用脉冲变量(频率不要太快),ID填写netpro中建立的连接ID号,地址ADDR_1和RD_1,SD_1参数的地址需要存在。
5. 可以通过status和error管脚来进行辅助检查。 CPU报SF红灯,一定要看诊断缓冲区,光下载一些OB是无法解决问题的,仅仅是避免CPU停机而已,利用step7的诊断缓冲区可以快速的定位问题。
西门子代理商:/(郑辕鸿)