直播课堂
HOME
直播课堂
正文内容
plc编程变量定义 施耐德PLC应用,在程序中定义变量和数据!
发布时间 : 2024-12-26
作者 : 小编
访问数量 : 23
扫码分享至微信

施耐德PLC应用,在程序中定义变量和数据!

施耐德PLC中编辑变量和数据:

(一)基本知识

1、变量分类

变量是在程序执行时可以修改的内存区域。Unity Pro 软件编程可以使用两种类型的变量:

1) 定位变量:是与 I/O 硬件模块输入输出通道相关联的,或者与内存引用相关联的变量。例如:“启动电机”与输入模板通道 %I 0.5.0 相关联,“启动电机”就是定位变量。

2) 非定位变量:是既不与I/O 硬件模块输入输出通道相关联,也不与内存引用地址相关联的变量,即没有地址关联的变量成为非定位变量。非定位变量在内存中的位置不可知。这种变量定义类型可以使您在编写程序时抛开地址的束缚,完全专注于您的应用。

2、通用数据类型和范围

 BOOL/EBOOL : 布尔变量必须为 FALSE (0) 或 TRUE (1). EBOOL处理强制和边沿检测

 WORD : 代表 “位串16”, 意味着数据长度为 16 位

 INT : 代表整型数. 数值范围从 -32768 至 +32767

 UINT : 代表无符号整型数. 数值范围从 0 至 65535

 REAL : 代表浮点值. 数值范围从 -3.40e+38 至 3.40e+38

3、 通用数据类型的立即值语法

通常基本数据类型(EDT)的实例采用变量名或拓扑地址的方式引用,而在数据编辑器或程序段中也可以通过立即值的方式赋值和引用。如下图所示。

4、定义变量的三种方式

方式一,在项目浏览器中鼠标双击“变量和FB实例”,在弹出的‘数据编辑器窗口’定义,编辑、修改变量,如下图。

方式二,在项目浏览器中双击CPU或I/O模块,如下图查看相应模块的地址,在模块的I/O对象表格里定义,这种方式只能生成,不支持修改和删除。

方式三,在”程序编辑窗口”中定义,这种方式只能生成,不支持修改和删除。

(二)实际操作

1、在项目浏览器中点击“变量和FB实例”,在右侧“名称”下输入start,类型选 EBOOL,在下一行输入 stop,类型选 EBOOL,然后关闭窗口。如下图:

2、从硬件属性中书写:在项目浏览器中双击DDO3202k;左键点右侧“BMX DDO3202k”,选择I/O对象,再选择%Q,然后点击“更新网络”。在该界面右侧%Q0.2.0名称下,改写为cmd_motor,再用鼠标左键选中第2行,按着鼠标左键下拉,选择右侧Q0.2.1、Q0.2.2、Q0.2.3;然后在左侧“名称前缀”框中输入cmd_,点击“创建”。即可形成cmd_0、cmd_1、cmd_2;如下图:

3、关闭所有窗口,点击“变量和FB实例”,会显示刚才所有的定义变量名。

4、按保存按钮,保存项目。

PLC的各种变量怎样使用?

我最早接触“静态变量”的概念是在计算机C语言的编程中,清楚的记得它需要用"static"关键字来声明。静态变量(Static Variable)其实也是一种变量(Variable),因此在介绍静态变量(Static Variable)之前,我们先来介绍下在计算机和PLC的编程中“变量(Variable) ”的概念。

1 什么是变量

所谓“变量 ”,是在程序的运行过程中,其值可以根据某些条件而发生变化的量。与“变量”相对的是“常量(Constant) ”,顾名思义,常量的值在整个程序的运行中保持不变。

变量的名字称为“变量名”,变量名通常是一个助记符,用来表示一个物理地址。在这个地址上存放着变量的值。

变量有两个特性:作用域和生命周期。

2 全局变量与局部变量

变量的作用域是指变量的作用范围,也就是在哪些范围内该变量是有效的。根据作用域的不同,变量可以分为全局变量(Global Variable)和局部变量(Local Variable)。

全局变量在整个程序范围内都有效。

在C语言中,全局变量是在函数外部声明的变量。比如下面C语言代码中的“a”和“x”都是全局变量:

注:由于C语言从上而下执行,全局变量x并不能在函数func1中访问。

在西门子S7系列PLC的编程中,那些存放在公共存储区的变量都属于全局变量。公共存储区包括输入缓存区(I)、输出缓存区(Q)、位存储区(M)、全局数据块(Global DB)、定时器(T)、计数器(C)等等。比如,位存储区的M0.0,你可以在主程序(OB)或子程序(FB、FC)中访问它,它是全局的。

局部变量(Local Variable)是只能在某个子程序(FB或FC)中访问的变量。

也就是说,局部变量是私有的,子程序(FB或FC)只能访问其自身内部定义的变量,而不能访问其它子程序内部定义的变量。

从生命周期来看,全局变量的生命周期是整个程序的运行周期。也就是说,只要PLC还运行用户程序,全局变量就一直有效。

而局部变量的生命周期则取决于其存放的位置。

2 临时变量与静态变量

对于S7系列PLC而言,局部变量有两个存放的位置:临时变量存储区 (堆栈)和背景数据块 (Instance DB)。

临时变量存储区(堆栈),也称为局部变量存储区(Local Memory),用来存放FB或FC在运行过程中的临时变量

在S7系列PLC中,FB、FC或者OB都被称为“程序组织单元(POU,program organizational unit)”。PLC为每个POU分配一定数量的临时变量存储区,在S7-300/400 PLC中,这个区域的大小为256字节;在S7-200 Smart PLC中,这个区域的大小为64字节。

临时变量存储区中的变量称为“临时变量 ”,它们只在当前POU运行时有效。当POU运行结束后,该变量将被释放(无法保存)。

注:当POU由于中断而被挂起时,其临时变量会被保存,以便下次中断现场恢复后继续执行。

如果想保存程序运行的中间值怎么办呢?答案是使用静态变量(Static Variable)。

在博途(TIA Portal)环境或Step7开发环境中,功能块(FB)接口有“Static(STAT)”一项。所有在“STAT”栏内定义的变量都将会被存放到背景数据块中。在FB运行结束后,“STAT”中定义的变量不会被释放。这种变量称为“静态变量 ”。如下图中的变量“STAT_test1”和“STAT_test2”:

注:FB中的IN、OUT参数也会保存到背景数据块中。背景数据块中的数据只能被拥有它的功能块(FB)访问。

说到这里,你应该明白了吧?静态变量从作用域上分属于局部变量;从生命周期上来看,它与用户程序的生命周期相同。临时变量也属于局部变量,不过其生命周期短,仅在POU运行的过程中有效。

相关问答

如何理解PLC编程中变量的概念,变量的由来和意义,以及如何使用?

如何理解PLC编程中变量的概念,变量的由来和意义,以及如何使用。首先PLC中的变量指的是内置的输入输出继电器、辅助继电器、状态、计数器、数据寄存器等各种软...

plc变量怎么理解?

PLC(可编程逻辑控制器)变量是指在PLC编程中用于存储和处理数据的符号。它们类似于其他编程语言中的变量,可以存储不同类型的数据,例如数字、布尔值、字符串等...

plc接口变量什么意思?

PLC中的变量指的是内置的输入输出继电器、辅助继电器、状态、计数器、数据寄存器等各种软元件。PLC变量适用于整个PLC。PLC程序中多数指令都通过变量来操作...

omronnjplc怎么定义变量?

在OmronNJPLC中,可以通过以下步骤来定义变量。首先,在程序编辑器中选择要定义变量的程序块。然后,使用VAR或VAR_GLOBAL指令来定义变量。在变量定义指令中...

PLC中什么是中间变量?

在PLC(可编程逻辑控制器)中,中间变量是指在程序执行过程中用于存储和传递数据的临时变量。它们通常用于在不同的程序块之间传递数据,或者在程序执行过程中进...

三菱plc结构体变量是什么意思?

首先PLC中的变量指的是内置的输入输出继电器、辅助继电器、状态、计数器、数据寄存器等各种软元件。相比于变量,我们首先说下常量,常量指的是固定的数值,在PLC...

高端推荐帖:回复:PLC心跳是什么变量?

PLC心跳一般是编程者编制的一个脉冲位,每间隔一段时间发一个脉冲。一般周期为1秒或者0.5秒。代表PLC正在运行。这个心跳通常是用在两个PLC系统通讯时其中一...

plc如何生成一个变量?

PLC通过声明变量的数据类型,并分配一个内存地址来生成一个变量。1.首先,PLC需要知道变量所使用的数据类型,例如:整数,浮点数,布尔值等。同时,PLC中支持多...

plc变量如何分配?

在PLC(可编程逻辑控制器)编程中,变量分配通常涉及将物理输入/输出信号映射到PLC内存中的变量。以下是变量分配的基本步骤:确定输入和输出信号:首先,需要识...

西门子plc局部变量是用来做什么?

全局变量在每个程序都可以用(主程序和子程序),局部变量只是在所建立变量的程序中用,其它程序中不行,大概就是这样个意思。全局变量在每个程序都可以用(主程序...

 南京女孩李倩月案件来龙去脉  xhero隐藏英雄 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部