Пример #1
0
        /// <summary>
        /// 驗證欄位參數是否有空白值,
        /// </summary>
        /// <returns></returns>
        private bool CheckValueEmpty()
        {
            string        result    = string.Empty;
            List <string> parameter = new List <string> {
                { txtNo.Text }, { txtPassword.Text }
            };

            result = ValidateUtility.CheckParameter(parameter);
            return(ValidateUtility.DisplayMessage(result));
        }
Пример #2
0
        /// <summary>
        /// 驗證空值,[無空值]正確:true、[有空值]錯誤:false
        /// </summary>
        /// <returns>bool值</returns>
        private bool CheckValueEmpty()
        {
            bool          check     = true;
            List <string> parameter = new List <string>
            {
                { txtPartNo.Text }, { txtPieceX.Text }, { txtPieceY.Text },
                { txt2DPositionX.Text }, { txt2DPositionY.Text }, { txtTrayNo.Text },
                { txtPower.Text }, { txtSpeed.Text }
            };
            string response = ValidateUtility.CheckParameter(parameter);

            if (!string.IsNullOrEmpty(response))
            {
                MessageBox.Show(response);
                check = false;
            }

            return(check);
        }
Пример #3
0
        /// <summary>
        /// 驗證欄位空值
        /// 正確:true 、 錯誤:false
        /// </summary>
        /// <returns>bool值</returns>
        private bool CheckValueEmpty()
        {
            bool          check     = true;
            List <string> parameter = new List <string>
            {
                { txtTrayName.Text }, { txtTrayCenter.Text }, { txtTrayLength.Text }, { txtThickness.Text }
                , { txtDivideNoX.Text }, { txtDivideNoY.Text }, { txtDividePitchX.Text }, { txtDividePitchY.Text }
                , { txtPieceCenterX.Text }, { txtPieceCenterY.Text }, { txtTrayOffsetX.Text }, { txtTrayOffsetY.Text }
            };
            string response = ValidateUtility.CheckParameter(parameter);

            if (!string.IsNullOrEmpty(response))
            {
                MessageBox.Show(response);
                check = false;
            }

            return(check);
        }
Пример #4
0
        /// <summary>
        /// 確定,資料庫取得資料比對
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnLogin_Click(object sender, EventArgs e)
        {
            try
            {
                // 驗證欄位,是否有空值,若有空值會產生錯誤訊息
                List <string> parameter = new List <string> {
                    { cb_userNo.Text }, { txtPasswd.Text }
                };
                string errorMsg = ValidateUtility.CheckParameter(parameter);
                if (ValidateUtility.DisplayMessage(errorMsg))
                {
                    return;
                }
                ResponseModel ResponseModel = AccountService.LoginAccount(cb_userNo.Text, txtPasswd.Text);
                if (ResponseModel.Status == StatusEnum.Ok)
                {
                    // 給予全域變數參數
                    GlobalParameter.UserName  = ResponseModel.DataAccount.AcctNo;
                    GlobalParameter.AllowItem = ResponseModel.DataAccount.Limit;

                    // 異動紀錄
                    recChangeService.AddData(new RecChange
                    {
                        NowTime  = Convert.ToDateTime(DateTime.Now.ToString("yyyy/MM/dd HH:ss:mm")),
                        Message  = "Login登入",
                        UserName = ResponseModel.DataAccount.AcctNo
                    });

                    // 呼叫主Form開啟控制項
                    FormStart.OpenController();
                }

                this.Close();
                MessageBox.Show(ResponseModel.ResponseMsg);
            }
            catch (Exception ex)
            {
                this.Close();
                logger.Error(ex, "Error");
                MessageBox.Show(ex.Message);
            }
        }
Пример #5
0
        private PieceResultModel Step1驗證與板子計算()
        {
            // 驗證
            List <string> parameter = new List <string> {
                { txtLot.Text }, { txtPN.Text }
            };

            if (ValidateUtility.DisplayMessage(ValidateUtility.CheckParameter(parameter)))
            {
                return(null);
            }

            // 板子計算方式
            return(new PieceCalculationMethod().PieceCalculation(new PieceRequestModel
            {
                板子X尺寸 = Convert.ToDouble(partNoJoinTrayAndLaser.PieceSizeX),
                板子Y尺寸 = Convert.ToDouble(partNoJoinTrayAndLaser.PieceSizeY),
                X偏移位置 = Convert.ToDouble(partNoJoinTrayAndLaser.Xoffset),
                Y偏移位置 = Convert.ToDouble(partNoJoinTrayAndLaser.Xoffset),
                台與雷射中心點差距 = GlobalParameter.VehicleAndPieceCenter
            }));
        }
Пример #6
0
        /// <summary>
        /// 讀取料號
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnloadPN_Click(object sender, EventArgs e)
        {
            // 預設值
            formStartModel.允許2D讀取Tag = formStartModel.允許雷射打印Tag = txtLot.Enabled = false;
            ButtonProperty.SetProperty(btnloadMaterial, false);

            // PLC:DM_8101自動AUTOREADY,正式模式才會執行此點位檢查
            if (GlobalParameter.UseMode.Equals("1"))
            {
                if (!GlobalData.PLC線路異常)
                {
                    if (GlobalData.DM[DmTable.DM_8101自動AUTOREADY].Equals("0"))
                    {
                        MessageBox.Show("PLC異常:DM_8101自動AUTOREADY,機台未準備好,請檢查機台或PLC。");
                        return;
                    }
                }
            }

            // 驗證參數
            if (ValidateUtility.DisplayMessage(ValidateUtility.CheckParameter(txtPN.Text)))
            {
                return;
            }
            try
            {
                if (MessageBox.Show("讀取確認:" + txtPN.Text, "Load",
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Information).Equals(DialogResult.Yes))
                {
                    ResponseModel responseModel = new PartNoJoinTrayAndLaserService().GetConditionMain(txtPN.Text);
                    partNoJoinTrayAndLaser = responseModel.PartNoJoinTrayAndLaser;
                    if (partNoJoinTrayAndLaser != null)
                    {
                        switch (partNoJoinTrayAndLaser.UsesIten)
                        {
                        case "0":
                            formStartModel.允許2D讀取Tag = formStartModel.允許雷射打印Tag = true;
                            break;

                        case "1":
                            formStartModel.允許2D讀取Tag = true;
                            break;

                        default:
                            formStartModel.允許雷射打印Tag = true;
                            break;
                        }
                        txtLot.Enabled = true;
                        ButtonProperty.SetProperty(btnloadMaterial, true);
                        MessageBox.Show("讀取成功。");
                    }
                    else
                    {
                        MessageBox.Show("查無此料號。");
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception錯誤");
                MessageBox.Show(ex.Message);
            }
        }
Пример #7
0
        /// <summary>
        /// 設定存檔
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void toolStripbtnSet_Click(object sender, EventArgs e)
        {
            string cmd = string.Empty, response = string.Empty, record = string.Empty;

            toolStripbtnSet.Enabled   = false;
            toolStripbtnPoint.Enabled = true;
            try
            {
                // 異動紀錄
                AddRecChangeMethod("手動流程:雷射設定存檔");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }

            if (GlobalParameter.UseMode.Equals("0"))
            {
                MessageBox.Show("測試模式,無法設定存檔。"); return;
            }

            // 驗證資料
            List <string> parameter = new List <string> {
                { cbBoxPartNo.Text }, { lblFNO.Text }, { lblPower.Text }, { lblSpeed.Text }
            };

            response = ValidateUtility.CheckParameter(parameter);
            if (ValidateUtility.DisplayMessage(response))
            {
                return;
            }

            // 板子計算方式
            PieceResultModel pieceResultModel = new PieceCalculationMethod()
                                                .PieceCalculation(new PieceRequestModel
            {
                板子X尺寸     = Convert.ToDouble(partNoJoinLaser[0].PieceSizeX),
                板子Y尺寸     = Convert.ToDouble(partNoJoinLaser[0].PieceSizeY),
                X偏移位置     = Convert.ToDouble(lblXoffset.Text),
                Y偏移位置     = Convert.ToDouble(lblYoffset.Text),
                台與雷射中心點差距 = GlobalParameter.VehicleAndPieceCenter
            });

            #region PLC寫入

            try
            {
                if (!GlobalData.PLC線路異常)
                {
                    List <string> data = new List <string>();
                    PLCMethod.SetParameterSplitForPoint(partNoJoinLaser[0].PieceSizeX, data);
                    PLCMethod.SetParameterSplitForPoint(partNoJoinLaser[0].PieceSizeY, data);
                    PLCMethod.SetParameterSplitForPoint(partNoJoinLaser[0].PieceSizeT, data);
                    PLCMethod.SetParameterSplitForPoint(partNoJoinLaser[0].PositionX2D, data);
                    PLCMethod.SetParameterSplitForPoint(partNoJoinLaser[0].PositionY2D, data);
                    PLCMethod.SetDefultParameter("0", 20, data);
                    PLCMethod.SetParameterSplit(dataTray.TrayNo.ToString(), data);
                    PLCMethod.SetParameterSplit(dataTray.DivideNoX.ToString(), data);
                    PLCMethod.SetParameterSplit(dataTray.DivideNoY.ToString(), data);
                    PLCMethod.SetParameterSplitForPoint(dataTray.DividePitchX, data);
                    PLCMethod.SetParameterSplitForPoint(dataTray.DividePitchY, data);
                    PLCMethod.SetParameterSplitForPoint(dataTray.PieceCenterX, data);
                    PLCMethod.SetParameterSplitForPoint(dataTray.PieceCenterY, data);
                    PLCMethod.SetParameterSplitForPoint(dataTray.TrayThickness, data);
                    PLCMethod.SetParameterSplitForPoint(dataTray.TrayCenter, data);
                    PLCMethod.SetParameterSplitForPoint(dataTray.TrayLength, data);
                    PLCMethod.SetDefultParameter("0", 10, data);
                    PLCMethod.SetParameterSplitForPoint(dataTray.TrayOffsetX, data);
                    PLCMethod.SetParameterSplitForPoint(dataTray.TrayOffsetY, data);
                    PLCMethod.SetDefultParameter("0", 6, data);
                    PLCcommand.PLC_Write(PLCcommand.Cmd_Mode.Mode_Write_Multiple,
                                         PLCcommand.PLC_IO.DM, DmTable.DM_8300DWORD_板寬X, 0, data.Count, data);
                }
                else
                {
                    MessageBox.Show("PLC線路異常。");
                    return;
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception錯誤");
                MessageBox.Show("Exception_PLC系統異常錯誤:" + ex.Message);
                return;
            }

            #endregion PLC寫入

            #region 雷射寫入

            try
            {
                if (SHT遮光閥狀態.Equals("1"))
                {
                    cmd      = LaserCommand.MKM指令接收控制設定("0");
                    response = LaserExecuteWrite.執行MRK印字觸控制設定(cmd);
                    if (ValidateUtility.DisplayMessage(response))
                    {
                        return;
                    }
                    SHT遮光閥狀態 = "0";
                    record  += "1.SHT,";
                }

                // 設定 FNO
                cmd      = LaserCommand.FNO文件變更控制設定(lblFNO.Text);
                response = LaserExecuteWrite.執行FNO文件變更控制設定(cmd);
                if (ValidateUtility.DisplayMessage(response))
                {
                    return;
                }
                record += "2.FNO,";

                // 雷射功率
                cmd = LaserCommand.LPW激光功率控制設定(string.Format("{0:000.0}",
                                                             Convert.ToInt32(lblPower.Text)));
                response = LaserExecuteWrite.執行LPW激光功率控制設定(cmd);
                if (ValidateUtility.DisplayMessage(response))
                {
                    return;
                }
                record += "3.LPW,";

                // 掃描速度
                cmd = LaserCommand.SSP掃描速度控制設定(string.Format("{0:00000}",
                                                             Convert.ToInt32(lblSpeed.Text)));
                response = LaserExecuteWrite.執行SSP掃描速度控制設定(cmd);
                if (ValidateUtility.DisplayMessage(response))
                {
                    return;
                }
                record += "4.SSP,";

                // 設定座標位置
                List <double> list = new List <double> {
                    { pieceResultModel.X位置 }, { pieceResultModel.Y位置 }
                };
                List <string> laserList = TypeMethod.SetFormatValue(list, "{0:000.000}");
                ModelSPC      modelSPC  = new ModelSPC
                {
                    SonCmd    = "S",
                    Xposition = laserList[0],
                    Yposition = laserList[1]
                };
                cmd      = LaserCommand.SPC文字條件控制設定(modelSPC);
                response = LaserExecuteWrite.執行SPC文字條件控制設定(cmd);
                if (ValidateUtility.DisplayMessage(response))
                {
                    return;
                }
                record += "5.SPC,";

                // 雷射參數儲存
                LaserExecuteWrite.執行FOR文件覆盖保存控制設定(LaserCommand.FOR文件覆盖保存控制設定);
                record += "6.FOR,";

                // DB資料寫入
                IDataLaserService dataLaserService = new DataLaserService();
                ResponseModel     ResponseModel    = dataLaserService.UpdateData(new DataLaser
                {
                    PartNo  = cbBoxPartNo.Text,
                    FnoNo   = lblFNO.Text,
                    Xoffset = lblXoffset.Text,
                    Yoffset = lblYoffset.Text,
                    Power   = lblPower.Text,
                    Speed   = lblSpeed.Text
                });
                if (ResponseModel.Status.Equals(StatusEnum.Error))
                {
                    logger.Error(ResponseModel.ResponseMsg);
                    MessageBox.Show(ResponseModel.ResponseMsg);
                    return;
                }
                record += "7.DB";

                if (!ValidateUtility.DisplayMessage(response))
                {
                    MessageBox.Show("設定完成,執行紀錄:" + record);
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception_Error:" + record);
                MessageBox.Show("Exception_雷射系統異常錯誤:" + ex.Message + ",執行紀錄:" + record);
            }

            #endregion 雷射寫入
        }
Пример #8
0
        /// <summary>
        /// 程序確定
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void toolStripbtnSave_Click(object sender, EventArgs e)
        {
            string cmd = string.Empty, response = string.Empty, record = string.Empty;

            try
            {
                // 使用者異動紀錄
                recChangeService.AddData(new RecChange
                {
                    NowTime  = Convert.ToDateTime(DateTime.Now.ToString("yyyy/MM/dd HH:ss:mm")),
                    Message  = "雷射設定",
                    UserName = GlobalParameter.UserName
                });

                // 檢查欄位是否有空白
                List <string> parameter = new List <string> {
                    { txtFNO.Text }, { lblJisCode.Text }, { txtHeight.Text }, { txtWidth.Text }
                };
                response = ValidateUtility.CheckParameter(parameter);
                if (ValidateUtility.DisplayMessage(response))
                {
                    return;
                }
                if (GlobalParameter.UseMode.Equals("1"))
                {
                    // 寫入db
                    ILaserFnoService laserFnoService = new LaserFnoService();
                    LaserFNO         laserFNO        = new LaserFNO {
                        LaserFnoNo = txtFNO.Text
                    };
                    ResponseModel ResponseModel = laserFnoService.AddData(laserFNO);
                    if (ResponseModel.Status != StatusEnum.Ok)
                    {
                        MessageBox.Show(ResponseModel.ResponseMsg);
                        return;
                    }

                    // 寫入雷射
                    if (SHT遮光閥狀態 == "1")
                    {
                        cmd      = LaserCommand.MKM指令接收控制設定("0");
                        response = LaserExecuteWrite.執行MRK印字觸控制設定(cmd);
                        if (ValidateUtility.DisplayMessage(response))
                        {
                            return;
                        }
                        record  += "1.SHT,";
                        SHT遮光閥狀態 = "0";
                    }

                    // 設定 FNO
                    cmd      = LaserCommand.FNO文件變更控制設定(txtFNO.Text);
                    response = LaserExecuteWrite.執行FNO文件變更控制設定(cmd);
                    if (ValidateUtility.DisplayMessage(response))
                    {
                        return;
                    }
                    record += "2.FNO,";

                    // 雷射功率
                    cmd      = LaserCommand.LPW激光功率控制設定(string.Format("{0:000.0}", 40));
                    response = LaserExecuteWrite.執行LPW激光功率控制設定(cmd);
                    if (ValidateUtility.DisplayMessage(response))
                    {
                        return;
                    }
                    record += "3.LPW,";

                    // 掃描速度
                    cmd      = LaserCommand.SSP掃描速度控制設定(string.Format("{0:00000}", 500));
                    response = LaserExecuteWrite.執行SSP掃描速度控制設定(cmd);
                    if (ValidateUtility.DisplayMessage(response))
                    {
                        return;
                    }
                    record += "4.SSP,";

                    // 設定條件 ALC
                    cmd = LaserCommand.ALC整體條件的控制設定(new ModelALC
                    {
                        SonCmd         = "S",
                        Xoffset        = "+000.000",
                        Yoffset        = "+000.000",
                        RotationOffset = "-090.00"
                    });
                    response = LaserExecuteWrite.執行ALC整體條件的控制設定(cmd);
                    if (ValidateUtility.DisplayMessage(response))
                    {
                        return;
                    }
                    record += "5.ALC,";

                    // 設定文字型狀 STR
                    cmd      = LaserCommand.STR印字文字列設定(lblJisCode.Text);
                    response = LaserExecuteWrite.執行STR印字文字列設定(cmd);
                    if (ValidateUtility.DisplayMessage(response))
                    {
                        return;
                    }
                    record += "6.STR,";

                    /* 文字條件控制設定STC
                     * 範例:"STCS010010101006.000006.000+000.000+000.000000.000000.000+100.0011.000100100"; */
                    ModelSTC modelSTC = new ModelSTC
                    {
                        SonCmd    = "S",
                        Height    = string.Format("{0:000.000}", Convert.ToDouble(txtHeight.Text)),
                        Width     = string.Format("{0:000.000}", Convert.ToDouble(txtWidth.Text)),
                        Xposition = "+000.000",
                        Yposition = "+000.000",
                        Bold      = "0.000"
                    };
                    cmd      = LaserCommand.STC文字條件控制設定(modelSTC);
                    response = LaserExecuteWrite.執行STC文字條件控制設定(cmd);
                    if (ValidateUtility.DisplayMessage(response))
                    {
                        return;
                    }
                    record += "7.STC,";

                    // 雷射參數儲存
                    LaserExecuteWrite.執行FOR文件覆盖保存控制設定(LaserCommand.FOR文件覆盖保存控制設定);
                    record += "8.FOR";

                    if (!ValidateUtility.DisplayMessage(response))
                    {
                        MessageBox.Show("設定完成,執行紀錄:" + record);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Error");
                MessageBox.Show(ex.Message);
            }
        }