Python工控实践–西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)

工控安全 2年前 (2023) admin
321 0 0
Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)
JZGKCHINA
工控技术分享平台


剑控友人们,星标吧!

Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)

     亲爱的剑控友人们,微信公众号又改版了,如果没有「星标」,公号文章就会渐渐沉底,我们可能长久失联。为了我们不再走散,请给我们一个星标,让我们每天都能相见!

方法如下?

Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)

写在前面


2021年上半年,剑总写了“Python入门到放弃 | 超简单 跟我学”系列上手帖…每一期都有认真拜读领会,学完大致掌握了相关概念和一些基本操作;后来又在漫长的集中隔离期间自己上视频网站找了点网课,补充了一些实用小练习;再之后,实际工作中遇到几个“大量重复操作”的数据处理问题,磕磕绊绊的一边在网上搜索方法思路,一边慢慢实现了功能需求。


两年下来,终于积累了一定的方法和经验,可以在面对实际问题时,分析出功能需求及实现思路,并快速转化为代码,成为日常辅助小工具…

这次也是在临休假之前,遇到的实际应用需求(后面详述)…从设计、开发、测试到发布应用,3天搞定,算是之前所有“积累”的一次综合应用。


Ps. 本人编程小白一枚,在文中的方法和思路有不成熟、不规范之处,欢迎大家批评指教(求轻拍~)

背 景

新建泵站,采购了20台注水泵,每台设备都有独立的控制柜(S7-400系统)。在试运行阶段,发生了CPU自行从“RUN”转至“STOP”的情况;电脑连接PLC,进行在线诊断,查询诊断缓冲区的记录,发现PLC的配置、编程存在一定的不完善情况,导致CPU运行不稳定。
为了查清原因,我们将PLC的“诊断缓冲区”中的所有条目“另存为”到电脑上,用以进一步查阅分析。但是我们发现,另存为出来的文件为文本文件(txt),非常不利于统计分析。 
Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)
 然后我想到可以用Python制作做一个小工具,从txt文件中提取需要的特定信息,按照分析需求对条目数量进行统计、并排序,再按照一定的格式填写到Excel中,并生成图表。
从而轻松找到重复次数最多的故障诊断记录,以便进一步和厂家沟通完善配置、程序。


 程序思路设计

Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)

源程序及注释

Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)

运行效果展示

运行程序,弹出文件选择对话框,选择txt文件 
Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)
程序执行完成,显示提示信息,并自动关闭窗口 
Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)
在程序所在文件夹中生成excel文件 
Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)
 打开excel文件,sheet1中为整理好的事件信息 
Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)
sheet2中为“事件”重复次数统计排序,前25名截取,以及图表展示 
Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)


 结 语


整体的实现思路还是比较简单直观的:打开txt文件,条件检索提取信息到“内部缓存区(列表、字典)”,然后进行“去重”、“统计”、“排序”、“截取”处理,最后按照需求填写到excel文件中,并绘制图表。


具体的实现方法,使用的模块及函数是可以灵活调整的。比如:

● “xlwt”和“xlsxwriter”的选用; 

●“.read()”、“.readline()”、“.readlines()”的选用;

●  使用“for循环”还是使用“while”循环等

●  ……

使用不同的模块和函数在实现方法上会有一定的区别,完全取决于个人对这些模块、函数的熟悉理解程度。


后续的改进方向可以使用GUI做出可视化人机界面,使得用户可以进一步根据自身需求,在界面上灵活选择调整相关参数,以实现更精细的筛选、统计、分析功能。


本例作为Python入门练习,也算是在工控领域的一个小小的应用,希望能够起到一点点抛砖引玉的作用。在本例基础上略作调整,便可以应用到其他系统的历史报警的统计分析工作。

对于S7-1200、S7-1500PLC,西门子自己也有一个关于“诊断缓冲区”的excel处理工具,连接如下:

https://support.industry.siemens.com/cs/document/109763364/%E4%BD%BF%E7%94%A8s7-1500-s7-1200%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E5%9C%A8excel-%E4%B8%AD%E6%B8%85%E6%A5%9A%E5%9C%B0%E6%98%BE%E7%A4%BA%E8%AF%8A%E6%96%AD%E7%BC%93%E5%86%B2%E5%8C%BA%E4%B8%AD%E7%9A%84%E6%9D%A1%E7%9B%AE%EF%BC%9F?dti=0&lc=zh-CN

Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)

源代码+工具软件 下载

本文涉及源代码和做出来的成品工具软件的链接如下:

https://share.weiyun.com/JZ5ZaBuN

加入剑指工控技术群,联系各群群管理员获得提取码。


未入群的工控友人

Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)

联系美女管理员入群

Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)
Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)

2023年3月


Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)

福禄克专区 送好礼

1.Smart200&V90伺服系统:已更新15课

2.贝加莱直播课程:已更新40课

3.EPLAN快速入门:已更新18课

4.剑指工控经典公开课:已更新22课
5.新品推荐:已更新12课

6.专家课堂:已更新15课

Python工控实践--西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)

原文始发于微信公众号(剑指工控):Python工控实践–西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...