KARL老人家工控软件抗干扰设计中的第一篇,我看不到。第二篇看了。
个人理解:
电这东西,是微观上运动的,有的时候的确不容易受我们主观控制。
严格上讲,在电子(器件、产品)电气电路设计过程中,都应该有一个失效分析。比如说,一个电路,在什么温度、湿度、压力、电磁场、照度、酸碱度、以及其它种种环境下,能够可靠工作;测控精度能在不同环境下,能保证多少。当电路环境超出这个范围,肯定容易失效。
另一方面,从概率论和微观上看,即使在经过检验分析的环境下工作,电路仍然可能会有不明原因的失效,这种失效,一般宏观上是不可重复的。当然,这种失效概率相对很小,但是,也许我们永远无法根本解决。
基于这种原因,在硬件平台上搭起的软件,也必然肩负着协调处理部分硬件问题的重任。
一般工控上,最让我们注意的是电磁干扰。
从需要抗干扰的对象划分,这里简单把抗干扰的设计分3个方面
一、操作系统。
工控行业,真正和物理层打交道的软件,在计算机里只有各个板卡的BIOS。在PLC里是PLC厂商在各模块上写好的程序和一些可编程逻辑器件。一般只在单片机这种类型的开发工作中,操作系统是用户自己完成的。所以操作系统的设计基本上也限于对芯片、板卡级开发用户。
即便是开发这种操作系统的开发人员,一般也免不掉用芯片厂商提供的编译器、编程软件等应用软件工具,合理利用这些软件,避免软件中的BUG,是开必人员第一要注意的。
1、某些CPU和可编程器件,电源是可由软件选择设定的。高电压等级比低电压的噪声容限要高,如果可能,为减弱干扰影响可以选用高电压。比如5V和3.3V,可以用5V。
2、某些器件复位方式是可以软件设置的,根据芯片内参数不同、现场环境不同,可以选择不同的复位方式。比如PIC单片机的复位信号可以用内置也可以用外部的,不同方式,复位信号斜率不同,这对复位成功率是有影响的。
3、晶震、通讯的波特率等常常是需要软件设置的。一般频率越高,速度越快,可靠性也越差。
4、在进行读、写、IO操作时,在必要的地方,都应该有错误或超时返回的措施。这一点很重要,如果不这样做,在有些操作不能响应时,程序不是在这里始终等待做死机状,就是被狗复位,这对用户而言,是毁灭性的。然而,众多的开发者,在这方面的工作做得很少。
5、许多老师们都提到的,看门狗、程序计数器、RAMROM的读写验证、重要数据备份、配置参数刷新、各主程序子程序的相互校验、非程序区或子程序之间添加跳转到主程序的指令等等。--这些措施分类比较杂乱,有些其实并不会导致操作系统死机、复位或重要功能失效。
二、IO读写。
对于建立在操作系统上的高层开发,比如DOS用C、汇编等,WINDOWS用VISUAL STUDIO开发工具、DELPHI、JAVA、组态及各种软件,UNIX里写C,嵌入式实时操作系统里用C用汇编,PLC编程用梯形图语句表等等,一般不能处理编程软件本身的问题,更不能处理操作系统的稳定性问题。这里,我们暂且只考虑IO读写。
1、DI。许多干扰都是mS级以下的毛刺或瞬间脉冲,可以在发现IO状态发生变化同时做定时,如果在某一个时间段(如0.5秒),IO状态仍然保持不变,那么,我们认为IO状态的确发生了改变,否则,认为IO没有动作。如果程序或系统允许,也可以反复采集多次。
2、AI。关于模拟量输入滤波算法,网上已经有许多帖子叙述多种算法,一般工控应用上都没有必要做高元的分析变换,在此不再赘述。
3、FI(频率输入)。由于频率较高,不能象DI一样简单处理。可以从数字运算上,用AI一样的滤波算法。
4、AO、DO、FO(频率输出)。在程序运行周期的各个部分,重复不断输出就应该输出的状态。如果条件允许,有必要采集输出后系统反馈回来的信号,如果有问题发生,及时处理。
一般单片机的系统级开发,所有IO操作,都必须由开发者自己做抗干扰处理。其它有些嵌入式开发、板卡应用开发、PLC或DCS等工程应用开发等等,部分抗干扰措施只须要选择配置,有的底层系统已经做了部分工作,这时的抗干扰措施可以自己试验、选择来做。
另外,大家都知道测不准原理:一个物体的速度和质量是无法同时准确测量的。在测控领域,我认为也是一样的道理,一个参量采集的稳定可靠性和速度,是无法兼得的。只能根据实际需要,用不同算法取得一个折衷的效果。
三、通讯。
现在的通讯是比较深的一门专业,尤其涉及到语音、图像、无线的算法比较多,有许多算法和理论不是我们普通搞电气的能理解和掌握的。
表面上,有一些简单措施我们可以试用一下。
1、超时处理,释放资源
2、校验(许多种算法,自行查找)
3、校验出错续传(重传)
总结:以上各种抗干扰措施在于开发者自己融汇贯通,在不同场合灵活、综合使用。在系统设计时应该综合考虑各方面方案。
值得一提的是,硬件是基础是根本;如果没有一个可靠的硬件平台,软件再怎么努力,也只能亡羊补牢,不能锦上添花。所以,抗干扰请从硬件做起!
感谢KARL版主对我LAUER、FESTO问题的帮助,谨以此贴一献。