目录
引入
Modbus
起源
Modbus由Modicon公司于1979年开发,是一种工业现场总线协议标准。
Modbus通信协议具有多个变种,其中有支持串口,以太网多个版本,其中最著名的是Modbus RTU、Modbus ASCII和Modbus TCP三种。
Modbus TCP是在施耐德收购Modicon后1997年发布的。
分类
1、Modbus RTU:运行在串口上的协议,采用二进制表示形式以及紧凑的数据结构,通信效率较高,应用比较广泛
2、Modbus ASCII:运行在串口上的协议,采用ASCII码传输,利用特殊字符作为字节开始和结束的标志,传输效率较低,只有在传输数据量较少的时候才会考虑它
3、Modbus TCP:运行在以太网上的协议
优势
免费、简单、容易使用
应用场景
Modbus协议是现在国内工业领域应用最多的协议,不只PLC设备,各种终端设备,比如水控机、水表、电表、工业秤、各种采集设备
Modbus TCP特点
①采用主从问答方式进行通信
②Modbus Tcp是应用层协议,基于传输层TCP协议实现
③Modbus Tcp端口号默认502
Modbus TCP 通信协议
包含三部分:报文头、功能码、数据
Modbus TCP/IP协议最大数据帧长度为260字节
Webserver服务器
简介
Webserver服务器中文名为网页服务器或Web服务器,是一种软件应用程序,其提供了HTTP(Hypertext Transfer Protocol)协议在互联网上发布和传输信息的功能。其接受来自客户端的HTTP请求并返回相应的HTML页面、图像、文件或其他资源。
Web服务器在互联网中起着至关重要的作用,使得网民能通过浏览器访问和浏览网页。当用户再浏览器中输入URL(Uniform Resource Locator),确认后浏览器会向服务器发送HTTP请求,然后服务器处理请求并生成响应,再将响应发送回浏览器,最终浏览器将响应解析并显示在用户界面上。
Web服务器的功能不仅限于提供静态网页,还可以支持动态内容、数据库连接、会话管理等特性。常见的Web服务器软件包括Apache HTTP Server、Nginx、Microsoft IIS(Internet Information Services)等。这些服务器软件在市场上广泛使用,并具有高度的可定制性和扩展性,可以根据具体需求进行配置和优化。
除了基本的页面响应功能,现代的Web服务器也可以支持安全性、负载均衡、缓存、日志记录、URL重写等高级功能,以提高性能、安全性和可伸缩性。
简而言之,Web服务器为在互联网上发布和传输信息的关键组成部分,它使得用户能够访问和浏览网页,并且支持各种功能和特性,以满足不同的网络应用需求。
常见分类
常见Webserver分类有Kangle、Nginx、apache等;嵌入式中常见的轻量级服务器有Lighttpd、 Shttpd,、Thttpd、Boa、Mini_httpd、Appweb、Goahead等。
CGI
简介
CGI(通用网关接口,Common Gateway Interface)是一种标准的、通用的协议,用于在Web服务器和应用程序之间进行通信。它定义了一种方式,使得Web服务器能够调用外部程序或脚本,并将请求传递给这些程序来生成动态内容。
通过CGI,Web服务器可以与各种不同类型的应用程序进行交互,包括脚本语言(如Perl、Python、PHP等)、可执行程序和其他类型的应用程序。当客户端发送HTTP请求时,Web服务器根据配置将请求路由到特定的CGI程序,并将请求数据作为输入传递给该程序。
CGI程序接收到请求后,可以处理请求中的数据、查询数据库、执行计算、生成动态内容,并将生成的结果返回给Web服务器。然后,Web服务器将结果作为HTTP响应发送回客户端,供用户浏览器解析和显示。
CGI允许开发人员创建复杂的动态网页和Web应用程序。它提供了灵活性和扩展性,使得开发人员能够使用各种编程语言和技术来构建交互式的Web应用。
虽然CGI在过去是最常用的动态网页技术,但在现代Web开发中,它的使用已经减少。原因是CGI在每个请求中都要启动新进程来执行外部程序,这会对性能和资源消耗产生一定的负担。现代的Web开发倾向于使用更高效的替代技术,如服务器端脚本、Web框架和应用程序接口(API),以提供更好的性能和可扩展性。
尽管如此,CGI仍然具有一定的历史意义和重要性,它奠定了动态网页开发的基础,并为其他技术的发展提供了启示。
关于CGI的近期理解
早期的Web服务器,只能响应浏览器发来的HTTP静态资源的请求,并将存储在服务器中的静态资源返回给浏览器。随着Web技术的发展,逐渐出现了动态技术,但是Web服务器并不能够直接运行动态脚本,为了解决Web服务器与外部应用程序之间数据互通,于是出现了CGI通用网关接口。简单理解,可以认为CGI是Web服务器和运行其上的应用程序进行“交流”的一种约定。
特点
CGI是Web服务器和一个独立的进程之间的协议,它通过环境变量及标准输入/输出和服务器之间进行数据交互。
1、通过环境变量可以获得网页的请求方式、地址等
2、通过标准输入可以获取网页的消息正文
3、通过标准输出可以发送网页请求的数据
常见环境变量
REQUEST_URI:访问此页面需要的URL,比如:“/index.html”
REQUEST_METHOD:获取客户端请求数据的方式:POST或GET
CONTENT_LENGTH:获取用户数据的长度
CONTENT_TYPE:网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件