第一篇: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提供了丰富的指令、模块,比单片机方便了很多。但是初学者编程时应尽量先使用简单的指令达到目的。尽管看上去有点土,却不失为一个入门的好途径,且对你理解那些较为复杂的指令会有帮助。具备了一定经验后,应该考虑掌握复杂指令的应用,以及程序的优化。
看到不少新手的帖子,感觉得到楼主着急的心情,特别是遇到跟书上理论不相符的现象更是上火。
鉴于此,“曾经的新手”给正在准备入门的学弟们介绍几点经验。
1、先通读一遍“系统手册”(不管能不能看懂,先了解个大概,以便学习编程时查找);
2、由位控逻辑入手,逐渐增加定时、计数等条件,把或、与、非关系理顺;
3、进而练习整数运算、实数运算、类型转换;
4、量程转换、PID调节回路的建立及P、I、D参数的理解(最好是有个物理回路验证,比如变频器+电机+测速传感器);
5、循环、顺序、跳转等程序控制(尽量避免跳转,非跳不可时也是跳的越近越好);
6、中断、通讯、位置控制....特别提醒:
①如果发现PLC工作不正常,先清除,再下载。
②有疑问第一个动作按“F1”,第二动作查“系统手册”,第三动作“论坛搜索”,第四动作“提问”。
③无论是编程还是实际接线验证,切忌急躁,如果脑子不清楚就先别干,防止发生安全事故或损坏设备。
④自己的验证过的程序注意收藏,程序文件命名要简明清晰,以备今后复习或直接应用到项目中。
第二篇:plc学习心得,初学者必看
1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想 出来再参考别人的提示,你就知道自己和别人思路的差异。
2.别小家子气,买本书几十块都舍不得,你还学个P。为了省钱看电子书,浪费的时间绝对超过书的价值。当然如果查资料,只能看PDF。
3.学习新的开发软件时,一定要看帮助手册。买的书不够全面。刚接触一个软件,什么都不懂,就盲目的问东问西,让人看起来很幼稚。
4.不要蜻蜓点水,得过且过,细微之处往往体现实力。
5.把时髦的技术挂在嘴边,还不如把过时的技术记在心里。
6.看得懂的书,请仔细看;看不懂的书,请硬着头皮看。别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍。
7.多实践,调试,去写去调,只用软件模拟,是永远成不了高手的。
8.保存好你做过的所有的源程序、原理图等----那是你最好的积累之一。
9.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先你要学会自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就 能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己的帖子没人回的。
引用 回复 举报 评分
什么样的人是浮躁的人
浮躁的人容易问:谁有xxx程序吗?--(你给人家多少钱啊?自己的劳动白送你?)浮躁的人容易说:【男儿膝下有黄金】xxx ---(就算网络也要点尊严吧?)浮躁的人容易说:紧急求救---(其实只是个简单的课程设计)
浮躁的人容易说:有没有xxx中文资料?---一个字:懒。别说别的。E文不行?谁不是从 ABC学起的啊?
浮躁的人容易说:求xxx,我的email是xxx@xxx.com,然后消失 ---- 你以为你是大爷啊,人 家请你吃饭,还要喂到你口里不成?
浮躁的人容易问:做PLC有钱途吗----只是为了钱,搞不好技术的,你去抢银行好了。浮躁的人容易说:哪里有xxx资料?(其实大部分资料网络上都有,但是偏偏来找人 问,懒!)浮躁的人分两种:只观望而不学的人;只学而不坚持的人; 浮躁的人永远不是一个高手。
第三篇:初学者心得
Geant4 初学者之学习心得Geant4 是一个针对物理问题封装好的C++工具包,一个C++类的集合。我们在使用的过程中主要是对于工具包中的接口类进行重载和实现。使用Geant4工具包的主要步骤:
1.继承关键接口类,重载其中所有的关键函数。
这些个类和函数是运行Geant4程序所必需的,必需被继承和重载并在main()函数中调用。具体的类和函数如下:
G4VUserDetectorConstructionl类
Construct()//建立整个空间结构和材料,注册探测器(Sensitive Detector)
G4VUserPhysicsList类
ConstructParticle()//注册输运过程要考虑的粒子 ConstructProcess()//注册不同粒子对应的物理过程 SetCuts()//设置不同粒子的截断值
G4UserPrimaryGeneratorAction类
GeneratePrimaries()//产生粒子 2.编写自己的mian()函数,添加核心代码//运行管理器
G4RunManager* runManager = new G4RunManager;
//探测器
G4VUserDetectorConstruction* detector = new MyDetectorConstruction;runManager->SetUserInitialization(detector);
//物理过程
G4VUserPhysicsList* physics = new MyPhysicsList;
runManager->SetUserInitialization(physics);
//粒子产生
G4VUserPrimaryGeneratorAction* gen_action = new MyPrimaryGeneratorAction;
runManager->SetUserAction(gen_action);
//初始化Gent4内核
runManager->Initialize();
//进行输运计算
G4int numberOfEvent=1000000;
runManager->BeamOn(numberOfEvent);//一个程序中可以有多个BeamOn
3.获得计算结果
首先要明确Run、Event和Step所代表的不同概念。Run是指程序的一个运行周期,比如BeamOn 函数从开始执行到执行结束就是一个Run。Event 是一个事件,比如一个源粒子的整个输运过程。而Step是指粒子两个碰撞点之间这一部分。因此,他们之间的关系为Run>Event>Step。也就是说,一个Run包含多个Event,一个Event包含多个Step。在输运过程中,一个Event的所有Step都完成之后才会开始下一个Event,一个Run的所有Event都完成后才会开始下一个Run(如果存在的话)。
重载相关类和函数来获取关心的物理信息。这些类和函数并不是必需的,可以根据需要来重载相应的类和函数。几个常用的类和函数如下:
G4UserRunAction类
BeginOfRunAction()//每个Run开始时被调用 EndOfRunAction()//每个Run结束时被调用
G4UserEventAction类
BeginOfEventAction()//每个Event开始时被调用 EndOfEventAction()//每个Event结束时被调用
G4UserSteppingAction类
UserSteppingAction()//每个Step完成时被调用 举个一个简单的例子,如果我们想要得到能谱数据,可以在G4UserRunAction类中设置一个用于存储能谱数据的成员变量数组,在BeginOfEventAction()函数中对沉积能量清零,在UserSteppingAction()函数中对每一步的沉积能量进行累加,在EndOfEventAction()中根据沉积能量对数组进行寻址加1操作,最后在EndOfRunAction()中将该数组的值保存到文件中或进行其他处理。不同类之间的数据传递可以使用指针、专用类或者全局变量来实现。当然上述过程并不是得到能谱数据的唯一途径,使用Geant4内置的MultiFunctionalDetector 和PrimitiveScorer或者编写自己的Sensitive Detector子类同样可以实现。
由于是初学者,只是对自己学习的一些知识进行简单的总结,错误之处在所难免。可视化、减小方差技巧和并行计算等内容将是下一步学习的重点。
第四篇:PLC一点心得
学习西门子PLC一点心得
首先到现场装软件,做通讯电缆
装软件时要注意的是软件的安装顺序,顺序如下:XP操作系统-Office办公软件-下位软件-上位软件。软件安装完后就对安装的软件进行授权。
1.2软件安装好后就要做通讯电缆了,现场设备的情况不同,做的通讯电缆也不同。如果现场是是两个控制柜(即两个PLC),两台上位机,这两台上位机是一台上位机对应一台控制柜的PLC话,只要做两条MPI通讯电缆就可以了;如果要是两台控制柜(即两个PLC),两台上位机,而且程序里面显示一台上位机可以监视另一台设备的运行情况,这时候就要做三条通讯电缆了,两条是从两个分别是从控制柜的PLC到上位机的,还有一条是连接两个控制柜里的PLC的。通讯线做好来就要连接起来了,要注意连接的顺序,如果是第一种情况,只是两个上位机连接两个PLC,则直接连就可以了;要是两个上位机和两个PLC,其中每个上位机可以采集到两个PLC的信息的话,就要把第三条MPI电缆加到两个PLC中间,顺序是第一台PLC的DP总线接头的A1B1出来两个线接到上位机的网卡的DP总线接头上,还是第一台PLC,它的A2B2出来两条线接到第二台PLC的DP总线接头的A1B1上,这两条线就是我们做的第三条MPI电缆(我们通常用的MPI通讯线都是两心线屏蔽线),然后从第二台PLC的DP总线接头的A2B2出来两根线接到第二台电脑的网卡的DP总线接头的A1B1(注意:这里连接的不是A2B2,如果占用来A2B2则无法进行下一个PLC的扩展),这时,通讯线连接完成。剩下还有一个小的工作要完成,那就是打开终端电阻,就是在PLC的DP接头的侧面有一个可以拨动的小开关,有OFF和ON两个档,这个就是终端电阻,每一个完整的MPI通讯电缆的两头都要把这个终端电阻打到ON,如果要是一个上位机对应一个PLC,则只有一条MPI线,就要把这个线的两头的DP接头的终端电阻都打到ON,如果是上面说到的做三根线连着一起的情况,则只要把两头(最开始的和最末尾的)的两个终端电阻打到ON就可以了。这个时候打开软件就会有数据读上来,即通讯成功。
第五篇:PLC心得
PLC四级皮带传送设计心得
PLC即可编程逻辑控制器,采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,级数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。
在本次设计中的主要过程:
1.分析要求的控制需求,结合PLC的特点来设计,达到控制要求。根据四级皮带的控制和设计要求,进行反复设计,讨论:(1)确定必须完成的动作及动作完成的顺序,归纳出顺序功能图;(2)根据要求将顺序功能图转换为梯形图;(3)将设计好的图用CAD制图
2.选择适当类型的PLC:根据要求,确定I /O点数和I/O的类型(数字量、模拟量等),并列出I/O点清单。进行内存容量的估计,适当留有余量。
对于一般开关量控制系统,用户程序所需存储器的容量等于I/O的总数乘以8。
(1)对于只有模拟量输入的控制系统,每路模拟量需要100个存储器字;
(2)对于既有模拟量输入又有模拟量输出的控制系统,每路模拟量需要200个存储器字。我们这次的PLC需求既有输出模拟量又有输入模拟量,所以符合第二种情况。于是我们在网上查到西
门子PLC该型号的参数,进行选择。