【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的转换器就可以了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/150512.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

再来介绍另一个binlog文件解析的第三方工具my2sql

看腻了文字就来听听视频演示吧:https://www.bilibili.com/video/BV1rp4y1w74B/ github项目:https://github.com/liuhr/my2sql gitee链接:https://gitee.com/mirrors/my2sql my2sql go版MySQL binlog解析工具,通过解析MySQL bin…

8.2 JUC - 4.Semaphore

目录 一、是什么?二、简单使用三、semaphore应用四、Semaphore原理 一、是什么? Semaphore:信号量,用来限制能同时访问共享资源的线程上限 二、简单使用 public class TestSemaphore {public static void main(String[] args) …

H桥级联型五电平三相逆变器Simulink仿真模型

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

我写过的最蠢的代码

目录 前言正文蠢代码 - 1蠢代码 - 2蠢代码 - 3提醒! 蠢代码 - 4 总结 前言 每个人的身上都有毛毛 每个人的代码有些十分蠢,正巧,我也有! 一看到CSDN的活动《你写过的最蠢的代码是?》,我立刻想要参加来告诉…

热迁移中VirtIO-PCI设备的配置空间处理

文章目录 问题现象定位过程日志分析源端目的端 原理分析基本原理上下文分析复现分析patch分析 总结解决方案 问题现象 集群升级虚拟化组件版本,升级前存量运行并挂载了virtio磁盘的虚拟机集群内热迁移到升级后的节点失败,QEMU报错如下: 202…

练[BJDCTF2020]EasySearch

[BJDCTF2020]EasySearch 文章目录 [BJDCTF2020]EasySearch掌握知识解题思路关键paylaod 掌握知识 ​ 目录扫描,index.php.swp文件泄露,代码审计,MD5区块爆破,请求响应包的隐藏信息,.shtml文件RCE漏洞利用 解题思路 …

Hive 【Hive(七)窗口函数练习】

窗口函数案例 数据准备 1)建表语句 create table order_info (order_id string, --订单iduser_id string, -- 用户iduser_name string, -- 用户姓名order_date string, -- 下单日期order_amount int -- 订单金额 ); 2)装载语句 i…

MongoDB集群管理

1、副本集-Replica Sets 1.1、简介 MongoDB中的副本集(Replica Set)是一组维护相同数据集的mongod服务。 副本集可提供冗余和高 可用性,是所有生产部署的基础。 也可以说,副本集类似于有自动故障恢复功能的主从集群。通俗的讲就…

基于安卓android微信小程序的旅游app系统

项目介绍 随着人民生活水平的提高,旅游业已经越来越大众化,而旅游业的核心是信息,不论是对旅游管理部门、对旅游企业,或是对旅游者而言,有效的获取旅游信息,都显得特别重要.自助定制游将使旅游相关信息管理工作规范化、信息化、程序化,提供旅游景点、旅游线路,旅游新闻等服务本…

根据中序与后序遍历结果构造二叉树

文章前言:对于中序与后序遍历不是太清楚的小白同学,作者推荐: 二叉树的初步认识_加瓦不加班的博客-CSDN博客 解题思路: 先通过后序遍历结果定位根节点 再结合中序遍历结果切分左右子树 代码实现: //1. pre-order 前…

网络和系统操作命令

目录 ping:用于检测网络是否通畅,以及网络时延情况。ipconfig:查看计算机的IP参数配置信息,如IP地址、默认网关、子网掩码等信息。netstat:显示协议统计信息和当前TCP/IP网络连接。tasklist:显示当前运行的…

接口测试复习Requests PyMysql Dubbo

一。基本概念 接口概念:系统与系统之间 数据交互的通道。 接⼝测试概念:校验 预期结果 与 实际结果 是否⼀致。 特征: 测试⻚⾯测试发现不了的问题。(因为:接⼝测试 绕过前端界⾯。 ) 符合质量控制前移理…

C++设计模式-抽象工厂(Abstract Factory)

目录 C设计模式-抽象工厂(Abstract Factory) 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-抽象工厂(Abstract Factory) 一、意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们…

【VIM】VIm初步使用

玩转Vim-从放弃到入门_哔哩哔哩_bilibili

java基础-第7章-常用类

一、包装类 概述 Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使…

在WIN10平台上体验Microsoft古老的Quick C 1.0编程

前言: 90年代初,微软出了Quick系统对抗Borland Turbo系列,其中包括 QuickBasic, QuickPascal和Quick C。1991年,Quick C for Windows 1.0发布,后来它被Visual C取代。我自己觉得微软成就在那个winstub.exe桩上&#xf…

【ElasticSearch】深入了解 ElasticSearch:开源搜索引擎的力量

文章目录 前言一、初识 ElasticSearch 搜索引擎1.1 ElasticSearch 的核心概念1.2 ElasticSearch 的演进历程1.3 ElasticSearch 的优势与未来 二、正排索引与倒排索引:数据库与 ElasticSearch 的差异2.1 对正排索引的认识2.2 对倒排索引的认识2.3 正排索引 vs. 倒排索…

【yolov系列:yolov7改进添加SIAM注意力机制】

yolo系列文章目录 文章目录 yolo系列文章目录一、SimAM注意力机制是什么?二、YOLOv7使用SimAM注意力机制1.在yolov7的models下面新建SimAM.py文件2.在common里面导入在这里插入图片描述 总结 一、SimAM注意力机制是什么? 论文题目:SimAM: A …

P1017 [NOIP2000 提高组] 进制转换

#include<iostream> #include<cstdio> #include<cmath> #include<cstring> using namespace std;void zhuan(int n,int r) {if(n0) return ;int mn%r;//m为余数 if(m<0) m-r,nr;//如果余数小于0&#xff0c;转化为正数//将余数转化为ascll码方便输出…

土木硕设计院在职转码上岸

一、个人介绍 双非土木硕&#xff0c;98年&#xff0c;目前在北京&#xff0c;职位为前端开发工程师&#xff0c;设计院在职期间自学转码上岸&#x1f33f; 二、背景 本人于19年开始土木研究生生涯&#xff0c;研二期间去地产实习近半年(碧桂园和世茂&#xff0c;这两家的地产…