当前位置: 首页 > news >正文

Excel Code Generator for TIA Portal Openness

Excel Code Generator for TIA Portal Openness - 详细操作教程

目录

  1. 简介
  2. 系统要求与安装
  3. 快速入门
  4. 详细操作步骤
    • 4.1 生成Excel配置文件
    • 4.2 配置PLC数据类型
    • 4.3 配置PLC标签
    • 4.4 配置数据块
    • 4.5 配置程序块
    • 4.6 配置程序块接口
    • 4.7 执行代码生成
  5. 实战示例
  6. 故障排除
  7. 注意事项

1. 简介

1.1 什么是Excel Code Generator?

Excel Code Generator是TIA Portal的一个插件(Add-In),它允许你通过Excel文件来创建TIA Portal项目中的块、标签表和PLC数据类型。

1.2 主要功能

使用这个代码生成器,你可以在TIA Portal项目中生成以下内容:

  • PLC数据类型 - 用户自定义数据类型
  • 全局数据块 - Global Data Blocks (DB)
  • PLC标签表 - PLC Tag Tables
  • 程序块(带梯形图网络):
    • 循环组织块 (OBs)
    • 函数 (FCs)
    • 功能块 (FBs)
    • 单实例数据块
    • 多实例 (Multi-instances)

2. 系统要求与安装

2.1 系统要求

项目 要求
Windows版本 Microsoft Windows 10, Version 21H2 或更高
TIA Portal版本 TIA Portal V17, V18, V19 及以上
Visual Studio Microsoft Visual Studio Professional 2022
.NET版本 Microsoft .NET Framework SDK 4.8.1
用户权限 必须在Openness组中,且具有管理员权限

2.2 安装步骤

  1. 访问西门子TIA Add-Ins页面:https://siemens.com/tia-add-ins
  2. 下载Excel Code Generator插件
  3. 按照TIA Portal帮助文档或通用TIA Add-Ins页面的说明进行安装
  4. 重启TIA Portal以加载插件

3. 快速入门

3.1 基本工作流程

第1步:生成Excel配置模板↓
第2步:在Excel中配置数据(数据类型、标签、数据块、程序块)↓
第3步:在TIA Portal中执行代码生成↓
第4步:验证生成的代码

3.2 插件入口

在TIA Portal项目导航树中,你可以对以下元素右键点击来访问插件功能:

  • 单个PLC
  • 单个程序块文件夹
  • 单个PLC标签
  • 单个PLC数据类型文件夹

插件提供两个菜单项:

  1. Create Database_automatic_Generation.xlsx - 生成Excel配置文件
  2. Generate - 执行代码生成

4. 详细操作步骤

4.1 生成Excel配置文件

步骤说明:

  1. 在TIA Portal中打开你的项目
  2. 在项目导航树中任意位置右键点击
  3. 选择"Create Database_automatic_Generation.xslx"菜单项
  4. 系统会自动生成Excel文件

文件位置:

生成的Excel文件保存在以下位置:

%ProgramData%\Siemens\Automation\Logfiles\ExcelCodeGenerator\Database_automatic_Generation.xlsx

Excel文件包含的工作表:

工作表名称 用途
PLC_DataTypes 配置PLC数据类型
TagTables 配置PLC标签
DataBlocks 配置数据块
ProgramBlocks 配置程序块调用结构
Interface 配置程序块接口

4.2 配置PLC数据类型

工作表:PLC_DataTypes

必填字段说明:
字段名 说明 示例
Name PLC data type PLC数据类型名称,填写后开始新类型 "Tank"
Name 变量名称 "lvlAct"
DatatypeName 数据类型(TIA基本类型,自定义类型用引号) "DInt"
ExternalAccessible 是否可外部访问(1=True, 0=False) 1
ExternalWriteable 是否可外部写入(1=True, 0=False) 1
ExternalVisible 是否外部可见(1=True, 0=False) 1
Setpoint 是否为设定值(1=True, 0=False) 0
Start Value 初始值(用\表示无初始值) 0
Comment 注释 "实际液位"
重要规则:
  1. 标记有 * 的字段为必填字段
  2. 当"Name PLC data type"列有新值时,开始一个新的数据类型
  3. 如果"ExternalAccessible"为0,则"ExternalWriteable"和"ExternalVisible"也必须为0
  4. 用户自定义数据类型名称必须用双引号括起来,例如:"dataType"
  5. PLC数据类型不能有初始值
实例示例:

创建一个名为"Tank"的储罐数据类型,包含三个变量:

Name PLC data type Name DatatypeName ExternalAccessible ExternalWriteable ExternalVisible Setpoint Start Value Comment
Tank lvlAct DInt 1 1 1 0 0 实际液位
volumeHigh DInt 1 1 1 0 1000 高液位设定值
volumeLow DInt 1 1 1 0 100 低液位设定值

4.3 配置PLC标签

工作表:TagTables

必填字段说明:
字段名 说明 示例
Name TagTable 标签表名称,填写后开始新标签表 "TagTable_Plant"
Name 变量名称 "Motor_Start"
DatatypeName 数据类型 "Bool"
LogicalAddress 逻辑地址(TIA Portal格式) "%I0.0"
ExternalAccessible 是否可外部访问(1=True, 0=False) 1
ExternalWriteable 是否可外部写入(1=True, 0=False) 1
ExternalVisible 是否外部可见(1=True, 0=False) 1
Comment 注释 "电机启动信号"
重要规则:
  1. 标记有 * 的字段为必填字段
  2. 当"Name TagTable"列有新值时,开始一个新的标签表
  3. 逻辑地址必须使用TIA Portal格式,例如:%I0.0, %Q0.0, %M0.0
  4. 用户自定义数据类型名称必须用双引号括起来
实例示例:

创建一个名为"TagTable_Plant"的标签表:

Name TagTable Name DatatypeName LogicalAddress ExternalAccessible ExternalWriteable ExternalVisible Comment
TagTable_Plant Motor_Start Bool %I0.0 1 0 1 电机启动信号
Motor_Stop Bool %I0.1 1 0 1 电机停止信号
Motor_Run Bool %Q0.0 1 1 1 电机运行指示
Temperature Int %IW100 1 0 1 温度传感器值

4.4 配置数据块

工作表:DataBlocks

必填字段说明:
字段名 说明 示例
Name Global DB 全局数据块名称 "Db_Tank"
Number 数据块编号 1
Name 变量名称 "currentLevel"
DatatypeName 数据类型 "Int"
StartValue 初始值(用\表示无初始值) 0
ExternalAccessible 是否可外部访问(1=True, 0=False) 1
ExternalWriteable 是否可外部写入(1=True, 0=False) 1
ExternalVisible 是否外部可见(1=True, 0=False) 1
Setpoint 是否为设定值(1=True, 0=False) 0
Comment 注释 "当前液位"
重要规则:
  1. 标记有 * 的字段为必填字段
  2. 当"Name Global DB"列有新值时,开始一个新的数据块
  3. 如果不填写Number,系统会自动分配
  4. 全局数据块可以包含静态全局变量
  5. 单实例和多实例数据块不需要在这里配置,它们会在"ProgramBlocks"工作表中自动生成
实例示例:

创建一个名为"Db_Tank"的全局数据块:

Name Global DB Number Name DatatypeName StartValue ExternalAccessible ExternalWriteable ExternalVisible Setpoint Comment
Db_Tank 1 currentLevel Int 0 1 1 1 0 当前液位
errorFlag Bool 0 1 1 1 0 错误标志

4.5 配置程序块

工作表:ProgramBlocks

这个工作表定义程序的调用结构。表格从左侧开始,顶层(1级)在左边,从属级别(2、3、4级)在右边。

第1级:组织块(OB)
字段名 说明 示例
Number 循环OB的编号 1
Name 循环OB的名称 "Main"
Network name 网络名称 "主程序"
Network Comment 网络注释 "主循环程序"
Network number 决定在哪个LAD网络中调用块 1
第2-4级:程序块(FC/FB)
字段名 说明 示例
Type 块类型("FC"或"FB") "FC"
Number 块编号(不填则自动分配) 10
Name 块名称 "RCVData"
Instance name 实例名称(FB必填)
多实例:在名称前加#
单实例:仅实例名称
"Inst1" 或 "#Inst1"
Network name 网络名称 "数据接收"
Network Comment 网络注释 "接收传感器数据"
Network number 决定在哪个LAD网络中调用块 1
重要规则:
  1. 标记有 * 的字段为必填字段
  2. 第1级必须至少包含一个OB,否则生成会失败
  3. 如果一个块要调用另一个块,必须在调用块的"Network number"列中填写数字
  4. 在一个程序块(循环OB、FC或FB)中,每个FBD网络可以调用一个FC或FB
  5. 对于功能块(FB),必须填写"Instance name"列
  6. 如果是多实例,在实例名称前加#;如果是单实例数据块,只写实例名称
调用结构示例:

假设有以下调用结构:

OB1 (Main)├─ FC10 (RCVData) - 在网络1调用└─ FB20 (Process) - 在网络2调用├─ FC30 (Control) - 在网络1调用└─ FB40 (Monitor) - 在网络2调用└─ FC50 (Alarm) - 在网络1调用

第1级配置(OB):

Number Name Network name Network Comment Network number
1 Main 主程序 主循环程序 1

第2级配置(FC10和FB20):

Type Number Name Instance name Network name Network Comment Network number
FC 10 RCVData 数据接收 接收传感器数据 1
FB 20 Process Inst_Process 数据处理 处理传感器数据 2

第3级配置(FC30和FB40):

Type Number Name Instance name Network name Network Comment Network number
FC 30 Control 控制逻辑 控制输出逻辑 1
FB 40 Monitor Inst_Monitor 监控逻辑 监控状态 2

第4级配置(FC50):

Type Number Name Instance name Network name Network Comment Network number
FC 50 Alarm 报警处理 处理报警信号 1

4.6 配置程序块接口

工作表:Interface

这个工作表用于为FB和FC定义接口参数,这些接口可以被重复使用。如果需要连接变量,可以在"Connection"列中指定。

字段名 说明 示例
ID 任意数字,必须在"ProgramBlocks"工作表中对应块的"InterfaceID"中使用 1
Name Variable 变量名称 "setPoint"
Data type 变量数据类型(自定义类型用引号) "Int"
Connection 要连接的变量(例如:Db_Tank.Error) "Db_Tank.currentLevel"
Comment 注释 "设定值"
重要规则:
  1. 标记有 * 的字段为必填字段
  2. ID值必须在"ProgramBlocks"工作表中对应块的"InterfaceID"列中使用
  3. 同一个接口定义可以被多个块调用,但可以连接不同的变量
  4. 自定义数据类型名称必须用双引号括起来
实例示例:

假设有两个接口定义,ID为1和2,内容相同但连接不同的变量:

ID Name Variable Data type Connection Comment
1 setPoint Int Db_Tank.currentLevel 设定值1
1 actualValue Int Db_Tank.currentLevel 实际值1
2 setPoint Int Db_Tank.errorFlag 设定值2
2 actualValue Int Db_Tank.errorFlag 实际值2

在"ProgramBlocks"工作表中,如果有两个块调用接口ID为1的接口,它们可以连接不同的变量,实现不同的功能。


4.7 执行代码生成

步骤说明:

  1. 准备阶段

    • 完成Excel文件的所有配置
    • 保存Excel文件
    • 在TIA Portal中打开项目
  2. 执行生成

    • 在项目导航树中选择以下元素之一:
      • 单个PLC
      • 单个程序块文件夹
      • 单个PLC标签
      • 单个PLC数据类型文件夹
    • 右键点击
    • 选择"Generate"菜单项
  3. 等待完成

    • TIA Portal项目在生成过程中无法操作
    • 如果是第一次使用Openness,会出现提示消息,选择"Yes, all"
    • 建议展开项目导航树以观察生成过程
    • 生成完成后会弹出成功提示
  4. 验证结果

    • 检查生成的PLC数据类型
    • 检查生成的标签表
    • 检查生成的数据块
    • 检查生成的程序块和调用结构

重要提示:

  • 如果在子文件夹上执行插件,数据块和PLC数据类型不会在该文件夹中生成,而是在系统文件夹中生成。PLC标签、FB、FC和OB会在子文件夹中生成。
  • 插件不能在软件单元内使用
  • 如果块、PLC数据类型和标签表在同一文件夹中已存在,Excel代码生成器会用新文件覆盖它们

5. 实战示例

示例项目:水箱控制系统

假设我们要创建一个简单的水箱控制系统,包含以下内容:

  1. PLC数据类型:一个储罐数据类型,包含液位相关变量
  2. PLC标签:输入输出信号
  3. 数据块:全局数据块存储系统状态
  4. 程序块:主程序、数据接收、控制逻辑、报警处理

步骤1:生成Excel模板

在TIA Portal中右键点击任意位置,选择"Create Database_automatic_Generation.xslx"。

步骤2:配置PLC数据类型

PLC_DataTypes工作表中:

Name PLC data type Name DatatypeName ExternalAccessible ExternalWriteable ExternalVisible Setpoint Start Value Comment
TankSystem currentLevel Real 1 1 1 0 0.0 当前液位
highLevel Real 1 1 1 1 10.0 高液位设定值
lowLevel Real 1 1 1 1 2.0 低液位设定值
pumpStatus Bool 1 1 1 0 FALSE 水泵状态
alarmHigh Bool 1 1 1 0 FALSE 高液位报警
alarmLow Bool 1 1 1 0 FALSE 低液位报警

步骤3:配置PLC标签

TagTables工作表中:

Name TagTable Name DatatypeName LogicalAddress ExternalAccessible ExternalWriteable ExternalVisible Comment
TagTable_IO Level_Sensor Real %IW100 1 0 1 液位传感器输入
Pump_Start Bool %I0.0 1 0 1 水泵启动按钮
Pump_Stop Bool %I0.1 1 0 1 水泵停止按钮
Pump_Control Bool %Q0.0 1 1 1 水泵控制输出
Alarm_Light Bool %Q0.1 1 1 1 报警指示灯

步骤4:配置数据块

DataBlocks工作表中:

Name Global DB Number Name DatatypeName StartValue ExternalAccessible ExternalWriteable ExternalVisible Setpoint Comment
DB_System 1 systemMode Int 1 1 1 1 1 系统模式
systemStatus Bool 0 1 1 1 0 系统运行状态
faultCount Int 0 1 1 1 0 故障计数

步骤5:配置程序块

ProgramBlocks工作表中:

第1级(OB):

Number Name Network name Network Comment Network number
1 Main 主程序 水箱控制系统主循环 1

第2级(FC和FB):

Type Number Name Instance name Network name Network Comment Network number
FC 10 FC_DataAcquisition 数据采集 采集传感器数据 1
FB 20 FB_ControlLogic Inst_Control 控制逻辑 控制水泵启停 2
FC 30 FC_AlarmHandling 报警处理 处理报警信号 3

步骤6:配置程序块接口(可选)

Interface工作表中(如果FC或FB需要参数):

ID Name Variable Data type Connection Comment
1 enable Bool DB_System.systemStatus 使能信号
1 levelValue Real TagTable_IO.Level_Sensor 液位值

然后在ProgramBlocks工作表中为FB20添加InterfaceID列:

Type Number Name Instance name Network name Network Comment Network number InterfaceID
FB 20 FB_ControlLogic Inst_Control 控制逻辑 控制水泵启停 2 1

步骤7:执行代码生成

  1. 在TIA Portal中保存项目
  2. 选择PLC或相关文件夹
  3. 右键点击,选择"Generate"
  4. 等待生成完成
  5. 检查生成的块和数据

步骤8:验证结果

检查TIA Portal中是否正确生成了:

  • PLC数据类型"TankSystem"
  • 标签表"TagTable_IO"
  • 全局数据块"DB_System"
  • OB1 "Main"
  • FC10 "FC_DataAcquisition"
  • FB20 "FB_ControlLogic"(附带单实例DB"Inst_Control")
  • FC30 "FC_AlarmHandling"

6. 故障排除

6.1 常见问题

问题1:生成失败

可能原因

  • Excel文件格式不正确
  • 必填字段未填写
  • 数据类型名称错误
  • 第1级缺少OB

解决方法

  • 检查Excel文件是否使用模板格式
  • 确保所有必填字段(标记有*)都已填写
  • 检查数据类型名称是否正确(自定义类型需用引号)
  • 确保第1级至少有一个OB

问题2:生成的内容不完整

可能原因

  • 在子文件夹上执行生成
  • Excel配置有误

解决方法

  • 注意:如果在子文件夹上执行,某些类型会生成在系统文件夹中
  • 检查Excel配置是否正确

问题3:覆盖了现有数据

说明

  • 如果块、PLC数据类型和标签表在同一文件夹中已存在,会被覆盖

预防方法

  • 生成前备份项目
  • 使用"撤销"功能(见6.2节)

6.2 撤销更改

如果在生成后需要撤销更改,可以:

  1. 在TIA Portal中点击"撤销"按钮
  2. 选择以下操作之一:
    • Generate program blocks
    • Generate data blocks
    • Generate Plc data types
    • Generate tag tables

6.3 查看日志文件

每次执行都会生成日志文件,如果需要向西门子技术支持报告问题,应该附带日志文件。

日志文件位置

%ProgramData%\Siemens\Automation\Logfiles\ExcelCodeGenerator

6.4 错误消息

如果插件运行时发生错误,会显示消息弹出窗口。错误消息包含具体的修正建议。如果消息弹出窗口不可见,可以通过任务栏调出。


7. 注意事项

7.1 数据丢失警告

⚠️ 重要:使用此插件可能导致数据丢失,甚至可能导致生产停机。

可能丢失的数据包括

  • 快照(Snapshots)
  • 初始值(除了常量)
  • 设定值
  • Program_Alarm或ProDiag设置的文本
  • 转换时未激活语言编写的注释

预防措施

  • 用户必须定期创建数据备份
  • 使用插件后检查程序的正确性
  • 在生产环境使用前进行充分测试

7.2 网络安全

  • 只有在必要时才将系统、机器和组件连接到企业网络或互联网
  • 连接时必须实施适当的安全措施(如防火墙和/或网络分段)
  • 尽快应用产品更新
  • 使用最新产品版本

7.3 使用限制

  • 插件不能在软件单元内使用
  • 用户必须在Openness组中
  • 用户需要管理员权限
  • 仅从TIA Portal V17开始支持

7.4 其他注意事项

  • Excel工作表的顺序可以更改,但工作表名称和列的排序不能更改
  • Excel文件可以保存在任何位置
  • 生成过程中TIA Portal项目无法操作
  • 建议在生成前保存项目
  • 建议在生成前备份项目

附录

A. 数据类型参考

TIA Portal基本数据类型

  • Bool - 布尔值
  • Byte, Word, DWord - 字节、字、双字
  • SInt, Int, DInt - 有符号整数
  • USInt, UInt, UDInt - 无符号整数
  • Real, LReal - 实数
  • String - 字符串
  • Time, Date, TOD, DTL - 时间和日期类型
  • 等等...

B. 地址格式参考

TIA Portal地址格式

  • 输入:%I0.0, %IW100
  • 输出:%Q0.0, %QW100
  • 位存储器:%M0.0, %MW100
  • 定时器/计数器:%T1, %C1

C. 支持资源

  • Siemens Industry Online Support: https://support.industry.siemens.com
  • 应用示例页面: https://support.industry.siemens.com/cs/ww/en/view/109770550
  • 技术支持: https://support.industry.siemens.com/cs/my/src
  • SITRAIN培训: https://siemens.com/sitrain

教程总结

本教程详细介绍了Excel Code Generator for TIA Portal Openness的使用方法,包括:

  1. ✅ 系统要求和安装步骤
  2. ✅ Excel配置文件的生成和各工作表的配置方法
  3. ✅ PLC数据类型、标签、数据块、程序块和接口的详细配置
  4. ✅ 完整的实战示例
  5. ✅ 故障排除指南
  6. ✅ 重要注意事项

按照本教程的步骤,即使是新手也能够:

  • 熟练使用Excel Code Generator插件
  • 通过Excel配置TIA Portal项目的各种元素
  • 快速生成标准化的PLC代码
  • 提高编程效率和代码一致性

祝你使用愉快! 🎉

http://www.jsqmd.com/news/329927/

相关文章:

  • 2026青少年线上英语课程TOP10,家长必看避坑指南
  • 【计算机毕业设计案例】基于SpringBoot的汽车服务管理系统基于Spring Boot的汽车4S店销售管理系统(程序+文档+讲解+定制)
  • 一文看明,中学线上英语课程推荐
  • 2026中小学英语课程红黑榜:APP、教材、网课精准避雷指南(教育博主亲测)
  • 【硬核干货】首发实测 GPT-5.2-Pro 与 Sora 2:揭秘高并发 AI 网关背后的架构设计与落地(附 Python 源码)
  • 2025年度小红书代运营品牌综合实力排行出炉,抖音运营公司/抖音代运营/企业号代运营/抖音代运营团队小红书代运营源头厂家口碑排行
  • 博弈论学习笔记
  • D音下载器!某音视频批量下载工具,高清无水印!视频下载工具和详细教程
  • 车智赢.apk 登录逆向python代码复现
  • 中学英语课程推荐|实测5家,不踩坑、适配不同基础,家长直接抄作业
  • 2026少儿英语课程哪家强?3家口碑王炸推荐,刚需家长闭眼入!
  • 5M内轻便简洁!Moo0 AudioRecorder 免费无限制电脑录音神器
  • 中学生AI英语课程哪家强?4款宝藏课实测推荐,提分不踩坑!
  • Java毕设项目推荐-基于SpringBoot的汽车销售服务一体化管理平基于SpringBoot的汽车服务管理系统汽车信息查询、订单管理、售后服务【附源码+文档,调试定制服务】
  • 出门四十分钟,是我和自己的独处时光
  • 2026冲刺用!AI论文工具 千笔写作工具 VS 知文AI,MBA专属神器!
  • Flutter 三端应用实战:OpenHarmony “极简随机数生成器”——在确定中拥抱偶然
  • 2026小学线上AI英语课TOP3测评|避开选课坑!娃爱学才是硬道理
  • 《算法竞赛从入门到国奖》算法基础:入门篇-双指针 - 详解
  • 2026儿童进阶英语课程榜单10|精准突破瓶颈,家长选课不踩坑
  • Flutter 三端应用实战:OpenHarmony “极简手势轨迹球”——指尖与屏幕的诗意对话
  • 纯干货!AI数学课程大测评,零基础友好度拉满!
  • win11如何取消pin码错误次数限制
  • 2026 AI英语课程性价比之王横评:告别哑巴英语,这几款闭眼入!
  • 激光技术如何驱动现代高端制造的发展
  • 解决SQL Server SQL语句性能问题(9)——T-SQL优化常识(3)
  • 行走的自然课堂,这些文旅研学机构让孩子读懂世界
  • 四元数散度和旋度-24
  • 解决SQL Server SQL语句性能问题(9)——T-SQL优化常识(2)
  • 2026年AI英语课程TOP10,谁才是你的英语学习“神搭子”?