当前位置: 首页 > news >正文

区别:Modbus RTU 和 Modbus TCP

区别:Modbus RTU 和 Modbus TCP

Modbus RTU

常用函数,如下:

//打印数组数据
static void printArray(const QString& title, qint64 dataLen, const uint8_t* data)
{QString strPrint;for (int i = 0; i < dataLen; i++){strPrint += (QString("%1 ").arg(data[i], 2, 16, QChar('0')).toUpper());}qDebug() << title + " printArray:" << strPrint;
}// 计算 Modbus RTU CRC16
static uint16_t calculateCRC(const char* data, size_t length)
{// printArray("[LightBoxCom]::calculateCRC", length, (uint8_t*)data);uint16_t crc = 0xFFFF;for (size_t i = 0; i < length; i++){crc ^= data[i];for (uint8_t j = 0; j < 8; j++){if (crc & 0x0001){crc = (crc >> 1) ^ 0xA001;}else{crc = crc >> 1;}}}return crc;
}// 拼接字节 uint16_t
static uint16_t megerBytes(uchar back, uchar front)
{return static_cast<uint16_t>(front << 8 | back);
}// 拼接字节 uint32_t
static uint32_t megerBytes(uchar back, uchar bMid, uchar fMid, uchar front)
{return static_cast<uint16_t>(front << 24 | fMid << 16 | bMid << 8 | back);
}

 

http://www.gsyq.cn/news/12463.html

相关文章:

  • python组合类型和组合可空类型
  • 数学草稿
  • vue3 + vite Cannot access ‘xxx‘ before initialization
  • 华米运动步数修改,每天自动修改并同步 微信运动/支付宝运动 步数
  • C++ placement new
  • Spring Boot接入邮箱,完成邮箱验证码
  • HyperWorks许可与网络安全
  • 研发项目管理系统哪个好?十款热门工具全面测评
  • L4 vs L7 负载均衡:彻底理解、对比与实战指南 - 实践
  • 你好 博客园!
  • 2025无人机林业行业场景解决方案
  • 实用指南:Spring Boot集群 集成Nginx配置:负载均衡+静态资源分离实战
  • 常用API biginteger和biddecimal
  • SI3933低频唤醒接收芯片完整指南:结构框图、PCB布局与选型要点芯片概述与主要特性
  • 在本地服务器创建RAID5磁盘阵列和RAID10磁盘阵列
  • RAGAS大模型评估框架
  • 新手入门需要掌握多少种大模型才行
  • docker容器怎么查看最后一些行日志
  • MAC idea 环境变量设置失效
  • Docker 配置问题
  • 【东北七大高校联合举办】第十一届机械制造技术与工程材料国际学术会议(ICMTEM 2025)
  • 技术速递|如何使用 Playwright MCP 和 GitHub Copilot 调试 Web 应用 - 指南
  • dify二开之组件调用关系
  • 马棕榈油
  • 变压器磁芯的基础知识介绍-转载
  • dify二开之项目结构分析
  • dify二次开发之数据库表设计
  • 美国股票市场数据API的完整对接指南,包含NYSE、NASDAQ等主要交易所的实时行情、历史数据、公司信息等核心功能
  • 用宜家说明书的方式了解“快速排序”
  • 深入理解 CSS 浮动:从原理到实战应用​ - space