地址是指PLC软器件。是PLC操作系统划分与管理的内存区。用于存储PLC程序数据。并使用与电器相关的含义命名,如某某继电器、某某定时器、某某计数器,某某数据存储器等。其实,这些都只是内存区中的一个位、字节或字。这些位、字节、字的值,即代表着这些器件的状态。也正是在物理上这些器件只是内存区的位、字节、字或位,所以才称之为软器件。
PLC软器件分为I/O软器件与内部软器件。
PLC技术的发展,其软器件的类型及数量,特别是内部器件现已大为增加。所以,不少PLC多已不用继电器(RELAY)称谓它了;而改称它为区(AREA);突出了PLC信息处理的功能。
1.I/O软器件
(1)开关量用的输入、输出继电器
开关量用的输入、输出继电器是指可与实际开关量输入、输出模块上的点相对应的那部分内存区。它决定了PLC可能配置的最多I/O(开关量)点数。西门子PLC称其为过程映射寄存器(process-image register),指的也是与输入、输出点有对应关系的内存区。
输入继电器与输入点对应。一般讲,当PLC输入刷新时,输入暂存器的状态即映像到输入继电器中。输入继电器为只读存储器,不能用程序改变它的内容,而只能被输入点的状态所映像。所以无输入点与其对应的,如其地址是固定编排时,一般不能作为它用。
输出继电器与输出点对应。一般讲,当PLC输出刷新时,输出继电器的状态被映像到输出内部电路的锁存器。锁存器把状态保持,直到下一个刷新的到来。锁存器再经输出电路传递,即成为输出点上的输出。输出继电器是可写的,以便产生所要求的输出;也还是可读的,以用于反馈控制。对用户程序,它是可读可写的存储单元。所以,若无输出点与其对应的也可另做他用。
这里的点是指二进制数的一个位(bit),仅1、0两个取值。用它代表开关触点,或继电器的触点及线圈。1代表有关开关触点通(ON)或有关继电器线圈得电(工作、ON)。0代表这个触点断,或这继电器线圈失电(不工作、OFF)。
要使用这些“点”,必须弄清它是怎么编址的。这个编址,各PLC厂商多不尽相同。这也是PLC使用的一个难点。
欧姆龙PLC编址是按字、位计算,先指定字(有时也称通道(channel),但施耐德PLC则把这里的位称通道)地址,再指定在字中的位地址,见图1-11a。
图1-11 欧姆龙PLC地址含义
1—字或通道地址 2—位地址(00到15) 3—通道地址 4—位地址0001.03
如地址为0001.03,则表示为0001通道(字)的03位,见图1-11b。
西门子PLC编址是按字节、位计算,先指定字节地址,再指定在字节中的位地址,如图1-12所示。
如图1-12所示,这里地址I3.4,其含义是输入点(I为输入点编址的前缀),3为字节地址,4为字节3中的第4位。如果为输出点,则所加的前缀为“Q”。
三菱PLC的输入(前缀加X)、输出点(前缀加Y)是以位(bit)编址,如图1-13所示。都是从0到可能的最大地址。并按八(对小型机)或十六(对中、大型机)进制进位。但没有字或字节地址。当多位使用时,则应在其前加上使用多少位的指定。如K1X0,指的是X0~X4,4个位。再如K2X0,指的是X0~X7,8个位。其余类推。这样,如按字节、字使用时,虽较麻烦,但也有其灵活性。可使这些点的使用不受字节、字的局限。
图1-12 西门子PLC地址含义
图1-13 三菱PLC位元件多位使用时的指定
西门子PLC使用字节、位编址。要用字节,则前缀加QB;要用字,则前缀加QW;要用双字,则前缀加QD。但编号仍按字节计。如用QW0,则含有QB0、QB1;用QW2则含QB2、QB3;如用双字时QD0,则含有QB0、QB1、QB2、QB3。可知,如用了QW0,不能再用QW1,否则,QB1地址将重复使用。
和利时PLC开关量I/O软器件地址格式为:先是百分号(%,施耐德等PLC也如此),接着加地址类型标识(输入为I、输出为Q、中间存储区为M),最后为地址编号。地址编号先是位(通道)、字节、字、双字标志,然后加数码号。这里位标志为X,字节标志为B,字标志为W;双字标志为D。当使用“位”地址时,则首先要指定其所在的字节地址,然后再指出其在字节中的位地址。具体方法是用小数表示,整数部分标出是哪个字节,小数部分标出是哪个“位”。如图1-14所示。
如图1-14所示,%IX3.4指的是输入第3字节的第4位。
图1-14 和利时PLC地址编号
使用PLC,一定要了解输入、输出继电器的情况。要清楚,它有多少输入输出继电器,怎么编号,与输入、输出点的物理位置怎么对应(在模块上有相应标号)等,否则无法编程,也无法接线。
应该强调的是,不同PLC的I/O编址多不完全一样。为了准确使用这些地址,最好仔细阅读有关说明书。
(2)模拟量I/O地址
除了开关量I/O模块,还有模拟量I/O模块。对欧姆龙公司的模块式PLC,它的编号由其上的机号设定开关设定,与模块安装位置无关。要注意的是,所设的机号不能重复。机号设定后,将指定相应的通道及数据存储器(DM,内部软器件的一种,见后叙述)归其使用。至于这些通道与数据存储器的含义及使用,可参考有关说明书。而欧姆龙公司小型机的模拟量单元,是与开关量单元一样,按安装位置统一编址,不作机号的设定。
三菱PLC模拟量输入、输出模块也是独立编址。用常数K指定模块号及在模块中的通道号。这里的通道是指那一路的模拟量。
西门子公司S7-300PLC模拟量模块与开关量模块都称为信号模块,无单元号。这两种模块都依其所在机架及槽位统一编址。只是模拟量加的前缀为IW(模入)或QW(模出),每一路要占一个字、两个字节。
表1-3表示西门子S7-300机配置4个机架时的编址情况。从表1-3可知,它是定机架、定槽位编址的。如有一个8路的模入模块安装在机架1、槽位6,其各路地址分别为IW416、IW418……直到IW430。如这个槽位安装的是4路模出模块,则其各路地址分别为QW416、QW418、QW420及QW422。如这个槽位安装的是16点开关量输入模块,则其地址为IB40、IB41两个字节。
表1-3 S7-300机地址分配
应该强调的是,不同PLC的模拟量I/O编址是不完全一样。为了准确使用这些地址,要仔细阅读有关说明书。
(3)其它地址
除了上述地址,还有用于通信等智能模块的数据缓存区。这些多与网络等模块有关。欧姆龙用链接继电器(LR)或可任意指定的一些数据存储器(DM);三菱称用指定的内部继电器(M)、数据存储器(D)、链接继电器(B)及链接寄存器(W);西门子可按有关模块的说明书使用。这些多与所用的模块与网络有关。
总之,I/O软器件总是与PLC使用的各种模块或插件相关,它的CPU就是通过这些软器件读写模块,与这些模块通信。
2.内部软器件
(1)内部辅助继电器
内部辅助继电器的数量一般要比输入、输出继电器多得多。除了用做中间继电器,还用于数据处理。
欧姆龙内部辅助继电器也分配有通道号。每个通道也是16个继电器。可以通道(字)为单位使用,也可以继电器(位)为单位使用。
西门子公司、三菱公司PLC的内部继电器,就加有前缀M。前者是以字节、位编号,多位使用方法同输入、输出继电器;后者与它的输入、输出点类似,也是按位编号,但按十进制进位。多位使用,也与其输入、输出继电器相同。
使用PLC时,对选用的PLC的内部辅助继电器的情况也要弄清楚,否则也无法设计程序。它的数量非常多,为编程提供了很大的方便。
内部辅助继电器有的可设定为掉电保持的,即PLC失电后,其内容保持不变。只是欧姆龙专有此类内部辅助继电器,并特称之为保持继电器,加前缀HR。
(2)定时器
它类似于继电电路用的时间继电器,用于延(定)时控制。它有线圈、有触点(标志位),还有寄存器(存放定时器现值、设定值)。定时的设定值可为常数,也可为某个(字)地址,再用这个地址的内容作为设定值。
对于欧姆龙PLC,当定时器的线圈OFF时,没有输出,其常开触点为OFF,常闭触点为ON,其寄存器的当前值为设定值。当定时器的线圈ON时,它的寄存器的当前值从设定值开始,每经历一个单位设定时间减1。当减到0时,即产生输出,其常开触点从OFF转为ON,常闭触点从ON转为OFF。任何时候,一旦其线圈OFF,其输出立即停止,其常开触点从ON转为OFF,常闭触点从OFF转为ON,寄存器的当前值又变为设定值。
而对三菱、西门子PLC,情况略有不同。当定时器的线圈OFF时,也没有输出,其常开触点为OFF,常闭触点为ON,但其寄存器的当前值为0。当定时器的线圈ON时,它的寄存器的当前值,从0开始,每经历一个单位设定时间加1。当加到设定值时,即产生输出,其常开触点从OFF转为ON,常闭触点从ON转为OFF。任何时候,一旦这线圈OFF,输出立即停止,其常开触点从ON转为OFF,常闭触点从OFF转为ON,寄存器的当前值又变为0。
欧姆龙PLC的设定值用BCD码设定。设定范围为0000~9999。新型机也可用十六进制码,设定范围为0~65535。三菱、西门子PLC均用十六进制码。
普通定时器单位设定时间值为0.1s,故其最大延时可达999.9s,或6553.5s。如高速定时,其单位设定值可能为0.01s、0.001s,故其最大的定时值为99.99s、9.999s,或655.35s、65.535s。如处理成低速定时,其单位设定值可能为1s、1min,故其最大的定时值为9999s、9999min,或65535s、65535min。
这个单位设定时间的不同处理,不同厂商有不同的办法。
欧姆龙是用不同的定时指令处理。用TIM指令时,为100ms,而用TIMH指令时,为10ms,用TIMHH指令时,为1ms。
西门子则用不同的编号处理,有的编号的定时器单位设定时间小,而有的大。如S7-200,其单位时间设定值与定时器编号为
1ms T32,T96
10ms T33~T36,T97~T100
100ms T37~T63,T101~T255
三菱PLC也类似。如FX2N,其单位时间设定值与定时器编号为
1ms T246~T249
10ms T200~T245(www.xing528.com)
100ms T0~T199
以上介绍的定时器是ON延时的。西门子PLC还可用不同指令处理成其它工作方式,如ON即时,而OFF延时等。而如用欧姆龙、三菱PLC要作这样处理,则只好通过程序,用辅助继电器帮助解决。应该指出,PLC定时器的定时控制都是通过程序实现的。由于输入响应延时及扫描工作方式的影响,定时控制不是很准确,可能与设定值差一个扫描周期。扫描时间若大过单位设定值,只有若干个定时器(可中断工作的)才能准确工作。
PLC的定时器多为掉电不保持的,掉电后停止计时,其已计入的值不保留,复电时,再从头计时。但有的也可掉电保持,即可累计计时。视不同的PLC、不同编号及不同的设定而定。
提示:定时器怎么用,与相应的定时指令的使用有关,这在介绍定时指令时还要作进一步说明。有的PLC不用定时器指令,而使用定时功能块,则没有或不用这个定时器。
(3)计数器
它类似于继电电路用的计数器,用于记录脉冲输入信号的数量,即信号从OFF到ON的次数。它有线圈,有触点(标志位),还有寄存器(存放计数器现值)。有两种计数,一为单向计数,二为可逆(双向)计数。
单向计数:有增计数与减计数。欧姆龙PLC单向计数都是减计数。当输入脉冲输入信号从OFF到ON变化一次,计一次数。计数器的寄存器减1。而开始时,计数器的寄存器为设定值,当其值减到零时,则产生输出。其常开触点ON,常闭触点OFF。
西门子PLC单向计数器有增计数的,也有减计数的。当输入脉冲输入信号从OFF到ON变化一次,计一次数,计数器的寄存器增1或减1。对于增计数,其开始时计数器的寄存器的值为0,当增大到等于或大于设定值时,则产生输出(计数仍可进行,直到最大值65535)。其常开触点ON,常闭触点OFF。对于减计数,开始时计数器的寄存器为设定值,当其值减到0时,则产生输出。其常开触点ON,常闭触点OFF。
三菱PLC单向计数则是增计数。当输入信号从OFF到ON变化一次,计一次数。计数器的寄存器增1。而开始时,计数器的寄存器为0,当其值增到设定值时,产生输出。其常开触点ON,常闭触点OFF。并不再计数。
计数器一般都是掉电保持的。即使掉电,计数值也不变。但在任何时候,送入复位信号(ON),计数器的寄存器都恢复成原始状态,并停止计数,不再输出。
除了单向计数器,还有双向,即可逆计数器。欧姆龙、西门子PLC用相应指令实现单向或双向计数功能。而三菱PLC则用编号指定。有的编号只能单向计数,而有的编号可双向计数,并用特殊继电器指定计数方向。同时双向计数总是双字长的(8位十六进制数)。
欧姆龙PLC的设定值、计数值用BCD码设定。范围为0000~9999。但它的新型机也可用十六进制码,设定为0~65535。三菱、西门子PLC均用十六进制码。
提示:计数器怎么用,与相应的计数指令的使用有关,这在介绍计数指令时,还要作进一步说明。有的PLC不用计数指令,而使用计数功能块,则没有或不用这个计数器。
(4)数据存储(寄存)器
PLC进行控制以及计数,总要作一些数据处理,用一些特殊单元时,如模拟量入、模模拟量出单元,还要作一些数据计算。所以,各种PLC也都备有存储大量数据的专门存储单元。欧姆龙PLC用的标号为DM;三菱PLC用的标号为D;西门子的S7-200标号为V。
欧姆龙、三菱PLC的存储器一般按字计(编号)。随着技术的发展,现在PLC的这个存储器容量不断增大。可达几K、几十K,以至于要用兆计。
数据存储器中的位(bit)、数位(digit)、字节(Byte)、字(word)及双字(D)间的关系处理,各PLC厂商是不大一样的。
图1-15a所示为欧姆龙PLC与三菱PLC之间的关系。它的地址以字计。并多以字作为处理单位。没有特定双字概念,两个相邻的字可处理成双字,这时,高位存于高地址,低位存于低地址,并以低位字的地址代表这双字地址。
图1-15 字与双字组成
而西门子PLC数据存储器是按字节计(编号)。它讲的数据存储器多少K,都是以字节计。它可以字节为单位使用,使用时用QB加标号标注,如QB0、QB1。也还有字、双字为单位使用,但编号仍以字节计。如用QW0,则含QB0及QB1;用QW2则含QB2及QB3等。如按双字使用,则用QD0(含QW0、QW2)、QD4(含QW4及QW6)等。显然,如用了QW0,再用QW1,则其中的QB1将重复。如不是特殊需要,应避免出现此情况。
而西门子的字、双字存数正好与上述相反,它的高地址、存低位,低地址、存高位。如VB100=11,VB101=22,VB102=33,V103=44,则VW100为1122,VW102为3344,而VD100为11223344。具体见图1-15b。
存储器除了存储数据,还可存字符,一般一个字节存一个字符,按十六进制ASCII码存。这种按字节编号,高、低位数据存储与日本、美国的PLC不同,有其麻烦之处。但它可灵活进行种种转换处理,也有其好处。
提示:数据存储器多用数据处理,故多不能对其中的位(bit)进行逻辑操作。过去,只有西门子PLC可以这么做。如今,欧姆龙、三菱的新型机也可用相应指令进行操作了。
(5)特殊继电器、特殊数据存储器
特殊继电器和特殊数据存储器也是一种内部辅助继电器,只是各有其特殊用途。而且,各厂商PLC或同一厂商PLC不同机型,都不尽相同。大体上这些用途有PLC状态辅助继电器、时钟用辅助继电器、标志用辅助继电器等。很显然,只有对其有相应了解,才能编写好相应程序。表1-4列举部分PLC的部分特殊继电器的编号及其功能。
表1-4 部分PLC的部分特殊继电器的编号及功能
这样的特殊继电器现在已越来越多了。以欧姆龙的小型机为例,其特殊继电器就有12.5通道(字)、200个继电器。其编号从244开始,直到255的前半个通道。而CJ1机则多得多。故干脆不称其为特殊继电器,而称为标志(Condition Flag,CF)及辅助区(AR)。
西门子的S7-200机也有相应的特殊继电器。它的前缀为SM,称为特殊存储器位。三菱PLC的特殊继电器也不少,如FX机从M8000~M8255都是特殊辅助继电器。这些内容实在太多,详细情况请参看有关说明书。
除了特殊继电器,还有特殊数据存储器,多用其作系统的种种设定。如欧姆龙小型机的DM6600~6614:用作起始处理设定;可把PLC设成起始为编程、运行或监控模式及内部继电器上电时是清零。欧姆龙辅助继电器(AR)大多数也与这个存储器作用相同。
西门子也有很多类似的特殊功能数据存储器,用以实现各种特殊功能。如S7-200机,
它的SM区有近200个字节,除了特殊继电器,还有更多的是用作特殊数据存储器。用于通信、高速计数、定时中断等设定。
三菱的FX机从D8000~D8225的数据寄存器,就是这类特殊的数据存储器。
对这些特殊继电器及存储器,最好备有相应手册,以便使用时查找。好在所有编程软件都有这方面的帮助,编程时可随时查用。所以,这里就不再详细介绍了。
(6)标识(P、I、N)
标识也称为指针,用以标识在程序所标示的指令的地址。这是三菱PLC用的内部器件。在使用跳转指令、调子程序(用P)或使用程序中断(用I)时,要用到它。使用时,把它放在梯形图左母线的外(左)边。
西门子PLC的标识用指令(LBL)指明相应序号实现。仅用于程序跳转。它的子程序调用子程序号。欧姆龙无这样的内部器件,也没有标识一说,它的跳转及子程序调用均使用指令。此外,三菱还有N,用以指定主控指令(见后)的编号。
(7)其它
以上介绍的内部器件,当然不是PLC内部器件的全部。而且,各厂商、各型号PLC的内部器件也不完全相同,有的还有别的什么名称。
再就是西门子中、大型机以及新型的S7-1200小型机没有上述意义上的数据存储器(DM、D或V),只有数据块(DB)。数据块功能很强,用起来也很方便。但必须先定义,然后才能使用。这样处理方法与将要介绍的PLC变量本质上是完全相同的。
了解了PLC的软器件,即PLC的数据存储区,也就了解了PLC指令的操作数。至于这些操作数怎么被指令操作,将在介绍PLC的指令时作具体介绍。
提示:由于篇幅限制,以上只是简要地介绍本书涉及的PLC的一些软器件。而全面、系统地弄清所使用的PLC的软器件,对正确使用该PLC,编写好高质量的PLC程序,是至关重要的。因此,在PLC实际编程过程中,建议要多查阅有关PLC的编程手册,切实把有关软器件弄懂、弄清。
3.间接地址
这与计算机C语言的指针类似,用软器件做指针,其内容作为地址。即实际使用的数是用这个“指针”指向地址的内容,而不是这个“指针”本身的值。具体使用有如下3个办法:
(1)用数据存储器作指针
欧姆龙PLC是用DM。在调用它的DM之前加“∗”或“@”号,即说明为间接地址。前者地址以BCD码计,后者以十六进制计。如“∗DM100”,而DM100的值为十进制数100,则实际地址是DM0100,DM0100的值才是真正的操作数。再如“@DM100”,而DM100的值为十六进制数100,则实际地址是DM0256,DM0256的值才是真正的操作数。
(2)用变址器(或索引寄存器)作指针
变址器也是软器件,但专用作指针,以对PLC软器件作间接访问。如欧姆龙CJ1机共有16个索引寄存器,地址从IR00~IR15。所加的前缀为IR。
提示:索引寄存器为双字长,存储的地址为绝对地址(absolute memory addressesinI/Omemory)。可存字(word)地址,也可存储位(bit)地址。存位(bit)地址时,高7个数位(digit)存字(通道)地址,低数位存储位地址。对其赋值,不能简单地用MOV之类指令,要用相应的地址赋值指令,即MOVB(560)指令。
三菱称之为变址寄存器V及Z,各为16位(bit)。可单独使用(只使用V),也可合起来使用(V上位数,Z下位数,并以Z的地址代表其地址)。用双字时,可访问的数据区几乎不受限制。
(3)用双字做指针
西门子PLC就是这样,用双字先赋值软器件的实际内存地址(被赋值的地址前加&)。然后用这个双字做地址指针,作间接地址。只是在指针前加“∗”。其办法与C语言用的办法相同。只是,它只能以字节为单位访问。
4.符号地址(Symbol)
上述软器件或间接地址的名称主要是前缀字母与数字,看不出它的意义。用它做操作数编写的程序,可读性较差,不易理解。虽然可对其加注,但采用了有一定含义的符号与实际地址(软器件)关联,并在程序中用这个符号地址代表实际地址,则更方便些。
同时,使用符号地址还便于程序更改,如地址变动,可以不改程序,只需重新编辑符号与地址的关联就可以了。此外,使用符号地址还便于程序移植与重用,为用户建立功能库、功能块库或程序库提供了可能。所以,目前PLC编程很少不用符号地址。
使用符号地址的另外还有如下重要好处:
1)可分别定义符号的作用范围,便于程序数据管理。
2)设定数据类型,作高级设定时,还可设定数组,便于程序数据的正确使用。
符号地址是用编程软件中符号编辑器编辑。不同厂商软件有不同的编辑器。但都是用它添加符号名称,确定数据类型,进行地址关联以及必要的加注。这里强调数据类型很重要,因为有了它便于发现地址关联的错误。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。