很多人一开口就问"PLC怎么通信",但"通信"这两个字太大了。西门子PLC的通信问题,归根结底就三类:
• 同系列CPU之间:两台S7-1200怎么传数据?
• PLC与HMI:触摸屏怎么读取PLC数据?
• PLC与第三方设备:PLC怎么和变频器、仪表通信?

二、主流方案全对比

三、S7协议怎么用?

• S7协议是西门子私有的,第三方设备对接时常走不通
• 两种模式:单边通信(打电话)和双边通信(对讲机)
• 很多设备商的S7实现不是100%标准,这是连接失败的常见原因
实战警告:S7-200 SMART的PN接口只能做智能设备,不能做控制器!如果你把SMART配置成控制器,1200那边怎么都连不上。
三步配置:①安装GSD文件 → ②网络视图拖拽组态 → ③分配设备名称

常见故障:设备名称没分配或分配错误,PN从站会显示"故障",且无法通讯。
选型建议:设备在一起用TCP,长距离没网线用RTU。

代码示例:
MB_CLIENT.REQ := TRUE;
① 物理层:网线插好?灯亮?RS485正负极对?
② 参数:IP同网段?端口对?(S7默认102,Modbus TCP默认502)
③ 协议匹配:主从协议一致?寄存器地址映射对?
④ 诊断:看CPU缓冲区/错误代码(8501=功能码不支持,8520=从站无响应)
搞懂三点:①通信对象 ②选对方式 ③理解协议本质。