免费发布

编程概念-变量表

更新:2022-12-08 15:14 浏览:3次
供应商:
浔之漫智控技术(上海)有限公司总部 商铺
企业认证
所在地
上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
联系电话
15021292620
销售
颜娟
手机号
15021292620
让卖家联系我
X15021292620

详细

变量表

通过变量表,可定义对特定 POU 局部有效的变量。 在以下情况下使用局部变量:

● 您要创建不引用地址或全局符号的可移值子例程。 ● 您要使用临时变量(声明为 TEMP 的局部变量)进行计算,以便释放 PLC 存储器。 ● 您要为子例程定义输入和输出。 如果以上描述对您的具体情况不适用,则无需使用局部变量;可在符号表 (页 105)中定义 符号值,从而将其全部设置为全局变量。

了解局部变量

您可以使用程序编辑器的变量表来分配对个别子例程或中断例程唯一的变量。 局部变量可用作传递至子例程的参数,并可用于增加子例程的移植性或重新使用子例程。 程序中的每个 POU (页 93) 都有自身的变量表,并占 L 存储器的 64 个字节(如果在 LAD  或 FBD 中编程,则占 60 个字节)。 借助局部变量表,可对特定范围内的变量进行定 义: 局部变量仅在创建时所处的 POU 内部有效。 相反,在每个 POU 中均有效的全局符 号只能在符号表中定义。 当您为全局符号和局部变量使用相同的符号名时(例如 INPUT1),在定义局部变量的 POU 中局部定义优先,在其他 POU 中使用全局定义。 在局部变量表中进行分配时,指定声明类型(TEMP、IN、IN_OUT 或 OUT)和数据类 型,但不要指定存储器地址;程序编辑器自动在 L 存储器中为所有局部变量分配存储器位 置。 变量表符号地址分配将符号名称与存储相关数据值的 L 存储器地址进行关联。 局部变量 表不支持对符号名称直接赋值的符号常数(这在符号/全局变量表中是允许的)。 

说明 

PLC 不会将本地数据值初始化为零。 您必须在程序逻辑中初始化所用局部变量。

1144551061.jpg

局部变量的声明类型

可进行的局部变量分配类型取决于在其中进行分配的 POU。 主程序 (OB1)、中断例程和 子例程可使用临时 (TEMP) 变量。 只有在执行块时,临时变量才可用,块执行完成后, 临时变量可被覆盖。 数据值可以作为参数与子例程间进行传递,具体如下所述: ● 如果要将数据值传递至子例程,则在子例程变量表中创建一个变量,并将其声明类型 指定为 IN。 ● 如果要将子例程中建立的数据值传回至调用例程,则在子例程的变量表中创建一个变 量,并将其声明类型指定为 OUT。 ● 如果要将初始数据值传递至子例程,则执行一项可修改数据值的操作,并将修改后的 结果传回至调用例程,然后在子例程变量表中创建一个变量,并将其声明类型指定为 IN_OUT。 

声明类型 说明

IN 调用 POU 提供的输入参数。 OUT 返回到调用 POU 的输出参数。 IN_OUT 参数,其值由调用 POU 提供、由子例程修改,然后返回到调用 POU。 TEMP 临时保存在局部数据堆栈中的临时变量。 一旦 POU 完全执行,临时变 量值不再可用。 在两次 POU 执行之间,临时变量不保持其值。

局部变量的数据类型检查

将局部变量作为子例程参数传递时,在该子例程局部变量表中指定的数据类型必须与调用 POU 中值的数据类型相匹配。

示例

您从 OB1 调用 SBR0,将称为 INPUT1 的全局符号用作子例程的输入参数。 在 SBR0 的局部变量表中,您已经将一个称为 FIRST 的局部变量定义为输入参数。 当 OB1 调用 SBR0 时,INPUT1 的值被传递至 FIRST。 INPUT1 和 FIRST 的数据类型必须匹配。 如果 INPUT1 是实数,FIRST 也是实数,则数据类型匹配。 如果 INPUT1 是实数,但 FIRST 是整数,则数据类型不匹配,只有纠正了这一错误,程序才能编译。

77.jpg

查看变量表

要查看在程序编辑器中选择的 POU 的变量表,在“视图”(View) 菜单的“窗口”(Windows)  区域中,从“组件”(Component) 下拉列表中选择“变量表”(Variable table)。

说明 可将变量表放在快速访问工具栏 (页 93)上以便于访问。

在变量表中赋值

说明 

在程序中使用局部变量之前,先在变量表中赋值。 在程序中使用符号名时,程序编辑器 首先检查相应 POU 的局部变量表,然后检查符号表。 如果符号名在这两处均未定义,程 序编辑器则将之视为未定义的全局符号;此类符号用绿色波浪下划线加以指示。 程序编 辑器不会自动重新读取变量表并对您的程序逻辑做出更正。 如果以后进行定义该符号名 称的数据类型分配(在局部变量表中),必须在符号名称前手动插入一个井号 (#),例如:  #UndefinedLocalVar(在程序逻辑中)。 因此,在使用之前声明变量可将编程工作量降 至低。 每个子例程调用的输入/输出参数的大限制是 16。如果尝试下载一个超出此项限制的程 序,STEP 7-Micro/WIN SMART 返回错误。

要在变量表中赋值,按以下步骤操作。 1. 确保正确的 POU 在程序编辑器窗口中显示(如有必要,通过单击所需 POU 的选项 卡)。 (由于每个 POU 都有自己的变量表,所以需要确保对正确的 POU 赋值。) 2. 如果变量表尚不可见,则将其显示出来,方法是在“视图”(View) 菜单的“窗 口”(Windows) 区域内,从“组件”(Component) 下拉列表中选择“变量表”(Variable  Table)。 3. 选择变量类型与要定义的变量类型相符的行,然后在“符号”(Symbol) 字段输入变量名 称。 如果在 OB1 或中断例程中赋值,变量表只含 TEMP 变量。 如果在子例程中赋 值,变量表包含 IN、IN_OUT、OUT 和 TEMP 变量。 在变量表中不要在名称前加上 星号。 井号只用在程序代码中的局部变量前。 

说明 

局部变量名称多可包含 23 个字母数字字符和下划线。 也允许包含扩展字符(ASCII  128 至 ASCII 255)。 个字符使用字母和扩充字符。 不允许使用关键字作为 符号名,也不允许使用以数字开头的名称,或者包含非字母数字或扩展字符集中的字 符的名称。 局部变量名称下载到 CPU 存储器并存储在其中。 使用较长的变量名称可能会降低可 用于存储程序的存储器。 4. 在“数据类型”(Data Type) 字段中单击鼠标指针,并使用列表框为局部变量选择适当的 数据类型。

说明 

将局部变量指定为子例程参数时,必须确保分配给局部变量的数据类型不与子例程调 用中正在使用的操作数发生冲突。 5. 也可提供注释,描述局部变量。 为“符号”(Symbol) 和“数据类型”(Data Type) 字段提供值后,程序编辑器自动将 L 存储器 地址分配给局部变量。

输入附加变量

变量表显示固定数目的局部变量行。要在表中添加更多行数,需在变量类型表中选择要添 加的行,然后单击变量表窗口中的“插入”(Insert) 按钮 。 系统将自动在所选行的上方生 成新行,其变量类型与所选变量类型相同。 还可右键单击现有行,然后从上下文菜单中选择“插入 > 行”(Insert > Row) 或“插入 > 下一 行”(Insert > Row Below) 来添加行。

删除变量

要删除局部变量,需在变量表中选中此变量,然后单击“删除”(Delete) 按钮 。 也可删 除一行,方法是右键单击该行,然后从上下文菜单中选择“删除 > 行”(Delete > Row)。



关于浔之漫智控技术(上海)有限公司总部商铺首页 | 更多产品 | 更多新闻 | 联系方式 | 黄页介绍
主要经营:主营西门子模块、PLC模块、变频器模块、触摸屏模块、电源模块、伺服电机、交换机、电缆

从事智能科技、自动化科技、机电领域内的技术开发、技术转让、技术咨询、技术服务、工业自动化设备安装、工业自动化控制设备、

电气设备、机电设备、电子产品、五金产品、金属材料、仪器仪表、橡塑制品销售、商务信息咨询、软件开发、建筑装修装饰建设工程施工、

建筑安装工程(除特种设备),机械设备租赁(不得从事金融租赁),物业管理。工业自动化设备加工、销售。

 

浔之漫智控技术上海有限公司出售西门子S7-200PLC,西门子S7-400PLC,西门子S7-300PLC,LOGO!逻辑模块,西门子

ET200I/O模 ...

内容声明:顺企网为第三方交易平台及互联网信息服务提供者,顺企网所展示的信息内容系由浔之漫智控技术(上海)有限公司总部经营者发布,其真实性、准确性和合法性均由店铺经营者负责。顺企网提醒您购买前注意谨慎核实,如您对信息有任何疑问的,请在购买前通过电话与商家沟通确认顺企网存在海量企业商铺和供求信息,如您发现店铺内有任何违法/侵权信息,请立即向顺企网举报并提供有效线索。
您可能喜欢
顺企网 | 公司 | 黄页 | 产品 | 采购 | 资讯 | 免费注册 轻松建站
免责声明:本站信息由企业自行发布,本站完全免费,交易请核实资质,谨防诈骗,如有侵权请联系我们   法律声明  联系顺企网
ICP备案: 粤B2-20160116 / 粤ICP备12079258号 / 互联网药品信息服务资格证:(粤)-经营性-2016-0009 / 粤公网安备 44030702000007号
© 11467.com 顺企网版权所有 发布批发采购信息、查询企业黄页,上顺企网