C#通过HslCommunication连接西门子PLC1200,并防止数据跳动的通用方法

textEdit30.Text = ReadValue<int>(() => plc.ReadInt32("DB57.DBD16"), ref _last_num).ToString();

// 通用读取方法(支持所有值类型)

private T ReadValue<T>(Func<OperateResult<T>> readFunc, ref T lastValue) where T : struct

{

try

{

OperateResult<T> result = readFunc();

if (result != null && result.IsSuccess)

{

lastValue = result.Content;

return result.Content;

}

return lastValue;

}

catch

{

return lastValue;

}

}

相关推荐
放羊郎20 小时前
机器人自主导航方案概述
人工智能·算法·机器人·slam·建图
冷徹 .20 小时前
Edu144 CD
c++·算法
Want59520 小时前
HTML礼物圣诞树
前端·html
REDcker20 小时前
Cursor Chrome DevTools MCP 配置指南 for Windows
前端·windows·chrome devtools
张可爱21 小时前
20251115复盘记录:让分页乖乖“坐好”+ 卡片统一渐变描边与圆角
前端
一水鉴天21 小时前
整体设计 全面梳理复盘 之37 元级自动化引擎三体项目(Designer/Master/Transformer)划分确定 + 自用规划工具(增强版)
开发语言·算法·transformer·公共逻辑
Jonathan Star21 小时前
基于 **Three.js** 开发的 3D 炮弹发射特效系统
javascript·数码相机·3d
Cache技术分享21 小时前
241. Java 集合 - 使用 Collections 工厂类处理集合
前端·后端
Lear21 小时前
解决Flex布局中overflow:hidden失效
前端
Heo21 小时前
原型理解从入门到精通
前端·javascript·后端