modbus RTU常见问题.ppt_第1页
modbus RTU常见问题.ppt_第2页
modbus RTU常见问题.ppt_第3页
modbus RTU常见问题.ppt_第4页
modbus RTU常见问题.ppt_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

modbusRTU常见问题汇总 1 ModBusRTU通讯协议与ModBus通讯协议有什么区别 ModBus协议是应用层报文传输协议 OSI模型第7层 它定义了一个与通信层无关的协议数据单元 PDU 即PDU 功能码 数据域 ModBus协议能够应用在不同类型的总线或网络 对应不同的总线或网络 Modbus协议引入一些附加域映射成应用数据单元 ADU 即ADU 附加域 PDU 目前 Modbus有下列三种通信方式 1 以太网 对应的通信模式是MODBUSTCP 2 异步串行传输 各种介质如有线RS 232 422 485 光纤 无线等 对应的通信模式是MODBUSRTU或MODBUSASCII 3 高速令牌传递网络 对应的通信模式是ModbusPLUS 2 关于MODBUSRTU通讯协议的提问 modbus主要由站地址 一个字节 功能码 一个字节 首地址 两个字节 访问字数 两个字节 校验码 CRC16或LRC两个字节 总共8个字节组成 其实VB中编程很简单从组建添加MSComm组建就行了 难的是校验 3 modbus rtu modbusrtu分别是什么 modbus协议是工控行业的标准协议 前身为莫迪康所写 现已被施奈德收购而modbus分为两种协议 即串口协议 modbusrtu 和网口协议 modbustcp 协议 一般的工控机只支持rs232或者RS485的串口模式 这个时候工控机的协议栈里就只有modbusRTU协议 当他从串口接收到数据时 会直接根据报文中的数据进行控制 如果需要用modbusTCP协议进行传输 则需要使用带有网口的PLC具体的帧格式如下modbusRTU地址域功能码数据差错校验modbusTCP目的地址协议id长度单元号功能码数据简单的说tcp是由RTU加工而来的而RTU则是另外一种概念 不包含在modbus协议内是工控行业对监控设备的简称 4 关于modbus RTU协议主机发送的命令的一些问题 01读保持线圈状态 Readcoilstatus 02读输入线圈状态 Readinputstatus 03读保持寄存器 Readholdingregister 04读输入寄存器 Readinputregister 05写单个线圈 Forcesinglecoil 06写单个寄存器 Presetsingleregister 15写多个线圈 Forcemultiplecoils 16写多个寄存器 Presetmultipleregisters 这些都是什么意思答 01读取逻辑线圈组状态02读取离散量线圈组状态03读取一个或多个保持寄存器的二进制值04读取一个或多个输入寄存器的二进制值05改变逻辑线圈状态06改变单个寄存器的二进制值15改变多个寄存器的二进制值16指定多个操持寄存器的二进制值 5 OPC转modbusRTU方式我现在有一个OPC服务器 里面很多tag tag是AB里出来的 怎么将tag连到modbus Profibus Fielbus Modbus CC link等等是各中PLC硬件支持的通讯协议 这个是各厂商的硬件属性一样 只是现在计算机组态软件都支持很多种协议的PLC 你理解反了 Profibus Fielbus Modbus CC link这些协议 是一种通讯协议 一般不需要你去编程 就好象你使用计算机 你不需要编写IP协议一样 只是要遵循它 遵循的意思就是 你必须按照该厂家所支持的协议在PLC或者DCS硬件组态的时候按照该通讯协议设置硬件 其实这个很简单 这里简单指的是 你学编程 重点是编写执行控制的动作的程序 硬件通讯协议不需要你自己动手写 6 什么是modbusrtumaster 就是选RTU模式 因为MODBUS分为ASCII模式和RTU模式 MASER就是设置为主站 一般为PLC端 变频器设为从站 还要注意主站和从站地址的设置 Modbusrtu为什么没有开始和结束标记 由于Modbusrtu帧的每个字节是16进制数 数值范围在00 FF 若像ModbusASCII那样用02 03表示开始和结束标记 则与数值2 3发生冲突 无法判断其是标记还是数值 无法数据解包 8 modbustcp到rtu的转换 请仔细查看帧格式 modbusRTU地址域功能码数据差错校验modbusTCP目的地址协议id长度单元号功能码数据写一个TCP转RTU的程序放到设备里做modbus网桥即可9 MODBUSRTU通讯线被烧 用万用表量一下出来的通讯线 电压不超过5V应该没问题 一般不会烧东西 接的时候区分正和负 很多产品B是正 量一下看看 10 触摸屏modbusrtu怎么设置 一般是通过宏指令自己编程实现 当然也有支持RTU的 在通讯类型菜单 11 MODBUSRTU协议中浮点数是如何存储 读到浮点数寄存器的数值如何转换成所需的浮点数 浮点数保存的字节格式如下 地址 0 1 2 3内容SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM这里S代表符号位 1是负 0是正E偏移127的幂 二进制阶码 EEEEEEEE 127 M24位的尾数保存在23位中 只存储23位 最高位固定为1 此方法用最较少的位数实现了较高的有效位数 提高了精度 零是一个特定值 幂是0尾数也是0 浮点数 12 5作为一个十六进制数0 xC1480000保存在存储区中 这个值如下 地址 0 1 2 3内容0 xC10 x480 x000 x00浮点数和十六进制等效保存值之间的转换相当简单 下面的例子说明上面的值 12 5如何转换 浮点保存值不是一个直接的格式 要转换为一个浮点数 位必须按上面的浮点数保存格式表所列的那样分开 例如 地址 0 1 2 3格式SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM二进制11000001010010000000000000000000十六进制C1480000从这个例子可以得到下面的信息 符号位是1表示一个负数幂是二进制10000010或十进制130 130减去127是3 就是实际的幂 尾数是后面的二进制数10010000000000000000000在尾数的左边有一个省略的小数点和1 这个1在浮点数的保存中经常省略 加上一个1和小数点到尾数的开头 得到尾数值如下 1 10010000000000000000000接着 根据指数调整尾数 一个负的指数向左移动小数点 一个正的指数向右移动小数点 因为指数是3 尾数调整如下 1100 10000000000000000000结果是一个二进制浮点数 小数点左边的二进制数代表所处位置的2的幂 例如 1100表示 1 2 3 1 2 2 0 2 1 0 2 0 12 小数点的右边也代表所处位置的2的幂 只是幂是负的 例如 100 表示 1 2 1 0 2 2 0 2 2 0 5 这些值的和是12 5 因为设置的符号位表示这数是负的 因此十六进制值0 xC1480000表示 12 5 12 RS 485的设备 遵守MODBUS RTU协议 怎样用的电脑读取信息 用电脑的串口 接个485转换器 接到设备的485接口 再找个串口软件 根据设备资料上的寄存器地址发送modbus报文 modbus报文通过串口软件发送啊 报文格式 010300000001840A读寄存器命令 13 vbmodbus给modScan32rtu发送数据应该怎么写 确定两个软件哪个是主 哪个是从 然后再确定通讯协议是RTU ASCII还是TCP 如果是TCP 就用socket控件 RTU ASCII就用COM控件 然后给对应的口按照协议收发数并解析就可以了 14 ModBusRTU通讯协议与ModBus通讯协议有什么区别 modbus协议包括了MODBUSRTU15 modbusrtu通讯协议如何判断超时 设置一个标志量用来表示是否超时 再用一个定时器 定时时长为发送3 5个字符的时间 当然为了保险时间可以长一些 在定时器中置超时标志 在串口中断中每收到一个字节时定时器清零 主程序中根据超时标志做相应处理 16 如何理解MODBUS协议RTU模式中的1 5和3 5字符间隔 发送两帧数据之间要有一定的时间间隔 以保证接收方UART能够区分 这个时间间隔在MODBUSRTU模式中要求是1 5和3 5字符间隔 也即是传输1 5和3 5个字符的时间 它与设置的通信参数有关 计算为 若串口通信参数设置为 注 开始位固定为1 数据位8 奇偶校验位1 停止位1 波特率9600bps 则传输一个字符 即1个字节 的时间为 1 8 1 1 9600 0 00114583s 1 1454583ms1 5字符间隔 1 5x1 1454583ms 1 71818745ms3 5字符间隔 3 5x1 1454

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论