using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; using SmartX; using ITC81DB.DialogForms; using ITC81DB.Forms; using ITC81DB_ImageDll; namespace ITC81DB.Controls { public partial class ControlCenterSystemJudgmentAuto : UserControl { #region Field private FormMenu m_ParentForm; private DataStore.Step3 WizardStep; #endregion #region Property public FormMenu ParentForm { get { return this.m_ParentForm; } private set { this.m_ParentForm = value; } } #endregion #region Constructor public ControlCenterSystemJudgmentAuto(FormMenu parent) { InitializeComponent(); this.ParentForm = parent; this.InitializeDesign(); } #endregion #region Method public void InitializeDesign() { Class1 images = new Class1(); if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.English) { this.smartGroupBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.engBackgroundJudgment_Auto)); } else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese) { this.smartGroupBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.chnBackgroundJudgment_Auto)); } else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Czech) { } else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian) { this.smartGroupBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.rusBackgroundJudgment_Auto)); } else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German) { this.smartGroupBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.gerBackgroundJudgment_Auto)); } else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Spanish) { this.smartGroupBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.engBackgroundJudgment_Auto)); } else { this.smartGroupBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.korBackgroundJudgment_Auto)); } } private void ChangeStep(DataStore.Step3 step) { Class1 images = new Class1(); this.WizardStep = step; switch (step) { case DataStore.Step3.Step1: this.pictureBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.AutoJudgmentImage1)); if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.English) this.labelHelp.Text = "After entering the speed (Hz), press the [→] button."; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese) this.labelHelp.Text = "输入速度(Hz)后,按[→]按钮。"; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Czech) this.labelHelp.Text = "Po zadání rychlosti(Hz) stiskněte tlačítko[→]."; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian) this.labelHelp.Text = "После ввода скорости(Hz) нажмите кнопку [→]."; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German) this.labelHelp.Text = "Drücken Sie nach Eingabe der Geschwindigkeit(Hz) die Taste [→]."; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Spanish) this.labelHelp.Text = "Después de ingresar la velocidad (Hz), presione el botón [→]."; else this.labelHelp.Text = "속도(Hz)를 입력한 후 [→] 버튼을 눌러주십시오."; this.buttonNext.Enabled = true; this.labelFeedSpeed.Enabled = true; this.labelFeedSpeed.ForeColor = Color.White; this.labelProductLength.Enabled = false; this.labelProductLength.ForeColor = Color.Gray; break; case DataStore.Step3.Step2: this.pictureBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.AutoJudgmentImage2)); if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.English) this.labelHelp.Text = "After entering the product length (mm), press the [→] button."; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese) this.labelHelp.Text = "输入产品长度(mm)后,按[→]按钮。"; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Czech) this.labelHelp.Text = "Po zadání délky produktu(mm) stiskněte tlačítko [→]."; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian) this.labelHelp.Text = "После ввода длины продукта (мм) нажмите кнопку [→]."; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German) this.labelHelp.Text = "Drücken Sie nach Eingabe der Produktlänge(mm) die Taste [→]."; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Spanish) this.labelHelp.Text = "Después de ingresar la longitud del producto (mm), presione el botón [→]."; else this.labelHelp.Text = "제품 길이(mm)를 입력한 후 [→] 버튼을 눌러주십시오."; this.labelFeedSpeed.Enabled = false; this.labelFeedSpeed.ForeColor = Color.Gray; this.labelProductLength.Enabled = true; this.labelProductLength.ForeColor = Color.White; break; case DataStore.Step3.Step3: this.pictureBox1.Image = new Bitmap(images.GetImage(Class1.ButtonImages.AutoJudgmentImage3)); if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.English) this.labelHelp.Text = "After pushing the operation button, pass the product."; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Chinese) this.labelHelp.Text = "按下操作按钮后,通过产品。"; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Czech) this.labelHelp.Text = "Po stisknutí ovládacího tlačítka produkt předejte."; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Russian) this.labelHelp.Text = "После нажатия кнопки операции, передайте продукт."; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.German) this.labelHelp.Text = "Übergeben Sie das Produkt, nachdem Sie die Bedientaste gedrückt haben."; else if (this.ParentForm.ParentForm.SystemConfig1.Language == DataStore.LanguageID.Spanish) this.labelHelp.Text = "Después de presionar el botón de Operación, pase el producto."; else this.labelHelp.Text = "운전 버튼을 누른 후, 제품을 통과시켜 주십시오."; this.buttonNext.Enabled = false; this.labelFeedSpeed.Enabled = false; this.labelFeedSpeed.ForeColor = Color.Gray; this.labelProductLength.Enabled = false; this.labelProductLength.ForeColor = Color.Gray; break; default: break; } } public void CaculateJudgmentData(int sensorDetectingTime) { double time2; // 시간2 : (컨베이어 길이 - 제품길이) / 속도 double time3; double speed; // 이송속도2 : 제품길이 / 시간1 if (this.WizardStep == DataStore.Step3.Step3) { this.labelSensingTime.Text = sensorDetectingTime.ToString(); SmartSplash splash = new SmartSplash(); splash.CenterPosition = true; splash.AnimationInterval = 200; splash.LoadingImagePathname = "SmartLoading4"; splash.Start(); // 이송속도2 = 제품길이 / 시간1 speed = Convert.ToDouble(this.ParentForm.ParentForm.CurrentJudgmentSetItem.ProductLength) / Convert.ToDouble(sensorDetectingTime); //speed2 = Math.Round(speed + 0.0005, 3) * 1000; //this.labelFeedSpeed2.Text = speed2.ToString(); this.ParentForm.CenterSystemJudgmentManual.DisplaySpeedmmin(Math.Round(speed * 60, 2).ToString()); //this.labelFeedSpeedUnitmmin.Text = Math.Round(speed * 60, 2).ToString(); // 판정지연 = 컨베어 길이/속도 = 시간1 + 시간2(=(컨베어 길이-제품길이) / 속도) time2 = Convert.ToDouble(this.ParentForm.ParentForm.SystemConfig2.ConveyorLength - this.ParentForm.ParentForm.CurrentJudgmentSetItem.ProductLength) / speed; time2 = Math.Floor(time2); this.ParentForm.ParentForm.CurrentJudgmentSetItem.JudgmentDelayTime = sensorDetectingTime + Convert.ToInt32(time2); // 이중지연 = time1 + 150 if (this.ParentForm.ParentForm.CurrentJudgmentSetItem.JudgmentDelayTime < sensorDetectingTime + 150) this.ParentForm.ParentForm.CurrentJudgmentSetItem.DoubleDelayTime = this.ParentForm.ParentForm.CurrentJudgmentSetItem.JudgmentDelayTime - 50; else this.ParentForm.ParentForm.CurrentJudgmentSetItem.DoubleDelayTime = sensorDetectingTime + 150; // 선별기 지연시간 = (선별점거리 - 제품길이) + 제품길이 X 1/3 / 속도 //time3 = Convert.ToDouble(this.ParentForm.ParentForm.SystemConfig2.SortingPointLength // - (this.ParentForm.ParentForm.CurrentJudgmentSetItem.ProductLength * 2 / 3)) / speed; //if (time3 < 0) // time3 = 0.0; //else // time3 = Math.Floor(time3); //this.ParentForm.ParentForm.CurrentJudgmentSetItem.Sorter1DelayTime = Convert.ToInt32(time3); //this.ParentForm.ParentForm.CurrentJudgmentSetItem.Sorter2DelayTime = Convert.ToInt32(time3); //this.labelSorterDelayTime.Text = Convert.ToInt32(time3).ToString(); this.ParentForm.ParentForm.SaveJudgmentSetFile(this.ParentForm.ParentForm.CurrentJudgmentSetItem, this.ParentForm.ParentForm.SystemConfig1.ProductNumber - 1); this.ParentForm.ParentForm.TransferProductParameter(this.ParentForm.ParentForm.SystemConfig1.ProductNumber); splash.Finish(); } } public void DisplayRefresh(SystemStatus status) { this.ParentForm.ParentForm.CurrentSystemStatus.CurrentDisplay = DataStore.DisplayStore.SystemJudgmentAuto; this.labelFeedSpeed.Text = this.ParentForm.ParentForm.CurrentJudgmentSetItem.FeedSpeed1.ToString(); this.labelProductLength.Text = this.ParentForm.ParentForm.CurrentJudgmentSetItem.ProductLength.ToString(); this.labelSensingTime.Text = "0"; if (this.ParentForm != null) this.ParentForm.UpdateEquipmentStatusDisplay(this.ParentForm.ParentForm.CurrentSystemStatus.Equipment); this.ChangeStep(DataStore.Step3.Step1); } #endregion #region Event Handler private void labelFeedSpeed_Click(object sender, EventArgs e) { string value = "", message = ""; DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelFeedSpeed.Text, 4, 0, false, this.ParentForm.ParentForm.SystemConfig1.Language); if (myKeyPad.ShowDialog() == DialogResult.OK) { if (myKeyPad.doubleValue < 1 || myKeyPad.doubleValue > 120) { // 입력범위를 확인하세요 message = "1~120"; DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig1.Language, message); myMsg.ShowDialog(); } else { this.labelFeedSpeed.Text = myKeyPad.StringValue; this.ParentForm.ParentForm.CurrentJudgmentSetItem.FeedSpeed1 = myKeyPad.IntValue; value = Helper.StringZeroFillDigits4(myKeyPad.StringValue); this.ParentForm.ParentForm.TransferDataStream(CommunicationCommand.Write, CommunicationID.MainBoard, CommunicationAddress.FeedSpeed, value); this.ParentForm.ParentForm.SaveJudgmentSetFile(this.ParentForm.ParentForm.CurrentJudgmentSetItem, this.ParentForm.ParentForm.SystemConfig1.ProductNumber - 1); } } } private void labelProductLength_Click(object sender, EventArgs e) { string value = "", message = ""; DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelProductLength.Text, 4, 0, false, this.ParentForm.ParentForm.SystemConfig1.Language); if (myKeyPad.ShowDialog() == DialogResult.OK) { if (myKeyPad.IntValue < 1) // || myKeyPad.IntValue > int.Parse(this.labelConveyorLength.Text)) { // 입력범위를 확인하세요 message = "1~"; // + this.labelConveyorLength.Text; DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig1.Language, message); myMsg.ShowDialog(); } else { this.labelProductLength.Text = myKeyPad.StringValue; this.ParentForm.ParentForm.CurrentJudgmentSetItem.ProductLength = myKeyPad.IntValue; this.ParentForm.ParentForm.SaveJudgmentSetFile(this.ParentForm.ParentForm.CurrentJudgmentSetItem, this.ParentForm.ParentForm.SystemConfig1.ProductNumber - 1); } } } private void buttonNext_Click(object sender, EventArgs e) { switch (this.WizardStep) { case DataStore.Step3.Step1: this.ChangeStep(DataStore.Step3.Step2); break; case DataStore.Step3.Step2: this.ChangeStep(DataStore.Step3.Step3); break; default: break; } } private void buttonExit_Click(object sender, EventArgs e) { this.ParentForm.CenterSystemJudgmentManual.DisplayRefresh(this.ParentForm.ParentForm.CurrentSystemStatus); this.ParentForm.CenterSystemJudgmentManual.BringToFront(); } #endregion } }