zoukankan      html  css  js  c++  java
  • Modbus协议笔记

      读线圈:就是说读开关量输出的状态,看看开关量输出的到底是开着的还是关着的,这样说有点不专业,但是好明白。比如要在上位机显示开关量输出的当状态,就得用这个功能码。

      写线圈:就是说读开关量输入的状态,开关量的输入大多是为了查看执行元件的动作情况,看看是否执行到位。

      读保持寄存器:就是说对被控制的从器件设置一些状态值,如设置时间,设置一些定值,设置互感器的变比什么的。

      读输入寄存器:意思说读取一些寄存器的输入值,如模拟量的采集,AD结果寄存器的值什么的。如果要在上位机实时显示电压,电流,温度什么,就要用到这个命令。

      强制线圈:意思就是说发出投切控制命令,如机器的启动,停止等。

    1.0x01功能码用于读线圈,一个线圈代表一个比特位,每一个线圈有一个索引,从1开始,但是地址编号从0开始

    以上图为例:

    0x13即十进制19

    即从地址为19(线圈索引为20)的线圈开始读,读取19个线圈,也就是响应中的线圈索引为20-38这19个线圈,响应中的0xCD/0x6B/0x05的每一个比特位代表了对应该位的线圈的状态;19个线圈2个字节存不下,所以需要3个字节返回。

    2.0x02功能码用于读离散量,其原理与读线圈是一样的,此处不多言了,以下图为例

    3.0x03功能码用于读保持寄存器

    每个寄存器含有两个字节,请求命令中请求的是寄存器的个数,因此,响应数据中返回“2*寄存器个数”个字节

    4.0x04功能码用于读输入寄存器,其原理与读保持寄存器一样

    5.0x05功能码用于写单个线圈

    注意,是写“单个”线圈,也就是一个比特位(地址为0x00AC)

    6.0x06功能码用于写单个寄存器

    7.0x0F用于写多个线圈

    8.0x10(即16)用于写多个寄存器

  • 相关阅读:
    TFS应用层服务器获取F5用户的真实IP地址(高可用性)
    安装TFS(2015)工作组模式代理服务器(Agent)
    Team Foundation Server 15 功能初探
    TFS 2013 生成(构建)历史记录保持策略(Retention Policy)
    TFS代码变更和工作项关联,为系统变更提供完美的跟踪轨迹
    修改TFS客户端的工作区类型
    比较TFS与SVN,你必须知道的10点区别
    数据字典
    查看源码 类图结构图(Eclipse + Idea)
    Mybatis对应的java和数据库的数据类型
  • 原文地址:https://www.cnblogs.com/any91/p/3530540.html
Copyright © 2011-2022 走看看