前面有一篇文章,程序在计算机的眼里是什么?答:数据处理
下面结合个别人的小案例—按下按钮延时5s灯亮,松开按钮延时5灯灭,的程序,来说明程序计算机的眼里是数据处理,这句话的含义。
顺便, 结合变量命名的规范。
在此将这个逻辑封装成了一个块

块内的内容

FB,Function Block,函数功能块=FC + InstanceDB=函数功能 + 背景数据块。背景数据块里面有静态变量,所以,定时器尽量定义在背景数据块里面,修改如下

onDealy、offDelay采用的是骆驼命名法,即:第一个单词小写,第二个单词的首字母大写。目的是一看这种骆驼的书写格式就是静态变量。可增加程序的阅读性。时间的长度与工艺持续时间上的两个时间点有关,所以这里的命名也是根据工艺来的
假如时间,是根据工艺进行变化的,应将时间放到输入接口上,如下

里采用的是全大写加下划线的命名方式,一看就是输入输出变量。同上,目的是:增加程序的阅读性
程序的工艺是:按下按钮延时5S亮,松开按钮延时5S灭。灯的两灭是一个Bool,写入的话,只有两种可能性0或1,所以这里面换成了SR,R的优先级比S高

灯的亮灭一般是通过按钮来实现的,所以将输入变量换成了:BUTTON_START。目的也是增加程序的阅读性。一看就知道,这是通过按钮来实现的。灯是一个硬件,其自身属性有很多,可以对它的属性进行分类。这里所以加上了LED的硬件大类名,不光有其属性。同样是为了增加程序的阅读性。
总的来说,涉及到(1)变量的定义规范、(2)IEC定时器尽量用静态变量
程序在计算机的眼里是数据处理:
工艺:按下按钮,延时5S灯亮。松开按钮,延时5S灯灭。
程序是现实问题的数学描述:按下按钮(BUTTON_START=1的话),延时5S灯亮(开始计时,记时时间达到5S。TON指令),等亮(LED_LIGHT=1)。按开按钮(BUTTON_START=0的话),延时5S灯亮(开始计时,记时时间达到5S。TON指令),灯灭(LED_LIGHT=0)。
上述语句换成数据处理就是:

奥,对了,假如该段工艺不是重复使用的话,不需要封装成FB函数

直接写在OB里面或者FC里面
如若转载,请注明出处:https://www.xkfy8.com/archives/31009