资讯动态

MCGS与PLCSIM Advanced联合仿真:S7-1200/1500 PLC与触摸屏通讯调试指南

发布时间:2026/9/28 16:00:10 来源:尧图企业网站定制
1. 为什么要在MCGS和PLCSIM Advanced之间搭一座桥做过自动化项目的人都有一个共识程序逻辑写完了最怕的不是编译报错而是到了现场才发现触摸屏和PLC之间的数据对不上。尤其是用西门子S7-1200/1500系列的时候TIA博图里组态得好好的一下载到真实设备就各种通讯超时、变量读写失败。问题出在哪很多时候是因为你在办公室根本没有一套完整的硬件环境来验证HMI和PLC的交互逻辑。MCGS昆仑通态的触摸屏在国内中小型自动化项目里用得非常多性价比高、组态灵活尤其是TPC系列和MTP系列在供水、暖通、产线控制等场景里随处可见。而PLCSIM Advanced是西门子官方推出的高级仿真器它能模拟S7-1200/1500系列PLC的完整通讯栈支持以太网通讯这意味着你可以用仿真PLC和真实的触摸屏组态软件进行数据交互测试。这套方案解决的核心问题是在没有真实PLC硬件的情况下让MCGS触摸屏工程和TIA博图里的PLC程序完成联合调试。适合的人群包括自动化工程师、电气设计人员、职业院校的实训教师以及正在学习HMI组态和PLC编程的学生。你不需要买一台S7-1200放在桌上只需要一台性能还过得去的电脑就能把整个控制逻辑跑通。我最初接触这个方案是因为一个煤矿排水系统的改造项目现场用的是S7-1200加MCGS触摸屏但设备在井下调试窗口非常有限。后来我尝试在办公室用PLCSIM Advanced搭了一套仿真环境把MCGS的组态工程直接连上去提前把所有的按钮逻辑、报警联动、数据趋势都验证了一遍到了现场只花了半天就完成了调试。从那以后这套方法就成了我做西门子项目时的标准前置流程。2. 环境搭建软件版本选择和安装顺序有讲究2.1 各软件的角色定位与版本匹配这套仿真方案涉及三个核心软件每个都有自己的脾气版本不匹配是新手最容易踩的坑。软件作用推荐版本注意事项TIA PortalPLC程序编写与硬件组态V15.1及以上需安装STEP 7 ProfessionalPLCSIM Advanced仿真PLC运行环境V3.0及以上必须与TIA版本兼容MCGS组态软件触摸屏画面组态MCGS Pro 3.3.6需支持以太网通讯TIA Portal的版本选择很关键。V15.1是一个比较稳定的分水岭V16和V17也都可以但如果你用的是V13或V14PLCSIM Advanced可能不支持。PLCSIM Advanced V3.0要求TIA Portal至少是V15.1V4.0则要求V16以上。我个人的建议是直接用TIA V16或V17搭配PLCSIM Advanced V3.0这个组合经过大量实测稳定性最好。MCGS这边你需要确认自己用的是MCGS Pro还是MCGS嵌入版。TPC系列触摸屏通常用MCGS Pro而老一些的TPC7062K系列可能用的是嵌入版。两者的组态方式有差异但通讯配置的逻辑是相通的。本文以MCGS Pro为例因为它对以太网通讯的支持更完善。2.2 安装顺序与网络环境准备安装顺序这件事很多人觉得无所谓但实际上如果先装了PLCSIM Advanced再装TIA Portal有时候会出现PLCSIM Advanced的虚拟网卡驱动被覆盖的情况。正确的顺序是先安装TIA Portal包含STEP 7 Professional再安装PLCSIM Advanced最后安装MCGS Pro组态软件安装完成后打开Windows的“网络连接”面板你应该能看到一个名为“Siemens PLCSIM Virtual Ethernet Adapter”的虚拟网卡。这个网卡是PLCSIM Advanced的核心它负责在电脑内部模拟一个以太网通讯接口。如果这个网卡没有出现说明PLCSIM Advanced的驱动没有正确安装需要重新安装并选择“修复”。虚拟网卡的IP地址需要和你的PLC组态在同一个网段。比如你在TIA Portal里给PLC设置的IP是192.168.0.1子网掩码255.255.255.0那么虚拟网卡也应该设置为192.168.0.x网段比如192.168.0.100。这里有个细节虚拟网卡的IP不能和PLC的IP相同否则会产生地址冲突。注意如果你电脑上还有VMware或VirtualBox的虚拟网卡它们可能会和PLCSIM的虚拟网卡产生网段冲突。建议把其他虚拟网卡的网段错开比如VMware用192.168.100.xPLCSIM用192.168.0.x。2.3 TIA Portal中的PLC组态要点在TIA Portal里新建项目后添加一个S7-1200或S7-1500的CPU。这里有一个非常关键的设置在CPU属性的“保护与安全”选项卡中必须勾选“允许从远程伙伴使用PUT/GET通信访问”。这个选项如果不勾选MCGS通过以太网读写PLC数据时会被拒绝而且报错信息非常模糊只会显示“通讯超时”让你完全摸不着头脑。另外在“硬件目录”中确认CPU的固件版本。PLCSIM Advanced V3.0支持的固件版本是V4.0及以上如果你选的CPU固件版本太低PLCSIM Advanced启动时会直接报错。我一般直接选最新的固件版本避免兼容性问题。PLC的IP地址设置也有讲究。在“PROFINET接口”的属性中设置IP地址为192.168.0.1子网掩码255.255.255.0。这个地址后面要在MCGS里用到所以记清楚。如果你需要模拟多个PLC可以给每个PLC分配不同的IP但要注意PLCSIM Advanced同时运行的实例数量受电脑性能限制。3. PLCSIM Advanced的实例配置与启动细节3.1 创建虚拟PLC实例的完整流程PLCSIM Advanced的界面看起来很简单但里面的门道不少。打开软件后你会看到一个“Instance”列表默认是空的。点击“New Instance”创建一个新实例这时候会弹出一个配置窗口。第一个选项是“Instance Name”随便起个名字比如“PLC_1”。第二个是“Online Access”这里必须选择“PLCSIM Virtual Eth. Adapter”而不是“TCP/IP”。很多人在这里选错导致后面MCGS怎么都连不上。虚拟以太网适配器是PLCSIM Advanced专门为仿真通讯设计的接口它不依赖你电脑的物理网卡稳定性更高。接下来是“IP Address”设置。这里填的IP必须和TIA Portal里PLC组态的IP一致也就是192.168.0.1。子网掩码255.255.255.0。如果你在TIA里设置了多个网段这里也要对应。还有一个容易被忽略的选项是“Start Instance Automatically”。建议勾选上这样每次打开PLCSIM Advanced时实例会自动启动省去手动操作的步骤。但如果你需要频繁切换不同的PLC程序建议不勾选手动控制启动时机。3.2 下载程序到虚拟PLC的正确姿势创建好实例后回到TIA Portal点击“下载到设备”。这时候会弹出一个“扩展下载”对话框接口类型选择“PLCSIM Virtual Eth. Adapter”接口选择你刚才创建的虚拟网卡目标设备会显示你创建的PLCSIM实例名称。下载过程中有一个关键点TIA Portal会提示“是否覆盖PLC中的程序”选择“全部覆盖”。因为PLCSIM Advanced的实例每次启动都是空白的不存在需要保留的程序。下载完成后PLCSIM Advanced的实例状态会变成绿色表示PLC正在运行。如果你在下载时遇到“无法建立连接”的错误先检查PLCSIM Advanced的实例是否已经启动。实例没有启动的话TIA Portal是找不到目标设备的。另外Windows防火墙有时候会拦截PLCSIM的通讯建议在测试阶段暂时关闭防火墙或者为PLCSIM Advanced添加例外规则。3.3 验证PLC程序是否正常运行程序下载完成后不要急着去配置MCGS。先在TIA Portal里打开“监控表”添加几个你在程序里用到的变量比如电机启动按钮、运行状态指示灯等。手动修改这些变量的值观察程序逻辑是否正常响应。这一步的目的是确认PLC程序本身没有问题。如果程序逻辑有bug后面MCGS连上来之后你很难判断是通讯问题还是逻辑问题。我一般会写一个简单的测试程序一个启动按钮控制一个电机输出一个停止按钮复位再加一个定时器做延时。这个测试程序跑通了再往里面加复杂的逻辑。监控表里还可以强制修改变量的值比如把电机的运行反馈信号强制为ON看看程序里的报警逻辑是否会触发。这些测试在真实PLC上也能做但在仿真环境里更安全不用担心误操作导致设备动作。4. MCGS触摸屏工程的通讯配置全流程4.1 设备窗口的驱动选择与参数设置打开MCGS Pro新建一个工程选择你的触摸屏型号。如果你用的是MTP1000系列在设备选择里找到对应的型号。如果只是做仿真测试不涉及实际下载到触摸屏型号选择不影响通讯功能选一个通用的TPC系列也可以。进入“设备窗口”双击“设备工具箱”找到“通用TCP/IP父设备”和“西门子_1200”或“西门子_1500”驱动。注意MCGS的驱动库里西门子S7-1200和S7-1500是分开的驱动选错了连不上。如果你用的是S7-1200就选“西门子_1200”驱动S7-1500就选“西门子_1500”。把驱动拖到设备窗口中然后双击“通用TCP/IP父设备”进行属性设置。这里的关键参数是本地IP地址留空或填0.0.0.0表示监听所有本地网卡本地端口一般填0由系统自动分配远程IP地址填PLCSIM Advanced实例的IP即192.168.0.1远程端口西门子S7通讯默认端口是102端口号102是西门子S7协议的标准端口不能改。如果你填了其他端口通讯必然失败。这一点和Modbus TCP不一样Modbus的端口可以自定义但西门子S7协议是固定的。4.2 变量连接与数据地址映射通讯参数配好后接下来是变量连接。在MCGS的“实时数据库”中定义你需要的变量比如“启动按钮”、“停止按钮”、“电机运行”、“故障报警”等。然后在设备窗口中双击西门子驱动进入“通道连接”选项卡。这里需要把MCGS的变量和PLC的地址对应起来。西门子S7-1200/1500的地址格式和S7-200不一样它用的是DB块、M区、I区、Q区。比如MCGS变量PLC地址数据类型说明启动按钮M0.0位内部继电器停止按钮M0.1位内部继电器电机运行Q0.0位输出线圈故障报警M0.2位内部继电器温度值DB1.DBD0浮点数数据块中的实数这里有一个大坑S7-1200/1500的DB块默认是“优化的块访问”这种模式下DB块的地址不是绝对地址MCGS无法直接通过绝对地址访问。你必须在DB块的属性中取消勾选“优化的块访问”然后编译TIA Portal才会分配绝对地址。取消优化访问后DB1.DBD0就对应DB1块的第0个双字。但要注意DB块里的变量顺序会影响地址分配。比如你先定义了一个Bool变量它占0.0位再定义一个Real变量它从偏移量2开始因为Bool占1个字节但Real需要4字节对齐所以从偏移量2开始。这个地址分配规则和S7-300/400类似需要仔细核对。4.3 通讯测试与常见报错处理配置完成后点击MCGS的“通讯测试”按钮。如果一切正常你会看到变量值实时刷新。如果通讯失败MCGS会弹出错误提示。常见的报错和原因如下报错信息可能原因解决方法通讯超时IP地址不对或PLC未运行检查PLCSIM实例状态和IP连接被拒绝PUT/GET未勾选在TIA中勾选允许PUT/GET地址错误DB块未取消优化访问取消优化访问并重新编译数据错误数据类型不匹配检查MCGS变量类型和PLC地址类型我遇到最多的问题是“通讯超时”十次有八次是因为PLCSIM Advanced的实例没有启动或者虚拟网卡的IP和PLC不在同一网段。解决方法是打开命令提示符用ping命令测试虚拟网卡的IP是否能通。如果ping不通说明网络配置有问题需要重新检查虚拟网卡的IP设置。另一个常见问题是MCGS的驱动版本太老不支持S7-1200/1500的通讯协议。MCGS Pro 3.3.6以上的版本才完整支持S7-1200/1500如果你用的是更老的版本建议升级。升级之前记得备份工程文件MCGS的工程文件在不同版本之间可能有兼容性问题。5. 联调过程中那些让人抓狂的坑5.1 变量读写不同步的排查思路联调的时候最让人头疼的不是连不上而是连上了但数据不对。比如你在MCGS里按了启动按钮PLC程序里对应的M0.0确实变成了ON但电机输出Q0.0没有反应。这种情况通常是PLC程序逻辑的问题而不是通讯问题。排查方法很简单在TIA Portal的监控表里同时监控M0.0和Q0.0。如果M0.0变成了ON但Q0.0没变说明程序逻辑有问题可能是启动条件没满足或者有其他的互锁条件。如果M0.0在监控表里没变说明MCGS的写操作没有成功需要检查MCGS的变量连接是否正确。还有一种情况是数据读写延迟。MCGS的通讯周期默认是200ms也就是说MCGS每200ms才和PLC交换一次数据。如果你在MCGS里快速点击按钮可能会丢失一些操作。解决方法是把通讯周期改小比如改成50ms或100ms。但通讯周期太小会增加CPU负担需要根据实际情况权衡。5.2 DB块地址偏移的隐蔽问题DB块的地址偏移是另一个容易出错的地方。前面说了要取消优化访问但取消之后地址的分配规则需要仔细核对。我举个例子在DB1中定义以下变量StartBtn: BoolStopBtn: BoolMotorRun: BoolTemperature: Real取消优化访问后编译一下TIA Portal会自动分配地址StartBtn: DB1.DBX0.0StopBtn: DB1.DBX0.1MotorRun: DB1.DBX0.2Temperature: DB1.DBD2注意Temperature的地址是DBD2而不是DBD4因为前三个Bool变量占了0.0、0.1、0.2三个位但DB块的最小分配单位是字节所以它们占了第0个字节。Temperature是Real类型需要4字节对齐所以从第2个字节开始第1个字节被跳过了因为Real需要从偶数地址开始。如果你在MCGS里把Temperature的地址填成了DB1.DBD4读出来的数据就是错的。这种错误不会报通讯故障但数据完全不对排查起来非常费劲。我的经验是在TIA Portal里编译后直接查看DB块的“偏移量”列把地址抄下来不要自己算。5.3 仿真环境下的性能优化建议PLCSIM Advanced对电脑性能有一定要求尤其是当你同时运行TIA Portal、MCGS和PLCSIM Advanced的时候。如果电脑内存小于16GB可能会感觉到明显的卡顿。以下是我总结的几个优化建议关闭TIA Portal的“自动编译”功能改为手动编译减少CPU占用MCGS的通讯周期不要设置得太小200ms对于大多数应用足够了PLCSIM Advanced的实例数量控制在2个以内多个实例会显著增加内存消耗如果电脑有SSD把TIA Portal和PLCSIM Advanced都装在SSD上启动速度会快很多测试完成后及时关闭PLCSIM Advanced的实例释放内存另外PLCSIM Advanced V3.0支持“快照”功能可以保存当前PLC的运行状态下次启动时直接恢复。这个功能在反复测试同一个场景时非常有用省去了每次重新下载程序的时间。6. 从仿真到实战的过渡经验6.1 仿真验证通过后还需要检查什么仿真环境跑通了不代表到了现场就一定能用。仿真和真实设备之间有几个关键差异需要提前考虑。第一个差异是通讯延迟。仿真环境下MCGS和PLCSIM之间的通讯延迟非常低几乎感觉不到。但真实PLC和触摸屏之间通过交换机通讯时延迟会明显增加。如果你的程序里有依赖通讯速度的逻辑比如快速连续的按钮操作在仿真环境下可能没问题到了现场就会丢包。解决方法是在程序里加防抖逻辑或者用状态机代替瞬时的按钮触发。第二个差异是断电保持。PLCSIM Advanced默认不模拟断电保持功能也就是说仿真PLC重启后所有的M区和DB块数据都会丢失。但真实PLC有超级电容或电池可以在断电后保持一段时间的数据。如果你的程序依赖断电保持的变量需要在TIA Portal里设置保持区域并在仿真时手动测试。第三个差异是硬件中断。仿真环境无法模拟真实的硬件中断比如高速计数器的输入中断、定时器的硬件触发等。如果你的程序里用了这些功能仿真只能验证逻辑不能验证时序。这部分需要在实际硬件上单独测试。6.2 把仿真工程迁移到真实触摸屏的步骤仿真验证完成后你需要把MCGS工程下载到真实的触摸屏里。这个过程本身不复杂但有几个细节要注意。首先确认触摸屏的IP地址和PLC在同一个网段。触摸屏的IP可以在系统设置里修改一般默认是192.168.0.2或192.168.0.10。PLC的IP是192.168.0.1两者必须在同一网段才能通讯。其次MCGS工程里的远程IP地址要改成真实PLC的IP。如果你在仿真时用的是192.168.0.1而真实PLC也是这个地址那就不用改。但如果真实PLC的IP不同记得在下载前修改。最后下载MCGS工程到触摸屏时需要用USB线或网线连接触摸屏和电脑。MCGS Pro支持USB下载和以太网下载两种方式。USB下载速度慢但稳定以太网下载速度快但需要配置IP。我一般用USB下载因为不需要额外配置网络。6.3 这套方案在实际项目中的扩展用法这套仿真方案不仅适用于单个PLC和触摸屏的调试还可以扩展到更复杂的场景。比如你可以用PLCSIM Advanced同时运行两个PLC实例模拟两台设备之间的通讯。MCGS触摸屏可以同时连接两个PLC实现集中监控。这种场景在多设备协同的产线控制里很常见。另外PLCSIM Advanced支持与Simulink联合仿真。你可以用Simulink搭建被控对象的数学模型比如电机的机械特性、管道的流体特性然后通过PLCSIM Advanced的API接口和PLC程序进行数据交互。这样就能在纯软件环境下验证整个控制系统的闭环性能不需要任何硬件。我最近做的一个锂电池储能控制项目就是用这种方式验证的。Simulink里搭建电池模型和双向变流器模型PLCSIM Advanced里运行PLC的控制逻辑MCGS做上位监控。整个系统在电脑上跑通之后再移植到真实的储能柜上一次成功没有出现任何逻辑错误。这套方法的门槛其实不高关键是版本匹配和网络配置这两个环节。把这两个环节搞定了后面的组态和调试就是按部就班的事情。我见过很多人卡在第一步就放弃了其实只要按照正确的顺序安装软件、配置IP大部分问题都能迎刃而解。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑