MCGS触摸屏与S7-200 SMART PLC以太网通信配置详解
只要摸过中小型自动化项目几乎绕不开MCGS触摸屏和西门子S7-200 SMART PLC这对组合。以前老项目多走RS485速度慢、布线乱调试时一个干扰就能让人在现场耗半天现在新项目基本都改成以太网一块MCGS屏带好几台S7-200SMART PLC通过以太网通信控制已成非常常见的组网方式。这篇不绕弯子直接把硬件、IP规划、PLC侧和触摸屏侧配置、多台PLC轮询、现场排障、外加变频器联动这些事一次讲透适合准备做上位机联调的电气工程师也适合刚学PLC通信的入门朋友。1. 方案选型为什么我放弃RS485直接用以太网1.1 三种通信方式横向对比很多初学者刚拿到项目第一反应是“用485吧便宜”。确实RS485方案在单台PLC、距离短、点数少的场景里依然能用但只要设备数量上到两三台或者现场变频器一多485的弊端就非常明显。我列一张实际选型中常用的对比表对比项RS485串口以太网TCP/IPPROFINET通信速率通常9.6k~115.2kbps10/100Mbps100Mbps节点数量理论32个实际受驱动能力限制几乎不受限靠IP区分靠设备名/IP布线方式手拉手、菊花链星型接交换机星型或环网抗干扰能力一般需屏蔽双绞线加接地较好网线本身隔离好工业协议调试手段串口助手看报文ping、抓包软件直观看工程软件诊断扩展多台PLC不方便冲突多非常方便加IP即可方便但设备成本高从这张表能看出来以太网在速率、扩展性、调试便利性上全面占优而且S7-200 SMART本体就带一个以太网口MCGS触摸屏也基本都是网口标配两边都是现成硬件不额外花钱。真正让我下定决心放弃485的原因是现场调试速度完全不一样用485排查干扰经常要跑现场好几趟用网线基本可以坐在电脑前把问题看个七八成。1.2 以太网方案适合什么项目我自己接触比较多的是这几类一台HMI对应2~10台S7-200SMART PLC类似泵站、小型DCS、多工位设备。HMI加PLC再加变频器/仪表变频器数量多但采样周期不要求特别快。需要远程监控或后续上云的项目以太网天然方便对接上位机、MQTT网关。客户后期要扩展设备直接再拉一根网线、加一个IP就完事。当然以太网不是万能的。如果只是单台PLC、控制几个泵距离超过100米、中间又不方便架交换机那考虑RS485或光纤收发器更实际。不过大部分情况下今天聊的这套MCGSS7-200SMART以太网方案属于“抄作业”成功率最高的组合。2. 网络拓扑、硬件清单与IP规划2.1 核心硬件清单做这类项目我先按下面的清单备料MCGS触摸屏常见型号TPC7062TD、TPC1061TD带一个RJ45网口即可。西门子S7-200 SMART PLCCPU SR20/ST20/ST40/CR40都行内置以太网口。工业以太网交换机百兆就够选带导轨安装的更好。网线若干超五类或六类长度控制在90米以内更稳。笔记本电脑装好STEP 7-MicroWIN SMART编程软件必要时装Wireshark。24V电源给触摸屏和PLC供电。有一点要专门提醒别以为所有S7-200 SMART都带网口早期一些CR系列可能不带以太网买之前一定要看CPU型号尾标和实物接口。MCGS触摸屏也要分清型号部分老款TPC只有串口没有网口规划前先把硬件确认清楚不然组态做完了才发现少了网口整个计划全被打乱。2.2 IP地址规划前期10分钟省后期2小时以太网通信最核心的一件事就是IP规划。我见过太多现场故障最后查出来都是IP冲突或者不在同一网段。假设项目是三台PLC加一块MCGS屏我通常这样分配设备IP地址子网掩码备注MCGS触摸屏192.168.1.10255.255.255.0本地IP1号PLC192.168.1.11255.255.255.0S7-200 SMART2号PLC192.168.1.12255.255.255.0S7-200 SMART3号PLC192.168.1.13255.255.255.0S7-200 SMART笔记本电脑192.168.1.100255.255.255.0调试机原则很简单所有设备IP前三个数字必须一致最后一个数字不要重复子网掩码统一255.255.255.0。网关可以不填因为是在同一个局域网内不跨网段访问。这里千万注意S7-200 SMART出厂IP是192.168.2.1如果不改你的电脑和触摸屏设在192.168.1.x就完全不在一个网段通信必然失败。我一般拿到PLC第一件事就是改IP改成跟项目网段一致再往下做。2.3 接线方式直连还是过交换机单台PLC加一块触摸屏可以用网线直接连现在的PLC和触摸屏网口大多支持自适应普通直通线就能用不需要刻意找交叉线。只要设备数量超过两台或者以后还想接电脑调试就老老实实加一台工业交换机。星型接法好处很明显任何一台设备掉线不影响其他设备排查问题也容易。PLC掉线时只需拔掉那根网线其他设备照常工作。现场布线切忌图省事走强电桥架网线尽量远离变频器输出线、动力电缆。以太网抗干扰能力虽然比485强但高干扰环境下屏蔽层两端接地、网线走单独的线槽仍然值得做。3. PLC侧配置IP设定与程序准备3.1 在STEP 7-MicroWIN SMART里改IP这一步操作很简单但很多人第一次做会找不到入口。我按步骤拆开讲用网线把电脑和PLC连起来先给电脑设一个和PLC出厂IP同网段的地址比如192.168.2.10、掩码255.255.255.0。打开STEP 7-MicroWIN SMART软件点击左侧“通信”按钮双击“查找CPU”。软件会自动搜索到PLC显示当前IP地址和MAC地址。点击“系统块”再点“以太网端口”把IP地址改成项目规划里的地址比如192.168.1.11子网掩码填255.255.255.0。下载系统块到PLC下载完成后PLC会自动重启IP生效。改完IP之后再把电脑IP改回192.168.1.100用ping命令验证一下打开命令提示符输入ping 192.168.1.11能ping通说明物理层正常。这里有个小窍门如果电脑和PLC之间经过交换机查找CPU时可能搜索不到多半是Windows防火墙拦截了需要临时关闭防火墙再搜索或者把STEP 7-MicroWIN SMART的异常检测排除项加上。3.2 PLC程序里要不要写通信代码这是新手问得最多的一个问题。MCGS触摸屏和S7-200 SMART通过以太网通信走的是S7协议也就是ISO-on-TCP端口102。这个协议下触摸屏作为主站主动发起请求PLC作为从站被动响应不需要用户在PLC程序里写任何通信握手代码。也就是说你只要把PLC的IP地址设对程序里正常写逻辑MCGS就能直接读取I区、Q区、M区、V区以及通过地址映射读取模拟量通道。这一点比Modbus RTU省事太多Modbus RTU还需要在PLC里调用Modbus库指令初始化从站S7协议完全不用。但这里有前提你要明确告诉自己哪些数据是给触摸屏看的。我建议所有需要HMI读写的数据统一规划到V区或M区不要零散地分散在I/Q区里。原因有两个一是V区容量大地址连续驱动轮询效率高二是程序维护时好找。3.3 V区地址规划示例下面是我在一个三泵站控项目里常用的地址规划方式数据含义PLC地址数据类型说明1号泵启动命令M0.0位HMI写1号泵运行状态I0.0位HMI读2号泵启动命令M0.1位HMI写2号泵运行状态I0.1位HMI读1号泵电流VW100字PLC写2号泵电流VW102字PLC写系统频率设定VD200浮点HMI写系统累积运行时间VD204浮点PLC写这份地址表设计完以后我会打印出来贴在控制柜里PLC程序、触摸屏组态、后期维护都照这张表走。最怕的是PLC程序和HMI各做各的地址之间没有对应关系调试时一个个对人会很崩溃。4. MCGS触摸屏组态从新建工程到连上第一台PLC4.1 新建工程并选择触摸屏型号打开MCGS嵌入版组态软件后第一步新建工程弹窗里选择你实际使用的触摸屏型号。不同型号的屏幕分辨率、存储空间有差异选错会有兼容问题。新建完成后会看到MCGS主界面重点关注左边的“设备窗口”和“用户窗口”。设备窗口负责通信驱动用户窗口负责画面设计。这个思路跟组态软件都差不多先做通信后做画面。4.2 添加S7-200 SMART以太网驱动双击“设备窗口”进入设备组态界面在“设备工具箱”里找到“S7-200 SMART”驱动的入口。如果你的软件版本比较老找不到这个驱动可以去MCGS官网下载中心更新驱动库把最新驱动导入后再添加不要老版本硬凑部分老驱动地址格式不兼容容易白折腾。添加驱动后双击“设备0”设置以下核心参数参数项填写内容说明本地IP地址192.168.1.10触摸屏自身IP远程IP地址192.168.1.111号PLC的IP端口号102S7协议固定端口通信超时500ms默认即可采集周期500ms后续可优化其中最容易出问题的是“本地IP”和“远程IP”填反很多人把PLC的IP填到本地地址里结果通信直接失败。记住本地是触摸屏自己远程是PLC别弄反。4.3 建立变量通道并绑定PLC地址在MCGS实时数据库里建立用户变量再回到设备窗口把变量和PLC地址通道一一绑定。比如建一个“启动1”变量类型选择“开关型”通道地址填M0.0建一个“运行状态1”类型选“开关型”通道地址填I0.0模拟量“1号泵电流”类型选“数值型”地址填VW100。绑定完成后在画面里放一个启动按钮把按钮的“操作属性”关联到“启动1”变量再放一个指示灯关联到“运行状态1”变量。这样基本画面就有了。4.4 联调测试模拟运行不等于硬件通信组态完以后很多人习惯点“模拟运行”发现设备状态变量一直显示离线就以为工程有问题。这里要提醒一下MCGS模拟运行主要测画面逻辑很多版本的模拟运行不会真正启动以太网驱动或者驱动工作但不稳定。真要验证通信推荐两种方式使用MCGS组态软件里的设备调试功能选择“设备0”在线查看通道采集值这个能看到PLC返回的实际数据。把工程下载到真实触摸屏通电联调在触摸屏上查看画面变量变化。我一般做法是在PLC程序里先把某几个数据强制成固定值比如让VW10050然后看MCGS通道里是不是显示50。数值对上了说明链路通没对上按第6章的排查步骤走。5. 多台PLC通信控制的实现细节5.1 添加第二台、第三台PLC设备实例如果要控制多台PLC关键操作是在“设备窗口”里添加多个该驱动的实例。操作方法很简单在设备工具箱里再次双击“S7-200 SMART”驱动软件会自动生成“设备1”。然后双击“设备1”把远程IP改成第二台PLC的IP比如192.168.1.12。注意MCGS里不同的设备实例必须有不同的“设备名称”默认是设备0、设备1、设备2建议改成有意义的比如“1号PLC设备”“2号PLC设备”方便后面变量绑定时一眼看清。修改名称不会影响通信只影响工程可读性。我见过最典型的错误是添加了设备1但变量通道全部绑到了设备0导致第二台PLC的数据全部从第一台PLC里读结果一台正常、一台乱跳。根因就是绑定设备选错了。5.2 变量绑定策略不同设备对应不同变量多台PLC时我建议在实时数据库里把变量名直接加上序号区分例如“1号启动”“2号启动”不要叫“启动A”“启动B”这种容易模糊的名字。下面是一份典型的双PLC变量绑定表MCGS变量名连接设备PLC地址类型说明1号启动设备0M0.0位1号PLC1号状态设备0I0.0位1号PLC1号频率设定设备0VD100浮点1号PLC2号启动设备1M0.0位2号PLC2号状态设备1I0.0位2号PLC2号频率设定设备1VD100浮点2号PLC可以发现设备0和设备1里的PLC地址可能完全相同但因为远程IP不同读到的就是不同PLC的数据。MCGS的机制就是这样变量绑定到设备实例设备实例绑定到远程IP。5.3 轮询机制与采集周期优化MCGS对多台PLC的访问本质上是轮询。它会按照设定的采集周期依次向设备0的设备1发起请求。轮询会带来一个直接问题设备越多单台PLC的数据刷新越慢。比如三台PLC每台采集周期设200ms那么理论上第一台的数据刷新间隔差不多要600ms如果某个通道的采集周期再长一些人操作时就会感到明显的延迟。针对这个我的做法是把变量分两类快速类按钮、状态位、报警点这类要求响应快放在采集周期200ms左右的设备通道里。慢速类温度、液位、累积量这类放在采集周期1000ms以上不需要每个扫描周期都刷新。另外MCGS支持一个设备实例下挂很多通道但通道太多会影响单次通信效率。实际项目中如果一台PLC里有大量模拟量需要HMI显示我会在PLC程序里先把这些数据打包到连续的V区地址比如VW100到VW200共50个字这样MCGS读取时能连续批量读取比一个个离散地址读取要高效得多。5.4 通信状态显示别等出问题才想起多台PLC通信最怕的是某台PLC掉线了操作员在画面上还不知道继续点启动结果没反应然后现场乱套。我建议在组态画面里专门做一个“通信状态指示区”把设备的通信状态变量显示出来。MCGS每个设备实例都自带通信状态变量通常形如设备0的通讯状态、设备1的通讯状态。通信正常时状态值为1失败时为0。我在画面里放几个圆形指示灯绿色表示正常红色表示掉线并在红色状态旁边加文字“1号PLC通信中断”这样操作员能第一时间发现是哪一台出了问题。6. 现场调试与常见故障排查实录6.1 PING不通先从物理层查起通信故障第一步永远是ping。电脑接在同一交换机上命令提示符里输入ping 192.168.1.11能通说明网络链路没问题然后去查MCGS和PLC的协议配置ping不通按下面的顺序排查检查PLC和交换机之间的网线是否插好网口指示灯是否亮。交换机上对应端口灯不亮换根网线试试。看电脑IP是否和PLC在同一网段确认子网掩码是不是255.255.255.0。如果电脑同时连着Wi-Fi和有线网卡临时禁用无线网卡避免多网卡路由混乱。Windows 11系统有时候“以太网”显示“没有有效的IP配置”先在网络适配器设置里给有线网卡指定静态IP别用自动获取。临时关闭Windows防火墙有些情况防火墙会拦截ICMP和S7通信。有一次我在客户现场折腾了快半小时最后发现是PLC的IP被之前调试的人改成了192.168.0.11跟项目网段完全不搭边。所以排查前先看一下PLC实际IP最省事的方法是用STEP 7-MicroWIN SMART的查找CPU功能它能列出当前链路上所有能找到的PLC和IP。6.2 MCGS通信不上的几个高频猪队友pin通了PLC但MCGS就是连不上这种情况集中在以下几处本地IP填错。前面强调过本地IP必须是触摸屏自身的IP不是电脑IP也不是PLC IP。远程IP填错。多台PLC时设备1的远程IP必须对应到第二台PLC。端口号被改。S7协议端口默认102有些驱动参数里端口号留空或者填成了502那是Modbus TCP的端口会导致连接失败。触摸屏网口没插对。部分MCGS屏幕有两个网口比如一个LAN一个WAN把网线插到不参与通信的网口上数据自然过不去这时候最好进触摸屏系统设置确认网络状态。通道地址超出范围。S7-200 SMART的V区地址不是想写多少就写多少超出CPU实际容量驱动会返回错误。遇到这类问题我习惯用MCGS的设备调试工具或调试助手打开对应设备实例逐条看通道的“采集值”和“错误信息”。如果有一条通道地址越界有些版本的驱动会把整个设备通信暂停所以先看错误信息往往比挨个改地址效率高。6.3 用Wireshark抓包把S7通信看得明明白白如果上面都查完了还不行就要上抓包工具了。电脑上装Wireshark选择连接PLC的那块网卡然后设置过滤表达式ip.addr192.168.1.11 tcp.port102这时候用MCGS或者编程软件主动访问一次PLCWireshark里就能看到TCP三次握手以及COTP、S7通信的报文。重点看有没有正常的TCP连接建立。如果看到SYN发出去但没有SYN-ACK回来多半是IP不通或PLC没有响应如果看到RST可能是端口不对或驱动协议类型不匹配如果完全没有任何报文说明MCGS驱动根本没往这个IP发包检查触摸屏侧配置。实话讲Wireshark对S7-200 SMART通信的报文解析不是特别友好它不像Profibus那样带完整的协议解码器但抓TCP握手和重传已经足够定位大部分问题。我把它当成“最后一击”的排查手段前面几步处理完还有问题才用。6.4 VMware里跑TIA或MicroWIN网络模式别选错不少工程师习惯在虚拟机里装TIA或者STEP 7-MicroWIN SMART在开发和调试时也直接从虚拟机连PLC。这里有一个高频坑虚拟机的网络模式会直接影响能不能发现PLC。VMware下把虚拟机网络适配器设置为“桥接模式”并且在“虚拟网络编辑器”里把VMnet0桥接到物理有线网卡这样才能让虚拟机里的软件直接跟交换机上的PLC通信。如果用NAT模式虚拟机的流量经过宿主机转发很多组播和发现报文传不过去MicroWIN的查找CPU功能经常找不到设备。我踩过一次坑以后干脆在实体机里装MicroWIN虚拟机只用来做TIA仿真和组态开发省得来回切换网络。6.5 故障速查表下面这张表是我在笔记里长期维护的现场排查时直接对照现象可能原因解法ping不通PLCIP不在同网段/网线断/防火墙查IP、换网线、关防火墙ping通但MCGS连不上端口不是102/驱动类型不对改端口、换驱动MCGS里部分变量不刷新地址越界/绑错设备查通道地址、核对设备实例多台PLC里只有一台正常其他设备远程IP填错逐一核对设备IP通信时好时坏IP冲突/网线接触不良/干扰查ARP冲突、换线、理线槽设备通信状态为0驱动没启动/触摸屏网口不对检查设备启动勾选、网口7. 扩展应用从屏到PLC再到多台变频器7.1 三层架构HMI只管PLC变频器交给PLC标题里提到“PLC控制32台变频器程序设计”这其实是MCGS以太网方案的经典延伸。通常现场会有一块MCGS触摸屏、若干台PLC、一大批变频器。这时候我不建议让MCGS直接去连每一台变频器原因很简单MCGS驱动对变频器的协议支持不如对PLC那么完善调试成本高。变频器数量一多触摸屏单点轮询压力太大画面刷新会卡。触摸屏和变频器直接通信本质上是两个不同通讯层级混在一起后期维护特别痛苦。更合理的架构是三层最上层MCGS触摸屏通过以太网S7协议和PLC通信PLC作为Modbus主站通过RS485或Modbus TCP轮询底层变频器PLC把变频器的状态、电流、故障码汇总到固定的V区MCGS只读取这些汇总数据。这样设计的好处是触摸屏的通信压力被PLC承接下来32台变频器哪怕轮询慢一点也完全不影响HMI层的数据刷新。实际操作时PLC里的Modbus轮询程序把32台变频器按地址排好每台分配一段寄存器区间比如第1台变频器的频率地址对应VB300第2台对应VB310依此类推触摸屏统一通过V区批量读取。7.2 一台PLC控制3台变频器的三段速控制如果项目只是控制3台变频器跑固定速段比如输送线上的快、中、慢三速PLC完全不需要写复杂的通信报文用几个Q点做速度选择端子即可。变频器常见的X1、X2端子组合正好对应三段速X1闭合对应低速、X2闭合对应中速、X1和X2同时闭合对应高速。PLC程序里用两位输出Q0.3和Q0.4控制X1、X2正常启停通过Q0.0控制变频器运行端子。这种做法简单可靠速度切换响应快也不用担心通信波特率、从站地址这些参数。但如果要求频率连续可调、要读取每台变频器的实时电流那还是走Modbus通信更实际。PLC通过Modbus指令循环读写3台变频器的控制字、状态字和设定频率触摸屏上可以显示每台变频器的运行频率和电流还能在线修改频率设定。7.3 星角降压启动控制逻辑参考星角降压启动是电机控制里的常考内容经常有朋友问PLC梯形图怎么写。这里结合通信控制项目给一个简化版的语句表参考假设Q0.0是主接触器、Q0.1是星形接触器、Q0.2是角形接触器I0.0是启动按钮I0.1是停止按钮T37是星角切换延时// 启动主接触器星形接触器吸合 LD I0.0 AN I0.1 S Q0.0, 1 S Q0.1, 1 // 星角切换延时5秒T37为100ms定时器 LD Q0.0 AN Q0.2 TON T37, 50 // 延时到断开星形接触器 LD T37 R Q0.1, 1 // 延时到后接角形接触器 LD T37 AN Q0.1 S Q0.2, 1 // 停止所有接触器复位 LD I0.1 R Q0.0, 1 R Q0.1, 1 R Q0.2, 1这是简化逻辑实际项目中必须在硬件线路里做接触器互锁或者在程序里对Q0.1和Q0.2做严格的互锁保护防止星形和角形同时接通造成相间短路。星形切换到角形之间最好留100~200ms的灭弧时间对接触器寿命也有好处。画面组态方面启动、停止按钮分别绑定M区命令位运行状态读接触器反馈触点星角切换状态可以用定时器的当前值显示做成进度条效果也方便操作员观察。7.4 规模化32台变频器的大项目怎么搭回到“PLC控制32台变频器”这个题目。32台变频器不是小数目关键在于通信规划和分段处理。我习惯把32台分成4组每组8台由一台PLC作为Modbus主站轮询4台PLC再通过以太网和MCGS通信。这样触摸屏面对的始终只是4台PLC而不是32台变频器。PLC侧Modbus轮询要特别注意两点一是轮询超时和故障跳过机制某台变频器通信异常时不能卡住整条链路要超时后记录故障、跳到下一台二是所有变频器要设置不同的Modbus从站地址地址不能重复建议做成设备拨码写进调试记录表里。触摸屏画面可以按组做分页每页显示一组设备既方便监视又不会让画面显得太拥挤。这类项目在矿山排水系统控制里特别常见多台水泵加多台变频器触摸屏除了控制启停还需要显示水位、电流、故障报警、运行时间等。MCGS组态画面里把排水系统的主工艺流程图做出来泵、管道、阀门用动画填充颜色变化来反映运行状态操作员一眼就能判断系统是否正常。7.5 后续扩展数据上云与第三方上位机以太网替我们把数据打通之后后续扩展就很自然了。MCGS支持MQTT、FTP等扩展功能可以定时把生产数据导出或上传到服务器。对需要做报表统计的客户直接在MCGS里设置数据转发规则PLC数据通过以太网上传给服务器省去再布一套采集系统。如果后续要用C#写上位机原理和MCGS驱动一样走的就是S7协议。C#里调用S7协议通信库连接PLC的IP和端口102读取V区、M区数据本质上和触摸屏访问PLC是同一件事。所以前期把IP和变量地址规划清楚后期接任何上位机都方便不用改PLC程序。做了这么多项目我个人的体会是MCGS与S7-200SMART PLC以太网通信控制并不难难的是把细节一次想清楚。很多现场故障根子都出在前期IP规划混乱、驱动参数填错、多台设备绑错这些低级的细节上。先把基础通信打通再往变频器、云平台这些方向扩展你会发现自己能接的活越来越大。最后分享一个习惯每次交项目前我都会把IP分配表、V区地址表、变频器从站地址表这三张表打印出来贴在控制柜门内侧后期维护能少接无数个电话。