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

c#中s7协议大小端转换

s7协议中,有时候正常读取,值会变成一个很奇怪的数,其实就是遇到了plc大小端转换的问题。
有两种情况会出现大小端转换的问题:
第一种,plc的数据类型为dword时,拆分为32位bool型数据后,第0位到第7位bool变量应该是实际地址3.0到3.7,第8位到第15位bool变量应该是实际地址2.0到2.7,以此类推;是word类型时,拆分为16位bool型数据后,第0位到第7位bool变量应该是实际地址1.0到1.7,第8位到第15位bool变量应该是实际地址0.0到0.7(电气工程师没有做大小端的翻转的话,上位机工程师就得手动做咯)。
第二种是,遇到s7-200smart的情况(西门子S7-200 SMART PLC遵循大端字节序,c#是小端字节序),写入的值是vd区、数据类型是real型的话(c#转换是float),要做好先手动翻转成大端字节序,再写入plc。
下面是我自己封装的一个写入vd区real型变量的方法:
public void WriteVDFloat(int address, float value)
{
//logger.Debug($"WriteVD(address:{address}, value:{value})--->>>");

        try{// 将浮点数转换为字节数组byte[] bytes = BitConverter.GetBytes(value);// 西门子PLC使用大端序,需要反转字节数组if (BitConverter.IsLittleEndian){Array.Reverse(bytes);}// 将字节数组转换为整数(因为Write方法需要int参数)int intValue = BitConverter.ToInt32(bytes, 0);// 使用Write方法写入plcClient.Write(DataType.DataBlock, 1, address, VarType.Real, intValue);// 需要根据plc不同修改//logger.Debug($"WriteVD(address:{address}, value:{value})---<<<");}catch (Exception e){//logger.Error($"WriteVD异常:{e}");throw; // 重新抛出异常,让调用方处理}}
http://www.jsqmd.com/news/739310/

相关文章:

  • 终极游戏回放管理指南:3步配置你的英雄联盟比赛复盘系统
  • 告别风扇噪音烦恼:FanControl免费风扇控制软件完全指南
  • 斜率与切线:微积分基础概念解析与应用
  • 保姆级教程:用CellOracle 0.10.13从单细胞数据构建基因调控网络(附完整代码)
  • 快速提取Live2D模型:UnityLive2DExtractor新手完全指南
  • StarRailCopilot:如何让《崩坏:星穹铁道》的重复任务自动完成?
  • MAA游戏助手:告别枯燥日常,开启明日方舟自动化新时代
  • **2026年5月PMP价钱排名:五大费用对比与性价比避坑评价** - 众智商学院课程中心
  • 【flutter for open harmony】第三方库Flutter 鸿蒙版 药品提醒 实战指南(适配 1.0.0)✨
  • WorkshopDL实战指南:742款游戏模组下载利器,告别Steam客户端依赖
  • SimKO方法优化LLM推理多样性:解决概率过度集中问题
  • 数据清洗与特征工程实战:8本必读专业书籍推荐
  • 基于MCP协议的AI购物代理:连接大模型与电商数据的实战指南
  • 别再死记硬背二分模板了!从蓝桥杯‘抓娃娃‘真题看如何灵活设计check函数
  • 中兴E1630拆机实测:MT7916芯片功耗与信号表现如何?附保姆级刷机/改桥接教程
  • 5分钟掌握暗黑破坏神2存档编辑器:单机玩家的终极解决方案
  • 解决英雄联盟客户端工具化难题:League-Toolkit架构解析与技术实现
  • AI辅助数学研究:VML系统平衡态定理的形式化证明
  • 终极解决方案:KeyboardChatterBlocker机械键盘按键防抖完全指南
  • 智能代码生成与审查:IQuest-Coder-V1框架解析
  • 从红绿灯到前车碰撞:拆解一个完整的车联网(C-V2X)仿真场景,理解5G Uu口和PC5直连怎么选
  • TranslucentTB:3步让你的Windows任务栏焕然一新
  • 抖音音频批量下载终极指南:开源工具如何15分钟搞定100首热门音乐
  • 国密SM2/SM3 Python SDK开源项目对比评测(含国密局GM/T 0003-2021/0004-2021标准符合度打分)
  • 别只盯着YOLO的模型结构了,聊聊训练批次(batch)那些容易被忽略的“副作用”
  • 3步掌握Unity卡通渲染:LilToon着色器终极入门指南
  • 如何快速构建你的金融数据平台:AKShare完整入门指南
  • Taotoken 模型广场如何帮助你为不同任务选择合适的大模型
  • 大语言模型对抗性提示攻击与防御技术解析
  • SQL视图查询结果正确性校验_对比物理表数据与视图