返回主站|会员中心|保存桌面

西门子PLC服务商    

PLC、变频器、电机,触摸屏,低压

联系方式
  • 联系人:黄经理
  • 电话:18124228889
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > S7-300与其他设备进行通信的具体步骤!
新闻中心
S7-300与其他设备进行通信的具体步骤!
发布时间:2025-11-13        浏览次数:1        返回列表

S7-300 PLC 与其他设备(如 HMI、其他 PLC、传感器、变频器等)的通信需根据通信协议硬件配置分步骤实施,常见的核心是 “硬件连接→参数配置→程序调用→测试验证”。以下以最常用的Profibus DPS7 协议(以太网) 和Modbus TCP为例,详解具体步骤:

一、通用前提:硬件准备与基础配置

  1. 硬件清单

    • S7-300 PLC(如 CPU 315-2DP)、通信模块(如 CP 343-1 以太网模块、CP 342-5 Profibus 模块)。

    • 通信介质(Profibus 电缆 + 接头、以太网网线、交换机)。

    • 从站设备(如变频器、远程 I/O 模块、HMI、其他 PLC)。

  2. 软件环境

    • 编程软件:STEP 7(V5.5 及以上)。

    • 设备 GSD 文件(用于 Profibus/Profinet 从站组态,需从设备厂商获取)。

二、通过 Profibus DP 通信(与从站设备,如变频器)

Profibus DP 是工业现场总线,适用于 S7-300 与远程 I/O、变频器、仪表等设备的高速通信。

步骤 1:硬件连接

  • 将 S7-300 的 DP 接口(或 CP 342-5 模块)与从站设备的 Profibus 接口通过 Profibus 电缆连接(需终端电阻,两端设备置 “ON”,中间置 “OFF”)。

步骤 2:组态 Profibus 网络(STEP 7 中)

  1. 创建项目:打开 STEP 7,新建项目(如 “PROFIBUS_COMM”),插入 S7-300 站点(如 CPU 315-2DP)。

  2. 配置 DP 主站

    • 双击 CPU 模块→“属性”→“通信”→“Profibus”,点击 “新建” 创建 DP 网络(如 “DP-master”),分配 Profibus 地址(如 CPU 设为 2)。

  3. 导入从站 GSD 文件

    • 菜单栏 “选项”→“安装 GSD 文件”,导入从站设备的 GSDML 文件(如西门子 MM440 变频器的 GSD)。

  4. 添加从站设备

    • 在硬件组态窗口的 “Profibus DP” 目录下,找到导入的从站设备(如 “MM440”),拖拽到 DP 网络线上,分配从站地址(如 3)。

  5. 配置从站输入 / 输出地址

    • 双击从站设备,在 “输入 / 输出” 选项卡中分配 I/O 地址(如输入 IW256,输出 QW256,长度根据设备需求设置),点击 “确定” 保存。

步骤 3:编写通信程序(读写从站数据)

使用系统功能 SFC14(读从站数据)和 SFC15(写从站数据):

stl

// 读取Profibus从站数据(如MM440状态)
CALL  "DPRD_DAT"       // 读DP数据
      LADDR  :=W#16#100  // 从站输入地址(IW256 = 16#100)
      RECORD :=P#DB10.DBX0.0 BYTE 2  // 数据存储区(DB10的前2字节)
      RET_VAL:=MW10      // 返回值(0=成功)

// 向Profibus从站写入数据(如控制变频器启动)
CALL  "DPWR_DAT"       // 写DP数据
      LADDR  :=W#16#102  // 从站输出地址(QW256 = 16#102)
      RECORD :=P#DB10.DBX2.0 BYTE 2  // 待写入数据(DB10的2-3字节)
      RET_VAL:=MW12      // 返回值(0=成功)
  • 说明LADDR为从站 I/O 地址的十六进制值(IW256=256=16#100),RECORD指定数据存储的 DB 块地址和长度。

步骤 4:从站设备参数设置

  • 在从站设备(如 MM440)中,通过面板或软件设置 Profibus 地址(需与组态一致,如 3),并使能 Profibus 控制模式。

步骤 5:测试通信

  • 下载组态和程序到 PLC,监控 DB10 的数据是否与从站一致(如读取变频器频率,写入启动命令)。

三、通过 S7 协议(以太网)与其他 PLC 通信(如 S7-1200/400)

S7 协议是西门子 PLC 之间的专用以太网协议,通过 CP 343-1 模块实现,支持跨 CPU 读写数据。

步骤 1:硬件连接与 IP 配置

  • S7-300(CP 343-1)、S7-1200、交换机通过网线连接,确保 IP 在同一网段(如 S7-300:192.168.0.1;S7-1200:192.168.0.2)。

  • 在 STEP 7 中配置 CP 343-1 的 IP:双击 CP 模块→“属性”→“以太网”→“IP 地址”,设置 IP 和子网掩码。

步骤 2:组态网络(可选,用于在线监控)

  • 在 STEP 7 项目中插入 “SIMATIC PC Station” 或其他 PLC 站点,通过 “NetPro” 组态以太网连接(无需编程,仅用于可视化网络结构)。

步骤 3:编写通信程序(读写远程 PLC 数据)

使用系统功能 SFC67(X_GET,读远程数据)和 SFC68(X_PUT,写远程数据):

stl

// 读取S7-1200的数据(如DB1.DBW0)
CALL  "X_GET"          // 从远程CPU读数据
      REQ    :=TRUE     // 启动请求(可接脉冲信号)
      DEST_ID:=W#16#1   // 远程PLC的MPI地址(或以太网地址,需配合路由)
      // 远程地址:S7-1200的DB1.DBW0(语法:DB号, 起始字节, 长度)
      DBNUM  :=1        // 远程DB块号
      DBADD  :=0        // 远程DB起始字节
      LEN    :=2        // 读取长度(2字节)
      // 本地存储地址:DB20.DBW0
      RET_VAL:=MW20     // 返回值(0=成功)
      BUSY   :=M0.0     // 忙标志
      DATA   :=P#DB20.DBX0.0 BYTE 2

// 向S7-1200写入数据(如DB1.DBW2)
CALL  "X_PUT"          // 向远程CPU写数据
      REQ    :=TRUE     // 启动请求
      DEST_ID:=W#16#1   // 远程PLC地址
      DBNUM  :=1        // 远程DB块号
      DBADD  :=2        // 远程DB起始字节
      LEN    :=2        // 写入长度
      RET_VAL:=MW22     // 返回值
      BUSY   :=M0.1     // 忙标志
      DATA   :=P#DB20.DBX2.0 BYTE 2  // 本地数据地址
  • 说明DEST_ID在以太网通信中需通过 “路由” 配置(在 NetPro 中设置 CPU 间的通信路径),或直接使用 IP 地址(需 CP 模块支持)。

步骤 4:测试通信

  • 远程 PLC(如 S7-1200)需确保 DB 块设置为 “可被其他设备访问”,下载程序后监控本地 DB20 的数据是否与远程一致。

四、通过 Modbus TCP 与第三方设备通信(如仪表、HMI)

Modbus TCP 是通用协议,适用于 S7-300 与第三方设备(非西门子)通信,需通过 CP 343-1 模块 + Modbus 库实现。

步骤 1:安装 Modbus 库

  • 从西门子官网下载 “Modbus TCP for S7-300” 库(如 SIMATIC_NET_CP),安装到 STEP 7 中。

步骤 2:硬件组态与 IP 配置

  • 同 “S7 协议” 步骤 1,确保 S7-300 与第三方设备 IP 在同一网段。

步骤 3:调用 Modbus 功能块

以 “读保持寄存器” 为例,使用库中的 FB65(MB_CLIENT):

  1. 创建背景数据块:插入 FB65,生成背景 DB(如 DB65)。

  2. 配置参数

    stl

  3. CALL  "MB_CLIENT"
         REQ    :=M1.0     // 启动请求(上升沿)
         DISCON :=FALSE    // 不断开连接
         MODE   :=1        // 1=读,2=写
         ADDR   :=192.168.0.3  // 第三方设备IP
         PORT   :=502      // Modbus默认端口
         DB_NO  :=0        // 0=保持寄存器
         DB_LEN :=2        // 读取长度(2寄存器)
         DATA   :=P#DB30.DBX0.0 BYTE 4  // 本地存储地址(2寄存器=4字节)
         DONE   :=M1.1     // 完成标志
         ERROR  :=M1.2     // 错误标志
         STATUS :=MW30     // 状态码(0=成功)
  • 说明MODE=1为读保持寄存器,DB_NO=0对应 Modbus 地址 00001~09999,DATA需按大端模式解析(高低字节互换)。

步骤 4:第三方设备配置

  • 在第三方设备(如仪表)中启用 Modbus TCP 服务器,设置 IP 地址和端口(502),并配置允许读取的寄存器地址。

步骤 5:测试通信

  • 触发REQ信号,监控DONE是否为 1,DB30是否正确读取到第三方设备的寄存器数据。

五、关键注意事项

  1. 地址一致性:组态中的设备地址(Profibus 地址、IP)必须与实际设备设置一致。

  2. GSD 文件版本:Profibus/Profinet 从站需使用匹配的 GSD 文件,否则可能无法正常通信。

  3. 数据格式:西门子数据为大端模式,第三方设备可能为小端模式,需在程序中进行字节转换(如使用 SWAP 指令)。

  4. 错误处理:通信程序中需判断RET_VALSTATUS,处理超时、断线等异常(如重试机制)。

  5. 权限设置:远程 PLC 的 DB 块需设置为 “可读写”(如 S7-1200 的 DB 块属性勾选 “优化的块访问” 并取消 “仅符号访问”)。

收缩
  • QQ咨询

  • 电话咨询

  • 18124228889
  • 添加微信客服