应用实例的使用应用实例说明了通过文本、图形和/或软件模块形式的几个组件的交互来实现自动化任务的解决方案。应用实例是由西门子公司和/或西门子公司的子公司(“西门子”)提供的免费服务。它们是非约束性的,并且不对配置和设备的完整性或功能性做出任何声明。应用程序示例仅对典型任务提供帮助;它们不构成针对客户的解决方案。您自己有责任按照适用的规定正确和安全地操作产品,并必须检查相应应用示例的功能,并为您的系统定制应用示例。西门子授予您非排他性、不可再授权和不可转让的权利,让经过技术培训的人员使用应用示例。对应用程序示例的任何更改均由您负责。与第三方共享应用程序示例或复制应用程序示例或摘录,只有在与您自己的产品组合时才允许。应用实例不要求经过收费产品的惯常测试和质量检验,它们可能有功能和性能缺陷以及错误。您有责任以可能发生的任何故障不会导致财产损失或人员伤害的方式使用它们。免责声明无论何种法律原因,西门子均不承担任何责任,包括但不限于对应用示例的可用性、有效性、完整性和无缺陷以及相关信息、配置和性能数据以及由此造成的任何损害承担任何责任。这个不适用强制责任的情况下,例如,根据《德国产品责任法》,或在存在故意、重大过失、应负责任的生命损失、身体伤害或健康损害、不遵守保证、欺诈性不披露缺陷或应负责任的重大合同义务的情况下。因违反重大合同义务而引起的损害索赔应限于典型协议类型的可预见损害,除非责任是由于故意或重大过失或基于生命损失、身体伤害或健康损害而引起的。上述条款并不意味着对损害贵方利益的举证责任有任何改变。除非西门子被强制承担责任,否则贵方应向西门子赔偿目前或未来第三方就此提出的索赔。通过使用应用实例,您承认西门子不承担超出上述责任条款的任何损害。其他信息西门子保留在不另行通知的情况下随时对应用实例进行更改的权利。如果应用示例中的建议与其他西门子出版物(如目录)之间存在差异,应以其他文件的内容为准。西门子使用条款也应适用。安全信息西门子提供工业安全功能的产品和解决方案,支持工厂、系统、机器和网络的安全运行。为了保护工厂、系统、机器和网络免受网络威胁,有必要实施并持续维护一个整体的、Zui先进的工业安全概念。西门子的产品和解决方案构成了这一概念的一个要素。客户有责任防止未经授权访问其工厂、系统、机器和网络。该等系统、机器及组件只应在有必要及有适当的保安措施(例如防火墙及/或网络分段)的情况下,才可连接到企业网络或互联网。有关可能实施的工业安全措施的更多信息,请访问西门子的产品和解决方案不断发展,使其更加安全。西门子强烈建议,一旦产品更新可用,就应用Zui新的产品版本。使用不再受支持的产品版本,以及未能应用Zui新更新,可能增加客户遭受网络威胁的风险。
前言开发新一代 SIMATIC 控制器的目标•适用于所有自动化组件(控制器、HMI、驱动器等)的工程框架• 统一编程• 提高性能• 每种语言的完整命令集• 完全符号程序生成•不需要指针的数据处理• 创建块的可重用性指南的目标新一代控制器 SIMATIC S7-1200 和 S7-1500具有Zui新的系统架构,并且与 TIA博途一起提供了新的高效编程和配置选项。Zui重要的不再是控制器的资源(例如内存中的数据存储),而是实际的自动化解决方案本身。本文档为您提供了许多有关S7-1200/1500 控制器优化编程的建议和注意事项。S7-300/400系统架构的一些差异以及与此关联的新编程选项以易于理解的方式进行了解释。这有助于您为自动化解决方案创建标准化和优化的编程。所描述的示例可普遍用于控制器S7-1200 和 S7-1500。本编程指南的核心内容本文档涉及 TIA 博途的以下关键问题:• S7-1200/1500 创新–编程语言– 优化的块– 数据类型和指令• 关于一般编程的建议– 操作系统和用户程序– 内存概念– 符号寻址– 库•与硬件无关的编程建议• 关于 TIA 博途中 STEP 7 Safety 的建议• Zui重要的建议概述1 前言ProgrammingGuideline for S7-1200/1500条目 ID: 81318674, V1.6, 12/2018 8版权所有Siemens AG 2018 保留所有权利优势和好处应用这些建议和技巧可带来许多优势:• 强大的用户程序• 清晰的程序结构•直观有效的编程解决方案更多信息在对 SIMATIC控制器进行编程时,程序员的任务是创建尽可能清晰易读的用户程序。每个用户都使用自己的策略,例如,如何命名变量或块或注释方式。程序员的不同理念创建了非常不同的用户程序,只能由各自的程序员解释。编程风格指南为您提供了一组协调一致的编程规则。例如,为了在SCL进行清晰的编程,这些规范描述了统一的变量和块的命名规则。您可以自由地使用这些规则和建议;它们仅作为标准化编程的建议(不是编程标准)。
S7-1200/S7-1500 创新介绍一般来说,从S7-300/400 到 S7-1500 的 SIMATIC 控制器的编程保持不变。有熟知的编程语言,例如LAD、FBD、STL、SCL 或 GRAPH,以及熟知的块,例如组织块(OB)、函数块(FB)、函数(FC)或数据块(DB)。在S7-300/400 中创建的程序可以轻松的在 S7-1500 上执行,且现有的 LAD、FBD 和 SCL 程序可以轻松的在S7-1200 控制器上执行。还有许多创新可以方便您进行编程并实现功能强大且节省内存的代码。对于为 S7-1200/1500控制器执行的程序,我们建议不仅要一个一个地执行它们,也要检查新选项,并在可能的情况下使用它们。通常很少的额外的工作,但将获得一个程序代码包括,•Zui适合新 CPU 的内存和运行时间,• 更容易理解,• 并且更容易维护。TIA 博途中的通用术语某些术语已更改,以便更轻松地使用TIA 博途进行处理。变量和参数的术语在处理变量、函数和函数块时,许多术语重复使用不同甚至不正确。下图阐明了这些术语。1. 变量变量由名称/标识符标记,并使用控制器内存中的地址。变量总是用某种数据类型(布尔、整数等)定义的:• PLC 变量•数据块中的单个变量• 完整的数据块2. 变量值 变量值是存储在变量中的值(例如,15 是一个整型变量的值)。3. 实际参数实参是指令、函数、函数块等接口互联的变量。4.形式参数(传递参数、块参数)形式参数是指令、函数和函数块(Input、Output、InOut 和Ret_Val)的接口参数。编程语言不同的编程语言可用于用户程序的编程。每种语言都有自己的优势,可以根据应用灵活使用。用户程序中的每个块都可以用任何编程语言创建。优化的机器代码TIA博途和 S7 -1200/1500 可在每种编程语言中实现优化运行时的性能。所有语言都以相同的方式直接编译成机器代码。优点•所有编程语言都具有相同的性能水平(对于相同的访问类型)• 对于通过 STL 中间步骤的额外编译不会降低性能特性下图展示了S7-程序在机器代码中编译的不同之处。使用 S7-300/400/ WinAC 和 S7-1200/1500 创建机器代码• 对于S7-300/400/WinAC 控制器,LAD 和 FBD 程序在 STL 中编译,再创建机器代码。• 对于S7-1200/1500 控制器,所有编程语言都直接编译成机器代码。创建块所有块,例如 OB、FB 和FC,都可以直接用所需的编程语言进行编程。不必为 SCL 编程创建源文件。只需要选择块并将 SCL作为编程语言,可以直接对块进行编程。优点• 访问总是尽可能快地进行,因为数据存储由系统优化并且不依赖于声明。•没有由于错误的juedui访问而导致不一致的危险,因为访问通常是符号化的• 声明更改不会导致访问错误,因为例如 HMI访问是符号化的。• 单个变量可以单独定义为保持变量。• 背景数据块中不需要设置。一切都在分配的 FB 中设置(例如,保持性)。特性•由于较大的变量位于块的开头,较小的变量位于块的末尾,不会形成数据间隙。• 优化块只有符号访问。1.结构是分开放置的,可以作为块复制。2. 保持性数据位于单独的区域中,可以作为块复制。在电压丢失的情况下,该数据会在 CPU内保存。“MRES”将此数据重置为装载存储器中的起始值。特性•由于较大的变量位于块的开头,较小的变量位于块的末尾,不会形成数据间隙。•由于处理器优化存储,访问速度更快(所有变量都以某种方式存储,以便 S7-1500 的处理器只需一个机器命令即可直接读取或写入它们)。•布尔变量以字节形式存储以便更快地访问。适用于 S7-1500 的处理器优化数据存储出于与第一代 SIMATIC控制器兼容的原因,S7-300/400 控制器接受了“大端”数据存储原则。基于改变的处理器架构,新一代 S7-1500控制器始终以“小端”顺序访问 4 个字节(32 位)。在系统端会产生以下属性。1. 如果发生不利偏移,控制器需要2×16位访问才能读取 4 个字节的值(例如REAL 值)。必须翻转字节。控制器存储变量的访问是优化的。访问是 32位(REAL)。不需要翻转字节。2.每次访问都会读取整个字节和屏蔽每个位。整个字节被阻止进行任何其他访问。每个位都分配一个字节。控制器在访问时不必屏蔽字节。3.Zui大块大小为 64kB。 Zui大块大小可达 16MB。推荐• 一般来说,只使用优化块。–您不需要juedui寻址,并且始终可以使用符号数据(与对象相关)进行寻址。也可以使用符号数据进行间接寻址(参见第 3.6.2 章ARRAY 数据类型和间接字段访问)。– 在控制器中处理优化块比标准块快得多。•避免在优化和非优化块之间复制/赋值数据。源格式和目标格式之间的数据转换需要很长的处理时间。示例:设置优化块访问默认情况下,为 S7-1200/1500 的所有新创建的块启用优化块访问。可为 OB、FB和全局 DB 设置块访问。对于背景 DB,设置来自各自的FB。如果将块从 S7-300/400 控制器移植到S7-1200/1500,块访问不会自动复位设置。您可以稍后将块访问更改为“优化块访问”。更改块访问后,您必须重新编译程序。如果将FB 更改为“优化块访问”,其分配的背景数据块将自动更新。按照说明设置优化块访问。设置优化块访问步骤 操作说明1.单击项目树中的“Zui大化/Zui小化概览”按钮。2. 导航到“程序块”。3.在这里,您可以看到程序中的所有块以及它们是否经过优化。在此概览中,可以方便地更改“优化块访问”状态。注意:背景数据块(此处为“Function_block_1_DB”)从相关 FB 继承“优化”状态。这就是为什么只能在 FB上更改“优化”设置的原因。编译项目后,DB 会根据相关联的 FB 获得相应状态。在 TIA博途中显示优化和非优化的块在以下两个图中,可以看出优化和非优化背景 DB 之间的差异。2 通用编程2.6操作系统与用户程序Programming Guideline for S7-1200/1500条目 ID: 81318674,V1.6, 12/2018 18Copyright Siemens AG 2018 All rights reserved对于全局DB,存在相同的差异。图 2 -12:优化数据块(无偏移地址)图 2 -13:非优化的数据块(有偏移地址)表 2-14:优化和非优化数据块差异对比优化数据块非优化数据块优化的数据块以符号方式寻址。没有显示“偏移地址”。对于非优化的块,“偏移地址”会显示出来,可用于寻址。在优化块中,您可以使用“保持”单独声明每个变量。在非优化块中,只能使用“保持”声明所有变量或全部不声明。全局DB 变量的掉电保持性直接在全局 DB 中定义。默认情况下,预设的是掉电不保持。在函数块(而不是背景DB)的实例中定义变量的掉电保持性。这些设置对于该 FB 的所有实例都有效。