zoukankan      html  css  js  c++  java
  • MODBUS-RTU学习

    一 RTU比ASCII(传输间隔可达1s不出错)传输密度高。参数格式:起始位+8BITS数据位+校验位+停止位。

    16位数据先发送高位再发送低位,DH=Data>>8;DL=(U8)Data;也可以用ARM的汇编高低字节交换操作指令。若0x1234==__REV16(0x3412)

    1.1校验默认为偶校验,建议为无校验,测试要多1个停止位(即停止位为2位)

    1.2发送顺序为从左到右LSB->MSB

    1.3在通讯速率小于等于19200时必须满足:各帧之间间隔不小于3.5个字符时间且各字符之间间隔不大于1.5个字符时间;当大于19200速率时要求t3.5=1750ms,t1.5=750us

    1.4CRC16:先给低字节再送高字节,CRC内容不包括起始位、校验位和停止位。

    二接口要求及驱动能力:从设备理论上1~247,地址0为广播地址。子节点地址必须唯一。

    RS485的2线制+公共地(单点):不加中继时为32个,不加极性偏置时要比偏置时少4个。极性偏置:上下拉电阻为450~650欧姆,上拉到5V,下拉到地,此时采用1nf/10v和120欧姆/0.25w的电阻串联匹配来消除反射;不加极性偏置匹配电阻为150欧姆/0.5W.

    RS232:不超过20m远。

    三差错码与异常码:

    差错码:当出错时将功能码的最高位置1即:差错码=功能码+0x80

    异常码:在资料的P42页,主要有01~04(功能出错、地址出错、非法数值、无法响应)

    四完善方面:

    1设备识别码:

    2超时管理:响应时间+转换时间。

    3错误及性能管理:功能码+计数器编号

    五:注意:

    5.1功能码0x10(写多个寄存器):寄存器的数量范围为1~120

  • 相关阅读:
    UIPickerView
    visual studio2010生成get方法和set方法快捷键
    vmware安装mac虚拟机键盘失灵解决方法
    运行android模拟器过大
    [SQL Utility] How to retrieve Oracle’s version info?
    【读书笔记】c# in depth (1)
    [Oracle 10g] About Recycle bin
    [Oracle Troubleshooting] Get Oracle Bounces When Data File Is Missing
    [Oracle Mgmt]Clone Oracle Database Manually
    [SQL*PLUS]Set Up Sql*Plus
  • 原文地址:https://www.cnblogs.com/jieruishu/p/4396209.html
Copyright © 2011-2022 走看看