电子负载仪的远端控制

2024-04-27 07:28
文章标签 控制 远端 电子负载

本文主要是介绍电子负载仪的远端控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

最近研究了电子负载仪的远端控制(区别于前面板控制),主要是用于程序控制,避免繁琐复杂的人工控制,举了南京嘉拓和艾维泰科的例子。

有纰漏请指出,转载请说明。

学习交流请发邮件 1280253714@qq.com

南京嘉拓

Microsoft Word - JT611x系勊çflµå (jartul.com)

RS232接口,TX对TX,RX对RX

输入开启或关闭(无回复)

INP 0

49 4E 50 20 30 0A

 输入查询

INP?

49 4E 50 3F 0A

回复

30 0D 0A

31 0D 0A

 返回0/1参数

该函数解析ASCII码数组,并找到0D 0A(即回车和换行符)之前的字符。如果该字符是30(即数字0的ASCII码),则返回0;如果是31(即数字1的ASCII码),则返回1;否则返回-1表示错误。 

s8 HexAsciiToFlag(u8 *hex_ascii_codes)
{if (hex_ascii_codes[1] == 0x0D && hex_ascii_codes[2] == 0x0A) {  // 检查0D 0A前面的字符是否是30或31  if (hex_ascii_codes[0] == '0') {  return 0;  } else if (hex_ascii_codes[0] == '1') {  return 1;  } else {  // 如果不是30或31,返回-1表示错误  return -1;  }  }   // 如果没有找到0D 0A,返回-1表示错误  return -1;  
}

读取电压

20 20 31 39 2E 31 39 0D 0A

  19.19

读取带电压信息的ASCII并返回浮点电压

在C语言中,要将ASCII码序列转换成浮点数据,可以通过以下步骤实现:

  1. 将每个ASCII码转换成对应的字符。
  2. 拼接这些字符形成一个字符串。
  3. 使用标准库函数atof()sscanf()将字符串转换成浮点数。
float HexAsciiToFloat(u8 *hex_ascii_codes)
{float voltage = 0;// 将十六进制ASCII码转换成字符,并构建字符串(不包括回车和换行符)  char voltage_str[11] = 0; // +1 为了字符串结束符 '\0'  int i, j = 0;  u8 len = 0;for (i = 0; i < 10; ++i) {  if (hex_ascii_codes[i] != 0x0D && hex_ascii_codes[i] != 0x0A) {  voltage_str[j++] = (char)hex_ascii_codes[i];  }  }  voltage_str[j] = '\0'; // 添加字符串结束符  // 去除字符串前后的空格  while (voltage_str[0] == ' ') {  memmove(voltage_str, voltage_str + 1, strlen(voltage_str));  }  len = strlen(voltage_str);  while (len > 0 && voltage_str[len - 1] == ' ') {  voltage_str[len - 1] = '\0';  len--;  }  // 使用atof函数将字符串转换为浮点数  voltage = atof(voltage_str); return voltage;
}

艾维泰科

TTL接口,RX对TX,TX对RX

IV8700系列直流电子负载说明书-东莞市艾维泰科仪器仪表有限公司 (ivytech.top)

控制命令举例

01 10 0A 01 00 02 04 3f 99 99 99 3A C2 设置电流1.2

01 03 0B 00 00 02 C6 2F 获取当前电压

01 05 05 00 FF 00 8c f6 远端控制,禁止前面板控制

01 05 05 00 00 00 cd 06 允许前面板控制

 MODBUS-CRC16

#include <stdio.h>  
#include <stdint.h>  void CalculateCRC(uint8_t *pByte, int nNumberOfBytes, uint16_t *pCheckSum) {  int nBit;  *pCheckSum = 0xFFFF; // 初始化CRC为0xFFFF  for (int nByte = 0; nByte < nNumberOfBytes; nByte++) {  *pCheckSum ^= pByte[nByte]; // 与当前字节异或  for (nBit = 0; nBit < 8; nBit++) {  if ((*pCheckSum & 0x0001) == 1) { // 检查最低位  *pCheckSum = (*pCheckSum >> 1) ^ 0xA001; // 右移一位并与0xA001异或  } else {  *pCheckSum >>= 1; // 右移一位  }  }  }  
}int main() {  uint8_t data[] = {0x01, 0x03, 0x0B, 0x00, 0x00, 0x02};  uint16_t checksum;  int length = sizeof(data);  CalculateCRC(data, length, &checksum);  printf("CRC-16: %04X\n", checksum); // 输出CRC校验码,格式化为4位十六进制数  return 0;  
}

这篇关于电子负载仪的远端控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

使用DrissionPage控制360浏览器的完美解决方案

《使用DrissionPage控制360浏览器的完美解决方案》在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接... 目录完整代码引言为什么要使用已有用户数据?核心代码实现1. 导入必要模块2. 关键配置(重点!)3.

SpringSecurity 认证、注销、权限控制功能(注销、记住密码、自定义登入页)

《SpringSecurity认证、注销、权限控制功能(注销、记住密码、自定义登入页)》SpringSecurity是一个强大的Java框架,用于保护应用程序的安全性,它提供了一套全面的安全解决方案... 目录简介认识Spring Security“认证”(Authentication)“授权” (Auth

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

Spring Security注解方式权限控制过程

《SpringSecurity注解方式权限控制过程》:本文主要介绍SpringSecurity注解方式权限控制过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、摘要二、实现步骤2.1 在配置类中添加权限注解的支持2.2 创建Controller类2.3 Us

Python中如何控制小数点精度与对齐方式

《Python中如何控制小数点精度与对齐方式》在Python编程中,数据输出格式化是一个常见的需求,尤其是在涉及到小数点精度和对齐方式时,下面小编就来为大家介绍一下如何在Python中实现这些功能吧... 目录一、控制小数点精度1. 使用 round() 函数2. 使用字符串格式化二、控制对齐方式1. 使用