1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,modbus RTU常见问题汇总,1、ModBus RTU通讯协议与ModBus通讯协议有什么区别?,ModBus协议是应用层报文传输协议(OSI模型第7层),它定义了一个与通信层无关的协议数据单元(PDU),即PDU=功能码+数据域。,ModBus协议能够应用在不同类型的总线或网络。对应不同的总线或网络,Modbus协议引入一些附加域映射成应用数据单元(ADU),即ADU=附加域+PDU。目前,Modbus有下列三种通信方式:,1.以太网,对应的通信模式是MODBUS TCP。,2.异步串行传输(各种
2、介质如有线RS-232-/422/485/;光纤、无线等),对应的通信模式是MODBUS RTU或MODBUS ASCII。,3.高速令牌传递网络,对应的通信模式是Modbus PLUS。,2、关于MODBUS RTU通讯协议的提问?,modbus 主要由站地址(一个字节)+功能码(一个字节)+首地址(两个字节)+访问字数(两个字节)+校验码(CRC16或LRC两个字节)总共8个字节组成。其实VB中编程很简单从组建添加MSComm组建就行了,难的是校验,,3、modbus、rtu、modbus rtu分别是什么?,modbus协议是工控行业的标准协议,前身为莫迪康所写,现已被施奈德收购,而mo
3、dbus分为两种协议:即串口协议(modbus rtu)和网口协议(modbus tcp)协议,一般的工控机只支持rs232或者RS485的串口模式,这个时候工控机的协议栈里就只有modbusRTU协议,当他从串口接收到数据时,会直接根据报文中的数据进行控制,如果需要用modbusTCP协议进行传输,则需要使用带有网口的PLC,具体的帧格式如下,modbus RTU 地址域 功能码 数据 差错校验,modbus TCP 目的地址 协议id 长度 单元号 功能码 数据,简单的说 tcp是由RTU加工而来的,而RTU则是另外一种概念,不包含在modbus协议内,是工控行业对监控设备的简称。,4、关
4、于modbus_RTU协议主机发送的命令的一些问题,?01 读保持线圈状态(Read coil status),?02 读输入线圈状态(Read input status),?03 读保持寄存器(Read holding register),?04 读输入寄存器(Read input register),?05 写单个线圈(Force single coil),?06 写单个寄存器(Preset single register),?15 写多个线圈(Force multiple coils),?16 写多个寄存器(Preset multiple registers),这些都是什么意思,答:01
5、 读取逻辑线圈组状态,02 读取离散量线圈组状态,03 读取一个或多个保持寄存器的二进制值,04 读取一个或多个输入寄存器的二进制值,05 改变逻辑线圈状态,06 改变单个寄存器的二进制值,15 改变多个寄存器的二进制值,16 指定多个操持寄存器的二进制值,5、OPC 转modbus RTU 方式 我现在有一个OPC服务器,里面很多tag,tag是AB里出来的,怎么将tag连到modbus?,Profibus、Fielbus、Modbus、CC-link等等是各中PLC硬件支持的通讯协议,这个是各厂商的硬件属性一样只是现在计算机组态软件都支持很多种协议的PLC你理解反了,Profibus、Fi
6、elbus、Modbus、CC-link这些协议,是一种通讯协议,一般不需要你去编程,就好象你使用计算机,你不需要编写IP协议一样,只是要遵循它,遵循的意思就是,你必须按照该厂家所支持的协议在PLC或者DCS硬件组态的时候按照该通讯协议设置硬件其实这个很简单 这里简单指的是,你学编程,重点是编写执行控制的动作的程序,硬件通讯协议不需要你自己动手写。,6、什么是modbus rtu master?,就是选RTU模式,因为MODBUS分为ASCII模式和RTU模式,MASER就是设置为主站,一般为PLC端,变频器设为从站,还要注意主站和从站地址的设置。,12、RS-485的设备,遵守MODBUS-
7、RTU协议。怎样用的电脑读取信息?,用电脑的串口,接个485转换器,接到设备的485接口,再找个串口软件,根据设备资料上的寄存器地址发送modbus报文,modbus报文通过串口软件发送啊,报文格式:01 03 00 00 00 01 84 0A 读寄存器命令。,13、vb modbus给modScan32 rtu发送数据应该怎么写?,确定两个软件哪个是主,哪个是从。然后再确定通讯协议是RTU、ASCII还是TCP。如果是TCP,就用socket控件。RTUASCII就用COM控件。然后给对应的口按照协议收发数并解析就可以了。,14、ModBus RTU通讯协议与ModBus通讯协议有什么区别
8、modbus 协议包括了MODBUS RTU,15、modbus rtu通讯协议 如何判断超时?,设置一个标志量用来表示是否超时;再用一个定时器,定时时长为发送3.5个字符的时间(当然为了保险时间可以长一些);在定时器中置超时标志;在串口中断中每收到一个字节时定时器清零;主程序中根据超时标志做相应处理。,16、如何理解MODBUS协议RTU模式中的1.5和3.5字符间隔?,发送两帧数据之间要有一定的时间间隔,以保证接收方UART能够区分。这个时间间隔在MODBUS RTU模式中要求是1.5和3.5字符间隔,也即是传输1.5和3.5个字符的时间,它与设置的通信参数有关,计算为:,若串口通信参
9、数设置为(注:开始位固定为1):数据位8,奇偶校验位1,停止位1,波特率9600bps,,则传输一个字符(即1个字节)的时间为:(1+8+1+1)/9600=0.00114583s=1.1454583ms,1.5字符间隔=1.5x1.1454583ms=1.71818745ms,3.5字符间隔=3.5x1.1454583ms=4.00910405ms,17、MODBUS RTU 测试软件?,推荐:modscan32,18、MODBUSRTU协议,上位机与仪表通信,读写数据都正确,为什么仪表掉电,写入的参数又丢失了?怎么保存?,两种可能:,如果在仪表上设置参数掉电后都保存不了的话,基本可以确定是仪表问题;,有些仪表写入参数后还需要向固定的寄存器写入确认参数,为了保证写入参数真确,需要检查仪表通信部分说明书。,






