当前位置: 首页 > news >正文

网编高级 day01

网编高级 day01

  • 0. 大纲
  • 1. Modbus协议
    • 1.1. Modbus起源
    • 1.2. 分类
    • 1.3. Modbus TCP特点
  • 2. Modbus TCP协议格式
    • 2.1. 报文头
    • 2.2. 寄存器
    • 2.3. 功能码

0. 大纲

协议:

  1. modbus协议:modbus TCP、modbus RTU
  2. html 网页:http协议
  3. Webserver

工具:
Modbus Slave/Poll、Wireshark、postman

1. Modbus协议

1.1. Modbus起源

  1. 1979年由Modicon公司开发,是一种工业现场总线协议标准
  2. Modbus TCP(以太网)、Modbus RTU(串口)、Modbus ASCII(串口)
  3. Modbus TCP是施耐德收购Modicon后1997年发布的

1.2. 分类

  1. Modbus RTU
     运行在串口上的协议,采用二进制表现形式,紧凑的数据接口,通信效率最高,应用最广泛
  2. Modbus ASCII
     运行在串口上的协议、采用ASCII进行传输,利用特殊字符作为字节开始和结束的标志,所以效率远远低于Modbus RTU协议,适用于数据量比较小的情况。
  3. Modbus TCP
     运行在以太网的协议

1.3. Modbus TCP特点

  1. 采用主从问答式通信模式。(所有Modbus协议)
  2. Modbus TCP是应用层协议,基于传输层TCP协议实现
  3. Modbus TCP端口号默认502

2. Modbus TCP协议格式

数据帧包含:报文头(7字节),功能码(1字节),数据内容
数据帧最大长度260字节

2.1. 报文头

  1. 事务处理标识符: 2字节,理解为报文的序列号,主机发什么,从机回什么
  2. 协议标识符: 2字节,默认为00 00(十六进制),表示Modbus TCP协议
  3. 长度: 2字节,4位十六进制,表示接下来的字节长度,单位是字节,不包含本身
  4. 单元标识符: 1字节,从机ID,1-247

2.2. 寄存器

分类:离散量输入,线圈寄存器,输入寄存器,保持寄存器

  1. 位寄存器:
     每个寄存器占1位,但是最小单位是字节,所以一个寄存器占1字节,八个寄存器也占1字节,主要控制IO设备
     离散量输入:只读,0x02
     线圈寄存器:可读可写,0x01, 0x05, 0x0f
  2. 字寄存器:
     每个寄存器固定占2字节,主要用于存储数据
     输入寄存器:只读,0x04
     保持寄存器:可读可写,0x03, 0x06, 0x10

2.3. 功能码

代码中文名称寄存器PLC地址位/字操作
01读线圈寄存器0 000–0 9999位操作
02读离散输入寄存器1 0001–1 9999位操作
03读保持寄存器4 0001–4 9999字操作
04读输入寄存器3 0001–3 9999字操作
05写单个线圈寄存器0 0001–0 9999位操作
06写单个保持寄存器4 0001–4 9999字操作
0f(15)写多个线圈寄存器0 0001–0 9999位操作
10(16)写多个保持寄存器4 0001–4 9999字操作

开灯:05/0f
读温湿度:03/04

读数据:0x01, 0x02, 0x03, 0x04
 主机报文:报文头(7)+功能码(1)+起始地址(2)+数量(2)
 从机报文:报文头(7)+功能码(1)+字节计数(1)+数值(?)
写单个数据:0x05, 0x06
 主机报文:报文头(7)+功能码(1)+写入地址(2)+数值/断通标志(2)
写多个数据:0x0f, 0x10
 主机报文:报文头(7)+功能码(1)+起始地址(2)+写入数量(2)+字节计数(1)+写入内容(?)

练习
主机报文:0x02 25 00 00 00 06 01 03 00 63 00 02
 02250000000601:报文头
 03:功能码
 0063:起始地址0063->40100
 0002: 数量
从机报文:0x02 25 00 00 00 07 01 03 04 32 13 30 08
 02250000000601:报文头
 03:功能码
 04:字节计数
 3213:40100的数值
 3008:40101的数值

练习:读传感器数据,读一个40123、40124寄存器的数据
主机报文:0x02 25 00 00 00 06 01 03 00 7A 00 02
从机报文:0x02 25 00 00 00 07 01 03 04 AA BB CC DD

练习:控制IO设备,点亮一个灯(将一个线圈置一)
主机报文:0x 02 25 00 00 00 06 01 05 00 00 FF 00

相关文章:

  • 第二章身份——一切从信念开始
  • fastapi celery flower rabbitmq redis 可运行demo
  • 47.HarmonyOS NEXT 登录模块开发教程(二):一键登录页面实现
  • Python Selenium库入门使用,图文详细。附网页爬虫、web自动化操作等实战操作。
  • JavaScript(JS基础)
  • 依托大数据实验室建设,培育创新人才:数据科学与大数据技术专业人才培养实践
  • CUDA编程(4):共享内存:减少全局内存访问、合并全局内存访问
  • DataWhale学习--大语言模型--模型发展历程
  • 个人学习编程(3-12) 刷题
  • C语言中的assert断言,你了解多少呢?
  • 如何在 React 中实现组件懒加载?
  • 带环链表的相关知识点
  • STM32 F407ZGT6开发板
  • Python完全指南:从基础到实践的编程艺术
  • PCL 点云AABB包围盒(二)
  • Shell编程:深入了解 Bash 数组操作
  • 洛谷 P5534 【XR-3】等差数列 python
  • 02_LVGL学习笔记:深理解样式(Style)机制与应用方法
  • 在类似于Manus的项目中,我想使用python控制用户的浏览器,我应该选择selenium呢?还是playwright?
  • 关于pytorch项目的心得
  • 巴军事行动致印度70%电网瘫痪
  • 中国金茂新任命三名副总裁,撤销区域公司
  • 古埃及展进入百天倒计时,闭幕前168小时不闭馆
  • 国家发改委:美芯片药品等领域关税影响全球科技发展,损害人类共同利益
  • 英国和美国就关税贸易协议条款达成一致
  • 追光|铁皮房、土操场,这有一座“筑梦”摔跤馆