/// <summary> /// 构造方法 /// </summary> /// <param name="webAPIUrl">WebAPI地址</param> /// <param name="contentType">报文类型</param> /// <param name="clientID">渠道标识</param> /// <param name="logEntity">交易日志实体对象</param> public CustomWebAPICall( string webAPIUrl, ContentType contentType, string clientID, DCSGatewayLogEntity logEntity) : this(logEntity) { this.webAPIUrl = webAPIUrl; this.contentType = contentType; this.clientID = clientID; }
/// <summary> /// 构造方法 /// </summary> /// <param name="webAPIUrl">WebAPI地址</param> /// <param name="contentType">报文类型</param> /// <param name="clientID">渠道标识</param> /// <param name="logEntity">交易日志实体对象</param> public EquipFailAndonCall( string webAPIUrl, ContentType contentType, string clientID, DCSGatewayLogEntity logEntity) : base(webAPIUrl, contentType, clientID, logEntity) { moduleType = ModuleType.Exchange; ExCode = "IRAP_DCS_EquipFailAndonCall"; }
/// <summary> /// 构造方法 /// </summary> /// <param name="webAPIUrl">WebAPI地址</param> /// <param name="contentType">报文类型</param> /// <param name="clientID">渠道标识</param> /// <param name="logEntity">交易日志实体对象</param> public SNRequest( string webAPIUrl, ContentType contentType, string clientID, DCSGatewayLogEntity logEntity) : base(webAPIUrl, contentType, clientID, logEntity) { moduleType = ModuleType.Exchange; ExCode = "IRAP_DCS_SNRequest"; }
/// <summary> /// 构造方法 /// </summary> /// <param name="webAPIUrl">WebAPI地址</param> /// <param name="contentType">报文类型</param> /// <param name="clientID">渠道标识</param> /// <param name="logEntity">交易日志实体对象</param> public StagnationWarnning( string webAPIUrl, ContentType contentType, string clientID, DCSGatewayLogEntity logEntity) : base(webAPIUrl, contentType, clientID, logEntity) { moduleType = ModuleType.Exchange; ExCode = "IRAP_DCS_StagnationWarnning"; }
/// <summary> /// 构造方法 /// </summary> /// <param name="webAPIUrl">WebAPI地址</param> /// <param name="contentType">报文类型</param> /// <param name="clientID">渠道标识</param> /// <param name="logEntity">交易日志实体对象</param> public ContainerNumberBinding( string webAPIUrl, ContentType contentType, string clientID, DCSGatewayLogEntity logEntity) : base(webAPIUrl, contentType, clientID, logEntity) { moduleType = ModuleType.Exchange; ExCode = "IRAP_DCS_ContainerNumberBinding"; }
/// <summary> /// 构造方法 /// </summary> /// <param name="webAPIUrl">WebAPI地址</param> /// <param name="contentType">报文类型</param> /// <param name="clientID">渠道标识</param> /// <param name="logEntity">交易日志实体对象</param> public ShortageMaterialCheck( string webAPIUrl, ContentType contentType, string clientID, DCSGatewayLogEntity logEntity) : base(webAPIUrl, contentType, clientID, logEntity) { moduleType = ModuleType.Exchange; ExCode = "IRAP_DCS_ShortageMaterialCheck"; }
/// <summary> /// 构造方法 /// </summary> /// <param name="webAPIUrl">WebAPI地址</param> /// <param name="contentType">报文类型</param> /// <param name="clientID">渠道标识</param> /// <param name="logEntity">交易日志实体对象</param> public FazitStatusCheck( string webAPIUrl, ContentType contentType, string clientID, DCSGatewayLogEntity logEntity) : base(webAPIUrl, contentType, clientID, logEntity) { moduleType = ModuleType.Exchange; ExCode = "IRAP_DCS_FazitStatusCheck"; }
/// <summary> /// 构造方法 /// </summary> /// <param name="webAPIUrl">WebAPI地址</param> /// <param name="contentType">报文类型</param> /// <param name="clientID">渠道标识</param> /// <param name="logEntity">交易日志实体对象</param> public PokaYokeFeeding( string webAPIUrl, ContentType contentType, string clientID, DCSGatewayLogEntity logEntity) : base(webAPIUrl, contentType, clientID, logEntity) { moduleType = ModuleType.Exchange; ExCode = "IRAP_DCS_PokaYokeFeeding"; }
/// <summary> /// 构造方法 /// </summary> /// <param name="webAPIUrl">WebAPI地址</param> /// <param name="contentType">报文类型</param> /// <param name="clientID">渠道标识</param> /// <param name="logEntity">交易日志实体对象</param> public OperationCycleEnd( string webAPIUrl, ContentType contentType, string clientID, DCSGatewayLogEntity logEntity) : base(webAPIUrl, contentType, clientID, logEntity) { moduleType = ModuleType.Exchange; ExCode = "IRAP_DCS_OperationCycleEnd"; }
/// <summary> /// 构造方法 /// </summary> /// <param name="webAPIUrl">WebAPI地址</param> /// <param name="contentType">报文类型</param> /// <param name="clientID">渠道标识</param> /// <param name="logEntity">交易日志实体对象</param> public GetOPCStatus( string webAPIUrl, ContentType contentType, string clientID, DCSGatewayLogEntity logEntity) : base(webAPIUrl, contentType, clientID, logEntity) { moduleType = ModuleType.Exchange; ExCode = "IRAP_DCS_GetOPCStatus"; }
/// <summary> /// 控制Tag值变化后的操作 /// </summary> /// <param name="tag">控制Tag对象</param> private void ControlTagValueChanged(CustomTag tag) { DCSGatewayLogEntity log = new DCSGatewayLogEntity(); log.TriggerTag.TagName = tag.Name; log.TriggerTag.Offset = tag.DB_Offset.ToString(); if (tag is SiemensBoolOfTag ltag) { log.TriggerTag.Offset += $".{ltag.Position}"; } Stopwatch sw = new Stopwatch(); sw.Start(); IIRAPDCSTrade trade = IRAPDCSTraderCreator .CreateInstance( tag.Name.Replace("_", ""), log); if (trade != null) { List <SiemensTag> writeTags = trade.Do(this, tag as SiemensTag); foreach (SiemensTag writeTag in writeTags) { try { specialRWConnection.WriteToPLC(DBType, DBNumber, writeTag); } catch (Exception error) { log.Errors.Add(error); _log.Error( $"写[{writeTag.Name}]的时候出错:{error.Message}", error); } } } sw.Stop(); _log.Debug($"触发信号[{tag.Name}]的执行时长:[{sw.ElapsedMilliseconds}]毫秒"); log.TotalExecutionTime = sw.ElapsedMilliseconds; try { if (log.ActionCode != "GetOPCStatus" || GlobalParams.Instance.GetOPCStatusLogRecord || log.Errors.Count > 0) { Log4MongoDB.WriteLog(log); } } catch (Exception error) { _log.Error(error.Message, error); } }
private CustomWebAPICall(DCSGatewayLogEntity logEntity) { _log = Logger.Get(GetType()); this.logEntity = logEntity; webAPIUrl = GetValueFromAppSettings("WebAPIUrl", "http://127.0.0.1:55552/"); string temp = GetValueFromAppSettings("ContentType", "json"); try { contentType = (ContentType)Enum.Parse(typeof(ContentType), temp); } catch { contentType = ContentType.json; } clientID = GetValueFromAppSettings("ClientID", "MESDeveloper"); }