致初学PLC者:新人学PLC编程的心得体会 点击:18707 | 回复:152



Smile-lyc

    
  • [管理员]
  • 精华:114帖
  • 求助:50帖
  • 帖子:2793帖 | 22283回
  • 年度积分:311
  • 历史总积分:144042
  • 注册:2006年8月04日
发表于:2016-07-24 22:17:16
楼主

一、必备的前提条件

1、编程需要坚强的毅力和足够的耐心

人各有所长,

新人学PLC编程的心得体会

。有些人把编程看作一项冗长而枯燥的工作;有些人把编程看作一项趣味的智力游戏。如果你是前者,强烈建议你远离这份工作。毕竟编程工作是对人的毅力和耐心的挑战。我所在实验室中,很多学生看到我编程序就会惊讶于我面对这一堆堆符号所表现出的专注。其实,这是兴趣使然。兴趣使我具备了足够的毅力和耐心。经过无数次失败后,当看到一个个符号按我的思整齐的排列,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提供了丰富的指令、模块,比单片机方便了很多。但是初学者编程时应尽量先使用简单的指令达到目的。尽管看上去有点土,却不失为一个入门的好途径,且对你理解那些较为复杂的指令会有帮助。具备了一定经验后,应该考虑掌握复杂指令的应用,以及程序的优化。




楼主最近还看过



张文良

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 213回
  • 年度积分:0
  • 历史总积分:193
  • 注册:2012年8月12日
发表于:2017-09-17 17:38:35
101楼

很好的教材,学习了

雷海

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2017年5月02日
发表于:2017-09-17 19:58:19
102楼

讲的不错,学习一下,不知道怎么收藏

条子FOOT

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:61
  • 注册:2017年10月11日
发表于:2017-10-11 21:46:00
103楼

感谢老师,今年刚大一,了解一下专业的方面很有帮助。

gk2017

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:100
  • 注册:2017年10月16日
发表于:2017-11-09 15:43:51
104楼

永远是我的老师!!!!!!!!

噗噗噗啪啪啪

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:103
  • 注册:2017年11月19日
发表于:2017-11-19 21:02:22
105楼


回复内容:

对: Smile-lyc 五、PLC基础学习方法论谈学习PLC入门方法其实主要是... 内容的回复!

好东西,谢谢分享,努力学习中。

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 47回
  • 年度积分:0
  • 历史总积分:101
  • 注册:2007年2月01日
发表于:2017-11-20 01:24:26
106楼

感謝樓主寫這麼長的文章來指導我們這些菜鳥

gk2017

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:103
  • 注册:2018年1月05日
发表于:2018-01-15 13:34:34
107楼

新人报道,受益匪浅

大神_救我

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 33回
  • 年度积分:16
  • 历史总积分:313
  • 注册:2017年4月06日
发表于:2018-01-30 12:26:21
108楼

讲的很不错,谢谢,收益匪浅


梦天已碎

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 27回
  • 年度积分:0
  • 历史总积分:145
  • 注册:2018年1月24日
发表于:2018-01-30 16:24:59
109楼

觉得有道理

ljclwyf

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 154回
  • 年度积分:0
  • 历史总积分:122
  • 注册:2012年1月31日
发表于:2018-02-04 21:13:47
110楼

正在学习,所以这是一个很好的材料。

ljclwyf

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 154回
  • 年度积分:0
  • 历史总积分:122
  • 注册:2012年1月31日
发表于:2018-02-04 21:14:19
111楼

非常好的文章,有些地方需要反复的琢磨,收藏起来,慢慢体会!

ljclwyf

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 154回
  • 年度积分:0
  • 历史总积分:122
  • 注册:2012年1月31日
发表于:2018-02-04 21:14:41
112楼

说是这样说,有谁真正的用心看过吗

不是一般的菜

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 21回
  • 年度积分:0
  • 历史总积分:81
  • 注册:2018年2月05日
发表于:2018-02-06 19:04:18
113楼

在学习,不错



寻水的鱼1

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 64回
  • 年度积分:0
  • 历史总积分:111
  • 注册:2018年2月08日
发表于:2018-02-08 14:36:34
114楼

非常好的文章,有些地方需要反复的琢磨,收藏起来,慢慢体会!

最想上岸的鱼

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:91
  • 注册:2018年2月21日
发表于:2018-02-21 20:35:48
115楼


回复内容:

对: Smile-lyc 五、PLC基础学习方法论谈学习PLC入门方法其实主要是... 内容的回复!

受教了,学习中

sprcloud

  • 精华:0帖
  • 求助:3帖
  • 帖子:4帖 | 100回
  • 年度积分:0
  • 历史总积分:341
  • 注册:2012年9月22日
发表于:2018-03-15 12:36:31
116楼

回复内容:

对:Smile-lyc 五、PLC基础学习方法论谈学习PLC入门方法其实主要是两点,1.选择一个PLC(购买西门子S7 200\300 PLC请选择中华自动化网上商城PLC专栏), 2边学边练(一)、问题提出。可编程控制器技术最主要是应用于自动化控制工程中,如何综合地运用前面学过知识点,根据实际工程要求合理组合成控制系统,在此介绍组成可编程控制器控制系统的一般方法。(二)、可编程控制器控制系统设计的基本步骤1 .系统设计的主要内容( 1 )拟定控制系统设计的技术条件。技术条件一般以设计任务书的形式来确定,它是整个设计的依据;( 2 )选择电气传动形式和电动机、电磁阀等执行机构;( 3 )选定 PLC 的型号;( 4 )编制 PLC 的输入 / 输出分配表或绘制输入 / 输出端子接线图;( 5 )根据系统设计的要求编写软件规格说明书,然后再用相应的编程语言(常用梯形图)进行程序设计;( 6 )了解并遵循用户认知心理学,重视人机界面的设计,增强人与机器之间的友善关系;( 7 )设计操作台、电气柜及非标准电器元部件;( 8 )编写设计说明书和使用说明书;根据具体任务,上述内容可适当调整。2 . 系统设计的基本步骤( 1 )深入了解和分析被控对象的工艺条件和控制要求a .被控对象就是受控的机械、电气设备、生产线或生产过程。b.控制要求主要指控制的基本方式、应完成的动作、自动工作循环的组成、必要的保护和联锁等。对较复杂的控制系统,还可将控制任务分成几个独立部分,这种可化繁为简,有利于编程和调试。( 2 )确定 I/O 设备根据被控对象对 PLC控制系统的功能要求,确定系统所需的用户输入、输出设备。常用的输入设备有按钮、选择开关、行程开关、传感器等,常用的输出设备有继电器、接触器、指示灯、电磁阀等。( 3 )选择合适的 PLC 类型根据已确定的用户 I/O 设备,统计所需的输入信号和输出信号的点数,选择合适的 PLC 类型,包括机型的选择、容量的选择、 I/O模块的选择、电源模块的选择等。( 4 )分配 I/O 点分配 PLC 的输入输出点,编制出输入 / 输出分配表或者画出输入 / 输出端子的接线图。接着九可以进行 PLC程序设计,同时可进行控制柜或操作台的设计和现场施工。( 5 )设计应用系统梯形图程序根据工作功能图表或状态流程图等设计出梯形图即编程。这一步是整个应用系统设计的最核心工作,也是比较困难的一步,要设计好梯形图,首先要十分熟悉控制要求,同时还要有一定的电气设计的实践经验。( 6 )将程序输入 PLC当使用简易编程器将程序输入 PLC时,需要先将梯形图转换成指令助记符,以便输入。当使用可编程序控制器的辅助编程软件在计算机上编程时,可通过上下位机的连接电缆将程序下载到PLC 中去。( 7 )进行软件测试程序输入 PLC 后,应先进行测试工作。因为在程序设计过程中,难免会有疏漏的地方。因此在将PLC连接到现场设备上去之前,必需进行软件测试,以排除程序中的错误,同时也为整体调试打好基础,缩短整体调试的周期。( 8 )应用系统整体调试在 PLC软硬件设计和控制柜及现场施工完成后,就可以进行整个系统的联机调试,如果控制系统是由几个部分组成,则应先作局部调试,然后再进行整体调试;如果控制程序的步序较多,则可先进行分段调试,然后再连接起来总调。调试中发现的问题,要逐一排除,直至调试成功。( 9 )编制技术文件系统技术文件包括说明书、电气原理图、电器布置图、电气元件明细表、 PLC梯形图。(三)、 PLC 硬件系统设计1 . PLC 型号的选择在作出系统控制方案的决策之前,要详细了解被控对象的控制要求,从而决定是否选用 PLC进行控制。在控制系统逻辑关系较复杂(需要大量中间继电器、时间继电器、计数器等)、工艺流程和产品改型较频繁、需要进行数据处理和信息管理(有数据运算、模拟量的控制、PID 调节等)、系统要求有较高的可靠性和稳定性、准备实现工厂自动化联网等情况下,使用 PLC 控制是很必要的。目前,国内外众多的生产厂家提供了多种系列功能各异的 PLC产品,使用户眼花缭乱、无所适从。所以全面权衡利弊、合理地选择机型才能达到经济实用的目的。一般选择机型要以满足系统功能需要为宗旨,不要盲目贪大求全,以免造成投资和设备资源的浪费。机型的选择可从以下几个方面来考虑。( 1 )对输入 / 输出点的选择盲目选择点数多的机型会造成一定浪费。要先弄清除控制系统的 I/O 总点数,再按实际所需总点数的 15 ~ 20 %留出备用量(为系统的改造等留有余地)后确定所需 PLC的点数。另外要注意,一些高密度输入点的模块对同时接通的输入点数有限制,一般同时接通的输入点不得超过总输入点的 60 %; PLC每个输出点的驱动能力( A/ 点)也是有限的,有的 PLC 其每点输出电流的大小还随所加负载电压的不同而异;一般 PLC的允许输出电流随环境温度的升高而有所降低等。在选型时要考虑这些问题。PLC 的输出点可分为共点式、分组式和隔离式几种接法。隔离式的各组输出点之间可以采用不同的电压种类和电压等级,但这种 PLC平均每点的价格较高。如果输出信号之间不需要隔离,则应选择前两种输出方式的 PLC 。( 2 )对存储容量的选择对用户存储容量只能作粗略的估算。在仅对开关量进行控制的系统中,可以用输入总点数乘 10 字 / 点+输出总点数乘 5 字 /点来估算;计数器 / 定时器按( 3 ~ 5 )字 / 个估算;有运算处理时按( 5 ~ 10 )字 / 量估算;在有模拟量输入 /输出的系统中,可以按每输入 / (或输出)一路模拟量约需( 80 ~ 100 )字左右的存储容量来估算;有通信处理时按每个接口 200字以上的数量粗略估算。最后,一般按估算容量的 50 ~ 100 %留有裕量。对缺乏经验的设计者,选择容量时留有裕量要大些。( 3 )对 I/O 响应时间的选择PLC 的 I/O 响应时间包括输入电路延迟、输出电路延迟和扫描工作方式引起的时间延迟(一般在 2 ~ 3个扫描周期)等。对开关量控制的系统, PLC 和 I/O 响应时间一般都能满足实际工程的要求,可不必考虑 I/O响应问题。但对模拟量控制的系统、特别是闭环系统就要考虑这个问题。( 4 )根据输出负载的特点选型不同的负载对 PLC的输出方式有相应的要求。例如,频繁通断的感性负载,应选择晶体管或晶闸管输出型的,而不应选用继电器输出型的。但继电器输出型的 PLC有许多优点,如导通压降小,有隔离作用,价格相对较便宜,承受瞬时过电压和过电流的能力较强,其负载电压灵活(可交流、可直流)且电压等级范围大等。所以动作不频繁的交、直流负载可以选择继电器输出型的PLC 。( 5 )对在线和离线编程的选择离线编程示指主机和编程器共用一个 CPU ,通过编程器的方式选择开关来选择 PLC 的编程、监控和运行工作状态。编程状态时, CPU只为编程器服务,而不对现场进行控制。专用编程器编程属于这种情况。在线编程是指主机和编程器各有一个 CPU ,主机的 CPU完成对现场的控制,在每一个扫描周期末尾与编程器通信,编程器把修改的程序发给主机,在下一个扫描周期主机将按新的程序对现场进行控制。计算机辅助编程既能实现离线编程,也能实现在线编程。在线编程需购置计算机,并配置编程软件。采用哪种编程方法应根据需要决定。( 6 )据是否联网通信选型若 PLC 控制的系统需要联入工厂自动化网络,则 PLC 需要有通信联网功能,即要求 PLC 应具有连接其他 PLC 、上位计算机及CRT 等的接口。大、中型机都有通信功能,目前大部分小型机也具有通信功能。( 7 )对 PLC 结构形式的选择在相同功能和相同 I/O点数据的情况下,整体式比模块式价格低。但模块式具有功能扩展灵活,维修方便(换模块),容易判断故障等优点,要按实际需要选择 PLC的结构形式。2 .分配输入 / 输出点一般输入点和输入信号、输出点和输出控制是一一对应的。分配好后,按系统配置的通道与接点号,分配给每一个输入信号和输出信号,即进行编号。在个别情况下,也有两个信号用一个输入点的,那样就应在接入输入点前,按逻辑关系接好线(如两个触点先串联或并联),然后再接到输入点。( 1 )确定 I/O 通道范围不同型号的 PLC ,其输入 / 输出通道的范围是不一样的,应根据所选 PLC型号,查阅相应的编程手册,决不可“张冠李戴”。必须参阅有关操作手册。( 2 )部辅助继电器内部辅助继电器不对外输出,不能直接连接外部器件,而是在控制其他继电器、定时器 / 计数器时作数据存储或数据处理用。从功能上讲,内部辅助继电器相当于传统电控柜中的中间继电器。未分配模块的输入 / 输出继电器区以及未使用 1 : 1链接时的链接继电器区等均可作为内部辅助继电器使用。根据程序设计的需要,应合理安排 PLC 的内部辅助继电器。     内容的回复:

写的很好,不知道可不可以下载。

isaid

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 216回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2018年4月07日
发表于:2018-04-10 21:28:22
117楼
感谢楼主分享!学习一下

juri

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 29回
  • 年度积分:36
  • 历史总积分:279
  • 注册:2018年3月26日
发表于:2018-04-25 20:29:15
118楼
写的很好,新人学习一下。

loner0000

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 58回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2018年4月24日
发表于:2018-04-26 11:10:26
119楼
感谢楼主的经验总结,读完了很受用

阿莫

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:1033
  • 注册:2018年5月01日
发表于:2018-05-01 12:04:37
120楼
码这么多字,楼主辛苦了。

热门招聘
相关主题

官方公众号

智造工程师