张大妈

西门子S7-200 Smart G2 软件小bug 之01

源自UP主:老宋学plc

02-09 13:19

西门子S7-200 Smart G2的V3.1版本软件在程序导入导出功能上存在一个隐蔽bug,当程序中使用指针指令时,导出再导入会报错。此内容深入复现了该问题,精准定位了bug成因是导出文本文件缺少关键符号,并提供了简单的手动修复方案,为相关专业用户排除了一个在实际工作中可能遇到的障碍,提升了工作效率。

西门子S7-200 Smart G2 软件小bug 之01智能速览

  • S7-200 Smart G2 V3.1软件在导出含指针指令的程序时存在bug。

  • 导入此类程序会因文本文件中缺少“#”符号而报错。

  • 可通过文本编辑器手动添加缺失的“#”符号来解决此问题。

  • 旧版软件2.8导出的程序导入3.1版本则无此问题。

  • 此bug仅在数据处理等特定指针应用场景下才会触发。

西门子S7-200 Smart G2 软件小bug 之01精华内容

西门子S7-200 Smart G2的软件具备强大的程序导入导出功能,极大地方便了项目移植和代码复用。然而,在V3.1版本中,当涉及指针指令时,这一便利功能却暴露了一个小瑕疵,具体表现和原因如下。

Bug复现

在S7-200 Smart G2的V3.1编程软件中,创建一个使用指针作为输入参数的子程序,例如实现两个变量相加的功能。程序在PLC中下载运行,状态表监控结果显示逻辑正确,执行无误。然而,当将这个正确的程序块导出为.awl文件后,新建一个空项目并尝试导入该文件时,软件会提示存在两处错误,导致程序导入失败,无法正常复用。

原因分析

通过对比导出的程序文本文件与原始程序,可以发现问题的根源。在导出的文本文件中,凡是使用指针作为输入的参数,其变量名称前丢失了至关重要的“#”符号。例如,在子程序定义中原本的“#倍加数”,在导出文件中被错误地保存为“倍加数”。导入时,因无法识别该变量为指针参数,从而触发了编译错误。

修复方案

解决此问题的方法非常直接。在程序导入报错后,无需重新编写代码。只需用记事本等文本编辑器打开导出的.awl文件,手动查找并给所有用作指针输入的变量名称前加上缺失的“#”符号。修改完成后保存文件,再重新导入到项目中,程序便能被正确识别,所有功能恢复如初,状态表和梯形图均可正常显示。

版本对比

值得一提的是,此bug是V3.1版本导出导入循环所特有的。测试发现,使用旧版V2.8软件导出同一个包含指针的程序,再导入到V3.1软件中是完全可以成功的,不会出现任何报错。不过,V2.8导出的程序在V3.1中会保留其旧版指令格式(如ADD_I),与V3.1原生指令有所区别,但这不影响功能的正常实现。

尽管这个bug仅在特定场景下出现,但它反映出软件在测试环节可能存在疏漏。S7-200 Smart G2的导入导出功能整体上依然强大且实用,极大地便利了工程师的日常工作。期待西门子在后续版本中修复此问题,并建立更通畅的用户反馈渠道,让软件功能日臻完善。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章