2. TIA Portal项目骨架搭建
在联锁与顺控工程中,项目骨架决定了后续所有程序块、变量和通信关系的“地基”。如果硬件组态、设备命名和变量表在早期没有统一规划,后期修改往往牵一发动全身:IO地址偏移、符号名冲突、网络设备重名都会导致程序无法编译或联锁逻辑误动作。本节以一台S7-1516-3 PN/DP作为主控制器、一台ET200SP作为分布式IO站为例,说明从新建项目到变量表规范落地的完整骨架搭建过程。
一、硬件组态:从设备目录到机架视图
新建项目后,首先在“设备和网络”中添加PLC。选择CPU 1516-3 PN/DP,将其放入机架0的插槽1。S7-1500的机架视图与S7-300不同,电源模块、CPU、接口模块和信号模块按插槽顺序排列,插槽1固定为CPU,插槽2及以后用于信号模块或通信模块。若使用集中式IO,需在机架中依次插入DI、DO、AI等模块;若全部采用分布式IO,则机架中只保留CPU和必要的通信模块。
硬件组态的关键不是“把模块拖进去”,而是确认模块的订货号、固件版本和IO地址分配。以CPU 1516-3 PN/DP为例,其集成PN接口默认IP为192.168.0.1,PROFINET设备名称默认为“plc_1”。在设备视图中双击CPU,进入“属性”选项卡,可查看和修改以太网地址、PROFINET名称、系统常数和启动特性。对于联锁工程,建议将“系统和时钟存储器”启用,分配MB0为系统存储器、MB1为时钟存储器,这样后续程序可直接使用M0.0(首次扫描)、M0.1(诊断状态更新)等位,避免自行编写初始化逻辑。
二、分布式IO配置:ET200SP的接口与模块
在“设备和网络”中从硬件目录添加ET200SP站,选择接口模块IM 155-6 PN ST。将其连接到CPU的PROFINET接口,形成一条PROFINET IO线路。ET200SP的插槽规则与S7-1500不同:插槽1为接口模块,插槽2为电源模块(可选),插槽3及以后为IO模块。每个IO模块的输入/输出地址由TIA Portal自动分配,但建议在“设备概览”中手动记录起始地址,例如DI模块起始地址为I0.0,DO模块起始地址为Q0.0,AI模块起始地址为IW64。
分布式IO配置中容易忽略的是“电位组”和“模块电源”。ET200SP的BaseUnit分为浅色和深色,浅色BaseUnit用于新建电位组,深色BaseUnit用于延续前一电位组。若DI模块和DO模块共用同一电位组,当DO模块负载短路时可能影响DI模块供电。在联锁工程中,建议将输入模块和输出模块分属不同电位组,或至少为输出模块单独配置电源。此外,ET200SP的模块参数中可设置“诊断中断”和“硬件中断”,对于需要快速响应的联锁信号,可启用硬件中断并将OB40分配给对应模块。
三、网络与设备命名:PROFINET名称比IP更重要
PROFINET通信中,设备名称是设备在IO系统中的唯一标识,IP地址只是网络层参数。CPU通过设备名称识别ET200SP,而不是通过IP。因此,在“设备和网络”视图中,必须为每个PROFINET设备分配唯一的名称。建议命名规则为“站点-设备类型-序号”,例如“plc-1516”“et200sp-01”“et200sp-02”。名称只能包含小写字母、数字和连字符,不能使用下划线或中文。
分配名称后,需要将名称下载到实际设备。对于ET200SP,可通过TIA Portal的“在线访问”功能,选择PG/PC接口,扫描网络中的PROFINET设备,然后执行“分配设备名称”。若现场有多个同型号设备,建议先只连接一台,分配完成后再连接下一台,避免名称错配。IP地址可在分配名称后通过“分配IP地址”功能设置,或由CPU作为IO控制器自动分配。
四、变量表与编程规范:从符号名到块结构
变量表是程序可读性的基础。在PLC变量表中,建议按“输入、输出、中间、数据块”分区,并使用统一前缀。例如输入用“I_”开头,输出用“Q_”开头,中间变量用“M_”开头,数据块用“DB_”开头。数据类型必须与实际信号一致:按钮、限位、接触器反馈用Bool;模拟量用Int或Real;定时器用IEC_TIMER。地址列中,输入输出地址由硬件组态自动生成,但符号名必须手动填写,且不能重复。
编程规范方面,建议遵循以下原则:第一,联锁逻辑放在FC或FB中,不要直接写在OB1中,便于复用和测试;第二,每个FB使用独立的背景数据块,避免多个实例共用同一DB导致状态冲突;第三,模拟量处理统一使用NORM_X和SCALE_X指令,将0~27648转换为工程量;第四,所有输出线圈必须由程序逻辑驱动,不允许在多个位置重复赋值同一输出。对于顺控程序,建议使用GRAPH或状态机FB,每个步序对应一个步标志位,步与步之间的转换条件必须互锁。
- CPU和ET200SP的PROFINET名称是否唯一且符合小写字母、数字、连字符规则?
- ET200SP的IO模块起始地址是否与变量表一致?
- 模拟量模块的测量类型(电压/电流/热电阻)是否与变送器匹配?
- 变量表中是否存在重复符号名或地址冲突?
- OB1中是否只调用FC/FB,而没有直接编写联锁逻辑?
完成上述配置后,编译整个项目。若编译无错误,说明硬件组态、网络命名和变量表在语法层面已一致。此时可下载到CPU,观察ET200SP的BF(总线故障)指示灯是否熄灭、CPU的RUN指示灯是否常亮。若BF灯闪烁,优先检查设备名称是否分配成功、网线是否连接正确、IP地址是否在同一网段。项目骨架搭建完成后,后续的联锁逻辑和顺控程序才有稳定的运行基础。