S7-300↔300 / 300↔1200/1500 通信:哪些点数可以互通
一、先说结论:能通什么、不能通什么
| 地址区 | 300↔300 (PUT/GET) | 300↔1200 (PUT/GET) | 300↔1500 (PUT/GET) | 说明 |
|---|---|---|---|---|
| I(输入) | ✅ 可读 | ✅ 可读 | ✅ 可读 | 最常用,IB/IW/ID都行 |
| Q(输出) | ✅ 可读可写 | ✅ 可读可写 | ✅ 可读可写 | 最常用 |
| M(标志位) | ✅ 可读可写 | ✅ 可读可写 | ✅ 可读可写 | 最常用 |
| DB(数据块) | ✅ 可读可写 | ✅ 可读可写 | ✅ 可读可写 | 全局DB可以,优化DB有限制 |
| PI(外围输入) | ✅ 可读 | ✅ 可读 | ✅ 可读 | PIB/PIW/PID |
| PQ(外围输出) | ✅ 可读可写 | ✅ 可读可写 | ✅ 可读可写 | PQB/PQW/PQD |
| T(定时器) | ⚠️ 只读 | ❌ 不能通 | ❌ 不能通 | 300的T可以被300读,1200/1500的T不能被300访问 |
| C(计数器) | ⚠️ 只读 | ❌ 不能通 | ❌ 不能通 | 同上 |
| L(局部数据) | ❌ 不能通 | ❌ 不能通 | ❌ 不能通 | 仅本地有效 |
| TEMP(临时数据) | ❌ 不能通 | ❌ 不能通 | ❌ 不能通 | 仅本地有效 |
| IEC定时器/计数器 | — | ❌ 不能通 | ⚠️ 有限支持 | 1200/1500用IEC T/C,300不认识 |
一句话:I、Q、M、DB、PI、PQ 全部互通;T/C 300之间勉强能读,跨代基本不通。
二、每种通信方式的点数容量限制
| 通信方式 | 单个连接最大字节数 | 连接数上限 | 总容量上限 | 备注 |
|---|---|---|---|---|
| PUT/GET(无组态) | 240 字节 | 取决于CPU资源 | — | 300↔300、300↔1200都适用 |
| S7连接(有组态) | 240 字节/连接 | 300 CPU最多16个S7连接 | 16×240 = 3,840 字节 | 300做客户端时 |
| S7连接(有组态) | 240 字节/连接 | 1200最多3个S7连接 | 3×240 = 720 字节 | 1200做服务器时 |
| ISO-on-TCP(开放式) | 无限制(受CPU处理能力) | 300 CPU最多16个开放连接 | 取决于程序 | 用AG_SEND/AG_RECV,不占S7连接资源 |
| TCP/UDP(T-block) | 无硬限制 | 1200最多8个Open IE连接 | 取决于程序 | TSEND_C/TRCV_C |
240字节是S7通信的硬限制,不管用PUT/GET还是有组态S7连接,单个调用最多传240字节。要传更多数据,要么分多次调用,要么用开放式通信(ISO-on-TCP / TCP)。
三、300↔300 详细互通情况
✅ 完全互通(可读可写)
| 区域 | 示例 | 说明 |
|---|---|---|
| DB | DB1.DBX0.0 ~ DB1.DBX239.7 | 240字节以内任意读写 |
| M | M0.0 ~ M239.7 | 240字节 = 30个字节 = 240位 |
| Q | QB0 ~ QB239 | 240字节输出 |
| I | IB0 ~ IB239 | 240字节输入(只读) |
| PI | PIB0 ~ PIB239 | 外围输入,只读 |
| PQ | PQB0 ~ PQB239 | 外围输出,可读写 |
⚠️ 有限互通
| 区域 | 说明 |
|---|---|
| T | 只能读当前值,不能写。单个PUT/GET最多读约12个定时器(每个定时器2字节) |
| C | 只能读当前值,不能写。单个PUT/GET最多读约12个计数器 |
❌ 不通
| 区域 | 原因 |
|---|---|
| L | 局部数据,仅当前OB有效 |
| TEMP | 临时数据,仅当前OB有效 |
| 优化DB中的”仅符号访问”区域 | 300不支持优化访问 |
四、300↔1200/1500 详细互通情况
这是跨代通信,限制更多。
✅ 完全互通
| 区域 | 1200 | 1500 | 说明 |
|---|---|---|---|
| DB | ✅ | ✅ | 全局DB完全互通 |
| M | ✅ | ✅ | 完全互通 |
| I | ✅ | ✅ | 完全互通 |
| Q | ✅ | ✅ | 完全互通 |
| PI | ✅ | ✅ | 完全互通 |
| PQ | ✅ | ✅ | 完全互通 |
❌ 不通(重点注意)
| 区域 | 1200 | 1500 | 原因 |
|---|---|---|---|
| T(IEC定时器) | ❌ | ⚠️ 部分 | 1200用IEC T100~T9999,300不认识;1500可以通过S7通信访问部分,但不推荐 |
| C(IEC计数器) | ❌ | ⚠️ 部分 | 同上 |
| 优化DB | ⚠️ 有限 | ⚠️ 有限 | 1200/1500的优化DB,300只能访问非优化部分 |
| 硬件标识符 | ❌ | ❌ | I/O模块的物理地址不能跨代访问 |
容量限制
| 1200做服务器 | 1500做服务器 | |
|---|---|---|
| 最大S7连接数 | 3个 | 8~16个(视CPU型号) |
| 每个连接最大 | 240字节 | 240字节 |
| 总计最大 | 720字节 | 1,920~3,840字节 |
所以300→1200通信时,最多只能建3个S7连接,总共720字节。要传更多数据,必须用ISO-on-TCP或TCP(开放式通信),不占S7连接资源。
五、实际选型建议
| 你的需求 | 推荐方式 | 原因 |
|---|---|---|
| 300↔300,传少量数据(<240字节) | PUT/GET 无组态 | 最简单,不用NetPro组态 |
| 300↔300,传大量数据(>240字节) | ISO-on-TCP(AG_SEND/AG_RECV) | 不占S7连接资源,300 CPU支持16个开放连接 |
| 300↔1200,传少量数据 | PUT/GET | 1200最多3个连接,够用 |
| 300↔1200,传大量数据 | ISO-on-TCP 或 TCP | 避开1200的3连接限制 |
| 300↔1500 | S7连接有组态 或 ISO-on-TCP | 1500资源充足,推荐有组态S7连接 |
六、一张表总结:到底能通多少”点”
| 通信对 | 单次最大字节 | 相当于多少个点位 | 备注 |
|---|---|---|---|
| 300↔300 PUT/GET | 240字节 | 1920个位(如M0.0~M1919.7) | 或240个字节的DB |
| 300↔300 ISO-on-TCP | 无硬限 | 取决于CPU处理能力 | 推荐大数据量用这个 |
| 300↔1200 PUT/GET | 240字节×3连接 = 720字节 | 5760个位 | 1200只有3个S7连接 |
| 300↔1500 PUT/GET | 240字节×8~16连接 | 1920~3840字节 | 1500资源充足 |
| 300↔1200 ISO-on-TCP | 无硬限 | 取决于程序 | 推荐超过720字节时用 |
你手里具体是什么通信场景?传多少数据?我帮你判断用哪种方式最合适、能通多少点。


