故事作者:万泉河

最近创作

看看TA的故事

【万泉河】那些你们舍不得割舍的M变量

已锁定

万泉河

  • 帖子

    10885
  • 精华

    132
  • 被关注

    893

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

【万泉河】那些你们舍不得割舍的M变量

4484

27

2020-12-29 18:26:40

【万泉河】那些你们舍不得割舍的M变量

 

有一些同行,不会客观思考道理。

 

总把自己的喜好掺加在里面。

 

所以,你道理讲了半天,他都懂,也都赞成。 但到了末了, 他会按照自己的喜好,留个例外,再打个折扣,然后,你前面讲的所有道理都白扯了。

 

比如上一篇《【万泉河】在S7-1200/1500的FB中,如何获取CPU启动首次循环的状态?》的评论:


 

                                             

 

这位朋友的回复里面,除了他歪曲了标准化的含义, 把固定约定当成了标准化之外, 还有一个主要的原因是,这些功能全局变量用得爽啊!


谁都知道爽,我也爽了十几年。

 

但到了标准化架构,有多不爽已经阐述过多次了。 做好的标准程序块,使用之前还要提前打许多埋伏,也同样违背了高内聚低耦合的原则,在耦合层多了一些额外的工作。

 

那么我们逐个来分析,如何实现这些以往用着很爽的功能性M变量的替代。

 

M1.0  FirstScan 首次循环

这是上文重点讲解过的,此文无需赘述。

 

但其实却是所有变量中最重要的,最难搞的。 如果说它的实现很水,其实后面的所有变量,都比它水还水。

 

M1.1  诊断状态已更改

没用过,不知道有啥用。所以没必要研究替代方案。

 

M1.2 始终为1, M1.3始终为0

这在FC/FB中很容易实现,定义两个BOOL的temp临时变量,分别为N1, N0, 函数块开始时,梯形图第一段,赋值一下,即可。

同样逻辑还有多种方法实现,大同小异。

 

这是所有PLC兼容的通用做法,然而在PORTAL中,增加了常量变量,只需要在常量中定义了,分别给设置了默认值1和0,连逻辑都不需要写了。

 

 

通常,梯形图逻辑中使用常1和常0,是为了屏蔽一些调试中作废的功能。但因为这些逻辑还有可能再用到,就没舍得删除。

 

而如果因为变量定义的原因,不小心这俩功能变量没激活,导致垃圾逻辑又复活了,那才是非常恶心的。

 

我上篇文章发布后,评论里面有个朋友的回复,就是吃了大亏。

 

MB0 时钟存储器字节,8个脉冲信号

这8个脉冲信号,区别只是频率不同,从10Hz到0.5Hz不等。

 

其中, 最有用的也就是1Hz的那个位,可以用于指示灯的闪烁,0.5亮+0.5灭。

而其它的7个位, 其实都很少用到。

 

而其实,这些变量虽然多,但功能其实还不够用。真正的工程应用中,工艺要求远比这几个简单变量所能提供的复杂。比如它的占空比是固定的50%,当需要变化的占空比的时候,就无能为力了。

 

而其实,对脉冲还有更复杂的要求。比如在除尘器行业,有多个脉冲阀,运行的时候,需要各个脉冲阀轮流间歇动作。

 

为此,我们特别编制了PSV功能块,需要的时候调用一下。功能块最多可以带6个脉冲,然而脉冲的维度可以设置,脉冲的工作时间/空闲时间也可以设置。除了除尘器用到之外,即便只需要一个0.5/0.5的脉冲,那也只需要调用一个PSV,维度设置为1,时间参数分别设置0.5/0.5即可。

 

这里把这个PSV函数分享给大家。 只不过, 由于其中使用的定时器是我改造过的,时间格式直接用的浮点数,之前有文章表达过的。所以单独一个块编译不成功,各位只需要看懂原理,自己也可以简单实现。

 

大家也可以看到, 6维脉冲,启停步骤一共12步,但我也没有使用所谓更高效的循环功能。 就这么最原始的一步步重复逻辑写下来了。 印证了我一直的主张,PLC逻辑里大部分的循环是没必要的!

 

当然, 我也知道,这个逻辑还可以更简化些,可以少占用一些系统资源。但在没发生PLC资源匮乏的情况下,暂时还没兴趣去升级改造它。

 

不过,要改也没多难,需要的时候,稍微花点心思而已。标准化模块化的设计架构就这么简单,不会因为一个模块的改动而整个楼都塌了。

 

得到示例程序的方法:

关注公众号《PLC标准化编程》,后台回复PSV,即可得到下载链接。

 

程序是用PORTAL V16环境做的,建议还在坚持用15, 14,乃至13SP1的同行们尽早升级吧!同时给大家辟个谣,传说PORTAL越升级,对电脑性能要求越高的说法不存在,我这儿V16跑在2013年的旧本子的虚拟机里,溜的很, 啥问题都没有!

 

所以传说V17很快要面世了, 等大家有了以后别忘了第一时间分享给我,我第一时间就升级,学习新功能!

 

不过为了照顾暂时还没有V16软件,又急迫想一睹为快的朋友, 程序块我也打印成了PDF, 一并放在分享文件夹中了。

 

 

 

 


【万泉河】那些你们舍不得割舍的M变量 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

网友专栏

共有3227条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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