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;

}

}

相关推荐
threelab7 小时前
Three.js UV 图像变换效果 | 三维可视化 / AI 提示词
javascript·人工智能·uv
MATLAB代码顾问8 小时前
Python实现蜂群算法优化TSP问题
开发语言·python·算法
之歆8 小时前
DAY08_CSS浮动与行内块布局实战指南(下)
前端·css
代码飞天8 小时前
机器学习算法和函数整理——助力快速查阅
人工智能·算法·机器学习
jiushiapwojdap8 小时前
LU分解法求解线性方程组Matlab实现
数据结构·其他·算法·matlab
yqcoder8 小时前
CSS Position 全解析:5 种定位模式详解
前端·css
笨笨饿8 小时前
69_如何给自己手搓一个串口
linux·c语言·网络·单片机·嵌入式硬件·算法·个人开发
Rhi6379 小时前
从零搭建项目:React 19 + Vite 8 + Tailwind CSS v4 实战配置
前端
竹林8189 小时前
用Viem替代ethers.js:从一次签名失败到完整迁移的实战记录
前端·javascript
之歆9 小时前
DAY08_CSS浮动与行内块布局实战指南(上)
前端·css