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;

}

}

相关推荐
wfbcg10 分钟前
每日算法练习:LeetCode 209. 长度最小的子数组 ✅
算法·leetcode·职场和发展
之歆13 分钟前
前端存储方案对比:Cookie-Session-LocalStorage-IndexedDB
前端
哟哟耶耶15 分钟前
vue3-单文件组件css功能(:deep,:slotted,:global,useCssModule,v-bind)
前端·javascript·css
是罐装可乐17 分钟前
深入理解“句柄(Handle)“:从浏览器安全到文件系统访问
前端·javascript·安全
_日拱一卒20 分钟前
LeetCode:除了自身以外数组的乘积
数据结构·算法·leetcode
计算机安禾24 分钟前
【数据结构与算法】第36篇:排序大总结:稳定性、时间复杂度与适用场景
c语言·数据结构·c++·算法·链表·线性回归·visual studio
SatVision炼金士30 分钟前
合成孔径雷达干涉测量(InSAR)沉降监测算法体系
算法
wuweijianlove34 分钟前
算法稳定性与数值误差传播研究的技术2
算法
华科易迅39 分钟前
Vue如何集成封装Axios
前端·javascript·vue.js
康一夏39 分钟前
Next.js 13变化有多大?
前端·react·nextjs