西门子总代理商
1.程序设计前期准备工作
在正式进行用户程序设计前,首先要做一些前期准备工作,包括绘制IO分配表,绘出PLC配线图,画出全部控制系统的电气原理图。
PLC用户程序的设计方法很多,除了上面所介绍的转换技术法外,比较通用的是程序流程图设计法,其他还有组合逻辑控制设计法,步进顺控设计法和经验设计法等。但这些方法都具有一定的局限性,程序设计因人而异,即使采用同一种编程方法,所设计的用户程序也会相差很大。因此,初学者追求的是有自己的思路,根据自己的思路所设计的程序完**满足控制要求,不要去追求什么程序设计技巧、优程序,等等。
2.程序设计的算法和程序流程图设计法
什么是算法,算法就是解决问题的思路。不管是工程控制还是数据处理,在设计程序前,总是要对问题进行分析,并找出解决问题的方法步骤,这个方法步骤就是算法。例如,黑板上有十个数,要找出大值,有人说我一眼就看出某数是大的数,这个“一眼看出”不是算法。有人说我是一个数一个数进行比较,比较时总是保留大的数,舍去小的数,后那个数就是大的数,这种一一比较的方法就是算法。因此,在PLC 程序设计中(其他程序设计也一样),算法不但是一种思路,还应该是解决问题的具体步骤,而PLC程序则是应用指令完成算法的具体体现和成果。所以,一般来说,设计程序前先要思考算法,正如写文章前先要构想文章的大纲一样。
算法是解决问题的思路,不同的人可能思路会不完全相同。也就说,一个问题的思路可能有多种,形成的算法也会有多种。同一个问题有多种算法,有多种程序设计都是正常的,不要轻易说别人设计的程序不对。
一个问题可以有多种算法,但这多种算法还是可以比较的,比较的标准涉及对算法进行评价和优化的问题。具体来说,一个算法如果使用较少的硬件资源,执行时间较短,这种算法就较好。
PLC 是解决实际控制任务的,而针对控制任务的算法是解决问题的前提,可以说,对PLC的硬件知识,编程知识的学习都是有限的,而对算法的学习则是无形的、无限的。算法不但涉及PLC知识,还涉及控制任务的相关工艺工程知识、大量的数学、物理等专业基础知识,试想一个连方程是什么都不知道的人,能有解一次方程的算法吗?
有了算法,还必须用PLC指令编写成PLC程序。在编写程序前,首先要把算法表示出来。
算法的表示方法很多,重要的是表达方式能表示算法的步骤,以便程序设计时,能很快地根据算法的步骤编写出程序。这里介绍一种常用的算法表示方法——程序流程图。在高级语言里,程序流程图又叫程序框图,用框图来表示执行的内容和程序的流转,用带头的连线表示程序执行的步骤和流程。图5.5-1 表示了程序流程图中的两种组成图框——运算框和转移框。
图5.5-1 程序流程框图
运算框表示算法在该步骤要执行的内容,转移框则表示程序到这一步要根据框中所表示的运算进行程序转移。如图中若A>B则转向Y,A≤B则转向N。连线头表示算法的步骤流程,每一个算法都可以先画出由运算框和转移框所组成的程序框图,然后,根据程序框图选用适当的指令编制出梯形图程序。
3.组合逻辑控制设计法
逻辑设计法是将数字电子技术中的数字电路逻辑设计方法移植到PLC梯形图程序设计中。梯形图和继电控制线路一样,其输出线圈和输入触点均是只有两种状态的元件,因此,用变量取值为“0”和“1”的逻辑代数也完全适用于PLC梯形图的设计。这就是梯形图逻辑设计法的依据。逻辑设计法有很大的局限性,它仅适用于组合逻辑控制系统。
什么是组合逻辑控制当逻辑控制的输出状态仅仅取决于输入的当前值状态,而与输入、输出的以前状态无关的逻辑控制称为组合逻辑控制。组合逻辑控制的特点是输出状态仅与当前输入状态有关,其结果是一的,且其转换马上实现。其逻辑表达式简单易懂,根据逻辑表达式可直接设计出梯形图,逻辑设计法不适用于时序逻辑控制。
组合逻辑控制设计方法的步骤:
(1)根据控制要求,明确哪些是输出变量,哪些是输入变量。
(2)根据控制要求,绘制输入、输出关系的真值表。真值表必须考虑输入变量的全部状态组合。
(3)根据真值表写出输出与输入关系之逻辑代数表达式。
(4)根据逻辑代数表达式直接设计梯形图程序。
可以看出,这种设计法的另一个局限是必须掌握一定的数字电路和逻辑代数知识,这对于没有系统学习过这些知识的人员来说,有一定的困难。
4. 步进顺序控制设计法
在工业控制中,除了模拟量控制之外,大部分控制都是一种顺序控制。所谓顺序控制,就是按照生产预先规定的顺序,在各个输入信号的作用下,根据内部状态和时间的顺序,在生产过程中各个执行机构自动、有序地进行操作。
将逻辑控制看成顺序控制的基本思路逻辑控制系统在一定的时间内只能完成一定的控制任务。这样,就可以把一个工作周期内的控制任务划分成若干个时间连续、顺序相连的工作段,而在某个工作段,只关心该工作段的控制任务和什么情况下该工作段结束,然后转移到下一个工作段就行了。
三菱FX系列PLC专门为顺序控制开发了步进指令STL,利用步进指令STL可以非常方便地设计顺序控制程序。在本书6章专门对 STL 步进指令顺序控制程序进行了详细讲解,这里不再阐述。
步进顺序控设计法的优点程序设计思路非常清晰、容易理解和掌握,不需要过多过深的知识。对初学者来说,是容易接受、学习和掌握的梯形图程序设计方法。
5.经验法
经验设计法是指用设计继电控制电气原理图的经验方法来设计比较简单的开关量逻辑控制梯形图,即在掌握一些基本环节设计的基础上,充分理解实际的控制要求,将实际控制要求分解为各个基本环节所能解决的小任务,然后,根据控制要求不断地修改自己的设计,直到达到符合控制要求的梯形图为止。这就如同小学生作文,先阅读优秀范文,再**文写作,后达到独立写作的目的。学习PLC程序设计也一样,可以先尽可能多地收集一些典型的小程序加以学习,然后模编写或对典型程序加以改动后移植到自己的程序中,后经过不断修改变成自己独立完成的程序。
经验法没有普通的规律可循,设计所用的时间、设计质量均与设计者经验有很大的关系,具有很大的试探性和随意性,所设计的程序是因人而异,不具有一性。经验法是初学者特别是电工技术人员学习PLC程序设计比较好的切入点。经验法要求设计者对基本设计环节(启保停、延时、自锁、连锁与互锁等)能够理解、掌握和运用。经验法的另一个特点是程序可能要经过多次反复调试、修改才能完成,而实际上这种反复调试修改也给设计者积累了经验。
PLC控制系统设计的一般步骤与传统的继电器——接触器控制系统的设计相比较,组件的选择代替了原来的器件选择,程序设计代替了原来的逻辑电路设计。
(1)根据工艺流程分析控制要求,明确控制任务,拟定控制系统设计的技术条件。技术条件一般以设计任务书的形式来确定,它是整个设计的依据。工艺流程的特点和要求是开发PLC控制系统的主要依据,所以必须详细分析、认真研究,从而明确控制任务和范围。如需要完成的动作(动作时顺、动作条件,相关的保护和联锁等)和应具备的操作方式(手动、自动、连续、单周期,单步等)。
(2)确定所需的用户输入设备(按钮、操作开关、限位开关、传感器等)、输出设备(继电器、接触器、信号灯等执行元件)以及由输出设备驱动的控制对象(电动机、电磁阀等),估算PLC的I/O点数;分析控制对象与PLC之间的信号关系,信号性质,根据控制要求的复杂程度,控制精度估算PLC的用户存储器容量。
(3)选择PLC。PLC是控制系统的核心部件,正确选择PLC对于保证整个控制系统的各项技术、经济指标起着重要的作用,PLC的选择包括机型的选择、容量的选择、I/O模块的选择、电源模块的选择等。选择PLC的依据是输入输出形式与点数,控制方式与速度、控制精度与分辨率,用户程序容量。
(4)分配、定义PLC的I/O点,绘制I/O连接图。根据选用的PLC所给定的元件地址范围(如输入、输出、辅助继电器、定时器、计数器。数据区等),对控制系统使用的每一个输入、输出信号及内部元件定义**的信号名和地址,在程序设计中使用哪些内部元件,执行什么功能格都要做到清晰,无误。
(5)PLC控制程序设计。包括设计梯形图、编写语句表、绘制控制系统流程图。控制程序是控制整个系统工作的软件,是保证系统工作正常,安全。可靠的关键,因此,控制程序的设计必须经过反复测试。修改,直到满足要求为止。
(6)控制柜(台)设计和现场施工。在进行控制程序设计的同时,可进行硬件配备工作,主要包括强电设备的安装、控制柜(台)的设计与制作、可编程序控制器的安装、输入输出的连接等。在设计继电器控制系统时,必须在控制线路设计完成后,才能进行控制柜(台)设计和现场施工。可见,采用PLC控制系统,可以使软件设计与硬件配备工作平行进行,缩短工程周期。如果需要的话,尚需设计操作台、电气柜、模拟显示盘和非标准电器元部件。
(7)试运行、验收、交付使用,并编制控制系统的技术文件。编制控制系统的技术文件包括说明书、设计说明书和使用说明书、电器图及电器元件明细表等。
传统的电器图,一般包括电器原理图、电器布置图及电器安装图。在PLC控制系统中,这一部分图可以统称为“硬件图”。它在传统电器图的基础上增加了PLC部分,因此在电器原理图中应增加PLC的I/O连接图。此外,在PLC控制系统的电器图中还应包括程序图(梯形图),可以称它为“软件图”。向用户提供“软件图”,可便于用户发展或工艺进时修改程序,并有利于用户在维修时分析和排除故障。根据具体任务,上述内容可适当调整。
6ES72111BE400XB0 | CPU 1211C AC/DC/Rly,6输入/4输出,集成2AI |
6ES72111AE400XB0 | CPU 1211C DC/DC/DC,6输入/4输出,集成2AI |
6ES72111HE400XB0 | CPU 1211C DC/DC/Rly,6输入/4输出,集成2AI |
6ES72121BE400XB0 | CPU 1212C AC/DC/Rly,8输入/6输出,集成2AI |
6ES72121AE400XB0 | CPU 1212C DC/DC/DC,8输入/6输出,集成2AI |
6ES72121HE400XB0 | CPU 1212C DC/DC/Rly,8输入/6输出,集成2AI |
6ES72141BG400XB0 | CPU 1214C AC/DC/Rly,14输入/10输出,集成2AI |
6ES72141AG400XB0 | CPU 1214C DC/DC/DC,14输入/10输出,集成2AI |
6ES72141HG400XB0 | CPU 1214C DC/DC/Rly,14输入/10输出,集成2AI |
6ES72151BG400XB0 | CPU 1215C AC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72151AG400XB0 | CPU 1215C DC/DC/DC,14输入/10输出,集成2AI/2AO |
6ES72151HG400XB0 | CPU 1215C DC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72171AG400XB0 | CPU 1217C DC/DC/DC,14输入/10输出,集成2AI/2AO |