PLC以其显著的优点而广泛用于工业控制,其实际应用涉及的问题很多,本文只是就其现场安装和维护问题提出了一些注意事项,供从事PLC设计及应用人员参考。可编程控制器(PLC)是一种新型的通用自动化控制装置,它将传统的继电器控制技术、计算机技术和通讯技术融为一体,具有控制功能强,可*性高,使用灵活方便,易于扩展等优点而应用越来越广泛。但在使用时由于工业生产现场的工作环境恶劣,干扰源众多,如大功率用电设备的起动或停止引起电网电压的波动形成低频干扰,电焊机、电火花加工机床、电机的电刷等通过电磁耦合产生的工频干扰等,都会影响PLC的正常工作。
尽管PLC是专门在现场使用的控制装置,在设计制造时已采取了很多措施,使它对工业环境比较适应,但是为了确保整个系统稳定可*,还是应当尽量使PLC有良好的工作环境条件,并采取必要的抗干扰措施。下面是PLC在安装和维护时应注意的问题
1 PLC的安装
PLC适用于大多数工业现场,但它对使用场合、环境温度等还是有一定要求。控制PLC的工作环境,可以有效地提高它的工作效率和寿命。在安装PLC时,要避开下列场所:
(1)环境温度超过0~50℃的范围;
(2)相对湿度超过85%或者存在露水凝聚(由温度突变或其他因素所引起的);
(3)太阳光直接照射;
(4)有腐蚀和易燃的气体,例如氯化氢、硫化氢等;
(5)有打量铁屑及灰尘;
(6)频繁或连续的振动,振动频率为10~55Hz、幅度为0.5mm(峰-峰);
(7)超过10g(重力加速度)的冲击。
小型可编程控制器外壳的4个角上,均有安装孔。有两种安装方法,一是用螺钉固定,不同的单元有不同的安装尺寸;另一种是DIN(德国共和标准)轨道固定。DIN轨道配套使用的安装夹板,左右各一对。在轨道上,先装好左右夹板,装上PLC,然后拧紧螺钉。为了使控制系统工作可*,通常把可编程控制器安装在有保护外壳的控制柜中,以防止灰尘、油污、水溅。为了保证可编程控制器在工作状态下其温度保持在规定环境温度范围内,安装机器应有足够的通风空间,基本单元和扩展单元之间要有30mm以上间隔。如果周围环境超过55C,要安装电风扇,强迫通风。
为了避免其他外围设备的电干扰,可编程控制器应尽可能远离高压电源线和高压设备,可编程控制器与高压设备和电源线之间应留出至少200mm的距离。
当可编程控制器垂直安装时,要严防导线头、铁屑等从通风窗掉入可编程控制器内部,造成印刷电路板短路,使其不能正常工作甚至永久损坏。
2 电源接线
PLC供电电源为50Hz、220V±10%的交流电。
FX系列可编程控制器有直流24V输出接线端。该接线端可为输入传感(如光电开关或接近开关)提供直流24V电源。
如果电源发生故障,中断时间少于10ms,PLC工作不受影响。若电源中断超过10ms或电源下降超过允许值,则PLC停止工作,所有的输出点均同时断开。当电源恢复时,若RUN输入接通,则操作自动进行。
对于电源线来的干扰,PLC本身具有足够的抵制能力。如果电源干扰特别严重,可以安装一个变比为1:1的隔离变压器,以减少设备与地之间的干扰。
3 接地
良好的接地是保证PLC可*工作的重要条件,可以避免偶然发生的电压冲击危害。接地线与机器的接地端相接,基本单元接地。如果要用扩展单元,其接地点应与基本单元的接地点接在一起。为了抑制加在电源及输入端、输出端的干扰,应给可编程控制器接上专用地线,接地点应与动力设备(如电机)的接地点分开。若达不到这种要求,也必须做到与其他设备公共接地,禁止与其他设备串联接地。接地点应尽可能*近PLC。
4 直流24V接线端
使用无源触点的输入器件时,PLC内部24V电源通过输入器件向输入端提供每点7mA的电流。PLC上的24V接线端子,还可以向外部传感器(如接近开关或光电开关)提供电流。24V端子作传感器电源时,COM端子是直流24V地端。如果采用扩展船员,则应将基本单元和扩展单元的24V端连接起来。另外,任何外部电源不能接到这个端子。
如果发生过载现象,电压将自动跌落,该点输入对可编程控制器不起作用。
每种型号的PLC的输入点数量是有规定的。对每一个尚未使用的输入点,它不耗电,因此在这种情况下,24V电源端子向外供电流的能力可以增加。
FX系列PLC的空位端子,在任何情况下都不能使用。
5 输入接线
PLC一般接受行程开关、限位开关等输入的开关量信号。输入接线端子是PLC与外部传感器负载转换信号的端口。输入接线,一般指外部传感器与输入端口的接线。
输入器件可以是任何无源的触点或集电极开路的NPN管。输入器件接通时,输入端接通,输入线路闭合,同时输入指示的发光二极管亮。
输入端的一次电路与二次电路之间,采用光电耦合隔离。二次电路带RC滤波器,以防止由于输入触点抖动或从输入线路串入的电噪声引起PLC误动作。
若在输入触点电路串联二极管,在串联二极管上的电压应小于4V。若使用带发光二极管的舌簧开关,串联二极管的数目不能超过两只。
另外,输入接线还应特别注意以下几点:
(1)输入接线一般不要超过30m。但如果环境干扰较小,电压降不大时,输入接线可适当长些。
(2)输入、输出线不能用同一根电缆,输入、输出线要分开。
(3)可编程控制器所能接受的脉冲信号的宽度,应大于扫描周期的时间。
6输出接线
(1)可编程控制器有继电器输出、晶闸管输出、晶体管输出3种形式。
(2)输出端接线分为独立输出和公共输出。当PLC的输出继电器或晶闸管动作时,同一号码的两个输出端接通。在不同组中,可采用不同类型和电压等级的输出电压。但在同一组中的输出只能用同一类型、同一电压等级的电源。
(3)由于PLC的输出元件被封装在印制电路板上,并且连接至端子板,若将连接输出元件的负载短路,将烧毁印制电路板,因此,应用熔丝保护输出元件。
(4)采用继电器输出时,承受的电感性负载大小影响到继电器的工作寿命,因此继电器工作寿命要求长。
(5)PLC的输出负载可能产生噪声干扰,因此要采取措施加以控制。
此外,对于能使用户造成伤害的危险负载,除了在控制程序中加以考虑之外,还应设计外部紧急停车电路,使得可编程控制器发生故障时,能将引起伤害的负载电源切断。
交流输出线和直流输出线不要用同一本电缆,输出线应尽量远离高压线和动力线,避免并行。
PLC程序的调试方法及步骤
PLC程序的调试可以分为模拟调试和现场调试两个调试过程,在此之前首先对PLC外部接线作仔细检查,这一个环节很重要。外部接线一定要准确无误。也可以用事先编写好的试验程序对外部接线做扫描通电检查来查找接线故障。不过,为了安全考虑,最好将主电路断开。当确认接线无误后再连接主电路,将模拟调试好的程序送入用户存储器进行调试,直到各部分的功能都正常,并能协调一致地完成整体的控制功能为止。
1.程序的模拟调试
将设计好的程序写入PLC后,首先逐条仔细检查,并改正写入时出现的错误。用户程序一般先在实验室模拟调试,实际的输入信号可以用钮子开关和按钮来模拟,各输出量的通/断状态用PLC上有关的发光二极管来显示,一般不用接PLC实际的负载(如接触器、电磁阀等)。可以根据功能表图,在适当的时候用开关或按钮来模拟实际的反馈信号,如限位开关触点的接通和断开。对于顺序控制程序,调试程序的主要任务是检查程序的运行是否符合功能表图的规定,即在某一转换条件实现时,是否发生步的活动状态的正确变化,即该转换所有的前级步是否变为不活动步,所有的后续步是否变为活动步,以及各步被驱动的负载是否发生相应的变化。
在调试时应充分考虑各种可能的情况,对系统各种不同的工作方式、有选择序列的功能表图中的每一条支路、各种可能的进展路线,都应逐一检查,不能遗漏。发现问题后应及时修改梯形图和PLC中的程序,直到在各种可能的情况下输入量与输出量之间的关系完全符合要求。
如果程序中某些定时器或计数器的设定值过大,为了缩短调试时间,可以在调试时将它们减小,模拟测试结束后再写入它们的实际设定值。
在设计和模拟调试程序的同时,可以设计、制作控制台或控制柜,PLC之外的其他硬件的安装、接线工作也可以同时进行。
2.程序的现场调试
完成上述的工作后,将PLC安装在控制现场进行联机总调试,在调试过程中将暴露出系统中可能存在的传感器、执行器和硬接线等方面的问题,以及PLC的外部接线图和梯形图程序设计中的问题,应对出现的问题及时加以解决。如果调试达不到指标要求,则对相应硬件和软件部分作适当调整,通常只需要修改程序就可能达到调整的目的。全部调试通过后,经过一段时间的考验,系统就可以投入实际的运行了。
PLC应用中应注意的问题
PLC是专门为工业生产服务的控制装置,通常不需要采取什么措施,就可以直接在工业环境中使用。但是,当生产环境过于恶劣,电磁干扰特别强烈,或安装使用不当,都不能保证PLC的正常运行,因此在使用中应注意以下问题。
一、工作环境
1. 温度
PLC要求环境温度在0~55℃,安装时不能放在发热量大的元件下面,四周通风散热的空间应足够大,基本单元和扩展单元之间要有30mm以上间隔;开关柜上、下部应有通风的百叶窗,防止太阳光直接照射;如果周围环境超过55℃,要安装电风扇强迫通风。
2. 湿度
为了保证PLC的绝缘性能,空气的相对湿度应小于85%(无凝露)。
3. 震动
应使PLC远离强烈的震动源,防止振动频率为10~55Hz的频繁或连续振动。当使用环境不可避免震动时,必须采取减震措施,如采用减震胶等。
4. 空气
避免有腐蚀和易燃的气体,例如氯化氢、硫化氢等。对于空气中有较多粉尘或腐蚀性气体的环境,可将PLC安装在封闭性较好的控制室或控制柜中,并安装空气净化装置。
5. 电源
PLC供电电源为50Hz、220(1±10%)V的交流电,对于电源线来的干扰,PLC本身具有足够的抵制能力。对于可靠性要求很高的场合或电源干扰特别严重的环境,可以安装一台带屏蔽层的变比为1:1的隔离变压器,以减少设备与地之间的干扰。还可以在电源输入端串接LC滤波电路。
FX系列PLC有直流24V输出接线端,该接线端可为输入传感器(如光电开关或接近开关)提供直流24V电源。当输入端使用外接直流电源时,应选用直流稳压电源。因为普通的整流滤波电源,由于纹波的影响,容易使PLC接收到错误信息。
二、安装与布线
1. 动力线、控制线以及PLC的电源线和I/O线应分别配线,隔离变压器与PLC和I/O之间应采用双胶线连接。
2. PLC应远离强干扰源如电焊机、大功率硅整流装置和大型动力设备,不能与高压电器安装在同一个开关柜内。
3. PLC的输入与输出最好分开走线,开关量与模拟量也要分开敷设。模拟量信号的传送应采用屏蔽线,屏蔽层应一端或两端接地,接地电阻应小于屏蔽层电阻的1/10。
4. PLC基本单元与扩展单元以及功能模块的连接线缆应单独敷设,以防止外界信号的干扰。
5. 交流输出线和直流输出线不要用同一根电缆,输出线应尽量远离高压线和动力线,避免并行。
三、I/O端的接线
1. 输入接线
(1)输入接线一般不要超过30米。但如果环境干扰较小,电压降不大时,输入接线可适当长些。
(2)输入/输出线不能用同一根电缆,输入/输出线要分开。
(3)尽可能采用常开触点形式连接到输入端,使编制的梯形图与继电器原理图一致,便于阅读。
2. 输出连接
(1)输出端接线分为独立输出和公共输出。在不同组中,可采用不同类型和电压等级的输出电压。但在同一组中的输出只能用同一类型、同一电压等级的电源。
(2)由于PLC的输出元件被封装在印制电路板上,并且连接至端子板,若将连接输出元件的负载短路,将烧毁印制电路板,因此,应用熔丝保护输出元件。
(3)采用继电器输出时,所承受的电感性负载的大小,会影响到继电器的使用寿命,因此,使用电感性负载时选择继电器工作寿命要长。
(4)PLC的输出负载可能产生干扰,因此要采取措施加以控制,如直流输出的续流管保护,交流输出的阻容吸收电路,晶体管及双向晶闸管输出的旁路电阻保护。
四、外部安全电路
为了确保整个系统能在安全状态下可靠工作,避免由于外部电源发生故障、PLC出现异常、误操作以及误输出造成的重大经济损失和人身伤亡事故,PLC外部应安装必要的保护电路。
(1)急停电路。对于能使用户造成伤害的危险负载,除了在控制程序中加以考虑之外,还应设计外部紧急停车电路,使得PLC发生故障时,能将引起伤害的负载电源可靠切断。
(2)保护电路。正反向运转等可逆操作的控制系统,要设置外部电器互锁保护;往复运行及升降移动的控制系统,要设置外部限位保护电路。
(3)可编程控制器有监视定时器等自检功能,检查出异常时,输出全部关闭。但当可编程控制器CPU故障时就不能控制输出,因此,对于能使用户造成伤害的危险负载,为确保设备在安全状态下运行,需设计外电路加以防护。
(4)电源过负荷的防护。如果PLC电源发生故障,中断时间少于10秒,PLC工作不受影响,若电源中断超过10秒或电源下降超过允许值,则PLC停止工作,所有的输出点均同时断开;当电源恢复时,若RUN输入接通,则操作自动进行。因此,对一些易过负载的输入设备应设置必要的限流保护电路。
(5)重大故障的报警及防护。对于易发生重大事故的场所,为了确保控制系统在重大事故发生时仍可靠的报警及防护,应将与重大故障有联系的信号通过外电路输出,以使控制系统在安全状况下运行。
五、PLC的接地
良好的接地是保证PLC可靠工作的重要条件,可以避免偶然发生的电压冲击危害。PLC的接地线与机器的接地端相接,接地线的截面积应不小于2mm2 ,接地电阻小于100Ω;如果要用扩展单元,其接地点应与基本单元的接地点接在一起。为了抑制加在电源及输入端、输出端的干扰,应给PLC接上专用地线,接地点应与动力设备(如电机)的接地点分开;若达不到这种要求,也必须做到与其它设备公共接地,禁止与其它设备串连接地。接地点应尽可能靠近PLC。
六、冗余系统与热备用系统
在石油、化工、冶金等行业的某些系统中,要求控制装置有极高的可靠性。如果控制系统发生故障,将会造成停产、原料大量浪费或设备损坏,给企业造成极大的经济损失。但是仅靠提高控制系统硬件的可靠性来满足上述要求是远远不够的,因为PLC本身可靠性的提高是有一定的限度。使用冗余系统或热备用系统就能够比较有效地解决上述问题。
1. 冗余控制系统
在冗余控制系统中,整个PLC控制系统(或系统中最重要的部分,如CPU模块)由两套完全相同的系统组成如图2所示。两块CPU模块使用相同的用户程序并行工作,其中一块是主CPU,另一块是备用CPU;主CPU工作,而备用CPU的输出是被禁止的,当主CPU发生故障时,备用CPU自动投入运行。这一切换过程是由冗余处理单元RPU控制的,切换时间在1~3个扫描周期,I/O系统的切换也是由RPU完成的。
2. 热备用系统
在热备用系统中,两台CPU用通讯接口连接在一起,均处于通电状态如图3所示。当系统出现故障时,由主CPU通知备用CPU,使备用CPU投入运行。这一切换过程一般不太快,但它的结构有比冗余系统简单。
PLC的抗干扰措施
尽管PLC(可编程序控制器)自身已具备较好的抗干扰能力,但在PLC控制系统的工程设计、应用和维护过程中,系统抗干扰能力仍然是系统可靠运行的关键。笔者在多年教学、科研和生产实践中常遇到PLC因干扰而不能正常工作的情形。因自动化系统中所使用的各种类型PLC大多处在强电电路和强电设备所形成的恶劣电磁环境中,要提高PLC控制系统可靠性,一方面要求PLC生产厂家提高设备的抗干扰能力;另一方面,要求在工程设计、安装施工和使用维护中高度重视,多方配合才能解决问题,有效地增强系统的抗干扰能力。
1 干扰源分析
1.1 干扰源及其一般分类
对PLC系统而言,常采用共模干扰和差模干扰的分类方法。共模干扰主要由电网串入、地电位差及空间电磁辐射在信号线上感应的共态(同方向)电压迭加所形成。共模电压有时较大,特别是采用隔离性能差的配电器供电时,变送器输出信号的共模电压普遍较高,有的可高达130V以上。共模电压通过不对称电路可转换成差模电压,直接影响测控信号,造成元器件损坏,这就是一些系统I/O模件损坏率较高的主要原因。这种共模干扰可为直流,亦可为交流。差模干扰主要由空间电磁场在信号间耦合感应及由不平衡电路转换共模干扰所形成的电压,这种干扰直接叠加在信号上,直接影响测量与控制精度。此外,按噪声产生的原因,分为放电噪声、浪涌噪声、高频振荡噪声等;按噪声的波形、性质,分为持续噪声、偶发噪声等。
1.2 PLC控制系统干扰的主要来源
(1)来自空间的辐射干扰。空间的辐射电磁场(EMI),主要由电力网络、电气设备的暂态过程、雷电、无线电广播、电视、雷达、高频感应加热设备等产生,通常称为辐射干扰。其分布极为复杂。其影响主要通过两条路径:一是直接对PLC内部的辐射,由电路感应产生干扰;二是对PLC通信网络的辐射,由通信线路的感应引入干扰。辐射干扰与现场设备布置及设备所产生的电磁场大小特别是频率有关。
(2)来自电源的干扰。因电源引入的干扰造成PLC控制系统故障的情况很多,更换隔离性能好的PLC电源,才能解决问题。PLC系统的正常供电电源均由电网供电。由于电网覆盖范围广,它将受到所有空间电磁干扰而在线路上感应电压和电路。尤其是电网内部的变化,如开关操作浪涌、大型电力设备起停、交直流传动装置引起的谐波、电网短路暂态冲击等,都通过输电线路传到电源原边。PLC电源通常采用隔离电源,但因其结构及制造工艺使其隔离性并不理想。
(3)来自信号线引入的干扰。与PLC控制系统连接的各类信号传输线,除了传输有效的各类信息外,总会有外部干扰信号侵入。此干扰主要有两种途径:一是通过变送器供电电源或共用信号仪表的供电电源串入的电网干扰,这往往被忽视;二是信号线受空间电磁辐射感应的干扰,即信号线上的外部感应干扰,这是很严重的。由信号引入干扰会引起I/O信号工作异常,大大降低测量精度,严重时将引起元器件损伤。对于隔离性能差的系统,还将导致信号间互相干扰,引起共地系统总线回流,造成逻辑数据变化、误动和死机。PLC控制系统因信号引入干扰造成I/O模件损坏相当严重,由此引起系统故障的情况也很多。
(4)来自接地系统混乱的干扰。PLC控制系统正确的接地,是为了抑制电磁干扰的影响,又能抑制设备向外发出干扰;而错误的接地,反而会引入严重的干扰信号,使PLC系统无法正常工作。PLC控制系统的地线包括系统地、屏蔽地、交流地和保护地等。这样会引起各个接地点电位分布不均,不同接地点间存在地电位差,引起地环路电流,影响系统正常工作。例如电缆屏蔽层必须一点接地,如果电缆屏蔽层两端A、B都接地,就存在地电位差,有电流流过屏蔽层,当发生异常情况时,地线电流将更大。
屏蔽层、接地线和大地也有可能构成闭合环路,在变化磁场的作用下,屏蔽层内会出现感应电流,通过屏蔽层与芯线之间的耦合干扰信号回路。若系统地与其它接地处理混乱,所产生的地环流就可能在地线上产生电位分布,影响PLC内逻辑电路和模拟电路的正常工作。PLC工作的逻辑电压干扰容限较低,逻辑地电位的分布干扰容易影响PLC的逻辑运算和数据存贮,造成数据混乱、程序跑飞或死机。模拟地电位的分布将导致测量精度下降,引起信号测控失真和误动作。
(5)来自PLC系统内部的干扰。主要由系统内部元器件及电路间的相互电磁辐射产生,如逻辑电路相互辐射及其对模拟电路的影响,模拟地与逻辑地的相互影响及元器件间的相互不匹配使用等。要选择具有较多应用实绩或经过考验的系统。
2 抗干扰设计和措施
2.1 选择抗干扰性能好的设备
选择设备时,首先要选择有较高抗干扰能力的产品,包括电磁兼容性(EMC),尤其是选择抗外部干扰能力强的产品,如采用浮地技术、隔离性能好的PLC系统;其次还应了解生产厂给出的抗干扰指标,如共模拟制比、差模拟制比、耐压能力、允许在多大电场强度和多高频率的磁场强度环境中工作;另外还要调查其在类似工作中的应用实绩。在选择国外进口产品时要注意电网制式。由于我国电网内阻大,零点电位漂移大,地电位变化大,工业企业现场的电磁干扰至少要比欧美地区高4倍以上,对系统抗干扰性能要求更高。因此在采用国外产品时,需按我国的标准(GB/T13926)合理选择。
2.2 综合抗干扰设计
主要考虑来自系统外部的几种干扰源并采取相应抑制措施。主要包括:对PLC系统及外引线进行屏蔽以防空间辐射电磁干扰;对外引线进行隔离、滤波,特别是动力电缆,要分层布置,以防通过外引线引入传导电磁干扰;正确设计接地点和接地装置,完善接地系统。另外还必须利用软件手段,进一步提高系统的安全可靠性。
2.3 电源的选择
在PLC控制系统中,电源占有极重要的地位。主要是变送器供电的电源和PLC系统有直接电气连接的仪表供电电源引起的干扰,并没有受到足够的重视,虽然采取了一定的隔离措施,但普遍还不够。主要是使用的隔离变压器分布参数大,抑制干扰能力差,经电源耦合而串入共模干扰、差模干扰。所以,对于变送器和共用信号仪表供电应选择分布电容小、抑制带大(如采用多次隔离和屏蔽及漏感技术)的配电器,以减少PLC系统的干扰。
2.4 电缆的选择和布置
为了减少动力电缆辐射电磁干扰,尤其是变频装置馈电电缆,不同类型的信号分别由不同电缆传输,信号电缆应按传输信号种类分层布置,严禁用同一电缆的不同导线同时传送动力电源和信号,避免信号线与动力电缆靠近平行布置,以减少电磁干扰。
2.5 滤波及软件抗干扰措施
信号在接入PLC前,在信号线与地间并接电容,以减少共模干扰;在信号两极间加装滤波器可减少差模干扰。此外,在PLC控制系统的软件设计和组态时,还应在软件方面进行抗干扰处理,进一步提高系统的可靠性。常用的一些措施:数字滤波和工频整形采样,可有效消除周期性干扰;定时校正参考点电位,并采用动态零点,可有效防止电位漂移;采用信息冗余技术,设计相应的软件标志位;采用间接跳转,设置软件陷阱等,以提高软件结构可靠性。
2.6 完善接地系统
系统接地方式有浮地方式、直接接地方式和电容接地三种方式。对PLC控制系统而言,它属高速低电平控制装置,应采用直接接地方式。由于信号电缆分布电容和输入装置滤波等的影响,装置之间的信号交换频率一般都低于1MHz,所以PLC控制系统接地线采用一点接地和串联一点接地方式。集中布置的PLC系统适于并联一点接地方式,各装置的柜体中心接地点以单独的接地线引向接地极。如果装置间距较大,应采用串联一点接地方式。用一根大截面铜母线(或绝缘电缆)连接各装置的柜体中心接地点,然后将接地母线直接连接接地极。接地线采用截面大于22mm2的铜导线,总母线使用截面大于60mm2的铜排。接地极的接地电阻小于2Ω,接地极最好埋在距建筑物10~15m远处,而且PLC系统接地点必须与强电设备接地点相距10m以上。信号源接地时,屏蔽层应在信号侧接地;不接地时,应在PLC侧接地;信号线中间有接头时,屏蔽层应牢固连接并进行绝缘处理,一定要避免多点接地;多个测点信号的屏蔽双绞线与多芯对绞总屏电缆连接时,各屏蔽层应相互连接好,并经绝缘处理,选择适当的接地处单点接地。
综上可见,PLC控制系统中的干扰是个十分复杂的问题,在设计中应综合考虑各方面的因素,合理有效地抑制抗干扰,对某些干扰还需作具体分析,采取对症下药的方法,才能使PLC控制系统正常工作
可编程控制器PLC系统故障分类和故障诊断
一、故障的分类
1.外部设备故障
外部设备就是与实际过程直接联系的各种开关、传感器、执行机构、负载等。这部分设备发生故障,直接影响系统的控制功能。
2.系统故障
这是影响系统运行的全局性故障。系统故障可分为固定性故障和偶然性故障。
故障发生后,可重新启动使系统恢复正常,则可认为是偶然性故障。
重新启动不能恢复而需要更换硬件或软件,系统才能恢复正常,则可认为是固定故障。
3.硬件故障
这类故障主要指系统中的模板(特别是I/O模板)损坏而造成的故障。这类故障一般比较明显,影响局部。
4.软件故障
软件本身所包含的错误,主要是软件设计考虑不周,在执行中一旦条件满足就会引发。在实际工程应用中,由于软件工作复杂、工作量大,因此软件错误几乎难以避免。
对于可编程控制器组成的控制系统而言,绝大部分故障属于上述四类故障。根据这一故障分类,可以帮助分析故障发生的部位和产生的原因。
二、可编程控制器的自诊断测试
可编程序控制器具有极强的自诊断测试功能,在系统发生故障时要充分利用这一功能。在进行自诊断测试时,都要使用诊断调试工具,也就是编程器。
利用系统功能进行诊断测试
利用可编程控制器本身所具有的各种功能,自行编制软件、采取一定措施、结合具体分析确定故障原因。
PIC单片机开发过程中的一些经验、技巧
摘要 PIC单片机国内日益流行,本文介绍Microchip PIC系列单片机开发过程中软、硬件设计一些经验、技巧。
由美国Microchip公司生产PIC系列单片机,其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了作者PIC单片机开发过程中一些经验、技巧,供同行参考。
1 怎样进一步降低功耗
功耗,电池供电仪器仪表中是一个重要考虑因素。PIC16C××系列单片机本身功耗较低(5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,保证满足工作要求前提下,可采用降低工作频率方法,工作频率下降可大大降低功耗(如PIC16C××3V,32kHz下工作,其电流可减小到15μA),但较低工作频率可能导致部分子程序(如数学计算)需占用较多时间。这种情况下,当单片机振荡方式采用RC电路形式时,可以采用中途提高工作频率办法来解决。
具体做法是闲置一个I/O脚(如RB1)和OSC1管脚之间跨接一电阻(R1),如图1所示。低速状态置RB1=0。需进行快速运算时先置RB1=1,充电时,电容电压上升快,工作频率增高,运算时间减少,运算结束又置RB1=0,进入低速、低功耗状态。工作频率变化量依R1阻值而定(注意R1不能选太小,振荡电路不起振,一般选取大于5kΩ)。
另外,进一步降低功耗可充分利用“sleep”指令。执行“sleep”指令,机器处于睡眠状态,功耗为几个微安。程序可待命状态使用“sleep”指令来等待事件,也可延时程序里使用(见例1、例2)。延时程序中使用“sleep”指令降低功耗是一个方面,同时,是关中断状态,Port B端口电平变化可唤醒“sleep”,提前结束延时程序。这一点一些应用场合特别有用。同时注意使用“sleep”时要处理好与WDT、中断关系。
例1(用Mplab-C编写) 例2(用Masm编写)
Delay() Delay
{ ;此行可加开关中断指令
/*此行可加开关中断指令*/ movlw.10
for (i=0; i<=10; i++) movwf Counter
SLEEP(); Loop1
} Sleep
decfsz Counter
goto Loop1
return
2 注意INTCON中RBIF位
INTCON中各中断允许位对中断状态位并无影响。当PORT B配置成输入方式时,RB<7:4>引脚输入每个读操作周期被抽样并与旧锁存值比较,一旦不同就产生一个高电平,置RBIF=1。开RB中断前,也许RBIF已置“1”,开RB中断时应先清RBIF位,以免受RBIF原值影响,同时中断处理完成后最好是清RBIF位。
3 用Mplab-C高级语言写PIC单片机程序时要注意问题
3.1 程序中嵌入汇编指令时注意书写格式 见例3。
例3
…… ……
while(1) {#asm while(1) {
…… #asm /*应另起一行*/
#endasm ……
}/*不能正确编译*/ #endasm
…… }/*编译*/
……
当内嵌汇编指令时,从“#asm”到“endasm”每条指令都必须各占一行,否则编译时会出错。
3.2 加法、乘法最安全表示方法 见例4。
例4
#include<16c71.h>
#include
unsigned int a, b;
unsigned long c;
void main()
{ a=200;
b=2;
c=a*b;
} /*不到正确结果c=400*/
原因是Mplab-C以8×8乘法方式来编译c=a*b,返回单字节结果给c,结果溢出被忽略。改上例中“c=a*b;”表达式为“c=a;c=c*b;”,最为安全(对加法处理同上)。
3.3 了解乘除法函数对寄存器占用
PIC片内RAM仅几十个字节,空间特别宝贵,而Mplab-C编译器对RAM址具有不释放性,即一个变量使用址不能再分配给其它变量。如RAM空间不能满足太多变量要求,一些变量只能由用户强制分配相同RAM空间交替使用。而Mplab-C中乘除法函数需借用RAM空间来存放中间结果,乘除法函数占用RAM与用户变量址重叠时,就会导致出现不可预测结果。C程序中用到乘除法运算,最好先程序机器码反汇编代码(包含生成LST文件中)查看乘除法占用址是否它变量址有冲突,以免程序跑飞。Mplab-C手册并没有给出其乘除法函数对具体RAM址占用情况。例5是乘法函数对0×13、0×14、0×19、0×1A址占用情况。
例5
部分反汇编代码
#include 01A7 081F MOVF 1F,W
#include 01A8 0093 MOVWF 13
;借用
unsigned long Value @0x1 01A9 0820 MOVF 20,W
char Xm @0x2d; 01AA 0094 MOVWF 14
;借用
void main() 01AB 082D MOVF 2D,W
{Value=20; 01AC 0099 MOVWF 19
;借用
Xm=40; 01AD 019A CLRF1A
;借用
Value=Value*Xm 01AE 235F CALL 035Fh
;调用乘法函数
…… 01AF 1283 BCF 03,5
} 01B0 009F MOVWF 1F
;返回结果低字节
01B1 0804 MOVF 04,W
01B2 00A0 MOVWF 20
;返回结果高字节
4 对芯片重复编程
对无硬件仿真器用户,总是选用带EPROM芯片来调试程序。每更改一次程序,都是将原来内容先擦除,再编程,其过程浪费了相当多时间,又缩短了芯片使用寿命。后一次编程结果较前一次,仅是对应机器码字节相同位由“1”变成“0”,就可前一次编程芯片上再次写入数据,而不必擦除原片内容。
程序调试过程中,经常遇到常数调整,如常数改变能保证对应位由“1”变“0”,都可原片内容基础继续编程。另外,指令“NOP”对应机器码为“00”,调试过程中指令删除,先用“NOP”指令替代,编译后也可原片内容上继续编程。
另外,对带EPROM芯片编程时,特别注意程序保密状态位。厂家对新一代带EPROM芯片保密状态位已由原来EPROM可擦型改熔丝型,一旦程序代码保密熔丝编程为“0”,可重复编程 EPROM 芯片就无法再次编程了。使用时应注意这点,以免造成不必要浪费(Microchip 资料并未对此做出说明)。