通讯-MODBUS-RTU规约培训

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

--MODBUS-RTU通讯协议DCS与其他设备的通讯背景介绍Modbus协议最初由Modicon(莫迪康)公司开发出来,后来该公司成为施耐德自动化(SchneiderAutomation)部门的一部分。支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。协议总体介绍Modbus协议是应用于工业控制器上的一种网络协议。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。制定了消息域格局和内容的公共格式。使用主—从技术。即一个设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据做出相应反应。协议分类MODBUS相关协议包括以下几类:MODBUSASCII调试时直观,LRC校验容易,传输的效率比较低。MODBUSRTU采用16位CRC校验,传输的数据量比较大。MODBUSTCPModbus信息帧需嵌入TCP帧,使用对等技术通信。MODBUSPLUS(MODBUS+)一种高速对等工业局域网,更加复杂的数据打包方法。MODBUSRTU对硬件要求网络采用串行总线方式,满足RS485通讯要求(通讯距离、设备数量等)。网络中只有一个主设备。设备支持MODBUSRTU协议。网络中设备的串口参数和传输设置必须一致。网络中设备通讯地址不能重复,地址范围在1-247之间协议相关术语介绍(一)线圈状态-表示一个可读写的数字量寄存器,类似于开出信号输入状态-表示一个只读的数字量寄存器,类似于开入信号保持寄存器-表示一个可读写的模拟量寄存器,类似于模出信号输入寄存器-表示一个只读的模拟量寄存器,类似于模入信号协议相关术语介绍(二)功能码-表示主设备对从设备操作的方式(读或者写指定寄存器类型)。寄存器起始地址-不同寄存器的地址是相对独立的,设备数据的存放是按照地址进行存储的。寄存器数量-不同寄存器的数量返回的字节数不一致,模拟量一个寄存器表示2个字节,开关量8个寄存器用一个字节表示。常用功能码介绍功能码名称作用01读取线圈状态取得一组逻辑线圈的当前状态(ON/OFF)02读取输入状态取得一组开关输入的当前状态(ON/OFF)03读取保持寄存器在一个或多个保持寄存器中取得当前的二进制值04读取输入寄存器在一个或多个输入寄存器中取得当前的二进制值05强置单线圈强置一个逻辑线圈的通断状态06预置单寄存器把具体二进值装入一个保持寄存器15强置多线圈强置一串连续逻辑线圈的通断16预置多寄存器把具体的二进制值装入一串连续的保持寄存器MODBUSRTU协议分析(一)读命令主设备发送命令:[设备地址][功能码][起始寄存器地址高8位][低8位][读取的寄存器数高8位][低8位][CRC校验的低8位][CRC校验的高8位]设备响应:[设备地址][功能码][返回的字节个数][数据1][数据2]...[数据n][CRC校验的低8位][CRC校验的高8位]注:寄存器地址从0开始偏移开关量每一个数据表示8个开关量的值,每一位为0表示对应的开关断开,为1表示闭合。一个模拟量需要2个字节,高位在前MODBUSRTU协议分析(二)举例读线圈:发:[11][01][00][13][00][25][CRC低][CRC高]收:[11][01][05][CD][6B][B2][0E][1B][CRC低][CRC高]读保持寄存器:发:[11][03][00][6B][00][03][CRC低][CRC高]收:[11][03][06][02][2B][00][00][00][64][CRC低][CRC高]MODBUSRTU协议分析(三)写单个寄存器命令主设备发送命令:[设备地址][功能码][需下置的寄存器地址高8位][低8位][下置的数据高8位][低8位][CRC校验的低8位][CRC校验的高8位]设备响应:原样返回写多个寄存器命令主设备发送命令:[设备地址][功能码][需下置的寄存器地址高8位][低8位][寄存器数量高8位][低8位][字节个数][数据1高8位][低8位][数据2高8位][低8位]..[CRC校验的低8位][CRC校验的高8位]设备响应:[设备地址][功能码][需下置的寄存器地址高8位][低8位][寄存器数量高8位][低8位][CRC校验的低8位][CRC校验的高8位]MODBUSRTU协议分析(四)举例写单个线圈:发:[11][05][00][AC][FF][00][CRC低][CRC高]收:[11][05][00][AC][FF][00][CRC低][CRC高]注:[FF][00]表示闭合[00][00]表示断开,其他数值非法。写多个保持寄存器:发:[11][10][00][01][00][02][04][00][0A][01][02][CRC低][CRC高]收:[11][10][00][01][00][02][CRC低][CRC高]MODBUSRTU协议分析(五)当命令存在错误,从设备响应如下写命令:无响应读命令:返回的功能码最高位置1,后面跟错误码。如发:[11][01][00][13][00][25][CRC低][CRC高]回:[11][81][02][CRC低][CRC高]错误码含义如下:01ILLEGALFUNCTION02ILLEGALDATAADDRESS03ILLEGALDATAVALUE04SLAVEDEVICEFAILURE05ACKNOWLEDGE06SLAVEDEVICEBUSY07NEGATIVEACKNOWLEDGE08MEMORYPARITYERRORMODBUSRTU地址含义设备提供的MODBUS地址一般有2部分组成,包含了寄存器类型和起始地址,最高一位为寄存器类型,低位为起始地址。寄存器类型对应如下:0表示线圈状态1表示输入状态3表示输入寄存器4表示保持寄存器举例:400010003公司支持MODBUSRTU产品卡件SP244配套300X系统使用,直接在系统柜提供的IO端子上接线,232/485通过卡件上的跳线选择;XP244配套300XP系统使用,直接在系统柜提供的IO端子上接线,232/485通过卡件上的拨号开关选择;FW244配套ECS系统使用,配套TB315端子板,一块端子板可配套二块FW244使用,232/485通过卡件上的拨号开关选择;FW248配套ECS系统使用,配套TB248端子板,一块端子板配套一块FW248使用。软件AdvMBlink244卡通讯举例setcomm(1200,1);//设置通讯模式setdelaytime(300);//设置返回等待时间intaa[2];_TAG(return)=readinputreg(1,0,2,aa);//读数据,返回0表示正常248卡通讯举例謝謝各位!

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功