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

网络编程4

  • day4
    • 一、Modbus
      • 1.分类
        • (1).Modbus RTU: 运行在串口上的协议,采用二进制表现形式以及紧凑型数据结构,通信效率高,应用广泛。
        • (2).Modbus ASCII: 运行在串口上的协议,采用ASCII码传输,并且利用特殊字符作为其字节的开始与结束标识,其传输效率要远远低于Modbus RTU协议,一般只有在通信数据量较小的情况下才考虑使用Modbus ASCII通信协议。
        • (3).Modbus TCP: 运行在以太网上的协议。
      • 2.优势
        • 免费、简单、容易使用
      • 3.Modbus TCP特点
        • (1).采用主从问答式通信
        • (2).Modbus TCP是应用层协议,基于传输层的TCP协议实现
        • (3).Modbus TCP端口号是502
    • 二、Modbus TCP协议格式
      • 1.组成
        • ModbusTCP包含三部分:报文头、功能码、数据
            • Modbus TCP/IP协议最大数据帧长度为260字节,报文头7字节,功能码1字节,数据最大252字节。
      • 2.报文头
          • 事务处理标识符:没有限制,主机发送什么,从机回复什么 协议标识符:00 00 (十六进制)占2字节,表示Modbus TCP协议 长度:存放的后面字节长度,用4位十六进制表示(2字节) 单元标识符:从机ID
      • 3.寄存器
      • 4.功能码
          • 寄存器PLC地址和寄存器的对应关系: 线圈: 00001-09999 离散量输入:10001-19999 输入寄存器:30001-39999 保持寄存器:40001-49999
        • 具体协议
          • http://www.360doc.com/content/20/0804/12/43769266_928452485.shtml
        • 总结模板
    • 三、Modbus RTU
      • 1.与Modbus TCP的区别
        • 与modbus TCP不同的是RTU没有报文头MBAP字段,但是在尾部增加了两个CRC检验字节(CRC16),因为网络协议中自带校验,所以在TCP协议中不需要使用CRC校验码。
      • 2.Modbus RTU特点
        • Modbus RTU是主从问答协议,由主机发起,一问一答
          • 设置串口参数时要求:
          • 波特率为9600
          • 8位数据位
          • 1位停止位
          • 无流控
      • 3.Modbus RTU协议格式
        • Modbus RTU数据帧包含地址码、功能码、数据、校验码四部分
        • 地址码:1个字节的从机地址码
        • 功能码:与Modbus TCP相同
        • 数据区:数据区包含这么几部分:起始地址、数量、数据
        • CRC校验:两个字节,校验的数据范围为:地址码+功能码+数据区,校验码的产生可以通过函数自动生成。
    • 四、Modbus库
      • 1.路径
        • 要想编译方便,可以将头文件和库文件放到系统路径下。
        • 头文件默认搜索路径:/usr/include 、/usr/local/include
        • 库文件默认搜索路径:/lib、/usr/lib
      • 2.函数接口
      • 3.编程流程
        • (1).创建实例 modbus_new_tcp
        • (2).设置从机ID modbus_set_slave
        • (3).和从机进行连接 modbus_connect
        • (4).寄存器进行操作  功能码对应函数
        • (5).关闭套接字 modbus_close
        • (6).释放实例  modbus_free
    • 五、HTTP协议
      • 1.Http简介
        • (1).HTTP是应用层协议
        • (2).HTTP是一个基于TCP通信协议传输来传递数据(HTML 文件, 图片文件, 查询结果等)
        • (3).HTTP协议工作于B/S架构上,浏览器作为HTTP客户端通过URL主动向HTTP服务端即WEB服务器发送所有请求,Web服务器根据接收到的请求后,向客户端发送响应信息。
        • (4).HTTP默认端口号为80,但是你也可以改为8080或者其他端口
      • 2.Http特点
        • (1).HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。
        • (2).HTTP是媒体独立的:任何类型的数据都可以通过HTTP发送。
        • (3).HTTP是无状态:对于事务处理没有记忆能力。
      • 3.Http协议格式
        • 3.1客户端请求消息格式
          • 请求行、请求头部、空行和请求数据
        • 3.2post 和 get的区别
          • GET通常用来从服务器上获得数据,而非修改信息;POST用来向服务器传递数据。
          • (1)、请求数据时带参数时;GET请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。POST请求会把请求的数据放置在HTTP请求包的包体中。因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。
          • (2)、传输数据的大小;在HTTP规范中,没有对URL的长度和传输的数据大小进行限制,在使用GET请求时,传输数据会受到URL长度的限制。对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制
          • (3)、GET请求返回的内容可以被浏览器缓存起来。浏览器不会缓存POST请求返回的内容
          • (4)、GET对数据进行查询,POST主要对数据进行增删改!简单说,GET是只读,POST是写
          • (5)、对于参数的数据类型,get只接受ASCII字符,而post没有限制。
        • 3.3服务器响应消息格式
          • 状态行、消息报头、空行和响应正文
http://www.xdnf.cn/news/69733.html

相关文章:

  • L1-106 偷感好重 - java
  • vision transformer图像分类模型结构介绍
  • 运维:概念、模式与硬件基础
  • 【MySQL】详细介绍(两万字)
  • 反射内存网技术应用于数控系统
  • Shell脚本-四则运算符号
  • 软件测试入门知识详解
  • 使用Unity Cache Server提高效率
  • 二分查找、分块查找、冒泡排序、选择排序、插入排序、快速排序
  • Maven编译打包
  • MySQL的ACID特性
  • 抽象类的特点
  • 面经-浏览器/网络/HTML/CSS
  • 单页面应用的特点,什么是路由,VueRouter的下载,安装和使用,路由的封装抽离,声明式导航的介绍和使用
  • 数据结构之二叉树
  • 线性回归之多项式升维
  • TDengine 存储引擎设计
  • map和set的使用
  • PHP日志会对服务器产生哪些影响?
  • 安恒安全渗透面试题
  • [PTA]2025 CCCC-GPLT天梯赛-这不是字符串题
  • 29-JavaScript基础语法(函数)
  • JavaScript 中的单例模式
  • AI Agent开发第34课-用最先进的图片向量BGE-VL实现“图搜图”-下
  • C# 的 字符串插值($) 和 逐字字符串(@) 功能
  • 高效Java面试题(附答案)
  • 鸿蒙系统的 “成长烦恼“:生态突围与技术迭代的双重挑战
  • KRaft面试思路引导
  • Linux环境准备(安装VirtualBox和Ubuntu,安装MySQL,MySQL启动、重启和停止)
  • promise.resolve,promise.reject,promise.all的理解和运用