网络编程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.coloradmin.cn/o/2340072.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!