PLC基础知识 + 西门子S7-200Smart型号存储区、数据类型

一、什么是PLC?为什么要使用PLC?

1、什么是PLC?

PLC = Programmable Logic Controller = 可编程逻辑控制器

        它是一个以微处理器为核心的数字运算操作的电子系统装置,专为在工业现场应用而设计,它采用可编程序的存储器,用以在其内部存储执行逻辑运算、顺序控制、定时/计数和算术运算等操作指令,并通过数字式/模拟式的输入、输出接口,配合各通讯模块、智能模块控制各种类型的机械或生产过程!

  • 到目前为止,制造业中唯一似乎不受自动化接管影响的领域是可编程逻辑控制器(PLC);

  • 如果没有 PLC,许多企业将无法支持新控制技术的实施。目前,PLC 仍然是工业 4.0 所承诺的数字化转型不可或缺的一部分。

2、PLC的组成?

        PLC代表“可编程逻辑控制器”,它既是单元的结合,也是用于控制输入和输出模块的理论模型。PLC 必须包括四个基本组件才能成为一个完整的系统:

  • CPU 模块:这是中央处理器和存储信息和执行任务所需的内存。所有的数据计算和处理都是通过接收输入和产生输出来进行的。

  • 电源:PLC的所有模块都依赖电源。PLC电源模块设计用于接收交流电并转换为直流电

  • 编程设备PLC 需要将控制逻辑引入系统的编程软件。然后,用户可以在 PLC 软件内临时创建、传输和进行更改

  • 输入/输出模块:这些单元是 PLC 系统的重要组成部分。输入模块从传感器和执行器收集数据,将其输入 PLC 系统,然后产生可读信息,通过输出模块对外输出。这些模块可以是数字的或模拟的

事实上,这个单元或系统是可编程的,这是对以前处理任务控制的重大改进。

这也是 PLC 竞争优势的来源:技术人员在任务或应用程序之间切换时不必更改硬接线。相反,他们可以简单地对设备重新编程

3、PLC与传统的继电器控制的对比:

  1. 逻辑控制方式:

    • 继电器控制:继电器控制系统控制逻辑采用硬件接线利用继电器机械触点的串联或并联等组合成控制逻辑,其连线多且复杂、体积大、功耗大,系统构成后,想再改变或增加功能、较为困难。继电器的触点数量有限,所以继电器控制系统的灵活性和可扩展性受到很大限制

    • PLC控制:以程序的方式存储在内存中,改变程序,便可改变逻辑;PLC控制系统连线少、体积小、功耗小,而且 PLC中每只软继电器的触点数理论是无限制的,因此其灵活性和可扩展性很好

  2. 顺序控制方式:

    • 继电器控制:利用时间继电器的滞后动作完成时间上的顺序控制时间继电器内部的机械结构易受环境温度和湿度变化的影响造成定时的精度不高

    • PLC控制:由半导体电路组成的定时器以及由晶体振荡器产生的时钟脉冲计时定时精度高;使用者根据需要,定时值在程序中可设置,灵活性大,定时时间不受环境影响

  3. 控制速度:

    • 继电器控制:依靠机械触点的吸合动作来完成控制任务,工作频率低,工作速度慢

    • PLC控制:采用程序指令控制半导体电路来实现控制,稳定、可靠,运行速度大大提高

  4. 灵活性和扩展性:

    • 继电器控制:系统安装后,受电气设备触点数目的有限性和连线复杂等原因的影响,系统今后的灵活性、扩展性很差

    • PLC控制:具有专用的输入与输出模块连线少,灵活性和扩展性好

  5. 计数功能:

    • 继电器控制不具备计数的功能

    • PLC控制:PLC内部有特定的计数器实现对生产设备的步进控制

  6. 可靠性与可维护性:

    • 继电器控制:使用大量机械触点,触点在开闭时会产生电弧,造成损伤并伴有机械磨损使用寿命短,运行可靠性差,不易维护

    • PLC控制:采用微电子技术内部的开关动作均由无触点的半导体电路来完成体积小,寿命长,可靠性高,并且能够随时显示给操作人员,及时监视控制程序的执行状况,为现场调试和维护提供便利

4、为什么制造企业偏向于使用PLC?

  • PLC 易于编程:

    使用 PLC 时,将控制逻辑编程到系统中的简便性意味着:您不需要精通计算机语言的人,在任务或应用程序发生变化时能够重新编写程序。

  • PLC可以提供统一的编程环境:

    PLC 是在复杂的制造和工业应用中控制、测量和执行任务的首选方法,因为它们可以与其他系统很好地协同工作。PLC 与 PC、PAC(可编程自动化控制器)、运动控制设备和 HMI 配合良好。

  • PLC 收集可靠数据:

    PLC 系统上设置的输入数量由用户决定。这意味着数据源的数量和流入的数据量没有限制。测量设备、传感器和运动控制可以获取多个参数,因此由用户决定如何收集这些数据以及输出的显示方式

  • PLC 可用于预测性维护:

    由于当今 PLC 配备了更大的内存和处理能力,因此可以对它们进行编程以执行复杂和繁重的任务。其中一项任务是预测性维护。预测性维护的力量,尤其是在工业 4.0 开始时,怎么强调都不为过。


二、PLC数据存储的一些基础知识(以西门子S7系列200 Smart PLC为例)

因为如果不清楚PLC数据存储的基础知识,我们在进行PLC读写操作时,对位置的操作可能会莫名其妙,所以这里需要简单梳理一下!

首先:认识并深入理解下面两个单位的区别:

  • 数据传输的最小单位:bit = 位

  • 数据存储的最小单位:Byte = 字节 = 8bit

西门子S7系列在线中文手册地址:https://cache.industry.siemens.com/dl/files/610/109745610/att_1115063/v1/s7-200_SMART_system_manual_zh-CHS.pdf

1、S7系列PLC中共有哪些存储器区?

西门子S7系列PLC根据不同功能,将存储器细分为4类不同的存储器区:装载存储器区、工作存储器区、保持存储器区和系统存储器区。

  1. 装载存储器区:

    • 用户项目中的程序块、数据块以及系统数据下载到装载存储器中;

      • 程序块用来存储用户程序;

      • 数据块用来存储用户数据,数据块的地址标识符为DB(Data Block);

      • 系统数据指的是用户进行硬件配置和网络参数配置等操作后由PLC自动生成的数据

  2. 工作存储器区:

    • 工作存储器是集成在CPU 内部的RAM存储器 ,容量不能扩展;

    • 工作存储器被分成程序工作存储器数据工作存储器分别用来保存程序运行有关程序块和数据块

    • 用户在向CPU装载存储器下载程序块和数据块时与程序执行有关的块被自动装入工作存储器

    • 工作存储器区内的数据在掉电时丢失,在恢复供电时由CPU恢复

  3. 保持存储器区:

    • 保持存储器是集成在CPU内部的非易失存储器保存有限数量的数据,使之掉电不丢失

    • 可以通过参数设置,指定相应的存储器单元为可保持性,则该存储器单元内的数据在掉电时将被保存在保持存储器中;

    • 设置为可保持性的数据可以是M、T、C和数据块内的数据

  4. 系统存储器区:

    • 系统存储器 又被成为数据存储区,是集成在CPU内部的RAM存储器 ,数据掉电丢失,容量不能扩展。

    • 系统存储器区主要包括输入过程映像(I)区输出过程映像(Q)区位存储器(M)区变量存储器(V)区、定时器 (T) 区、计数器(C) 区、局部数据(L) 区和I/O外设存储器区。

而我们程序正常要读写的用户数据,一般都是存放在系统(数据)存储器区中的!

2、常见的系统(数据)存储区有哪些?

  • M位存储器区:设计定位用来存储位类型的数据(如Bool)存储空间很小(2种寻址方式):

    • 以Bit形式表示:M0.0~M31.7,共256位;

    • 以Byte形式表示:MB0~MB31,共32个字节;

  • V变量存储器区:设计定位用来存储变量类型的数据(任意类型)存储空间很大(4种寻址方式):

    不同的型号,V变量存储器区大小不一样,可以通过官方手册查看:以S7-200Smart为例:

    1692091670282068.png

    以最小的ST20或SR20型号为例,也有8KB的大小,即:

    • 以Bit形式表示:V0.0~V8191.7,共40960位;

    • 以Byte形式表示:BB0~VB8191,共8192个字节;

    • 以Word形式表示:VW0~VM8190,共4096个字;

    • 以Double Word表示:VD0~VD8188,共2048个双字;

  • I输入过程印象存储器区:与PLC扫描周期强相关

    • 在扫描周期开始时读取输入端子外围设备的“开”、“关”的状态,将状态值写入到I存储区;

    • 如果扫描周期位1小时,那么1小时只会被读取一次(扫描周期开始时)—— 即使输入端每秒变化一次

1692092419678455.png

  • Q输出过程印象存储器区:与PLC扫描周期强相关

    • PLC程序运算的输出值不会直接作用到输出端子的设备上,而是在扫描周期开始时先复制到Q存储;

    • 如果扫描周期位1小时,那么1小时只会被写入一次(扫描周期开始时)—— 即使输入端每秒变化一次

  • L临时存储器区:也成为局部存储区(类似于局部变量)

    • 用来存储 程序块的临时数据

    • 一般在有传递参数的子程序中有使用

    • L临时局部存储区中的数据,是没有初始值的,需要自己显式地去赋值;

3、S7-200Smart型号PLC中常用的数据类型:

  • 基本数据类型(7种)位(bit)、字节(byte)、字(word)、双字(double word)、整数型(int)、双整数(dint)、实数(real

    • 公式:1 双字 = 2 字 = 4 字节 = 32 位

  • 复合数据类型(5种):数组(ARRAY)、结构(STRUCT)、字符串(STRING)、日期和时间(DATE-AND-TIME)、用户定义的数据类型(UDT,User-DefinedDataType)

4、基本数据类型细分:

  1. 位(Bit):

    定义为BOOL(布尔型),只有两个值 0 和 1;存储位置如:I0.0、Q0.1、M0.0、V0.1等;

  2. 字节(Byte):

    定义一个字节(Byte)等于8 位(Bit),其中0位为最低位,7 位为最高位。存储位置如:IB0(包括 I0.0~I0.7 位),QB0(包括Q0.0~Q0.7 位),MB0,VB0 等。

  3. 字(Word):

    定义相邻的两字节(Byte)组成一个字(Word),表示一个无符号数,所以一个字为16位;

    如:IW0 由 IB0 和 IB1 组成的,其中I是输入映象寄存器,W表示字,0是字的起始字节;

    特别注意的是:起始字节必须是偶数;字的范围为十六进制的 0000~FFFF,十进制的 0~65536;

    在编程时,如果已经使用 IW0,如果想再用 IB0或 IB1,就要特别慎重,避免重复定义。

  4. 双字(Double Word):

    相邻的两个字(Word)组成一个双字,来表示一个无符号数,因此,双字为 32 位;

    如:MD100 是由 MW100 和 MW102 组成的,其中M是位存储区,D表示双字,100是双字的起始字节;

    特别注意的是:双字的起始字节也必须是偶数;双字的范围为十六进制的 0000~FFFFFFFF(即十进制的 0~4294967295)。

    在编程时如果已经使用了MD100,如果再用 MW100或MW102,就要特别慎重,避免重复定义

  5. 整数型(Int):

    整数为有符号数,最高位为符号位,1表示负数,0表示正数。范围为-32768~32767。

  6. 双整数型(Dint):

    32 位整数和16位整数一样,为有符号数,最高位为符号位,1表示负数,0表示正数。范围为-2147483648~2147483647。

  7. 实数(Real):

    定义为浮点数(Float),浮点数为 32 位,可以用来表示小数。浮点数可以为:1.m×2e。数据类型VB,VW,VD关系

5、复合数据类型简单解释:

  1. 数组(ARRAY):

    将一组同一类型的数据组合在一起组成一个单位就是数组;

  2. 结构(STRUCT):

    1. 将一组同不同类型的数据组合在一起组成一个单位就是结构;

  3. 字符串(STRING):

    字符串是由最多 254 个字符组成的一维数组;

  4. 日期和时间(DATE-AND-TIME):

    用于存储年、月、日、时、分、秒、毫秒和星期的数据。占用 8 个字节,BCD 编码;

    星期天代码为1,星期一~星期六代码分别是 2~7;

    如:DT#2004_07_15_12:30:15.200 为 2004 年 7 月 15 日 12 时 30 分 15 秒 20 毫秒。

  5. 用户定义的数据类型(UDT,User-DefinedDataType):

    由用户将基本数据类型和复合数据类型组合在一起形成的数据类型,可以在数据块DB和变量声明表中定义复合数据类型。

jiguiquan@163.com

文章作者信息...

1 Comment

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐