课程中心
HOME
课程中心
正文内容
plc编程uint PLC的各种变量怎样使用?
发布时间 : 2025-02-23
作者 : 小编
访问数量 : 23
扫码分享至微信

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的3大重点编程算法,电气人都该掌握

PLC编程算法(一)

1、开关量也称逻辑量,指仅有两个取值,0或1、ON或OFF。它是最常用的控制,对它进行控制是PLC的优势,也是PLC最基本的应用。

开关量控制的目的是,根据开关量的当前输入组合与历史的输入顺序,使PLC产生相应的开关量输出,以使系统能按一定的顺序工作。所以,有时也称其为顺序控制。

而顺序控制又分为手动、半自动或自动。而采用的控制原则有分散、集中与混合控制三种。

2、模拟量是指一些连续变化的物理量,如电压、电流、压力、速度、流量等。

PLC是由继电控制引入微处理技术后发展而来的,可方便及可靠地用于开关量控制。由于模拟量可转换成数字量,数字量只是多位的开关量,故经转换后的模拟量,PLC也完全可以可靠的进行处理控制。

由于连续的生产过程常有模拟量,所以模拟量控制有时也称过程控制。

模拟量多是非电量,而PLC只能处理数字量、电量。所有要实现它们之间的转换要有传感器,把模拟量转换成数电量。如果这一电量不是标准的,还要经过变送器,把非标准的电量变成标准的电信号,如4—20mA、1—5V、0—10V等等。

同时还要有模拟量输入单元(A/D),把这些标准的电信号变换成数字信号;模拟量输出单元(D/A),以把PLC处理后的数字量变换成模拟量——标准的电信号。

所以标准电信号、数字量之间的转换就要用到各种运算。这就需要搞清楚模拟量单元的分辨率以及标准的电信号。例如:

PLC模拟单元的分辨率是1/32767,对应的标准电量是0—10V,所要检测的是温度值0—100℃。那么0—32767对应0—100℃的温度值。然后计算出1℃所对应的数字量是327.67。如果想把温度值精确到0.1℃,把327.67/10即可。

模拟量控制包括:反馈控制、前馈控制、比例控制、模糊控制等。这些都是PLC内部数字量的计算过程。

3、脉冲量是其取值总是不断的在0(低电平)和1(高电平)之间交替变化的数字量。每秒钟脉冲交替变化的次数称为频率。

PLC脉冲量的控制目的主要是位置控制、运动控制、轨迹控制等。例如:脉冲数在角度控制中的应用。步进电机驱动器的细分是每圈10000,要求步进电机旋转90度。那么所要动作的脉冲数值=10000/(360/90)=2500。

PLC编程算法(二)——模拟量的计算

1、 -10—10V。-10V—10V的电压时,在6000分辨率时被转换为F448—0BB8Hex(-3000—3000);12000分辨率时被转换为E890—1770Hex(-6000—6000)。

2、 0—10V。0—10V的电压时,在12000分辨率时被转换为0—1770Hex(0—6000);12000分辨率时被转换为0—2EE0Hex(0—12000)。

3、 0—20mA。0—20mA的电流时,在6000分辨率时被转换为0—1770Hex(0—6000);12000分辨率时被转换为0—2EE0Hex(0—12000)。

4、 4—20mA。4—20mA的电流时,在6000分辨率时被转换为0—1770Hex(0—6000);12000分辨率时被转换为0—2EE0Hex(0—12000)。

以上仅做简单的介绍,不同的PLC有不同的分辨率,并且您所测量物理量实现的量程不一样。计算结果可能有一定的差异。

注:模拟输入的配线的要求

1、使用屏蔽双绞线,但不连接屏蔽层。

2、当一个输入不使用的时候,将V IN 和COM端子短接。

3、模拟信号线与电源线隔离 (AC 电源线,高压线等)。

4、当电源线上有干扰时,在输入部分和电源单元之间安装一个虑波器。

5、确认正确的接线后,首先给CPU单元上电,然后再给负载上电。

6、断电时先切断负载的电源,然后再切断CPU的电源。

PLC编程算法(三)——脉冲量的计算

脉冲量的控制多用于步进电机、伺服电机的角度控制、距离控制、位置控制等。以下是以步进电机为例来说明各控制方式。

1、步进电机的角度控制。首先要明确步进电机的细分数,然后确定步进电机转一圈所需要的总脉冲数。计算“角度百分比=设定角度/360°(即一圈)”“角度动作脉冲数=一圈总脉冲数*角度百分比。”

公式为:角度动作脉冲数=一圈总脉冲数*(设定角度/360°)。

2、步进电机的距离控制。首先明确步进电机转一圈所需要的总脉冲数。然后确定步进电机滚轮直径,计算滚轮周长。计算每一脉冲运行距离。最后计算设定距离所要运行的脉冲数。

公式为:设定距离脉冲数=设定距离/[(滚轮直径*3.14)/一圈总脉冲数]

3、步进电机的位置控制就是角度控制与距离控制的综合。

以上只是简单的分析步进电机的控制方式,可能与实际有出入,仅供各位同仁参考。

伺服电机的动作与步进电机的一样,但要考虑伺服电机的内部电子齿轮比与伺服电机的减速比。

PLC中重要的三个点:开关量、模拟量、脉冲量。只在搞清楚三者之间的关系,对于掌握PLC就不会有太大的问题。

相关问答

plc的开关量输入模块单元是?

PLC的开关量输入模块单元是用于接收和处理开关信号的设备。它通常具有多个输入通道,用于连接不同的开关量传感器或开关设备。开关量输入模块单元的工作原理是...

PLC是如何处理模拟量的?

可编程序控制器PLC是以微处理器为基础的通用工业控制装置。早期的PLC是以开关量控制而设计的,而现在的PLC已经具备模拟量处理功能,相比开关量而言模拟量处理确...

欧姆龙PLC编程指令与梯形图快速入门的目录?

去京东上搜索这本书,然后下边的商品介绍中就有这本书的目录的。京东上给出的本书的目录如下:第1章PLC编程软件与仿真软件1.1编程软件CX-Programmer1.1...3...

在PLC梯形图编程中MOV指令的使用?

首先,你PLC程序里定时器或计数器的设定值不要写常数,写入一个变量,然后在屏里做一个数值输入单元,地址与PLC里设定值的变量地址一致即可在屏上改变设定值;比...

三菱plc编程框架流程?

三菱PLC编程框架流程一般包括以下几个步骤:1.确定需求:明确需要实现的功能和要达到的目标。2.设计程序结构:根据需求确定PLC程序的整体结构,包括输入输出模...

西门子plc调试程序步骤?

调试步骤如下:确认硬件连接:检查PLC和外部设备的接线是否正确,如有需要请参考设备的安装手册。编写程序:使用西门子Step7-Micro/WIN程序软件,根据需要编...

PLC编程,60MR的程序也能下载到40MR的程序吗?

我是电子及工控技术,我来回答这个问题。对于问题所说的PLC的60MR和40MR中的“60”和“40”其代表的是PLC的输入和输出口的总点数,我们也称为可编程程控制器的I/...

怎样使用三菱plc扩展单元指令?

扩展单元跟PLC主单元一样。。接着主单元分配,如主单元最大输入是有X16...当你接扩展单元的时候,扩展单元的第一个地址就用X17,第二个用X20表示。。扩展模块的...

三菱PLCL系列都有哪些?

三菱PLC常用的产品系列概述(三菱PLC产品系列)三菱的可编程控制器是较早进入国内市场的产品,由于三菱PLC有较高的性价比,而且易学易用,所以在国内的PLC市场上...

plc主模块与扩展的输入输出模块是怎么连接的?采用哪种通讯方式?

PLC主单元和扩展输入输出既有串行通讯,也有并行通讯。连接方式每个公司都是不一样的,接口定义都是根据自己公司的实际情况来设计的,没有固定方式PLC主单元和...

 循环冗余校验  卫青霍去病 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

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

热线

188-0000-0000
专属服务热线

微信

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