コード例 #1
0
        void timer_Monitor_Tick(object sender, EventArgs e)
        {
            GC.Collect();

            bool error = false;

            if (Config.Soft.Function == "I")
            {
                if (Config.Mac_C.PLC_Tcp == "Y")
                {
                    //X轴
                    if (PLC_Tcp_CP.TrackStateIsOK(PLC_Tcp_CP.TrackErrorType.X1) && PLC_Tcp_CP.TrackStateIsOK(PLC_Tcp_CP.TrackErrorType.X2))// && PLC.ExtramanOriginResetState(PLC.TrackErrorType.X1) && PLC.ExtramanOriginResetState(PLC.TrackErrorType.X2))
                    {
                        grid_X.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        error             = true;
                        tbX_Up.Text       = PLC_Tcp_CP.ReadTrackErrorCode(PLC_Tcp_CP.TrackErrorType.X1);
                        tbX_Down.Text     = PLC_Tcp_CP.ReadTrackErrorCode(PLC_Tcp_CP.TrackErrorType.X2);
                        grid_X.Visibility = Visibility.Visible;
                    }
                    //Z轴
                    if (PLC_Tcp_CP.TrackStateIsOK(PLC_Tcp_CP.TrackErrorType.Z))// && PLC.ExtramanOriginResetState(PLC.TrackErrorType.Z))
                    {
                        grid_Z.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        error             = true;
                        tbZ.Text          = PLC_Tcp_CP.ReadTrackErrorCode(PLC_Tcp_CP.TrackErrorType.Z);
                        grid_Z.Visibility = Visibility.Visible;
                    }
                    //左臂
                    if (PLC_Tcp_CP.PlateStateIsOK(PLC_Tcp_AP.PlateType.Left))// && PLC.PlateOriginResetState(PLC.PlateType.Left))
                    {
                        grid_Left.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        error                = true;
                        tbLeft.Text          = PLC_Tcp_CP.ReadPlateErrorCode(PLC_Tcp_AP.PlateType.Left);
                        grid_Left.Visibility = Visibility.Visible;
                    }
                    //右臂
                    if (PLC_Tcp_CP.PlateStateIsOK(PLC_Tcp_AP.PlateType.Right))// && PLC.PlateOriginResetState(PLC.PlateType.Right))
                    {
                        grid_Right.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        error                 = true;
                        tbRight.Text          = PLC_Tcp_CP.ReadPlateErrorCode(PLC_Tcp_AP.PlateType.Right);
                        grid_Right.Visibility = Visibility.Visible;
                    }
                    //加药障碍
                    if (PLC_Tcp_CP.PlateErrorZHA())
                    {
                        grid_ZHA.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        error = true;
                        grid_ZHA.Visibility = Visibility.Visible;
                    }
                }
            }
            else
            {
                if (Config.Mac_C.PLC_Tcp == "Y")
                {
                    //提升机
                    if (PLC_Tcp_CP.LiftStateIsOK())// && PLC.LiftOriginResetState())
                    {
                        grid_Lift.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        error                = true;
                        tbLift.Text          = PLC_Tcp_CP.ReadLiftErrorCode();
                        grid_Lift.Visibility = Visibility.Visible;
                    }
                }
                if (Config.Mac_C.PLC_Com == "Y")
                {
                    //提升机挡板
                    if (!PLC_Com_CP.Baffle_Lift_IsMaxUp())
                    {
                        grid_Max_Baffle.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        error = true;
                        grid_Max_Baffle.Visibility = Visibility.Visible;
                    }
                    if (!PLC_Com_CP.Baffle_Lift_IsMinDown())
                    {
                        grid_Min_Baffle.Visibility = Visibility.Collapsed;
                    }
                    else
                    {
                        error = true;
                        grid_Min_Baffle.Visibility = Visibility.Visible;
                    }
                }
            }
            if (error)
            {
                grid_Monitor.Visibility = Visibility.Visible;
            }
            else
            {
                grid_Monitor.Visibility = Visibility.Collapsed;
            }

            if (Config.Mac_C.PLC_Tcp == "Y")
            {
                //光幕监控
                if (Config.Soft.Function == "I")
                {
                    gm_new = PLC_Tcp_CP.GMIsStop();
                    if (gm_new != gm_old)
                    {
                        gm_old = gm_new;
                        ShowGM(gm_new);
                    }
                }
                //急停监控
                if (Config.Soft.Function == "I")
                {
                    stop_new = PLC_Tcp_CP.MacIsStop(PLC_Tcp_CP.MacType.Add);
                }
                else
                {
                    stop_new = PLC_Tcp_CP.MacIsStop(PLC_Tcp_CP.MacType.Out);
                }
                if (stop_new != stop_old)
                {
                    stop_old = stop_new;
                    ShowStop(stop_new);
                }
            }
        }