TIA Portal编程实用指南
TIA Portal是西门子开发的软件和工具包,旨在通过统一和改造现有的Simatic Step 7、Simatic WinCC和Sinamics Starter等软件,集成自动化设备的多种开发工具。这些环境负责编程、开发和配置西门子PLC、HMI和变频器。用户在TIA Portal中的编程逻辑遵循块结构,当以结构化和组织化的方式开发时,有助于机器和工业过程的开发、维护和诊断。
Step7用于编程S7-1200、S7-1500、S7-300和S7-400系列的PLC。WinAC和最新的S7-1500软件控制器是工业计算机的替代控制器。可用的编程语言有梯形图、FBD(功能块图)、SCL(结构化控制语言)、STL(语句列表)和S7 GRAPH。WinCC中的HMI画面开发应用于计算机上的监督系统(独立或SCADA),以及Basic、Comfort和Mobile操作面板。Profibus、PROFINET和AS-I(执行器传感器接口)通信协议。对于与PLC的通信,值得一提的是存在CM(通信模块),具有在不同工业协议(如Modbus和CANOpen)中建立通信的功能。下图汇集了SIMATIC STEP 7和SIMATIC WinCC的主要功能。
工厂状态的监控和执行器元件的控制由连接到控制器硬件的设备完成。操作系统充当算法运行的解释器代理。PLC操作系统负责根据用户程序和PLC的硬件配置将逻辑指令转换为硬件。
控制器编程基于分为OB(组织块)、FC(函数)、FB(功能块)和DB(数据块)的块架构。
1、理解TIA Portal中的组织块
组织块与程序执行周期和中断密切相关,因为它们的执行与先前定义的触发器相关联,例如时间间隔或硬件故障检测。OB1或主块对于初始化和顺序扫描相应代码块的调用至关重要,因为它是循环和连续执行块。根据图示,程序执行从OB1的内容开始,线性且同步地从左到右、从块的开始到结束执行代码。在主块结束时,CPU从头开始恢复代码执行,此过程无限重复。
虽然用户创建了多个函数和数据块,但PLC只会通过OB1执行规定的指令和规定的序列。下图演示了子程序的创建,如块调用所示,可能有嵌套调用。
由于主函数中指令的复制取决于所有指定函数的处理,其周期时间可能随工厂状态和任何未预期的编程条件而变化。因此,为避免逻辑冲突或保证连续激活周期的循环执行,建议使用循环中断OB。
循环中断块也是循环执行的,但在创建块时具有预定义的执行间隔。
因此,每100ms,当前处理会被中断,以便执行循环中断块中包含的指令。
2、理解TIA Portal中的函数(FC)
FC压缩算法并根据输入变量和块内执行的检查返回值给定义为输出的变量。
在FC中声明的局部变量及其特性可以是In(输入)、Out(输出)、InOut(输入和输出)、Temp(临时)或Constant(常量)类型。
- 输入:函数的输入参数。对于区分对同一函数的不同调用的状态至关重要;
- 输出:函数的输出参数。对于区分对同一函数的不同调用的动作至关重要;
- 输入和输出:可以同时分配为输入和输出的参数。有助于减少对输入参数的写入错误;
- 临时:在开始块时分配到CPU内存的随机空间并在结束时被覆盖的临时变量,没有保留或全局引用的可能性;
- 常量:这些是值固定并在声明中定义的临时变量。
3、理解TIA Portal中的功能块(FB)
下面我们看到FB的简化图,它们具有与FC相同的结构和功能,但增加了与每个FB调用相关的iDB(实例数据块)的创建。
FC中支持的变量也适用于FB,但FB多了一种称为静态的类型。静态类型的变量是非易失性存储器中的保持存储器,可在整个程序中引用(它们是全局的)。当在编程例程中调用FB时,需要为该调用分配一个DB实例。因此,同一FB的不同调用具有不同的内存空间。
下图示例了同一FB的多次调用。假设一个名为Motors的FB,该调用在两行不同的代码中分配了与其特定调用相关的两个唯一iDB。因此,称为Motor_On的静态变量指示该电机的状态,与其DB相关。
这样,可以指示电机A通过DB1连接,电机B通过DB2中分配的变量连接。
4、理解TIA Portal中的用户数据类型
除了通常的数据类型(Integer、Real、Boolean...)外,TIA Portal中的变量可以是称为用户数据类型的预定义数据类型。其结构是可变的,可以由其他可用数据类型和数组的任何组合组成。UDT的使用有助于数据结构组织和复制,使程序开发和诊断更容易。
5、实际示例:电机控制
在此示例中,我们将使用功能块、函数、数据类型和数据块来解决和优化简单的电机控制任务。首先,我们应该创建一个"Motor"数据类型,其中包含与HMI交换的所有必要信息。
对于我们的电机控制FC,输入和输出参数应涵盖操作电机所需的所有物理设备。如本地和远程选择器、启动和停止按钮以及电机运行反馈传感器。参数"Data"(我们刚创建的"Motor"数据类型)和输出(用于控制电机接触器)应定义为InOut,因为我们将它们在程序中用作输入和输出参数。
我们的电机"Data"("Motor"数据类型)需要存储在全局数据块中,每个要操作的电机一个该数据类型的变量。因此,创建一个长度等于所需电机数量的"Motor"数据类型数组是有帮助的。
该函数能够监控反馈传感器和电机输出状态,以诊断可能的故障场景。如果在没有PLC启动电机命令的情况下反馈开启,我们可以识别传感器或接触器故障。第二和第三个条件在电机不移动时激活,即使PLC命令使接触器线圈通电,这可以诊断为过流跳闸、传感器故障或接触器故障。电机故障存储器保持打开状态,直到操作员从HMI请求故障复位。
一旦没有电机故障,我们的函数处理实际启动电机的条件。电机可以从本地按钮输入、远程手动开/关命令和远程自动命令进行控制。一旦电机及其反馈在预定义的监控时间内被评估,反馈存储器"Motor Running"将被激活,用于HMI中的信息和状态显示。
接下来,让我们将第一个电机调用链接到我们的第一个电机。需要做的是输入与该特定电机控制相关的设备和信号对应的输入和输入参数。
使用函数的主要优势之一是为类似子系统复制逻辑。例如,要控制类似的(在过程功能方面)电机,只需复制块调用并输入相应电机的参数即可。
程序的另一种可能的逻辑结构是使用FB而不是FC块。这样,就不需要创建数据块来容纳电机数据,而是使用调用环境中与该特定电机相关的静态标签(实例数据块)。FB参数结构非常相似,唯一的区别是参数Data的类型现在定义为静态。
一旦将Motor FB拖入用户程序以创建Motor 3调用,就会初始化一个向导来帮助创建与该FB调用关联的数据块。
也可以将DB链接到多实例数据块,在FB "Motors_Calls"的静态参数中定义为"Motor_FB"数据类型的标签。此策略适用于某些程序结构,其中多个设备和操作被分解为功能块,便于复制和内存组织,因为它将所有多实例DB压缩在原始函数调用的单个DB中。
6、常见问题(FAQ)
6.1 什么是TIA Portal,为什么它对自动化项目很重要?
TIA Portal(完全集成自动化门户)是西门子的统一工程软件,用于配置、编程和调试工业自动化系统。它将多个工程任务——PLC编程、HMI开发、运动控制和网络配置——集成到一个环境中。
为什么重要:
- 效率:通过集成工作流程减少工程时间。
- 一致性:集中项目管理最小化PLC、HMI和驱动器之间的错误和数据不匹配。
- 可扩展性:支持从小型独立机器到大型复杂制造系统的所有内容。
- 行业标准:西门子自动化产品在全球范围内被广泛采用,特别是在制造、食品饮料、汽车和制药行业。
学习TIA Portal不仅有助于即时项目交付,还能增强您在自动化行业的长期价值。
6.2 我可以使用TIA Portal编程哪些西门子PLC?
TIA Portal支持多个西门子PLC系列的编程,包括:
- S7-1200系列:适用于紧凑型自动化应用(小型机器、OEM)。
- S7-1500系列:先进的高性能PLC,用于复杂的高速控制系统。
- S7-300和S7-400系列(通过兼容包):对现有安装进行升级的遗留支持。
- ET 200SP CPU:模块化分布式自动化系统。
- LOGO!控制器:(通过特定版本提供有限的编程支持)。
重要提示: 使用旧PLC型号(例如S7-300)时,请确认您的TIA Portal版本兼容性,因为某些新版本逐步淘汰对旧硬件的支持。
6.3 我可以在没有实际硬件的情况下使用TIA Portal进行学习和测试吗?
是的! 您可以使用PLCSim(西门子随TIA Portal提供的集成仿真软件)完全模拟您的项目。
使用PLCSim,您可以:
- 测试梯形图逻辑、结构化文本(SCL)和功能块图。
- 模拟PLC硬件行为(数字和模拟输入/输出)。
- 如果您在TIA Portal中使用WinCC,则可以与HMI画面交互。
- 验证序列并排除逻辑故障,而不会造成设备损坏。
专业提示:确保您的TIA Portal版本包含PLCSim Basic或PLCSim Advanced(用于更复杂的仿真,如虚拟网络)。
在下载到实际硬件之前,强烈建议通过仿真进行学习,特别是对于初学者。
6.4 TIA Portal中有哪些可用的编程语言?
TIA Portal支持多种IEC 61131-3编程语言,允许工程师根据项目选择最合适的语言:
- LAD(梯形图):可视化的继电器逻辑风格编程——在北美最受欢迎。
- FBD(功能块图):可视化的流程图风格——适用于逻辑序列。
- SCL(结构化控制语言):基于文本,类似于高级语言如Pascal/C——适用于循环、计算和复杂数据处理。
- STL(语句列表):汇编风格的低级编程——主要用于遗留支持。
- GRAPH(顺序功能图):适用于逐步过程控制(需要额外许可)。
选择正确的语言取决于应用程序、团队背景和维护考虑。例如,SCL通常用于复杂数学或处理数组和结构。
6.5 初学者在TIA Portal编程时常犯哪些错误?
以下是新用户面临的一些常见陷阱:
- 硬件版本不匹配:在硬件配置期间选择错误的固件版本会导致下载和编译错误。
- 未组织的标签命名:使用默认名称如"M0.0"而不是有意义的标签如"StartButton"会使未来的故障排除变得极其困难。
- 不正确的块结构:未将代码分离到逻辑功能块(FB和FC)中会导致程序臃肿且难以维护。
- 忘记下载硬件和软件更改:有时只下载软件更改,导致硬件设置过时。
- 错误处理不当:跳过状态检查(例如通信模块或驱动器的诊断)会导致意外的运行时问题。
提示: 始终规划您的架构——即使是小项目——并在项目注释或软件注释中记录每个主要步骤。
6.6 TIA Portal中OB、FC和FB有什么区别?
- OB(组织块): 控制执行流的主要调度块。 示例:OB1是默认的循环执行块,在PLC运行时连续运行。
- FC(函数): 执行特定任务但不保留扫描之间内存的代码块。 示例:根据传感器输入计算传送带的速度。
- FB(功能块): 与FC类似,但通过实例内部保留数据。 示例:跟踪扫描之间启动/停止状态的电机控制块。
了解如何以及何时使用每个对于编写模块化、可维护的代码至关重要。
6.7 如何排除TIA Portal与西门子PLC之间的通信问题?
如果TIA Portal无法连接到PLC,请检查以下内容:
- 网络配置: 确保您的PC与PLC在同一子网中(例如:192.168.0.x系列)。
- 正确接口: 验证在"在线访问"下选择了正确的PG/PC接口。以太网(TCP/IP)常用于S7-1200/1500系列。
- 防火墙设置: 禁用或调整可能阻止通信端口(例如TCP端口102)的防火墙/防病毒程序。
- 设备固件兼容性: 确保PLC固件受您安装的TIA Portal版本支持。
- 电缆和交换机: 如果使用非管理型交换机或旧以太网硬件,请检查电缆完整性和端口设置。
提示: 使用TIA Portal内的"可访问设备"工具扫描您的网络并验证设备存在。
6.8 我可以将TIA Portal项目升级到更新的版本吗?
您可以将项目升级到更新的TIA Portal版本,但一旦升级就无法降级。
示例:
- 在TIA Portal V15中创建的项目可以升级到V17。
- 在V17中创建的项目不能直接在V15中打开。
升级过程:
- 在更新版本的TIA Portal中打开项目。
- 接受升级提示。
- 审查任何硬件兼容性警告,因为设备目录在不同版本之间有时会更改。
最佳实践: 升级前始终备份原始项目文件。
6.9 有免费版本的TIA Portal可用吗?
西门子提供TIA Portal的试用版,在21天内功能完整。 它包括PLC编程、HMI配置和基本仿真工具的访问。
获取方式:
- 从西门子官方网站下载(创建免费帐户后)。
试用期后的限制:
- 某些功能(如PLCSim Advanced和复杂网络仿真)可能仍需要付费许可。
- 在试用期之后继续商业使用该软件,您将需要有效的许可。
7、结束语
TIA Portal开发工具中有许多功能,有助于开发、数据结构化、维护干预和工业过程及设备的可扩展性。尽管在PLC编程中有很多不同的方法可以实现相同的结果,但寻求最有效的方法总是有益的。
原文链接:The Complete Practical Guide to Siemens Tia Portal Programming
汇智网翻译整理,转载请标明出处