|
邀请回答
马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册 ![](source/plugin/zhanmishu_wechat/template/static/img/wechat_login.png)
x
编写程序就像写文章,需要很好的思路,构思方法、逻辑处理、数据结构等都至关重要,程序玩到最高境界可能就是在玩数据了。
是否有一些可以遵循的原则,可以归纳出一二呢?编程思路变化繁杂,只能把个人的心得写出一二,对于他人有时隔靴挠痒,并不起多大的作用,闲谈而已。
使用一个案例来说可能比较好讲一些:
例如:三色灯的红灯,有故障,有警告希望红灯亮,这是需求
如果程序结构写的不好,层级划分不清晰,那程序就会写的比较复杂,故障有30个,警告有30个,如果全部写在一起的话,这个网络段估计写成了很长一大串,将来客户的要求有变化了,那这个时候想改动,比较费劲的。红灯亮的时候,客户想知道到底哪里出问题了,查找也是一个大的麻烦。
这个时候需要划分段落,划分层级,把他们的归属理清楚。
64个报警,16个一个Int,共四个Int,Error0-Error3(Int)
if Error0<>0 OR Error1<>0 OR Error2<>0 OR Error3<>0 then
Error=True
else
Error=False
end if
这里的变量Error0-Error3变量int就是为了方便归纳而建,也是为了HMI上面用
Alarm同理
Error OR Alarm = RedLamp(True)
如果发现红灯亮了,那么看Error,还是Alarm,如果是Error,那么查看是哪个Error,一级一级的查
如果客户想让灯闪烁,那就在组合上闪烁的信号Wave1S
总体归纳起来:N多小条件--->组合成n个中条件--->组合成m个大条件--->最终的表现出来的控制对象
N多小条件需要中间变量的,那就要建一些中间变量,将来客户无论从哪个级别进行闸控,都可以灵活的处理
爷爷兄弟3个,各自又生了3个儿子,各自的儿子又有了孙子,他们都要有自己的家庭,有自己的名称,这些就是我们需要建的变量,有了分级才能够管理方便。
举的例子不一定恰当,但可以说明一些问题。
写程序的时候,网络段尽量几个条件和逻辑就得出一个结果,就像一个小组一个小组的聚合在一起,像古代的伍长、什长、百夫长一样,用最简短的程序内核成网络段,网络段再内核成子程序块,这样写出来的程序,简洁有力。
一旦发现自己写的程序像一个大葡萄串一样,需要立即叫停了,因为中间的葡萄坏了,想把这颗葡萄摘除,必然会碰掉与之相邻的单元,这样的程序是危险的,对于后期维护的人是一种压力,对于自己的成长,也是不利的。
以上只是浅谈,实际应用中会有很多无奈,两权相害取其轻,本身就是无解,考虑的方向不同,得到的结果也会不同。
|
上一篇: H5U关于FB和FC的区分下一篇: H5U_36轴标准程序
|