丹东西门子模块总代理商PLC
-
≥ 1台¥0.00
丹东西门子模块总代理商PLC
丹东西门子模块总代理商PLC
丹东西门子模块总代理商PLC
局部变量表
1.局部变量与全局变量
程序中的每个POU(Program Organizational Unit,程序组织单元)均有白己的由64字节L存储器组成的局部变量表。它们用来定义有范围限制的变量,局部变量只在它被创建的POU中有效。与之相反,全局符号在各POU中均有效,只能在符号表/全局变量表中定义。全局符号与局部变量名称相同时,在定义局部变量的POU中,该局部变量的定义,该全局定义则在儿它POU中使用。
局部变量适用于以下两种情况:
(1)在子程序中只用局部变量,不用地址或全局符号,子程序可移植到别的项目去。
(2)如果使用临时变量(TEMP),同一片物理存储器可在不同的程序中重复使用。
如果不是上述两种情况,不需要使用局部变量。通过在符号表(SIMATIC)或全局变量表(IEC)中进行定义,可使符号成为全局变量。
2.局部变量的类型
TEMP(临时变量):暂时保存在局部数据区中的变量。只有在执行该POU时,定义的临时变量才被使用,POU执行完后,不再使用临时变量的数值。在主程序或中断程序中.局部变量表只包含TEMP变量。子程序中的局部变量表还有下面的3种变量:
IN(输人变量):由调用它的POU提供的输人参数。
OUT(输出变量);返回给调用它的POU的输出参数。
IN_OUT(输人/输出变量);其初始值由调用它的POU提供,被子程序修改后返问给调用它的POU。
3.局部变量的赋值
在局部变量表中赋值时,只需声明局部变量的类型(TEMP,IN,IN_OUT或OUT)和数据类型(参见SIMATIC和IEC1131-3的数据类型),但不存储器地址,程序编辑器自动地在L存储区中为所有局部变量存储器位置。
4.在局部变量表中增加新的变量
对于主程序与中断程序,局部变量表显示一组已被预先定义为TEMP(临时)变量的行。要向表中增加行,只需用右键单击表中的某一行,选择“插人→行"指令,在所选行的上部插人新的行,选择“插人→行下"指令,在所选行的下部插人新的行。
对于子程序,局部变量表显示数据类型被预先定义为IN、IN_OUT.OUT和TEMP的一系列行,不能改变它们的顺序。如果要增加新的局部变量,用鼠标右键单击已有的行,并用弹出菜单在所击行的上下插人相同类型的另一局部变量。
5.局部变量数据类型检查
局部变量作为参数向子程序传递时,在该子程序的局部变量表中的数据类型调用POU中的数据类型值匹配。
例如从主程序0B1调用子程序SBR0,使用名为INPUT1的全局符号作为子程序的输人参数。在SBRO的局部变量表中,已经定义了一个名为FIRST的局部变量作为该输入参数,当0B1调用SBR0时,INPUTI的数值被传人FIRST,INPUTI和FIRST的数据类型匹配。
6.显示或隐藏局部变量表
将水平分裂条拉至程序编辑器视窗的倾部,则不再疑示局部变量表,但它仍然存在。将分裂条下拉,将再次显示局部变量表。
7.在局部变量表中进行赋值
在程序中使用符号名时,程序编辑器检查有关POU的局部变量表,然后检查符号表/全局变量表。如果某符号名在两处都没有定义,程序编辑器则将其视为全局符号,程序编辑器一条绿色波浪状下画线,并将名称括在双引号中,例如"UndefinedLocalVar(未定义的局部变量)。如果后来对该符号名赋了值,程序编辑器不会自动再次读取局部变量表并修改它。为了将该符号名作为局部变量使用,手工删除程序代码中的引号,并在符号名前插人#号,例如改为#UndefinedLocalVar。
各子程序多可调用16个输人/输出参数,如果超出16个,将返回错误。
选择希望的变量类型所在的行,并在名称域中键人变量名称,在数据类型城中键人数据类型。不需在局部变量表中的安量名称前加并号,#号只在程序代码中的局部变量名之前使用。
局部变量名可包含数字、字母和下画号(“_”),也可以包含扩展字符(ASII128-ASCII255)。个字符是字可或扩展字符,关键字不能作为符号名。
局部变量表中的变量名被下载和存储在CPU存储器中,使用较长的变量名将占用较多的存储空问。
可编程控制器与继电器控制的区别
在PLC的编程语言中,梯形图是为广泛使用的语言,通过PLC的指令系统将梯形图变成PLC能接受程序,由编程器键入到PLC用户存储区去。而梯形图与继电器控制原理图十分相似,主要原因是PLC梯形图的发明大致上沿用户继电器控制电路的元件符号,仅个别处有些不同。
PLC与继电器控制的主要区别有以下几点:
(1)组成器件不同
继电器控制线路是由许多真正的硬件继电器组成的。而PLC是由许多“软继电器”组成的,这些“继电器”实际上是存储器中的触发器,可以置“0”或置“1”。
(2)触点的数量不同
硬继电器的触点数有限,一般只有4至8对;而“软继电器”可供编程的触点数有无限对,因为触发器状态可取用任意次。
(3)控制方法不同
继电器控制是通过元件之间的硬接线来实现的,因此其控制功能就固定在线路中了,因此功能专一,不灵活;而PLC控制是通过软件编程来解决的,只要程序改变,功能可跟着改变,控制很灵活。又因PLC是通过循环扫描工作的,不存在继电器控制线路中的联锁与互锁电路,控制设计大大简化了。
(4)工作方式不同
在继电器控制线路中,当电源接通时,线路中各继电器都处于受制约状态,该合的合,该断的断。而在PLC的梯形图中,各“软继电器”都处于周期性循环扫描接通中,从客观上看,每个“软继电器”受条件制约,接通时间是短暂的。也就是说继电器在控制的工作方式是并行的,而PLC的工作方式是串行的。
6ES7211-1BE40-0XB0 | CPU 1211C AC/DC/Rly,6输入/4输出,集成2AI |
6ES7211-1AE40-0XB0 | CPU 1211C DC/DC/DC,6输入/4输出,集成2AI |
6ES7211-1HE40-0XB0 | CPU 1211C DC/DC/Rly,6输入/4输出,集成2AI |
6ES7212-1BE40-0XB0 | CPU 1212C AC/DC/Rly,8输入/6输出,集成2AI |
6ES7212-1AE40-0XB0 | CPU 1212C DC/DC/DC,8输入/6输出,集成2AI |
6ES7212-1HE40-0XB0 | CPU 1212C DC/DC/Rly,8输入/6输出,集成2AI |
6ES7214-1BG40-0XB0 | CPU 1214C AC/DC/Rly,14输入/10输出,集成2AI |
6ES7214-1AG40-0XB0 | CPU 1214C DC/DC/DC,14输入/10输出,集成2AI |
6ES7214-1HG40-0XB0 | CPU 1214C DC/DC/Rly,14输入/10输出,集成2AI |
6ES7215-1BG40-0XB0 | CPU 1215C AC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES7215-1AG40-0XB0 | CPU 1215C DC/DC/DC,14输入/10输出,集成2AI/2AO |
6ES7215-1HG40-0XB0 | CPU 1215C DC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72171AG400XB0 | CPU 1217C DC/DC/DC,14输入/10输出,集成2AI/2AO |