一、通信基础
1. 网络术语与设备
- 关键设备:交换机、路由器、网关等。
- 物理接口:RS-485(支持多点通信)、RS-232C(点对点串行通信)。
2. OSI参考模型
- 核心框架:理解协议分层(物理层至应用层),指导通信协议设计。
3. 现场总线
- 主流类型:PROFIBUS、CAN、Modbus等,用于工业设备互联。
二、S7通信(西门子专用协议)
1. 通信基础
- 基于西门子内部协议,高效实现同品牌PLC间数据交换(如S7-1200之间)。
2. 典型应用
- S7-1200 PLC间通信:无需额外硬件,通过编程配置数据块共享。
- 优势:低延迟、高可靠性,适用于实时控制任务。
三、PROFINET IO通信(工业以太网)
1. 通信基础
- 基于以太网的实时工业协议,支持循环数据交换与设备诊断。
2. 应用场景
- 连接分布式I/O模块(如ET200SP):
- 关键配置步骤:
- 在TIA Portal中组态ET200SP从站。
- 分配设备名称和IP地址(注:PLC地址通常不可直接修改,需恢复出厂设置)。
- ET200SP必须启用“电位组”(ET200MP无此要求)。
- 特点:支持拓扑灵活扩展,适用于模块化生产线。
四、串行通信(Modbus-RTU)
1. Modbus通信基础
- 协议指令:支持功能码(如03读保持寄存器、06写单寄存器)。
- 地址映射:将设备数据点映射至Modbus地址空间。
2. 应用案例:PLC与温度仪表通信
- 硬件配置:
- 使用CM1241模块(RS-485接口)连接温度仪表。
- 设计原理图:确保总线终端电阻匹配。
- 编程实现:
- 在OB1中调用通信功能块(如`MB_MASTER`)。
- 在FB1中处理温度数据转换与监控逻辑。
- 实时读取温度值并触发报警或控制。
五、Modbus-RTU通信(第三方设备集成)
案例:S7-1200读取温度仪表数据
硬件:
-
S7-1200(CPU 1214C) + CM1241(RS485模块)
-
温度仪表(支持Modbus-RTU,地址01,温度寄存器40001)
编程步骤:
-
硬件配置
-
在TIA Portal中启用CM1241模块,设置参数:
波特率:9600 数据位:8 停止位:1 校验位:无
-
-
调用Modbus指令
-
在OB1中调用主站指令块
MB_MASTER
:
"MB_MASTER"(REQ:=TRUE, MB_ADDR:=1, // 仪表地址01MODE:=0, // 0=读取DATA_ADDR:=40001, // 温度寄存器DATA_LEN:=1, // 读取1个寄存器DATA_PTR:=P#DB3.DBX0.0 WORD 1, // 存入DB3DONE=>#Done, ERROR=>#ErrorCode);
-
-
数据处理(FB1功能块)
// 将读取的原始值转换为实际温度(假设仪表返回值为0-1000对应0-100℃) #RawValue := WORD_TO_INT(DB3.DBW0); #RealTemperature := INT_TO_REAL(#RawValue) / 10.0;
调试要点(PPT提示):
-
确保CM1241模块的接线端子A/B与仪表极性匹配。
-
总线末端加120Ω终端电阻抗干扰。
关键对比总结
通信方式 | 适用场景 | 硬件需求 | 特点 |
S7通信 | 西门子PLC间数据交互 | 无需额外模块 | 高速、低延迟,配置简单 |
PROFINET IO | 分布式I/O扩展(如ET200SP) | 支持PROFINET的接口 | 实时性强,支持拓扑诊断 |
Modbus-RTU | 第三方设备集成(仪表、传感器) | CM1241(RS-485) | 成本低,通用性强,需协议适配 |
注意事项
1. PROFINET配置:ET200SP必须启用“电位组”,且设备名/IP地址需在初始组态时正确设定。
2. Modbus地址映射:需严格匹配仪表寄存器地址与PLC数据块定义。
3. 抗干扰设计:RS-485总线需加终端电阻,避免长距离通信干扰。
> 总结
> S7-1200 PLC支持多协议通信,满足从高速设备互联到低成本仪表集成的全场景需求。S7通信优化内部网络效率,PROFINET支撑分布式控制,Modbus-RTU实现跨品牌设备接入,三者结合可构建灵活、可靠的工业通信架构。