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;

}

}

相关推荐
凌波粒17 小时前
CSS基础详解(2)--Grid网格布局详解
前端·css·css3·html5
飛67917 小时前
Flutter 状态管理深度实战:从零封装轻量级响应式状态管理器,告别 Provider/Bloc 的臃肿与复杂
前端·javascript·flutter
汝生淮南吾在北17 小时前
SpringBoot3+Vue3新闻动态网站
前端·javascript·vue.js·spring boot·毕业设计·毕设
LYFlied17 小时前
Vue Router 监听地址变化的核心逻辑示意
前端·javascript·vue.js·vue router·前端路由·源码理解
黑色的山岗在沉睡17 小时前
滤波算法数学前置——线性化
线性代数·算法
t1987512817 小时前
火电机组热经济性分析MATLAB程序实现
人工智能·算法·matlab
web守墓人17 小时前
【前端】rspack和rsbuild的关系
前端
韩曙亮17 小时前
【Web APIs】鼠标经过、离开事件 ( mouseover、mouseout 事件 | mouseenter、mouseleave 事件 )
前端·javascript·web apis·mouseover·mouseout·mouseenter·mouseleave
brzhang17 小时前
MCP A2A Skills 这三个词搞懂了 再去写你的智能体
前端·后端·架构
灰灰勇闯IT17 小时前
RN原生模块交互:打通JS与原生的桥梁
开发语言·javascript·交互