视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
如何用 S7-200 实现 Modbus 通信
2025-09-25 21:38:27 责编:小OO
文档
如何用S7-200 实现Modbus 通信?"MBUS_INIT" and "MBUS_SLAVE"。

在Micro/WIN 中您需要为主站和从站新建一个项目,程序与参数设置见图.02。

必须要保证主站与从站的“Baud”和“Parity”的参数设置要一致,并且程序块"MBUS_MSG" 中的"Slave" 地址要与程序块"MBUS_INIT" 中的"Addr" 所设置的一致(见图. 02)。

在Micro/WIN“系统块”中设置的通讯口0 的波特率与MODBUS 协议无关("Mode" = "1")。

图. 02

下面的表格列出了程序块各个参数选项及其含义。

主站

MBUS_CTRL

参数意义选项

EN 使能

Mode 协议选择0=PPI, 1=MODBUS

Baud 传输速率kbps 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 Parity 校验选择0=无校验, 1=奇校验, 2=偶校验

Timeout 从站的最长响应时间ms

Done “完成”标志位

Error 错误代码1)

表011)参看STEP 7 Micro/WIN 帮助:"MODBUS 主站执行 MBUS_MSG 时的错误代码" 。MBUS_MSG

参数意义选项

EN 使能

First 读写请求位

Slave 从站地址

RW "读" 或"写" 0=读, 1=写

Addr 读写从站的数据地址0 .. 128 = 数字量输出Q0.0 .. Q15.7

1001 .. 10128 = 数字量输入I0.0 ..

I15.7

30001 .. 30092 = 模拟量输入AIW0 ..

AIW62

40001 .. 49999 = 保持寄存器2 Count 位或字的个数(0xxxx, 1xxxx) / words (3xxxx,

4xxxx)

DataPtr V存储区起始地址指针

Done '完成' 标志位

Error 错误代码1)

表02

1)参看STEP 7 Micro/WIN 帮助:"MODBUS 主站执行MBUS_MSG 时的错误代码" 。

从站

MBUS_INIT

参数意义选项

EN 使能

Mode 协议选择0=PPI, 1=MODBUS

Addr 从站地址

Baud 传输速率kbps 1200, 2400, 4800, 9600, 19200, 38400, 57600,

115200

Parity 奇偶校验0=无校验, 1=奇校验, 2=偶校验

Delay 延时时间msMaxIQ 最大数字输入输出点数2)

MaxAI 最大模拟量输入点数2)

MaxHold 最大保持寄存器字数量2)

HoldStart 保持寄存器区起始地址

(40001)

Done 完成标志位

Error 错误代码3)

表03

2)最大的地址取决于所用CPU的类型及其最大值。

3)参看STEP 7 Micro/WIN 帮助:“MODBUS从站协议的错误代码”。

MBUS_SLAVE

参数意义选项

EN 使能

Done 完成标志位

Error 错误代码3)

表04

3)参看STEP 7 Micro/WIN 帮助:“MODBUS从站协议的错误代码”。

3. 库的存储地址

项目完成后必须要在Micro/WIN 中定义库的存储地址,当定义完存储区后, 要保证在任何情况下不能再被其它程序所使用(主站侧: "DataPtr" + "Count" 从站侧:"HoldStart" + "MaxHold")。

图. 03

4. 保持寄存器值的传输

将程序下载到相应的CPU 后,可以在状态表中给主站侧的V 存储区赋值,然后从站侧监视数值的变化。

当主站的I0.0 使能后,VW2 中的内容就被发送到从站并写入从站的VW2 。

保持寄存器值的传输见图. 04。

指针"DataPtr" 代表了被读的V 区起始地址。

参数"Count" 指定了被写入地址"Addr" = "4xxxx" (保持寄存器)字的个数。

相应V 存储区的变量将被写到保持寄存器启始地址"Addr" = "40002" ("RW" = "1")中。

保持寄存器是以字为单位传输的,它与从站的V 区地址对应。

指针"HoldStart" 指定了与保持寄存器起始地址40001 相对应的V存储区的初始地址。

可以按下面公式计算从站的V区目标指针:

2 * (Addr - 40001) + HoldStart = 2 * (40002 - 40001) + &VB0 = &VB2

另外,要保证主站侧所要写入的数据区包含在"MaxHold" 定义的数据区内:

MaxHold >= Addr - 40001 + Count = 40002 - 40001 + 1 = 2

说明:

在 STEP 7 Micro/WIN 中,Modbus RTU 协议和USS 协议操作库位于操作树的“库”文件夹中。MODBUS 函数库要求STEP 7 Micro/WIN 为V3.2 或更高版本。

您如果需要使用Modbus RTU 协议,必须购买“SIMATIC STEP 7 Micro/WIN ADD ON: Function Library V1.1 (USS + MODBUS) for STEP 7 Micro/WIN 32”软件。

这个可选附加函数库的订货号是6ES7830-2BC00-0YX0。

安装顺序:

先安装“STEP 7 Micro/WIN 32 Toolbox V1.0”(包括库),然后安装“STEP 7 Micro/WIN”。

注意:

这个函数库包含可以在STEP 7 Micro/WIN V3.2 中使用的Modbus RTU 协议库和USS 协议库。

如果您安装了STEP 7 Micro/WIN V4.0 SP5 (参见条目号:24675347) 或者更高版本,那么操作库中就会包含下列函数:

·Modbus RTU Master V1.2 对应端口0 和端口1

·Modbus RTU Slave V1.0 对应端口0

·USS protocol V2.3 对应端口0 和端口1

您可以在STEP 7 Micro/WIN 的帮助中或者S7-200 系统手册中找到关于指令库的更多信息( 参见条目号:1109582)。下载本文

显示全文
专题