简介:《西门子冗余系统设置实例》是一份面向工控自动化工程师、PLC调试人员及S7-1500R学习者的PDF实践文档,围绕冗余系统从硬件组态到在线调试的流程展开,适合具备一定TIA Portal基础、希望掌握冗余PLC与ET200SP组态方法的中级读者。文档共1个PDF文件,压缩包约2.12MB,内容集中于实操步骤与实验记录,涵盖CPU 1513R-1PN、IM155-5 PN HF模块选型,TIA V16平台,PROFINET X1 P2端口互联与环网结构,冗余PLC的IP地址、虚拟MAC地址、MRP设置,以及ET200SP介质冗余角色、PROFINET更新时间与看门狗时间因子等参数。文档还记录了仅能下载主PLC、备PLC需切换STOP与RUN完成同步,以及155模块在线报错、设备名称与IP分配、冗余系统须形成环网等排错经验。已有2648人学习,可帮助读者按步骤完成组态、理解主备同步机制并积累现场调试思路。
1. 别急着点下载:S7-1500R 冗余系统实验台的第一道坎
两台 1513R 加一个 ET200SP,摆在台面上不到半米宽,接线半小时就能收工。真正磨人的是按下下载按钮之后——备机那一侧的下载按钮是灰的,155 模块挂着一串红灯,在线连接偶尔还会被系统直接弹回来。这份《S7-1500R 冗余系统设置实例》记的就是从硬件组态一路走到 SYNCUP 同步的完整过程,平台是 TIA V16,控制器是 CPU 1513R-1PN,挂的是 IM155-5 PN HF。它适合第一次碰冗余系统、被主备关系绕晕的自动化工程师,也适合会做单机、想在实验台上把环网真跑起来一次的熟手。冗余这套东西,单机那套经验能借用的部分不到一半,剩下的全靠踩。
2. 硬件清单与 TIA V16 安装:从对订货号到把软件装进 C 盘
冗余系统的坑,有一半在接线之前就已经埋好了——订货号对不上、存储卡少一张、TIA 版本和 CPU 固件差一档,后面组态做得再漂亮也下不进去。所以这一章先不动 TIA 的界面,先把箱子里的东西和电脑里的东西都摆平。
2.1 开盘先对订货号,差一位就是白跑一趟
实验台上这套配置不算复杂,但每一件都有它的位置,缺一件系统就成不了环。下面这张表是本次实验的实际清单,订货号照抄下来,去现场前对着箱子一件件划勾。
| 序号 | 模块 | 订货号 | 数量 | 在冗余系统里的角色 |
|---|---|---|---|---|
| 1 | 负载电源 PM 190W,120/230 V AC,24 V DC,8 A | 6EP1333-4BA00 | 1 | 给 PLC 机架供 24V |
| 2 | SIMATIC S7-1500R,CPU 1513R-1PN | 6ES7513-1RL00-0AB0 | 2 | 冗余对的两台控制器 |
| 3 | 存储卡 4 MB | 6ES7954-8LC03-0AA0 | 2 | 每台 CPU 一张,不能共用 |
| 4 | 安装导轨 S7-1500,482 mm | 6ES7590-1AE80-0AA0 | 1 | 两台 CPU 同轨安装 |
| 5 | IM 155-5 PN HF | 6ES7155-5AA00-0AC0 | 1 | ET200SP 接口模块,接环网 |
| 6 | 数字量输出 DQ 8x24VDC/0.5A HF | 6ES7522-5FF00-0AB0 | 1 | ET200SP 上的 IO 模块 |
有两处特别容易出错。第一处是存储卡,两台 CPU 就是两张卡,S7-1500R 的 CPU 不带内部装载存储器,卡不插进去连固件都起不来;卡要在断电状态下插进卡槽,插好再上电,别热插拔。第二处是接口模块的版本,IM155-5 PN HF 只有固件高于 V4.2 才支持冗余环网,拿到手先看侧面标签或者用 TIA 在线读一次固件版本,低于这个数的模块,后面第 3 章那步"分配给新 IO 控制器"会直接找不到选项。
提示:ET200SP 的基座单元是按槽位一段一段拼的,装箱的时候数一下基座数量和 IO 模块数量对不对得上,少一段就要多跑一趟。
2.2 TIA V16 的安装顺序和三个必查项
1500R 冗余系统支持的软件平台是 TIA V15.1 或 TIA V16,本次实验用的是 TIA V16。这句话的分量比看起来重——V15.1 以下的版本打开含 1513R 的项目会提示设备不支持,硬扛着装上去也是白费。同一台电脑上如果还留着 V13、V14 的老项目,可以并存,但安装顺序必须是先低版本后高版本,反着装会让授权管理器和组件注册表打架。
安装前先做三件事:系统盘腾出 50G 以上、安装包解压到全英文路径、关掉杀毒软件和系统防火墙的实时防护。TIA 的安装器会往注册表写几百个组件,中途被拦一下,后面组态能打开、编译也能过,唯独下载的时候报"组件缺失",这种玄学问题排查起来最费时间。
# 先校验安装镜像,避免解压到一半报 CRC 错误,白等一小时 Get-FileHash .\TIA_Portal_STEP7_Prof_V16.iso -Algorithm SHA256 # 确认系统盘剩余空间,TIA 全家桶装完 30G 起步,加上项目缓存要到 50G Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{n='FreeGB';e={[math]::Round($_.Free/1GB,1)}}, @{n='UsedGB';e={[math]::Round($_.Used/1GB,1)}} # 安装前确认这几个后台服务没在跑,它们会在拷贝组件时锁文件 Get-Service | Where-Object { $_.Name -match 'Defender|WinDefend|Sense' } | Select-Object Name, StatusGet-FileHash出来的值要和官方发布页给的一致,不一致别抱侥幸心理,重新下一份。第二条命令里FreeGB这个自定义列是我习惯看的,低于 40 就先去清盘。第三条不是让你把杀软卸了,而是确认它是运行状态——如果本来就是关的,安装中途又被策略拉起来,那才是最麻烦的情况,装之前先把这事跟 IT 那边确认清楚。
安装过程本身没什么技巧,STEP 7 Professional V16 走完再装一遍授权管理器,PLCSIM V16 可选,做冗余实验建议装上,不接实物也能先验证一遍组态逻辑对不对。安装时长一般在 40 分钟到一个小时,中途那个进度条会停着不动很久,忍住别点取消。
2.3 固件版本必须和 TIA 里选的版本对上
这是原文里专门用一句话强调过的点:添加设备时要注意版本号,新出厂的 PLC 可以不管,但只要是被组态过的硬件,TIA 里添加的软件设备版本必须和实物一致。
道理不复杂。TIA 里的"设备版本"决定了两件事:编译时生成哪一套系统块,下载时和 CPU 里跑着的固件做哪一版协议握手。版本对不上,最典型的表现是下载到 90% 报"设备不兼容"或者"固件版本不匹配",然后 CPU 停在 STOP 上不动,你还得跑一趟现场。
查版本有两个地方:CPU 前面板的显示屏菜单里能翻到固件版本,或者在 TIA 里转至在线后看设备信息。两边对上了再往下做。项目里如果已经有旧版本的设备,添加新 CPU 时不要图省事直接复制粘贴,从头添加一遍、手动选版本,比改属性里那个下拉框靠谱。
注意:现场上位机侧如果有 C# 写的监控程序通过 OPC UA 或 S7 通信读 PLC 数据,升级固件之前先确认客户端库支持新版本协议,否则 PLC 这边跑得好好的,上位机那边连不上,排查方向会被带偏。
3. 硬件组态:把 CPU 1513R 和 ET200SP 挂上 PROFINET 环网
软件装好、版本对上,接下来才是真正在 TIA 里画图。这一步的目标很明确:让两个 1513R 组成一个冗余对,让 ET200SP 认这两个 CPU 当 IO 控制器,并且让三者之间的网线在拓扑上和组态里画的一模一样。
3.1 添加 CPU 1513R,拓扑视图里那两根线不是装饰
新建项目,进入项目视图,双击"添加新设备",路径是"控制器 → SIMATIC S7-1500 → CPU → 1513R-1PN",版本选和实物一致的那一档。确定之后,第一台 CPU 出现在网络视图里。
接着添加第二台。这里有个细节:第二台 1513R 添加完成后,TIA 会自动把它和第一台归入同一个冗余系统(设备组),并且在拓扑视图中自动画好两个 1513R 之间 PROFINET X1 接口 P2 端口的互联线。
这两根自动出现的线,是软件替我们做的一个约定,不是画着好看的。它表达的是:这两台 CPU 的 X1 接口 P2 口之间必须有物理网线连着,而且接法要和图上一致。实际接线的时候如果随手一插,把 PLC1 的 P1 接到了 PLC2 的 P1 上,组态和实物就对不上,编译能通过,下载也能进去,但主备关系建不起来,系统一直停在单机模式。
我一般的做法是:组态画完先别急着下载,把拓扑视图截图打出来,蹲在机柜前一根一根对,对完再上电。
3.2 X1 接口 IP、系统 IP 和虚拟 MAC 的三层关系
冗余系统的地址规划和单机完全不是一个思路,单机只要一个 IP 够用,冗余要分三层看。
| 参数 | PLC_1 | PLC_2 | 说明 |
|---|---|---|---|
| X1 接口 IP | 192.168.18.10 | 192.168.18.12 | 各自设备的物理接口地址,同网段 |
| 子网掩码 | 255.255.255.0 | 255.255.255.0 | 与现场网络规划一致 |
| 系统 IP(虚拟) | 默认值 | 默认值 | 上位机、编程设备访问用,始终指向主 PLC |
| 虚拟 MAC | 自动生成 | 自动生成 | 同一以太网广播域内必须唯一 |
设置方法是在网络视图里双击 CPU,进"属性 → 常规 → PROFINET 接口 → 以太网地址",把 IP 填进去。两台分别设,PLC_1 是 192.168.18.10,PLC_2 是 192.168.18.12。
关键在系统 IP 这一栏。X1 接口的 IP 是两个冗余 PLC 的 X1 接口公共设置,而通信时通过系统 IP 访问的,始终是当前的主 PLC。这句话翻译成现场语言就是:上位机、触摸屏、编程电脑,统一连系统 IP,主备切换的时候上位机不用改任何配置,它自己会跟到新的主机上。这是冗余系统最值钱的地方,也是很多人组态时容易忽略的一栏——只填了两个实 IP,系统 IP 留空或者填成和实 IP 冲突的值,切换的时候上位机就断在那里了。
虚拟 MAC 那一栏,默认是自动生成,能不动就不动。只有在同一个以太网广播域里跑多套冗余系统的时候才需要人工干预,因为这时候要求广播域内所有虚拟 MAC 唯一。判断方法很朴素:看这几套系统是不是接在同一台交换机上、是不是同一个 VLAN,是的话就逐个改,改成不重复的值并记录在案。
3.3 添加 IM155-5 PN HF 并分配给两个冗余 IO 控制器
接口模块的添加路径是"分布式 I/O → ET200SP → 接口模块 → PROFINET → IM155-5 PN HF",直接拖到网络视图里。拖进来之后它头上会挂着"未分配"三个字。
右键那个"未分配",菜单里选"分配给新 IO 控制器",弹窗里会出现可选的控制器列表——这里要同时勾上两个冗余 PLC。这一步是整个组态里最容易做漏的,只勾一个的话,ET200SP 就变成了单控制器系统,冗余那半边等于没配。
顺序上还有两个小规矩。第一,IO 模块的版本必须大于 V4.2,低于这个版本在分配控制器的时候根本不会出现冗余选项,这也是 2.1 里强调先查版本的原因。第二,服务器模块不需要手动组态,编译的时候 TIA 会自动补上,不用去硬件目录里找。
分配完成后,网络视图里 ET200SP 和两台 CPU 之间的连线会变成实线,说明 IO 控制器关系已经建立。
3.4 介质冗余角色:CPU 当管理员,ET200SP 必须改成客户端
这一小节是冗余组态的分水岭,做错了系统能跑,但环网断一根线就直接停。
双击 ET200SP 的接口模块,进"属性 → 高级选项 → 介质冗余",把"介质冗余角色"从默认值改成"客户端"。改完编译,再看 CPU 那一侧,两个 1513R 的介质冗余角色默认是"管理员(自动)",这个不用动。
为什么这么分?MRP 环网里同一时刻只能有一个管理员,由它负责发检测帧、发现环路断开、执行重构。冗余 CPU 天生适合干这个活,因为它本来就是双机,主备切换不影响管理员职责。ET200SP 是 IO 设备,它只需要听懂管理员发来的帧、按指示切换端口方向,所以设成客户端。
两边都设成管理员会怎样?环网里两个管理员互相发帧,谁都认为自己是老大,重构逻辑直接乱掉,表现是网络时通时断,诊断缓冲区里一堆 MRP 相关条目,看着像硬件故障,其实是参数冲突。
4. 实时参数与 MRP:更新时间和看门狗因子的取值依据
组态画到这一步,设备都在图上了,剩下的全是参数。冗余系统的参数有个特点:默认值大多能用,但有几个关键值必须手动算一遍,算错了不影响编译,只影响环网断开那一瞬间系统扛不扛得住。
4.1 更新时间 2ms,看门狗因子为什么要大于 111
双击 IM155-5,进"属性 → 常规 → PROFINET 接口 → 实时设定",这里有两个参数:更新时间、看门狗时间因子。
更新时间决定 IO 数据多久刷一次,本次实验设成 2ms。看门狗时间因子是个倍数,实际看门狗时间 = 更新时间 × 因子。冗余系统对因子有个硬性下限:当更新时间为 2ms 时,IO 设备的看门狗时间因子必须大于 111。
为什么卡在 111 这个数上?因为看门狗要覆盖的最坏情况不是正常通信,而是 MRP 环网断开后重构的那几百毫秒。环网一旦断点,数据要绕道走,路径变了、交换机转发表要重建,这段时间内 IO 数据是中断的。看门狗如果比重构时间短,环网刚断,IO 设备就被判定为掉站,冗余的意义就没了——本来只是想扛一根线断,结果整个站都停了。
本次实验把因子设成 112,比门槛多 1。这个"多 1"不是随手加的,贴着门槛走等于不留余量,现场温度、线缆质量、交换机负载稍有波动就可能擦线。设 112 之后,看门狗时间是 2ms × 112 = 224ms,反馈到组态里就是一行不起眼的数字,实际决定了断线那一刻系统是继续跑还是全停。
提示:如果现场把更新时间改成别的值,TIA 会在因子输入框下方用红字提示当前的下限,照着提示取最小值再往上加一到两档,别直接照抄别人项目里的数字。
4.2 MRP 管理员角色保持默认,别去"优化"它
1513R 的 MRP 设置默认就是"管理员(自动)",这一栏我在好几个现场见过被人手动改掉,理由都是"看着自动两个字不放心,想固定一台"。
固定一台的后果是:管理员职责绑死在某台 CPU 上,这台一停,环网就没人管了。设成自动之后,主备切换时管理员身份会跟着走,新的主 PLC 接手,环网继续受管。默认值之所以是默认值,是因为它在这个场景下确实是最优解。
这一小节之所以单独拎出来,是为了和 3.4 里 ET200SP 的客户端设置形成对照:一个保持默认、一个必须改,两个动作方向相反,但逻辑是同一条——环网里只能有一个管理员,其余的都得是客户端。
4.3 公共参数只在主 PLC 里改一次,程序块也只有一份
冗余系统的设备组有个特性:像系统 IP 地址这类公共参数,只需要在其中一个 PLC 的设备组里设置,另一个 PLC 的参数会同步更改。同时,编程相关的内容只在第一个 PLC 下面显示。
这两条合起来的意思是:你不需要也不能给两台 CPU 各写一套程序。项目树里 PLC_1 下面挂着 OB1、FB、DB,PLC_2 下面什么都没有,这不是漏了,是设计如此。下载的时候程序进主机,备机在启动时从主机同步,同步的是整套组态加程序。
理解了这一点,后面第 5 章里那个"备机下载按钮是灰的"就不是故障,而是机制。很多人第一次碰冗余系统,看到备机下面没程序,第一反应是手动补一份,补完编译报重复块,越搞越乱。
5. 避坑与排查:五个让我返工的现场问题
这一章全是踩出来的。每一条都按现象、原因、解决三段写,顺序基本就是我当年遇到它们的顺序。
5.1 ET200SP 报模块存在故障,其实是背板总线末端空着
现象:硬件组态下进去,ET200SP 的 IO 模块灯闪红,TIA 在线诊断里 155-5 报"模块存在/组态不一致",反复编译下载都消不掉。
原因:ET200SP 的基座单元是按槽位拼的,最后一个基座单元后面必须装上服务器模块把背板总线闭合。这次实验里 IO 模块装完之后末端留了个空位,当时以为是备用槽位,实际是总线没终端,接口模块一直检测到异常。
解决:断电,把服务器模块插到最后一个基座单元上,上电后重新编译下载,报警消失。这个坑的迷惑性在于,组态画面里一切正常,只有在线诊断才看得出问题,纯靠看图纸发现不了。
5.2 下载找不到设备,先查 IP 和设备名称分配了没有
现象:点下载,弹窗里搜不到目标设备,或者搜到了但提示"设备类型不匹配"。
原因:设备组态时没有先给设备分配 IP 地址和设备名称,尤其是 ET200SP 这类分布式 IO,出厂状态是空的,TIA 不知道网络里哪个设备对应组态里的哪一个。
解决:先在线给 PLC 分配 IP,再给 IM155-5 分配设备名称,两步分开做。分配设备名称的时候要注意,名称必须和组态里填的完全一致,大小写、连字符、下划线都算数,差一个字符就匹配不上。这一步做完再做下载,基本不会再卡。
5.3 备 PLC 的下载按钮是灰的,这不是权限问题
现象:项目树里选中 PLC_2,工具栏的下载按钮是灰色的,点不动。
原因:冗余系统的程序只能下载到当前的主 PLC,备 PLC 的程序是在启动时从主 PLC 同步过去的。原文写得很直白:下载时只能下载主 PLC,备 PLC 只有在启动时才把组态和程序从主 PLC 同步过来。
解决:先"转至在线",看哪台显示 P(Primary,主),对那台下载。不要试图绕过这个机制去单独给备机下载,就算用别的路径下进去了,下次同步也会被覆盖。
5.4 报"设备处于冗余运行状态",得先切 STOP
现象:下载进度条刚起来就报错,提示设备正在冗余运行,无法下载。
原因:1500R 在冗余运行状态下不允许下载,这是保护机制,防止主备数据不一致。
解决:转至在线,在右侧"测试"面板里把模式改为 STOP,这时候可以下载了。下载完成后启动 CPU,然后做一步关键操作:把备用 PLC 硬件上的模式开关从 STOP 拨到 RUN。这一步会触发主 PLC 到备 PLC 的同步过程(SYNCUP),组态和程序自动备份到备机。同步能成功有两个前提——同步连接正常,MRP 环网处于闭环状态,缺一个都会卡在运行状态上不去。
5.5 系统停在 RUN-Solo,备机死活不跟随
现象:程序下进去了,主机跑起来了,但系统状态一直显示单机运行,备机没有进入跟随状态。
原因:八成是 MRP 环网没闭合,或者 PROFINET 线没按拓扑视图接。原文里专门强调过"冗余系统一定要形成环网",这句话不是建议,是必要条件。
解决:对照拓扑视图,把两个 CPU 的 X1 接口 P1/P2 和 ET200SP 之间的线接成闭环,两端都插紧,看交换机端口指示灯。接法对了之后,把备机模式开关重新从 STOP 拨到 RUN,同步会重新发起,状态从 RUN-Solo 转到冗余运行。
6. 上线验证:怎么确认主备真的切换过一次
组态下进去、灯全绿,不等于冗余真的做成了。冗余系统最怕的是"看起来在跑,切换的时候才发现不行",所以验证这一步不能省,而且必须做一次真实的主备切换。
先做状态确认。转至在线,项目树里两个 CPU 的图标旁会显示 P 和 B,P 是主、B 是备,这个字母比任何诊断信息都直接。CPU 前面板的显示屏也能看:1513R 用的是窄屏 DISPLAY 面板,翻到概览页能看到同样的 P/B 标识。再打开"在线和诊断"窗口,里面会列出系统状态、配对状态、主/备 PLC 的操作状态和主备关系,这四项都正常,才算基础状态过关。
| 检查项 | 正常表现 | 异常时先看什么 |
|---|---|---|
| 项目树图标 | 一台 P、一台 B | 是否还在 RUN-Solo |
| DISPLAY 面板 | 概览页显示 P / B | 面板菜单是否进错层级 |
| 在线和诊断 | 系统状态为冗余运行 | 配对状态、同步连接 |
| ET200SP | IO 灯常绿,无诊断报警 | 看门狗因子与环网闭环 |
然后做切换验证。把主 PLC 的模式开关拨到 STOP,观察备机是否升主、ET200SP 是否保持运行。这一步最好配合上位机侧的连通性观察,如果有 C# 写的监控程序连着系统 IP,盯住它的连接状态——切换的瞬间会丢一两个包,随后自动恢复,这就说明系统 IP 的跟随是有效的。如果上位机连的是那两个实 IP,那切换之后必须手工改地址才能连上,这种情况下建议回去把系统 IP 那一栏补上。
# 在监控侧对上位机所用的系统 IP 做持续连通性观察 # 切换发生时会丢 1~2 个包,随后恢复,说明系统 IP 已跟随到新主机 ping -c 200 192.168.18.20 # 环网验证:拔掉环网中任意一根线,观察系统是否保持运行 # 插回后诊断缓冲区里应能看到冗余丢失和恢复的记录两条命令的用法不一样。第一条是长期挂着跑,重点看丢包的位置是不是集中在切换那一秒,如果丢包持续十几秒不恢复,问题在同步或者环网,不在地址。第二条是物理动作,拔线的时候挑环网里任意一段,不要一次拔两根——那是模拟双点故障,已经超出这套系统的设计边界。
还有一个容易被忽略的限制:冗余系统处于 SYNCUP 同步状态时不能建立在线连接。所以每次下载完、拨完开关,要等同步完成、状态稳定下来再去连,抢在同步过程中连会直接失败,误判成设备故障。
从那以后我每次做完冗余组态,不管多赶时间,都强制走一遍"在线看 P/B、拔一根环网线、拨一次主机 STOP"这套流程,三步走完才敢说这套系统能交付。希望帮到你。
本文还有配套的精品资源,点击获取