西门子S7-1200PLC入门知识

暑假开启一个新专栏:零基础到精通1200plc(一)

一、前言

西门子 S7-1200 PLC 作为中小型 PLC 的佼佼者,在硬件配置和软件编程方面都具有强大的优势,尤其是基于以太网编程和通信的特点,给西门子S7-1200 PLC的应用带来无限的想象力。西门子 S7-1200 PLC 的不同CPU 模块提供了各种各样的特征和功能,可以帮助用户针对不同的应用创建有效的解决方案。本章以三相电动机直接启动控制为例,讲述西门子S7-1200PLC项目的创建、硬件的配置、设备的联网、PLC 的编程、组态数据的装载、在线功能的使用,并重点介绍了西门子S7-1200PLC的数据类型和程序结构,为以后实现复杂的程序做好铺垫。

TIA博途软件简介


TIA博途V15软件构成


TIA博途软件的安装

硬件要求比较高

博图的兼容性,是向下兼容,就是15以下的都行


TIA博途软件的卸载


TIA博途软件的授权管理

它是收费的,后面我会给大家提供两个免费的
TIA博途软件的界面


常见问题




二.1 西门子S7.12.0PLC的硬件组成

二.二.1 西门子S7-1200 PLC的硬件概述

1.PLC 概述
  PLC Programmable Logic Controller 的简称,即可编程逻辑控制器。自1960 年第一台 PLC 问世以来,很快被应用到汽车制造、机械加工、冶金、矿业、轻工等各个领域,并大大推进了工业2.0 到工业 4.0 的进程。
  图 1-1 PLC 检测与控制的对象,包括指示灯 / 照明、电动机、泵控制、按钮/ 开关、光电开关 / 传感器等。
  PLC是以微处理器、嵌入式芯片为基础,综合计算机技术、自动控制技术及通信技术发展而来的一种新型工业控制装置,是工业控制的主要手段和重要的基础设备之一,与机器人、CAD/CAM 并称为工业生产的三大支柱。
  经过长时间的发展和完善, PLC 的编程概念和控制思想已被广大的 自动化行业人员所熟悉,是一个目前任何其他工业控制器(包括 DCS 和FCS等)都无法与其相提并论的巨大知识资源。实践也进一步证明,PLC系统的硬件技术成熟、性能价格比较高、运行稳定可靠、开发过程简单方便、运行维护成本很低。因此,PLC 具有旺盛的生命力,并且得到快速进化。

2. 西门子 S7-1200 PLC
1-2 为西门子 S7-1200 PLC 模块的内部结构,包括 CPU、电源、输入信号处理回路、输出信号处理回路、存储区、RJ45端口及扩展模块接口
                                                        图1-2 西门子S7-1200 PLC模块的内部结构
        国际电工委员会IEC 1982 11 月和 1985 1 月颁布了 PLC 标准的第一稿和第二稿,对PLC 进行如下定义: “PLC 是一种由数字运算操作的电子系统,是专为在工业环境下应用而设计的;PLC 可以采用可编程序的存储器存储执行逻辑运算、顺序控制、定时、计数及算术运算等操作的命令,并通过数字式、模拟式的输入和输出控制各种类型的机械和生产过程;PLC 及其相关设备都应易于与工业控制系统连接为一个整体,是按易于扩充功能的原则而设计的。”根据PLC 的定义,西门子S7-1200 PLC的本质为一台计算机,负责系统程序的调度、管理、运行及自诊断,即负责将用户程序进行编译解释处理,调度用户目标程序运行的任务。与西门子S7-200 系列 PLC 模块的最大区别在于,西门子S7-1200 PLC 标准配置了以太网接口 RJ45 ,可以采用一根标准网线与安装有TIA Portal 软件的计算机进行编程组态和 工程应用。
         目前,西门子公司提供了CPU1211C、 CPU1212C CPU1214C 、CPU1215C等多种类型的 S7-1200PLC。以 CPU1214C 为例,图 1-3 为CPU1214C的实物图。其中,电源接口在左上角;在保护盖的下面是可拆卸的用户接线连接器;存储卡插槽在上部保护盖的下面;RJ45 接口在
PLC 的左底部。
1.1.2 西门子 S7-1200 PLC 模块的基本构成
1.CPU 模块
CPU 模块是西门子 S7-1200 PLC 的硬件核心。西门子 S7-1200 PLC 的主要性能,如速度、规模等都由CPU 模块的性能来体现,如 CPU1214C的布尔操作执行时间为0.1μs ,具有 50KB 集成程序 / 数据存储器或 2MB 的装载存储器。
1-4 CPU 模块的内部结构,主要由微处理器系统、系统程序存储器及用户程序存储器组成。
2. 电源模块
电源模块不仅可为西门子 S7-1200 PLC 的运行提供内部工作电源,有的还可为输入/ 输出信号提供电源,如图 1-5 所示。
西门子 S7-1200 PLC 的工作电源一般为交流单相电源或直流 24V 电源,电源电压必须与额定电压相符,如110V AC 220VAC 、直流 24V
西门子 S7-1200 PLC 对电源的稳定性要求不高,一般允许电源电压在额定值的±15% 范围内波动。
        3.I/O模块
I/O 模块包括输入 / 输出 I/O 电路,根据类型可划分为不同规格的模块,如图1-6 所示。
        (1 )输入部分
输入部分是西门子 S7-1200 PLC 与生产过程相连接的输入通道,可接受来自生产现场的各种信号,如行程开关、热电偶、光电开关及按钮等信号。
        (2 )输出部分
输出部分是西门子 S7-1200 PLC 与生产过程相连接的输出通道,可接收CPU 的处理输出,并将其转换为被控设备所能接受的电压、电流信号,以驱动被控设备,如继电器、电磁阀及指示灯等。
        4.内存模块
内存模块主要用于存储用户程序,有的还可为系统提供辅助的工作内存。在结构上,内存模块都是附加在CPU 模块中的。
        图1-7 为西门子 S7-1200PLC的 MMC 内存模块。该内存模块为 SD卡,可以存储用户的项目文件。
①可作为 CPU 的装载存储区,用户的项目文件可以仅存储在 MMC内存模块中,CPU 没有项目文件,离开 MMC 内存模块无法运行。
②在有编程器的情况下,可作为向多个西门子 S7-1200 PLC 传送项目文件的介质。
MMC 内存模块的功能如下:
③忘记密码时,可清除 CPU 内部的项目文件和密码。
MMC 内存模块可以用于更新西门子 S7-1200PLC的 CPU 固件版本。要插入 MMC 内存模块时,需要打开 CPU 的顶盖(见图 1-8 ),然后将MMC 内存模块插到插槽中。推弹式连接器可以轻松插入和取出 MMC内存模块。MMC 内存模块的安装要正确。

二.二.2 西门子S7-1200 PLC的常见扩展模块

西门子 S7-1200 PLC 扩展模块的设计非常方便、易于安装,无论安装在面板上还是标准的DIN 导轨上,其紧凑型的设计都有利于有效地利用空间,可以使用扩展模块上的DIN 导轨卡夹将设备固定到 DIN 导轨上
(见图 1-9 b ))。这些卡夹还能掰到伸出的位置,使设备可以直接安装到面板上安装螺钉的位置。
①信号板(SB),仅可为CPU提供几个附加的I/O点,SB安装在 CPU的前端(见图 1-9 a ));
②信号模块( SM ),可提供附加的数字或模拟 I/O 点,连接在 CPU的右侧;
③通信模块( CM ),可为 CPU提供附加的通信端口(RS232 或RS485),连接在 CPU 的左侧。

规划安装扩展模块时需要注意以下指导原则:
①将设备与热辐射、高压和电噪声隔离;
②留出足够的空隙进行冷却和接线;
③必须在设备的上方和下方留出25mm 的发热区使空气自由流通。
1. 信号模块( SM
信号模块用于扩展西门子 S7-1200 PLC 的输入和输出点数,可以使CPU增加附加功能,连接 CPU 模块的右侧,与西门子 S7-200 系列 PLC不同的全新安装方式如图1-10 所示。
2. 信号板( SB
信号板( Signal Board )为西门子 S7-1200 PLC 所特有的,可以给CPU模块增加 I/O 。每一个 CPU 模块都可以添加一个具有数字量或模拟量I/O SB SB 连接在 CPU 模块的前端,如图 1-11 所示。

三.1 TIA Portal软件

三.二.1 TIA Portal软件的概述

TIA Portal 是西门子重新定义自动化的概念、平台及标准的软件工
具。它分为两个部分: STEP 7 WinCC
TIA Totally Integrated   Automation的简称,即全集成自动化;
Portal是入口,即开始的地方 TIA Portal被称为“博途” ,寓意全集成自
动化的入口。
TIA Portal 体系是一款注重用户体验的工业工程工具,可在一个平台上完成从过程控制到离散控制、从驱动到自动化,包括HMI 、SCADA等在内的工业控制相关软件的工具集合,就像中文名字 一样,前途是非常广阔的。
TIA Portal 2009 年发布第一款 SIMATIC STEP7 V10.5 STEP 7 basic)以来,已经有 V10.5 V11 V12 V13 V14 V15 等版本,支持西门子最新的硬件SIMATIC S7-1200/1500系列 PLC ,并向下兼容 S7- 300/400等系列 PLC WinAC 控制器。

三.二.2 TIA Portal软件的安装

这里以最为典型的 TIA Portal 软件的 V14 SP1 版本为例介绍安装过程,并可以作为安装其他版本的参考。软件安装的具体步骤如下。
1 TIA Portal 软件安装过程的欢迎界面如图 1-12 所示。
2 )在要求选择安装语言的对话框中选择需要安装的语言(在这
里选择简体中文),如图 1-13 所示。
3 )在如图 1-14 所示中输入安装程序文件的解压缩文件夹。图 1-15为解压缩过程。
4 )在如图 1-16 所示中选择需要安装的产品配置,并接受所有许可证的条款,如图1-17 所示

如果安装成功,则计算机的屏幕上会显示成功安装的消息,提示用户重启计算机。如果安装时有错误发生,将会显示错误消息,可从错误消息中知道错误的类型,可以利用安装程序进行修改、修复或卸载。安装成功后,将会出现两个程序的快捷启动图标,分别为Totally Intergrated Automation软件和Automation LicenseManager软件。

这里我给大家提供一个最新版的博图v18,大致安装流程跟V14一致

链接:https://pan.baidu.com/s/1P-1A88nulKIleU5KmJ7xLg?pwd=dgdm 
提取码:dgdm 
--来自百度网盘超级会员V3的分享http://链接:https://pan.baidu.com/s/1P-1A88nulKIleU5KmJ7xLg?pwd=dgdm 提取码:dgdm --来自百度网盘超级会员V3的分享

三.3 西门子S7.12.0PLC的初次使用

三.三.1 【实例1】三相电动机直接启动控制

1.PLC 的控制任务说明
三相异步电动机的直接启动控制电路如图 1-18 所示。
控制电路的动作原理如下。
2. 西门子 S7-1200 PLC 的电气接线
由于本书中的所有实例都采用西门子 S7-1200PLC的CPU1214CDC/DC/DC进行接线和编程,因此首先需要了解具体的接线示意图。CPU 1214CDC/DC/DC 的电气接线如图 1-19 所示。从图1-19 中可以看出,西门子 S7-1200 PLC 的CPU1214C DC/DC/DC电气接线有以下几个特点:
①外部传感器可以借用 PLC 的输入电源 24VDC
PLC 的输入电源和输出电源可以采用同一个直流电源,也可以采用不同的直流电源;
24V 直流输入既可以采取 PNP 输入,即正电压类型(平时为 0V , 导通时为24V ),也可以采取 NPN 输入,即负电压类型(平时为 24V ,导通时为0V )。
根据以上特点可以画出【实例 1 】的 PLC 原理图,如图 1-20 所示。
3. 西门子 S7-1200 PLC 的编程
TIA Portal 软件可用来帮助用户实施自动化的解决方案。其解决步
骤依次为: 创建项目→配置硬件→设备联网→对PLC进行编程→装载组 态数据→使用在线和诊断功能。
1 )创建新项目,输入项目名称和存放路径
对于【实例 1 】来说,首先要在如图 1-21 所示的起始视图中创建一
个新项目,然后输入项目名称,如 Motor1 ,并单击 ……图符输入存放 路径,如图1-22 所示。
2 )新手上路
输入项目名称后,就会看到 新手上路 界面,如图 1-23 所示。界面中包含创建完整项目所需要的“ 组态设备 ”“ 创建 PLC 程序 ”“ 组态 HMI 画面”“ 打开项目视图 等提示。新手可以按照提示一步一步完成,也可以直接打开项目视图。这里选择“ 打开项目视图
3 )切换到项目视图,熟悉项目树、设备和网络、硬件目录及信息窗口等切换到项目视图后,项目视图总览界面如图1-24所示,包括项目树、设备、硬件目录及信息窗口等。
4 )硬件配置初步 —— 添加新设备与西门子的老型号S7-200 PLC 不同,西门子 S7-1200 PLC 提供了完整的硬件配置。在项目树中选择“ 添加新设备 ,如图 1-25 所示,选择SIMATIC S7-1200,并依次单击 PLC CPU 类型,最终选择【实例 1 】所选用的6ES7214-1AG40-0XB0
5 )定义设备属性,完成硬件配置
如果要完成硬件配置,则在选择 PLC CPU 类型后,还需要添加和定义其他扩展模块及网络等重要信息。对于扩展模块来说,只需要从右边的“ 硬件目录 中拖入相应的扩展模块即可。【实例 1 】只用到 CPU 一个模块,因此不用再添加其他的扩展模块。在设备视图中,单击CPU 模块,就会出现CPU 的属性窗口,如图 1-27 所示。
因为 CPU 没有预组态的 IP 地址,所以必须手动分配 IP 地址,如图 1- 28所示,在组态 CPU 的属性时,组态 PROFINET 接口的 IP 地址和其他参数。在PROFINET 网络中,制造商会为每个设备都分配一个唯一的 介质访问控制” 地址( MAC 地址)以进行标识。每个设备也都必须具有一个IP 地址。
西门子 S7-1200 PLC 硬件配置的一个特点就是灵活、自由,包括寻址的自由。在西门子S7-200 PLC 中, CPU 和扩展模块的寻址是固定的, 而西门子S7-1200 PLC 则提供了自由寻址的功能,如图 1-29 所示。它可以对I/O 地址进行起始地址的自由选择,如 0 1023 均可以。
6 )打开项目树
1-30 为项目树全貌。对于在 TIA 编程环境下的西门子 S7-1200 PLC和人机界面来说,其项目树都是统一的。即使在复杂的工程组态项目中,项目树仍然可以保持清晰的结构。用户可以在组态自动化任务时快速访问相关设备、文件夹或特定的视图。
 
7 )变量定义
变量是 PLC I/O 地址的符号名称。用户创建 PLC 的变量后, TIA Portal软件将变量存储在变量中项目中的所有编辑器(如程序编辑器、设备编辑器、可视化编辑器及监视表格编辑器)均可访问该变量表。 在项目树中,单击“PLC 变量 就可以创建【实例 1 】所需要用到的变量,具体使用三个变量,分别为“ 启动按钮 ”“ 停止按钮 接触器 ,如图1-31 所示。需要注意的是,这里采用的默认数据类型为 Bool ,即布 尔量(具体的数据类型将在1.4 节中进行介绍)。
  如果用户要创建程序,则只需将指令从任务卡中拖动到程序段即可。比如【实例1 】,先要使用常开触点时,从收藏夹中将常开触点直接拉入程序段1 即可,如图 1-33 所示。程序段 1 出现 符号,表示该程序段处于语法错误状态。
TIA Portal 软件的指令编辑具有可选择性。例如,单击功能框指令 黄色角以显示指令的下拉列表,如常开、常闭、 P 触点(上升沿)、 N触点(下降沿),向下滚动列表并选择常开指令,如图1-34 所示。
在选择完具体的指令后,必须输入具体的变量名,最基本的方法是,双击第一个常开触点上方的默认地址< ?? . > ,直接输入固定地址变量“%I0.1” ,这时就会出现如图 1-35 所示的 停止按钮%I0.1”注释。
需要引起注意的是, TIA Portal 软件默认的是 IEC 61131-3 标准。其地址用特殊字母序列来指示,字母序列的起始用% 符号,跟随一个范围前缀和一个数据前缀(数据类型)表示数据长度,最后是用数字序列表示存储器的位置。其中,范围前缀为I (输入)、 Q (输出)、 M (标志,内部存储器范围);长度前缀为X (单个位)、 B (字节, 8 位)、W(字, 16 位)、 D (双字, 32 位)。
%I0.0 输入位 I0.0
除了使用固定地址外,还可以使用变量表中定义的变量,用户可以快速输入对应触点和线圈地址的PLC 变量,如图 1-36 所示,具体步骤如下:
①双击第一个常开触点上方的默认地址 < ?? . >
②单击地址右侧的选择器图标 ,打开变量表中的变量;
③从下拉列表中为第一个触点选择 停止按钮 %I0.1”

 

根据以上规则输入第二个常开触点 “%I0.0” ,并根据梯形图的编辑规律,使用图符打开分支,如图1-37所示,输入接触器自保触 点“%Q0.0” ;最后使用图符 关闭分支,如图 1-38 所示,使用图符 选
择输出触点 “%Q0.0”
完成以上编辑后,就会发现程序段 1 的 符号不见了。当然,将图1-38所示的梯形图与电气控制图 1-18 相比还有一点疑惑:为什么停止按钮%I0.1 使用的是常开输入,而不是传统继电器控制中的常闭呢?该疑惑的产生主要是从PLC 的常开和常闭的定义出发的,对于 PLC 输入来说,用户接线的触点类型,包括常开或常闭都与编程时的常开触点没有直接关联,而是根据程序的逻辑出发的,具体内容将在下面的相关项目中进行介绍。
9 )编译与下载
IP 地址下载到 CPU 之前,必须先确保计算机的 IP 地址与 PLC IP地址相匹配。如图1-39 a )所示,在计算机的本地连接属性窗口中,选择常规选项的“Internet 协议( TCP/IP ,如将协议地址从自动获得 IP地址变为手动设置IP 地址为 192.168.0.100 ,如图 1-39 b )所示
10 PLC 在线与程序调试
虽然在下载 PLC 的程序与配置后,就可以将 PLC 切换到运行状态进行运行,但是很多时候用户需要详细了解PLC 的实际运行情况,在需要程序进行一步一步的调试时,就要进入“PLC 在线与程序调试 阶段。
在【实例 1 】中,选择程序块的在线仿真,如图 1-44 所示,选择
图符即可进入仿真阶段,分别为:实线表示接通,虚线表示断开。从图
中可以看到,停止按钮 %I0.1 的常开触点为接通状态,这就解释了在编
辑阶段为何输入常开而不是常闭的原因了。当启动按钮 %I0.0 被按下
时,程序进入自保阶段,如图 1-45 所示。 当然,PLC 的变量还可以进行在线仿真,选择 即可看到最新的监视值。 在项目树中选择“ 在线访问 即可看到诊断状态、循环时间、存储器、分配IP 地址等各种信息。

三.三.2 以太网通信的连接方式

1. 以太网线
PLC PC RJ45 接口外观为 8 芯母插座,如图 1-46 a )所示;而网线则为8 芯公插头,如图 1-46 b )所示。
100 兆的以太网络实际上只用 4 根线来传输数据,另 4 根线是备份 的,见表1-2 。传输的信号为数字信号。双绞线的最大传输距离为100m。
100 兆的以太网络实际上只用 4 根线来传输数据,另 4 根线是备份的,见表1-2 。传输的信号为数字信号。双绞线的最大传输距离为100m。
2. 以太网的数据交换
以太网交换机是基于以太网传输数据的交换机。以太网采用共享总线型传输媒体方式的局域网。以太网交换机的结构是每个端口都直接与主机相连,并且一般都工作在全双工方式。以太网交换机能同时连通许多对端口,使每一对相互通信的主机都能像独占通信媒体那样进行无冲突的传输数据。
1 )以太网( MAC )地址
以太网交换机用于连接计算机或其他设备的插口被称作端口。计算机借助网卡通过网线连接到交换机的端口上。网卡、交换机和路由器的每个端口都具有一个MAC 地址,由设备生产厂商固化在设备的 EPROM中。MAC IEEE 负责分配,每个 MAC 地址都是全球唯一的。 在PROFINET 网络中,制造商会为每个设备都分配一个 介质访问控制” 地址( MAC 地址)以进行标识。 MAC 地址由六组数字组成。 每组有两个十六进制数。这些数字用连字符(-)或冒号(:)分隔,并按传输顺序列,如01-23-45-67-89-AB或01:23:45:67:89:AB 2 IP 地址每个设备都必须具有一个Internet 协议( IP )地址。该地址使设备可以在更加复杂的路由网络中传送数据。每个IP 地址分为四段,每段占 8位,并以点分十进制格式表示,如211.154.184.16 IP 地址的第一部分用于表示网络ID (正位于什么网络中),第二部分表示主机 ID (对于网络中的每个设备都是唯一的)。IP 192.168.x.y 是一个标准名称,被视为未在Internet 上路由的专用网的一部分。
3 )子网掩码
子网是已连接网络设备的逻辑分组。在局域网( LAN )中,子网中的节点往往彼此之间的物理位置相对接近。掩码(子网掩码或网络掩码)用于定义IP 子网的边界。子网掩码 255.255.255.0 通常适用于小型本地网络。这就意味着此网络中所有IP 地址的前 3 8 位位组应该是相同的。该网络中的各个设备由最后一个8 位位组( 8 位域)来标识。举例来说,小型本地网络为设备分配子网掩码255.255.255.0 IP 地址192.168.2.0到 192.168.2.255。、

三.4 数据类型与程序结构

三.四.1 西门子S7-1200 PLC的物理存储器

西门子 S7-1200 PLC 使用的物理存储器类型包括 RAM ROM Flash EPROM(简称为 FEPROM )。
装载存储器:非易失性的存储区,用于保存用户的程序、数据和组态信息。所有的CPU 都有内部的装载存储器, CPU 插入存储卡后,用存储卡可作为装载存储器,类似于计算机的硬盘,具有断电保持功能。
工作存储器:集成在 CPU 中的高速存取 RAM ,类似于计算机的内存,断电时,内容丢失。
断电保持存储器:用来防止在关闭电源时丢失数据,可以用不同的方法设置变量的断电保持功能。
存储卡:可选的存储卡用来存储用户程序或传送程序。

三.四.2 西门子S7-1200 PLC的基本数据类型

                          西门子S7-1200 PLC的基本数据类型见表1-3。

布尔型数据类型
布尔型数据类型是 ,可被赋予 “TRUE” 真( “1” )或 “FALSE” 假 (“0” ),占用 1 位存储空间。
2 )整型数据类型
整型数据类型可以是 BYTE WORD DWORD SINT USINT 、 INT、 UINT DINT UDIN 等。注意,当较长的数据类型转换为较短的数据类型时,会丢失高位信息。
3 )实型数据类型
实型数据类型主要包括 32 位或 64 位浮点数。 REAL LREAL 是浮点数,用于显示有理数,可以显示十进制数据,包括小数部分,也可以被描述成指数形式。其中,REAL 32 位浮点数, LREAL 64 位浮点数。
4 )时间型数据类型
时间型数据类型主要是 TIME ,用于输入时间数据。
5 )字符型数据类型
字符型数据类型主要是 Char ,占用 8 位,用于输入 16#00 16#FF
字符。

三.四.3 位、字节、字与双字的寻址

8 位二进制数组成 1 个字节( Byte ),如 %MB100 是由 %M100.0到%M100.7 8 位的状态构成的,如图 1-47 所示。
西门子 S7-1200 PLC 采用 字节 . 寻址方式,与位逻辑相对应的常见操作数为I (输入)、 Q (输出)及 M (中间变量),均为直接变量,见表1-4
根据 IEC61131-3 标准,直接变量由百分数符号 % 开始,随后是位置前缀符号。如果有分级,则用整数表示分级,并用由小数点符号“.” 分隔的无符号整数表示直接变量。
%I3.2 ,首位字母表示存储器的标识符, I 表示输入过程映像区, 如图 1-48 所示。
一般而言,以起始字节的地址作为字和双字的地址,起始字节为最高位的字节。图1-49 %MW100 (字)和 %MD100 (双字)的寻址方式。

三.四.4 用户程序的执行

1.代码块的种类

在西门子 S7-1200 PLC 中, CPU 支持 OB、FC、FB、DB 代码块,可以创建有效的用户程序结构。
①组织块( OB )用于定义程序的结构。有些 OB 具有预定义的行为和启动事件,用户可以创建具有自定义启动事件的OB
②功能( FC )和功能块( FB )包含与特定任务或参数组合相对应
的程序代码。每个 FC FB 都可以提供一组输入和输出参数,用于与调用块共享数据。 FB还可以使用相关联的数据块(被称为背景数据块) 保存执行期间的值状态,程序中的其他块可以使用这些值状态。
FB块相当于全局变量,FC块相当于局部变量
 ③数据块(DB)用于存储程序块可以使用的数据。(DB相当于plc变量,也相当于全局变量)
用户程序的执行顺序是,从一个或多个在进入 RUN 模式时运行一次的可选启动组织块(OB )开始,然后执行一个或多个循环执行的程序循环OB OB 也可以与中断事件(可以是标准事件或错误事件)相关联,并在相应的标准或错误事件发生时执行。
2. 用户程序的结构
创建用于自动化任务的用户程序时,需要将程序的指令插入代码块中。
①组织块( OB )对应 CPU中的特定事件,可中断用户程序的执行。用于循环执行用户程序的默认组织块(OB 1 )为用户程序提供基本的结构,是唯一一个用户所必需的代码块。如果程序中包括其他的OB,则这些 OB 会中断 OB 1 的执行。其他的 OB 可执行特定的功能,如用于启动任务、处理中断和错误或者按特定的时间间隔执行特定的程序代码。
②功能块( FB )是从另一个代码块( OB FB FC )进行调用时执行的子例程。调用块将参数传递到FB ,并标识可存储特定调用数据或该FB 实例的特定数据块( DB )。更改背景 DB 可使通用的 FB 控制一组设备的运行。例如,借助包含每个泵或阀门特定运行参数的不同背景DB,则一个 FB 可控制多个泵或阀。
③功能(FC )是从另一个代码块( OB FB FC )进行调用时执行的子例程。FC 不具有相关的背景 DB 。调用块将参数传递给 FC FC 中的输出值必须写入存储器地址或全局DB 中。 根据实际应用要求,可选择线性结构或模块化结构创建用户程序,
如图 1-50 所示。
线性程序按顺序逐条执行用于自动化任务的所有指令。通常,线性程序将所有的程序指令都放入用于循环执行程序的OB OB 1 )中。
模块化程序调用可执行特定任务的特定代码块。创建模块化结构需要将复杂的自动化任务划分为与过程的工艺功能相对应的更小的次级任务,每个代码块都为每个次级任务提供程序段,通过调用该代码块来构建复杂的程序。 通过创建可在用户程序中重复使用的通用代码块,可简化用户程序
的设计和实现。
使用通用代码块具有许多优点:
①可为标准任务创建能够重复使用的代码块,如用于控制泵或电动机,也可以将这些通用代码块存储在可由不同的应用或解决方案使用的库中。
②将用户程序构建到与功能任务相关的模块化组件中,可使程序的设计更易于理解和管理。模块化组件不仅有助于标准化的程序设计,也有助于使更新或修改程序代码更加快速和容易。
③创建模块化组件可简化程序的调试,并将整个程序构建为一组模块化程序段,且在完成代码开发后测试功能。
④创建与特定工艺功能相关的模块化组件,有助于简化对已完成应用程序的调试,并减少在调试过程中所用的时间。
3. 使用块来构建程序
通过设计 FB FC 执行通用任务,创建模块化代码块,然后通过由其他代码块调用这些可重复使用的模块来构建程序,调用块将设备特定的参数传递给被调用块,如图1-51 所示。当一个代码块调用另一个代码块时,CPU 会执行被调用块中的程序代码。执行完被调用块后, CPU 会继续执行该调用块之后的指令。

三.四.5 西门子S7-1200 PLC实现控制的过程

1.CPU 的三种工作模式
西门子 S7-1200 PLC CPU 有以下三种工作模式: STOP 模式、 STARTUP模式及RUN 模式。 CPU 前面的状态 LED 灯用于指示当前的工作模式。
①在 STOP 模式下, CPU 不执行任何程序,用户可以下载项目。
②在 STARTUP 模式下,执行一次启动 OB (如果存在),在 RUN 模式的启动阶段不处理任何中断事件。STARTUP 模式的具体描述如下:只要工作状态从 STOP 切换到RUN, CPU 就会清除过程映像输入、初始化过程映像输出并处理启动OB。启动 OB 中的指令对过程映像输入进行任何读访问时,读取到的都只有零,而不是当前的物理输入值。因此,要在启动模式下读取物理输入的当前状态,就必须执行立即读取操作,再执行启动OB 及任何相关的FC FB 。如果存在多个启动 OB ,则按照 OB编号依次执行各启动OB, OB 编号最小的先执行。
③在 RUN 模式下,重复执行扫描周期。中断事件可能会在程序循环阶段的任何点发生并进行处理,处于RUN 模式下时无法下载任何项目。 RUN模式下 CPU 执行的任务如图 1-53 所示。
2.OB 的实现功能
在西门子 S7-1200 PLC 中, OB 控制用户程序的执行,每个 OB 的编号必须唯一,200 以下的一些默认 OB 编号被保留,其他 OB 编号必须大于或等于200 。 CPU中的特定事件将触发组织块的执行。 OB 无法互相调用或通过FC或 FB 调用。只有启动事件(如诊断中断或时间间隔)可以启动 OB
执行。 CPU 按优先等级处理 OB ,即先执行优先级较高的 OB ,然后执行优先级较低的OB 。最低优先等级为 1 (对应主程序循环),最高优先等 级为 27 (对应时间错误中断)。 OB可以控制的操作如下。
1 )程序循环
程序循环在CPU处于RUN 模式时循环执行,主程序块是程序循环OB。用户在其中放置控制程序的指令及调用其他用户块。允许使用多个程序循环OB,按编号顺序执行。OB 1是默认循环OB,其他程序循环OB必须标识为OB200或更大。
(2)启动
启动在CPU的工作模式从STOP切换到RUN 时执行一次,包括处于RUN模式时和执行STOP到RUN切换命令时上电,之后将开始执行主程序循环OB,允许有多个启动OB。OB 100是默认启动OB,其他启动OB必须是OB200或更大。
(3)时间延迟
通过启动中断(SRT_DINT)指令组态事件后,时间延迟OB将以指定的时间间隔执行。延迟时间在扩展指令SRT_DINT的输入参数中指定。指定的延迟时间结束时,时间延迟OB将中断正常的循环程序执行。对任何给定的时间最多可以组态4个时间延迟事件。每个组态的时间延迟事件只允许对应一个OB。时间延迟OB必须是OB200或更大。
(4)循环中断
循环中断OB 将按用户定义的时间间隔(如每隔2 s)中断循环程序执行。最多可以组态4个循环中断事件。每个组态的循环中断事件只允许对应一个OB。该OB必须是OB200或更大。
(5)硬件中断
硬件中断在发生相关的硬件事件时执行,包括内置数字输入端的上升沿和下降沿事件及HSC事件。硬件中断OB将中断正常的循环程序执行来响应硬件事件信号,可以在硬件配置的属性中定义事件。每个组态的硬件事件只允许对应一个OB。该OB必须是OB200或更大。
(6)时间错误中断
时间错误中断在检测到时间错误时执行。如果超出最大循环时间,则时间错误中断OB将中断正常的循环程序执行。最大循环时间在PLC的属性中定义。OB80是唯一支持时间错误事件的OB。可以组态没有OB 80时的动作:忽略错误或切换到STOP模式。
(7)诊断错误中断
诊断错误中断在检测到和报告诊断错误时执行。如果具有诊断功能的模块发现错误(如果模块已启用诊断错误中断),则诊断OB将中断正常的循环程序执行。OB82是唯一支持诊断错误事件的OB。如果程序中没有诊断OB,则可以组态CPU 使其忽略错误或切换到STOP模式。



                                                                                                                 完!!!

Python可以使用不同的库实现与西门子PLC的通讯。其中,一种常用的库是python-snap7。这个库提供了与PLC通讯所需的功能,而且代码相对较少。你可以使用python-snap7库来实现与西门子PLC的通讯。 另外,如果你手头没有PLC,你可以参考一篇名为"C#使用S7NetPlus以及PLCSIM Advanced V3.0实现西门子PLC仿真通讯"的文章,该文章介绍了如何使用C#和PLCSIM Advanced V3.0来进行西门子PLC的仿真通讯。 通过使用python-snap7库,你可以解析PLC读取的字节数据。不过,对于一些人来说,这种方法可能不太容易理解和使用,而且解析布尔值可能存在一些问题,因为Python在位操作方面的支持并不像C#那样好。这意味着在使用python-snap7库解析布尔值时可能会稍微麻烦一些。 总之,使用python-snap7库是一种在Python中实现与西门子PLC通讯的方法。如果你对C#也有一定的了解,你会发现相比之下,Python的代码量要少一些。但是,底层的通讯原理是相同的,只是具体的实现方式有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python使用python-snap7实现西门子PLC通讯](https://blog.csdn.net/XUMENGCAS/article/details/122695234)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值