1. S7-1200远程IO组态基础概念
PROFINET IO系统由IO控制器和IO设备组成,S7-1200 PLC在此架构中通常作为IO控制器。远程IO设备通过PROFINET网络与控制器连接,实现分布式控制。这种架构特别适合生产线布局分散的场景,比如汽车制造中的焊接、喷涂、装配等工位。
在硬件层面,S7-1200 CPU需要配备PROFINET接口(所有S7-1200 CPU都集成至少一个PN口)。远程IO设备可选ET200SP、ET200MP等系列,其中ET200SP因其模块化设计和小体积特点,成为1200系列最常用的远程IO搭档。
关键提示:ET200SP接口模块有Basic和HF两种版本,HF支持等时同步、IRT等高级功能,但1200系列只支持Basic功能。选型时注意不要为1200配置HF特有功能。
2. 硬件组态详细步骤
2.1 创建新项目与添加硬件
在TIA Portal V15或更高版本中新建项目后:
- 进入"项目视图"→"添加新设备"
- 选择对应的S7-1200 CPU型号(如6ES7 215-1AG40-0XB0)
- 确认固件版本(建议使用V4.2及以上)
添加ET200SP远程站时:
- 在硬件目录中展开"分布式IO"→"ET200SP"
- 选择接口模块IM 155-6 PN Basic(6ES7155-6AU00-0BN0)
- 拖拽到网络视图
2.2 网络参数配置
为S7-1200配置IP地址:
- 双击CPU进入设备视图
- 选择"PROFINET接口[X1]"
- 在属性面板设置IP(如192.168.1.10)和子网掩码(255.255.255.0)
为ET200SP配置IP:
- 确保与控制器同子网(如192.168.1.11)
- 设置设备名称(如et200sp_01)
- 注意:设备名称区分大小写
2.3 IO模块组态
ET200SP采用模块化设计,组态时需要:
- 按实际硬件顺序添加基座单元和IO模块
- 注意基座颜色:浅色表示新电位组,深色延续前模块电位
- 为每个模块设置:
- 硬件型号(必须与实际一致)
- 诊断参数
- 输入滤波时间(典型值6.4ms)
常见模块配置示例:
| 模块类型 | 订货号 | 通道数 | 典型应用 |
|---|---|---|---|
| DI 16x24VDC | 6ES7131-6BH01-0BA0 | 16 | 按钮/限位开关 |
| DQ 8x24VDC | 6ES7132-6BH01-0BA0 | 8 | 电磁阀/指示灯 |
| AI 4xU/I | 6ES7134-6GF00-0BA1 | 4 | 温度/压力变送器 |
3. 软件配置关键点
3.1 设备名称分配
PROFINET设备必须分配唯一名称:
- 连接编程电脑与ET200SP
- 在网络视图中右键点击PROFINET网络
- 选择"分配设备名称"
- 通过MAC地址确认目标设备
- 点击"分配名称"按钮
常见问题处理:
- 若显示"无法分配名称",检查:
- 物理连接是否正常
- 防火墙是否阻止了PNIO通信
- 设备是否处于工厂复位状态
3.2 IO地址映射
系统自动分配IO地址,但建议手动优化:
- 在设备视图选择ET200SP
- 进入"I/O地址"选项卡
- 修改起始地址(如输入从100开始,输出从200开始)
- 确保不与本地IO地址冲突
地址优化示例:
// 输入地址 IW100 // ET200SP第1个模拟量输入 ID102 // ET200SP第1个数字量输入(双字) // 输出地址 QW200 // ET200SP第1个模拟量输出 QB201 // ET200SP第1个数字量输出(字节)4. 编程实现与功能块封装
4.1 FB功能块设计
创建FB块实现IO控制逻辑:
FUNCTION_BLOCK "IO_Ctrl" { S7_Optimized_Access := 'TRUE' } VERSION : 0.1 // 输入参数 VAR_INPUT ManualMode : Bool; // 手动模式使能 DI_Array : Array[0..15] of Bool; // DI状态数组 END_VAR // 输出参数 VAR_OUTPUT DO_Array : Array[0..7] of Bool; // DO控制数组 Fault : Bool; // 故障信号 END_VAR // 静态变量 VAR Pre_DI : Array[0..15] of Bool; // DI上次状态 Edge_Detect : Array[0..15] of Bool; // 上升沿检测 END_VAR4.2 主程序调用示例
在OB1中调用FB并添加注释:
// 网络1:FB调用 "IO_Ctrl_DB"( ManualMode := "HMI".ManualMode, DI_Array := "ET200SP_DI", // 绑定远程IO输入 DO_Array => "ET200SP_DO", // 绑定远程IO输出 Fault => "System_Fault"); // 网络2:故障处理 IF "IO_Ctrl_DB".Fault THEN "Alarm_Light" := TRUE; // 添加故障处理逻辑... END_IF;5. 调试与诊断技巧
5.1 在线诊断方法
- 在项目树中展开"在线访问"
- 双击"更新可访问的设备"
- 右键点击ET200SP选择"诊断"
- 查看"模块信息"和"诊断缓冲区"
常见故障代码:
| 代码 | 含义 | 处理措施 |
|---|---|---|
| 16#2523 | 设备不可达 | 检查网线、IP设置 |
| 16#A050 | 模块缺失 | 确认实际模块与组态一致 |
| 16#A042 | 电源故障 | 检查24V电源 |
5.2 信号质量优化
对于数字量输入:
- 在模块属性中调整滤波时间(4-12.8ms)
- 必要时增加硬件RC滤波
对于模拟量信号:
- 启用模块的均值滤波(4/8/16次)
- 在程序中增加软件滤波算法
实际案例:某冲压线使用ET200SP采集接近开关信号,通过将滤波时间从6.4ms调整为9.6ms,有效消除了电磁干扰导致的误触发。
6. 高级应用扩展
6.1 多IO设备组网
当需要连接多个ET200SP时:
- 使用工业交换机组建线性或星型网络
- 每个ET200SP设置唯一IP和设备名称
- 在TIA Portal中依次添加并组态
- 建议采用一致的地址规划方案(如按工位编号)
6.2 与HMI的集成
在WinCC中访问远程IO数据:
- 添加S7-1200连接
- 直接引用PLC变量(如"ET200SP_DI[0]")
- 对于复杂数据,建议在PLC中建立UDT统一管理
工程经验:在FB块中添加HMI接口参数,可以显著减少HMI变量连接工作量。例如将所有操作按钮打包成一个WORD变量传输。