/// <summary> /// Obtiene datos del Modulo MEPLATE. /// </summary> /// <param name="Data"> /// Variable dinamica donde guardar los resultados: \n /// MEPResultados (Resultados) resultados del procesamiento \n /// MEPInformacion (Informacion) Informacion sobre el procesamiento \n /// MEPVelocidad (double) Velocidad de Avance de la chapa \n /// MEPOPConnected (bool) Estado de conexion del Ordenador de Proceso \n /// MEPTarjetaConnected (bool) Estado de conexion de la tarjeta de adquisicion \n /// </param> /// <param name="parameters"> /// "Resultados" - Obtiene Los ultimos resultados medidos por el MEPLATE \n /// "Informacion" - Obtiene la informacion de procesamiento del MEPLATE \n /// "Estado" - Obtiene la informacion de conexiones y velocidad del MEPLATE \n /// </param> public override void GetData(ref dynamic Data, params string[] parameters) { Data.MEPReturnedData = parameters; try { foreach (string parameter in parameters) { switch (parameter) { case "Resultados": Data.MEPResultados = (Resultados)((SharedData <Resultados>)_DispatcherSharedMemory["Resultados"]).Get(0); break; case "Estado": Tarjeta tar = ((Tarjeta)((SharedData <Tarjeta>)_DispatcherSharedMemory["Velocidad"]).Get(0)); if (tar != null) { Data.MEPVelocidad = tar.Velocidad; } else { Data.MEPVelocidad = 0.0; } ((ComunicacionOP)_DispatcherThreads["ComunicacionOP"])._server.GetData(ref Data, "EstadoSocket"); Data.MEPOPConnected = Data.COMSocketDatosConnected; ((ComunicacionTarjeta)_DispatcherThreads["ComunicacionTarjeta"])._server.GetData(ref Data, "EstadoSocket"); Data.MEPTarjetaConnected = Data.COMSocketDatosConnected; Data.MEPMidiendo = ((HiloAdquisicion)_DispatcherThreads["Adquisicion"])._Midiendo; break; case "Informacion": Data.MEPInformacion = (Informacion)((SharedData <Informacion>)_DispatcherSharedMemory["Informacion"]).Get(0); break; case "Meplaca": Data.MEPMeplaca = ((HiloAdquisicion)_DispatcherThreads["Adquisicion"])._Meplaca; break; case "ComunicacionOP": Data.MEPID = (PlateID)((SharedData <PlateID>)_DispatcherSharedMemory["IDChapa"]).Get(0); break; default: Data.MEPErrors = "Wrong Query"; break; } } Data.MEPErrors = ""; } catch (Exception ex) { Data.MEPErrors = ex.Message; //Ademas se lanzaria la excepcion oportuna } }
public override void FunctionToExecuteByThread() { while (((SharedData <Byte[]>)SharedMemory["SocketReader"]).Elementos > 0) { Byte[] val = (Byte[])((SharedData <Byte[]>)SharedMemory["SocketReader"]).Pop(); short messageid = BitConverter.ToInt16(val, 16); // Trace.WriteLine("New message arrived: MessageID->" + messageid); switch (messageid) { //case 21: // _AuxLogCom.LOGTXTMessage = "ADDA : Recibido Inicio Chapa con velocidad : " + (((Tarjeta)(((SharedData<Tarjeta>)_SharedMemory["Velocidad"]).Get(0))).Velocidad / 100.0).ToString() + " m/s"; // _Padre.LogCom.SetData(ref _AuxLogCom, "Informacion"); // if (_Midiendo == false) // { // Events["ComenzarMedida"].Set(); // ((ComunicacionOP)((Meplate)_Padre)._DispatcherThreads["ComunicacionOP"]).SendMessage("21"); // _AuxLogCom.LOGTXTMessage = "ADDA : Empieza a medir "; // _Padre.LogCom.SetData(ref _AuxLogCom, "Informacion"); // } // _Midiendo = true; // break; //case 22: // ((ComunicacionOP)((Meplate)_Padre)._DispatcherThreads["ComunicacionOP"]).SendMessage("22"); // break; //case 23: // _AuxLogCom.LOGTXTMessage = "ADDA : Recibido Fin Chapa con velocidad : " + (((Tarjeta)(((SharedData<Tarjeta>)_SharedMemory["Velocidad"]).Get(0))).Velocidad / 100.0).ToString() + " m/s"; // _Padre.LogCom.SetData(ref _AuxLogCom, "Informacion"); // if (_Midiendo == true) // { // Events["FinalizarMedida"].Set(); // ((ComunicacionOP)((Meplate)_Padre)._DispatcherThreads["ComunicacionOP"]).SendMessage("23"); // _AuxLogCom.LOGTXTMessage = "ADDA : Acaba de medir "; // _Padre.LogCom.SetData(ref _AuxLogCom, "Informacion"); // } // _Midiendo = false; // break; //case 24: // if (_Midiendo == true) // { // Events["AbortarMedida"].Set(); // ((ComunicacionOP)((Meplate)_Padre)._DispatcherThreads["ComunicacionOP"]).SendMessage("24"); // _AuxLogCom.LOGTXTMessage = "ADDA : Recibido Abortar Chapa (Sale chapa con velocidad negativa) con velocidad : " + (((Tarjeta)(((SharedData<Tarjeta>)_SharedMemory["Velocidad"]).Get(0))).Velocidad / 100.0).ToString() + " m/s"; // _Padre.LogCom.SetData(ref _AuxLogCom, "Informacion"); // } // _Midiendo = false; // break; case 26: Tarjeta valor = new Tarjeta((double)BitConverter.ToInt16(val, 18), (double)BitConverter.ToInt16(val, 20)); ((SharedData <Tarjeta>)SharedMemory["Velocidad"]).Set(0, valor); break; } } }
private double LeerVelocidad() { Tarjeta tarjetatemp = (Tarjeta)((SharedData <Tarjeta>)SharedMemory["Velocidad"]).Get(0); if (tarjetatemp != null) { return(tarjetatemp.Velocidad * 10); // mm/min } else { return(60); } }//Debe leer la velocidad de la tarjeta de adquisicion o por mensaje