public void HandleSecsMessage(SecsMessage secsMessage) { PrimaryMessage = secsMessage; switch (PrimaryMessage.GetSFString()) { case "S10F1": // operator sends textual var strs = GetTestMsg(); if (strs != null) { eqtTerminalService.ReceiveTestMessage(strs); } PrimaryMessage.S10F2(0); break; case "S10F5": // host sends muiti-block message strs = GetTestMsg(); if (strs != null) { eqtTerminalService.ReceiveTestMessage(strs); } PrimaryMessage.S10F6(0); break; default: break; } }
///// <summary> ///// 保存Equipment当前基本信息 ///// </summary> //public EquipmentBaseInfo EquipmentBaseInfo { get => _equipmentBaseInfo; set => _equipmentBaseInfo = value; } ///// <summary> ///// 保存设备当前的状态信息 ///// </summary> //public EquipmentStatus EquipmentStatusInfo { get => _equipmentStatusInfo; set => _equipmentStatusInfo = value; } #endregion #region message handler methods /// <summary> /// handle online/offline request by host /// </summary> public void HandleSecsMessage(SecsMessage secsMessage) { PrimaryMessage = secsMessage; switch (PrimaryMessage.GetSFString()) { case "S1F1": // are you there request SubScenarioName = Resource.Intialize_Scenario_1; secsMessage.S1F2(this._equipmentBaseInfo.MDLN ?? String.Empty, this._equipmentBaseInfo.SOFTREV ?? String.Empty); // 作为unit端, 只考虑online的选项 break; case "S1F13": // estublish communication request handleS1F13(); break; case "S1F17": // request online by host handleS1F17(); break; case "S1F15": // request offline by host SubScenarioName = Resource.Intialize_Scenario_4; switch (this._equipmentStatusInfo.CRST) { case CRST.O: //send equipment denies requests S1F0(); break; case CRST.L: case CRST.R: // send OFF_LINE Acknowledge // 0: Accepted, 1: Not Accepted secsMessage.S1F16("0"); // send Control State Change(OFF_LINE) launchControlStateProcess((int)CRST.O); break; default: break; } break; case "S2F17": // Date and Time Request string dataTime = DateTime.Now.ToString("yyyyMMddHHmmss"); secsMessage.S2F18(dataTime); break; case "S6F11": // Event Report Send (ERS) secsMessage.S6F12("0"); break; default: break; } }
public void HandleSecsMessage(SecsMessage secsMessage) { PrimaryMessage = secsMessage; switch (PrimaryMessage.GetSFString()) { case "S2F41": // host command int rcmd = PrimaryMessage.GetCommandValue(); handleRCMDMessage(rcmd); break; default: break; } }
public void HandleSecsMessage(SecsMessage secsMessage) { PrimaryMessage = secsMessage; switch (PrimaryMessage.GetSFString()) { case "S6F3": //Discrete Variable Data Send SubScenarioName = Resource.DCS_Discrete_Variable_Data_Send; PrimaryMessage.S6F4(0); break; case "S2F23": // trace data initialization request SubScenarioName = Resource.DCS_Host_Initiates_Trace_Report; PrimaryMessage.S2F24("0"); TraceDataInitializationRequest traceDataInitializationRequest = new TraceDataInitializationRequest(); traceDataInitializationRequest.Parse(PrimaryMessage.SecsItem); dataCollection.TraceDataInitializationRequestEvent(traceDataInitializationRequest); break; case "S6F1": break; case "S1F3": // Selected Equipment Status Request SubScenarioName = Resource.DCS_Host_request_value_status; handleS1F3(); break; case "S1F5": // Request formatted status SubScenarioName = Resource.DCS_Host_request_Formatted_status; handleS1F5(); break; case "S2F13": // equipment constants request SubScenarioName = Resource.DCS_Equipment_Constants_Request; handleS2F13(); break; case "S2F15": // X break; case "S2F37": // host request enable or disable events SubScenarioName = Resource.DCS_Host_Requests_Enable_Disable_Event; handleS2F37(); break; default: break; } }
public void HandleSecsMessage(SecsMessage secsMessage) { PrimaryMessage = secsMessage; switch (secsMessage.GetSFString()) { case "S7F19": // current EPPD request SubScenarioName = Resource.RMS_Host_Attempts_To_Recipe_Mnt; handleS7F19Message(); break; case "S7F25": // formatted process program request SubScenarioName = Resource.RMS_Host_Requests_formatted_Process_program; handleS7F25Message(); break; default: break; } }
public void HandleSecsMessage(SecsMessage secsMessage) { switch (secsMessage.GetSFString()) { case "S2F17": // equipment requests host time // 在initialize scenario中有处理此消息, 所以这里不再重复 break; case "S2F31": // host instructs equipment to set time SubScenarioName = Resource.CLKS_Host_Instructs_Time; string dateTimeStr = secsMessage.SecsItem.GetString(); if (!String.IsNullOrEmpty(dateTimeStr)) { clock.UpdateDateTime(dateTimeStr); secsMessage.S2F32("0"); } break; default: break; } }
public void HandleSecsMessage(SecsMessage secsMessage) { PrimaryMessage = secsMessage; switch (secsMessage.GetSFString()) { case "S5F3": // enable or disable alarm SubScenarioName = Resource.AMS_Enable_Disable_Alarm; AlarmEnableDisableRequest alarmEnableDisableJob = new AlarmEnableDisableRequest(); alarmEnableDisableJob.Parse(PrimaryMessage.SecsItem); AMSCallBack.AlarmEnableDisableRequestEvent(alarmEnableDisableJob); secsMessage.S5F4(0); break; case "S5F103": // current alarm set list request SubScenarioName = Resource.AMS_Alarm_List_Request; CurrentAlarmListRequest currentAlarmListJob = new CurrentAlarmListRequest(); currentAlarmListJob.Parse(PrimaryMessage.SecsItem); AMSCallBack.CurrentAlarmListRequestEvent(currentAlarmListJob, true); break; default: break; } }