如何通过Modbus 协议实现S7-1200 与S7-200 通讯 - 工业在线

28
如何通过 Modbus 协议实现 S7-1200 S7-200 通讯 How to communication between S7-1200 and S7-200 with Modbus protocol Getting Started Edition (2010 1 )

Transcript of 如何通过Modbus 协议实现S7-1200 与S7-200 通讯 - 工业在线

如何通过 Modbus 协议实现 S7-1200 与 S7-200 通讯 How to communication between S7-1200 and S7-200 with Modbus protocol

Getting Started Edition (2010 年 1 月)

摘 要 本文介绍了通过 Modbus 协议实现 S7-1200 与 S7-200 的通信。

关键词 Modbus 协议,S7-1200,S7-200

Key Words Modbus protocol,S7-1200,S7-200

IA&DT Service & Support

Page 2-28

目 录

如何通过Modbus协议实现 S7-1200 与S7-200 通讯 ..............................................................1 1.控制系统原理...................................................................................................................4 2.硬件需求..........................................................................................................................4 3.软件需求..........................................................................................................................5 4.组态 .................................................................................................................................5

4.1 S7-1200 作Modbus主站,S7-200 作Modbus从站....................................................5 4.2 S7-200 作Modbus主站,S7-1200 作Modbus从站 .................................................. 16

附录-推荐网址................................................................................................................... 26

IA&DT Service & Support

Page 3-28

西门子 S7-1200 紧凑型 PLC 在当前的市场中有着广泛的应用,由于其性价比高,所以

常被用作小型自动化控制设备的控制器,这也使得它经常与 Modbus 仪表(扫描枪、打印机

等设备进行通讯。因为没有第三方 Modbus 仪表,这里就以 S7-200 作为第三方的仪表为例

介绍 Modbus 通讯。

1.控制系统原理

图 1:通讯系统原理

2.硬件需求 S7-1200 PLC 目前有 3 种类型的 CPU:

1)S7-1211C CPU。

2)S7-1212C CPU。

3)S7-1214C CPU。

这三种类型的 CPU 最多都可以连接三个串口通信模版。

本例中使用的 PLC 硬件为:

1)PM1207 电源 ( 6EP1 332-1SH71 )

2) S7-1214C ( 6ES7 214 -1BE30 -0XB0 )

3) CM1241 RS485 ( 6ES7 241 -1CH30 -0XB0 )

IA&DT Service & Support

Page 4-28

4)CPU224XP (6ES7 214-2AD23-0XB0)

3.软件需求 1) 编程软件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0) 2)编程软件 STEP 7 MicroWIN; Modbus 库软件选项包

4.组态

我们通过下述的实际操作来介绍如何在 Step7 Basic V10.5 中组态 S7-1214C 和 S7-

200 的 Modbus 通信。

4.1 S7-1200 作 Modbus 主站,S7-200 作 Modbus 从站 S7-1200 作为 Modbus 主站的配置步骤如下:

点击桌面上的“Totally Integrated Automation Portal V10”图标,打开如下图:

图 2: 新建 S7 -1200 项目

首先需要选择“Create new project”选项,然后在“Project name:”里输入

Modbus_Master;在“Path:”修改项目的存储路径为“C:\”;点击“Create”,这样就

IA&DT Service & Support

Page 5-28

创建了一个文件 Modbus 的新项目。创建后的窗口如下图所示:

图 3: 新建项目后

点击门户视图左下角的“Project View”切换到项目视图下,如下图:

图 4: 切换到项目视图

IA&DT Service & Support

Page 6-28

打开后,在“Devices”标签下,点击“Add new device”,在弹出的菜单中输入设备名

“PLC_1”并在设备列表里选择 CPU 的类型。选择后如下图:

图 5: PLC 硬件组态

插入 CPU 后,点击 CPU 左边的空槽,在右边的“Catalog ”里找到“Communication”

下的 RS485 模块,拖拽或双击此模块,这样就把串口模块插入到硬件配置里,接下来就需

要配置此 RS485 模块硬件接口参数,选择 RS485 模块,在其下方会出现该模块的硬件属性

配置窗口, 在属性窗口里有下面五个选项, “general”; “Port Configuration”;

“Transmit message Configuration”;“Receive Message Configuration”;“IO

Address/HW identify”。在“General”里包括了此模块的“项目信息”;而在“Port

Configuration”里可以对端口的进行参数配置,

波特率为:9600 ;

校验方式:无 ;

数据位为:8 ;

停止位: 1;

硬件流控制:无;

IA&DT Service & Support

Page 7-28

等待时间: 1ms

设置参数如下图:

图 6: RS485 端口配置

在“Transmit message Configuration”和“Receive Message Configuration”里保持默

认设置,在“IO Address/HW identify”里确认一下“硬件识别号”为 11。

此时,完成了硬件的组态,接下来需要编写 Modbus 通讯程序。

在 PLC 中编写发送程序。在项目管理视图下双击“Device”—》“Program block”—》

“Add new block”在弹出的窗口中选择“Organizations Block(OB)”,然后在其右边的窗

口里选择“Startup”,去除“Symbolic Access Only”的选项勾。如下图所示:

图 7: 添加启动 OB 块

IA&DT Service & Support

Page 8-28

点击“OK”后会打开此 OB 块,然后在启动 OB 块里用 MB_COMM_LOAD(注:

MB_COMM_LOAD 和 MB_MASTER 功能块是在“Project Library”下的“Library”选项卡

里,如下图所示:)

图 8: Library

调用后如下图所示:

图 9: 调用 MB_COMM_LOAD 块

IA&DT Service & Support

Page 9-28

在调用 MB_COMM_LOAD 功能块时 ,都会自动弹出创建相应背景数据块的界面,如下

图:

图 10:创建背景数据块

按上面的步骤在 OB1 中插入 MB_MASTER 功能块如下图:

图 11:调用 MB_MASTER 块

IA&DT Service & Support

Page 10-28

在插入功能块的过程,相应的生成 MB_COMM_LOAD_DB 和 MB_MASTER_DB,两个背

景数据块。然后再创建一个发送或接收的数据缓冲区,点击 PLC_1 项目下的“Program

Block”下的“Add new block”,在弹出的窗口中选择 DB 类型为“Global DB”,并去掉

“Symbolic access only”选项勾(这样可以对该 DB 块进行直接地址访问),并取名该 DB

块为 MB_COMM_DB。建好这个 DB 块后,双击打开 MB_COMM_DB 预先定义数据区的大

小,如下图所示:

图 12:数据区的定义

完成数据区的定义后,接下来就可以对 MB_COMM_LOAD 功能块和 MB_Master 功能

块进行参数赋值,赋值的参数见图 9 和图 11。 在上面的编程块里需要注意的是,在

MB_MASTER 功能块中的参数 MB_ADDR 参数是从站的 Modbus 的站地址。这里要读取的

从站的站地址为 2;关于 MODE、DATA_ADDR、DATA_LEN 可在下表中查看,

DATA_PTR 存放发送或接收到的数据。

IA&DT Service & Support

Page 11-28

表 1:MB_MASTER Modbus 功能表

IA&DT Service & Support

Page 12-28

上面就完成了程序的编写,对项目进行编译;右击 PLC_1 项目在弹出的菜单里选择

“Complies ALL”选项,这样就对硬件与软件进行编译,如下图:

图 13:编译项目

编译且没有错误后就可以下载程序到 PLC 中,同样右击 PLC_1 项目,在弹出的菜单选择

“Download to Device”。

S7-200 作为 Modbus 从站的配置步骤如下:

点击桌面上的“V4.0 STEP 7 MicroWIN SP6”图标(因为 STEP 7 MicroWIN 安装时并没有

安装 Modbus 的库程序,所以 Modbus 的库程序是需要单独安装的,安装后才可以在库程序

中调用 Modbus 的通讯功能块,关于库程序可以咨询西门子热线或访问西门子的官方网

站),打开后并编写 Modbus 从站程序如下图:

IA&DT Service & Support

Page 13-28

图 14:S7-200 Modbus 从站编程

在上面调用的是端口 0 的程序,所以在连接通讯线时,需要连接到端口 0 上,编译并下载项

目到 S7-200 的 PLC 中。下载后运行 PLC。

用 DP 电缆连接 S7-1200 与 S7-200。

在线监控 S7-200 中的程序,并监控变量表,修改 VB1000 到 VB1011 的值为 1 到 12

(VB1000 到 VB1011 对应的 Modbus 的地址为 40001-40006)。监控到的值如下图所示:

IA&DT Service & Support

Page 14-28

图 15:S7-200 监控变量值

在线监控 S7-1200 变量表如下图:

图 16:S7-1200 监控变量值

IA&DT Service & Support

Page 15-28

4.2 S7-200 作 Modbus 主站,S7-1200 作 Modbus 从站 S7-1200 作为 Modbus 从站的配置步骤如下:

点击桌面上的“Totally Integrated Automation Portal V10”图标,打开如下图:

图 17:S7-1200 监控变量值

首先需要选择“Create new project”选项,然后在“Project name:”里输入

Modbus_Slave 在“Path:”修改项目的存储路径为“C:\Backup file”;点击“Create”,

这样就创建了一个文件 Modbus_Slave 的新项目。创建后的窗口如下图所示:

IA&DT Service & Support

Page 16-28

图 18: 新建项目后

点击门户视图左下角的“Project View”切换到项目视图下,如下图:

图 19:切换到项目视图

IA&DT Service & Support

Page 17-28

打开后,在“Devices”标签下,点击“Add new device”,在弹出的菜单中输入设备名

“PLC_1”并在设备列表里选择 CPU 的类型。选择后如下图:

图 20: PLC 硬件组态

插入 CPU 后,点击 CPU 左边的空槽,在右边的“Catalog ”里找到“Communication”

下的 RS485 模块,拖拽或双击此模块,这样就把串口模块插入到硬件配置里,接下来就需

要配置此 RS485 模块硬件接口参数,选择 RS485 模块,在其下方会出现该模块的硬件属性

配置窗口, 在属性窗口里有下面五个选项, “general”; “Port Configuration”;

“Transmit message Configuration”;“Receive Message Configuration”;“IO

Address/HW identify”。在“General”里包括了此模块的“项目信息”;而在“Port

Configuration”里可以对端口的进行参数配置,

波特率为:9600 ;

校验方式:无 ;

数据位为:8 ;

停止位: 1;

IA&DT Service & Support

Page 18-28

硬件流控制:无;

等待时间: 1ms

设置参数如下图:

图 21: RS485 端口配置

在“Transmit message Configuration”和“Receive Message Configuration”里保持默

认设置,在“IO Address/HW identify”里确认一下“硬件识别号”为 11。

此时,完成了硬件的组态,接下来需要编写 Modbus 通讯程序。

在 PLC 中编写发送程序。在项目管理视图下双击“Device”—》“Program block”—》

“Add new block”在弹出的窗口中选择“Organizations Block(OB)”,然后在其右边的窗

口里选择“Startup”,去除“Symbolic Access Only”的选项勾。如下图所示:

IA&DT Service & Support

Page 19-28

图 22: 添加启动 OB 块

点击“OK”后会打开此 OB 块,然后在启动 OB 块里用 MB_COMM_LOAD(注:

MB_COMM_LOAD 和 MB_Slave 功能块是在“Project Library”下的“Library”选项卡里,

如下图所示:)

图 23: Library

调用后如下图所示:

图 24: 调用 MB_COMM_LOAD 块

IA&DT Service & Support

Page 20-28

在调用 MB_COMM_LOAD 功能块时 ,都会自动弹出创建相应背景数据块的界面,如下

图:

图 25:创建背景数据块

按上面的步骤在 OB1 中插入 MB_Slave 功能块如下图:

图 26:调用 MB_Slave 块

IA&DT Service & Support

Page 21-28

在插入功能块的过程,相应的生成 MB_COMM_LOAD_DB 和 MB_Slave_DB,两个背景

数据块。然后再创建一个发送或接收的数据缓冲区,点击 PLC_1 项目下的“Program

Block”下的“Add new block”,在弹出的窗口中选择 DB 类型为“Global DB”,并去掉

“Symbolic access only”选项勾(这样可以对该 DB 块进行直接地址访问),并取名该 DB

块为 MB_COMM_DB。建好这个 DB 块后,双击打开 MB_COMM_DB 预先定义数据区的大

小,如下图所示:

图 27:数据区的定义

完成数据区的定义后,接下来就可以对 MB_COMM_LOAD 功能块和 MB_SLAVE 功能

块进行参数赋值,赋值的参数见图 24 和图 26。 在上面的编程块里需要注意的是,在

MB_SLAVE 功能块中的参数 MB_ADDR 参数是此从站的 Modbus 站地址。这里定义为此从

站的站地址为 2;MB_HOLD_REG 是指向 Modbus 保持寄存器 DB 的指针。保持寄存器 DB

必须为典型的全局 DB。MB_SLAVE 所提供给主站的功能见下表:

IA&DT Service & Support

Page 22-28

表 3:MB_SLAVE Modbus 功能表 A

表 4:MB_SLAVE Modbus 功能表 B

上面就完成了程序的编写,对项目进行编译;右击 PLC_1 项目在弹出的菜单里选择

“Complies ALL”选项,这样就对硬件与软件进行编译,如下图:

图 28:编译项目

IA&DT Service & Support

Page 23-28

编译且没有错误后就可以下载程序到 PLC 中,同样右击 PLC_1 项目,在弹出的菜单选择

“Download to Device”。

S7-200 作为 Modbus 主站的配置步骤如下:

点击桌面上的“V4.0 STEP 7 MicroWIN SP6”图标(因为 STEP 7 MicroWIN 安装时并没有

安装 Modbus 的库程序,所以 Modbus 的库程序是需要单独安装的,安装后才可以在库程序

中调用 Modbus 的通讯功能块,关于库程序可以咨询西门子热线或访问西门子的官方网

站),打开后并编写 Modbus 主站程序如下图:

图 29:S7-200 Modbus 主站编程

IA&DT Service & Support

Page 24-28

在上面调用的是端口 0 的程序,所以在连接通讯线时,需要连接到端口 0 上,编译并下载项

目到 S7-200 的 PLC 中。下载后运行 PLC。

用 DP 电缆连接 S7-1200 与 S7-200。

在线监控 S7-1200 中的程序,并监控变量表,修改 DB3.DBB0 到 DB3.DBB20 的值为 1

到 21(DB3.DBB0 到 DB3.DBB19 对应的 Modbus 的地址为 40001-40010)。监控到的值如

下图所示:

图 30:S7-1200 监控变量值

在线监控 S7-200 变量表如下图:

IA&DT Service & Support

Page 25-28

图 31:S7-1200 监控变量值

从上面的变量监控表里可以看到 VB420 中没有数据,因为在主站的 S7-200 里的程序里只读

取 10 个变量(即 40001-40010)对应着的 VB400-VB419,所以 VB420 的数据没有接收。

如果您对该文档有任何建议,请将您的宝贵建议提交至下载中心留言板。

该文档文当编号:A0413

IA&DT Service & Support

Page 26-28

附录-推荐网址 自动化系统 西门子(中国)有限公司 工业自动化与驱动技术集团 客户服务与支持中心 网站首页:www.4008104288.com.cn自动化系统 下载中心:http://www.ad.siemens.com.cn/download/DocList.aspx?TypeId=0&CatFirst=1 自动化系统 全球技术资源:http://support.automation.siemens.com/CN/view/zh/10805045/130000 “找答案”自动化系统版区:http://www.ad.siemens.com.cn/service/answer/category.asp?cid=1027 驱动技术 西门子(中国)有限公司 工业自动化与驱动技术集团 客户服务与支持中心 网站首页:www.4008104288.com.cn驱动技术 下载中心:http://www.ad.siemens.com.cn/download/DocList.aspx?TypeId=0&CatFirst=85 驱动技术 全球技术资源:http://support.automation.siemens.com/CN/view/zh/10803928/130000 “找答案”驱动技术版区:http://www.ad.siemens.com.cn/service/answer/category.asp?cid=1038

IA&DT Service & Support

Page 27-28

注意事项 应用示例与所示电路、设备及任何可能结果没有必然联系,并不完全相关。应用示例不表示

客户的具体解决方案。它们仅对典型应用提供支持。用户负责确保所述产品的正确使用。这

些应用示例不能免除用户在确保安全、专业使用、安装、操作和维护设备方面的责任。当使

用这些应用示例时,应意识到西门子不对在所述责任条款范围之外的任何损坏/索赔承担责

任。我们保留随时修改这些应用示例的权利,恕不另行通知。如果这些应用示例与其它西门

子出版物(例如,目录)给出的建议不同,则以其它文档的内容为准。 声明 我们已核对过本手册的内容与所描述的硬件和软件相符。由于差错难以完全避免,我们不能

保证完全一致。我们会经常对手册中的数据进行检查,并在后续的版本中进行必要的更正。

欢迎您提出宝贵意见。

版权© 西门子(中国)有限公司 2001-2008 版权保留

复制、传播或者使用该文件或文件内容必须经过权利人书面明确同意。侵权者将承担权利人

的全部损失。权利人保留一切权利,包括复制、发行,以及改编、汇编的权利。

西门子(中国)有限公司

IA&DT Service & Support

Page 28-28