中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

PLC论坛

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 PLC论坛 → 浏览主题: 0707 【万泉河】更具程序员思维的U8轮巡题目答案
发表新帖 回复该主题
回帖:15个,阅读:820 [上一页] [1] [2] [下一页]
* 帖子主题:

0707 【万泉河】更具程序员思维的U8轮巡题目答案

分享到
2180
万泉河.
文章数:910
年度积分:65
历史总积分:2180
注册时间:2009/12/4
发站内信
发表于:2023/7/17 22:24:09
#0楼
0707 【万泉河】更具程序员思维的U8轮巡题目答案

我在上个月出了一道关于U8设备轮巡的题目《0609 【万泉河】宁做小白勿做小黑,一道测试题检测你是否适合做程序员》。

有不了解题目原委的跳转找到原文阅读了解。 本文不再赘述。

我在前文中描述:

PLC工程师们的能力划分,大概会分几种:

1, 做不出这样的功能的程序,只能做普通的电气逻辑控制应用。
2, 可以用复杂的梯形图完成这样的功能,比如工位数量稍微少一点的。 数量多的太复杂就搞不定了。
3, 可以在上面约定的FB的空间里实现。

但我对3的描述有些太笼统了。 主要我对大家的脑回路估计不够。

在回复和讨论里面, 一些思路确实遵循在FB空间内实现,但大都是在为完成作业本身而被迫无奈实现,然而实现的手法全部不够优雅。完全没有程序员该有的模块化的思想。有一些回复,虽然也主动把自己做的方法源程序贴出来了,但是不是符合程序员的标准,还需要对比比较下再判定。


下面把我自己的解题思路写出来,后面也会提供我做的程序。作为对提交过答案的网友的鼓励。

我的思路:

首先,这个题目一定是渐进增长来的,即,我们开始按固定顺序做了一套控制,后来工艺要求顺序可变。 而固定顺序的控制已经做好了,再完全推倒重来重新做很显然就太耗费脑细胞了。 也造成太多的经验浪费。 原本已经调试通过的程序逻辑,因为要求改变,就废掉了,新的程序还需要重新逐步调试。太不划算了。

上一波题目出来之后,回复里面有批评没有考虑故障和报警处理的,意思是问题考虑不全面。首先,这只是例子,出题的目的是实现算法,而不是为了什么全面。 其次,真实的应用中,故障和报警当然要有,然而也是在完成了基础的功能算法之后。而且,按照模块化的设计架构,这些大部分工作也应该单独的模块实现。 即这里做的顺序或者变序轮询的功能,完全可以做到封装固定不变。 那种基础算法功能还没搞定,或者只在口头上夸夸其谈的,却过早考虑其他方面,其实也是没有模块化编程思维的体现。

你过早考虑太多,最终所有功能在一个模块里实现, 那么即便能实现,这个模块也是一锅粥,根本不具备模块化特性。工艺有个风吹草动,稍微变化一点,前面做的逻辑算法全都白费,又要从头再来。比如把电机换为气缸,或者高级点,换成伺服,这里的逻辑就都用不上了。又要另起炉灶从头再来,下一个项目又要支出和上一个项目几乎等同的工作量和出差时间。

这是整个工控行业大家习以为常的现状。也正是我批评不够模块化,不具程序员思维的所在。

所以,模块化的设计方法一定是先有固定顺序的控制,然后再在其基础上做升级,实现可变顺序,而后再次封装成块。

即我提出的最终的FB的接口形式。

即:首先要完成一个固定顺序的控制FB, 然后对这个FB不改变的基础上,再进一步封装改造,继承其原有的功能,再增加可变顺序部分的功能,最终成为接口约定的FB。这才是模块化设计的思路。

那么我们首先要有一个固定顺序的FB1:
附件 FB1.jpg



其中位号不关心顺序了, 只对应了设备是否投入。 比如我这里缺省值为2#00111111, 那么代表了从右向左即从低位到高位,分别为1,2,3,4,5,6投运,而7,8不投入。

在启动信号到来后Q1-Q8依次序按需求投入运行。即为固定顺序的轮巡。

调试测试完成后,进行封装,然后再造一个可变顺序的FB2:
附件 FB2.jpg


 外部接口如前文所述,完全一样。 而在静态变量中多了一个多重背景,调用了固定顺序顺控的FB1。

通过在此FB2中的逻辑腾挪,将原本的固定顺序升级改造为了可变次序顺控。

上周,有一位JAVA出身的程序员因为现在也要从事一些工控方面的编程,从网上看到了我的PLC标准化编程的文章,大为赞同,瞬即参加了烟台方法的学习营。加入后就先问我, 在PORTAL里面是不是不支持面向对象的继承功能?如何实现?

我跟他讲,把FB外面再套一层,就可以实现利用原有对象功能,并再增加新的功能逻辑。如本节介绍所述。就是继承。 而其实我在专著《PLC标准化编程原理与方法》中也早有讲解。建议他还是要同步阅读书中内容,才更有利于学习掌握烟台方法全部技能。

我在前一文中提及的要举办的讲座,没能开成。 主要是响应不够热烈,那对我来说就又失去了动力。可能又是题目超前了些,超越了一些同行新手的需求。于是整理了此文, 把整体思路释放给大家,有兴趣的可以参考实现。

记住,真正的程序员不仅仅是做到能把逻辑功能实现,甚至只在口头上把思路描述的天花乱坠,就叫程序员了。  要真的做出来,而且要模块化的做出来,才算。 是否真正的模块化,跟别人对比一下自己内心就可以有结论。

我这里把这两个FB做出来了, 并分别做了调试演示。 因为我以前项目中就实现过,所以其实都没费多少力气。 我甚至都懒得去找旧的项目的代码去参考和移植,而是直接新写的了。 然而仍然一次成功,代码写完之后下载到PLC中就运行成功了。 我自己也觉得很神奇。也没再详细调教,说不定其中还有bug。

这个算法对我自己来说,是近些年掌握了烟台方法标准化的技能之后,才逐渐发展起来的。 或者说,是打通烟台方法所有技能路线上的关键一个环节。 以前不能模块化实现功能,以前只能在主程序中硬拼逻辑的做法,终于可以成功跨越了。所以对我来说是一个比较重要的门槛。相信对同行们也是脑子中一直绕不开的死结。

我这里可以把程序的源代码分享给大家。 但是我近2年来分享的代码的过程中,遇到的了太多的喷子,各种角度喷的都有。拿到我的代码,非但不能好好学习,反而各种喷, 甚至造谣污蔑我。比如拿到80模拟量的程序,就造谣我只会做模拟量, 拿到80变频器的程序,就造谣我只会变频器骗小白。 令我非常上火。

所以,这个代码的获得需要有门槛,以后我也会把释放的代码尽量都添加门槛,我们需要用门槛把真正的求学者和喷子们分开拉开差距, 让学习者可以持续学习进步,让喷子们一直停在原地喷好了。想想一些出道十几、二十几年的老工程师,因为只会喷,因为不会学习,被后来更善于学习的年轻后辈轻松超越,这场景一定很喜感。

请在微信公众号中得到获取方式。当然,我认为前提是,没有我的代码, 你们看了我上面的介绍,也仍然可以自行实现。 所以不要因为有门槛就骂娘,骂我从技术上卡了你们的脖子。



附件 FB1.jpg



附件 FB2.jpg



PLC标准化编程
36498
cvlsam 版主
文章数:12298
年度积分:850
历史总积分:36498
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2023/7/19 5:01:04
#1楼
写了那么长一大段,不就是举例举烂掉的多泵轮训么,这个论坛都套路过很多次了。

这个你可以参考一下论坛讨论是用的欧姆龙编程,比你简洁多了。

别分享代码了,即使你贴钱的也别分享了,你的水平能上升的空间也太巨大了。
20063
bnnyygy
文章数:5723
年度积分:729
历史总积分:20063
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2023/7/19 8:38:29
#2楼
万老师不是说不用定时器的吗表情
2414
余生少年
文章数:803
年度积分:43
历史总积分:2414
注册时间:2019/8/19
发站内信
发表于:2023/7/19 9:07:01
#3楼
万老师这是又要出来挣恰饭钱了嘛
36771
知道一点
文章数:21902
年度积分:1190
历史总积分:36771
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2023/7/19 9:30:35
#4楼
以下是引用bnnyygy2023/7/19 8:38:29的发言:
万老师不是说不用定时器的吗表情
说嘴打嘴~估计他没听说过
快乐 幸福 自由 比什么都重要
20063
bnnyygy
文章数:5723
年度积分:729
历史总积分:20063
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2023/7/19 10:16:23
#5楼
回复 #4楼 知道一点
记得万老师说过,不用T,M
3452
宅男技术控
文章数:441
年度积分:374
历史总积分:3452
注册时间:2017/2/4
发站内信
发表于:2023/7/19 10:59:17
#6楼
学習!
12239
FORELF
文章数:3114
年度积分:543
历史总积分:12239
注册时间:2007/6/22
发站内信
发表于:2023/7/19 16:01:24
#7楼
自己打脸,好疼表情
let me go任我行
24438
ytleaderplc
文章数:10332
年度积分:864
历史总积分:24438
注册时间:2008/6/7
发站内信
发表于:2023/7/19 17:50:02
#8楼
理论比较强大,实际问题解决作用不太大。
PLC 文本显示器 触摸屏 变频 伺服 编程电缆 plc触摸屏编程 维修等
email:  ytleader@126.com
11257
逍遥的久鸣
文章数:4333
年度积分:491
历史总积分:11257
注册时间:2017/3/6
发站内信
2018论坛热心网友
发表于:2023/7/19 20:16:58
#9楼
怎么用了这么多定时器呀!我想到了流水彩灯,可能会节省很多定时器,太浪费定时器了!
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005