欢迎浏览厦门控匠自动化科技有限公司
行业资讯
SIEMIENS S7-1200/1500 控制器 TIA Portal 编程指南
时间: 2025-11-24浏览次数:
SIEMIENS S7-1200/1500 控制器 TIA Portal 编程指南

SIEMIENS S7-1200/1500 控制器 TIA Portal 编程指南

概述
西门子S7-1200/1500 控制器 TIA Portal 编程指南(V1.6 版),核心围绕优化编程展开,涵盖 S7-1200/1500 的核心创新(如优化块、新数据类型 VARIANT、直接机器码编译)、通用编程规范(块结构、符号寻址、内存管理)、硬件无关编程方法、STEP 7 Safety 安全编程要点,以及可视化自动生成方案,明确推荐使用优化块替代非优化块、符号寻址替代绝对寻址、全局数据块替代位存储器,同时提供大量性能优化技巧(如避免深层调用层级、合理使用循环指令),旨在帮助用户实现标准化、高效且可复用的自动化程序开发。


S7-1200/1500 核心创新

1. 编程语言与编译优化
语言支持差异:
编程语言 S7-1200 S7-1500
梯形图(LAD) ✅ ✅
功能块图(FBD) ✅ ✅
结构化控制语言(SCL) ✅ ✅
语句表(STL) ❌ ✅
顺序功能图(Graph) ❌ ✅
编译方式:S7-1200/1500 所有语言直接生成机器码,无 S7-300/400 的 “LAD/FBD→STL→机器码” 中间步骤,所有语言性能一致。
2. 优化块技术(核心创新)
优化块 vs 非优化块:
特性 优化块(推荐) 非优化块(仅兼容)
数据存储 自动按数据类型排序,无间隙 按声明顺序存储,可能有间隙
寻址方式 仅符号寻址 符号 / 绝对寻址均可
保持性设置 单个标签可设保持 整块保持或不保持
下载特性 支持无初始化下载(RUN 模式更新) 不支持
访问速度 快(处理器优化存储) 慢
设置方法:新建块默认启用 “优化块访问”,可在 “程序块” 列表中批量修改;实例 DB 的优化属性继承自关联 FB。
3. 新数据类型
核心新类型:
数据类型 适用控制器 用途 关键特性
VARIANT S7-1500;S7-1200(FW4.1+) 动态指针 带类型检测,替代 ANY 指针,支持符号访问
Date_Time_Long(DTL) 两者均支持 时间戳存储 含年 / 月 / 日 / 纳秒,可符号访问子字段(如 DTL.Hour)
LReal 两者均支持 高精度浮点数 64 位,精度 15 位小数,适合精密计算
LTime 仅 S7-1500 长时长存储 范围 ±106751 天,支持纳秒级精度
WSTRING 仅 S7-1500 Unicode 字符串 支持多语言(如中文、拉丁文),最大 16382 字符
4. 关键指令升级
MOVE 系列指令:
指令 用途 优势
MOVE 单个值复制 支持结构 / 数组完整复制
MOVE_BLK 数组部分复制 指定起始索引和数量,高效处理数组
MOVE_BLK_VARIANT 动态类型复制 runtime 检测数据类型,支持 PLC 数据类型 / 数组
Serialize/Deserialize 结构与字节数组转换 用于通信帧打包 / 解包,支持 VARIANT 输入
其他指令:
TypeOf():检测 VARIANT 指向标签的数据类型(仅 SCL);
RUNTIME:测量程序 / 块运行时间,支持性能优化;
多赋值(V14+):如#a := #b := #c := 0;,简化初始化。

image.png

通用编程规范

1. 程序块结构
核心块类型:
块类型 功能 关键特性
组织块(OB) 操作系统调用,管理程序执行 含循环 OB(OB1)、中断 OB(OB40 硬件中断)等;S7-1200 最多 100 个循环 / 启动 OB,S7-1500 支持时钟中断 OB
函数(FC) 无状态块,无独立存储 临时标签仅当前调用有效,需通过参数传递数据;支持返回值直接参与 SCL 公式
功能块(FB) 有状态块,需实例 DB 静态标签保持值;实例 DB 结构由 FB 定义,不可单独修改
数据块(DB) 存储数据 全局 DB 供所有块访问;实例 DB 仅关联 FB 使用
块复用技巧:
多实例:FB 调用的其他 FB 将数据存储在自身实例 DB 中,减少实例 DB 数量;
类型化块:将 FB/FC/PLC 数据类型存入全局库,支持跨项目复用和批量更新。
2. 内存管理
内存类型与访问速度(从快到慢):
优化块的临时标签、FC/FB 参数、非保持静态标签;
优化块的保持标签、优化全局 DB;
非优化块;
runtime 计算索引的数组访问(如#Array[#i]);
间接内存访问(如指针操作);
优化与非优化块间的数据复制。
关键推荐:
用全局 DB 替代位存储器(M 区):M 区大小因控制器而异,全局 DB 更灵活且支持优化存储;
频繁访问的 I/O 标签用临时标签缓存,减少 I/O 访问次数;
保持性设置:仅必要标签设为保持(如工艺参数),减少断电数据保存开销。
3. 寻址方式
符号寻址(强制推荐):
优势:标签名具描述性(如#Motor1_Run),地址变更时自动更新,减少错误;
操作:直接在指令输入框输入符号名,右键 “定义标签” 即可快速创建。
间接访问方案:
数组间接访问:用#Array[#Index]替代指针,如#Temp := #MotorSpeed[#i];;
切片访问:直接访问 Byte/Word/DWord 的位 / 字节,如#WordVar.%X0(位)、#DWordVar.%W1(字)。
4. 性能优化技巧
禁用块的 “ENO 评估”(LAD/FBD),减少 runtime 检测;
避免深层调用层级(≤8 层),否则 TIA Portal 编译报警,且增加保护代码开销;
FOR 循环:不操纵循环计数器(编译器已优化次数),用EXIT中断循环;
减少不必要 IF 指令:如#Motor := #On1 AND #On2;替代IF #On1 AND #On2 THEN #Motor:=TRUE; ELSE #Motor:=FALSE; END_IF;。


硬件无关编程

1. 数据类型兼容
仅使用EN 61131-3 标准数据类型(如 INT/DINT/REAL/BOOL),避免 S7-300/400 特有类型(如 S5TIME);
S7-1200/1500 的定时器 / 计数器用IEC 标准块(如 TON/CTU),通过多实例集成,避免绝对地址(如 T37)。
2. 时钟信号替代
不用硬件时钟内存(如 M0.5),改用编程时钟生成块:
示例:SCL 编写 FB,通过#Frequency参数设置频率,#Q输出脉冲,#Countdown输出剩余时间;
优势:时钟频率可灵活调整,不依赖硬件配置。

image.png

STEP 7 Safety 安全编程

1. 核心组件
F 运行组:安全程序的执行单元,含 1 个故障安全 OB 和 1 个主安全块,最多创建 2 个;
F 签名:每个 F 组件(F-I/O、F 块)的唯一标识,用于检测配置 / 编程变更;
安全管理编辑器:管理 F 运行组、F 签名、访问权限,设置安全程序密码。
2. 关键规范
数据交换:标准程序与安全程序仅通过2 个标准 DB交互,避免直接访问安全 DB;
性能优化:
避免使用 TP/TON/TOF 指令(增加保护代码);
禁用 JMP/Label 结构(导致额外系统保护块);
循环调用层级≤8 层;
测试限制:安全程序仅在安全模式禁用时可强制测试,每次最多强制 5 个 F-I/O。


可视化自动生成(SiVArc)

1. 基础要求
工具:TIA Portal V14+ + SiVArc 选项包;
前提:程序模块化(如电机控制 FB、输送带 FB),可视化库包含标准画面模板。
2. 控制方式
网络注释:在 FB 调用网络添加标记(如 “SiVArc: Generate=True”),SiVArc 规则通过Contains(Block.NetworkComment, "Generate=True")触发生成;
SiVArc 变量:在块的 “插件” 标签定义变量(如Location="Bottling_West"),规则通过变量值筛选生成范围。

image.png


Copyright © 2024 厦门控匠自动化科技有限公司 版权所有

闽ICP备15020580号-11