故事作者:万泉河

最近创作

看看TA的故事

0609 【万泉河】宁做小白勿做小黑,一道测试题检测你是否适合做程序员

已锁定

万泉河

  • 帖子

    10900
  • 精华

    132
  • 被关注

    1009

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

0609 【万泉河】宁做小白勿做小黑,一道测试题检测你是否适合做程序员

2585

21

2023-06-09 16:09:43

0609 【万泉河】宁做小白勿做小黑,一道测试题检测你是否适合做程序员

 

看了一篇公众号文章, 提及的一道PLC编程题,很有意思。 我以前项目中虽然做过,但没有单独提炼成一道题目。所以就没有特别提出过。

 

当然,他原本的题目太小,不足以满足真实的现场应用需求。 所以我就另起炉灶,完全从头描述了。

 

假设有N台几乎同样的设备我们这里暂时按最多8台算,比如水泵或者阀, 或者一套工艺单元封装后只接受的启动信号。 所以我们暂时不需要考虑单台设备本身的启停逻辑和故障保护,只在工艺层面探讨问题,那么它们每一台设备其实就是一个BOOL量为代表。 当然在功能完成后还需要再继续做补充完善,所以做题的时候还需要有预留,不能一步到位做死了, 以后没法升级了。 那不行。

 

工艺的要求是,当收到启动指令后,从1,2,3---8,顺序轮流启动,每台运行时间T1,T2,T3…TN,到最后一台运行完成停止后,即全部停止,等待下一次启动指令。 原题目是要形成循环,然而不是要实现的重点,就暂时先不做了。当然也是可以后续升级。

 

重点是顺序轮流启动的这个顺序需要是可变的。 比如会在触摸屏中配方给定的方式设定。即上述的顺序12345678, 还有可能是87654321或者12348765, 56781234。总之是不确定的。 运行中需要操作员来确定。 而编程时需要做成灵活的,有接口可以输入。

 

按照我在文章《0510【万泉河】 工控同行的宇宙观》中的观点:以造物主视角看问题,一个系统,或者一个模块,在输入确定,运行规则确定, 要求的输出确定的情况下,就是必然可以实现的。

 

那么当下的这个题目, 规则清晰, 输入输出清晰,那么就当然可以实现。 可以用一个FB实现。在FB的小宇宙内随便怎么腾挪乾坤大挪移都可以,只要最终能实现需要的目的。

 

我这里把这个接口设计一下,

 


                                           

其中顺序是个DINT, 可以表达10位的十进制数值, 那么我们可以用来表示8台以内的序号。 比如默认值我设置为12345600,除了代表前6台设备的启动顺序之外, 还代表了Q7和Q8不参与控制。

 

即程序块实现的是8台以内的任意数量的控制。

 

我们假设一个控制系统中共有2组这样的设备序列,分别为8台和6台, 实现的工艺功能是相同的。 那么最终在OB1中的调用:


 


只要如此对一个FB做2次实例化的调用,即可优雅地实现要求的全部功能。 即题目的全部。

 

有人会质疑怎么不玩80了, 怎么只玩8了。万老师的标志数字不是80的嘛?

其实只要实现了U8, 那么U80也完全可以同样实现。 80和8的唯一区别是输入接口的表达, 如何便于操作者在HMI上便捷输入。 而至于逻辑本身,并没有多少区别。 有能力者也可以在完成U8以后,顺便搞一下U80。

 

我写标准编程烟台方法的一些文章和例子, 有一些人看过了,也学到了一些内容。

 

那么我们就用今天这个例子来测试一下,到底谁是小白。 每一位工控行业的工程师们测试验证一下自己是否适合做程序员。

 

当然,我并不认为每一位电气工程师都需要有能力做出这样的程序,都要有做程序员的能力,才能胜任电气工程师的岗位。 工业社会,每个人都有自己的特殊擅长的领域,并不需要每个人所有技能全都掌握,那么每个人只需要把自己所掌握的那些的特长技能发挥应用好了, 而自己有短板的部分通过跟他人协作,会善于利用别人的特长为自己服务, 照样可以创造出优秀的工作业绩。

 

据我观察和估计, PLC工程师们的能力划分,大概会分几种:

 

1,  做不出这样的功能的程序,只能做普通的电气逻辑控制应用。

2,  可以用复杂的梯形图完成这样的功能,比如工位数量稍微少一点的。 数量多的太复杂就搞不定了。

3,  可以在上面约定的FB的空间里实现。(然而,能实现也并不代表就直接等同于具备了程序员的素质,还要看具体的实现方法)

 

那么,以后所有同行们,在遇到有人质疑烟台方法骗小白的时候,可以悄悄问一下他本人是不是小白,U8轮巡的程序他自己能不能做出来?

 

我现在把题目需求和框架做出来,但不打算现在就自己把逻辑给做了。 倒是有烟台方法的学员我给辅导过工程项目,做过的标准化项目里面有这个应用,他可以把我做过的块找到直接套用过来。 烟台方法的学员有长期被此类问题困扰的可以直接问他要答案。

 

而非烟台方法的学员,其实更需要的是理论。 没有理论方法的支撑, 直接给你答案, 你也会看不懂。 就像很多人看到了80模拟量的标准答案以后不以为然, 以为自己水平更高一样。

 


0609 【万泉河】宁做小白勿做小黑,一道测试题检测你是否适合做程序员 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3364条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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