西门子modbusrtu通信

上传人:第*** 文档编号:55982331 上传时间:2018-10-08 格式:DOCX 页数:25 大小:379.96KB
返回 下载 相关 举报
西门子modbusrtu通信_第1页
第1页 / 共25页
西门子modbusrtu通信_第2页
第2页 / 共25页
西门子modbusrtu通信_第3页
第3页 / 共25页
西门子modbusrtu通信_第4页
第4页 / 共25页
西门子modbusrtu通信_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《西门子modbusrtu通信》由会员分享,可在线阅读,更多相关《西门子modbusrtu通信(25页珍藏版)》请在金锄头文库上搜索。

1、S7-200 Modbus RTU 通信通信 关键字关键字 库文件 RS485 网络主站:编程地址错误例程从站: 编程地址错误例程S7-200 Modbus RTU 通信简介Modbus 是公开通信协议,具有两种串行传输模式,ASCII 和 RTU。详细的 协议和规范,请访问 Modbus 组织的网站:http:/www.modbus.org/ S7-200 通过以下方式支持 Modbus RTU 通信协议:S7-200 CPU 上的通信口 0(Port 0)通过指令库支持 Modbus RTU 从站模式S7-200 CPU 上的通讯口 0 和 1 (Port 0 和 Port 1)通过指令库

2、 支持 Modbus RTU 主站模式 在 S7-200 CPU 通信口上实现的是 RS485 半双工通信,使用的是 S7-200 的自由口功能。 通过 S7-200 CPU 通信口的自由口模式实现 Modbus 通信协议,可以通过无 线数据电台等慢速通信设备传输。 这为组成 S7-200 之间的简单无线通信网 络提供了便利。 详细情况请参考S7-200 系统手册(2002 年 10 月或以后版本)的相应章 节。常问问题常问问题S7-200 是否支持是否支持 Modbus ASCII 通信模式?通信模式?西门子不提供支持上述模式的的现成指令库,需要用户自己用自由口模式编程。目录目录 1 Mod

3、bus RTU 主站 1.1 主站指令库 1.2 主站功能编程 1.3 主站协议及地址 1.4 主站例程 1.5 主站常问问题 2 Modbus RTU 从站 2.1 CPU 上的通信口(Port0)支持 Modbus RTU 从站通信协议 2.2 从站编程基本步骤 2.3 从站地址与 S7-200 的地址对应 2.4 从站指令库支持的功能码 2.5 从站例程 2.6 从站常见问题 3 STEP 7-Micro/WIN 的标准指令库 3.1 分配库指令数据区 3.2 添加指令库 3.3 删除库指令 4 RS-485 网络4.1 S7-200 系统中的 RS-485 通信 5 RS-485 网络

4、的硬件组成 5.1 连接网络连接器 5.2 网络连接器 5.3 线型网络结构 5.4 终端电阻和偏置电阻 6 扩展阅读 6.1 扩展阅读1Modbus RTU 主站主站1.1 Modbus RTU 主站指令库主站指令库西门子在 Micro/WIN V4.0 SP5 中正式推出 Modbus RTU 主站协议库(西门 子标准库指令)。图 1. 西门子标准指令库(Micro/WIN V4.0 SP5) 注意注意1. Modbus RTU 主站指令库的功能是通过在用户程序中调用预先编好的 程序功能块实现的,该库对 Port 0 和 Port 1 有效。该指令库将设置通 信口工作在自由口模式下。2.

5、Modbus RTU 主站指令库使用了一些用户中断功能,编其他程序时不 能在用户程序中禁止中断。3. Modbus RTU 主站库对 CPU 的版本有要求。CPU 的版本必须为 2.00 或者 2.01(即订货号为 6ES721*23-0BA*),1.22 版本之前 (包括 1.22 版本)的 S7-200 CPU 不支持。 使用 Modbus RTU 主站指令库,可以读写 Modbus RTU 从站的数字量、模 拟量 I/O 以及保持寄存器。 要使用 Modbus RTU 主站指令库,须遵循下列步骤:1.安装西门子标准指令库2.按照要求编写用户程序调用 Modubs RTU 主站指令库 安装

6、西门子标准指令库1.2 Modbus RTU 主站功能编程主站功能编程1. 调用调用 Modbus RTU 主站初始化和控制子程序主站初始化和控制子程序使用 SM0.0 调用 MBUS_CTRL 完成主站的初始化,并启动其功能控制:图 2. 用 SM0.0 调用 Modbus RTU 主站初始化与控制子程序 各参数意义如下:a.EN使能:必须保证每一扫描周期都被使能(使用 SM0.0)b. Mode 模式:为 1 时,使能 Modbus 协议功能;为 0 时恢复为系统 PPI 协议c. Baud 波特率:支持的通讯波特率为 1200,2400,4800,9600,19200,38400,576

7、00,11 5200。d. Parity 校验:校验方式选择0无校验1奇较验 2偶较验 e.Timeout超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值 为 1000 毫秒(1 秒),允许设置的范围为 1 - 32767。注意:注意: 这个值必须设置足够大以保证从站有时间响应。f.Done 完成位:初始化完成,此位会自动置 1。可以用该位启动 MBUS_MSG 读写操作(见例程)g. Error初始化错误代码(只有在 Done 位为 1 时有效):0 无错误1 校验选择非法2 波特率选择非法3 模式选择非法2. 调用调用 Modbus RTU 主站读写子程序主站读写子程序 MBUS_

8、MSG,发送一个,发送一个 Modbus 请请 求;求;图 3. 调用 Modbus RTU 主站读写子程序 各参数意义如下:a.EN使能:同一时刻只能有一个读写功能(即 MBUS_MSG)使 能注意:注意:建议每一个读写功能(即 MBUS_MSG)都 用上一个 MBUS_MSG 指令的 Done 完成位来激活, 以保证所有读写指令循环进行(见例程)。b. First 读写请求位:每一个新的读写请求必须使用脉冲脉冲触发c. Slave 从站地址:可选择的范围 1 - 247d.RW从站地址:0 读, 1 写注意:注意:1. 开关量输出和保持寄存器支持读和写功能 2. 开关量输入和模拟量输入只支

9、持读功能e. Addr 读写从站的数据地址:选择读写的数据类型00001 至 0xxxx - 开关量输出10001 至 1xxxx - 开关量输入30001 至 3xxxx - 模拟量输入 40001 至 4xxxx - 保持寄存器f. Count 数据个数通讯的数据个数(位或字的个数)注意:注意: Modbus 主站可读/写的最大数据量为 120 个 字(是指每一个 MBUS_MSG 指令)g.DataPtr数据指针:1. 如果是读指令,读回的数据放到这个数据区中2. 如果是写指令,要写出的数据放到这个数据区中h. Done 完成位读写功能完成位i. Error 错误代码:只有在 Done

10、位为 1 时,错误代码才有效0 无错误1 响应校验错误2 未用3 接收超时(从站无响应)4 请求参数错误(slave address, Modbus address, count, RW)5 Modbus/自由口未使能6 Modbus 正在忙于其它请求7 响应错误(响应不是请求的操作)8 响应 CRC 校验和错误-101 从站不支持请求的功能102 从站不支持数据地址103 从站不支持此种数据类型104 从站设备故障105 从站接受了信息,但是响应被延迟106 从站忙,拒绝了该信息107 从站拒绝了信息108 从站存储器奇偶错误常见的错误:常见的错误:如果多个 MBUS_MSG 指令同时使能会

11、造成 6 号错误库存储区被程序其它地方复用,有时也会造成 6 号错误从站 delay 参数设的时间过长会造成主站 3 号错误从站掉电或不运行,网络故障都会造成主站 3 号错误3. 在在 CPU 的的 V 数据区中为库指令分配存储区(数据区中为库指令分配存储区(Library Memory)Modbus Master 指令库需要一个 284 个字节的全局 V 存储区。 参考:分配库指令数据区1.3 关于关于 Modbus RTU 主站协议及地址主站协议及地址此为西门子正式推出的标准库指令说明资料。 在在 Modbus RTU Master 协议和协议和 PPI 协议之间切换:协议之间切换:Mod

12、bus RTU Master 协议指令库使通信口工作在自由口模式下,此时不能与 Micro/WIN 软件通信。要在切换回 PPI 协议,可以:将 MBUS_CTRL 指令的 Mode 输入端设置为逻辑“0“将 CPU 的允许模式选择开关置为 STOP 位置 Modbus RTU Master 协议库的执行时间:协议库的执行时间: Modbus RTU Master 协议库的 MBUS_CTRL 指令不需要很长的执行时间。 MBUS_需要 1.11 ms 用于初始化,在后续的每个扫描周期中只占用 0.41 ms。 调用 MBUS_MSG 子程序会加长处理时间。大部分时间都用于 CRC 校验的 计

13、算。每读、写一个字的数据就需要 1.85 ms 扫描时间。数据最多的情况下 (读、写 120 字的数据),扫描时间大概会扩增加 222 ms。读操作的时间主 要消耗在接收数据上;写操作的时间主要消耗在发送数据上。 Modbus 地址地址 通常 Modbus 地址由 5 位数字组成,包括起始的数据类型代号,以及后面的 偏移地址。Modbus Master 协议库把标准的 Modbus 地址映射为所谓 Modbus 功能号,读写从站的数据。Modbus Master 协议库支持如下地址:00001 - 09999:数字量输出( 线圈)10001 - 19999:数字量输入(触点)30001 - 3

14、9999:输入数据寄存器(通常为模拟量输入)40001 - 49999:数据保持寄存器 Modbus Master 协议库支持的功能协议库支持的功能 为了支持上述 Modbus 地址的读写,Modbus Master 协议库需要从站支持下 列功能: 表 1. 需要从站支持的功能Modbus 地址地址读读/写写Modbus 从站须支持的功能从站须支持的功能读功能 100001 - 09999 数字量输出数字量输出写功能 5:写单输出点 功能 15:写多输出点读功能 210001 - 19999 数字量输入数字量输入写读功能 430001 - 39999 输入寄存器输入寄存器写读功能 340001

15、 - 49999 保持寄存器保持寄存器写功能 6:写单寄存器单元 功能 16:写多寄存器单元 Modbus 地址和地址和 S7-200 存储区地址的映射存储区地址的映射 S7-200 通过 Modbus Master 和 Slave 协议库通信时,Modbus 地址和 S7- 200 内存储区地址的 映射关系都类似。 Modbus 保持寄存器地址映射举例:Modbus 数字量地址映射举例: 位地址(0xxxx 和 1xxxx)数据总是以字节为单位打包读写。第一个字节中的 最低有效位对应 Modbus 地址的起始地址。如下图所示:图 4. 数字量地址映射举例1.4 Modbus RTU 主站例程

16、主站例程为了更好地理解 Modbus 主站的编程,可参考下面的例程。 例子程序 1: 多个 MBUS_MSG 指令轮询执行, 注意注意1. 该例程使用 Micro/WIN V4.0 SP5 保存。2. 该例程仅访问一个从站,若访问不同的从站,可通过改变从站地址来 实现。Modbus RTU 主站指令库应用例程 例子程序例子程序 2:反复激活单个:反复激活单个 MBUS_MSG 指令:指令:Modbus RTU 主站变址方式轮询访问应用例程 注意:注意:此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何 责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供 任何担保,错误纠正和热线支持,用户不必为 此联系西门子技术支持与服务部 门。1.5 Modbus RTU 主站常问问题主站常问问题Modbus RTU 主站库对主站库对 CPU 的版本是否有要求,为什么编译例子程序时,的版本是否有要求,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号