故事作者:万泉河

最近创作

看看TA的故事

【万泉河】SID 的应用场景

已锁定

万泉河

  • 帖子

    10913
  • 精华

    132
  • 被关注

    1020

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

【万泉河】SID 的应用场景

801

0

2022-01-28 19:05:02

【万泉河】SID 的应用场景

 

上一篇文章《【万泉河】征集FB的编程题:获取SID》 中, 我刻意没有列举SID的应用场景, 现在看,做对了。

 

我本意是让同行在不考虑应用场景的情况下, 只针对问题本身, 只通过一个FB块实现需要的功能。

 

这本身就是对模块化思维的锻炼。

 

然而仍然有无数人追问应用场景是什么。 仿佛,没有应用场景,就无从下手做模块。 其实本质上还是模块化思维缺失的体现。

 

这是整个行业大部分人的思维惯性导致。大家还是习惯于解决所遇到的问题本身,而不会去刻意积累一些工具模块。

 

比如这样的回答:

 


 

就是完全的为解决问题出的解决方案。 不惜调用全局变量, 并把程序功能赛的到处都是,最终来实现这个目的。

 

所以,考核模块化能力的同时, 却考核出来一大批不会模块化思考只会专注于解决问题的专家。

 

其实, 会不会模块化设计工作和思考,还有另一个考核方式。

 

现在临近春节,大家在工程项目中都应该逐渐收工准备过年了。 作为搞技术的知识分子,自然不大会像保安、农民工一样整个假期只是打牌娱乐或是刷抖音玩农药,还是要抽出一定的时间学习补充营养。

 

那么各位审视下自己,在没有项目需求为动力的情况下,有没有可以学习的目标和方向?会不会是有项目的时候整日忙于项目工作焦头乱额,而没了项目, 则无所事事了?

 

如果是的话,那说明你就根本没有模块化的思维习惯。 以往的工作中的所谓的模块,只是分工而已。 没有积累的模块化, 不是模块化。

 

我这两天连着PLC忙活做程序调试, 夫人过来问, 这都要过年了,还在给哪家伙伴做程序呀?我回答是:我自己。现在根本没有具体项目做,然而不妨碍我对想到的技术问题自己研究提前做积累。 每个人积累的技术基础,永远是自己的。 不管有没有具体的项目, 甚至有没有公司需求,自己的东西永远不会丢掉没用。

 

反之, 如果在一个公司某个职位上产生的那些貌似非常重要的资料知识积累,一旦这个离开这个工作岗位,就不再有用, 那么这些积累也都是无价值的积累。

 

回到需要SID的应用场景, 其实很多。 不光我遇到,也有其他人经历过这其中的应用场景。比如:

 


 

现在假设做个时间回流,如果@伊默 兄在遇到这个项目需求之前, 已经掌握并储备了一个GETSID的库函数,在项目现场临时遇到上面需求的时候,就有了n种可采取的方法路线。包括

1,  INPUT管脚家ID, 调用时输入常数。

2,  编程读取背景数据块名称和编号。

3,  全局变量简单粗暴解决。

4,  直接调用一下GETSID。

 

每种方法都有缺点不足之处,相信每个人会有判断。 项目工期压力当前,有得选和没得选绝对不一样。

 

除了伊默列举的应用场景之外,我还可以举出更多。

比如:

  •  多泵恒压供水时,需要对泵的编号和寿命进行计算管理;

  •  S7-1500 TCP通讯, CONNID需要手工指定,然而如果通讯对象为多个,则每一个都需要唯一的ID。

  • 我自己所开发的万泉河定时器,需要依次为之分配存储区,因而必然需要SID。

  • 还有应用场景,我有在专著《PLC标准化原理与实践》中表述,敬请期待。已经提前拿到电子版的可以去找到相关章节。

 

我在没有掌握GETSID积累的时候, 遇到了这些问题的时候,都是使用简单粗暴的笨办法实现的,所以留下了遗憾,所以必然饮恨在心,所以最终还是找机会把这个地雷排除了。

 

上述的每个场景,背后都是一个丰富的故事,都值得专门撰文描述。看以后的机会及读者需要。

 

然而,我这里还要补充一点告诉大家的是,每一个场景,其实是模块化的一个实例,即,如果同一个CPU内同时出现多个场景,那么对GETSID来说,就是多个实例。

 

因为这完全可能。

 

最简单的比方,比如同一个CPU内控制了多台套的恒压供水系统, 那么,对于GETSID, 对于有的朋友的简单粗暴的方法,后面就变得粗暴却不简单了。 你需要在OB1的开头,对每一个GETSID的实例做出初始化处理,这程序之乱,可想而知。

 

这就是没有模块化思维和架构的结果。

 

这个题目提出来后,ZANE版主参加了讨论,提出个要求:用SMART做出来。

 

这显然是看热闹不怕事儿大, 觉得题目太过于简单,还要给加码提高个难度等级啊!我当即表示反对。大家用FB玩的都不顺畅,都读题频繁出错呢,搞到连FB都不支持的PLC里面,那大家更没方向了。

 

不过倒激起了我自己的兴趣,我完全可以尝试把原有的程序功能块移植到SMART来啊!

 

当即打开两套程序,对着来做了,最终经过一番折腾,凭我在SMART环境下开发标准化应用的功底, 在其中夹杂了一些特殊条件,约等于算是成功了。

 

做好之后,本来想束之高阁的, 但睡觉时候, 针对SMART的特点,又换了一种思维方法,于是第二天用比较简单的方法实现了。实现之后,就有了进一步的想法,有了更好的应用场景了。

 

SMART200标准化程序架构升级!

 

除了使用这个程序块的功能,又加上我最近2年积累的其他功能技巧,对SMART200标准化示范项目中的多处不甚满意的细节进行了升级。

 

过程细节不表。 昨天晚上,在SMART200标准化营中发布了公告:


 


这心情, 岂是一个爽字了得!

 

算是这个春节送给自己的比较珍贵的礼物了。

 

 


【万泉河】SID 的应用场景 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3422条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。