本篇为独立专项技术文档,专门讲解西门子 S7-300/400 经典单边通信指令 SFB14(GET)、SFB15(PUT),内容独立完整、不依赖其他资料,适用于考试背诵、面试答题、现场调试落地。
一、指令本质与通信原理(核心)
SFB14、SFB15 属于西门子S7 单边通信专用系统功能块。
通信模型分为两端:客户端(主动端)、服务器(被动端)。
单边通信最大特点:只需要客户端写程序、建连接;服务器无需编程、无需配置,上电即可被读写数据。
• SFB14 GET:客户端 读取 远程服务器 PLC 数据
• SFB15 PUT:客户端 写入 数据到远程服务器 PLC
支持网络:MPI、PROFIBUS、以太网 S7 连接。
二、端口参数逐字讲解(必懂)
1. 输入参数
• REQ:通信触发信号,上升沿触发一次通信。长通会循环刷屏、造成总线负载高、数据抖动。
• ID:S7 连接编号,由 NetPro 组态生成,两台 PLC 通信链路唯一标识。
• ADDR_1:远程 PLC 数据地址指针,指定要读/写的远端区域(DB、M、E、A)。
• SD_1(PUT专用):本地发送数据区,要写入远端的数据来源。
• SRD_1(GET专用):本地接收数据缓存区,存放读取回来的远端数据。
2. 输出参数
• DONE:单次通信成功完成标志,脉冲型信号。
• ERROR:通信错误标志,报错瞬间置位。
• STATUS:故障状态码,精准定位连接错误、地址错误、长度错误。
三、标准完整实操步骤(流程)
以下为现场通用标准调试流程,可直接用于项目。
步骤1:硬件组网
两台 S7 PLC 同一网段组网,IP 互通、硬件链路正常。
步骤2:组态 S7 单向连接
仅在客户端 PLC 打开 NetPro,新建 S7 连接,选择“单边通信”,记录连接 ID 号;服务器无需任何组态。
步骤3:程序编写
客户端 OB1 调用 SFB14/SFB15,自动生成独立背景 DB,禁止共用背景DB。
步骤4:指针匹配
远程地址长度、本地缓存长度 必须完全一致,字节数不匹配直接报错。
步骤5:边沿触发调试
使用上升沿触发 REQ,监控 DONE、ERROR 信号,通断状态一目了然。
四、典型应用场景(标准答案)
• 多站数据采集:主 PLC 通过 SFB14 批量读取各从站设备状态、温度、压力、产量数据。
• 远程参数下发:主 PLC 通过 SFB15 统一下发速度、频率、阈值、参数设定。
• 跨站联锁联动:分站故障上传主站,主站下发停机、复位、联锁信号,实现跨设备联动。
五、核心禁忌与调试排错(干货)
• REQ 严禁长通,必须边沿触发,防止总线拥堵、数据刷新异常。
• 收发数据字节长度必须严格对等,是 90% 报错的根源。
• MPI 网络单包最大传输 160 字节,超出必须分包传输。
• 通信未完成(DONE=0)不可重复触发,避免指令冲突。
• 服务器停机时,GET 可读静态数据,PUT 写入直接报错,程序需做容错处理。
六、极简总结(背诵版)
SFB14 读远端,SFB15 写远端;单边通信只需客户端组态编程,边沿触发、长度匹配、分包传输,是跨PLC数据交互最稳定、最常用的工业通信方式。