当前位置:首页 >> 信息与通信 >>

S7-200 Modbus通信培训教程


www.plcworld.cn

S7-200 Modbus 通信
S7-200
Hardware Software Workshop

NEW! NEW!

1

www.plcworld.cn

S7-200 Modbus 通信
S7-200

r />Hardware Software Workshop

? 概述
– – – – 定义 Modbus 报文传输格式 Modbus 主站协议指令 Modbus 从站协议指令

? Micro/Win 指令库的管理
– – – – 指令库的安装 指令库的卸载 指令库的添加 指令库的删除

? 编程示例
– 功能要求 – 实现步骤
2

www.plcworld.cn

概述
S7-200
Hardware Software Workshop

? 定义 ? Modbus 报文传输格式 ? Modbus 主站协议指令 ? Modbus 从站协议指令

3

www.plcworld.cn

定义
S7-200
Hardware Software Workshop

?

公司提出的一种报文传输协议, 使用 Modbus 通信协议是 Modicon 公司提出的一种报文传输协议, 它广泛应用于工业控制领域,并已经成为一种通用的行业标准。 它广泛应用于工业控制领域,并已经成为一种通用的行业标准。不同 协议连成通信网络, 厂商提供的控制设置可通过 Modbus 协议连成通信网络,从而实现集 中控制。 中控制。 根据传输网络类型的区别, 根据传输网络类型的区别,Modbus 通信协议又分为串行链路上的 Modbus 和基于 TCP/IP 协议的 Modbus。 。 Modbus 串行链路协议只有一个主站,可以有 串行链路协议只有一个主站,可以有1~247个从站。 个从站。 个从站 Modbus 通信只能从主站发起,从站在未收到主站的请求时,不能发 通信只能从主站发起,从站在未收到主站的请求时, 送数据或互相通信。 送数据或互相通信。 Modbus 串行链路协议的通信接口可采用 RS-485 接口,也可使用 接口, RS-232C 接口。其中 接口。其中RS-485 接口可用于远距离通信,RS-232C 接口 接口可用于远距离通信, 只能用于短距离通信。 只能用于短距离通信。

?

?

?

4

www.plcworld.cn

概述
S7-200
Hardware Software Workshop

? 定义 ? Modbus 报文传输格式
– Modbus 寻址 – ASCII 模式 – RTU 模式

? Modbus 主站协议指令 ? Modbus 从站协议指令
5

www.plcworld.cn

Modbus 报文传输格式
S7-200
Hardware Software Workshop

? Modbus 寻址 ? ASCII 模式 ? RTU 模式

6

www.plcworld.cn

Modbus 寻址
S7-200
Hardware Software Workshop

?

Modbus 地址通常是包含数据类型和偏移量的 个或 个字符值。第一 地址通常是包含数据类型和偏移量的5个或 个字符值。 个或6个字符值 个或前两个字符决定数据类型, 个或前两个字符决定数据类型,最后的四个字符是符合数据类型的一 个适当的值。 主设备指令能将地址映射至正确的功能, 个适当的值。Modbus 主设备指令能将地址映射至正确的功能,以便 发送到从站。 发送到从站。 1 Modbus 主站寻址 Modbus主设备指令支持下列 主设备指令支持下列Modbus地址: 地址: 主设备指令支持下列 地址 是离散输出( (1)00001至09999是离散输出(线圈)。 ) 至 是离散输出 线圈)。 是离散输入( (2)10001至19999是离散输入(触点)。 ) 至 是离散输入 触点)。 是输入寄存器( (3)30001至39999是输入寄存器(通常是模拟量输入)。 ) 至 是输入寄存器 通常是模拟量输入)。 是保持寄存器。 (4)40001至49999是保持寄存器。 ) 至 是保持寄存器 所有Modbus地址均以 为基位,表示第一个数据值从地址 开始。有 地址均以1为基位 表示第一个数据值从地址1开始 开始。 所有 地址均以 为基位, 效地址范围将取决于从站。 效地址范围将取决于从站。不同的从站将支持不同的数据类型和地址 范围。 范围。

? ? ? ? ? ? ?

7

www.plcworld.cn

Modbus 寻址
S7-200
Hardware Software Workshop

? ? ? ? ? ? ?

2 Modbus 从站寻址 Modbus从站指令支持以下地址: 从站指令支持以下地址: 从站指令支持以下地址 是实际输出, (1)000001至000128是实际输出,对应于 ) 至 是实际输出 对应于Q0.0——Q15.7。 。 是实际输入, (2)010001至010128是实际输入,对应于 ) 至 是实际输入 对应于I0.0——I15.7。 。 是模拟输入寄存器, (3)030001至030032是模拟输入寄存器,对应于 ) 至 是模拟输入寄存器 对应于AIW0至AIW2。 至 。 是保持寄存器, (4)040001至04XXXX是保持寄存器,对应于 区。 ) 至 是保持寄存器 对应于V区 Modbus 从站协议允许您对 从站协议允许您对Modbus主站可访问的输入、输出、模拟 主站可访问的输入、 主站可访问的输入 输出、 输入和保持寄存器( 区 的数量进行限定。 输入和保持寄存器(V区)的数量进行限定。MBUS_INIT 指令的参数 MaxIQ 指定 Modbus 主站允许访问的实际输入或输出(I或Q)的最 主站允许访问的实际输入或输出( 或 ) 大数量。 大数量。MBUS_INIT 指令的 MaxAI 参数指定 Modbus 主站允许访问 的输入寄存器( 指令的MaxHold 参 的输入寄存器(AIW)的最大数量。MBUS_INIT 指令的 )的最大数量。 主站允许访问的保持寄存器( 存储区字 存储区字) 数指定 Modbus 主站允许访问的保持寄存器(V存储区字)的最大数 量。
8

www.plcworld.cn

Modbus 寻址
S7-200
Hardware Software Workshop

?

Modbus 地址与 S7-200 地址对应关系如下表所示。 地址对应关系如下表所示。

9

www.plcworld.cn

Modbus 报文传输格式
S7-200
Hardware Software Workshop

? Modbus 寻址 ? ASCII 模式 ? RTU 模式

10

www.plcworld.cn

Modbus 报文传输格式
S7-200
Hardware Software Workshop

?

Modbus 通信协议有 ASCII 和 RTU (远程传输单元)两种报文传输 远程传输单元) 模式。 模式。Modbus 网络中所有的站必须采用相同的传输模式和串口参 数。 ASCII模式采用 模式采用LRC(纵向冗余校验)方式进行校验,其报文格式如 模式采用 (纵向冗余校验)方式进行校验, 下表所示: 下表所示:

?

?

ASCII 模式中,报文帧中的每个 位字节都转换为两个 ASCII 码发 模式中,报文帧中的每个8位字节都转换为两个 报文中的每个ASCII码都由 进制字符组成,传输的每个字符都 码都由16进制字符组成 送。报文中的每个 码都由 进制字符组成, 包括1个起始位、7个数据位、1个奇偶校验位、1个停止位;如果没有 包括 个起始位、 个数据位、 个奇偶校验位、 个停止位; 个起始位 个数据位 个奇偶校验位 个停止位 校验位,则有两个停止位。 校验位,则有两个停止位。 LRC计算时不包括开始的冒号符、LRC本身和回车换行符。 计算时不包括开始的冒号符、 本身和回车换行符。 计算时不包括开始的冒号符 本身和回车换行符

?

11

www.plcworld.cn

Modbus 报文传输格式
S7-200
Hardware Software Workshop

? Modbus 寻址 ? ASCII 模式 ? RTU 模式

12

www.plcworld.cn

Modbus 报文传输格式
S7-200
Hardware Software Workshop

?

RTU模式的报文格式如下表所示: 模式的报文格式如下表所示: 模式的报文格式如下表所示

? ?

地址: 地址, 个字节 个字节。 地址:Modbus 地址,1个字节。 功能码: 个字节。 功能码:Modbus功能代码 , 1个字节。Modbus协议支持的功能码 功能代码 个字节 协议支持的功能码 ),其中西门子 协议库支持最常用的8 共16条(1~16),其中西门子 条 ),其中西门子Modbus RTU协议库支持最常用的 协议库支持最常用的 条。 信息数据: 个字节 格式与功能码有关。 个字节, 信息数据:N个字节,格式与功能码有关。 CRC :循环冗余校验,两个字节。 循环冗余校验,两个字节。

? ?

13

www.plcworld.cn

Modbus 报文传输格式
S7-200
Hardware Software Workshop

?

西门子Modbus RTU协议库支持最常用的 条功能码如下表所示。 协议库支持最常用的8条功能码如下表所示 西门子 协议库支持最常用的 条功能码如下表所示。

14

www.plcworld.cn

Modbus 报文传输格式
S7-200
Hardware Software Workshop

?

RTU模式下,报文中的每个8位字节被转化为两个 进制字符,然后 模式下,报文中的每个 位字节被转化为两个 进制字符, 位字节被转化为两个16进制字符 模式下 以字节为单位进行传输,并采用CRC(循环冗余校验)方式进行校 以字节为单位进行传输,并采用 (循环冗余校验) 模式的优点在于同波特率下有着比ASCII模式更高的传输效 验。RTU模式的优点在于同波特率下有着比 模式的优点在于同波特率下有着比 模式更高的传输效 率。 目前支持 Modbus 通信的 DCS 系统和过程仪表大都采用基于串行接 模式, 口的 Modbus RTU 模式,西门子提供了针对西门子 PLC Modbus RTU 通信的协议库。 通信的协议库。 模式通信, 如果要在西门子 PLC 上实现 Modbus ASCII 模式通信,用户可根据 相关协议规定利用自由口模式自主编程实现。 相关协议规定利用自由口模式自主编程实现。

?

?

15

www.plcworld.cn

Modbus 报文传输格式
S7-200
Hardware Software Workshop

?

通信开发了指令库, 西门子专门为 Modbus RTU 通信开发了指令库,极大地简化了 Modbus RTU 通信的开发,以便于快速实现相关应用。通过 Modbus 通信的开发,以便于快速实现相关应用。 RTU 从站指令库,使得 S7-200 可作为 Modbus RTU 中的从站设备 从站指令库, 网络中, 主站设备的通信。 集成到 Modbus 网络中,以实现与 Modbus 主站设备的通信。 升级包中, 而在最近推出的 STEP7-Micro/Win SP5 升级包中,西门子又增加了 Mobus RTU Master 指令库,使得 S7-200 CPU 可作为 Modbus 主 指令库, 从站的通信任务。 站,实现与 Modbus RTU 从站的通信任务。 指令库必须注意以下四点: 要使用 Modbus 指令库必须注意以下四点: 指令库前, (1)使用 Modbus 指令库前,需要将其安装到 Step7-Micro/Win ) 中,STEP 7-Micro/WIN 必须为 V3.2 或以上版本。 或以上版本。 必须是固化程序修订版2.00或最好支持 Modbus (2)S7-200 CPU 必须是固化程序修订版 ) 或最好支持 主设备协议库(CPU MLFB 21x-2xx23-0XB0)。 主设备协议库 。

?

? ?

?

16

www.plcworld.cn

Modbus 报文传输格式
S7-200
Hardware Software Workshop

?

和端口1的 (3)由于目前已经推出了针对端口 和端口 的 Modbus RTU 主站指 )由于目前已经推出了针对端口0和端口 令库 Modbus Master Port0 和 Modbus Master Port1、以及针对端 、 从站指令库,故可利用指令库实现端口0的 口0的 Modbus RTU 从站指令库,故可利用指令库实现端口 的 的 Modbus RTU 主/从站通信。 从站通信。 从站通信 从站协议通信时, (4)一旦 CPU 端口被用于 Modbus RTU 主/从站协议通信时,该端 ) 从站协议通信时 口就无法用于任何其它用途, 通讯。 口就无法用于任何其它用途,包括与 STEP 7-Micro/WIN 通讯。

?

17

www.plcworld.cn

概述
S7-200
Hardware Software Workshop

? 定义 ? Modbus 报文传输格式 ? Modbus 主站协议指令
– MBUS_CTRL 指令 – MBUS_MSG 指令

? Modbus 从站协议指令
– MBUS_INIT 指令 – MBUS_SLAVE 指令
18

www.plcworld.cn

Modbus 主站协议指令
S7-200
Hardware Software Workshop

? MBUS_CTRL 指令

? MBUS_MSG 指令

19

www.plcworld.cn

MBUS_CTRL 指令
S7-200
Hardware Software Workshop

?

主站协议库包括两条指令: 西门子 Modbus 主站协议库包括两条指令:MBUS_CTRL 指令和 MBUS_MSG 指令。 指令。 MBUS_CTRL 指令用于初始化主站通信,MBUS_MSG 指令 或用于 指令用于初始化主站通信, 指令(或用于 端口1的 用于启动对Modbus从站的请求并处理应 端口 的MBUS_MSG_P1)用于启动对 用于启动对 从站的请求并处理应 答。 MBUS_CTRL 指令用于 S7-200 端口0的 MBUS_CTRL 指令(或用于 端口 的 指令 或用于 端口1的 指令)可初始化 可初始化、 端口 的 MBUS_CTRL_P1 指令 可初始化、监视或禁用 Modbus 通 指令之前, 讯。在使用 MBUS_MSG 指令之前,必须正确执行 MBUS_CTRL 指 指令完成后立即设定“完成 完成”位 才能继续执行下一条指令。 令。指令完成后立即设定 完成 位,才能继续执行下一条指令。 MBUS_CTRL 指令在每次扫描且EN输入打开时执行。MBUS_CTRL 指令在每次扫描且 输入打开时执行。 输入打开时执行 指令必须在每次扫描时(包括首次扫描 被调用, 包括首次扫描)被调用 指令必须在每次扫描时 包括首次扫描 被调用,以允许监视随 MBUS_MSG 指令启动的任何突出消息的进程。除非每次调用 指令启动的任何突出消息的进程。 MBUS_CTRL,否则 主设备协议将不能正确运行。 ,否则Modbus 主设备协议将不能正确运行。

?

?

?

20

www.plcworld.cn

MBUS_CTRL 指令
S7-200
Hardware Software Workshop

? ?

西门子EN:指令使能位。 西门子 :指令使能位。 Mode:“模式 参数。“模式 输入数值选择通讯协议。 : 模式 参数。 模式 输入数值选择通讯协议。 模式”参数 模式”输入数值选择通讯协议 输入值1将 端口分配给Modbus协议并启用该协议。 协议并启用该协议。 输入值 将CPU端口分配给 端口分配给 协议并启用该协议 输入值0将 端口分配给PPI系统协议, 系统协议, 输入值 将CPU端口分配给 端口分配给 系统协议 并禁用Modbus协议。 协议。 并禁用 协议 Baud:“波特率 参数。MBUS_CTRL指令支持的 : 波特率 参数。 波特率”参数 指令支持的 波特率为1200、2400、4800、9600、19200、38400、 波特率为 、 、 、 、 、 、 57600或115200bit/s。 或 。 Parity:“奇偶校验 参数。“奇偶校验 参数被设为与 : 奇偶校验 参数。 奇偶校验 参数被设为与Modbus从站奇偶 奇偶校验”参数 奇偶校验”参数被设为与 从站奇偶 校验相匹配。所有设置使用一个起始位和一个停止位。 校验相匹配。所有设置使用一个起始位和一个停止位。可接受的数值 为: 0 无奇偶校验 1 奇校验 2 偶校验
21

?

?

? ? ?

www.plcworld.cn

MBUS_CTRL 指令
S7-200
Hardware Software Workshop

?

Timeout:“超时 参数。“超时 参数设为等待来 : 超时 参数。 超时 超时”参数 超时”参数设为等待来 自从站应答的毫秒时间数。 超时 超时”数值可以设置 自从站应答的毫秒时间数。“超时 数值可以设置 的范围为1毫秒到 毫秒到32767毫秒。典型值是 毫秒。 毫秒(1秒 。 的范围为 毫秒到 毫秒 典型值是1000毫秒 秒)。 毫秒 “超时 参数应该设置的足够大,以便从站有时间 超时”参数应该设置的足够大 超时 参数应该设置的足够大, 对所选的波特率作出应答。 对所选的波特率作出应答。 Done:MBUS_CTRL指令成功完成时, : 指令成功完成时, 指令成功完成时 “完成 输出为 ,否则为 。 完成”输出为 完成 输出为1,否则为0。 Error:“错误 输出代码。“错误 输出代码由反应 : 错误 输出代码。 错误 错误”输出代码 错误”输出代码由反应 执行该指令的结果的特定数字构成。 执行该指令的结果的特定数字构成。 “错误 输出代码的含义如下: 错误”输出代码的含义如下 错误 输出代码的含义如下: 0 1 2 3 4 无错误 奇偶校验选择无效 波特率选择无效 超时选择无效 模式选择无效
22

?

?

? ? ? ? ?

www.plcworld.cn

MBUS_CTRL 指令
S7-200
Hardware Software Workshop

?

上述参数支持的操作数和数据类型如下表所示。 上述参数支持的操作数和数据类型如下表所示。

23

www.plcworld.cn

Modbus 主站协议指令
S7-200
Hardware Software Workshop

? MBUS_CTRL 指令

? MBUS_MSG 指令

24

www.plcworld.cn

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

MBUS_MSG 指令 或用于端口 的 MBUS_MSG_P1 )用于启动对 指令(或用于端口 或用于端口1的 用于启动对 Modbus从站的请求并处理应答。 从站的请求并处理应答。 从站的请求并处理应答 输入和“首次 输入都为1时 首次”输入都为 当 EN 输入和 首次 输入都为 时,BUS_MSG 指令启动对 Modbus 从站的请求。发送请求、等待应答、并处理应答通常需要多次扫描。 从站的请求。发送请求、等待应答、并处理应答通常需要多次扫描。 EN输入必须打开以启用请求的发送,并应该保持打开直到 完成 位被 输入必须打开以启用请求的发送, 完成”位被 输入必须打开以启用请求的发送 并应该保持打开直到“完成 置位。 置位。 必须注意的是, 指令。 必须注意的是,一次只能激活一条 MBUS_MSG 指令。如果启用了多 指令, 条 MBUS_MSG 指令,则将处理所执行的第一条 MBUS_MSG 指 指令将中止并产生错误代码6。 令,之后的所有 MBUS_MSG 指令将中止并产生错误代码 。

?

?

25

www.plcworld.cn

MBUS_MSG 指令
S7-200
Hardware Software Workshop

? ?

EN:指令使能位。 :指令使能位。 First:“首次 参数。“首次 参数应该在有新请求要发送时 : 首次 参数。 首次 首次”参数 首次”参数应该在有新请求要发送时 才打开以进行一次扫描。 首次 首次”输入应当通过一个边沿 才打开以进行一次扫描。“首次 输入应当通过一个边沿 检测元素(例如上升沿 打开,这将导致请求被传送一次。 例如上升沿)打开 检测元素 例如上升沿 打开,这将导致请求被传送一次。 Slave:“从站 参数。“从站 参数是 : 从站 参数。 从站 参数是Modbus从站的地址。 从站”参数 从站”参数是 从站的地址。 从站的地址 允许的范围是0到 是广播地址, 允许的范围是 到247。地址 是广播地址,只能用于 。地址0是广播地址 写请求。不存在对地址0的广播请求的应答 的广播请求的应答。 写请求。不存在对地址 的广播请求的应答。 并非所有的从站会支持广播地址, 并非所有的从站会支持广播地址,S7-200 Modbus 从站协议库不支持广播地址。 从站协议库不支持广播地址。 RW:“读写 参数。“读写 参数指定是否要读取 : 读写 参数。 读写 读写”参数 读写”参数指定是否要读取 或写入该消息。 读写 参数允许使用下列两个值: 读写”参数允许使用下列两个值 或写入该消息。“读写 参数允许使用下列两个值: 0——读,1——写。 读 写

?

?

26

www.plcworld.cn

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

Addr:“地址 参数。“地址 参数是起始的 : 地址 参数。 地址 参数是起始的Modbus 地址。 地址”参数 地址”参数是起始的 地址。 允许使用下列取值范围: 允许使用下列取值范围: 00001至09999是离散输出 线圈 至 是离散输出(线圈 是离散输出 线圈) 10001至19999是离散输入 触点 是离散输入(触点 至 是离散输入 触点) 30001至39999是输入寄存器 至 是输入寄存器 40001至49999是保持寄存器 至 是保持寄存器 其中离散输出(线圈 和保持寄存器支持读取和写入请求 其中离散输出 线圈)和保持寄存器支持读取和写入请求, 线圈 和保持寄存器支持读取和写入请求, 而离散输入(触点 和输入寄存器仅支持读取请求。 触点)和输入寄存器仅支持读取请求 而离散输入 触点 和输入寄存器仅支持读取请求。 “地址 的具体值应与 地址”的具体值应与 从站支持的地址一致。 地址 的具体值应与Modbus从站支持的地址一致。 从站支持的地址一致 Count:“计数 参数。“计数 参数指定在该请求中读取 : 计数 参数。 计数 计数”参数 计数”参数指定在该请求中读取 或写入的数据元素的数目。 计数 计数”数值是位数 或写入的数据元素的数目。“计数 数值是位数 (对于位数据类型 和字数 对于字数据类型 。 对于位数据类型)和字数 对于字数据类型)。 对于位数据类型 和字数(对于字数据类型

? ? ? ? ? ? ?

27

www.plcworld.cn

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

根据Modbus协议,“计数 参数与 Modbus 地址 协议, 计数 计数”参数与 根据 协议 存在以下对应关系: 存在以下对应关系:

?

MBUS_MSG 指令将读取或写入最大 指令将读取或写入最大120个字 个字 个位(240字节的数据 。“计数 的实际限值 字节的数据)。 计数 计数”的实际限值 或1920个位 个位 字节的数据 从站中的限制。 还取决于 Modbus 从站中的限制。 DataPtr:“DataPtr” 参数。“DataPtr” 参数是指向 : 参数。 S7-200 CPU 的 V 存储器中与读取或写入请求相关 的数据的间接地址指针。对于读取请求, 的数据的间接地址指针。对于读取请求,DataPtr 应指向用于存储从 Modbus 从站读取的数据的 第一个CPU存储器位置。对于写入请求,DataPtr 第一个 存储器位置。对于写入请求, 存储器位置 应指向要发送到Modbus从站的数据的第一个 从站的数据的第一个CPU存储器位置。 存储器位置。 应指向要发送到 从站的数据的第一个 存储器位置
28

?

www.plcworld.cn

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

Done:完成输出。完成输出在发送请求和接收应答时关闭。“完成 输 :完成输出。完成输出在发送请求和接收应答时关闭。 完成 完成”输 出在应答完成或MBUS_MSG指令因错误而中止时打开。 指令因错误而中止时打开。 出在应答完成或 指令因错误而中止时打开 Error:“错误 输出仅当 完成 输出打开时有效。低位编号的错误代码 : 错误 输出仅当“完成 输出打开时有效。 错误”输出仅当 完成”输出打开时有效 (1到8)是由 是由MBUS_MSG指令检测到的错误。这些错误代码通常指示与 指令检测到的错误。 到 是由 指令检测到的错误 MBUS_MSG指令的输入参数有关的问题,或接收来自从站的应答时 指令的输入参数有关的问题, 指令的输入参数有关的问题 出现的问题。奇偶校验和CRC错误指示存在应答但是数据未正确接 出现的问题。奇偶校验和 错误指示存在应答但是数据未正确接 这通常是由电气故障(例如连接有问题或者电噪声 引起的。 例如连接有问题或者电噪声)引起的 收。这通常是由电气故障 例如连接有问题或者电噪声 引起的。 高位编号的错误代码(从 开始)是由 从站返回的错误。 高位编号的错误代码 从101开始 是由 开始 是由Modbus从站返回的错误。这些 从站返回的错误 错误指示从站不支持所请求的功能,或者所请求的地址(或数据类型或 错误指示从站不支持所请求的功能,或者所请求的地址 或数据类型或 地址范围)不被 不被Modbus从站支持。 从站支持。 地址范围 不被 从站支持 MBUS_MSG指令错误代码含义如下所示: 指令错误代码含义如下所示: 指令错误代码含义如下所示

?

?

?

29

www.plcworld.cn

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

MBUS_MSG 错误代码含义表

30

www.plcworld.cn

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

MBUS_MSG 错误代码含义表(续) 错误代码含义表(

31

www.plcworld.cn

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

上述参数支持的操作数和数据类型如下表所示。 上述参数支持的操作数和数据类型如下表所示。

32

www.plcworld.cn

概述
S7-200
Hardware Software Workshop

? 定义 ? Modbus 报文传输格式 ? Modbus 主站协议指令
– MBUS_CTRL 指令 – MBUS_MSG 指令

? Modbus 从站协议指令
– MBUS_INIT 指令 – MBUS_SLAVE 指令
33

www.plcworld.cn

Modbus 从站协议指令
S7-200
Hardware Software Workshop

? MBUS_INIT 指令

? MBUS_SLAVE 指令

34

www.plcworld.cn

MBUS_INIT 指令
S7-200
Hardware Software Workshop

?

从站协议库包括两条指令: 西门子 Modbus 从站协议库包括两条指令:MBUS_INIT 指令和 MBUS_SLAVE 指令。 指令。 MBUS_INIT 指令用于启用和初始化或禁止 指令用于启用和初始化或禁止Modbus 通讯。 通讯。 MBUS_SLAVE 指令用于为 Modbus 主设备发出的请求服务。 主设备发出的请求服务。 MBUS_INIT 指令用于启用和初始化或禁止 Modbus 从站通讯。在使 从站通讯。 指令之前, 指令。 用MBUS_SLAVE 指令之前,必须正确执行 MBUS_INIT 指令。指令 完成” 才能继续执行下一条指令。 完成后立即设定 “完成 位,才能继续执行下一条指令。 完成

? ? ?

35

www.plcworld.cn

MBUS_INIT 指令
S7-200
Hardware Software Workshop

? ?

EN:指令使能位。 :指令使能位。 Mode:模式选择,启动/停止 Modbus 从站通信。 :模式选择,启动 停止 从站通信。 Mode 参数允许使用以下两个数值:1——启动, 参数允许使用以下两个数值: 启动, 启动 0——停止。 停止。 停止 Address:从站地址,MODBUS从站地址, :从站地址, 从站地址, 从站地址 取值1~247。 取值 。 Baud:波特率,可选1200,2400,4800,9600, :波特率,可选 , , , , 19200,38400,57600,115200。 , , , 。 Parity:奇偶校验,0=无校验;1=奇校验;2=偶校验。 :奇偶校验, 无校验 无校验; 奇校验 奇校验; 偶校验 偶校验。 Delay:延时,附加字符间延时,缺省值为0。 :延时,附加字符间延时,缺省值为 。 MaxIQ:最大I/Q位,参与通信的最大I/O点数,S7-200的I/O映像区为 :最大 位 参与通信的最大 点数, 的 映像区为 点数 128/128,缺省值为 ,缺省值为128。 。
36

?

?

? ? ?

www.plcworld.cn

MBUS_INIT 指令
S7-200
Hardware Software Workshop

?

MaxAI:最大AI字数,参与通信的最大 通道数, :最大 字数 参与通信的最大AI通道数 字数, 通道数, 可为16或 。 可为 或32。 MaxHold:设定供Modbus地址 :设定供 地址4xxxx使用的 存储器 使用的V存储器 地址 使用的 中的字保持寄存器数目。 中的字保持寄存器数目。 HoldStart:保持寄存器区起始地址,以&VBx指定 :保持寄存器区起始地址, 指定 间接寻址方式)。 (间接寻址方式)。 Done:初始化完成标志,成功初始化后置1。 :初始化完成标志,成功初始化后置 。 Error:初始化错误代码。 :初始化错误代码。

?

?

? ?

37

www.plcworld.cn

MBUS_INIT 指令
S7-200
Hardware Software Workshop

?

MBUS_INIT 指令错误代码的含义如下表所示: 指令错误代码的含义如下表所示:

38

www.plcworld.cn

MBUS_INIT 指令
S7-200
Hardware Software Workshop

?

上述参数支持的操作数和数据类型如下表所示。 上述参数支持的操作数和数据类型如下表所示。

39

www.plcworld.cn

Modbus 从站协议指令
S7-200
Hardware Software Workshop

? MBUS_INIT 指令

? MBUS_SLAVE 指令

40

www.plcworld.cn

MBUS_SLAVE 指令
S7-200
Hardware Software Workshop

?

MBUS_SLAVE 指令被用于为 Modbus 主设备发出的请求服务,并且 主设备发出的请求服务, 必须在每次扫描时执行, 请求。 必须在每次扫描时执行,以便允许该指令检查和回答 Modbus 请求。 MBUS_SLAVE 指令无输入参数,在每次扫描且 EN 输入开启时执 指令无输入参数, 行。

? ? ?

EN:指令使能位。 :指令使能位。 Done:Modbus执行通信中时置 ,无 MODBUS 通信活动时为 0。 : 执行通信中时置1, 执行通信中时置 。 Error:错误代码。 :错误代码。

41

www.plcworld.cn

MBUS_SLAVE 指令
S7-200
Hardware Software Workshop

?

MBUS_SLAVE 指令错误代码的含义如下表所示。 指令错误代码的含义如下表所示 表所示。

?

上述参数支持的操作数和数据类型如下表所示。 上述参数支持的操作数和数据类型如下表所示。

42

www.plcworld.cn

S7-200 Modbus 通信
S7-200
Hardware Software Workshop

? 概述
– – – – 定义 Modbus 报文传输格式 Modbus 主站协议指令 Modbus 从站协议指令

? Micro/Win 指令库的管理
– – – – 指令库的安装 指令库的卸载 指令库的添加 指令库的删除

? 编程示例
– 功能要求 – 实现步骤
43

www.plcworld.cn

Micro/Win 指令库的管理
S7-200
Hardware Software Workshop

? 指令库的安装 ? 指令库的卸载 ? 指令库的添加 ? 指令库的删除

44

www.plcworld.cn

指令库的安装
S7-200
Hardware Software Workshop

?

Step7-Micro/Win 指令库光盘可直接从西门子订购,名称为 STEP 7指令库光盘可直接从西门子订购, Micro/WIN Add-On: Instruction Library (STEP 7-Micro/WIN 附 指令库), 件:指令库 ,订购编号为 6ES7 830 2BC00 0YX0。Step7。 Micro/Win 指令库光盘内包含了 USS 协议指令库和 Modbus 指令 安装后可在Step7-Micro/Win 中调用。 中调用。 库,安装后可在 使用西门子指令库光盘安装指令库( 使用西门子指令库光盘安装指令库(本文以 Step7-Micro/Win V3.2版 版 的库安装文件为例)的步骤如下: 的库安装文件为例)的步骤如下: 文件, (1)单击光盘的 Inst_Library_V11 下 “Setup.exe” 文件,在弹出的 ) 安装语言选择框中选择安装语言, 确定” 安装语言选择框中选择安装语言,单击 “确定 按钮。 确定 按钮。

?

?

45

www.plcworld.cn

指令库的安装
S7-200
Hardware Software Workshop

?

按钮开始安装。 (2)在欢迎页面中,单击 “Next” 按钮开始安装。 )在欢迎页面中,

46

www.plcworld.cn

指令库的安装
S7-200
Hardware Software Workshop

?

按钮结束安装,关闭安装程序。 (3)安装完成后,单击 “Finish” 按钮结束安装,关闭安装程序。 )安装完成后,

47

www.plcworld.cn

指令库的安装
S7-200
Hardware Software Workshop

?

指令树”>“库”项下可 (4)安装完成后,启动 Step7-Micro/Win,在“指令树 )安装完成后, , 指令树 库 项下可 协议库。 以发现多出了 USS 协议库和 Modbus 协议库。

48

www.plcworld.cn

Micro/Win 指令库的管理
S7-200
Hardware Software Workshop

? 指令库的安装 ? 指令库的卸载 ? 指令库的添加 ? 指令库的删除

49

www.plcworld.cn

指令库的卸载
S7-200
Hardware Software Workshop

? ?

卸载西门子指令库光盘安装的指令库,按以下步骤即可: 卸载西门子指令库光盘安装的指令库,按以下步骤即可: 文件, (1)单击光盘的 Inst_Library_V11 下 “Setup.exe” 文件,在弹出的 ) 语言选择框中选择语言,单击“确定 按钮进入下一步。 确定”按钮进入下一步 语言选择框中选择语言,单击 确定 按钮进入下一步。

50

www.plcworld.cn

指令库的卸载
S7-200
Hardware Software Workshop

?

(2)系统将自动检测指令库的安装信息。 )系统将自动检测指令库的安装信息。

51

www.plcworld.cn

指令库的卸载
S7-200
Hardware Software Workshop

?

确认卸载” (3)在 “确认卸载 对话框中,若想放弃卸载,可单击 “否” 按钮退 ) 确认卸载 对话框中,若想放弃卸载, 否 出卸载程序。单击“是 按钮启动卸载程序 按钮启动卸载程序。 出卸载程序。单击 是”按钮启动卸载程序。

?

按钮结束卸载, (4)卸载完成后,单击 )卸载完成后,单击“Finish”按钮结束卸载,关闭卸载程序。 按钮结束卸载 关闭卸载程序。

52

www.plcworld.cn

Micro/Win 指令库的管理
S7-200
Hardware Software Workshop

? 指令库的安装 ? 指令库的卸载 ? 指令库的添加 ? 指令库的删除

53

www.plcworld.cn

指令库的添加
S7-200
Hardware Software Workshop

?

若有*.mwl格式的指令库文件,也可手动添加指令库。手动添加指令 格式的指令库文件,也可手动添加指令库。 若有 格式的指令库文件 库的步骤如下: 库的步骤如下: 目录下。 (1)将指令库文件拷贝到 )将指令库文件拷贝到“Step7-Micro/Win V4.0\lib”目录下。 目录下 指令树”>“库”项处单击右键菜单,执行菜单命令 添加 删除 项处单击右键菜单, 添加/删除 (2)在“指令树 ) 指令树 库 项处单击右键菜单 执行菜单命令“添加 库”。 。

? ?

54

www.plcworld.cn

指令库的添加
S7-200
Hardware Software Workshop

?

添加/删除库 添加” (3)在弹出的 “添加 删除库 对话框中,单击 “添加 按钮。 ) 添加 删除库” 对话框中, 添加 按钮。

55

www.plcworld.cn

指令库的添加
S7-200
Hardware Software Workshop

?

(4)双击选择要添加的库文件。 )双击选择要添加的库文件。

56

www.plcworld.cn

指令库的添加
S7-200
Hardware Software Workshop

?

确认” (5)单击 “确认 按钮,确认添加刚才的选择库文件。 ) 确认 按钮,确认添加刚才的选择库文件。

?

(6)添加完毕之后,重新启动 Micro/Win,会发现 “库” 中出现了刚 )添加完毕之后, , 库 才添加的库。 才添加的库。

57

www.plcworld.cn

指令库的添加
S7-200
Hardware Software Workshop

? ?

补充说明: 补充说明: (1)指令库文件也可拷贝到其他路径,然而考虑到便于管理,统一 )指令库文件也可拷贝到其他路径,然而考虑到便于管理, 路径下更为合理。 拷贝到 “Step7-Micro/Win V4.0\lib” 路径下更为合理。 (2)添加成功后,请勿直接删除或移动指令库文件的位置,否则启 )添加成功后,请勿直接删除或移动指令库文件的位置, 将出现找不到库文件的错误提示( 动 Step7-Micro/Win V4.0 时,将出现找不到库文件的错误提示(如 下图所示)。此错误解决方法为恢复该库文件到原始添加位置、 )。此错误解决方法为恢复该库文件到原始添加位置 下图所示)。此错误解决方法为恢复该库文件到原始添加位置、或者 删除该库文件。 在 Step7-Micro/Win V4.0 删除该库文件。

?

58

www.plcworld.cn

Micro/Win 指令库的管理
S7-200
Hardware Software Workshop

? 指令库的安装 ? 指令库的卸载 ? 指令库的添加 ? 指令库的删除

59

www.plcworld.cn

指令库的删除
S7-200
Hardware Software Workshop

? ?

手动删除指令库的步骤如下: 手动删除指令库的步骤如下: 指令树”>“库” 项处单击右键菜单,执行菜单命令 “添加 删 添加/删 (1)在 “指令树 ) 指令树 库 项处单击右键菜单, 添加 除库”。 除库 。

?

添加/删除库 (2)在弹出的 “添加 删除库 对话框中,选中欲删除的库程序所对应 ) 添加 删除库” 对话框中, 的库文件, 删除” 的库文件,单击 “删除 按钮。 删除 按钮。

60

www.plcworld.cn

指令库的删除
S7-200
Hardware Software Workshop

?

删除” (3)在提示框中,单击 “删除 按钮确认删除。 )在提示框中, 删除 按钮确认删除。

61

www.plcworld.cn

指令库的删除
S7-200
Hardware Software Workshop

?

确认”按钮关闭 添加/删除库 对话框。 (4)单击 确认 按钮关闭 添加 删除库 对话框。 )单击“确认 按钮关闭“添加 删除库”对话框

?

注意:按此方法 手动删除指令库 手动删除指令库”, 注意:按此方法“手动删除指令库 ,并不会删除计算机上删除该文 因此以后还可根据需要重新添加。 件,因此以后还可根据需要重新添加。

62

www.plcworld.cn

S7-200 Modbus 通信
S7-200
Hardware Software Workshop

? 概述
– – – – 定义 Modbus 报文传输格式 Modbus 主站协议指令 Modbus 从站协议指令

? Micro/Win 指令库的管理
– – – – 指令库的安装 指令库的卸载 指令库的添加 指令库的删除

? 编程示例
– 功能要求 – 实现步骤
63

www.plcworld.cn

编程示例
S7-200
Hardware Software Workshop

? 功能要求

? 实现步骤
– Modbus 从站组态说明 – Modbus 主站组态说明 – 通信测试

64

www.plcworld.cn

功能要求
S7-200
Hardware Software Workshop

?

主站, 将一台 S7-200 CPU224XP 组态为 Modbus 主站,当主站 I0.3 为 ON 时,读取另一台作为 Modbus 从站的 S7-200 CPU224XP 的 I0.0~I0.7 的数值。 的数值。

? ?

硬件需求: 硬件需求: PC 机、2台 S7-200 CPU 224XP、RS 232 电缆(推荐采用西门子 电缆( 台 、 S7-200 串口编程电缆) 串口编程电缆)

? ?

示例的简要实现步骤如下: 示例的简要实现步骤如下: 程序, (1)编写作为 Modbus 从站的 S7-200 CPU 的 PLC 程序,将程序 ) 下载到从站 PLC 中。 程序, (2)编写作为 Modbus 主站的 S7-200 CPU 的 PLC 程序,将程序 ) 下载到主站PLC中。 下载到主站 中 主从站, (3)用串口电缆连接 Modbus 主从站,在Step-7 Micro/Win 的状态 ) 主站保持寄存器中的数值,并与实际数值对比。 表中观察 Modbus 主站保持寄存器中的数值,并与实际数值对比。
65

?

?

www.plcworld.cn

编程示例
S7-200
Hardware Software Workshop

? 功能要求

? 实现步骤
– Modbus 从站组态说明 – Modbus 主站组态说明 – 通信测试

66

www.plcworld.cn

实现步骤
S7-200
Hardware Software Workshop

? Modbus 从站组态说明 ? Modbus 主站组态说明 ? 通信测试

67

www.plcworld.cn

Modbus 从站组态说明
S7-200
Hardware Software Workshop

? ?

1 分配库存储区 利用指令库编程前首先应为其分配存储区, 利用指令库编程前首先应为其分配存储区,否则 Step7-Micro/Win 编 译时会报错。具体方法如下: 译时会报错。具体方法如下: 菜单命令“文件 文件”>“库存储区 ,打开 库 库存储区”,打开“库 (1)执行 Step7-Micro/Win 菜单命令 文件 ) 库存储区 存储区分配”对话框 对话框。 存储区分配 对话框。

?

68

www.plcworld.cn

Modbus 从站组态说明
S7-200
Hardware Software Workshop

?

库存储区分配”对话框中输入库存储区的起始地址 (2)在“库存储区分配 对话框中输入库存储区的起始地址,注意避免 ) 库存储区分配 对话框中输入库存储区的起始地址, 该地址和程序中已经采用或准备采用的其它地址重合。 该地址和程序中已经采用或准备采用的其它地址重合。 建议地址”按钮 (3)点击 建议地址 按钮,系统将自动计算存储区的截止地址。 )点击“建议地址 按钮,系统将自动计算存储区的截止地址。 确定”按钮确认分配 (4)点击 确定 按钮确认分配,关闭对话框。 )点击“确定 按钮确认分配,关闭对话框。

? ?

69

www.plcworld.cn

Modbus 从站组态说明
S7-200
Hardware Software Workshop

? ?

2 从站组态说明

根据示例要求,本从站要响应主站报文,故只需编写主程序。 根据示例要求,本从站要响应主站报文,故只需编写主程序。主程序 由以下两个网络构成,程序说明如下。 由以下两个网络构成,程序说明如下。 从站,即是将从站地址设为1, (1)网络 用于初始化 Modbus 从站,即是将从站地址设为 ,将端 )网络1用于初始化 的波特率设为9600、无校验、无延迟,允许存取所有的 、Q 和 AI 口0的波特率设为 的波特率设为 、无校验、无延迟,允许存取所有的I、 数值,保存寄存器的存储空间为从 VB0 开始的1000个字 数值, 开始的 个字(2000个字 个字 个字 节)。 。

?

70

www.plcworld.cn

Modbus 从站组态说明
S7-200
Hardware Software Workshop

?

用于在每次扫描时执行Modbus_Slave指令。 指令。 (2)网络 用于在每次扫描时执行 )网络2用于在每次扫描时执行 指令

71

www.plcworld.cn

实现步骤
S7-200
Hardware Software Workshop

? Modbus 从站组态说明 ? Modbus 主站组态说明 ? 通信测试

72

www.plcworld.cn

Modbus 主站组态说明
S7-200
Hardware Software Workshop

?

主站指令编程前也应分配库存储区,与从站编程类似, 调用 Modbus 主站指令编程前也应分配库存储区,与从站编程类似, 不再赘述。 不再赘述。 Modbus主站指令也只需编写主程序,主程序也由两个网络构成。 主站指令也只需编写主程序,主程序也由两个网络构成。 主站指令也只需编写主程序 (1) 网络 用于每次扫描时调用 MBUS_CTRL 指令来初始化和监视 ) 网络1用于每次扫描时调用 Modbus 主站设备。Modbus 主设备设置为 主站设备。 主设备设置为9600波特,无奇偶校验, 波特, 波特 无奇偶校验, 允许从站1000毫秒 秒)的应答时间。 允许从站 毫秒(1秒 的应答时间。 毫秒 的应答时间

? ?

73

www.plcworld.cn

Modbus 主站组态说明
S7-200
Hardware Software Workshop

?

指令读取从站2的 (2)网络 实现在 I0.3 正跳变时执行 MBUS_MSG 指令读取从站 的 )网络2实现在 的数值。 开始, 地址 10001~10008 的数值。保持寄存器存储区从 VB200 开始,长8 个字。 从站寻址规约, 个字。根据 Modbus 从站寻址规约,10001~10008 即 S7-200 PLC 地址值。 中I0.1~I0.7的 Modbus 地址值。 的

74

www.plcworld.cn

实现步骤
S7-200
Hardware Software Workshop

? Modbus 从站组态说明 ? Modbus 主站组态说明 ? 通信测试

75

www.plcworld.cn

通信测试
S7-200
Hardware Software Workshop

? ? ? ? ?

通信测试的步骤如下: 通信测试的步骤如下: 的端口0。 (1)用串口电缆连接主从站 PLC 的端口 。 ) 状态。 (2)将主从站 PLC 设置为 Run 状态。 ) (3)设置从站 I0.0~I0.7。 ) 。 设为ON,利用 Step7-Micro/Win 状态表监测主 (4)将主站的 I0.3 设为 ) , 站保持寄存器的数值。 站保持寄存器的数值。

?

从图中可以看出VB200存储的即是 I0.0~I0.7 的数值,此时均为 ON 状 从图中可以看出 存储的即是 的数值, 态,与这些输入点的实际状态一致。 与这些输入点的实际状态一致。
76

www.plcworld.cn

通信测试
S7-200
Hardware Software Workshop

? ? ?

补充说明: 补充说明: 通信失败,可分别从主从站的报文入手。 (1)如果 Modbus RTU 通信失败,可分别从主从站的报文入手。 ) 从站通信是否正常, (2)测试 Modbus 从站通信是否正常,可利用计算机上的串口通信 ) 调试软件向从站发送请求帧,查看是否能接受到正确的响应帧。 调试软件向从站发送请求帧,查看是否能接受到正确的响应帧。 主站通信是否正常, (3)测试 Modbus 主站通信是否正常,可由主站向计算机串口发送 ) 请求帧,在计算机上用串口通信调试软件查看请求帧是否正常。 请求帧,在计算机上用串口通信调试软件查看请求帧是否正常。

?

77

www.plcworld.cn

Thank you for your attention! !
S7-200
Hardware Software Workshop

End of presentation!

78


相关文章:
S7-200实现Modbus通信范例(绝对精华)!!
S7-200实现Modbus通信范例(绝对精华)!!_信息与通信_工程科技_专业资料。说明: 使用下面的例程你可以在 S7-200CPU 之间设置一个简单的 Modbus 通讯。 这个例子是...
S7-1200和S7-200 MODBUS通信教程
S7-1200和S7-200 MODBUS通信教程_信息与通信_工程科技_专业资料。S7-1200和S7-200 MODBUS通信教程 如何通过Modbus协议实现 S7-1200与S7-200通讯 How to ...
S7-200的MODBUS通讯设置_详解
S7-200MODBUS通讯设置_详解_信息与通信_工程科技_专业资料。S7-200MODBUS通讯设置_详解 用下面的例程你可以在 S7-200 CPU 之间建立一个简单的 Modbus 主-从...
plc培训班-西门子S7200与变频器MODBUS通讯实例详解
杭州端德教育 硬件工程师培训 plc 硬件设计培训/fpga 硬件设计培训 http://www.hzdde.com 西门子 S7200 与变频器 MODBUS 通讯实例详解 西门子 S7200PLC 简介 ...
S7-200CPU之间简单的Modbus通讯
S7-200CPU之间简单的Modbus通讯_计算机硬件及网络_IT/计算机_专业资料。说明: 使用下面的例程你可以在 S7-200CPU 之间设置一个简单的 Modbus 通讯。 这个例子是关...
S7-200的MODBUS通讯设置(易懂)
S7-200MODBUS通讯设置(易懂)_计算机软件及应用_IT/计算机_专业资料。西门子PLC编程中的MODBUS通讯设置,简单易懂。用下面的例程你可以在 S7-200 CPU 之间建立一...
S7-1200和S7-200的modbus通讯
S7-1200和S7-200modbus通讯_信息与通信_工程科技_专业资料。如何实现 S7-1200 和 S7-200modbus 通讯 通讯的使用的 S7-1200 PLC 型号为 S7-1214C CPU...
S7-200 MODBUS主从通讯
硬件设置 例程中的 Modbus 通讯是在两个 S7-200 CPU 的 0 号通讯口间进行的(最好每个 CPU 都有 两个通讯口)。在主站侧也可以选择相应库文件 "MBUS_CTRL_...
HONEYWELL PKS与S7-200的MODBUS RTU 从站协议通讯
HONEYWELL PKS 与 S7-200MODBUS RTU 从站协议通讯 摘要: 本文通过着重阐述对 HONEYWELL PKS 和 S7-200modbus rtu 通讯的 各种参数的设置,以实现 ...
s7-200和12台modbus仪表的通讯实例
s7-200和12台modbus仪表的通讯实例_信息与通信_工程科技_专业资料。TITLE=程序注释 Network 1 // 网络标题 // 网络注释 LD SM0.1 R M0.0, 128 Network 2 ...
更多相关标签:
modbus通讯 s7200教程 | s7200modbus通讯实例 | s7 200 modbus | s7 200 modbus库 | s7200 modbus通讯 | s7 200 modbus库 下载 | s7 200 modbus指令库 | s7 200 smart modbus |