根据不同的plc配置情况确定I/O地址是plc编程的前提与基础,程序中的地址必须与实际物理连接点一一对应,才能确保动作的正确执行。 当选择了PLC之后,首先需要确定的是系统中各I/O点的**地址。在西门子S7系列PLC中I/O**地址的分配方式共有固定地址型、自动分配型、用定义型3种。实际所使用的方式决定于所采用的PLC的CPU型号、编程软件、软件版本、编程人员的选择等因素。 1.固定地址型 固定地址分配方式是一种对PLC安装机架上的每一个安装位置(插槽)都规定地址的分配方式。其特点如下: ①PLC的每一个安装位置都按照该系列PLC全部模块中可能存在的大I/O点数分配地址。 例如:S7-300系列I/O模块中大开关量输入/输出为32点,因此,每一个安装位置都必须分配32点地址:如果实际安装的模块只有16点输入,那么剩余的I/O地址将不可以再作为物理输入点使用。 ②对于输入或输出来说,I/O是间断的,而且,在输入与输出中不可以使用相同的二进制字节与位。 例如:S7-300系列I/O模块的1安装位中安装了32点输入模块,地址数据中的0.0~3.7就被该模块所占用,地址固定为I0.0~13.7;即使2安装位中安装了32点输出模块,其输出也只能是Q4.O~Q7.7,而不可以是QO.O~Q3.7,在实际编程时QO.O~Q3.7就变成了不存在的输出。同样,如果在3安装位中接着安装了16点输入模块,其地址将为I8.0~19.7,在实际编程时I4.0~17.7就变成了不存在的输入。 以配原则对模拟量模块同样适用。 2.自动分配型 自动地址分配方式是一种通过自动检测PLC所安装的实际模块,自动、连续分配地址的分配方式。其特点如下: ①PLC的每一个安装位置的I/O点数量无规定,PLC根据模块自动分配地址。 例如:当每一个安装位置安装了32点模块后,PLC自动分配给该模块0.0~3.7的地址:如果实际安装的模块只有16点输入,那么PLC自动分配给该模块的地址就成为0.0~1.7。 ②输入与输出的均从0.0起连续编排、自动识别,I/O地址连续、有序。 例如:PLC的1安装位中安装了32点输入模块,地址为I0.0~13.7;当2安装位中安装了32点输出模块后,其输出自动分配为QO.O~Q3.7。同样,如果在3安装位中接着安装了16点输入模块,其地址将为I4.0~15.7。I/O地址中没有不存在的输入与输出。 以配原则对模拟量模块同样适用。 对于S7-300系列,由于生产时间、软件版本的不同,安装于PLC主机上的部分I/O模块,CPU的地址分配可能会出现断续的情况,CPU仍然按照大开关量输入/输出进行分配,当使用32点以下模块时,多余的地址不可以再使用。但是,、对于远程I/O单元,地址总是连续分配的。 3.用户设定型 用户设定型分配方式是一种可以通过编程软件进行任意定义的地址分配方式。其特点如下: ①PLC的每一个安装位置的地址可以任意定义,I/O点数量无规定,但同- PLC中不可以重复。 例如:当每一个安装位置安装了32点输入模块后,用户可以分配给该模块I0.0~13.7的地址;也可以分配其他任意地址,如I8.0~I11.7等。但在分配I0.0~13.7后,后续的同类模块中不可以再使用地址I0.0~13.~。 ②输入与输出的既可以是间断的,也可以不按照次序排列。 例如:PLC的1安装位中安装了32点输入模块,地址定义为I8.0~111.7;2安装位中再安装32点输入模块,地址定义为I0.0~13.7,这样的分配同样也允许。 以配原则对模拟量模块同样适用。 |
数据块用来存放用户程序使用的共享数据,DBX是数据块中的数据位,DBB、DBW和DBD分别是数据块中的数据字节、数据字和数据双字。
背景数据块用来为FB(功能块)提供参数,DIX是背景数据块中的数据位,DIB、DIW和DID分别是背景数据块中的数据字节、数据字和数据双字。
DI和DB是两个plc寄存器的区别码。DB表示的是共享数据。DI表示的是背景数据。背景数据块一般只能用作调用它的FB里,但DI也可以打开和共享使用,只是使用的位置只能是独立于打开它的那个块里,而且只能打开一的DI。不能像DB数据打开一样用作全局共享。
由于梯形图是一种程序表示的形式,并非由硬件构成的控制电路,因此在画梯形图时,应注意和普通控制电路的不同之处,plc编程时应该遵循以下基本原则:
(1)外部输入/输出继电器、内部继电器、定时器、计数器等软器件的逻辑触点可以多次重复使用,*用复杂的程序结构来减少触点的使用次数。
(2)梯形图的每一行都是从左母线开始,线圈接在右边。触点不能放在线圈的右边,而在继电接触器控制电路中,触点可以加在线圈的右边,这在PLC的梯形图中是不允许的。如图1 (a)表示。从图中不难看出编程者的意图是,当触点0.00、0.01、0.02都闭合时,线圈10.00被驱动得电。但在梯形图中由于触点不能与右母线相连,因此将图1 (a)转换成图1 (b)所示格式,既满足了程序的上述功能,又符合梯形图的编程规则。
(a)不符合编程规格的梯形图;(b)符合编程规格的梯形图
(3)线圈不能直接与左母线相连。由图2 (a)不难看出编程者的意图是,使程序一运行10.00、10.01线圈即被驱动。要达到这样的目的,可以使用一个程序中未被调用的内部继电器(如200.00)的常闭触点或者特殊继电器25*(常通继电器)的常开触点来驱动它们,既满足了编程者的功能要求,又不违背梯形图编程规则,如图2 (b)所示。
(4)同一编号的线圈在同一个主程序中连续使用两次称为同名双线圈输出。同名双线圈输出容易引起输出的不确定,编制程序时应尽量避免同名双线圈输出的情况,如何避免同名双线圈输出可以参考图3所示的方案。
(a)原梯形图;(b)运行效果;
在梯形图程序中一般应尽量避免同名双线圈输出,因为这样会造成输出的不确定,如图 (a)所示为同名双线圈输出梯形图。在编程语法上,该梯形图并不违反规定,但在实际运行过程中,其结果有时会和编程者的期望大相径庭。不难看出(a)图中编程者的意图是,当支路1中的触点0.00、0.01都闭合时、或支路2中的触点0.02、0.03都闭合时、或两条支路中的所有触点都闭合时,线圈10.00都能被驱动。但在实际执行中,当触点支路1中的触点0.00、0.01闭合,而支路2中的触点0.02、0.03断开时,线圈10.00并不得电,结果如图 (b)所示。这是因为PLC采用循环扫描的处理方式。在输入采样后,*处理器对梯形图自上而下进行运算。在运算一阶电路时,线圈10.00是被驱动得电的,但运算到二阶电路时,线圈10.00因触点0.02、0.03断开而不被驱动。在I/O刷新时,以后的运算为准进行输出,因而此时的线圈10.00是失电状态的。
(5)梯形图程序必须符合顺序执行的原则,即从左到右,从上到下地顺序执行,如不符合顺序执行原则的梯形图程序是无法输入编程软件的。如图4 (a)所示的桥式结构的梯形图,不难看出程序设计者的意图是,当支路l的所有触点均闭合、或支路2的所有触点均闭合、或支路3的所有触点均闭合、或支路4的所有触点均闭合时,线圈10.00被驱动得电。但此类梯形图由于不符合编程规则而无法输入编程软件或手持编程器,应将图4(a)转换成图4 (b)所示,才能利用编程软件或手持编程器写入PLC存储器中。
(a)桥式电路图;(b)转换后的梯形图
(6)梯形图中串联、并联触点使用的次数没有限制,可无限次地使用,如图5所示。
(7)同一程序中两个或两个以上不同编号的线圈可以并联输出,
西门子plc梯形图主要由母线、触点、线圈或用方框表示的指令框等构成的,如图1所示。
图1 西门子plc梯形图
(1)母线
在西门子PLC梯形图中,左右两侧的母线分别称为左母线和右母线,是每条程序的起始点和终止点,也就是说梯形图中的每一条程序都是始于左母线,终于右母线的。
一般情况下,西门子PLC梯形图编程时,习惯性的只画出左母线,省略右侧母线,但其所表达梯形图程序中的能流仍是由左母线经程序中触点I0.1、I0.2、线圈Q0.0等至右母线中的过程,如图2所示。
图2 西门子PLC梯形图编程中的母线
(2)触点
在西门子PLC梯形图中,触点可分为常开触点和常闭触点,其中常开触点符号为“-| |-”,常闭触点符号为“-|/|-”,可使用字母I、Q、M、T、C进行标识,且这些标识一般写在其相应图形符号的正上方,如图3所示。
图3 西门子PLC梯形图中的触点
(3)线圈
西门子PLC梯形图中的线圈符号为“-( )-”,可使用字母Q、M、SM等进行标识,且字母一般标识在括号上部中间的位置,如图4所示。
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 |