基于Webserver的工业数据采集项目

本文详细介绍了如何利用Modbus TCP通信协议进行工业数据采集,并结合Webserver实现数据传输。首先,文章阐述了Modbus的起源、分类、优势和应用场景,特别是Modbus TCP的特点。接着,探讨了Webserver的基本概念、分类,以及CGI的工作原理。通过实例代码展示了如何在C语言中处理消息队列、共享内存以及HTTP协议,实现了从数据采集到存储和网页展示的全过程。
摘要由CSDN通过智能技术生成

目录

引入 

Modbus

起源

分类

优势

应用场景

Modbus TCP特点

Modbus TCP 通信协议

Webserver服务器

简介

常见分类

CGI

简介

关于CGI的近期理解

特点

常见环境变量

工作原理

http协议

简介

特点

 图解

 思路

示例代码

编译文件

main.c部分

定义

消息队列

创建

打开

循环发送

共享内存

创建

打开

映射

循环读取

main.c

创建实例

设置从机ID和与从机连接

子线程执行与销毁

套接字关闭与实例释放

衔接log_console_init部分

头文件

主函数

数据存储req_handle部分

头文件

主函数

定义

链接

获取环境变量

开辟堆区空间

数据存储

数据收集custom_handle部分

头文件

主函数

定义

处理请求:解析浏览器指令、获取数据、设置传感器值、数据反馈

网页部分

index.html


引入 

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,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件

工作原理

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值