9SX UPS串口SHUT通讯协议

news/2024/10/24 3:22:42/

9SX UPS通讯协议

  • SHUT通讯协议
    • 串口定义
    • 同步
    • SHUT数据帧
    • UPS Commands
      • GET REPORT command
  • SHUT通讯实例

在改造中碰到了某公司的9SX UPS串口通讯。原来的控制器采用了C语言编程。因为不想费事,向原厂家询问通讯协议。前台的小姐很骄傲的说他们不提供通讯协议了,要想通讯就要采购他们公司的硬件卡,提供通讯协议。我问他们这个国际公司还要脸吗?让我鄙视。在这里把调试的经过和大家说一下,供大家参考。

SHUT通讯协议

SHUT是Sirail HID UPS Transfer的缩写。写HID的都知道,是USB设备的定义。在这里USP厂家把设备描述用在串口通讯上,实现UPS的数据通讯。

串口定义

Default settings of a UPS SHUT serial port are :

  • Baud rate : 2400
  • 8 data bits
  • No parity
  • 1 stop bit
  • Flow control : none

同步

主机可以向UPS发送同步信息,发送同步信息是发送一个, 字符<0x16, ^V>。UPS收到同步信息在200ms之内会返回一个信息。

按照2,3,和5接线,用串口助手就可以实验这个功能。发送一个0x16的16进制数字。在串口助手上就会收到一个0x16的返回信息。

SHUT数据帧

经过同步后,开始发送数据帧,并从UPS侧接收数据帧。

帧类型数据长度Data byte D0…DnChecksum-8
1 byte1 byte1-8 bytes1 byte

帧类型:

  • 0x01 <^A> ---- 请求(从主机到UPS)
  • 0x04<^D> ---- 响应(从UPS到主机)
  • 0x05<^E> ---- 通知(UPS主动通知主机)
  • 在类型字节上+0x80表示是最后一帧。

数据长度:
在这个字节中定义帧的数据长度。如果要发送5个字节的数据,设置这个字节为0x55. 允许的长度设定值为:0x11,0x22,… , 0x88。

校验和:
对发送的数据,注意,不是全部的帧,而是数据进行异或校验。
Chk = XOR XOR … XOR

UPS Commands

GET REPORT command

FieldRequest Type 1Request Type 2Report IDReport TypeInter LSBInter MSBLenght LSBLength MSB
Data0xA10x01变量0x030x000x000x080x00

这里面数据起变化的是Report ID,对应不同的报告。UPS侧接到GET REPORT命令后返回:

Byte 0:Report ID
Byte 1…n: 数据。

这里要说明的是在发送的自己中对数据进行XOR校验,但在返回的报文中,对Byte 0… Byte n进行XOR异或校验。

SHUT通讯实例

字节号事件描述Host DataUPS Data
0主机发送同步信息,字符0x160x16
1UPS回答信息,字符0x160x16
2开始SHUT帧,发送0x01,请求帧,由于是最后的帧0x840x81
3数据长度,0x88, GET REPORT命令,8个字节0x88
4GET REPORT帧,Request Type 10xA1
5GET REPORT帧,Request Type 20x01
6GET REPORT帧,Report ID0x06
7GET REPORT帧,Report type0x03
8GET REPORT帧,Interface #,总是00x00
9GET REPORT帧,Interface #,总是00x00
10GET REPORT帧,字节长度,0x080x08
11GET REPORT帧,帧字节MSB0x00
12帧校验和0xBD
13UPS回答0x06
14UPS发送RESPONSE,最后一个字节0x840x84
15UPS发送回答数据长度0x66
15UPS剩余能量0x64
16UPS剩余时间LSB,秒为单位0x)C
17UPS剩余时间,中间字节0x7B
18UPS剩余时间,中间字节0x00
19UPS剩余时间,MSB0x00
20校验和0x15

通过查询,得到:
剩余能量:100%
剩余时间 = 0x0C + SHL(0x7B, 8) = 31500 秒

通过定时发送询问帧,就可以得到当前的剩余容量和剩余时间。


http://www.ppmy.cn/news/989981.html

相关文章

TypeScript实战篇 - TS实战:花田APP的架构

目录 TS实现花田APP的聊天Node端 整体架构 项目拆分 项目的特点 模型层 所有系统都是模型的外设 模型层的优势 TS实现花田APP的聊天Node端 整体架构 项目拆分 代号&#xff1a;huatian 5个独立的npm包 huatian/ui 花田的主项目huatian/component 花田组件库huatian/…

函数重载与引用

文章目录 一、函数重载1. 重载规则2.重载列子3.函数名修饰规则 二、引用1.本质2.特性1. 引用必须在定义时初始化2 . 一个变量可以有多个引用3 . 引用一旦引用一个实体&#xff0c;就不能引用其他实体 3.引用例子4.引用的权限5.效率比较6.指针跟引用的区别 一、函数重载 函数重…

2022年全国职业院校技能大赛高职组软件测试——自动化测试任务

任务五 自动化测试 执行自动化测试 本部分按照要求&#xff0c;执行自动化测试&#xff1b;对页面元素进行识别和定位、编写自动化测试脚本、成功执行脚本并将脚本粘贴在自动化测试报告中。 自动化测试具体要求如下&#xff1a; 第一题&#xff1a;按照以下步骤在PyCharm中…

Elasticsearch入门笔记(一)

环境搭建 Elasticsearch是搜索引擎&#xff0c;是常见的搜索工具之一。 Kibana 是一个开源的分析和可视化平台&#xff0c;旨在与 Elasticsearch 合作。Kibana 提供搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析…

无显示器设置家庭服务器树莓派4B,开启SSH,VNC,WIFI,配置内网穿透

前言 没有显示器对树莓派配置稍微有些繁琐&#xff0c;写一篇博客记录。 配置网络 以下都是在烧录好的sd卡根目录操作 创建一个ssh名字的空文件创建Wi-Fi配置&#xff0c;文件名称&#xff1a;wpa_supplicant.conf&#xff0c;内容&#xff1a; countryCN ctrl_interfaceD…

什么是Java中的Maven?

Java中的Maven&#xff0c;可以简单理解为“一个神奇的工具”&#xff0c;它可以自动帮你管理Java项目的依赖关系&#xff0c;让你不再为手动下载、配置各种库而烦恼。想象一下&#xff0c;你正在写一个Java项目&#xff0c;突然发现需要引入一个名为"第三方库"的模块…

【SLAM】A-LOAM 算法部署与测试(Win10 + VMWare + Ubuntu18.04)

基础环境 ubuntu及ROS安装&#xff0c;略&#xff1b;安装完ROS以后&#xff0c;默认已经安装好了PCL和Eigen库&#xff1b; 安装Ceres 下载Ceres源文件&#xff1a;&#xff08; Vmware没有网络&#xff0c;到下面的网址手动下载安装包 &#xff09; - https://github.com…

3ds MAX绘制摄像机动画

之前&#xff0c;我们已经绘制了山地、山间小路、以及树林&#xff1a; 这里我们添加一个自由摄像机&#xff1a;&#xff08;前视图&#xff09; 在动作窗口&#xff0c;给摄像机添加一个按路径移动的设定&#xff1a; 这样&#xff0c;我们只要把指定的路径绘制出来&#xff…