0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

谈一谈对高耦合的理解

opkgjew 来源:PLC标准化编程 2023-01-09 11:08 次阅读

没错,这里说的是高耦合

前几天看了一篇计算机编程的文章, 题目叫做低内聚高耦合,弄得我一度有点恍惚,赶紧把高内聚低耦合的谚语背诵了一遍,才确信文章作者是在讲解反面的内容。

而我们做PLC行业, 也有一些人奉行的高耦合的原则, 或者以高耦合为荣,而不自知。所以就有必要再举例把这里的概念分析讲解清楚。

我曾经犹豫延迟很久之后写过一篇文章《【万泉河】论PLC编程中的高内聚与低耦合》,主要的原因是内聚和耦合这样的词汇生活中不太常见,很多人不熟悉,会当成行业黑话,以为是在胡乱忽悠人的。而其实那是我们搞PLC标准化编程烟台方法的纲领,主要的目标。

我在两本书,已经出版的《PLC标准化原理与方法》和刚刚完稿的《三菱PLC标准化编程烟台方法》中,都全文引用了这篇文章,也在之后的各种场合,直接用高内聚低耦合的原则指导设计方向。

然而,看来效果并不太好。很多人貌似对烟台方法感兴趣,但对高内聚低耦合的理念并不理解, 也不去努力尝试理解,反而很多认知都反方向的来。

比如我做了80模拟量的例子和80工位双联开关的例子,大部分人看到程序很简单,会觉得很优雅,很舒适。然而有一部分读过之后就很不满意。甚至杀上门来嘲笑指责我把程序搞到这么简单,小学生都能做出来的程序,也好意思吹牛逼是高科技。

我说对啊,我们的目的就是复杂问题简单化,最终实现的方法越简单越优雅。如果一个问题,可以用简单易懂的方法实现,那我们绝不会为了追求表面的高科技而故意倒过来把简单问题复杂化。

烟台方法的学员拿到分发的实例项目以后,看到程序如此简洁,简单。虽然是真实的上千点的工程项目应用,然而最终的结果如80系列例子般简单,就问, 那是不是我们把自己的设计封装好了,将来项目实施让没有文化的小学生来承担就可以了啊?

我说,对的呀,这应该是每一个烟台方法学员的最终目标。我们现在在一些客户那里已经实现了整个项目都由工人来承担。工程师把设计标准化之后,除非再有新的控制工艺之外, 那些已经成熟的应用,只需要简单交接好应用指南,工人就可以从设计出图编程到现场调试都自行完成了,都不需要来请示每个细节。PLC程序内的模块调用仅仅相似于电柜内的元器件拼装组柜, 难度也相似。

而我一直以来关注同行的技术发展状态的方式,就是看他们做的库函数的耦合难度。说实话,PLC领域, 高难度的题目并不算多。特别是一些底层的设备控制,都是简单到一句话就可以说完的, 那么耦合难度的高低其实才是我看重的最重要的指标。

比如同行们现在都比较关注的SMART 200中的电机阀门块的重复使用了,包括西门子1847平台也有这方面的函数功能块的实现原理方法介绍:

a88daf2e-82d4-11ed-bfe3-dac502259ad0.png

他所设计的管脚中有一个名称为“参数”的INOUT管脚。示例调用中分配了&VB8的指针, 实际逻辑内部使用了VB8开始的N个字节的数据作为数据的记忆缓存,相当于FB块中的静态变量。

然而这个管脚在每一个实例的调用中,还均需要合理调度V区,不可以重复,否则会产生冲突。那么在我看来这就是高耦合。有人会居高临下指责说,不就是分配V区嘛, 按顺序分配下来, 有什么难的。

是的,对懂的人来说,当然不难。然而对不懂的人, 其余的不管是输入输出的通道,都是直观可见的信号,而多出来这个参数,只为内部逻辑所用,而使用者需要了解逻辑原理以后才会接受,而即便接受也懂的似是而非,那这就如天书一般难了。这样的一个细节不在意,那么多个细节当然也不会在意,但积累下来,一个系统中到处都是这样的难点,逐渐的小学生就会认为太高深,而拒绝配合你去干了。

不懂, 不会,干不了,要干你工程师自己去干!你不哄好他们,让他们觉得有难度,他们跟你玩赖躺平的本事还是有的。

另外,即便自己亲自来做耦合阶段的工作, 这种需要调度资源空间的工作量也毫无意义。所以,如果你对耦合的重要性有建立那么一点点理解的话,就会逐渐倾向于优化设计,尽量减少耦合难度。

当然,1847课程的重点还是在实现功能块重复的功能,所以不可以轻易指责他们的做法错了。而从功能模块化的角度,也需要另外单独的课程来讲解如何降低耦合难度。所以,我们完全可以在他们做好的原有的库函数基础上,再做一次封装,实现我们低耦合的需求。

比如我们可以把课程中已经做好的VALVE更名为VALVE_0, 而复制一个备份,仍然叫VALVE,其“参数”部分的管脚改为TEMP变量,利用我们前面曾经著文多次提过的GETSID函数,得到SID,并折算到参数值。逻辑如下:

a8a9ec52-82d4-11ed-bfe3-dac502259ad0.png

而最终实际的调用则变成了:

a8bf137a-82d4-11ed-bfe3-dac502259ad0.png

虽然看起来仅仅是简化掉了一个管脚,然而这个时候可以非常简单地教会工人使用这个模块而毫无障碍了:只需要按照点表把地址正确填入即可。这样的话, 再笨的小学生也不会拒绝配合了。

这个程序例子的名字叫做“高耦合变低耦合”,我会放在80例程的分享群中,需要者自行获取,或者跟我私信索要。然而其中VALVE_0和GETSID块只有接口, 逻辑功能需要自行补足。其中VALVE的功能从1847课堂获取,而GETSID的实现,大家现在可以理解我提及多次的GETSID的需求了吧?

而我在反复讲解GETSID应用的时候,就有大虾不理解,质问分明在循环调用时做个增量计算就可以实现SID的自动分配,为啥还要专门做一个SID的函数。我就知道,有很多人,虽然自诩编程水平很高,但高内聚低耦合的思想仍然是没有的。换我是小学生,我一定跟你摆烂躺平。循环计算这样的高级工才能干的活, 俺们小学生学不会。现场拧螺丝接线是我的工作,但你工程师也得陪着我来工地上靠着,少不了你。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    4990

    文章

    12645

    浏览量

    456813
  • SMART
    +关注

    关注

    3

    文章

    220

    浏览量

    44507
  • SID
    SID
    +关注

    关注

    0

    文章

    14

    浏览量

    2985

原文标题:1223 【万泉河】谈一谈高耦合

文章出处:【微信号:PLC标准化编程,微信公众号:PLC标准化编程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    示波器耦合方式的设置方法

    示波器作为电子测量领域的重要工具,其在科研、教学以及电子产品研发等各个领域都有着广泛的应用。而示波器的耦合方式设置,对于准确捕捉和分析信号波形具有至关重要的作用。本文将详细介绍示波器耦合方式的类型、作用及设置方法,并结合实际操作案例,帮助读者更好地
    的头像 发表于 05-15 16:24 1062次阅读

    耦合器的结构与原理解

    本文将深入分析光耦合器的结构与原理,旨在为读者提供清晰而全面的了解。
    的头像 发表于 02-02 16:12 413次阅读
    光<b class='flag-5'>耦合</b>器的结构与原<b class='flag-5'>理解</b>析

    电子耦合是什么意思 四种常见的耦合方式

    电子耦合是在电子设备中,信号从一个电路传递到另一个电路的方式。在电子设备中,每个电路都需要与其他电路进行相互连接,以实现信号的传输和处理。这种相互连接的方式就是电子耦合。 四种常见的电子耦合方式
    的头像 发表于 01-25 13:49 2052次阅读

    FPGA的片内资源

    FPGA的片内资源
    发表于 01-08 22:12

    差分对紧耦合真的比松耦合好吗?

    差分对紧耦合真的比松耦合好吗?
    的头像 发表于 11-30 15:24 688次阅读
    差分对紧<b class='flag-5'>耦合</b>真的比松<b class='flag-5'>耦合</b>好吗?

    195020定向耦合器KRYTAR

    KRYTAR的新型产品195020增强了多功能带状线设计的选择,这个设计在18.0至50.0GHz中的工作频段单化、紧凑精巧的封装展示了优质的耦合性。此外,195020还提供全方位的性能水平,包括
    发表于 11-30 11:17

    谈一谈FIFO的深度

    最近加的群里面有些萌新在进行讨论**FIFO的深度**的时候,觉得 **FIFO的深度计算比较难以理解** 。所
    的头像 发表于 11-28 16:19 579次阅读
    <b class='flag-5'>谈一谈</b>FIFO的深度

    谈一谈PCB翘曲度的标准以及如何测量

    谈一谈PCB翘曲度的标准以及如何测量
    的头像 发表于 11-27 17:28 2917次阅读
    <b class='flag-5'>谈一谈</b>PCB翘曲度的标准以及如何测量

    定向耦合器的耦合度和耦合损耗的关系

    定向耦合器的耦合度和耦合损耗之间存在一定的关系。耦合度是指定向耦合器中从一个输入端口到另一个输出端口的能量传输比例,通常以分贝(dB)为单位
    的头像 发表于 10-27 11:14 691次阅读

    谈一谈ARM上市与RISC-V

    、vivo、OPPO全年出货量分别同比下降4.2%、4%、19.8%、22.7%、22.7%。 就最近两年消费市场的整体表现,寒气并不属于华为家企业。当然,吹到寒气的,也包括Arm。 数据显示,2022年
    发表于 09-30 12:22

    耦合和磁耦合怎么判断?

    耦合和磁耦合怎么判断? 电耦合和磁耦合是物理中两种不同的相互作用方式。电耦合是指两个电荷之间相互作用的一种方式,而磁
    的头像 发表于 09-22 12:32 3224次阅读

    阻容耦合和直接耦合的区别

    阻容耦合和直接耦合的区别  阻容耦合和直接耦合是电子工程学中两个常用的概念。它们在信号传输中都起到了非常重要的作用。然而,它们在实际应用中具有不同的优缺点,因此需要我们深入了解阻容
    的头像 发表于 09-22 12:32 5077次阅读

    电路去耦合的方法和流程

    和流程,以帮助你更好地理解电路去耦合的原理和实现。 一、电路去耦合的定义 电路去耦合是一种电路设计技术,它主要通过添加去耦电容和去耦电阻,减少不必要的噪声和干扰,使信号输出更加纯净和稳
    的头像 发表于 09-22 12:32 4012次阅读

    耦合的含义 耦合的通俗理解 电路中四种常见的耦合方式分析

    耦合的含义 耦合的通俗理解 电路中四种常见的耦合方式分析 耦合的含义 耦合是指两个或多个系统之间
    的头像 发表于 09-22 12:22 1w次阅读

    薄膜集成电路--耦合

    耦合器是利用微波传输中的耦合原理对主线路信号 进行采样,隔离度,定向性,低插损等优势的 电性能使其能满足耦合检测及末级放大器
    发表于 08-03 10:47