常问问题 10/2014
基于 S7-300,400 以太网通讯模
块 CP343-1&CP443-1 Modbus
TCP 通讯快速入门(更新版本
V4.3)
关键字:CP343-1,CP443-1,Modbus TCP,MobusTCP CP V4.3 软件包
http://support.automation.siemens.com/CN/view/zh/90276761
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
目录
1 Modbus TCP 通讯概述 ......................................................................................... 3
1.1 通讯所使用的以太网参考模型 ................................................................... 3
1.2 Modbus TCP 数据帧 ................................................................................. 3
1.3 Modbus TCP 使用的通讯资源端口号 ........................................................ 4
1.4 Modbus TCP 使用的功能代码 ................................................................... 4
1.5 Modbus TCP 通讯应用举例 ...................................................................... 5
2 SIMATIC S7-300/400 系统 Modbus/TCP 通讯概述 ............................................. 6
2.1 S7-300/400 系统 Modbus/TCP 通讯产品概述........................................... 6
2.2 “ModbusTCP CP V4.3”软件选项包使用概述 .......................................... 7
2.2.1 “ ModbusTCP CP V4.3”块库使用说明 ................................................. 7
2.2.2 “ModbusTCP CP V4.3”选项包硬件和软件需求 ................................... 8
2.3 “ModbusTCP CP V4.3”软件选项包与 step7 集成概况 ............................ 10
3 配置 S7-400 单站系统通过 CP443-1 作为 Server 进行 Modbus TCP 通讯 ...... 12
3.1 例子中使用的硬件设备及软件 ................................................................. 12
3.2 S7-400 系统及 Modscan32 软件组态 ...................................................... 13
3.3 通讯测试 .................................................................................................. 17
4 配置 S7-400 单站系统作为 Client 进行 Modbus TCP 通讯 ............................... 24
4.1 例子中使用的硬件设备及软件 ................................................................. 24
4.2 S7-400 单站系统与 ModSim32 软件组态 ................................................ 24
4.3 通讯测试 .................................................................................................. 28
5 “ ModbusTCP CP V4.3” 选项包通讯使用总结及相关注意事项 ......................... 31
6 “ModbusTCP CP V4.3” 软件包授权................................................................... 32
6.1 读取 IDENT_CODE ................................................................................. 32
6.2 通过拨打西门子授权服务中心申请注册码 REG_KEY ............................. 34
6.3 通过网站申请注册码 REG_KEY ............................................................. 34
6.4 使用注册码 REG_KEY ............................................................................ 37
附表一 CP 进行 Modbus TCP 通讯 FB 输出常见故障代码及处理 ......................... 38
2
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
1 Modbus TCP 通讯概述
MODBUS/TCP 是简单的、中立厂商的用于管理和控制自动化设备的 MODBUS 系列通
讯协议的派生产品,显而易见,它覆盖了使用 TCP/IP 协议的“Intranet”和“Internet”环境中
MODBUS 报文的用途。协议的最通用用途是为诸如 PLC’s,I/O 模块,以及连接其它简单域
总线或 I/O 模块的网关服务的。
MODBUS/TCP 使 MODBUS_RTU 协议运行于以太网,MODBUS TCP 使用 TCP/IP 和
以太网在站点间传送 MODBUS 报文,MODBUS TCP 结合了以太网物理网络和网络标准
TCP/IP 以及以 MODBUS 作为应用协议标准的数据表示方法。MODBUS TCP 通信报文被封
装于以太网 TCP/IP 数据包中。与传统的串口方式,MODBUS TCP 插入一个标准的
MODBUS 报文到 TCP 报文中,不再带有数据校验和地址。
1.1 通讯所使用的以太网参考模型
Modbus TCP 传输过程中使用了 TCP/IP 以太网参考模型的 5 层:
第一层:物理层,提供设备物理接口,与市售介质/网络适配器相兼容
第二层:数据链路层,格式化信号到源/目硬件址数据帧
第三层:网络层,实现带有 32 位 IP 址 IP 报文包
第四层:传输层,实现可靠性连接、传输、查错、重发、端口服务、传输调度
第五层:应用层,Modbus 协议报文
1.2 Modbus TCP 数据帧
Modbus 数据在 TCP/IP 以太网上传输,支持 Ethernet II 和 802.3 两种帧格式,Modbus
TCP 数据帧包含报文头、功能代码和数据 3 部分,MBAP 报文头(MBAP、Modbus
Application Protocol、Modbus 应用协议)分 4 个域,共 7 个字节,如图 1 所示:
3
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
图 1: MODBUS TCP 报文
由于使用以太网 TCP/IP 数据链路层的校验机制而保证了数据的完整性,MODBUS TCP
报文中不再带有数据校验”CHECKSUM”,原有报文中的“ADDRESS”也被“UNIT ID”替代而加
在 MODBUS 应用协议报文头中。
1.3 Modbus TCP 使用的通讯资源端口号
在 Modbus 服务器中按缺省协议使用 Port 502 通信端口,在 Modbus 客户器程序中设置
任意通信端口,为避免与其他通讯协议的冲突一般建议 2000 开始可以使用。
1.4 Modbus TCP 使用的功能代码
按照使用的通途区分,共有 3 种类型分别为:
1) 公共功能代码:已定义好功能码,保证其唯一性,由 Modbus.org 认可;
2) 用户自定义功能代码有两组,分别为 65~72 和 100~110,无需认可,但不保证代码
使用唯一性,如变为公共代码,需交 RFC 认可;
3) 保留功能代码,由某些公司使用某些传统设备代码,不可作为公共用途。
按照应用深浅,可分为 3 个类别:
1) 类别 0,客户机/服务器最小可用子集:读多个保持寄存器(fc.3);写多个保持寄存器
(fc.16)。
2) 类别 1,可实现基本互易操作常用代码:读线圈(fc.1);读开关量输入(fc.2);读输入寄
存器(fc.4);写线圈(fc.5);写单一寄存器(fc.6)。
3) 类别 2,用于人机界面、监控系统例行操作和数据传送功能:强制多个线圈(fc.15);读
通用寄存器(fc.20);写通用寄存器(fc.21);屏蔽写寄存器(fc.22);读写寄存器(fc.23)。
4
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
1.5 Modbus TCP 通讯应用举例
在读寄存器的过程中,以 Modbus TCP 请求报文为例,具体的数据传输过程如下:
1) Modbus TCP 客户端实况,用 Connect()命令建立目标设备 TCP 502 端口连接数据通信
过程;
2) 准备 Modbus 报文,包括 7 个字节 MBAP 内请求;
3) 使用 send()命令发送;
4) 同一连接等待应答;
5) 同 recv()读报文,完成一次数据交换过程;
6) 当通信任务结束时,关闭 TCP 连接,使服务器可以为其他服务。
5
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
2 SIMATIC S7-300/400 系统 Modbus/TCP 通讯概述
2.1 S7-300/400 系统 Modbus/TCP 通讯产品概述
通过 SIMATIC S7 和第三方设备的建立 MODBUS/TCP 通信时按照产品使用分单站和冗
余系统,分为通过以太网通讯模块 CP 和 CPU 的集成 PN 口两种情况。
1) 通过以太网通讯模块 CP343-1 或 CP443-1:
在 S7 控制器通过外部 CP343-1 或 CP443-1 和第三方设备间建立 Modbus/TCP 连接时
需要软件选项包"ModbusTCP CP", 订货号为 2XV9450-1MB00 ,单授权(仅对一个 CPU 有
效),最新的版本为 V4.3,支持功能代码 1、2、3、4、5、6、15 和 16,功能块库及订货号
如下图 2 所示:
图 2:软件包”ModbusTCP CP V4.3”
2) 通过 CPU 集成的 PN 接口:
在 S7 控制器通过 CPU 集成 PN 接口和第三方设备间建立 Modbus/TCP 连接时需要产品
软件选项包"ModbusTCP PN ",订货号为 2XV9450-1MB02,最新版本 V2.6, 单授权(仅对
一个 CPU 有效),支持功能代码 1、2、3、4、5、6、15 和 16,对 S7-300 和 S7-400 集成
PN 接口的 CPU 都适用,功能块库及订货号如下图 3 所示:
图 3:软件包”ModbusTCP PN-CPU V2.6”
3) 通过 S7-400H 冗余系统的 CP443-1 接口:
通过 S7-400H 冗余系统的 CP443-1 建立第三方设备的 MODBUS/TCP 通信时需要产品软
件选项包"Modbus/TCP Redundant ",订货号为 2XV9450-1MB11,最新版本 V2.1,可用于
6
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
S7-400H 或者 S7-400 单 CPU 带两个 CP443-1,支持功能代码 1、2、3、4、5、6、15 和
16,功能块库及订货号如下图 4 所示:
图 4: 软件包“Modbus/TCP Redundant”
4) 通过 S7-400H 集成的 PN 接口:
通过 S7-400H 集成的 PN 接口建立第三方设备的 MODBUS/TCP 通信时需要产品软件选
项包"Modbus/TCP PN CPU Redundant",订货号为 6AV6 676-6MB10-0AX0,最新版本
V1.0,可用于 S7-400H 或者 S7-400 单 CPU,支持功能代码 1、2、3、4、5、6、15 和
16,功能块库及订货号如下图 5 所示:
图 5: 软件包“Modbus/TCP PN CPU Redundant”
2.2 “ModbusTCP CP V4.3”软件选项包使用概述
2.2.1 “ ModbusTCP CP V4.3”块库使用说明
1) 该功能块库可以用于 S7-300 单站通过 CP343-1 或 S7-400 单站通过 CP443-1 进行
ModbusTCP 通讯。
7
s
n
e
m
e
S
ã
i
t
h
g
i
r
y
p
o
C
r
a
e
y
t
h
g
i
r
y
p
o
C
G
A
d
e
v
r
e
s
e
r
s
t
h
g
i
r
l
l
A
2) 由于需要在 SIMATIC 站与其他通讯伙伴之间建立 TCP 连接用于 Modbus 通讯,因此
需要调用 SIMATIC S7 标准功能块,对于 S7-300/400 的 CP 来说,需要调用
FC5(AG_SEND),FC6(AG_RECV)功能块。
3) 对于主要功能块 FB106、107 和 108 来说,包含了 V1.x 和 V2.x,它们管脚参数并没有
更改,只是在 V2.x 中增加了 FC10”AG_CNTRL”功能块用于管理 TCP 连接,是否支持功能
块与 CP 的型号和固件版本有关,如下图 6 所示:
图 6:功能块 V1.x 和 V2.x 版本区别
2.2.2 “ModbusTCP CP V4.3”选项包硬件和软件需求
所支持硬件和软件需求如下图 7 和图 8 所示:
8