一、仿真报错先别慌,找准方向再动手
用博图做PLCSIM仿真的时候,报错是家常便饭。下载失败、通讯中断、CPU不兼容,这些问题看着头大,其实大部分都能归到四个方向去查。软件版本、设备配置、网络通信、系统权限,挨个排查比瞎试强得多。
PLCSIM说白了就是一个虚拟CPU,它没有把真实PLC的硬件完完整整搬过来,只是对逻辑做了模拟。所以只要项目里有什么配置跟仿真环境对不上,它就给你甩错误。想快速定位,得先搞清楚是哪个环节出了问题。
二、版本不匹配是*常见的坑TIA Portal、PLCSIM、CPU固件,这三者版本必须对齐。很多人安装的时候没注意,博图装了V19,PLCSIM还是V18的,或者CPU固件版本选得太高,仿真器根本不支持。结果一点下载就报"PLC不可达"。
遇到"与设备通信失败"这个提示,先确认PLCSIM是不是已经启动了。然后检查CPU的IP地址跟网卡设置是不是一致。如果虚拟网卡S7ONLINE没正确绑定,通讯也建不起来。在"设置PG/PC接口"里可以看到当前用的通讯通道,确认一下有没有选错。
还有一种情况是CPU型号选得太老。有些早期的S7-1200固件版本PLCSIM不支持,或者项目里用了工艺对象比如PID、运动控制,仿真环境跑不了这些功能。解决办法就是把固件版本调到TIA Portal可仿真的范围内,或者先把工艺对象临时删掉,等逻辑验证完了再加回去。
三、端口被占和服务冲突电脑上装了多个版本的博图,服务之间打架是常有的事。打开Windows的服务列表,找Siemens Automation开头的那几项,看看是不是都正常跑着。如果哪个服务没启动,手动启一下就行。
杀毒软件也经常拦仿真服务,要么关掉防火墙,要么把Siemens相关进程加白名单。还有个隐蔽问题,端口102被别的程序占了。ISO-on-TCP通讯走的就是这个端口,被占了就下载不了。用netstat -ano查一下端口占用情况,找到对应进程结束掉。
四、仿真启动后报错的几种可能有时候仿真倒是能启动,但一跑就崩。常见原因是程序访问了不存在的I/O地址,或者缺少中断组织块。OB121和OB86这两个块没加的话,程序出错时没有兜底的错误处理,直接就停了。
动态数组越界和非法地址访问也会导致仿真强制停止。调试的时候把诊断缓冲区打开,里面有详细的报错信息,包括出错的位置和原因。这个习惯要养成,不管仿真还是现场调试,诊断缓冲区都是排错的**工具。
有些通讯功能在仿真里是跑不了的,比如PROFINET I/O和Modbus TCP客户端。如果你的程序里调用了这些功能块,仿真阶段先跳过,等到有真实设备了再测。别在仿真环境里死磕这些功能,浪费时间。
五、几个实用建议项目开始选CPU的时候就考虑好仿真兼容性,别等做完了才发现仿真不了。S7-1200 1212C和S7-1500系列对PLCSIM的支持都比较好,优先选这些型号。
基础逻辑先在仿真里过一遍。定时器、计数器、状态转换、报警逻辑这些不依赖硬件的功能,仿真测试效率比现场高得多。把能测的都测完,到了现场就专注调通讯和工艺,省下来的时间很可观。
软件版本统一管理。团队里如果有人用V18有人用V19,项目来回倒版本很容易出问题。定一个标准版本,所有人统一安装,包括PLCSIM的版本也要对齐。这一步看着不起眼,但能减少大量的莫名报错。