恭喜,你发布的帖子
发布于 2020-06-09 21:55:02
36楼
看你们讨论的这么热烈,有没有人对我的程序提点意见呀?
我来说说。只是实现系统中报警信号的集中提示(新报警拉响警报,有报警点亮报警灯)这个需求来说,很古老,基本现在没有多少实际价值。不过都说了是实验,有实际使用价值最好,没有也权当锻炼了。
实现这个功能需要解决两个问题:一个是信号采集,一个是报警驱动。都好解决,实现方式很多。
我以前也是在做AB项目时遇到过,不过那时刚从事PLC编程,对于RSLogix 5000是临时抱书,不可能有太多了解。只记得似乎不支持函数式编程(可能我不用功,项目时间太急了),我是从头理到尾,一个一个报警的归拢来做的,不过总是遗漏一些信号,没办法。除了要实现重要的功能外还有这个集中报警让我惶恐和烦躁。不过后来集中报警的功能取消了,我感觉真轻松。但是我一点高兴不起来,因为这个功能也太小了,我却感觉无助。很失落。
此后再也没有遇到过集中报警需要处理,一方面是工作转向,一方面项目中也确实不需要了。倒是有时设计控制柜时需要处理,参考标准图集就好了。
说这么多,其实在说实现的功能很简单,但如何简单有效地设计,不要占用太多精力是关键。
用一个独立单元来归拢报警信号,一个个手工收集显然不要做了,那只会让人崩溃。
报警产生在散落的地方,那就在散落的地方收集吧。这个其实是关键。
至于是新旧报警统一比较处理还是分别处理其实问题不大。至于像zane版主说的使用word还是bool,我当然使用word了。节省资源嘛,穷惯了。
不过我还是觉得不要统一比较处理的好,统一比较还是需要两个缓冲区的。循环无论多少能不循环最好了。所以我采取了在分散的报警采集中来判断是否有新报警和是否有报警,毕竟拉响警报只需要一个就够了,不需要知道发生了多少个新报警。如果需要明确各个报警信息,比如老式的报警字牌,那真没有现实价值了,交给HMI合适。
捡起PLC,重新熟悉编程软件,让我有了新认识。我之前曾经学习过面向对象的编程,梦想做个程序员,不过终究是梦。不过对于重新认识PLC编程还是有比较好的帮助的。我自己觉得TIA越来越接近传统编程思想了也是这么来的,就像两条赛道,PLC这种比较考虑资源的编程和IT不怎么在意资源的设计各自狂奔,现在硬件不是问题了,PLC也就靠近高级语言传统编程了。OOB技术也有30年了,所以我说传统编程。
啰里吧嗦。
-----------------
这几天下载了西门子的step7和wincc配套设计的几个例子来看,很不错。只可惜需要借助翻译。
对了,是万泉河书籍介绍的。原来还是西门子论坛的版主呀!
我的方案是与触摸屏上位机报警信息的触发控制位直接配套的,不需要二次编程。
请填写推广理由:
分享
只看
楼主