当前位置:首页 >> 能源/化工 >>

S7-200 Modbus通信


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

NEW!

1

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

? 概述
– – – –

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

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

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

概述
S7-200
Hardware Software Workshop

? 定义

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

3

定义
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

概述
S7-200
Hardware Software Workshop

? 定义

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

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

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

? Modbus 寻址

? ASCII 模式
? RTU 模式

6

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

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 主站允许访问 的输入寄存器(AIW)的最大数量。MBUS_INIT 指令的MaxHold 参 数指定 Modbus 主站允许访问的保持寄存器(V存储区字)的最大数 量。
8

Modbus 寻址
S7-200
Hardware Software Workshop

?

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

9

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

? Modbus 寻址

? ASCII 模式
? RTU 模式

10

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

?

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

?

?

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

?

11

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

? Modbus 寻址

? ASCII 模式
? RTU 模式

12

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

?

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

? ?

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

? ?

13

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

?

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

14

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

?

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

?

?

15

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)S7-200 CPU 必须是固化程序修订版2.00或最好支持 Modbus 主设备协议库(CPU MLFB 21x-2xx23-0XB0)。

?

16

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

?

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

?

17

概述
S7-200
Hardware Software Workshop

? 定义

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

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

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

? MBUS_CTRL 指令

? MBUS_MSG 指令

19

MBUS_CTRL 指令
S7-200
Hardware Software Workshop

?

西门子 Modbus 主站协议库包括两条指令:MBUS_CTRL 指令和 MBUS_MSG 指令。 MBUS_CTRL 指令用于初始化主站通信,MBUS_MSG 指令(或用于 端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理应答。

?

?

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

MBUS_CTRL 指令
S7-200
Hardware Software Workshop

? ?

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

?

?

? ? ?

21

MBUS_CTRL 指令
S7-200
Hardware Software Workshop

?

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

?

?

? ? ? ? ?

MBUS_CTRL 指令
S7-200
Hardware Software Workshop

?

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

23

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

? MBUS_CTRL 指令

? MBUS_MSG 指令

24

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

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

?

?

25

MBUS_MSG 指令
S7-200
Hardware Software Workshop

? ?

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

?

?

26

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

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

? ? ? ? ?

?
?

27

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

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

?

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

?

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

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

?

?

?

29

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

MBUS_MSG 错误代码含义表

30

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

MBUS_MSG 错误代码含义表(续)

31

MBUS_MSG 指令
S7-200
Hardware Software Workshop

?

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

32

概述
S7-200
Hardware Software Workshop

? 定义

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

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

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

? MBUS_INIT 指令

? MBUS_SLAVE 指令

34

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

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

?

?

? ? ?

MBUS_INIT 指令
S7-200
Hardware Software Workshop

?

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

?

?

? ?

37

MBUS_INIT 指令
S7-200
Hardware Software Workshop

?

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

38

MBUS_INIT 指令
S7-200
Hardware Software Workshop

?

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

39

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

? MBUS_INIT 指令

? MBUS_SLAVE 指令

40

MBUS_SLAVE 指令
S7-200
Hardware Software Workshop

?

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

? ?

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

?

Error:错误代码。

41

MBUS_SLAVE 指令
S7-200
Hardware Software Workshop

?

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

?

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

42

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

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

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

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

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

? 指令库的安装

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

44

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

?

Step7-Micro/Win 指令库光盘可直接从西门子订购,名称为 STEP 7Micro/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

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

?

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

46

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

?

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

47

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

?

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

48

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

? 指令库的安装

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

49

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

? ?

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

50

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

?

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

51

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

?

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

?

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

52

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

? 指令库的安装

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

53

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

?

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

? ?

54

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

?

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

55

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

?

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

56

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

?

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

?

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

57

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

? ?

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

?

58

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

? 指令库的安装

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

59

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

? ?

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

?

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

60

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

?

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

61

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

?

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

?

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

62

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

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

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

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

编程示例
S7-200
Hardware Software Workshop

? 功能要求

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

64

功能要求
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

? ?

?

?

编程示例
S7-200
Hardware Software Workshop

? 功能要求

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

66

实现步骤
S7-200
Hardware Software Workshop

? Modbus 从站组态说明

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

67

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

? ?

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

?

68

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

?

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

? ?

69

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

? ?

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

?

70

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

?

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

71

实现步骤
S7-200
Hardware Software Workshop

? Modbus 从站组态说明

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

72

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

?

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

? ?

73

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

实现步骤
S7-200
Hardware Software Workshop

? Modbus 从站组态说明

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

75

通信测试
S7-200
Hardware Software Workshop

? ? ? ? ?

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

?

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

通信测试
S7-200
Hardware Software Workshop

? ? ?

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

?

77

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

End of presentation!

78


相关文章:
S7-200的MODBUS通讯设置(易懂)
S7-200MODBUS通讯设置(易懂)_计算机软件及应用_IT/计算机_专业资料。西门子PLC编程中的MODBUS通讯设置,简单易懂。用下面的例程你可以在 S7-200 CPU 之间建立一...
S7-200实现Modbus通信范例(绝对精华)!!
S7-200实现Modbus通信范例(绝对精华)!!_信息与通信_工程科技_专业资料。说明: 使用下面的例程你可以在 S7-200CPU 之间设置一个简单的 Modbus 通讯。 这个例子是...
S7-1200和S7-200 MODBUS通信教程
如何通过Modbus协议实现 S7-1200与S7-200通讯 How to communication between S7-1200 and S7-200 with Modbus protocol Getting Started Edition(2010年1月) www....
S7-200与V20的MODBUS RTU通讯
S7-200 与 V20 之间的 MODBUS RTU 通讯 显示订货号 S7-200 与 V20 的 MODBUS RTU 通讯 1、本例程的系统配置: (1)安装 Step7 Micro/Win software 和 ...
S7-200-modbus
如果想在 S7-200 CPU 与其他支持 Modbus RTU 的设备使用 Modbus RTU 协议 通讯,需要由有 S7-200 CPU 做 Modbus 主站。S7-200 CPU 做主站必须由用户自 己用...
S7-200 MODBUS主从通讯
硬件设置 例程中的 Modbus 通讯是在两个 S7-200 CPU 的 0 号通讯口间进行的(最好每个 CPU 都有 两个通讯口)。在主站侧也可以选择相应库文件 "MBUS_CTRL_...
S7-1200和S7-200的modbus通讯
S7-1200和S7-200modbus通讯_信息与通信_工程科技_专业资料。如何实现 S7-1200 和 S7-200modbus 通讯 通讯的使用的 S7-1200 PLC 型号为 S7-1214C CPU...
S7-200与V20之间的MODBUS RTU通讯
S7-200 与 V20 之间的 MODBUS RTU 通讯 S7-200 与 V20 的 MODBUS RTU 通讯 1、本例程的系统配置: (1)安装 Step7 Micro/Win software 和 Modbus 协议库...
西门子200MODBUS通讯案例
西门子200MODBUS通讯案例_信息与通信_工程科技_专业资料。西门子 S7-200 Modbus 小案例 使用下面的例程你可以在 S7-200CPU 之间设置一个简单的 Modbus 通讯。 这个...
MODBUS RTU通讯协议在S7-200中的应用
MODBUS RTU通讯协议S7-200中的应用_兵器/核科学_工程科技_专业资料。MODBUS RTU通讯协议S7-200中的应用今日推荐 157份文档 2015...
更多相关标签:
s7 200 modbus | s7200modbus通讯实例 | s7 200 modbus库 | s7 200 modbus库 下载 | s7200 modbus通讯 | s7 200 modbus指令库 | s7 200 smart modbus | s7 200与变频器modbus |