您好,欢迎来到九壹网。
搜索
您的当前位置:首页S7-200实现MODBUS通讯

S7-200实现MODBUS通讯

来源:九壹网
S7-200实现MODBUS通讯

在EVIEW触摸屏和 S7-200 CPU 之间建立一个简单的 Modbus 主-从通讯。

在S7-200控制系统应用中,Modbus RTU从站指令库只支持CPU上的通讯0口(Port0)。要实现Modbus RTU通讯,需要

Step7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装Step7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。 一、基本过程如下:

(一)使用Step7-Micro/WIN V3.2以上版本。

(二)安装Micro/WIN32 V3.2 Instruction Library(指令库)软件包,Micro/WIN的指令树中如图1所示。

图1

(三)编程

使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLAVE,并指定相应参数。 1、 MBUS_INIT指令(初始化从站)

MBUS_INIT指令使能和初始化或禁止Modbus通讯,MBUS_INIT指令必须无错误的执行,才能够使用MBUS_SLAVE指令。

2、 MBUS_SLAVE指令

MBUS_SLAVE指令用于服务Modbus主站的请求,必须在每个循环周期都执行,以便检查和响应Modbus请求。

编程如图2所示,

图2

二、注意事项

(一)调用Step7-Mciro/WIN32 V3.2 Instruction Library(指令库)需要分配库指令数据区(Library Memory)。库指令数据区是

相应库的子程序和中断程序所要用到的变量存储空间。如果在编程时不分配库指令数据区,编译时会产生许多相同的错误。选重目录树中的程序块,选择右键菜单里的库存储区,设置如图3所示;

(二)由子程序参数HoldStart和MaxHold指定的保持寄存器区,是在S7-200 CPU的V数据存储区中分配,此数据区不

能和库指令数据区有任何重叠,否则在运行时会产生错误,不能正常通讯(其中及可能造成Error的值为10(从属功能未启用))。注意Modbus 中的保持寄存器区按“字”寻址,即MaxHold规定的是VW而不是VB的个数。

四、补充

(一)Modbus从站协议执行错误代码

错 误 代 码 0 1 2 3 4 5 6 7 8 9 10 (二)Modbus从站所支持的地址对应如下

Modbus地址 0x1-0x128 1x1-1x128 3x1-3x32 4x1开始的地址

S7-200地址 Q0.0-Q15.7 I0.0-I15.7 AIW0-AIW V存储器的保存积存器 无错误 内存范围错误 非法波特率或奇偶检验 非法从属地址 非法Modbus参数值 保持寄存器与Modbus从属符号重叠 收到奇偶检验错误 收到CRC错误 非法功能请求/功能不受支持 请求中的非法内存地址 从属功能未启用 说 明

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务