ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MCGS触摸屏一屏多机:S7-200 SMART以太网通信配置与排错

MCGS触摸屏一屏多机:S7-200 SMART以太网通信配置与排错 从去年开始我陆续做了好几个一台MCGS触摸屏带多台西门子S7-200 SMART PLC的项目。说实话第一次接到这种需求时我也有点没底——以前基本上是一个屏配一个PLC串口或者以太网一对一资料也好查。但现场情况往往不跟你讲道理一条小产线可能分了五个工位每个工位一台S7-200 SMART客户只想在总控台上放一台MCGS触摸屏把所有工位的数据都收上来还要能单独启停每一台设备。你要是在控制柜里塞五个触摸屏老板第一个不同意成本也压不住。后来把通信链路彻底跑通、参数调明白之后我发现这个方案其实非常成熟而且性价比很高。MCGS触摸屏的以太网驱动设计上就支持一个屏挂多台PLC关键是你得把网络规划、驱动配置、变量映射这几个环节搞对。这篇文章我就把整个实现过程从头到尾捋一遍包括硬件选型、IP规划、MCGS设备的父设备和子设备配置、多台PLC轮询刷新的性能实测以及我在现场踩过的几个典型坑和完整排查思路。如果你也是第一次做一屏多机的项目按这个路子走基本不会跑偏。1. 控制柜里的真实需求一屏带多机不是个例1.1 三种最常见的应用场景我接触到的一屏带多台S7-200 SMART需求基本可以归成三类。第一类是分段式产线的集中监控。产线按工艺分成几个工段每个工段一台PLC独立控制自己的气缸、电机、传感器但整条线需要一个总操作台操作工在这里能看见每一段的运行状态、报警信息还能一键急停。这种场景最典型也最容易理解——不是所有工段都必需本地操作屏但总控台必须能看到全部。第二类是设备改造中的旧机利旧。很多厂里有一批老设备PLC用的就是S7-200 SMART本身没坏但生产管理要求把数据统一纳入中控室监控。这时你去换PLC显然不现实直接加一台MCGS触摸屏放在就地控制柜门口把几台老设备的运行数据、故障代码、产量信息集中显示是最省钱也最省事的方案。第三类是小型水务/泵站项目。几个泵房分散在厂区不同位置每个泵房一台S7-200 SMART做本地控制中控室一台MCGS触摸屏通过以太网把几台PLC全部拉上来远程监视水位、压力、泵启停状态。这类项目通常点位不多但距离远用网线通过交换机传输比拉一堆模拟量线要方便得多。1.2 为什么优先选以太网而不是RS485串口以前做一屏多机很多人第一反应是RS485总线挂多个站。S7-200 SMART确实支持串口通信MCGS也支持通过串口挂多台PLC但我在实际项目里体验下来以太网方案在几个维度上明显更好用。首先是速度和数据量。RS485的波特率一般做到19200或者38400点位数一多刷新慢得让人着急。以太网是百兆/千兆底子跑几十上百个点位毫无压力。其次是布线RS485是手拉手菊花链中间断一个节点后面全瘫以太网用交换机做星型连接任何一条网线出问题只影响那台PLC排查故障的时候轻松太多。再者是隔离与抗干扰网线传输的是数字差分信号加上变压器隔离在电机变频器比较多的现场比RS485更稳。当然串口方案有一个优势是成本低不需要交换机。但对于多台PLC的集中监控来说一台工业级百兆交换机的价格也就一两百块钱省这点钱后面维护成本反而更高不划算。2. 硬件选型与网络规划通信能不能成七成在前期2.1 触摸屏选型只要带以太网口基本都能胜任MCGS的触摸屏型号很多从入门级的TPC7062系列到带双网口的TPC1061系列都有。做多台PLC通信我的建议是按屏幕尺寸和分辨率来选通信能力上基本不用担心。TPC7062Ti是7寸屏网口是百兆带三四台S7-200 SMART绰绰有余如果画面点位多、要做多页面切换和报警记录建议上10寸屏操作和组态都舒服。有一点要提醒选型时确认触摸屏网口不是选配。个别老款或者特殊定制型号可能阉割了以太网口订货时看准参数表。另外MCGS触摸屏的以太网口一般支持自动协商但实际接工业交换机时把网口速率锁定在100M全双工有时候更稳个别交换机自动协商会出奇怪问题。2.2 S7-200 SMART的网口能力一台PLC能接几个屏S7-200 SMART本体集成一个RJ45以太网口这是它的一大卖点。在选型上SR系列继电器输出和ST系列晶体管输出都带这个网口而且通信能力一致你用哪个系列都不影响以太网通信功能。这里有个非常关键的参数每台S7-200 SMART CPU最多支持8个以太网连接。这8个连接包括编程软件Micro/WIN SMART的在线连接、触摸屏或上位机的连接、以及PLC之间GET/PUT指令通信占用的连接。实际项目里如果你一台PLC同时被电脑在线监控、被触摸屏连接、又被另一台PLC的GET/PUT指令访问连接资源就会被占用掉几个。多台触摸屏同时连同一台PLC也受这个限制虽然8个连接对绝大多数场景够用但排查通信时不时掉线时一定要想到它。2.3 三种网络拓扑与IP地址规划一屏多机最常见的拓扑是星型结构MCGS触摸屏接交换机若干台PLC分别接交换机所有设备在同一个局域网内。这种结构简单可靠增加或减少一台PLC都只动一根网线。如果项目现场机柜分散也可以把交换机级联——比如1号柜和2号柜各放一个小交换机两个交换机用网线串起来触摸屏在1号柜PLC分散在1号和2号柜里。要注意的是级联交换机的数量别太多普通工业交换机三级以内问题不大再多的话延迟和交换机兼容性风险都会上升。IP地址规划建议用一张表提前定好不要到了现场随手填。下面是我最近一个三台PLC项目的规划你可以直接参考设备IP地址子网掩码备注MCGS触摸屏192.168.1.20255.255.255.0固定IP网段独立PLC_1号192.168.1.21255.255.255.01号工位PLC_2号192.168.1.22255.255.255.02号工位PLC_3号192.168.1.23255.255.255.03号工位编程电脑192.168.1.10255.255.255.0调试时连接用规划时有两点经验一是尽量让触摸屏和所有PLC在同一个网段跨网段不是不行但涉及网关、路由设置现场调试麻烦二是不要把PLC的IP设成192.168.1.1或255这类常用地址万一和现场其他设备撞了排查起来非常头疼。S7-200 SMART出厂默认IP一般是192.168.2.1拿到手第一件事就是用编程软件改成你规划好的地址。3. 通信驱动机制MCGS的父设备、子设备到底是怎么回事3.1 S7-200 SMART的以太网通信本质S7-200 SMART的以太网口支持西门子S7协议端口是102。MCGS触摸屏通过这个协议直接读写PLC的存储区不需要在PLC程序里写任何通信代码。这个协议本质上就是主站触摸屏逐个发起请求PLC是被动响应的从站。这里有个容易混淆的概念S7-200 SMART的S7协议和S7-1200/1500的S7协议不是完全一样的。虽然都叫S7通信但S7-200 SMART有自己的一套实现地址区间、报文格式都有差异。所以你在MCGS的设备管理里要选对驱动选S7-200驱动去连S7-200 SMART一般也能用但会有一些细节坑后面排错部分我会具体说。3.2 父设备与子设备的角色分工MCGS组态环境中以太网通信设备有个很清晰的层级结构父设备负责网络传输子设备负责具体协议解析。父设备通常选通用TCP/IP父设备你要配置的主要是触摸屏自身的本地IP地址一般填0.0.0.0让系统自动接管或者显式填触摸屏的IP地址以及网络端口。子设备才是真正对应每一台PLC的东西添加子设备时选择S7-200 SMART以太网驱动然后填写目标PLC的IP地址、CPU类型、通信超时等参数。一台MCGS触摸屏带N台PLC就是在同一个父设备下面挂N个子设备每个子设备指向不同的IP地址。这个结构理解对了后面的配置就顺理成章你增加一台PLC只是往父设备下面再挂一个子设备改一下IP地址而已。子设备的数量在MCGS里没有硬性限制实际能带多少台取决于你的数据量和对刷新速度的要求这个后面第五部分详细说。3.3 通道、变量和地址映射MCGS里通信数据的读写是通过通道这个概念和PLC地址做映射的。每个通道对应PLC中的一个地址比如VB100、VW200、VD300、M0.0、I0.0这些。一个通道可以关联到画面上的一个数值显示元件或者一个按钮操作元件。我打个比方通道是管道变量是水龙头。你必须先把PLC的某个地址和MCGS的某个变量绑定通道连接画面上的元件才能读到这个变量值。很多新手在画面上放了一个数值显示控件但运行起来显示0大概率就是没在设备窗口里做通道连接或者通道地址填错了。下面是一个典型的地址映射表PLC地址区数据类型MCGS变量示例说明VW10016位整数当前温度读温度传感器经PLC转换后的值VD20032位浮点设定压力触摸屏输入设定值写入PLCM0.0位启动按钮状态启停控制按钮Q0.3位电机运行指示PLC输出状态反向显示到画面4. 实操配置把三台PLC同时跑通的关键步骤4.1 第一步PLC端IP地址设置拿到S7-200 SMART以后先不要急着接触摸屏。用编程电脑连接PLC打开Micro/WIN SMART软件在通信对话框里找到在线PLC然后在系统块里修改IP地址、子网掩码下载到PLC。这一步做完把每台PLC的IP贴着标签写清楚后面排查故障会省很多时间。修改IP时有个小细节S7-200 SMART的IP地址是在系统块里设置的不是像很多国产PLC那样在编程软件里直接写IP。系统块修改后必须下载而且PLC重启后才会生效。下载完记得重新搜索在线设备确认IP确实改过来了。4.2 第二步MCGS工程里添加父设备和子设备打开MCGS嵌入版组态环境在设备窗口里双击打开设备组态。在工具箱里先添加通用TCP/IP父设备如果工具栏里没找到可以从设备管理里把通用TCP/IP父设备和西门子S7-200 SMART以太网这两个驱动添加到当前工程。父设备添加好后在它下面依次添加子设备。每个子设备都要设置远程IP地址填目标PLC的IP比如192.168.1.21CPU类型选对应的S7-200 SMART型号通信超时时间默认值一般可以用但如果下面挂了很多台PLC后面我建议根据实测调整采集周期这是重点后面性能部分详细讲把三台PLC分别添加成三个子设备彼此的IP地址不要填错这是整个多台通信控制最核心的配置步骤。完成后设备窗口的结构大概是通用TCP/IP父设备西门子S7-200 SMART以太网[PLC_1: 192.168.1.21]西门子S7-200 SMART以太网[PLC_2: 192.168.1.22]西门子S7-200 SMART以太网[PLC_3: 192.168.1.23]4.3 第三步建立通道并关联变量在子设备下面右键添加通道。通道类型按PLC地址区分位地址选位字节/字/双字选对应类型。比如你要读VW100就添加一个16位无符号整数通道地址填100对应的数据对象变量可以现场新建也可以选择已有变量。读VD200这种32位浮点数记得选32位浮点类型否则数值解析出来会完全不对。这里有个常见的坑MCGS里S7-200 SMART的V区地址通道地址是相对地址。比如PLC侧是VB100MCGS通道地址就填100对应V区偏移100字节而不是写VB100三个字母。你的组态软件版本较新的话有的驱动会提示你选择地址区V、M、I、Q等然后地址填数字方法和上面一致。4.4 第四步画面组态与元件绑定设备窗口配置完成后切到用户窗口新建一个画面。画面布局可以参考下面的思路做一个分设备总览页用标签页或者画面切换按钮分成三个子页面每个页面放一台PLC对应的运行状态灯、温度/压力数值、启动停止按钮。元件绑定变量的方法是数值显示控件关联通道对应的变量按钮的抬起操作或按下操作关联M区位的置位/复位变量。这里有一个我要特别强调的操作细节启停按钮不要用切换操作用置位和复位两个动作分开。原因很简单切换操作容易因为通信瞬间延迟导致误触发——比如操作工点一下启动如果通信卡了一下按钮状态在触摸屏上没变他再点一下结果就是发了两次命令。置位、复位分开写点击发一次不依赖触摸屏本地状态安全得多。4.5 第五步下载工程并实测通信状态工程做好后在MCGS里点下载把组态工程下载到触摸屏。触摸屏和PLC接同一个交换机后正常应该能在画面里看到数据在刷新。如果数据不动或者显示通信失败别慌参照第六部分排错。下载时有一个容易忽略的选项下载工程前先在MCGS系统设置里确认触摸屏的IP地址。MCGS触摸屏自身的IP是在系统参数里设置的不是在组态工程的设备窗口里。通常触摸屏系统设置里可以查看到当前IP如果和PLC不在同一网段通信必然失败。我第一次做的时候就是忘了改触摸屏IP结果PLC IP设好了、MCGS驱动配了半天全部白忙活。5. 多台PLC轮询刷新的性能实测与工程优化5.1 轮询机制所有子设备是排队被问询的MCGS与多台PLC通信时触摸屏是主站它会按照子设备的排列顺序依次对每一台PLC发起读写请求。也就是说它先问PLC_1 给我VW100的值等PLC_1回包后再问PLC_2等PLC_2回包后再问PLC_3循环往复。这个过程叫轮询。轮询带来的直接后果是子设备数量越多每一台PLC被刷新到的间隔就越长。这不是BUG是所有主从式以太网通信的固有机制。如果你在画面上的电机运行状态指示灯对实时性要求很高就要意识到当触摸屏正忙着读取PLC_2的数据时PLC_1的状态变化在画面上的反映会延迟一到两个轮询周期。5.2 实测数据变量数量和子设备数量对刷新速度的影响我在实验室环境里用一台MCGS触摸屏带三台S7-200 SMART做过一个简单测试每台PLC只读取10个VW整数变量采集周期设置100ms实测下来每台PLC的数据刷新时间大约在200ms-300ms左右。后来把每台PLC的变量增加到40个刷新时间就涨到了600ms-900ms。再往上加到100个变量刷新时间直接超过2秒画面上的数值变化已经能明显看出一顿一顿了。这个测试结论很直白多台PLC通信的瓶颈不在带宽而在轮询次数。每一个变量都需要一次通信请求变量越多越拖慢整体刷新。所以做一屏多机项目时能少采集就少采集千万别把PLC里所有的V区数据都读到触摸屏上。5.3 优化手段让轮询更高效针对轮询慢的问题我总结了几条管用的优化手段**第一按需分组采集。**MCGS子设备可以设置多个采集周期比如把100ms周期的通道组只留急停、报警这类信号把温度、压力等变化慢的变量放到1000ms周期组。这样高频轮询的通道少整体刷新速度能快上一大截。**第二PLC侧数据整合。**如果你需要读取的是多个连续地址的数据在PLC程序里把数据搬运到一段连续的V区这样MCGS可以用一条通信指令读取大块数据而不是一次读一个变量。S7-200 SMART支持连续读取地址越连续效率越高。**第三别用触摸屏做历史数据存储的重活。**想把PLC里的数据定时记录到U盘或者SD卡看起来很美好但触摸屏一边要轮询多台PLC一边还要频繁写存储设备刷新性能会肉眼可见地下降。我的习惯是多台PLC项目里触摸屏只做实时显示和操作历史记录交给上位机系统。**第四合理设置通信超时。**有些现场把子设备的通信超时设成3秒5秒一旦某台PLC掉线或响应慢整个轮询队列会被拖住3秒5秒其他PLC全部跟着遭殃。建议把超时时间压缩到500ms-1000ms让断线的那台PLC快速被跳过不影响其余的刷新。6. 排错实录三台PLC项目里高频故障的完整排查链路做多台通信的项目最怕的就是时好时坏的通信问题。下面三个故障是我在这些项目里遇到最多、也最具代表性的我把排查思路完整写出来照着走能省下半天弯路。6.1 故障一触摸屏显示通信失败但编程软件能连上PLC这是很多人第一回做时会撞上的问题。现象是Micro/WIN SMART能在线监控PLC但MCGS触摸屏画面上一片红叉或者通信状态灯报警。排查链路先确认触摸屏IP和PLC IP是否同一网段。在触摸屏系统设置里查看IP比如触摸屏是192.168.1.20PLC是192.168.1.21同一网段没问题如果触摸屏还是默认的192.168.2.x而PLC已经改成192.168.1.x那必挂。改触摸屏IP后重启再看通信状态。确认MCGS子设备里填的IP地址和实际PLC一致。这个看似废话但项目里多台PLC改过IP之后最容易出错检查一下子设备属性里远程IP地址。排除电脑占用连接数。前面说过S7-200 SMART最多8个以太网连接如果你的编程软件还开着在线监控把它关掉再测试触摸屏通信。我就是因为一边在线监控一边调试触摸屏通信断断续续折腾了半个小时才反应过来。换一台交换机试或者直连。把触摸屏网线直接插到PLC的网口不走交换机如果直连正常问题大概率出在交换机或网线上。这样做可以快速把链路故障定位出来。一个项目里最终往往是IP不在同一网段或者驱动版本太老导致的。### 6.2 故障二一台PLC通信正常第二台经常掉线这个故障特别像鬼打墙单独测试PLC_1和触摸屏通信稳得很单独测试PLC_2也稳但两台同时接上PLC_2就时不时掉线重连。排查链路检查两台PLC的IP是否冲突。用Micro/WIN SMART分别搜在线设备确认每台PLC实际IP和设备标签一致。这个故障最常见的原因就是两台PLC用了同一个IP地址触摸屏轮询时请求发给了两台PLC响应冲突导致其中一台掉线。检查交换机的端口和网线质量。多台设备同时通信时某个交换机端口接触不良或者网线水晶头松动会导致那一路通信时断时续。换一根网线或者换一个交换端口对比测试。观察子设备采集周期是否过短。如果把每台PLC的采集周期都设成50ms两台PLC轮询时每台PLC实际上只有一半的通信触发时间大量的请求还没来得及处理就超时了。把采集周期放宽到100ms甚至200ms再观察。看PLC是否频繁STOP/RUN切换。S7-200 SMART在STOP状态下以太网通信仍然可用但如果PLC程序里有重启动或者被上位机误写入停止指令PLC重启的几十秒内通信肯定中断。在PLC程序里检查有没有对特殊寄存器位做写入操作。这类问题处理完之后通常就是IP冲突或者网线接触不良。我在某个项目里甚至遇到过交换机某端口百兆自适应失败跟PLC协商成千兆模式反而丢包的奇葩情况换端口解决。6.3 故障三数值显示为0或者和PLC里实际数据差很多画面显示0、负数翻成很大的正数、浮点数变成乱码这些都是通道地址和数据类型不匹配的典型症状。排查链路核对通道地址和数据类型。PLC里VW100存的16位整数MCGS通道就必须建16位整数PLC里VD200存的32位实数MCGS通道就必须建32位浮点。最常见的是把32位浮点数据用16位整数通道去读读出乱七八糟的数字。检查字节顺序。不同品牌PLC对32位数据的字节排序可能不一样。S7-200 SMART和MCGS之间的32位浮点数通信如果你发现数值明显不对但类型没错尝试在MCGS通道属性里调整字序或字节序选项。确认PLC地址有没有实际值。如果PLC程序根本没往VW100里写过数触摸屏读回来就是0这是数据源的问题不是通信问题。用Micro/WIN SMART的状态图表监控相应地址确认PLC侧确实有数。注意V区偏移。S7-200 SMART的V区很大但地址编号要对应。PLC里用的是VB100MCGS里通道地址填100就对了如果填VB100带字母有些驱动版本会解析错误。建议翻一下你用的MCGS驱动说明书确认地址格式写法。这套排查逻辑其实就是把问题切成网络通不通协议对不对数据格式对不对三段每段单独验证。碰到通信故障不要一上来就怀疑驱动、怀疑产品质量按链路一步步缩小范围多数问题都能快速定位。一些额外的工程习惯最后分享几个我做这类项目时养成的习惯说不上多高级但关键时刻真的能救命。第一所有网线的标签一定要贴好。控制柜里有触摸屏线、交换机线、好几台PLC的线品牌型号一样的话从外表根本分不清谁是谁。每根网线两端贴上从哪到哪的标签排错时节省的时间是几何级的。第二MCGS工程文件在修改前一定备份。多台PLC的工程配置比较繁琐特别是子设备、通道、变量几十个的时候改坏一个地方想要回退没有备份就得从头再来。我一般习惯改之前把工程另存为一个带日期的副本。第三给每一台PLC和触摸屏做一张IP参数卡片放在控制柜门内侧。内容包括设备型号、IP地址、子网掩码、最后修改日期、归谁负责。项目交付后不管过多久你回去维护都还看得懂自己当时是怎么规划的。做一屏多机通信控制核心就三个词规划、配置、验证。网络IP规划对了驱动配置不马虎最后联调时按链路逻辑排错S7-200 SMART这个级别的项目基本都能顺利落地。希望这篇能帮到正在做或者准备做类似项目的你。
返回列表