【C语言项目】多臂井径电子测井成像项目(一)

2024-01-28 06:10

本文主要是介绍【C语言项目】多臂井径电子测井成像项目(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1、目的和意义
  • 2、本章概述
  • 3、串口R232
  • 4、OpenGL
  • 5、开发环境
  • 6、环境配置
    • 6.1、VS安装OpenGL
    • 6.2、虚拟串口生成工具
  • 7、成品速览
  • 参考文献

1、目的和意义

本项目为获取矿藏地层的油气当量和及时精确地测量含油、含气层的压力及温度值的需求,辅助生产管理人员完成对油井的温度、压强、流量监控功能。通过油井井压力器对地层进行探测,通过串口通信将数据从井温压力器发至解析中心端,解析中心解包完成后利用 Lagrange 插值算法对数据进行处理,让数据看着更加流畅。通过 OpenGl 图形技术将地层的数据模拟成折线图和柱形图呈现。
在这里插入图片描述

2、本章概述

本章主要介绍了多臂井径电子测井成像项目中的项目来源,应用场景。所需相关的技术栈及环境配置。

3、串口R232

1、 串口通讯协议简介
串口:串口是一个泛称,UART,TTL,RS232,RS485都遵循类似的通信时序协议,因此都被通称为串口。
串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
在这里插入图片描述
2、RS-232标准接口
RS232:是电子工业协会(Electronic Industries Association,EIA) 制定的异步传输标准接口,同时对应着电平标准和通信协议(时序),其电平标准:+3V~+15V对应0,-3V~-15V对应1。rs232 的逻辑电平和TTL 不一样但是协议一样。
RS-232标准接口(又称EIA RS-232)是常用的串行通信接口标准之一,全名是“数据终端设备( DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准。

3、Rs-232 特点
信号线少使用3条~9条信号线就可以实现全双工通信,采用三条信号线(接收线、发送线和信号地)能实现简单的全双工通信过程
波特率是指从一设备发到另一设备的波特率,即每秒钟多少比特bits per second (bit/s)。典型的波特率是110, 300, 600, 1200, 2400, 4800,9600, 14400, 19200,等bit/s。一般通信两端设备都要设为相同的波特率,但有些设备也可以设置为自动检测波特率。
奇偶效验Parity是用来验证数据的正确性。奇偶校验一般不使用,如果使用,那么既可以做奇校验(Odd Parity)也可以做偶校验(Even Parity)。
停止位是在每个字节传输之后发送的,它用来帮助接受信号方硬件重同步。
字节大小

4、OpenGL

OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形到比较复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。
OpenGL的高效实现(利用了图形加速硬件)存在于Windows,部分UNIX平台和Mac OS。这些实现一般由显示设备厂商提供,而且非常依赖于该厂商提供的硬件。开放源代码库Mesa是一个纯基于软件的图形API,它的代码兼容于OpenGL。但是,由于许可证的原因,它只声称是一个“非常相似”的API。
当今,OpenGL是视频行业领域中用于处理2D/3D图形的最为广泛接纳的API,在此基础上,为了用于计算机视觉技术的研究,从而催生了各种计算机平台上的应用功能以及设备上的许多应用程序。其是独立于视窗操作系统以及操作系统平台,可以进行多种不同领域的开发和内容创作,简而言之,其帮助研发人员能够实现PC、工作站、超级计算机以及各种工控机等硬件设备上实现高性能、对于视觉要求极高的高视觉图形处理软件的开发。

5、开发环境

1、Windows10或更高
2、VS2019或更高
3、Virtual Serial Port Driver Pro
4、OpengGL

6、环境配置

6.1、VS安装OpenGL

1、创建任意一个项目,然后点击【项目】->【管理NuGet程序包…】。
在这里插入图片描述
2、在搜索框内搜索nupengl,然后点击右侧的安装,随便安装那一个另一个都会一起安装。
在这里插入图片描述
3、创建一个*.c文件,包含一下代码,编译看能够通过。则表示环境配置成功。

#include <GL/glut.h>
int main()
{glLoadIdentity();return 0;
}

6.2、虚拟串口生成工具

下载Virtual Serial Port Driver Pro,官网直达

打开是下面这个界面,有14天的试用期。
在这里插入图片描述

1、点击创建Pair创建串口
在这里插入图片描述
2、使用默认生成的串口名称即可,然后点击Create即可完成。
在这里插入图片描述
3、如果有数据交互和程序占用将会在这里显示
在这里插入图片描述

下面这张图就是程序绑定串口后的效果。
在这里插入图片描述

7、成品速览

主要分为三个软件,一个软件为数据采集这里担当数据发送占用一个串口。第二个软件是数据解析担当数据接收占用另一个串口,第三个软件是通过和第二个软件实现共享内存来进行绘制井壁情况。
在这里插入图片描述

参考文献

1、浅谈井下电子压力计的现状和应用:yjbys.com/bylw/lunwenfanwen/48405.html
2、中油测井国产三维感应成像仪推广应用: http://news.cnpc.com.cn/system/2022/09/13/030079670.shtml
3、百度百科 OpenGL:https://baike.baidu.com/item/OpenGL/238984
4、sl4209三臂井径测井仪https://www.docin.com/p-2583333820.html

这篇关于【C语言项目】多臂井径电子测井成像项目(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/652701

相关文章

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带