zoukankan      html  css  js  c++  java
  • 基于ModBus-TCP/IT 台达PLC 通讯协议解析

    客户端发送:19 B2 00 00 00 06 06 03 00 27 00 02

    上面是modbus客户端发出的报文内容,为modbus tcp/ip协议格式,其前面的六个字节为头字节( header handle);

    “19 B2 00 00 00 06”

    19 B2 两个字节是Client发出的检验信息,Sever端只是需要将这两个字节的内容copy以后再放到response的报文的相应位子就可以了,可以自己定义;

    00 00 两个字节是表示tcp/ip 的协议的modbus的协议;

    00 06 两个字节表示的是header handle后面还有多长的字节,即表示的是该字节以后的字节长度(lengch),可以看到在00 06后面还有 “06 03 00 27 00 02”六个字节,所以这两个字节表示的就是6;

    “06 03 00 27 00 02”

    06 一个字节表示slave address;

    03 为Fuction code ;

    00 27 表示Client request的寄存器地址;

    00 02 表示request 寄存器的长度;(寄存器个数)

    服务端返回数据:19 B2 00 00 00 07 06 03 04 00 00 00 00

    报头 : “ 19 B2 00 00 00 07”

    19 B2 为Server返回的检验码,copy from Client request;

    其它的表示与客户端的表示相同

    报文:“ 06 03 04 00 00 00 00”

    06 是Slave address,从地址数;

    03是Function code ;

    04表示了回复给Client request的需要读的寄存器的值的个数,这里因为主地址向从地址读了2个寄存器即2个16位的寄存器(2个字)所以这里为4个字节,因为2个字为4个字节,而04这个字节表示的就是从地址要回复给主地址的寄存器字节长度,

    00 00 00 00 表示了4个字节的值

    写多个寄存器

    发送

    响应

  • 相关阅读:
    matab plot指令和低通滤波器的响应图
    matlab中hold指令、figure指令及subplot指令的使用
    matlab中axis的使用
    matlab switch case 和 try catch用法示例
    matlab中使用elseif和if嵌套的对比
    matlab中运用项目思维分析问题并解决问题
    matlab图像显示程序模板
    matlab最简单程序模板
    第06篇 MyEclipse 2016 安装/破解
    第05篇. Tomcat和JDK的内存配置
  • 原文地址:https://www.cnblogs.com/fei2232/p/10067906.html
Copyright © 2011-2022 走看看