新手学习PLC编程的入门建议 鄙人原本是化工专业毕业的,后因工作需要,加之个人兴趣,才转行搞仪表、机械。十年前,我刚开始使用PLC时,也是一头雾水。仗着自己对硬件、工程知识的熟悉,和对组态软件的粗浅了解,硬着头皮接下了任务。当时已经来不及接受培训,相关资料极其缺乏,仅有的参考资料是一本英文的S7-200手册,以及西门子网站上找到的一些全西文的示例,总算在三个月内完成了系统的构建、软件的编写工作。期间走弯路、出故障是家常便饭,经常搞得我茶饭不思,而且还由于操作不慎烧毁过一台PLC。所以我非常理解那些刚入门的网友两手抓瞎的感觉。在此,我想粗略的总结一下自己的学习之路,供网友们参考。1、编程需要坚强的毅力和足够的耐心人各有所长。有些人把编程看作一项冗长而枯燥的工作;有些人把编程看作一项趣味的智力游戏。如果你是前者,强烈建议你远离这份工作。毕竟编程工作是对人的毅力和耐心的挑战。我所在实验室中,很多学生看到我编程序就会惊讶于我面对这一堆堆符号所表现出的专注。其实,这是兴趣使然。兴趣使我具备了足够的毅力和耐心。经过无数次失败后,当看到一个个符号按我的思路整齐的排列,PLC按我的要求有条不紊的运行时,兴趣得到了极大的满足,如同打通了一个游戏的关口。所以,我告诉这些学生:你们看到的是一堆枯燥怪异的符号,我看到的却是一群热情奔放的舞者,而我则是她们的导演。2、编程需要敢于实践的信心我曾经教过一个学生学AutoCAD,我对她的唯一要求就是实践。我告诉她:你随便怎么操作,大不了一张图重画;最坏的结果是系统崩溃,没关系,系统重做,再来;只要电脑没被砸了,怎么都行。两年后,我再看到她做的CAD图纸,也自叹不如。同样道理,只有不断地在PLC上运行这些指令,观察运行的结果,才能弄清PLC指令的作用。很多初学者对PLC一脸的迷茫,往往是出于一种畏惧,担心损坏设备。而这些畏惧是没有任何道理的。仔细的阅读手册是非常重要的,但是仅靠读书是成不了一个工程师的。更何况手册上的内容并非面面俱到。我在接触到那些不熟悉的指令时,喜欢单独编一个小程序,让PLC运行。然后逐个修改条件,观察运行的结果(MicroWin为用户提供了非常好的监控手段),反过来再重新理解手册的描述,这样就可以非常直观的理解这些指令的作用和使用方法。不必担心自己写的程序会有什么问题,会影响PLC的正常工作。程序有没有问题,只有让PLC运行了才能发现。而发现问题并解决问题就是对自己能力的提高。撇开硬件操作不谈,单就软件来说,我还真没有遇到过由于软件问题而损坏PLC的事。在这里不必担心继电器电路接错线可能造成的后果。所以,大胆的实践是PLC编程的必由之路。当然,大胆实践并不是野蛮操作,而是必须遵循必要的规范。还有一个要注意的,在程序未经可靠性证实之前,千万不要挂接负载,以免造成不必要的损失。数字量的输出有LED显示;而模拟量处理可以采用一些硬件或软件模拟手段来解决。3、编程需要有缜密的逻辑思维编程本身就是一种逻辑思维过程。在高级语言中,使用最多的是if then else、select这些条件判别语句,这就是逻辑中的因果关系。PLC程序就是由这些因果关系组成的:判别条件是否成立,进而决定执行相应的指令。最初的PLC是用来替代继电器逻辑电路的,所以继承了继电器电路以触点作为触发条件的描述方式。在PLC中,以虚拟触点代替了继电器的金属触点,而继电器电路所表达的逻辑关系还是被完整的保留下来。即使引入了继电器电路难以胜任的数值处理过程,PLC从根本上还是在执行一个个因果关系。所以,理顺对象的各个事件之间的逻辑关系,是编程之前必须精心做好的准备工作。我在接到一项任务后,第一件事就是整理出一份逻辑关系图,与用户反复商讨,取得用户的认可,然后才真正进入程序的编写过程。4、不可或缺的相关知识PLC的程序是直接作用于对象的具体工艺过程,那么对对象具体工艺过程的理解是非常重要的的。我在与用户的交流过程中,会用我所掌握的Unit Operation的知识分析用户的工艺过程,协助用户整理过程控制中的各个逻辑关系,甚至包括各种仪表、硬件的配置。这得益于我原本所学的专业。当然,不能要求所有搞PLC程序的工程师都有我这样的经历。但是有两门知识却是不可或缺的:一是过程仪表的硬件知识,包括传感器、变送器(二次仪表)和PLC本身,这是构建控制系统的基础;二是过程控制理论,包括各种控制模型的原理和应用,其中最重要的是二位调节和PID调节模型。PID调节是目前用得最广泛的过程控制手段,且变化多端。学习PID最好的方法就是读书。几乎所有讲解过程控制的书籍都有关于PID的内容,多读基本相关的书籍对理解PID是很有益处的。我发现不少网友在进入PLC领域时,缺乏这些相关知识。这并不可怕;可怕的是当事者不能静下心来弥补知识的缺陷。我们不要怪罪学校没有教授这些内容,而是要注重自己如何去学习这些知识。工作中遇到的许多问题是学校里没讲过的,这不能成为我们拒绝工作的理由,而应该以积极的态度去应对这些问题。我的体会是,为了解决工作中的问题而学习的知识,比课堂上学的东西更容易记住。5、养成良好的编程习惯每个人编程都会有不同的习惯和特点,不能强求一致。但是一些好的习惯还是应该为大多数人所遵循。一是理顺逻辑关系、时序关系,编制程序框图;二是合理分配主程序、子程序和中断程序;三是合理分配寄存器,编制寄存器符号表。PLC编程更接近于单片机,或者说PLC就是模块化的单片机。因此PLC的很多操作都是直接针对寄存器的,如果在程序中出现不合理的寄存器地址重叠,一定会出现不可预想的后果。编制寄存器符号表不仅可以避免上述问题(MicroWin会有问题提示),而且可以使程序具备更好的可读性。这和VB中定义变量有异曲同工之处。VB编程中关注的是事件,不强调主程序和子程序的观念,因为VB主程序的工作是由PC的操作系统完成的。PLC则不然。PLC程序是以主程序为主干的,CPU不断的循环执行主程序,只有触发条件成立时才会调用子程序或中断程序。即子程序和中断程序所执行的任务不是全时需要的。如果把这些任务都放在主程序中会无端增加主程序的工作量,降低程序的效率。这点和单片机的编程思路是一致的。子程序的使用可以使整个程序的逻辑更清晰。而且子程序可以分开编写、调试,最后“安装”到主程序上。这样你可以一个一个解决问题。PLC编程,无论是LAD,抑或STL,都不如VB那么直观、有趣,更不如CAD那么形象。但比单片机的汇编语言的可视性强多了。对于初学者,LAD(梯形图)的编程相对直观,更容易上手。最后,PLC提供了丰富的指令、模块,比单片机方便了很多。但是初学者编程时应尽量先使用简单的指令达到目的。尽管看上去有点土,却不失为一个入门的好途径,且对你理解那些较为复杂的指令会有帮助。具备了一定经验后,应该考虑掌握复杂指令的应用,以及程序的优化。 变频器工作原理2008-06-07 23:01变频器主要由整流(交流变直流)、滤波、再次整流(直流变交流)、制动单元、驱动单元、检测单元微处理单元等组成的。 1. 电机的旋转速度为什么能够自由地改变? *1: r/min 电机旋转速度单位:每分钟旋转次数,也可表示为rpm. 例如:2极电机 50Hz 3000 [r/min] 4极电机 50Hz 1500 [r/min] 结论:电机的旋转速度同频率成比例 本文中所指的电机为感应式交流电机,在工业中所使用的大部分电机均为此类型电机。感应式交流电机(以后简称为电机)的旋转速度近似地确决于电机的极数和频率。由电机的工作原理决定电机的极数是固定不变的。由于该极数值不是一个连续的数值(为2的倍数,例如极数为2,4,6),所以一般不适和通过改变该值来调整电机的速度。 另外,频率能够在电机的外面调节后再供给电机,这样电机的旋转速度就可以被自由的控制。 因此,以控制频率为目的的变频器,是做为电机调速设备的优选设备。 n = 60f/p n: 同步速度 f: 电源频率 p: 电机极对数 结论:改变频率和电压是最优的电机控制方法 如果仅改变频率而不改变电压,频率降低时会使电机出于过电压(过励磁),导致电机可能被烧坏。因此变频器在改变频率的同时必须要同时改变电压。输出频率在额定频率以上时,电压却不可以继续增加,最高只能是等于电机的额定电压。 例如:为了使电机的旋转速度减半,把变频器的输出频率从50Hz改变到25Hz,这时变频器的输出电压就需要从400V改变到约200V2. 当电机的旋转速度(频率)改变时,其输出转矩会怎样? *1: 工频电源 由电网提供的动力电源(商用电源) *2: 起动电流 当电机开始运转时,变频器的输出电流 变频器驱动时的起动转矩和最大转矩要小于直接用工频电源驱动 电机在工频电源供电时起动和加速冲击很大,而当使用变频器供电时,这些冲击就要弱一些。工频直接起动会产生一个大的起动起动电流。而当使用变频器时,变频器的输出电压和频率是逐渐加到电机上的,所以电机起动电流和冲击要小些。 通常,电机产生的转矩要随频率的减小(速度降低)而减小。减小的实际数据在有的变频器手册中会给出说明。 通过使用磁通矢量控制的变频器,将改善电机低速时转矩的不足,甚至在低速区电机也可输出足够的转矩。3. 当变频器调速到大于50Hz频率时,电机的输出转矩将降低 通常的电机是按50Hz电压设计制造的,其额定转矩也是在这个电压范围内给出的。因此在额定频率之下的调速称为恒转矩调速. (T=Te, P<=Pe) 变频器输出频率大于50Hz频率时,电机产生的转矩要以和频率成反比的线性关系下降。 当电机以大于50Hz频率速度运行时,电机负载的大小必须要给予考虑,以防止电机输出转矩的不足。 举例,电机在100Hz时产生的转矩大约要降低到50Hz时产生转矩的1/2。 因此在额定频率之上的调速称为恒功率调速. (P=Ue*Ie) 4. 变频器50Hz以上的应用情况 大家知道, 对一个特定的电机来说, 其额定电压和额定电流是不变的。 如变频器和电机额定值都是: 15kW/380V/30A, 电机可以工作在50Hz以上。 当转速为50Hz时, 变频器的输出电压为380V, 电流为30A. 这时如果增大输出频率到60Hz, 变频器的最大输出电压电流还只能为380V/30A. 很显然输出功率不变. 所以我们称之为恒功率调速. 这时的转矩情况怎样呢? 因为P=wT (w:角速度, T:转矩). 因为P不变, w增加了, 所以转矩会相应减小。 我们还可以再换一个角度来看: 电机的定子电压 U = E + I*R (I为电流, R为电子电阻, E为感应电势) 可以看出, U,I不变时, E也不变. 而E = k*f*X, (k:常数, f: 频率, X:磁通), 所以当f由50-->60Hz时, X会相应减小 对于电机来说, T=K*I*X, (K:常数, I:电流, X:磁通), 因此转矩T会跟着磁通X减小而减小. 同时, 小于50Hz时, 由于I*R很小, 所以U/f=E/f不变时, 磁通(X)为常. 转矩T和电流成正比. 这也就是为什么通常用变频器的过流能力来描述其过载(转矩)能力. 并称为恒转矩调速(额定电流不变-->最大转矩不变) 结论: 当变频器输出频率从50Hz以上增加时, 电机的输出转矩会减小.5. 其他和输出转矩有关的因素 发热和散热能力决定变频器的输出电流能力,从而影响变频器的输出转矩能力。 载波频率: 一般变频器所标的额定电流都是以最高载波频率, 最高环境温度下能保证持续输出的数值. 降低载波频率, 电机的电流不会受到影响。但元器件的发热会减小。 环境温度:就象不会因为检测到周围温度比较低时就增大变频器保护电流值. 海拔高度: 海拔高度增加, 对散热和绝缘性能都有影响.一般1000m以下可以不考虑. 以上每1000米降容5%就可以了.6. 矢量控制是怎样改善电机的输出转矩能力的? *1: 转矩提升 此功能增加变频器的输出电压(主要是低频时),以补偿定子电阻上电压降引起的输出转矩损失,从而改善电机的输出转矩。 $ 改善电机低速输出转矩不足的技术 使用"矢量控制",可以使电机在低速,如(无速度传感器时)1Hz(对4极电机,其转速大约为30r/min)时的输出转矩可以达到电机在50Hz供电输出的转矩(最大约为额定转矩的150%)。 对于常规的V/F控制,电机的电压降随着电机速度的降低而相对增加,这就导致由于励磁不足,而使电机不能获得足够的旋转力。为了补偿这个不足,变频器中需要通过提高电压,来补偿电机速度降低而引起的电压降。变频器的这个功能叫做"转矩提升"(*1)。 转矩提升功能是提高变频器的输出电压。然而即使提高很多输出电压,电机转矩并不能和其电流相对应的提高。 因为电机电流包含电机产生的转矩分量和其它分量(如励磁分量)。 "矢量控制"把电机的电流值进行分配,从而确定产生转矩的电机电流分量和其它电流分量(如励磁分量)的数值。 "矢量控制"可以通过对电机端的电压降的响应,进行优化补偿,在不增加电流的情况下,允许电机产出大的转矩。此功能对改善电机低速时温升也有效。变频器基础讲座(一)2008-06-07 22:55录入人: 发布日期:2008-6-5 来自:变频器网 浏览99次1、什么是变频器? 变频器是把工频电源(50Hz或60Hz)变换成各种频率的交流电源,以实现电机的变速运行的设备,其中控制电路完成对主电路的控制,整流电路将交流电变换成直流电,直流中间电路对整流电路的输出进行平滑滤波,逆变电路将直流电再逆变成交流电。对于如矢量控制变频器这种需要大量运算的变频器来说,有时还需要一个进行转矩计算的CPU以及一些相应的电路。变频调速是通过改变电机定子绕组供电的频率来达到调速的目的。 变频技术是应交流电机无级调速的需要而诞生的。20世纪60年代以后,电力电子器件经历了SCR(晶闸管)、GTO(门极可关断晶闸管)、BJT(双极型功率晶体管)、MOSFET(金属氧化物场效应管)、SIT(静电感应晶体管)、SITH(静电感应晶闸管)、MGT(MOS控制晶体管)、MCT(MOS控制晶闸管)、IGBT(绝缘栅双极型晶体管)、HVIGBT(耐高压绝缘栅双极型晶闸管)的发展过程,器件的更新促进了电力电子变换技术的不断发展。20世纪70年代开始,脉宽调制变压变频(PWM-VVVF)调速研究引起了人们的高度重视。20世纪80年代,作为变频技术核心的PWM模式优化问题吸引着人们的浓厚兴趣,并得出诸多优化模式,其中以鞍形波PWM模式效果最佳。20世纪80年代后半期开始,美、日、德、英等发达国家的VVVF变频器已投入市场并获得了广泛应用。 2、变频器的分类 变频器的分类方法有多种,按照主电路工作方式分类,可以分为电压型变频器和电流型变频器;按照开关方式分类,可以分为PAM控制变频器、PWM控制变频器和高载频PWM控制变频器;按照工作原理分类,可以分为V/f控制变频器、转差频率控制变频器和矢量控制变频器等;按照用途分类,可以分为通用变频器、高性能专用变频器、高频变频器、单相变频器和三相变频器等。 VVVF:改变电压、改变频率(Variable Voltage and Variable Frequency)的缩写。 CVCF:恒电压、恒频率(Constant Voltage and Constant Frequency)的缩写。 各国使用的交流供电电源,无论是用于家庭还是用于工厂,其电压和频率均为400V/50Hz或200V/60Hz(50Hz),等等。 通常,把电压和频率固定不变的交流电变换为电压或频率可变的交流电的装置称作“变频器”。为了产生可变的电压和频率,该设备首先要把电源的交流电变换为直流电(DC)。 把直流电(DC)变换为交流电(AC)的装置,其科学术语为“inverter”(逆变器)。由于变频器设备中产生变化的电压或频率的主要装置叫“inverter”,故该产品本身就被命名为“inverter”,即:变频器 变频器也可用于家电等领域。 用于电机控制的变频器,既可以改变电压,又可以改变频率。 3、 部分常用术语中英文对照 变频器:inverter (日本常用),AC Drive (欧美常用),Frequency Converter (欧州常用) 变流器 converters 整流 rectifying-rectification 整流器 rectifier 逆变 inverting-inversion 逆变器 inverter 转矩脉动 torque pulsation 脉宽调制 (PWM) pulse width modulation 谐波 harmonic 矢量控制(VC) vector control 直接转矩控制(DTC) direct torque control 四象限运行 Four quadrant operation 再生(制动) Regeneration 直流制动 d.c braking 漏电流 leak current 滤波器 filter 电抗器 reactor 电位器 potentiometer 编码器encoder, PLG (pulse generator) 定子 stator 转子 rotor 4、变频器和软启动器 变频器:变频变压。主要作用是调速,节能和软起动。 软启动器:仅改变电压。主要作用是降低起动电流和冲击。 PLC编程经验2008-05-27 17:25 PLC编程经验弄通有关PLC程序设计理论是重要的。没有这方面的理论准备或指导,仅靠在实践中摸索,简单的问题还好办。复杂的就不好办了。不仅无从下手,而且花了很多时间与精力,也难编出效率较高、质量也较高的程序,常常是事倍功半。但是,编程的具体实践,以及在这个实践中得来的知识或技能,即经验,也是重要的。没有经验,仅有理论,既无法深刻理解理论,又无法灵活应用理论。这正如学数学,如仅了解一些定理或记住一些公式,没有作相应的练习,肯定是学不好的。更不用说,任何理论也都只是经验的总结,归根到底也都有是来自实践。1、 经验积累经验有别人的,也有自己的,都很重要。前者要靠细心学习,后者要靠用心积累,都要在一定的时间与必要的精力。别人的经验有上了书的或登载在杂志上的。有的是细心学习别人的,但多数是我自己的经验。所有的例子都经我测试过,都经实践证明是可行的。我想,别的书本或杂志上介绍的也会是这样的。所以学习这样杨功的经验是必要的。还有就是你同事的经验,也是值得学习。这种经验离你很“近”,很易借鉴。自己的经验则是最重要的。要在自己的实践中,积累自己的经验。同时,最好在学别人的经验时,也能亲自作些测试,能使自己也有类似的经历,进而把这些经验变成自己的。这也是自己经验的重要积累。还有一些失败的经验,这往往是不会公开的,但这些经验也要学习,也要积累。经验的积累要用自己的脑记,更要用电脑记。最好作些分类,建立一个自用的程序库,以便于随时引用。2、 经验升华经验还有待升华。升华有三个层次:最低的层次就是建立一个典型的程序库,供今后再用。若程序复杂,还可建一些功能块,或子程序,以便以后引用。其次,要总结出有效算法。如单按钮起停程序库等。最高层次的升华是把经验上升到理论的高度,为丰富PLC程序设计理论作贡献。我想,随着PLC使用的普及与提高,是会有越来越多从经验中升华出来的,而又能用以指导实践的PLC编程理论的。3、 经验应用经验积累、经验升华都是为了应用。经验应用有三方面:1) 用作工程设计模板。设计新系统时,选用一个或几个与现设计工程类似的,已取得成功的工程,作样板进行设计。这既可减轻设计的工作量,又增加设计的成功率。这也是信息可重用的一大好处。2) 用作程序设计参考。在无成功的工程可作样板时,在新设计的逻辑中,仍有相当一部分控制逻辑,可采用或借用已有典型逻辑,这也可减少设计的工作量,增加设计的成功率。3) 用作算法设计参考。在既无样板可参照,又无典型可采用时,还可运用过去的一些成功的算法。经验是宝贵的,但是经验特别是个人经验,总是有限的。所以,经验的应用也还要与编程理论相结合。PLC编程时应注意的问题可编程序控制器(PLC或PC)的应用中,我们常会碰到对继电器控制系统的改造问题,这时我们往往要参考原有的继电器控制电路来编制PC的应用程序。因此,在编程时,我们应注意PC控制系统与继电器控制系统工作方式上的一些不同。 下面我们看一个例子:一个继电器控制回路如图1 所示。 因继电器控制系统是以“并行”方式工作的,而且其触点的通断需要一定的动作时间。所以当该电路起动后,时间继电器KT延时时间到时,KT是否能继续保持通电状态,需要同时考虑“并行”的两个动作过程:KT的常闭延时触点断开,KA1失电,KA1常开触点断开;KT的常开延时触点闭合,KA2得电,KA2常开触点闭合。这两个过程作用的结果,来决定KT的状态。同时,触点动作时间的存在,使得电路出现时序竞争。因此该电路不能可靠工作。如果加入虚框中的回路,并如图1把KA2的常开触点换成KA3的常开触点(见图1中括号)。结果是KT动作后,KT自身失电,就不会继续保持通电状态。 同样是这个电路,我们用PC来实现,梯形图如图2 所示。 PC是以“串行”方式工作的,也就是以扫描的方式,循环地、连续地、顺序地,逐条执行程度的方式工作。同时,PC中,软触点的动作可认为是瞬时完成的,且其能把本次动作的结果记忆保持到下一次扫描运算时为止。即具有记忆保持功能。按这样一个顺序“串行”的工作方式,梯形图动作顺序如下:当在某一扫描周期中TIM00延时到后,则: 1. TIM00常闭触点断开(OFF),0000 OFF;2. TIM00常开触点闭合(ON),0001 ON;3. 0000常开触点OFF,0001常开触点ON,TIM00继续保持通电状态。而且不论我们在0001与TIM00之间再加多少级前面继电器电路所加的虚框中的回路,并把0001常开触点换成所加回路最后一级继电器的常开触点,TIM00仍能继续保持通电状态。 同样的电路,由于继电器控制系统和PC控制系统工作方式上的差异,两者会有不同的动作结果。注意到这一点,我们在编程时,就会避免一些不应有的错误。