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

西门子(SIEMENS)服务商    

框架断路器、塑壳断路器、隔离开关、软启动、变频器、电机 、PLC、触摸屏

联系方式
  • 联系人:吴经理
  • 电话:18576370666
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > s7-300PLC与200PLC进行DP通信时,300PLC读出的数据可直接写入I存储区!
新闻中心
s7-300PLC与200PLC进行DP通信时,300PLC读出的数据可直接写入I存储区!
发布时间:2025-12-15        浏览次数:2        返回列表

S7-300 PLC与S7-200 PLC通过PROFIBUS-DP通信时,300PLC不能直接将读取的数据写入其I存储区(输入存储区),但可通过特定方式实现数据交互。 以下是详细分析:

一、S7-300与S7-200的DP通信原理

  1. 主从架构

    • S7-300:作为PROFIBUS-DP主站,负责控制通信周期、读写从站数据。

    • S7-200:需通过EM277 PROFIBUS-DP扩展模块接入总线,作为从站,被动响应主站请求。

    • 数据流向:主站(300)通过周期性轮询读取从站(200)的输出数据(对应200的Q区),并向从站写入输入数据(对应200的I区)。

  2. 存储区映射关系

    • PIB/PQB区:通过DP通信时,300PLC需配置过程映像区(Process Image),将200PLC的I/Q区映射到300的DB块或M区,而非直接操作I/Q区。

    • I区(输入):存储外部信号(如传感器状态),仅可被外部设备(如300PLC)写入。

    • Q区(输出):存储程序逻辑输出(如控制继电器),仅可被200PLC自身程序修改,但可被300PLC读取。

    • S7-200的I/Q区

    • S7-300的存储区

二、为何不能直接写入300PLC的I存储区?

  1. I存储区的特性

    • 只读属性:S7-300的I区(输入存储区)用于存储外部物理输入信号(如按钮、传感器),由硬件模块(如DI模块)直接刷新,程序无法直接修改

    • 数据流向限制:DP通信中,300PLC作为主站,只能从从站(200PLC)读取数据到自身存储区,或向从站写入数据,但无法通过通信将数据写入自身的I区。

  2. 替代方案

    • 硬件组态

    • 数据映射

    • 程序逻辑

    • 200PLC的I0.0-I0.7(8位输入)→ 300PLC的DB1.DBB0(DB块第0字节)。

    • 200PLC的Q0.0-Q0.7(8位输出)→ 300PLC的DB1.DBB8(DB块第8字节)。

    • 读取200PLC数据:MOV DB1.DBB0, MW200(将DB1.DBB0的值传送到MW200)。

    • 写入数据到200PLC:MOV MW300, DB1.DBB8(将MW300的值传送到DB1.DBB8,再通过DP写入200的Q区)。

    • 在300PLC中定义一个DB块(如DB1)或M区(如MW100),通过DP通信将200PLC的数据写入该区域。

    • 程序逻辑通过操作DB/M区间接使用数据,而非直接操作I区。

    • 使用DB块或M区

    • 示例配置

    1. 在STEP 7中组态S7-300为主站,S7-200+EM277为从站。

    2. 配置从站的输入/输出字节数(如输入8字节、输出8字节)。

三、特殊情况:300PLC的I区数据来源

若需将外部信号(如200PLC的数据)映射到300PLC的I区,需通过以下方式间接实现:

  1. 使用硬件中继

    • 将200PLC的输出信号(Q区)通过数字量输出模块转换为物理信号(如24V DC),再接入300PLC的数字量输入模块(DI),此时信号会刷新300的I区。

    • 缺点:增加硬件成本和布线复杂度,仅适用于简单场景。

  2. 通过CPU间通信

    • 若300和200PLC支持其他通信协议(如MPI、以太网),可通过PUT/GET指令或S7通信将数据写入300的DB/M区,再由程序逻辑将DB/M区数据复制到I区(但I区仍不可直接写入,需通过模拟量输入模块或特殊功能块间接实现)。

    • 限制:S7-200不支持S7通信,仅支持DP、PPI、MPI(有限功能)和以太网(需CP243-1模块)。

四、总结与建议

  1. 标准做法

    • 通过DP通信将200PLC的数据映射到300PLC的DB块或M区,程序逻辑操作DB/M区实现数据交互。

    • 避免直接操作I区,因其设计初衷是存储硬件输入信号。

  2. 示例代码(STEP 7)

    scl// 读取200PLC的I区数据(映射到300的DB1.DBB0)DATA_IN := DB1.DBB0;  
    // 将300的MW100写入200PLC的Q区(映射到300的DB1.DBB8)
    DB1.DBB8 := MW100;
  3. 注意事项

    • 确保DP通信组态中输入/输出字节数与实际需求匹配。

    • 使用SFC14 "DPRD_DAT"SFC15 "DPWR_DAT"指令可更灵活地读写DP从站数据(需定义通信区域地址)。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服