1、说明:使用下面的例程你可以在 S7-200CPU 之间设置一个简单的 Modbus 通讯。这个例子是关于 Modbus 功能码 6 的(写从站保持寄存器), 也可以作为其他所支持的功能码:1, 2, 3, 4, 5, 15 和 16 的基本参数设置步骤 。要求:要使用 Modbus 协议必须先在 STEP 7 Micro/Win 上安装指令库 。Modbus 主站协议只支持 STEP 7 Micro/Win V4.0 SP5 及其以上版本.。1. 硬件设置 2. 参数匹配 3. 指令库的存储地址 4. 保持寄存器值得传输 1. 硬件设置例程中的 Modbus 通讯是在两个 S7-200 CPU
2、 的 0 号通讯口间进行的(最好每个 CPU 都有两个通讯口)。在主站侧也可以选择相应库文件 “MBUS_CTRL_P1“ 和 “MBUS_MSG_P1“通过 1号通讯口通信。通讯口 1 与 Micro/WIN 建立 PG 或 PC 连接,两个 CPU 的通讯口 0 通过 PPI电缆进行连接(电缆的 针脚 连接为 2,3,7,8)。图. 012. 参数匹配对于 MODBUS 通讯, 主站侧需要程序库 “MBUS_CTRL“ 和 “MBUS_MSG“, 从站侧需要程序库 “MBUS_INIT“ and “MBUS_SLAVE“。在 Micro/WIN 中您需要为主站和从站新建一个项目,程序与参数
3、设置见图.02。必须要保证主站与从站的“Baud”和“Parity“的参数设置要一致,并且程序块“MBUS_MSG“中的“Slave“地址要与程序块“MBUS_INIT“中的“Addr“所设置的一致 (见图. 02)。Micro/WIN“系统块”中设置的 0 通讯口的波特率与 MODBUS 协议无关(“Mode“ = “1“)。图. 02下面的表格列出了程序块各个参数选项及其意义主站MBUS_CTRL表 011) 参看 STEP 7 Micro/WIN 帮助: “MODBUS 主站执行 MBUS_MSG 时的错误代码MBUS_MSG“ 。MBUS_MSG表 021)参看 STEP 7 Micr
4、o/WIN 帮助: “MODBUS 主站执行 MBUS_MSG 时的错误代码MBUS_MSG“ 。从站MBUS_INIT表 032) 最大的地址取决于所用 CPU 的类型及其最大值。3)参看 STEP 7 Micro/WIN 帮助: “MODBUS 从站协议的错误代码”。MBUS_SLAVE表 043)参看 STEP 7 Micro/WIN 帮助: “MODBUS 从站协议的错误代码” 。3. 库的存储地址项目完成后必须要在 Micro/WIN 中定义库的存储地址,当定义完存储区后, 要保证在任何情况下不能再被其它程序所使用 (主站侧: “DataPtr“ + “Count“ 从站侧: “Ho
5、ldStart“ + “MaxHold“)。图. 034. 保持寄存器值的传输将程序下载到相应的 CPU 后,可以在状态表中给主站侧的 V 存储区赋值,然后监视从站的变化。当主站的 I0.0 使能后,VW2 中的内容就被发送到从站并写入从站的 VW2 。保持寄存器值的传输见图. 04。指针“DataPtr“ 代表了 V 区被读的起始地址。参数 “Count“ 表明了地址“Addr“ = “4xxxx“ (保持寄存器)以字为单位被读的个数。主站中被读取的 V 存储区被写入地址为“Addr“ = “40002“ (“RW“ = “1“)的保持寄存器中。保持寄存器是以字为单位工作的,它与从站的 V
6、区地址对应。指针 “HoldStart“ 明确了与保持寄存器起始地址 40001 相对应的 V 存储区的初始地址。可以这样计算从站的 V 区目标指针:2 * (Addr - 40001) + HoldStart = 2 * (40002 - 40001) + &VB0 = &VB2另外,要保证“MaxHold“ 定义的数据区能够包含主站侧所要写入的数据区 :MaxHold = Addr - 40001 + Count = 40002 - 40001 + 1 = 2Fig. 04关于 STEP 7 Micro/WIN MOBDUS 库的更多信息可以参看 S7-200 系统手册 ( Entry I
7、D 1109582) 和 STEP 7 Micro/WIN 帮助。如何在 STEP 7 Micro/WIN 中找到 Modbus RTU 协议和 USS 协议操作库? 说明:在 STEP 7 Micro/WIN 中,Modbus RTU 协议和 USS 协议操作库位于操作树的“库”文件夹中。MODBUS 函数库要求 STEP 7 Micro/WIN 为 V3.2 或更高版本。图 1: 添加函数库这些库是附加函数库,并非组态软件 STEP 7 Micro/WIN 的组成部分。您如果需要使用 Modbus RTU 协议,必须购买“SIMATIC STEP 7 Micro/WIN ADD ON: F
8、unction 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 或者更高版本,那么操作库中就会包含下列函数:Modbus RTU Master V1.2 对应端口 0 和端口 1 Modbus RTU Slave V1.0 对应端口 0 USS protocol V2.3 对应端口 0 和端口 1