西门子6ES7223-1BF22-0XA8产品信息
S7-200 PLC采用的是自动分配型地址分配方式。CPU模块本身带有集成的I/O,这些I/O点具有固定不变的地址,地址从字节0开始分配;通过扩展模块,PLC可以增加I/O点,扩展模块布置在CPU模块的右侧。扩展模块的I/O地址决定于模块的类型与模块在扩展连接中的安装位置。
S7-200 PLC的地址分配的特点如下:
①S7-200 PLC采用的是自动分配型分配方式,地址连续、有序。
②开关量输入/输出的地址以字节为单位进行分配,当模块输入/输出点的数量不为整字节时,该字节多余的输入/输出点不可以再作为实际输入/输出点分配给后续的其他模块,但可以作为内部标志位使用。
③模拟量输入、模拟量输出的地址是以字为单位各自独立分配的,而且少需要分配2个字(即
使模块只使用1点模拟量输入/输出),如果模块本身无物理输入/输出与之对应,多余地址不但不可
以分配给后续模块,而且也不可再作其他用途。
2.地址分配实例
[例1]某配套S7-200 PLC的控制系统,采用CPU224模块,并选配一个4/4点输入/输出混合模块、一个8点输入模块、一个8点输出模块与两个4/1点模拟量输入/输出混合模块,其输入/输出地址的分配如图8-3.1所示。
(1)开关量输入地址的分配
CPU模块集成的输入点为14点,占用2个字节。其中,IO.O~I1.5为物理输入,可以连接外部输入信号;I1.6、I1.7为CPU模块占用的多余输入,既不可以连接输入信号,也不能分配给后续单元。
从CPU模块向右,PLC安装的个具有输入点的扩展模块为4/4点输入/输出混合模块,需要占用1个字节的输入地址,地址从I2.0开始进行分配。其中,I2.0~12.3为物理输入,可以连接外部输入信号;I2.4~ 12.7为CPU模块占用的多余输入,不能再分配给后续单元。
PLC安装的第2个扩展模块为8点输入模块,占用1个字节的输入地址,地址从I3.0开始进行分配,无多余输入。
(2)开关量输出地址的分配
CPU模块集成的输出点为10点,占用2个字节。其中,QO.O~Ql.l为物理输出,可以连接外部输出信号:Q1.2~Q1.7为CPU模块占用的多余输出,不可以连接外部输出信号,也不能分配给后续单元,但在PLC编程时可以作为内部标志位使用。
从CPU模块向右,PLC安装的个具有输出点的扩展模块为4/4点输入/输出混合模块,同样需要占用1个字节的输~址,地址从Q2.0开始进行分配。其中,Q2.O~Q2.3为物理输入’可以连接外部输出信号;Q2.4~Q2.7为CPU模块占用的多余输出 ,不能再分配给后续单元,但在PLC编程时同样可以作为内部标志位使用。
PLC安装的第2个具有输出点的扩展模块为8点输出模块,占用1个字节的输出地址,地址从Q3.0开始进行分配,无多余输出。
(3)模拟量输入地址的分配
CPU224模块无集成模拟量输入点,不占用模拟量输入地址。
从CPU模块向右,PLC安装的个具有模拟量输入的扩展模块为4/1点模拟量输入/输出混合模块,以字为单位,4点模拟量需要占用8个字节,地址从AIWO开始进行分配,依次为AIWO、AIW2、 AIW4、 AIW6。
PLC安装的第2个具有模拟量输入的扩展模块仍然为4/1点模拟量输入/输出混合模块,同样占用8个字节,地址从AIW8开始连续分配,依次为AIW8、AIWIO、AIW12、AIW14。
(4)模拟量输出地址的分配
CPU224模块无集成模拟量输出点,不占用模拟量输出地址。
从CPU模块向右,PLC安装的个具有模拟量输出的扩展模块为4/1点模拟量输入/输出混合模块,以字为单位,l点模拟量需要占用2个字节,但由于模拟量地址分配的小单位是2个字,因此,模块实际需要占用2个字(4个字节)。模拟量输出地址AQWO具有物理输出,AQW2被占用,不可以分配给后续模块,也不可再作其他用途。
PLC安装的第2个具有模拟量输出的扩展模块仍然为4/1点模拟量输入/输出混合模块,模块同样实际需要占用2个字(4个字节),地址从AQW4开始分配,AQW4具有物理输出,AQW6被占用,不可以分配给后续模块,也不可再作其他用途。
PLC是一种专用微机,但用它来实现继电接触控制系统的功能时,就勿须从计算机的角度去研究,而是将PLC的内部结构等效为一个继电器电路。在PLC内部的一个触发器等效为一个继电器,通过预先编制好并存人内存的程序来实现控制作用的,因此,对使用者来说,可以不去理会微机及存储器内部的复杂结构,而是将PLC看成是由许多继电器组成的控制器,但这些继电器的通断是由软件来控制的,因此称为“软继电器”。
任何一个继电器控制系统,都是由输人部分、逻辑部分和输出部分组成,如图4-4-3所示。
输人部分是由一些控制按钮、操作开关、限位开关、光电管信号等组成,它接收来自被控对象上的各种开关信息,或操作台上的操作命令。
逻辑部分是根据被控对象的要求而设计的各种继电器控制线路,这些继电器的动作是按一定的逻辑关系进行的。
输出部分是指根据用户需要而选择的各种输出设备.如电磁阀线圈、接通电机的各种接触器、信号灯等。
当将PLC:看成是由许多“软继电器”组成的控制器时,可以画出其相应的内部等效电器电路.如图4-4-4所示。
由图4-4-4可以看出,PLC的内部等效电路(如图中的大框线内所示)分别与用户输人设备和输出设备相连接。输人设备相当于继电器控制电路中的信号接收环节,如操作按钮、控制开关等;输出设备相当于继电器控制电路中的执行环节,如电磁阀、接触器等。
在PLC内部为用户提供的等效继电器有输人继电器、输出继电器、辅助继电器、时间继电器、计数继电器等。
输人继电器与PLC的输入端子相连接,用来接受外部输人设备发来的信号,它不能用内部的程序指令控制。
输出继电器的触头与PLC的输出端子相连接,用来控制外部输出设备,它的状态由内部的程序指令控制。
辅助继电器相当于继电器控制系统中的中间继电器,其触头不能直接控制外部输出设备。
时间继电器又称为定时器0个定时器的定时值确定后,一旦启动定时器,便以一定的单位(例10 ms)开始递减(或递增),当定时器中设定的是时值减为0(或增加到设定值)时,定时器的触头就动作。
计数继电器又称为计数器。每个计数器的计数值确定后,一且启动计数器,每来一个脉冲。计数值便减(或加)1,直到设定的计数值减为0(或增加到设定值)时,计数器的输出触头就动作。
值得注意的是,上述“软继电器”只是等效继电器,PLC中并没有这样的实际继电器,“软继电器”的线圈中也没有相应的电流通过,它们的工作完全由编制的程序来确定。
你用的是什么类型的计数器?比如, 有加法计数器(它们只能正向计数1,2,3,...). 它们在英语中被缩写为CTU(count up, 升值计数), CNT, C, 或者CTR. 有减法计数器(它们只能逆向计数9,8,7,...). 当它们作为一条独立的指令时, 通常被叫做CTD(count down, 减值计数). 还有双向计数器(它们可双向计数1,2,3,4,3,2,3,4,5,...). 当它们作为一条独立的指令时, 通常被叫做UDC(up-down down counter, 加-减计数器).
许多厂家只有一种或两种类型的计数器, 但这些计数器应能完成加计数, 减计数或双向计数. 是不是有些混淆了? 难道就没有一相标准吗? 不要担心, 计数器就是计数器, 不要管生产商怎样称呼它们.
更容易引起混淆的是, 大多数的生产商还加入了一定数量的高速计数器. 通常叫它们HSC(high-speed counter),CTH(CounTer High-speed?)或者别的名称.
典型的高速计数器是一个"硬件"设备. 而上面所列的普通计数器多是"软件"计数器. 换句话说, 它们并不是真正存在于PLC中, 它们只是用软件模拟的计数器. 而硬件计数器却是真正存在于PLC中的, 它们不依赖PLC的扫描时间.
按照拇指理论(rule of thumb), 一般情况下多使用普通(软件)计数器, 除非所要计数的脉冲比2倍的扫描时间还要快. (例如扫描时间为2ms, 而所计脉冲每4ms或更长时间才来一次, 那么此时我们使用软件计数器. 如果脉冲间隔小于4ms(例如3ms), 那么使用硬件(高速)计数器. (2*扫描时间 = 2*2ms = 4ms)
要使用计数器, 我们必须知道以下三件事情:
1. 我们要计数的脉冲来自哪里. 典型情况下, 它来自一个输入端子. (例如将一个传感器接到输入端0000)
2. 在作出响应前, 我们要计多少次. 例如计数5个玩具装入后开始打包.
3. 何时/怎样复位计数器, 以便让它重新计数. 例如, 我们计数5个玩具后, 将计数器复位.
当程序在PLC上运行时, 程序通常会显示当前或"累计"值, 以便于我们观察当前的计数值.
典型计数器的计数范围为0到9999, -32768到+32767, 或0至65535. 为什么都是些这么古怪的数字呢? 因为大多数PLC都是用的16位计数器. 0-9999是16位BCD(binary coded decimal, 二进制编码的十进制)码, -32768到32767和0到65535是16位二进制码, 我们在以后的章节会解释这是什么意思.
下面介绍一些我们将会碰到的指令符号(不同的厂家会有所不同), 并说明它们的用法. 记住, 它们虽然看起来不同, 它用法基本都是相同的. 如果我们会设置一个计数器, 我们就会设置任意的计数了.
在这个计数器中, 我们需要2个输入. 一个接复位线. 当该输入端为ON时, 当前(累积)计数值将被清零.
第二个输入接的是我们要计数的脉冲.
例如, 我们要对经过传感器前面的玩具计数, 我们将传感器接到输入端0001, 然后将地址为0001的常开触点接在脉冲线的前面.
Cxxx是计数器的名称. 如果我们想叫它计数器000, 那么在这里我们叫它"C000".
yyyyy是我们在要求PLC做出响应前所要计的脉冲数. 如果我们在将玩具打包前要计5个玩具, 那么我们要该值改为5. 如果我们要计100个玩具, 那么就将该值改为100, 等等. 当计数器计数完毕(例如, 我们计数了yyyyy个玩具), 它将一组独立的触点变为ON, 我们也将它标为Cxxx.
注意, 计数器的累加值仅在脉冲输入的上升沿发生变化.
在上面的梯形图中, 我们将计数器(叫做计数器000)设置为从输入0001计数100个玩具, 然后使输出500变为ON. 传感器0002将计数器复位.
下面是我们会碰到的一个双向计数器. 我们使用于上例相同的缩写(例如UDCxxx和yyyyy).
在这个双向计数器中, 我们需要使用3个输入端. 复位输入的功能与上例相同. 但是, 对于脉冲输入有两个.一个是加计数, 一个是减计数. 在这个例子中, 我们把这个计数器叫做UDC000, 并且给它一个预设值1000. (我们共要计数1000个脉冲) 在输入端, 我们给输入端0001接上一个传感器, 当它检测到目标时, 使输入端0001变为ON, 给输入端0003也接上一个相同的传感器. 当输入端0001变为ON时, PLC正向计数, 当输入端0003变为ON时, PLC逆向计数. 当计数值到达1000时, 输出端500变为ON. 再次提醒注意的是, 计数器的累计值仅在脉冲输入的下降沿改变.梯形图如下所示.
还有一件事要特别注意, 在大多数的PLC中计数器和定时器的名称是不一样的. 这是因为它们通常使用相同的寄存器. 虽然我们还没有学到定时器, 但我们必须记住这一点, 因为它的确很重要.
好了, 上面讲的计数器可能有点难以理解, 但只要我们用过一次, 它们看起来就容易多了. 它们的确是一种必要的工具. 它们也是"非标准"基本指令之一. 但是,有一点要记住, 不管是哪个厂家生产的, 用法都是一样的.