就编程而言,其实是整个系统的实现部分。
到此时,工程已经完成70%了,所以程序只占系统的20%(其余10%是编制使用说
明书、验收材料等用户文件),但也是最费我们氧气的环节,说到缺氧说点题外
的,最近我正在编一台设备其中包括4模入、1模出、变频、3个HSC,定完程序框
架一看,共用了10个子程序、11个中断,呵呵。回来说程序,我发现本论坛大多
提到的是指令的应用,其实程序的定义很广,不是语句严谨就是好程序,还要结
构合理、系统化、易移植性、易扩展性、安全性及冗余等等。
1、 程序结构很重要,便于别人阅读,把程序开发人员的思路清楚的展现给他
人,编程中避免数据的交叉、语句的跳转,此处并不是说JUMP语句,而是顺序分
布,不要编程序网,很多人(包括自己)会被网套住,要编成程序链,让别人读程序时有如扶着钢锁过桥的感觉。这也是我为什么喜欢用T型图而不喜欢用语
句,实践证明用语句比T型图出逻辑错误的几率高。
2、 程序的系统化,把程序按功能划分,即“块”的理念,把一台复杂的设备分
成若干个块,每个块独立实现其功能,孙子说过,敌人强大,我设法把他分散
开,再逐一击破。我从来不在主程序里写指令,全是调用,程序的树型结构在很
多年前就被人认可,树干有若干分枝,枝上再分杈,如果你看见主树干上长满树
叶和果实会不会觉得心堵?
3、 移植和扩展,如果你搞过PC编程,这两个词肯定不生,移植是为了其它相同
功能程序的调用,建议大家多做点库,扩展性是为了设备有可能发生的二次改造或与其它设备的合作(并非通讯)而预先考虑的预留,当然扩展性更适合我们这
些做非标产品的,手指有点麻了。哇,中午了,吃饭了,下午再白话吧!今儿中午炖白菜……
饱了,打扑克蹲了一中午,这牌悖的,点儿悖不能怨社会,牌悖不能怪同类。
4、 安全性和冗余应该放在一起说,安全性即稳定性,好的系统不仅仅是处理复
杂的运行和运算,首要是安全稳定,能处理突发事故,和避免事故扩大,这里我
说说“千万不要用STOP指令”,停机后,你连事故都处理不了了,再上电可能就
会扩大事故。当然小设备除外,我知道STOP的唯一用途就是,别人不给你设备
款,就在他用了一段时间后STOP他的设备,呵呵。冗余,好象300或400有,我没
用过,我这里说的冗余是指软件冗余程序,并不是硬件的,在不影响系统性能的
情况下,系统中的冗余程序应占总程序的50%~75%左右,当然这也和系统的复杂
程度有关,我个人认为冗余程序的定义是:在非正常工作情况下运行,旨在发现
处理故障及其它非正常状况或数据的程序。没有冗余就谈不到完整。
再深白话就是系统的自检测、自诊断、容错性和拟人模仿性了,我在下回和大家白话。
总之,如果你把面前的一堆废铁变成一个机器人,赋予他眼耳鼻舌口手及思想和灵魂,你会发现你就是造物主,生命在你指尖诞生。