西门子S7-1200的变量如何使用?什么是局部变量和全局变量?临时变量和静态变量有什么区别?

本文涉及的产品
简介: 今天给大家讲一下什么是局部变量、全局变量、临时变量、静态变量,这些变量都有什么区别,以及在西门子S7-1200中这些变量如何来使用。

今天给大家讲一下什么是局部变量、全局变量、临时变量、静态变量,这些变量都有什么区别,以及在西门子S7-1200中这些变量如何来使用。


在编写带参数子程序时需要使用局部变量。在PLC变量表和DB块中定义的变量称为全局变量,在全部程序中都有效。在某个块的变量声明表中定义的变量称为局部变量,只在创建它的块中有效。


640.jpg


为了增强通用性,方便移植到别的项目,子程序FC和FB中一般只有局部变量。在局部变量表中,名称列用来定义局部变量的符号名,数据类型列用来定义局部变量的数据类型。




在FC和FB的变量声明表中,形式变量也就是形式参数,用来在子程序块和调用它的程序块之间传递数据。形式参数INPUT是指输入到子程序块的参数,在子程序块中只能读取输入值。OUTPUT是指从子程序块返回的参数,在子程序块中只能写入返回值。INOUT是输入并从子程序块返回的参数,在子程序块中既可以读也可以写,输入值和返回值使用同一个地址。FC中的RETURN返回值只有一个,主要用于FC和调用该FC的其它程序交换数据,反应该FC的执行情况。在TEMP行下定义的变量称为临时变量,用来在该程序块执行时暂时存储数据,当退出该程序块时,这些程序将丢失。请注意,临时变量不能赋予初始值。如果有一些变量在调用结束后仍需要保持原值,则必须将这些变量定义为静态变量,即在STATIC行下定义的变量,静态变量只能用在FB中。


赋值给FB的背景数据块用作静态变量的存储区。因为FB带有存储区,即背景数据块,所以形式变量和静态变量可以赋予初始值。在FB中定义的静态变量不在生成的指令块中显示。


640.jpg


在程序中用符号名访问变量时,全局变量的符号名加引号、局部变量的符号名前带#号以示区分。


640.jpg


调用FC时必须用实际参数代替形式参数。调用FB时必须指定背景数据块,实际参数的值被存储在该FB的背景数据块中。如果在块调用时没有实际参数分配给形式参数,则在程序执行时将采用上一次存储在背景数据块中的参数值。


640.jpg


以上就是今天给大家讲解的内容,我们简单介绍了局部变量、全局变量、临时变量、静态变量,这些变量都有什么区别,以及在西门子S7-1200中这些变量如何来使用。

 

如果大家想要学习更多西门子PLC编程方面的知识,可以持续关注本号,我会在以后的文章中继续为大家分享。

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2月前
初始化局部变量和全局变量
初始化局部变量和全局变量
19 0
|
11月前
|
存储 C语言 C++
函数的内部处理及全局变量和局部变量
函数的内部处理及全局变量和局部变量
91 0
函数的内部处理及全局变量和局部变量
|
索引
访问非局部变量
访问非局部变量
108 0
|
Go Python
Go-变量与常量详解(声明、初始化、匿名变量、作用域等)
Go-变量与常量详解(声明、初始化、匿名变量、作用域等)
65 0
Go-变量与常量详解(声明、初始化、匿名变量、作用域等)
|
人工智能 Java
变量的值传递,地址引用(和对象成员变量、局部变量创建和初始化的内存机制)
变量的值传递,地址引用(和对象成员变量、局部变量创建和初始化的内存机制)
146 0
变量的值传递,地址引用(和对象成员变量、局部变量创建和初始化的内存机制)
|
C语言
【C 语言】变量本质 ( 变量修改 | 直接修改变量 | 通过内存地址间接修改变量 | 通过指针间接修改变量 )
【C 语言】变量本质 ( 变量修改 | 直接修改变量 | 通过内存地址间接修改变量 | 通过指针间接修改变量 )
200 0
【C 语言】变量本质 ( 变量修改 | 直接修改变量 | 通过内存地址间接修改变量 | 通过指针间接修改变量 )
|
存储 编译器 C语言
【C 语言】变量本质 ( 变量概念 | 变量本质 - 内存空间别名 | 变量存储位置 - 代码区 | 变量三要素 )
【C 语言】变量本质 ( 变量概念 | 变量本质 - 内存空间别名 | 变量存储位置 - 代码区 | 变量三要素 )
233 0