分享

如何学习PLC—PLC从基础到专家的进阶过程

 zhangshoupen 2018-06-09

电工学习网:www.diangon.com

关注电工学习网官方微信公众号“电工电气学习”,收获更多经验知识。

如何系统的从零开始学习PLC,我以自身的经历来说明下,对于刚毕业的同学来说,基础或者是理论都是有的,缺乏的就是实践,刚开始工作公司肯定没有大项目、新项目给你做,一般是拿以前的旧机器进行改造练手,一定要抓住这个机会,这个阶段没有什么压力,这里你可以随意拆下每个电气元件单独进行学习如何控制。本人也是从这个阶段走过来的,说实话这个时期很苦或者无奈,没有人会帮你所有的有关的资料都给自己去查网上找说明书、操作手册等等,这里学到的就是自己的。
PLC是自动化设备开发的核心,是工控中常用控制器,如何系统学习,按照从简单到难的阶段学习,可分为开关量学习、模拟量学习、通讯控制同时需要掌握上位机(人机界面)的设计。

学PLC,最好是要有一定的二次电路基础,否则就无从谈起,然后需要从实践中来,边做边学,第三就是要有程序设计的理念和思路,这是大的学习思路,从实际操作上讲,可以分下面这么几步。
1.作为预备性的课程,需要具备二次(控制)电路原理知识,包括继电器控制电路的基本原理,常见的控制回路识图、画图的能力,最好有实际接线和调试的经验。这方面不是单纯可以靠看书掌握的,但是最好能找一本比如低压电器控制回路之类的书籍边看边实践。打好基础,掌握继电器、计数器、定时器这些基本概念。因为PLC从最初的设计理念上就是要替代和简化继电器线路的。
2.作为实物投资,个人建议买一个入门的PLC用来练手,这个成本我个人认为是值得付出的,有了实物在理解和练习上都要直观很多。从性价比和上手的难易程度看,西门子的小型PLC在工业市场始终占据着不可替代的地位。在当前的实际下,S7-200 smart或者S7-1200上手最好,这两者之中更推荐S7-1200,一方面因为和更高级的S7-1500都采用同样的TIA平台,另一方面TIA平台也是西门子软件大平台的发展方向(不过安装TIA要有心理准备,它可以让任意配置的电脑慢的惨不忍睹)。S7-200虽然应用广泛,但毕竟是落在时代背后一大截了。


3.基础篇,流行的教材中以廖常初的最为流行和通顺,正好他也是主要教西门子系列的(不确定是不是有1200系列的教材,我猜应该是有的。至少他的200和300系列的书都不错)。要了解PLC的基本结构,但是不要在这方面太过执着,适可而止的了解,或者说是基本了解、一知半解即可。在以后的应用中有足够时间可以深入了解;深入了解LAD梯形图的画法,对基本概念比如线圈、节点、计数器、定时器、移位、比较、计算、上升沿下降沿等等,务必要熟练掌握;对于其他类型的编程语言,如果有可能,最好能学习了解一下,比如STL或者FBD,这些并不是华而不实的炫技,而是一方面能加深对PLC的理解,第二能方便快速实现某些功能,第三能够很好的与高级文本语言相辅相成互相促进。4.学习方法上,如果能找到一个肯用实际项目带你的师傅是最好的,因为市面上关于PLC的教材基本上都是只教基本使用,完全没有涉及实际项目案例的。如果有机会(这个可能性很小)阅读一些优秀的程序,对自己编程习惯的提高和编程理念的提升都是很有帮助的。如果没有,那么就需要尽可能从教材中有限的案例比如跑马灯、红绿灯、流水线这些实验性质的案例中得到实践,自己动手接接线、写程序和调试,能自力更生把这些功能调试出来,再结合一些传感器,实现模拟量输入输出的功能,基本上基础就算打好了。
5.更高一些的使用技巧包括程序的组织和功能的实现两部分,程序组织方面,要试着理解FB、FC、DB这些块的功能,了解系统OB的含义和用法,尝试着把程序按照块来组织,通过调用减少重复工作,提高复用性,使程序更清晰可读,这是提高编程水平,组织大型程序的基础。功能实现方面,学习和了解一些常用的编程模式很有必要,比如顺序转换的编程结构,PID调节、步进电机控制等一些功能的原理、实现方法以及系统内置的工艺模块的用法,有可能的话尝试自己不用系统块写一个PID调节或者运动控制的功能,这些都是从熟手到高手的分水岭。我认识的很多工程师,都卡在这个关节到了技术瓶颈。这个瓶颈的形成有很多原因,平时项目用不到太多高级功能是一部分原因,但我个人认为主要还在于单纯从PLC角度学习的话,到一定程度上技术天花板的形成主要是看法和理念的限制,既然说到了PLC的学习,那么对这一个分水岭的突破也谈一下理解和看法。
6.越过分水岭。如果说PLC入门一端的基础是继电器组成的硬件回路,那么其通往高手之路的另外一端则与软件工程息息相关。虽然PLC是从继电器回路抽象出来的,但随着抽象完成,他也就成了一个软件的工程,而工程师们所做的PLC编程,本质上也就是软件设计的一种,从根本上,依然离不开软件工程的指导。diangon.com只是从事PLC程序设计的大部分是工程师,并不具备专业的软件工程训练,因此无法从认知上的到提高。FC、FB、DB这些块要实现的,也是软件工程中非常重要的逻辑和数据分离,模型与实例独立的思想,而被封装起来的工艺块,很多也已经是基于面向对象的思考方式编写出来的。因此,掌握软件工程的基本思路和方法,如果有可能,去学习一门高级语言,而不是纠缠在各种组态软件、触摸屏的软件使用和所谓的脚本编写上。这些软件是面向工程师设计的,但其对于个人认识和水平的提高意义及其有限。因此,掌握一门高级语言才是根本。我个人倾向于Python,因为人生苦短,需要Python这样高效率的语言,但是从上手难易程度和见效快的方面,还是推荐学习C#入手。
7.其他补充的技术和知识。除了软件工程,如果真的要想成为PLC高手,我想再没有比自己设计一款PLC更有挑战性的了。这包括:集成电路的设计和嵌入式系统软件设计,需要电子电路的基础和电路板设计的能力,需要编写一套可运行的嵌入式系统,同时需要一个PC端的编译器,把梯形图转换成PLC端嵌入式处理器可以理解的语言。这里面涉及到的学科和内容,我想都是一个自动化工程师在技术方面最全面的体现,能够做到这一步,我想就可以称得上是PLC专家了。

     我们是维修电工不是电气工程师,找准了自己的位置,明确了方向。电气工程师不会去现场进行PLC接线,但是维修电工不仅要现场给PLC接线,而且还要掌握如何修改程序,我们就知道自己应该掌握哪些知识,应该从怎么学习PLC,我谈谈自己的看法。
    第一,作为维修电工我们要从硬件开始学习,必须掌握PLC的I/O输入输出点,PLC的每个部位起什么作用的。在日常维修工作中,PLC外部最容易出现问题就是I/O点的损坏,需要更换到PLC的备用输入输出点。外部接线更改完成后,还需要更改PLC内部的程序的I/O点的的定义,我还需要掌握软件方面的知识。

三菱PLCFX2N接线端子功能介绍


西门子S7-200PLC接线端子功能介绍
    第二点,作为维修电工我们要从软件开始时学习,学习各种PLC编程软件里的上载和下载在哪里操作。在维修的工作中,PLC的I/O输入点外部更改后,内部的程序也需要修改,这个时候我们就需要把PLC的内部程序上载了,然后修改程序。修改完了,在下载到PLC的里。(每个品牌的PLC上传和下载都不一样,如果大家有兴趣可以留言,我们以后再分享如何进行PLC的上传和下载)。
    第三点,作为维修电工我们要从PLC的硬件构造也要掌握,对我们以后维修工作中,PLC出现问题,需要简单的维修PLC有帮助。


    1)、中央处理器(CPU)
    一般由控制器、运算器和寄存器组成,这些电路都集成在一个芯片内。CPU通过数据总线、地址总线和控制总线与存储单元、输入/输出接口电路相连接。
    与一般的计算机一样,CPU是整个PLC的控制中枢,它按PLC中系统程序赋予的功能指挥PLC有条不紊的进行工作。CPU主要完成下述工作:
    (1)接收、存储用户通过编程器等输入设备输入的程序和数据。
    (2)用扫描的方式通过I/O部件接收现场信号的状态或数据,并存入输入映像寄存器或数据存储器中。
    (3)诊断PLC内部电路的工作故障和编程中的语法错误等。
    (4) PLC进入运行状态后,执行用户程序,完成各种数据的处理、传输和存储相应的内部控制信号,以完成用户指令规定的各种操作。
    (5)响应各种外围设备(如编程器、打印机等)的请求。
    PLC采用的CPU随机型不同而不同, 目前,小型PLC为单CPU系统,中型及大型则采用双CPU甚至多CPU系统。目前,PLC通常采用的微处理器有三种:通用微处理器、单片微处理器(即单片机)、位片式微处理器。
    第四,作为维修电工我们要从PLC的编程语言也要掌握:
    1、梯形图语言(LD)与电气操作原理图相对应,具有直观性和对应性;电气设计人员易于掌握,目前在小型PLC上应用广泛!
    2、指令表语言(IL)指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。目前基本上没什么人使用,但是我们也应该了解!
    3、功能模块图语言(FBD)功能模块图语言是与数字逻辑电路类似的一种PLC编程语言。 这是一种较新的编程方法,用方框图的形式来表示操作功能,类似于数字逻辑门电路的编程语言。有数字电路基础的人很容易掌握,由于功能模块图能够清楚表达功能关系,使编程调试时间大大减少。目前,这种语言是发展趋势,国际电工协会正在实施发展这种新式的编程标准,而且某些PLC制造厂家,已经在中型及大型PLC开始支持这种语言了!
    4、顺序功能流程图语言(SFC),顺序功能流程图语言是为了满足结构化和标准化而设计的编程语言。对于负责的控制系统,内部联锁、互锁极其复杂的情况下,采用流程图语言可以很直观地看到设备的动作顺序。比较容易读懂程序,不同的人员都比较容易理解其他人编写的程序,因为程序按照设备的动作顺序进行编写,规律性较强,不需要复杂的互锁电路,更容易设计和维护系统。目前这种编程语言最适合从事工艺设计的工程技术人员,因此,它是一种效果显著、深受欢迎、前途光明的编程语言。
5、结构化文本语言(ST)结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于高级语言的一种编程语言。在大中型的PLC系统中,常采用结构化文本来描述控制系统中各个变量的关系。主要用于其他编程语言较难实现的用户程序编制。这五种编程语言,我们必须应该要掌握就是梯形图,也是最容易掌握的编程语言。
从事维修工作十几年,我也是从一名普通的电工开始的,一步一步的走过来,这些都是我们这些年的总结出来的学习方法。当然大家如果想看什么其他的内容请写留言,我们会酌情考虑推出大家喜欢看的技术文章。有机会请不要干维修电工,维修电工一个需要不断学习的工作行业,干到老学到的。

电工学习网独家原创稿件,转载必须注明原文出处及原文链接,违者必究!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多