您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > S7200的MODBUS详细应用示例
1PLC200MODBUS协议配置使用方法2修订历史记录日期版本说明(修改、补充、删除)作者审核2009/4/3第一版(已完)研发部·孙宝东研发部·王振岳5.13库存储区补充说明(36页)注释:红色字体为注意点;蓝色为修改补充;紫色为问题总结;茶色为暂时删除;绿色为住宿。3目录前言..............................................................错误!未定义书签。第一章使用Modbus协议库..................................错误!未定义书签。前言..............................................................................61.使用Modbus主设备协议的要求.....................................................62.使用Modbus从站设备协议的要求...................................................73.Modbus主设备协议的初始化和执行时间.............................................74.Modbus从站协议的初始化和执行时间...............................................85.Modbus主设备寻址...............................................................86.Modbus从站寻址................................................87.Modbus主设备MBUS_MSG执行错误代码.............................................108.Modbus从站协议执行错误代码.......................................119.Modbus主设备高级用户信息........................................11第二章使用Modbus主设备指令................................14前言.......................................................141.MBUS_CTRL指令(初始化主设备)...................................................152.MBUS_MSG指令..................................................................16第三章使用Modbus从站指令................................错误!未定义书签。前言.........................................................221.MBUS_INIT指令(初始化从站)......................................错误!未定义书签。2.MBUS_SLAVE指令.................................................错误!未定义书签。3.常见问题.......................................................................26第四章下载与通讯测试.......................................错误!未定义书签。1.编译、下载......................................................错误!未定义书签。2.通讯...........................................................................31附表主从站指令配置表.....................................................374S7200Modbus主从协议版本(09年初稿版)制作:研发部前言:Modbus从站协议指令可以配置S7-200,将其用作ModbusRTU从站,与Modbus主设备通讯。Modbus主设备协议指令可以配置S7-200,将其用作ModbusRTU主设备,与一个或多个Modbus从站通讯。Modbus指令安装在STEP7Micro/WIN指令树的协议库文件夹中。有了这些新指令,您可以将S7-200用作Modbus设备。当您在程序中加入Modbus指令时,会在项目中自动增加一个或多个相关子程序。Modbus主设备协议库有两个版本。一个版本使用CPU的端口0,另一个则使用CPU的端口1。端口1协议库的POU名中带有_P1(MBUS_CTRL_P1),表示POU使用CPU上的端口1。在其它方面,这两个Modbus主设备协议库完全一致。Modbus从站协议库仅支持端口0通讯。在STEP7Micro/WIN中,ModbusRTU协议和USS协议操作库位于操作树的“库”文件夹中。MODBUS函数库要求STEP7Micro/WIN为V3.2或更高版本。5图1:添加函数库第一章使用Modbus协议库6前言:这些库是附加函数库,并非组态软件STEP7Micro/WIN的组成部分。您如果需要使用ModbusRTU协议,必须先安装“STEP7Micro/WIN32ToolboxV1.0”(包括库),然后安装运行“STEP7Micro/WIN”。就会出现如图1的库。注意:这个函数库包含可以在STEP7Micro/WINV3.2中使用的ModbusRTU协议库和USS协议库。如果您安装了STEP7Micro/WINV4.0SP5或者更高版本,那么操作库中就会包含下列函数:ModbusRTUMasterV1.2对应端口0和端口1ModbusRTUSlaveV1.0对应端口0USSprotocolV2.3对应端口0和端口1下面我对ModbusRTU各指令功能与使用方法分别加以讲解:1.使用Modbus主设备协议的要求Modbus主设备协议指令使用下列S7-200资源:·初始化Modbus主设备协议可以为Modbus主设备协议通讯指定专用CPU端口。当CPU端口被用于Modbus主设备协议通讯时,就无法用于任何其它用途,包括与STEP7-Micro/WIN通讯。MBUS_CTRL指令控制将端口0分配给Modbus协议或PPI,Mode为1时分配给Modbus协议,为0是分配给PPI。将S7-200上的模式开关设为“STOP”,端口零也会被复位为PPI协议模式。MBUS_CTRL_P1指令(来自端口1协议库)控制将端口1分配给Modbus主设备协议或PPI。·Modbus主设备协议指令影响与CPU通讯端口中自由端口通讯相关的所有SM位置。·Modbus主设备协议指令使用3个子程序和1个中断例程。·Modbus主设备协议指令要求两个Modbus主设备指令和支持例程有1620个字节的程序空间。·Modbus主设备协议指令的变量要求284个字节的V存储器程序块。该程序块的起始地址由用户指定,专门保留用于Modbus变量。·S7-200CPU必须是固化程序修订版2.00或最好支持Modbus主设备协议库(CPUMLFB21x-2xx23-0XB0)。·Modbus主设备协议库为某些功能使用用户中断。用户中断不能被用户程序禁用。提示:欲将CPU通讯端口操作更换回PPI以便与STEP7-Micro/WIN通讯,将MBUS_CTRL指令的模式参数设置为零(0)。您还可以将S7-200上的模式开关设置到STOP模式位置。这些方法中的任一个将设置CPU通讯端口与STEP7-Micro/WIN通讯。72.使用Modbus从站协议的要求Modbus从站协议指令使用下列S7-200资源:·初始化Modbus从站协议为Modbus从站协议通讯指定端口0。当端口0被用于Modbus从站协议通讯时,就无法用于任何其它用途,包括与STEP7-Micro/WIN通讯。MBUS_INIT指令控制将端口0指定给Modbus从站协议或PPI。·Modbus从站协议指令影响与端口0中自由端口通讯相关的所有SM位置。·Modbus从站协议指令使用3个子程序和2个中断例程。·Modbus从站协议指令要求两个Modbus主设备指令和支持例程有1857个字节的程序空间。·Modbus从站协议指令的变量要求779个字节的V存储器程序块。该程序块的起始地址由用户指定,专门保留用于Modbus变量。一定要设置V存储区,不然编译时会出现错误信息,设置过程很简单:点击“文件”→“库存储区”,出现如下画面(进行设置即可):提示:欲将端口0操作更换回PPI以便与STEP7-Micro/WIN通讯,用另一条MBUS_INIT指令重新指定端口0。您还可以将S7-200上的模式开关设为STOP模式。这样会将参数复原为端口0。3.Modbus主设备协议的初始化和执行时间Modbus主设备协议每次扫描都需要少量的时间来执行MBUS_CTRL指令。MBUS_CTRL初始化Modbus主设备(首次扫描)需要大约1.11毫秒的时间,以后扫描需要大约0.41毫秒。当MBUS_MSG子程序执行请求时,将执行扫描时间。大多数时间用于计算ModbusCRC的请求和应答。CRC(循环冗余检验)8确保通讯消息的完整性。对于请求和应答中的每个字,扫描时间会延长约1.85毫秒。最大请求/应答(读取或写入120个字)使扫描时间延长约222毫秒。当在从站中接收应答并至少发出请求时,主要是读取请求在延长扫描时间。当将数据发送到从站并至少收到应答时,主要是写入请求在延长扫描时间。4.Modbus从站协议的初始化和执行时间Modbus通讯使用CRC(循环冗余检验)确保通讯消息的完整性。Modbus从站协议使用预先计算数值的表格减少处理消息的时间。该CRC表初始化约需240毫秒。初始化在MBUS_INIT子程序中进行,通常在进入RUN模式后用户程序首次扫描时执行。如果MBUS_INIT子程序和任何其它初始化程序要求的时间超过500微秒扫描监视时间,您需要复原监视定时器,并将输出保持在启用状态(如果扩展模块要求)。输出模块监视定时器可用向模块输出写入的方法复原。请参阅监视复原指令。当MBUS_SLAVE子程序执行请求时,扫描时间会延长。由于大多数时间用于计算ModbusCRC,对于请求中和应答中的每个字节,扫描时间会延长约420微秒。最大请求/应答(读取或写入120个字)使扫描时间延长约100毫秒。5.Modbus主设备寻址Modbus地址通常写作包含数据类型和偏移量的5个字符的数值。第一个字符决定数据类型,最后四个字符在数据类型中选择适当的数值。然后,Modbus主设备指令将地址映射至正确的功能,以便发送到从站。Modbus主设备指令支持下列Modbus地址:00001至09999是离散输出(线圈)10001至19999是离散输入(触点)30001至39999是输入寄存器(通常是模拟量输入)40001至49999是保持寄存器所有Modbus地址均以1为基位,表示第一个数据值从地址1开始。有效地址范围将取决于从站。不同的从站将支持不同的数据类型和地址范围。6.Modbus从站寻址Modbus地址通常被写为包含数据类型和偏移量的5个字符的数值。第一个字符决定数据类型,最后四个字符在数据类型中选择适当的数值。然后,Modbus主设备将地址映射至正确的功能。Modbus从站指令支持下列地址:00001至00128是映射至Q0.0-Q15.7的离散输出10
本文标题:S7200的MODBUS详细应用示例
链接地址:https://www.777doc.com/doc-5496279 .html