【QT5-程序控制电源-RS232-SCPI协议-上位机-基础样例【1】】
【QT5-程序控制电源-RS232-SCPI协议-上位机-基础样例【1】】
- 1、前言
- 2、实验环境
- 3、自我总结
- 1、基础了解仪器控制-熟悉仪器
- 2、连接SCPI协议
- 3、选择控制方式-程控方式-RS232
- 4、代码编写
- 4、熟悉协议-SCPI协议
- 5、测试实验-测试指令
- (1)硬件连接
- (2)指令测试
- 6、QT实验-编写QT代码
- 7、实验代码
- 8、细节部分
- (1)指令要遵循格式-指令测试
- (2)硬件连接RS232
- (3)输入错误或者错误指令
- 9、总结
1、前言
你使用一个东西越久,你就会发现它能做到的事情可以很多,对自己来说,qt就是这样,刚开始学习时,其实也是什么都不懂得的,后来慢慢的熟悉,通过不同实验,以及使用方式,发现能做到事情越来越多,这里也有你对这个工具的理解程度。
2、实验环境
实验环境还是挺重要的,因为有时候,在你电脑上能运行的东西,在别人的电脑就不一定能运行,这一部分的原因就可能是实验版本不一样。
系统环境:window环境
QT软件版本:qt 5.14.2
硬件连接:USB转RS232的转换器和转换线
程控电源:IT6723
连接线:9DB转接线
3、自我总结
1、基础了解仪器控制-熟悉仪器
在进行程控电源前,一定要对电源本身有一定熟悉,给到一个电源,至少能通过上边按键进行控制,选择出自己需要的电压或者电流,另外就需要查找这个仪器的说明书,看看都可以进行什么样的控制,支持不支持程序控制。
如上图,搜索到,这是艾德克斯的IT6723,一般在网上搜索,就能找到官网,需要注册号。
官网链接:https://cdn.itechate.com/cn/product.html
然后我们找到这个一起说明书,如下图。
一般不出意外的话,你应该看到如下说明,就是这个电源的说明了。
链接:https://www.itechate.com/uploadfiles/%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C/user%20manual/it6700h/IT6700%20Programming%20Guide-CN.pdf
2、连接SCPI协议
(1)为了更好的控制电源,我们需要了解SCPI协议,并且这个电源文档也有简绍,打个比方,就像学习英语一样,与电源沟通的“语言”或者指令。
上述,也对这个SCPI,进行说明了,更为详细可以去网上搜索,你只要知道它是一种沟通方式就可以了,并不依赖RS232这一种通信硬件。
3、选择控制方式-程控方式-RS232
本次选择的RS232,但是你要是仔细看说明书,可以发现,至少这款程控电源,不只是RS232,本篇是使用RS232进行调试,如下,有其说明,如果你是其它类型电源,并且协议也是SCPI的话,还要考虑接线细节。
4、代码编写
熟悉玩了后,最后才是代码编写,当然我们先要做个测试,使用串口软件,进行通信,看看是否能控制,如果能控制,那么程控就简单了。
4、熟悉协议-SCPI协议
简单了解下协议,上网搜索,还是挺多的,这里只是列举,更多大家可以自己查找,简单说,它是一条通信方式,一条指令集,专门音高测量仪器上的。
参考链接:https://blog.csdn.net/weixin_45692672/article/details/113832043
参考链接:https://zhuanlan.zhihu.com/p/565512748
具体到文档里,本次实验,参照说明书,如下为其中一个指令
5、测试实验-测试指令
在正式编写QT代码前,我们需要作测试,就是直接使用串口软件控制程序电源,同时来熟悉指令。
(1)硬件连接
我们需要先连接好硬件,才能调试,将USB转串口转换器查到PC上,找一个DB9,公转母的转接线。
另一端插在电源背面上,如下图所示。
然后我们打开一个串口软件,按照协议说明,一条一条,测试相关命令,如下图所示,我们使用一个指令,并且设置波特率9600,如何正常,就会有相关信息返回来了。
SYST:VERS?
(2)指令测试
为了更好了解,我们更多指令测试
(1)这期间可能会有仪器不响应,因为如果控制成功的话,是不返回信息的,所有有时候你也不知道,是不是自己控制成功了,多长是吧。
(2)从自己测试来看,好像并不是每条指令都会响应,但是一般查询指令都会响应
(3)以下罗列,是自己测试的,具体可以根据协议说明书来
DISPlay?
VOLTage? //询问当前电压
*IDN? //电源系统版本
OUTPut ON //电源控制--开
OUTPut OFF //电源控制--关
SYST:REM
SYST:ERR? //询问系统错误
*ESR?
TRIG:SOUR EXT; COUNT 10
APPLy 12,1 //设置电流电压 12V 1A
如下,是测试时,填入的指令
如下是,是测试时,返回情况,记得点上,发送新行。
6、QT实验-编写QT代码
如果上边指令测试差不多了,基本就可以进行qt相关编写了。
其本本质是“串口通信”,也可以说是串口实验,可以参考之前样例。
参考连接:【QT 5 调试软件+串口相关初试串口+基础样例】
如下图,我们简单更改下波特率
“这里需要注意的是,需要先设置电源上的波特率,和通讯方式,这块是需要对仪器的熟悉”
再加入相关控制指令,记得加入“\n”.
7、实验代码
实验代码:https://download.csdn.net/download/qq_22146161/88399153
8、细节部分
(1)指令要遵循格式-指令测试
自己在测试过程中,开始不是很懂,测试过也不知道成没成功,并且控制成功后,其实电源不会有任何声音反应,反而是错误的时候,会听到蜂鸣器响声,并且对格式有要求,只能自己多测试熟悉。
如下是自己测试记录,也是测试很多的。
(2)硬件连接RS232
自己连接时遇到的,看是没有使用DB9公转母线,使用杜邦线直接插的,发现怎么都不好使,这块最好买实体线,或者多测试,如果发现任何指令都不行,那么建议查找线的问题。
(3)输入错误或者错误指令
我们在使用指令,进行测试后过程中,由于不熟悉,肯定会犯错误,输入错误指令,这款电源,会默认储存10条错误,看说明上有写,通过询问,会依次打印一条错误信息。
对于错误信息,后面会有个对照表,告诉你是因为啥错误的。
9、总结
就拿本章的程控电源来举例,它的本质其实是串口通讯,另外你需要使用一些简单的命令语言,就可以能控制起来了。
之前是做过相关串口实验的,只需要一个RS232的转换器就可以了。
相关文章:
【QT5-程序控制电源-RS232-SCPI协议-上位机-基础样例【1】】
【QT5-程序控制电源-RS232-SCPI协议-上位机-基础样例【1】】 1、前言2、实验环境3、自我总结1、基础了解仪器控制-熟悉仪器2、连接SCPI协议3、选择控制方式-程控方式-RS2324、代码编写 4、熟悉协议-SCPI协议5、测试实验-测试指令(1)硬件连接(…...
leetcode 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零
1049. 最后一块石头的重量 II 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x < y。那么粉碎的可能结果…...
Error string: Could not load library
启动Rivz时,报错: Error string: Could not load library (Poco exception libg2o_csparse_extension.so.0.1: cannot open shared object file: No such file or directory) [ERROR] [1696572310.529059051]: Failed to load nodelet [/radar_graph_s…...
pom.xml里的标签
pom.xml 是 Maven 项目的配置文件,其中包含了各种配置信息和依赖管理。下面是一些常见的 pom.xml 中的标签和其作用的简要说明: <project>:根标签,定义了整个项目的基本信息和结构。 <groupId>:指定项目所…...
微服务部署的正确策略
微服务部署挑战 单体应用程序的部署意味着您运行单个(通常是大型应用程序)的多个相同副本。这主要是通过配置 N 个服务器(无论是物理服务器还是虚拟服务器)并在每台服务器上运行应用程序的 M 个实例来完成。虽然这看起来非常简单…...
C#中的数组探究与学习
目录 C#中的数组一般分为:一.数组定义:为什么要使用数组?什么是数组?C#一维数组for和foreach的区别C#多维数组C#锯齿数组初始化的意义:适用场景:C#中的数组一般分为: ①.一维数组。 ②.多维数组,也叫矩形数组。 ③.锯齿数组,也叫交错数组。 一.数组定义: 数组…...
计算机网络八股
1、请你说说TCP和UDP的区别 TCP提供面向连接的可靠传输,UDP提供面向无连接的不可靠传输。UDP在很多实时性要求高的场景有很好的表现,而TCP在要求数据准确、对速度没有硬件要求的场景有很好的表现。TCP和UDP都是传输层协议,都是为应用层程序服…...
Waves 14混音特效插件合集mac/win
Waves14是一款音频处理软件,主要用于音频编辑、混音和母带处理。该软件提供了各种插件,包括EQ、压缩、混响、延迟、失真等,以及一些专业的音频处理工具,如L2限幅器、Linear Phase EQ和多频道扬声器管理。 Mac软件下载:…...
Python python-docx 使用教程
openpyxl是Python下的Word库,它能够很容易的对Word文档进行读取 安装方法:pip install python-docx国内镜像安装:pip install -i https://mirrors.aliyun.com/pypi/simple/ python-docx(推荐,安装更快)中文…...
Mac上protobuf环境构建-java
参考文献 getting-started 官网pb java介绍 maven protobuf插件 简单入门1 简单入门2 1. protoc编译器下载安装 https://github.com/protocolbuffers/protobuf/releases?page10 放入.zshrc中配置环境变量 ~/IdeaProjects/test2/ protoc --version libprotoc 3.12.1 …...
CocosCreator3.8研究笔记(二十二)CocosCreator 动画系统-动画剪辑和动画组件介绍
国庆假期,闲着没事,在家研究技术~ 大家都知道在Cocos Creator3.x 的版本的动画编辑器中,可以实现不用写一行代码就能实现各种动态效果。 Cocos Creator动画编辑器中主要实现关键帧动画,不仅支持位移、旋转、缩放、帧动画ÿ…...
信看课堂-厘米GNSS定位
我们常常说GPS 定位,不过定位远不止GPS定位,通过本节课程,我们将会了解到,原来GPS只是定位的一种: GNSS概述 不同的GNSS系统使用不同的频段来传输导航信号。以下是一些主要的GNSS系统及其相应的频段,用表…...
2023CCPC网络赛(A E)
2023CCPC网络赛(A E) The 2nd Universal Cup. Stage 3: Binjiang - Dashboard - Contest - Universal Cup Judging System A. Almost Prefix Concatenation 思路:首先考虑如何求出每个位置允许失配一次的LCP长度 , 可以二分哈希求LCP , 即…...
使用 python 检测泛洪攻击的案例
使用 python 检测泛洪攻击的案例 本案例只使用python标准库通过执行命令来监控异常请求, 并封锁IP, 不涉及其他第三方库工具. import os import time from collections import Counter# 1、update 命令, 采集CPU的平均负载 def get_cpu_load():"""uptime 命令…...
SCROLLINFO scrollInfo; 2023/10/5 下午3:38:53
2023/10/5 下午3:38:53 SCROLLINFO scrollInfo;scrollInfo.cbSize = sizeof(SCROLLINFO);scrollInfo.fMask = SIF_ALL;//scrollInfo.nMin = 0; // 最小位置//scrollInfo.nMax = nRowCountToShow; // 最大位置//scrollInfo.nPage = nRowCountToShow; // 页面大小//scrollInf…...
Python--控制台获取输入与正则表达式
前言一、控制台获取输入1.1 字符串输入1.2 整数输入1.3 浮点数输入1.4 布尔值输入1.5 列表输入1.6 汇总 二、正则表达式2.1 匹配数字2.2 模式检查2.3 替换字符2.4 切分字符串2.5 搜索并提取匹配的部分2.6 使用捕获组提取匹配的部分2.7 非贪婪匹配2.8 忽略大小写匹配2.9 使用预定…...
网络基础知识面试题1
VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)...
JavaScript系列从入门到精通系列第十五篇:JavaScript中函数的实参介绍返回值介绍以及函数的立即执行
文章目录 一:函数的参数 1:形参如何定义 2:形参的使用规则 二:函数的返回值 1:函数返回值如何定义 2:函数返回值种类 三:实参的任意性 1:方法可以作为实参 2:将匿…...
js中的原型链
编写思路: 简单介绍构造函数介绍原型对象原型对象、实例的关系,从而引出原型链的基本概念 原型链基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。 1. 什么是构造函数 构造函数本身跟普通函数一样,也不存在定义构造函数…...
一文搞懂APT攻击
APT攻击 1. 基本概念2. APT的攻击阶段3. APT的典型案例参考 1. 基本概念 高级持续性威胁(APT,Advanced Persistent Threat),又叫高级长期威胁,是一种复杂的、持续的网络攻击,包含高级、长期、威胁三个要素…...
在pandas中通过一列数据映射出另一列的几种思路和方法
如果一句话中出现某个品牌的关键词,那么就将该品牌进行提取,开始我的做法是写了很多elif,如下: def brand_describe(x):if TRUM in x.upper():return "通快"elif BYSTRONIC in x.upper():return "百超"elif …...
数据分析视角中的商业分析学习笔记
数据分析一大堆,结果却是大家早就知道的结论?是工具和方法出问题了吗?真正原因可能是你的思维有误区。 为什么分析的这么辛苦,得出的结论大家早知道,谁谁都不满意?核心原因有3个: 分析之前&am…...
剑指offer——JZ26 树的子结构 解题思路与具体代码【C++】
一、题目描述与要求 树的子结构_牛客题霸_牛客网 (nowcoder.com) 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2}&…...
NEFU数字图像处理(1)绪论
一、简介 1.1什么是数字图像 图像是三维场景在二维平面上的影像。根据其存储方式和表现形式,可以将图像分为模拟图像和数字图像两大类 图像处理方法:光学方法、电子学方法 模拟图像:连续的图像数字图像:通过对时间上和数值上连续…...
数值分析学习笔记——绪论【华科B站教程版本】
绪论 数值分析概念 用计算机求解数学问题的数值方法和理论 三大科学研究方法 实验理论分析科学计算(用计算机去辅助研究):数值方法计算机 解析解和近似解 解析解:使用数学方法求出或推导出的结果,往往可以求解出…...
节日灯饰灯串灯出口欧洲CE认证办理
灯串(灯带),这个产品的形状就象一根带子一样,再加上产品的主要原件就是LED,因此叫做灯串或者灯带。2022年,我国灯具及相关配件产品出口总额超过460亿美元。其中北美是最大的出口市场。其次是欧洲市场&#…...
一线大厂Redis高并发缓存架构实战与性能优化
文章目录 一、redis主从架构锁失效问题分析二、从CAP角度剖析redis与zookeeper分布式锁区别三、redlock分布式锁原理与存在的问题分析四、大促场景如何将分布式锁性能提升100倍五、高并发redis架构代码实战 一、redis主从架构锁失效问题分析 我们都知道,一般的互联…...
PHP 行事准则:allow_url_fopen 与 allow_url_include
文章目录 参考环境allow_url_fopenallow_url_fopen 配置项操作远程文件file 协议 allow_url_includeallow_url_include 配置项 allow_url_include 与 allow_url_fopen区别联系默认配置配置项关闭所导致异常运行时配置ini_set()限制 参考 项目描述搜索引擎Bing、GoogleAI 大模型…...
Replicate + ngrok云端大模型API实现教程
ChatGPT 的诞生预示着人工智能和机器学习领域的新时代。 日新月异,Hugging Face 不断推出突破性的语言模型,重新定义人机交互的界限。欢迎来到未来! 当然,有很多选项可以对它们进行推断。在本文中,我将告诉大家如何使…...
蓝桥等考Python组别十四级005
蓝桥等考Python组别十四级 第一部分:选择题 1、Python L14 (15分) 运行下面程序,输出的结果是( )。 d = {1 : one, 2 : two, 3 : three, 4 : four} print(d[2]) onetwothreefour正确答案:B...
网站建设功能规划/seo英文
控制按钮下拉到达一定距离时显示,返回顶层时消失,用JS中的延时定时器来模拟滚动条效果 <script type"text/javascript"> window.οnscrοllfunction(){ //获取当前页面的滚动条纵坐标位置 if(document.documentElement.…...
广州网站制作电话/关键词seo教程
我们在CAD编辑软件中对CAD建筑图纸进行查看的过程中,如何使用CAD编辑软件在图纸中添加文字呢?具体要怎么来进行操作呢?那相信很多的小伙伴们都想要知道,那下面小编就来教教大家具体的操作方法,本编教程就来教教大家如何…...
如何在自己网站做解析api/郑州seo技术博客
HomeKit框架详细解析(一) —— 基本概览HomeKit框架详细解析(二) —— HomeKit介绍 Introduction to HomeKitHomeKit框架详细解析(三) —— 启用HomeKit Enabling HomeKitHomeKit框架详细解析(四…...
厦门集美网站建设/交换友情链接吧
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明http://www.chedong.com/tech/lucene.html 关键词:Lucene java full-text search engine Chinese word segment 内容摘要: Lucene是一个基于Ja…...
wordpress jetpack插件/网络营销策划书包括哪些内容
1.问题原因分析在Android SDK更新至23以上时,我们会发现之前在某些地方因计算需要使用到的FloatMath类中的方法如FloatMath.ceil()与FloatMath.sin()等都报错并提示不可用了,FloatMath源码如下:package android.util;/*** Math routines simi…...
网站建设开发价格怎么算/太原关键词排名优化
文章目录 系统可用性单机架构主从副本风险不可控同城灾备同城双活两地三中心伪异地双活真正的异地双活如何实施异地双活1、按业务类型分片2、直接哈希分片3、按地理位置分片异地多活总结系统可用性 要想理解异地多活,我们需要从架构设计的原则说起。 现如今,我们开发一个软件…...