方法如下?
写在前面
2021年上半年,剑总写了“Python入门到放弃 | 超简单 跟我学”系列上手帖…每一期都有认真拜读领会,学完大致掌握了相关概念和一些基本操作;后来又在漫长的集中隔离期间自己上视频网站找了点网课,补充了一些实用小练习;再之后,实际工作中遇到几个“大量重复操作”的数据处理问题,磕磕绊绊的一边在网上搜索方法思路,一边慢慢实现了功能需求。
两年下来,终于积累了一定的方法和经验,可以在面对实际问题时,分析出功能需求及实现思路,并快速转化为代码,成为日常辅助小工具…
这次也是在临休假之前,遇到的实际应用需求(后面详述)…从设计、开发、测试到发布应用,3天搞定,算是之前所有“积累”的一次综合应用。
Ps. 本人编程小白一枚,在文中的方法和思路有不成熟、不规范之处,欢迎大家批评指教(求轻拍~)
背 景
程序思路设计
源程序及注释
运行效果展示
结 语
整体的实现思路还是比较简单直观的:打开txt文件,条件检索提取信息到“内部缓存区(列表、字典)”,然后进行“去重”、“统计”、“排序”、“截取”处理,最后按照需求填写到excel文件中,并绘制图表。
具体的实现方法,使用的模块及函数是可以灵活调整的。比如:
● “xlwt”和“xlsxwriter”的选用;
●“.read()”、“.readline()”、“.readlines()”的选用;
● 使用“for循环”还是使用“while”循环等
● ……
使用不同的模块和函数在实现方法上会有一定的区别,完全取决于个人对这些模块、函数的熟悉理解程度。
后续的改进方向可以使用GUI做出可视化人机界面,使得用户可以进一步根据自身需求,在界面上灵活选择调整相关参数,以实现更精细的筛选、统计、分析功能。
本例作为Python入门练习,也算是在工控领域的一个小小的应用,希望能够起到一点点抛砖引玉的作用。在本例基础上略作调整,便可以应用到其他系统的历史报警的统计分析工作。
对于S7-1200、S7-1500PLC,西门子自己也有一个关于“诊断缓冲区”的excel处理工具,连接如下:
源代码+工具软件 下载
本文涉及源代码和做出来的成品工具软件的链接如下:
https://share.weiyun.com/JZ5ZaBuN
加入剑指工控技术群,联系各群群管理员获得提取码。
未入群的工控友人
联系美女管理员入群
2023年3月
福禄克专区 送好礼
1.Smart200&V90伺服系统:已更新15课
2.贝加莱直播课程:已更新40课
3.EPLAN快速入门:已更新18课
6.专家课堂:已更新15课
原文始发于微信公众号(剑指工控):Python工控实践–西门子PLC诊断缓冲区Excel整理统计(附源代码+工具软件下载)