为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

新手学习PLC编程的入门建议

2017-09-02 13页 doc 58KB 38阅读

用户头像

is_196623

暂无简介

举报
新手学习PLC编程的入门建议新手学习PLC编程的入门建议 鄙人原本是化工专业毕业的,后因工作需要,加之个人兴趣,才转行搞仪表、机械。十年前,我刚开始使用PLC时,也是一头雾水。仗着自己对硬件、工程知识的熟悉,和对组态软件的粗浅了解,硬着头皮接下了任务。当时已经来不及接受培训,相关资料极其缺乏,仅有的参考资料是一本英文的S7-200手册,以及西门子网站上找到的一些全西文的示例,总算在三个月内完成了系统的构建、软件的编写工作。期间走弯路、出故障是家常便饭,经常搞得我茶饭不思,而且还由于操作不慎烧毁过一台PLC。所以我非常理解那些刚入门的网友两手抓 瞎的感觉...
新手学习PLC编程的入门建议
新手学习PLC编程的入门建议 鄙人原本是化工专业毕业的,后因工作需要,加之个人兴趣,才转行搞仪表、机械。十年前,我刚开始使用PLC时,也是一头雾水。仗着自己对硬件、工程知识的熟悉,和对组态软件的粗浅了解,硬着头皮接下了任务。当时已经来不及接受培训,相关资料极其缺乏,仅有的参考资料是一本英文的S7-200手册,以及西门子网站上找到的一些全西文的示例,总算在三个月内完成了系统的构建、软件的编写工作。期间走弯路、出故障是家常便饭,经常搞得我茶饭不思,而且还由于操作不慎烧毁过一台PLC。所以我非常理解那些刚入门的网友两手抓 瞎的感觉。 在此,我想粗略的总结一下自己的学习之路,供网友们参考。 1、编程需要坚强的毅力和足够的耐心 人各有所长。有些人把编程看作一项冗长而枯燥的工作;有些人把编程看作一项趣味的智力游戏。如果你是前者,强烈建议你远离这份工作。毕竟编程工作是对人的毅力和耐心的挑战。我所在实验室中,很多学生看到我编程序就会惊讶于我面对这一堆堆符号所表现出的专注。其实,这是兴趣使然。兴趣使我具备了足够的毅力和耐心。经过无数次失败后,当看到一个个符号按我的思路整齐的排列,PLC按我的要求有条不紊的运行时,兴趣得到了极大的满足,如同打通了一个游戏的关口。所以,我告诉这些学生:你们看到的是一堆枯燥怪异 的符号,我看到的却是一群热情奔放的舞者,而我则是她们的导演。 2、编程需要敢于实践的信心 我曾经教过一个学生学AutoCAD,我对她的唯一要求就是实践。我告诉她:你随便怎么操作,大不了一张图重画;最坏的结果是系统崩溃,没关系,系统重做,再来;只要电脑没 被砸了,怎么都行。两年后,我再看到她做的CAD图纸,也自叹不如。 同样道理,只有不断地在PLC上运行这些指令,观察运行的结果,才能弄清PLC指令的作用。很多初学者对PLC一脸的迷茫,往往是出于一种畏惧,担心损坏设备。而这些畏惧是没有任何道理的。仔细的阅读手册是非常重要的,但是仅靠读书是成不了一个工程师的。更何况手册上的内容并非面面俱到。我在接触到那些不熟悉的指令时,喜欢单独编一个小程序,让PLC运行。然后逐个修改条件,观察运行的结果(MicroWin为用户提供了非常好的监控手段),反过来再重新理解手册的描述,这样就可以非常直观的理解这些指令的作用和使用方法。不必担心自己写的程序会有什么问题,会影响PLC的正常工作。程序有没有问题,只有让PLC运行了才能发现。而发现问题并解决问题就是对自己能力的提高。撇开硬件操作不 谈,单就软件来说,我还真没有遇到过由于软件问题而损坏PLC的事。在这里不必担心继电 器电路接错线可能造成的后果。所以,大胆的实践是PLC编程的必由之路。 当然,大胆实践并不是野蛮操作,而是必须遵循必要的规范。还有一个要注意的,在程序未经可靠性证实之前,千万不要挂接负载,以免造成不必要的损失。数字量的输出有LED 显示;而模拟量处理可以采用一些硬件或软件模拟手段来解决。 3、编程需要有缜密的逻辑思维 编程本身就是一种逻辑思维过程。在高级语言中,使用最多的是ifthenelse、select这些条件判别语句,这就是逻辑中的因果关系。PLC程序就是由这些因果关系组成的:判别条件是否成立,进而决定执行相应的指令。最初的PLC是用来替代继电器逻辑电路的,所以继承了继电器电路以触点作为触发条件的描述方式。在PLC中,以虚拟触点代替了继电器的金属触点,而继电器电路所表达的逻辑关系还是被完整的保留下来。即使引入了继电器电路难以胜任的数值处理过程,PLC从根本上还是在执行一个个因果关系。所以,理顺对象的各个事件之间的逻辑关系,是编程之前必须精心做好的准备工作。我在接到一项任务后,第一件事就是整理出一份逻辑关系图,与用户反复商讨,取得用户的认可,然后才真正进入程序 的编写过程。 4、不可或缺的相关知识 PLC的程序是直接作用于对象的具体工艺过程,那么对对象具体工艺过程的理解是非常重要的的。我在与用户的交流过程中,会用我所掌握的UnitOperation的知识分析用户的工艺过程,协助用户整理过程控制中的各个逻辑关系,甚至包括各种仪表、硬件的配置。这得益于我原本所学的专业。当然,不能要求所有搞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提供了丰富的指令、模块,比单片机方便了很多。但是初学者编程时应尽量先使用简单的指令达到目的。尽管看上去有点土,却不失为一个入门的好途径,且对你理解那些较为复杂的指令会有帮助。具备了一定经验后,应该考虑掌握复杂指令的应用,以及程 序的优化。 10年工控的经验,新手请进 1。电工原理和电机原理一定要懂,简单的就记背也要背下来,比如马达容量1KW2A, 正反转,星三角接线,电线容量。电阻,电感,电容的特性等 2。液压和气动也要掌握,比如压力换算,压力和电流的比例换算,这在有压力控制上 都要用到 3。电线截面要会看,线拿到手就知道几平方的,还有什么电器上该用什么线,比如马 达就用4线的,3根主线1根接地。从变频器上出来的要用屏蔽线。 4。机修也要会做,特别是螺丝,一看就知道用几的内角扳手或外六角扳手(别小看了 它,平常维修固定螺丝是少不了它的,这样能节约时间) 5。PLC编程自己可以模拟编,简单的如红绿灯,控制小车走等 6。做人要会做,要谦虚,不可能你样样都会。 7。心态要好,保持一颗平常的心 8。平常要多干,就是在苦在累也要,这样技术才能学到手能解决实际问题,反之你只 不过是纸上谈兵 对于做项目的 1。四大常用PLC要会,基本指令和功能指令要熟 2。通讯接口要懂 3。电气市场行情要熟,好的和坏的要会区分,列如买到个2手40点的PLC怎么判断它 是好的呢, 4。变频器和单片机要懂,变频调速和伺服控制要懂 5。常用电器元件和传感器要知道 6。要会CCAD电气制图 7。会办公自动化 PLC初学者必学的内容 这是我经过对OMRON CP1H 以下机型和西门子S7-200使用后对寄存器的一点认识, 是PLC初学者必需要掌握的,不对之处请大家指正。 输入输出继电器与实际输入输出点对应的内存区,OMRON PLC 称之为通道,西门子称为过程映象区。PLC 的这部分内存区决定了 I/O 点数,要使用这些点就必须了解 PLC 的 编址方式。 OMRON PLC 是按通道(字)、位编址的,下图中黑点部位是1通道(1CH)第11位,也就是对应外部实际地址的 I1.11 。不过要注意是在编程时“I”(输出点“Q”)标识符是不能输的,它是自动生成,标识符也可以在工具选项里改为“X、Y”来显示。这里所谓的点也就 是从字里抽取的一个二进制数位,仅0(关)、1(开)二个值。 西门子PLC 是按字节、位来编址的,下图中黑点是字节3中的第4位,也就 I3.4(输 出点标识符为“Q”。 寄存器字(word)可存储16位二进制数值,字节(Byte)8位二进制数,位(bit)就是一位二进制 数。 西门子的数据寄存器是由V来表示,它分字节(B)、字(W)、双字(D),编程的时候一定注意的是如果使用了VW100 那么其它地方就不能用VB101了,因为VB101已被VW100低位地址使用了,如用了VD100那VB100到VB103就不能用在其它地方了。 还有要注意的是西门子(S7-200)中间位(M)很少只有224个,不够用的时候可以用字节来抽取位如V0.0-V0.07(这时VB0就不能在其它地方用了)当中间位使用。 [ 本帖最后由 zikongshequ 于 2008-1-30 11:05 编辑 ] 附件 4.jpg (68.52 KB) 2008-1-30 11:05 学习PLC之路详解(已补全各种图例) 从入门到精通:学PLC之路详解(附各种图例) PLC好学吗,有的人说好学,更多的人说难学。我的看法是入门易,深造难。入门易,总有它易的方法。很多人都买了有关PLC的书,如果从头看起的话,我想八成学不成了。因 为抽象与空洞占据了整个脑子,一句话晕~ 学这东东要有可编程控制器和简易编程器才好,若无,一句话,学不会。因为无法验证 对与错。如何学,我的做法是直奔主题。做法如下: 1、认识梯形图和继电器控制原理图符号的区别: 继电器控制原理图中的元件符号,有常开触点、常闭触点和线圈,为了区别它们,在有关符号边上标注如KM、KA、KT等以示不同的器件,但其触头的数量是受到限制。而PLC梯形图中,也有常开、常闭触点,在其边上同样可标注X、Y、M、S、T、C以示不同的软器件。它最大的优点是:同一标记的触点在不同的梯级中,可以反复的出现。而继电器则无法达到这一目的。而线圈的使用是相同的,即不同 的线圈只能出现一次。 2、编程元件的分类:编程元件分为八大类,X为输入继电器、Y为输出继电器、M为辅助继电器、S为状态继电器、T为定时器、C为计数器、D为数据寄存器和指针(P、I、N)。关 于各类元件的功用,各种版本的PLC书籍均有介绍,故在此不介绍,但一定要清楚各类元件 的功能。 编程元件的指令由二部分组成:如 LD(功能含意)X000(元件地址),即 LD X000, LDI Y000......。 3、熟识PLC基本指令: (1)LD(取)、LDI取反)、OUT(输出)指令;LD(取)、LDI(取反)以电工的说法前者是常开、后者为常闭。这二条指令最常用于每条电路的第一个触点(即左母线第一个触点), 当然它也可能在电路块与其它并联中的第一个触点中出现。 这是一张梯形图(不会运行)。左边的纵线称为左母线,右母线可以不表示。该图有三个梯级;第1梯级;左边第一个触点为常开,上标为X000,X表示为输入继电器,其后的000数据,可以这样认为它使用的是输入继电器中的编号为第000的触点(下同)。其指令的正确表示应为(如右图程序所示):0、LD X000 (前头的0 即为从第0步开始,指令输入时无须理会,它会自动按顺序显示出)。 第2梯级;左边的第一个触点为常闭触点,上标为T0,T表示定时器(有时间长短不同,应注意),0则表示定时器中的编号为0的触点。其指令的正确表示应为:2、LDI T0(如程序所示)。 第3梯级;左边第一个触点为常闭,上标为M0, M为辅助继电器(该继电器有多种,注意类别),其指令的正确表示应为:4、LDI M0(如程序所示)。本梯级的第2行第一个触点为常开,上标为Y000,Y表示输出继电器,由于该触点与后面Y001触点呈串联关系,形成了所谓的电路"块",故而其触点的指令应为 5、LD Y000。总之LD与LDI指令从上面可以看出,它们均是左母线每一梯级第一触点所使用的指令。而梯级中的支路(即第3梯级的第2行)有二个或二个以上触点呈串联关系,其第一触点同样按LD或LDI指令。可使用LD、LDI指令的元件有:输入继电器X、输出继电器Y、辅助继电器M、定时器T、计数器C、状态继电器S。OUT为线圈驱动指令,该指令不能出现在左母线第一位。驱动线圈与驱动线圈不能串联,但可并联。同一驱动线圈只能出现一次,并安排在每一梯级的最后一位。如上图中的1、OUT Y000,3、OUT Y001,Y为输出继电器,其线圈一旦接获输出信号,可以这样认为,线圈将驱动其相应的触点而接通外部负载(外部负载多为接触器、中间继电器等)。而上图8、OUT T0 K40 为定时器驱动线圈指令,其中的K为常数40为设定值(类似电工对时间继电器的整定)。可使用OUT指令元件有:输出继电器Y、辅助继电器M、定时器T、计数器C、状态继电器S。 (2)触点的串联指令AND(与)ANI(与非);前者为常开,后者为常闭。二者均用于单个 触点的串联。二指令可重复出现,不受限制,。如下图所示。 由第1梯级来看;X000、T0、Y001三触点成串联关系,即T0的常闭串接于X000的后端,而Y001的常闭则串接于T0常闭的后端。由于都是常闭故用ANI指令。现来看第2梯级;X000、M0、Y001,同样三触点也是串联关系,M0的常闭接点串接于X001的后端,而Y000的常开接点则串接于M0的后端。故M0的指令用ANI,而Y000的指令则用AND(具体编程详上图),一句话只要是串联后面是常开的用AND,是常闭的则用ANI。可使用AND、ANI指令元件有:输入继电器X、输出继电器Y、辅助继电器M、定时器T、计数器C、状态继电器S。 (3)触点并联指令OR(或)、ORI(或反);触点并联时,不管梯级中有几条支路,只要 是单个触点与上一支路并联,是常开的用OR,是常闭的则用ORI。如下图所示。 可以看出上图的X000、X001、M0三者处 解PLC的误区及看法 对刚走出校园从事工作时间不长的技术人员热衷于PLC解密,想学习别人程序的编程方法尚可理解,而对一些从事自动化工作多年的人还是痴迷于PLC解密,以偷去别人的程序作 为自己技术水平资本的就感到非常的困惑。 我在自动化方面工作多年,已设计了大大小小的工程,编制了不少PLC程序,可至今没 有看懂一个别人的程序。不是本人的智能低下,只是思路不同,实在太累,看不透。 我曾经设计一个的项目,采用西门子S7-200PLC,编写了一个程序,一名维护的技术人员不是很好的了解设备工艺,而是痴迷于了解我的程序,我告诉他,你应该好好的了解设备的状况和工艺,熟悉电气图纸,发现设备的运行状况中哪些方面还没有满足工艺的要求(也就是程序的不足),自己编写一个,无从下手时看看资料或者问问我,我保证他三、四个月彻底了解PLC,贵在实践。到那时,废掉我的程序。而他却热衷于了解我的程序的每一步, 问来问去已达四年多,至今未能掌握,面对设备、面对PLC仍然茫然无从下手,四年意味着一个大学毕业,意味着一个研究生,甚至一个博士。而他连一个小小的PLC都没毕业。如果仅从了解别人的程序而热衷于PLC解密,这个实例,已经告诉你,你已走进误区,成为一些 商家和一些网站的靶子。 何谓PLC程序,不过是你设计工程项目的工艺而已,有工艺要求才可能有程序,程序只是设备工艺的具体反应,了解了工艺要求也就等于了解了程序。编程不过是个,要你用这个规则把设备工艺写出来,因此你重要是了解设备的工艺和具体使用PLC品牌的功能。当你充分了解了设备工艺,设计完电气图纸,你的设计任务可以说基本完成了,剩下的就是看 看PLC编程规则,把程序写出来,把工艺写出来。 记住~贵在实践~在我学习PLC时,对梯形图、语句非常了解,也在书上看过很多程序,可我当第一次面对设计时,却不知道如何下手,当把我的程序(问题很多)输进去并执行时,也就短短的一两天,我的感觉是PLC不过如此,海阔天空的感觉,没有不会的,只有不做的。 我的一个朋友告诉我,他在工厂里,一些设备被一些早进厂的人把持着,PLC加了密,也不让看程序(程序也不是他们编的),以此压着他们,想让他们水平超不过他们,我告诉他,他们不过是个永远长不大的丑陋小人(现在国有企业比比皆是),莫做他们的继承者,也不要学他们的德性,这种人是最脆弱、是最没水平的,好好了解一下工艺,了解一下设备 的运行状况。自己编一编,不懂问问学学,这才是他们最怕的。 从设备维护的角度,PLC是该加密的。但是我们不能为了解一个程序,而去解密。条条 大路通工控,你自己的路可能是最捷径的。 如何成为编程高手的八大奥秘 世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。 1、扎实的基础 数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你 再精通OOP,遇到一些基本算法的时候可能也会束手无策。因此多读一些计算机基础理论方面的书籍是非常有必要的。 2、丰富的想像力 不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想像力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。开阔的思维对程序员来说很重要。 3、最简单的是最好的 这也许是所有科学都遵循的一条准则,复杂的质能转换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc2。简单的方法更容易被人理解,更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要求时再考虑复杂的方案。 4、不钻牛角尖 当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,当负责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。 5、对答案的渴求 人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。 6、多与别人交流 三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。 7、良好的编程风格 注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。 大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必再加注释了,如果注释和代码不一 高手”和一般致,那就更加糟糕。 8、韧性和毅力 这也许是“程序员最大的区别。高手们并不是天才,他们是在无数个日日夜夜中磨炼出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。
/
本文档为【新手学习PLC编程的入门建议】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索