如何确定dpConnect()中触发工作函数的数据点元素?
如何识别触发dpConnect工作函数的数据点元素
通过工作函数的默认参数获取
使用dpConnect绑定后,触发工作函数时,系统会自动将触发变化的数据点元素名称作为第一个参数传入work函数。直接在函数里接收这个参数就能确定触发源:// 定义工作函数,接收触发源DP名称 void handleDpChange(string triggeredDp) { DebugTN("触发更新的数据点: " + triggeredDp); } // 绑定多个数据点 dpConnect("handleDpChange", "Temperature.Sensor1", "Pressure.Valve2");比如当
Temperature.Sensor1值变化时,handleDpChange会接收到字符串"Temperature.Sensor1",以此明确触发源。批量绑定动态DP列表的情况
如果你用dyn_string类型的DP列表做批量绑定,逻辑完全一致:每个发生变化的DP都会单独调用work函数,并将自身名称作为参数传入,无需额外处理列表。启用answer参数时的参数顺序
当dpConnect的answer参数设为true时,work函数的第一个参数依然是触发的DP名称,后续才是返回值相关的参数,依然可以通过第一个参数识别触发源。
内容的提问来源于stack exchange,提问作者Arthur
相关产品推荐
相关产品推荐

