ARTICLE DETAIL

资讯详情

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

西门子博途PLCSIM仿真实操指南:从虚拟PLC到HMI联动调试

西门子博途PLCSIM仿真实操指南:从虚拟PLC到HMI联动调试 干工控这行谁手里没压着几台没到货的PLC程序写了一多半硬件还在路上现场那边天天催进度又或者设备已经打包发运你只能留在办公室里对着电脑屏幕心里没底。西门子博途TIA Portal的软件仿真功能就是专门为这种场景准备的把写好的程序“下载”到一台虚拟PLC里在电脑上直接模拟CPU的RUN/STOP、刷新输入输出、跑定时器计数器、翻DB块数据不需要碰任何实体硬件。这篇文章不扯理论纯粹按我自己的实操习惯把博途运行软件仿真的步骤从头到尾过一遍顺便把HMI画面联动、仿真调试里常见的坑也一并填上。新手照着走一遍基本能跑通老手要是有兴趣也能看看有没有你也忽略过的细节。1. 仿真前先把概念理清博途仿真到底仿的是什么1.1 S7-PLCSIM到底是什么别把它当成一台真PLCS7-PLCSIM是博途安装时可选的一个软件组件本质是一个跑在Windows里的模拟进程通过博途内部的PLCSIM接口和TIA Portal通信。它能在电脑上模拟一台PLC的CPU行为执行你的用户程序、刷新过程映像、管理定时器计数器、维护DB块数据。你在博途里能做的大部分在线操作比如下载、监控、修改变量、切换RUN/STOP它都能配合完成。但这里要先把预期拉回来PLCSIM不是一台真PLC它模拟的是CPU的逻辑执行能力而不是硬件电路行为。最常见的一个误区就是有人组态了一个模拟量输入模块想在仿真里看AIW地址有没有真实信号变化——结果当然是毫无反应。这不是程序写错了而是PLCSIM根本不仿真外部传感器的电气信号你需要自己往IW地址里赋值。同理高速计数器的脉冲输入、PWM输出的物理波形、运动控制轴的编码器反馈这些东西在标准PLCSIM里要么完全不支持要么只是“看起来能用”。所以仿真验证的核心目标是程序的逻辑正确性而不是硬件电气特性和性能指标。想清楚这一点后面很多问题都不会钻牛角尖。比如PID控制你在仿真里可能发现它的输出值跟预想不一样那不是仿真器坏了而是PID调节需要真实被控对象的反馈纯靠程序自己算不出来那个“实测值”。1.2 标准PLCSIM和PLCSIM Advanced该选哪一个博途仿真组件分两种很多新手不知道该怎么选我直接给对比对比项标准S7-PLCSIMS7-PLCSIM Advanced支持CPU型号S7-300/400/1200/1500主要支持S7-1500和ET200SP通信方式只能与TIA Portal内部通信提供虚拟以太网适配器外部程序可访问典型应用纯逻辑调试、HMI仿真联动、程序验证虚拟调试、与Factory IO等第三方平台联合仿真授权要求随博途安装组件获得基础授权需要额外许可证通常不随标准安装包提供标准PLCSIM适合绝大多数日常调试。你只需要把逻辑跑通、监控变量、验证思路它完全够用而且启动快、配置简单。我一般做项目前期程序验证时都用标准版打开就能用不折腾。PLCSIM Advanced我单独说一句它相当于一台“虚拟的软PLC”会占用一个虚拟网卡地址让外界认为它就是一台真实的S7-1500。所以你要是做虚拟调试比如把博途里的PLC程序和Factory IO这种虚拟产线软件连起来跑必须用Advanced版。它和标准版的使用逻辑不太一样需要单独配置虚拟网卡还要以管理员权限运行。新手第一优先级是先玩熟标准版别一上来就上Advanced容易被网络配置劝退。2. 动手前必须确认的三件事版本、CPU、编译2.1 博途版本和PLCSIM版本要严格匹配仿真跑不通的第一大原因不是操作问题是版本不匹配。PLCSIM不是一个独立于博途而存在的工具它必须和你安装的TIA Portal主版本完全对应。比如你用的是TIA V17就得装S7-PLCSIM V17用V18就装V18。混用的话轻则仿真按钮是灰色的点不了重则启动仿真时报“找不到对应组件”或者通讯失败。常见版本对应关系我列个表方便你对照TIA Portal版本对应PLCSIM版本备注V15 / V15.1S7-PLCSIM V15 / V15.1老项目常用V16S7-PLCSIM V16目前存量用户很多V17S7-PLCSIM V17有大量SCL和HMI联动教程V18S7-PLCSIM V18当前主流版本之一V19S7-PLCSIM V19较新注意与Windows版本兼容有个特殊场景我得提醒如果你同时装了V16和V17两套环境各自装了自己版本的PLCSIM有时后启动的那个会“抢”系统里的通信资源导致前面那个仿真连接异常。我踩过这个坑后来干脆用虚拟机分开装各跑各的省心很多。2.2 项目里CPU选型和组态检查PLCSIM虽然支持很多型号但你的项目组态还是要尽量贴近实际选型。选CPU时优先挑和现场一致或者相近的型号。比如现场用CPU 1214C你项目里就不要图省事选1211C因为地址范围、工作存储区都不一样仿真结果可能和真机有偏差。另外工艺对象的支持度也要留意。Motion Control轴、高速计数器、PWM、PID自整定这些功能标准PLCSIM支持程度有限。如果项目里大量用到这些工艺对象建议先用标准版做逻辑验证等硬件到了再专门调工艺参数。还有一个容易忽略的地方S7-1200/1500的DB块默认是“优化访问”仿真时监视DB变量的方式会和S7-300/400老式PLC不一样。调试方便起见你可以把关键DB改成“标准访问”这样就能在监视表里直接用绝对地址比如DB1.DBX0.0访问。当然如果项目规范不允许改也可以用符号访问的方式监控不影响仿真本身。2.3 下载前的编译检查这一步省不了很多人习惯写完程序直接点仿真下载结果下载时报一堆错或者下载成功但运行结果不对。我个人的习惯是仿真前一定先把项目编译一遍。操作很简单在项目树里选中PLC站点右键“编译”选“编译硬件和软件”然后等编译结果窗口出来。有错误先解决错误有警告也要看一眼警告虽然不一定导致下载失败但它经常提示“你组态了未仿真的功能”或“地址范围超限”之类的问题。编译的意义不只是检查语法错误它还会生成一份当前工程中“各路块的最新快照”。如果你开了“编译时生成块快照”选项下载到仿真器里的就是最新状态的程序不会出现“我改了程序但没改快照下载的还是老版本”这种憋屈事。下载前再花一分钟在项目树上右键“检查一致性”基本能挡住90%的低级错误。3. 完整跑通一次博途软件仿真从启动到在线监控3.1 启动PLCSIM并建立连接这一步是整个仿真的开端操作步骤不复杂但细节很多我按顺序写清楚打开TIA Portal项目在项目树里选中你的PLC站点比如“PLC_1”。在PLC站点上右键菜单里找“仿真”然后点“启动”。菜单路径也可以走“在线”-“仿真”-“启动”。系统会弹一个提示框大意是“启动仿真将装载项目到PLCSIM”点击“确定”。这时S7-PLCSIM窗口会弹出来界面上是一个CPU面板的模拟图形有RUN、STOP按钮也有几个LED状态灯。紧接着TIA Portal会弹出“下载”对话框这一步很关键下载设置里的PG/PC接口类型要选“PLCSIM”PG/PC接口也要选“PLCSIM”目标子网如果有多个选你项目里对应的PN/IE子网。点“装载”等待下载进度条走完。装载完成后回到PLCSIM窗口点一下“RUN”按钮看到LED变绿就说明仿真PLC已经在运行了。第一次使用的人容易卡在两个地方一是下载对话框弹出后没有改接口设置默认指到了电脑的网卡上结果一直报“找不到设备”二是PLCSIM窗口弹出来了但没注意它在后台以为没启动成功。这两个坑我都踩过尤其是第一个改了接口瞬间就好。3.2 程序下载与CPU运行状态切换下载到仿真PLC的过程和下载到真实PLC很相似TIA会先做一次检查然后询问“是否停止模块”之类。如果你只是修改了小段逻辑可以选择不停止在线下载如果是大改或者新建了OB块建议还是先让仿真CPU处于STOP状态再下载避免下载过程中程序运行状态不一致。下载完成后仿真PLC默认还在STOP需要手动切到RUN。有些老版本PLCSIM里有个RUN-P状态表示“RUN-编程”意思是运行的同时允许编程访问调试时用RUN-P反而更方便因为可以在线改程序、在线强制变量。现在的新版本一般RUN和RUN-P都保留日常生活用RUN就行。跑起来之后你可以回到TIA Portal的项目树看PLC图标的连接状态如果在线图标会变绿。这时再打开任意一个程序块工具栏上会多出一个“启用监视”的眼睛按钮点一下就能看到每条指令的实时状态。梯形图里绿色粗线表示导通SCL程序里变量旁边会直接显示当前值。这也是很多人喜欢用仿真学SCL的原因不用真机也能直观看到每行代码的运算结果。3.3 用监视表格给仿真PLC“喂信号”仿真里的I点默认都是0程序第一段逻辑如果依赖输入信号看起来就是“死”的。这时候就要用监视表格和强制功能来模拟现场输入。操作路径是项目树下找到PLC_1展开“监视与强制表”双击“添加新监视表格”。打开表格后在地址列输入你要看的变量比如I0.0、Q0.5、M0.0或者DB1.DBX0.0输入完点工具栏上的“监视”图标这些地址的实时值就会显示在表格里。如果要模拟某个启动按钮按下方法是在监视表格对应I0.0的“修改值”列填true然后点“修改”图标。这样一来I0.0就会被强制为1程序里凡是读I0.0的地方都会满足然后你就能在表格里看到Q0.5跟着变成true。要模拟按钮松开就把修改值改成false再点一次修改。这里我要特别强调修改和强制的区别修改是一次性写入程序下一个扫描周期如果重新计算该地址可能又会被写回旧值强制则是持续覆盖无论程序怎么运算强制值都不会变。所以模拟一个会持续性保持的信号比如安全门开关用强制更合适模拟一个瞬时按钮用修改就够。强制结束后一定要在“强制表”里点“取消强制”或者“全部取消强制”否则I点会一直卡在强制状态现场调试时这就是个大麻烦。除了监视表PLCSIM窗口自己也提供输入输出变量编辑功能可以快速添加I/Q地址并勾选状态。这种方式适合临时验证但不适合系统的调试记录正式调试我还是建议用监视表格因为它可以保存成项目文件下次打开还能接着看。3.4 更高级的仿真“信号注入”技巧有的项目逻辑复杂光靠手动改一个点不够。比如你要验证一个计数程序的累加逻辑总不能手动去点100次I0.1按钮。这种时候可以写一个“信号发生程序”用定时器做一个固定频率的脉冲或者用SCL写一个自动循环置位的逻辑块把它当成虚拟输入源接到你真正要验证的逻辑上。等验证完了把这个临时的信号发生块禁用或者删掉就行。这个技巧听起来简单但实际项目里非常常用。它相当于在仿真环境里造了一台“虚拟信号发生器”比一个个手动改点高效得多尤其适合验证流水线、顺序控制这类有时序逻辑的程序。4. HMI仿真联动调试让画面也动起来4.1 HMI和PLC仿真联动的组态基础PLC逻辑跑通了很多时候还要验证HMI画面上的按钮、指示灯、IO域跟PLC程序到底通不通。这种“软硬联调”在博途里做起来其实很方便只要HMI和PLC在同一个项目里并且网络连接指向正确就能仿真。前提条件包括项目里有一个组态好的HMI设备比如TP700 Comfort和一个PLCHMI连接表里已经建好了到PLC_1的“PN/IE”连接两个设备最好在同一个子网下。满足这些之后选中HMI设备右键“仿真”-“启动”WinCC Runtime就会启动画面在电脑上跑起来同时会和PLCSIM建立通信。HMI仿真跑起来后WinCC运行时窗口的左下角一般会有一个连接状态显示绿色表示与PLC通信正常。如果你看到红色或者断开标识那基本就是连接配置问题先去HMI连接表看指向的是不是PLC_1、子网号对不对。很多时候“按钮没反应”其实就是连接断开了画面照常显示但数据链路是死的。4.2 联动调试的完整操作步骤我一般按这个顺序来确认PLCSIM已经启动并且仿真PLC处于RUN状态。在项目中先编译一次HMI确保画面组态没有错误。选中HMI设备右键“仿真”-“启动”等WinCC Runtime窗口弹出来。在HMI画面上操作按钮比如按一下启动按钮然后切到TIA Portal的PLC程序监控窗口看对应变量有没有变化。也可以在HMI画面上放一个IO域绑定PLC的某个DB变量在HMI里输入数值然后到PLCSIM监视表里看这个DB地址的值是否同步更新。如果一切正常你能在HMI画面上直接看到PLC内部变量的实时变化这种联动仿真对验证操作流程、画面切换、报警触发逻辑特别有用。很多产线的操作顺序是不是合理、报警弹窗能不能正确出现不用等设备到场在办公室就能过一遍。4.3 博图HMI仿真按钮无反应直接对照这个清单排查“博图HMI仿真按钮无反应”应该是热词原因就那几种我整理成表你对着排查一遍现象可能原因检查方法按钮按下但PLC变量没变化PLCSIM中的CPU处于STOP回PLCSIM窗口点RUNHMI运行窗口连接状态为红色HMI连接指向错误或子网不匹配重新分配HMI连接按钮图标闪一下但没动作按钮事件没有绑定任何函数打开按钮属性检查“事件”是否写了SetBit之类IO域能显示但输入后不写入IO域关联的变量地址与PLC不一致检查IO域属性里的变量绑定启动仿真后画面一直空白HMI起始画面没设置HMI设备属性中设置起始画面下载/启动时报许可证问题WinCC Runtime Advanced授权异常打开Automation License Manager查看授权我自己碰得最多的就是“按钮事件没绑”和“HMI连接指向了旧PLC”。尤其从老项目复制来的画面往往会继承旧项目里的连接配置看起来一切正常实际上按钮的变量地址全是无效的。所以启动HMI仿真前花两分钟检查一下按钮事件和连接表比反复重启软件高效得多。5. 常见问题速查与避坑经验5.1 启动仿真报错或者无法连接这类问题的表现和原因五花八门我挑典型的说。“启动仿真”按钮是灰色的绝大多数情况是安装博途时没有勾选S7-PLCSIM组件。有人图省事装了个精简版结果仿真功能全灰。解决方法是重新运行安装介质选择添加组件把S7-PLCSIM对应版本补上装完重启TIA。报错“无法建立到设备的连接”或者“目标不可达”先别急着怀疑软件坏了。检查顺序是PLCSIM窗口有没有在后台打开下载设置的接口是不是PLCSIM项目里有没有其他进程占用了PLC地址Windows防火墙有没有拦截一般把这四项过一遍问题就出来了。如果都不行试试把所有PLCSIM进程全部退出重启一次TIA很多时候就是后台残留进程导致的“幽灵占线”。还有一种是下载时报“分配的设备名称不一致”。如果你组态了PROFINET IO设备仿真环境对IO设备名称和设备号是比较敏感的。临时调试的话最简单的办法是把IO设备先取消分配或者暂时删掉IO设备等程序逻辑验证完再恢复。5.2 许可证和授权类问题安装或启动时如果遇到“一些已安装产品需要许可证。请启动Automation License Manager”的提示意思就是某个组件没有对应的有效授权。PLCSIM和WinCC Runtime一样都是需要授权的商业软件组件。常见的场景是PLCSIM试用授权过期了仿真窗口能开但下载程序时被拦截或者WinCC Runtime Advanced没有授权HMI仿真按钮点了没反应。正规解决方式是打开Automation License Manager查看哪些产品缺授权然后走西门子官方渠道申请试用授权或者购买正式授权。这里我不推荐任何破解手段工控软件牵扯到工业安全问题正版授权才是对项目和设备负责。5.3 程序在仿真里“不工作”的几个隐藏原因CPU已经RUN了程序也下载了监视表里看着却不对劲。这种情况我总结下来无非是几个原因第一程序里依赖真实硬件信号而你没做任何信号注入。比如一个电机启动回路现场有热继电器常闭触点串在里面仿真里这个触点如果没强制为1程序永远满足不了。这种靠强制输入就能解决。第二没有OB1之外必要的组织块。有些程序用了时间中断OB10、循环中断OB30或者错误处理OB82如果你的项目是从老设备里传上来的这些OB块不一定都在程序里。仿真时CPU遇到异常中断却找不到对应OB会直接停机或者报故障。打开PLC变量的“诊断缓冲区”看一下通常能找到线索。第三数据块“优化访问”带来的监视困惑。如果DB变量在监视表里显示“不可用”或者找不到地址多半是优化访问导致的。可以在DB属性里改成标准访问或者在编程界面里直接符号监视不影响逻辑本身。还有一个容易忽略的是定时器资源。老式S7-300/400程序里用T1、T5这种定时器仿真环境下也会被占用。万一遇到定时器不动作检查一下是不是定时器号已经被其他块用掉了。5.4 仿真和真机行为差异的基本认识最后必须说清楚PLCSIM是调试工具不是验收工具。它最大的价值是让你在硬件没到货、产线没通电的时候先把大部分逻辑问题提前“排雷”。但不意味着仿真通过了现场就一定没问题。高速计数模块的硬件计数、模拟量通道的断线故障、通信模块的物理链路这些在标准PLCSIM里都没法真实模拟。所以严谨的项目流程应该是“仿真验证逻辑 真机验收硬件”两者互补而不是互相替代。我个人的经验是仿真调试最舒服的一件事是你可以在电脑上把一套完整的顺序控制逻辑反复跑几十遍把所有边界条件都试一遍。比如进料阀和出料阀不能同时打开这种互锁逻辑现场测试要冒着设备损坏的风险在仿真里随便怎么试都不会坏设备。从这个角度说仿真帮项目省下的不只是时间还有试错成本。写在最后我的仿真调试习惯聊到这儿还是要忍不住多说一句。仿真这功能用好了是真的省心。我现在的固定流程基本是先核对版本再编译程序接着启动PLCSIM、下载、切RUN然后开监视表格喂输入再看HMI联动最后取消强制并保存项目。这套流程走顺了一次仿真会话五分钟内就能进入状态。别贪多先拿一个早就写好的简单项目练熟再考虑PLCSIM Advanced和Factory IO那种联合仿真组合拳。等真正到了现场你才会发现提前在办公室里用仿真排掉的那些雷比你想的多得多。
返回列表