//Motor de la aplicaciĆ³n Estaciones, Bandejas, Moldes, Operaciones, Ordenes de fabricaciĆ³n y piezas private void TimerComunicationStatus_Tick(object sender, EventArgs e) { TimerS7ComunicationStatus.Stop(); foreach (var station in AppGlobal.Stations) { if (station.Bussy) { continue; } if (!S7.GetBitAt(AppGlobal.Snap7Server.Read(station.StatusChangeS7), 0, 0)) { continue; } var data = AppGlobal.Snap7Server.Read(station.DataAddressS7); station.DataContent = Common.GetDataContent(data); var pallet = PalletController.GetByCode(station.DataContent.PalletCode); var operation = OperationController.GetByCode(station.DataContent.OperationCode); var mold = MoldRepository.GetByCode(station.DataContent.MoldCode); station.ActiveOperation = operation; if (operation.InitPart || operation.EndPart) { station.Bussy = true; Thread AskForReferencePartThread = new Thread(new ThreadStart(() => AskForReferencePart(station, pallet, operation, mold))); AskForReferencePartThread.Start(); } else { OperationRegisterController.Register(station, pallet, operation, mold, "Pieza 1"); AppGlobal.Snap7Server.WriteWord(station.StatusChangeS7Ack, (ushort)operation.Code); } } TimerS7ComunicationStatus.Start(); }