public void RemoteWrite(object value) { var server = Parent.Parent as OpcServer; Debug.Assert(server != null); try { if (server.RunMode != RunMode.Release) { throw new InvalidOperationException(GlobalId + "只能在发布模式下写入远程数据"); } if (!ReadWriteMode.HasFlag(ReadWriteMode.Write)) { throw new InvalidOperationException(GlobalId + "读写模式不具备远程数据写入权限"); } _item?.Write(value); } catch (InvalidOperationException e) { this.ErrorFailWithReason(e); } catch (Exception e) { //其他原因写入失败,表示Opc通讯故障 LocalWrite(null); this.ErrorFailWithReason(e); } }
public void Write(string name, object value) { if (this.clientHandleDict.ContainsKey(name)) { OPCAutomation.OPCItem item = opcAGroup.OPCItems.GetOPCItem(this.clientHandleDict[name].ServerHandler); item.Write(value); } }