Initial commit
This commit is contained in:
44
Handler/Project/RunCode/Display/DisplayTextHandler.cs
Normal file
44
Handler/Project/RunCode/Display/DisplayTextHandler.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
public partial class FMain
|
||||
{
|
||||
delegate void ShowLotTextHandler(string value);
|
||||
|
||||
delegate void UpdateDMTextHandler(string value1);
|
||||
|
||||
//void UpdateResultText(string value1)
|
||||
//{
|
||||
// if (this.lbResult.InvokeRequired)
|
||||
// {
|
||||
// lbResult.BeginInvoke(new UpdateDMTextHandler(UpdateResultText), new object[] { value1 });
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// lbResult.Text = value1;
|
||||
// }
|
||||
//}
|
||||
|
||||
delegate void UpdateLabelTextHandler(Control ctl, string value);
|
||||
void UpdateLabelText(Control ctl, string value)
|
||||
{
|
||||
if (ctl.InvokeRequired)
|
||||
{
|
||||
ctl.BeginInvoke(new UpdateLabelTextHandler(UpdateLabelText), new object[] { ctl, value });
|
||||
}
|
||||
else
|
||||
{
|
||||
ctl.Text = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
22
Handler/Project/RunCode/Display/GetErrorMessage.cs
Normal file
22
Handler/Project/RunCode/Display/GetErrorMessage.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
//using System;
|
||||
//using System.Collections.Generic;
|
||||
//using System.Diagnostics;
|
||||
//using System.Drawing;
|
||||
//using System.IO;
|
||||
//using System.Linq;
|
||||
//using System.Net;
|
||||
//using System.Net.NetworkInformation;
|
||||
//using System.Runtime.Serialization.Formatters.Binary;
|
||||
//using System.Text;
|
||||
//using System.Windows.Forms;
|
||||
//using System.Management;
|
||||
//using COMM;
|
||||
|
||||
|
||||
//namespace Project
|
||||
//{
|
||||
// public static partial class UTIL
|
||||
// {
|
||||
|
||||
// }
|
||||
//}
|
||||
63
Handler/Project/RunCode/Display/_Interval_1min.cs
Normal file
63
Handler/Project/RunCode/Display/_Interval_1min.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
using AR;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
public partial class FMain
|
||||
{
|
||||
|
||||
void _Display_Interval_1min()
|
||||
{
|
||||
//리셋카운트
|
||||
AutoResetCount();
|
||||
PUB.CheckFreeSpace();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 환경설정에따른 카운트를 리셋처리한다. 171128
|
||||
/// </summary>
|
||||
void AutoResetCount()
|
||||
{
|
||||
//수량누적시 자동으로 소거하게 되었다
|
||||
//if (COMM.SETTING.Data.datetime_Check_1 && COMM.SETTING.Data.datetime_Reset_1 != "") //오전
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// DateTime SetTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + COMM.SETTING.Data.datetime_Reset_1 + ":00");
|
||||
// DateTime LastClearTime = Pub.counter.;
|
||||
|
||||
// //현재 시간이 클리어대상 시간보다 크고, 마지막으로 클리어한 시간이 지정시간보다 작아야함
|
||||
// if (DateTime.Now > SetTime && LastClearTime < SetTime)
|
||||
// {
|
||||
// Pub.log.AddI("Count Reset #1");
|
||||
// Pub.counter.ClearDay();
|
||||
// }
|
||||
// }
|
||||
// catch { }
|
||||
//}
|
||||
|
||||
//if (COMM.SETTING.Data.datetime_Check_2 && COMM.SETTING.Data.datetime_Reset_2 != "") //오후
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// DateTime SetTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + COMM.SETTING.Data.datetime_Reset_2 + ":00");
|
||||
// DateTime LastClearTime = Pub.counter.CountReset;
|
||||
|
||||
// //현재 시간이 클리어대상 시간보다 크고, 마지막으로 클리어한 시간이 지정시간보다 작아야함
|
||||
// if (DateTime.Now > SetTime && LastClearTime < SetTime)
|
||||
// {
|
||||
// Pub.log.AddI("Count Reset #2");
|
||||
// Pub.counter.ClearDay();
|
||||
// }
|
||||
// }
|
||||
// catch { }
|
||||
//}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
614
Handler/Project/RunCode/Display/_Interval_250ms.cs
Normal file
614
Handler/Project/RunCode/Display/_Interval_250ms.cs
Normal file
@@ -0,0 +1,614 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using AR;
|
||||
namespace Project
|
||||
{
|
||||
public partial class FMain
|
||||
{
|
||||
|
||||
|
||||
void _Display_Interval_250ms()
|
||||
{
|
||||
//타워램프조정
|
||||
//if (COMM.SETTING.Data.Disable_TowerLamp == false) Update_TowerLamp();
|
||||
TowerLamp.Update(PUB.sm.Step);
|
||||
|
||||
//컨베이어가동시간을 추적한다 230926
|
||||
if (VAR.BOOL[eVarBool.Use_Conveyor])
|
||||
{
|
||||
////왼쪽컨베이어에 아이템이 존재하는 경우에만 누적
|
||||
//if (DIO.GetIOOutput(eDOName.LEFT_CONV) && VAR.BOOL[eVarBool.LEFT_ITEM_PICKOFF])
|
||||
//{
|
||||
// if (VAR.TIME[eVarBool.LEFT_ITEM_PICKOFF].Year == 1982)
|
||||
// VAR.TIME[eVarBool.LEFT_ITEM_PICKOFF] = DateTime.Now; //시간초기화
|
||||
// else
|
||||
// {
|
||||
// var ts = DateTime.Now - VAR.TIME[eVarBool.LEFT_ITEM_PICKOFF];
|
||||
// VAR.DBL[eVarDBL.LEFT_ITEM_PICKOFF] += ts.TotalSeconds; //경과시간누적
|
||||
// VAR.TIME[eVarBool.LEFT_ITEM_PICKOFF] = DateTime.Now; //시간초기화
|
||||
// }
|
||||
//}
|
||||
|
||||
////오른쪽컨베이어에 아이템이 존재하는 경우에만 누적
|
||||
//if (DIO.GetIOOutput(eDOName.RIGHT_CONV) && VAR.BOOL[eVarBool.RIGT_ITEM_PICKOFF] )
|
||||
//{
|
||||
// if(VAR.TIME[eVarBool.RIGT_ITEM_PICKOFF].Year == 1982)
|
||||
// {
|
||||
// VAR.TIME[eVarBool.RIGT_ITEM_PICKOFF] = DateTime.Now; //시간초기화
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// var ts = DateTime.Now - VAR.TIME[eVarBool.RIGT_ITEM_PICKOFF];
|
||||
// VAR.DBL[eVarDBL.RIGT_ITEM_PICKOFF] += ts.TotalSeconds; //경과시간누적
|
||||
// VAR.TIME[eVarBool.RIGT_ITEM_PICKOFF] = DateTime.Now; //시간초기화
|
||||
// }
|
||||
|
||||
//}
|
||||
|
||||
var t1 = VAR.I32[eVarInt32.LEFT_ITEM_COUNT];
|
||||
var t2 = VAR.I32[eVarInt32.RIGT_ITEM_COUNT];
|
||||
groupBox2.Text = $"바코드({t1:N1}/{t2:N1})";
|
||||
}
|
||||
else
|
||||
{
|
||||
groupBox2.Text = "바코드";
|
||||
}
|
||||
|
||||
groupBox1.Text = $"장비조작({PUB.sm.Loop_ms:N0}ms)";
|
||||
//릴사이즈가 맞지 않으면 깜박인다.
|
||||
if (DIO.getCartSize(1) != eCartSize.None)
|
||||
{
|
||||
if (VAR.BOOL[eVarBool.Use_Conveyor] == false && DIO.getCartSize(1) != DIO.getCartSize(0))
|
||||
{
|
||||
if (listView21.GetStyle(0, 1).BackColor != Color.Red)
|
||||
{
|
||||
listView21.GetStyle(0, 1).BackColor = Color.Red;
|
||||
}
|
||||
else
|
||||
{
|
||||
listView21.GetStyle(0, 1).BackColor = Color.FromArgb(32, 32, 32);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
listView21.GetStyle(0, 1).BackColor = Color.FromArgb(32, 32, 32);
|
||||
}
|
||||
|
||||
if (VAR.BOOL[eVarBool.Use_Conveyor] == false && DIO.getCartSize(1) != DIO.getCartSize(2))
|
||||
{
|
||||
if (listView21.GetStyle(0, 5).BackColor != Color.Red)
|
||||
{
|
||||
listView21.GetStyle(0, 5).BackColor = Color.Red;
|
||||
}
|
||||
else
|
||||
{
|
||||
listView21.GetStyle(0, 5).BackColor = Color.FromArgb(32, 32, 32);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
listView21.GetStyle(0, 5).BackColor = Color.FromArgb(32, 32, 32);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//모두 동일하게 흑색한다
|
||||
//lbSize0.BackColor = Color.FromArgb(32, 32, 32);
|
||||
//lbSize1.BackColor = Color.FromArgb(32, 32, 32);
|
||||
//lbSize2.BackColor = Color.FromArgb(32, 32, 32);
|
||||
|
||||
listView21.GetStyle(0, 1).BackColor = Color.FromArgb(32, 32, 32);
|
||||
listView21.GetStyle(0, 3).BackColor = Color.FromArgb(32, 32, 32);
|
||||
listView21.GetStyle(0, 5).BackColor = Color.FromArgb(32, 32, 32);
|
||||
|
||||
listView21.GetStyle(0, 1).ForeColor = Color.White;
|
||||
listView21.GetStyle(0, 3).ForeColor = Color.White;
|
||||
listView21.GetStyle(0, 5).ForeColor = Color.White;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//락정보
|
||||
var l0 = DIO.GetIOOutput(eDOName.CART_MAG0);
|
||||
var l1 = DIO.GetIOOutput(eDOName.CART_MAG1);
|
||||
var l2 = DIO.GetIOOutput(eDOName.CART_MAG2);
|
||||
|
||||
lbLock0.Text = l0 ? "카트 교환" : "카트 없음";
|
||||
lbLock1.Text = l1 ? "카트 교환" : "카트 없음";
|
||||
lbLock2.Text = l2 ? "카트 교환" : "카트 없음";
|
||||
|
||||
var sbVisTitle0 = listView21.GetCell(0, 1);
|
||||
var sbVisTitle2 = listView21.GetCell(0, 5);
|
||||
|
||||
if (PUB.wsL == null || PUB.wsL.Connected == false)
|
||||
{
|
||||
sbVisTitle0.ForeColor = Color.Red;
|
||||
}
|
||||
else
|
||||
{
|
||||
//데이터수신시간에 따른 색상
|
||||
var tswecv = DateTime.Now - VAR.TIME[eVarTime.lastRecvWSL];
|
||||
if(tswecv.TotalSeconds > 5)
|
||||
{
|
||||
sbVisTitle0.ForeColor = Color.HotPink;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (PUB.flag.get(eVarBool.FG_RDY_CAMERA_L))
|
||||
sbVisTitle0.ForeColor = Color.Lime;
|
||||
else
|
||||
sbVisTitle0.ForeColor = Color.Magenta;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
if (PUB.wsR == null || PUB.wsR.Connected == false)
|
||||
{
|
||||
sbVisTitle2.ForeColor = Color.Red;
|
||||
}
|
||||
else
|
||||
{
|
||||
var tswecv = DateTime.Now - VAR.TIME[eVarTime.lastRecvWSR];
|
||||
if (tswecv.TotalSeconds > 5)
|
||||
{
|
||||
sbVisTitle2.ForeColor = Color.HotPink;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (PUB.flag.get(eVarBool.FG_RDY_CAMERA_R))
|
||||
sbVisTitle2.ForeColor = Color.Lime;
|
||||
else
|
||||
sbVisTitle2.ForeColor = Color.Magenta;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//arLabel18.Text = camliveBusy ? "카메라 (라이브뷰)" : "카메라";
|
||||
|
||||
btStart.Enabled = PUB.flag.get(eVarBool.FG_MOVE_PICKER) == false;
|
||||
btStop.Enabled = PUB.flag.get(eVarBool.FG_MOVE_PICKER) == false;
|
||||
btSetting.Enabled = PUB.flag.get(eVarBool.FG_MOVE_PICKER) == false;
|
||||
//btPickerMove.Visible = (Pub.mot.IsInit && PUB.mot.HasHomeSetOff == true); //피커의 수동 이동 버튼표시여부
|
||||
|
||||
|
||||
var hwcol = 0;
|
||||
if (PUB.keyenceF != null)
|
||||
{
|
||||
HWState.setTitle(1, hwcol, (PUB.keyenceF.IsConnect ? (PUB.keyenceF.IsTriggerOn ? "TRIG" : "ON") : "OFF"));
|
||||
|
||||
if (PUB.keyenceF.IsConnect)
|
||||
{
|
||||
if (PUB.keyenceF.IsTriggerOn)
|
||||
{
|
||||
HWState.setValue(1, hwcol, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
HWState.setValue(1, hwcol, 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
HWState.setValue(1, hwcol, 3);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
HWState.setTitle(1, hwcol, "SET");
|
||||
HWState.setValue(1, hwcol, 0);
|
||||
}
|
||||
hwcol++;
|
||||
|
||||
if (PUB.keyenceR != null)
|
||||
{
|
||||
HWState.setTitle(1, hwcol, (PUB.keyenceR.IsConnect ? (PUB.keyenceR.IsTriggerOn ? "TRIG" : "ON") : "OFF"));
|
||||
|
||||
if (PUB.keyenceR.IsConnect)
|
||||
{
|
||||
if (PUB.keyenceR.IsTriggerOn)
|
||||
{
|
||||
HWState.setValue(1, hwcol, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
HWState.setValue(1, hwcol, 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
HWState.setValue(1, hwcol, 3);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
HWState.setTitle(1, hwcol, "SET");
|
||||
HWState.setValue(1, hwcol, 0);
|
||||
}
|
||||
hwcol++;
|
||||
|
||||
|
||||
if (PUB.wsL != null)
|
||||
{
|
||||
HWState.setTitle(1, hwcol, (PUB.wsL.Connected ? "ON" : "OFF"));
|
||||
HWState.setValue(1, hwcol++, (ushort)(PUB.wsL.Connected ? 1 : 3));
|
||||
}
|
||||
|
||||
|
||||
if (PUB.wsR != null)
|
||||
{
|
||||
HWState.setTitle(1, hwcol, (PUB.wsR.Connected ? "ON" : "OFF"));
|
||||
HWState.setValue(1, hwcol++, (ushort)(PUB.wsR.Connected ? 1 : 3));
|
||||
}
|
||||
|
||||
|
||||
HWState.setTitle(1, hwcol, (PUB.BarcodeFix.IsOpen() ? AR.SETTING.Data.Barcode_Port : "OFF"));
|
||||
HWState.setValue(1, hwcol++, (ushort)(PUB.BarcodeFix.IsOpen() ? 1 : 3));
|
||||
|
||||
if (PUB.PrinterL != null)
|
||||
{
|
||||
HWState.setTitle(1, hwcol, (PUB.PrinterL.IsOpen ? AR.SETTING.Data.PrintL_Port : "OFF"));
|
||||
HWState.setValue(1, hwcol++, (ushort)(PUB.PrinterL.IsOpen ? 1 : 3));
|
||||
}
|
||||
else HWState.setTitle(1, hwcol++, "SET");
|
||||
|
||||
if (PUB.PrinterR != null)
|
||||
{
|
||||
|
||||
HWState.setTitle(1, hwcol, (PUB.PrinterR.IsOpen ? AR.SETTING.Data.PrintR_Port : "OFF"));
|
||||
HWState.setValue(1, hwcol++, (ushort)(PUB.PrinterR.IsOpen ? 1 : 3));
|
||||
}
|
||||
else HWState.setTitle(1, hwcol++, "SET");
|
||||
|
||||
if (PUB.plc != null)
|
||||
{
|
||||
HWState.setTitle(1, hwcol, (PUB.plc.Init ? AR.SETTING.Data.swplc_name : "OFF"));
|
||||
HWState.setValue(1, hwcol++, (ushort)(PUB.plc.Init ? 2 : 1));
|
||||
}
|
||||
else HWState.setTitle(1, hwcol++, "SET");
|
||||
|
||||
HWState.Invalidate();
|
||||
|
||||
IOState.setTitle(0, 0, $"{PUB.sm.Step}"); //this.sbStep.Text = Pub.sm.Step.ToString();
|
||||
IOState.setTitle(0, 9, $"MC({PUB.MCCode}/{AR.SETTING.Data.McName})");
|
||||
IOState.setTitle(1, 0, $"{PUB.sm.Loop_ms.ToString("N1")}ms");// / " + intlockcnt.ToString();io
|
||||
|
||||
IOState.setValue(0, 1, (ushort)(DIO.isSaftyDoorF(2, false) ? 0 : 2));
|
||||
IOState.setValue(0, 2, (ushort)(DIO.isSaftyDoorF(1, false) ? 0 : 2));
|
||||
IOState.setValue(0, 3, (ushort)(DIO.isSaftyDoorF(0, false) ? 0 : 2));
|
||||
|
||||
IOState.setValue(1, 1, (ushort)(DIO.GetIOOutput(eDOName.BUZZER) ? 2 : 0));
|
||||
IOState.setValue(1, 2, (ushort)(DIO.GetIOOutput(eDOName.ROOMLIGHT) ? 1 : 0));
|
||||
IOState.setValue(1, 3, (ushort)(DIO.GetIOInput(eDIName.AIR_DETECT) ? 1 : 0));
|
||||
|
||||
IOState.setValue(0, 4, (ushort)(DIO.GetIOInput(eDIName.PORTL_DET_UP) ? 1 : 0));
|
||||
IOState.setValue(0, 5, (ushort)(DIO.GetIOInput(eDIName.PORTC_DET_UP) ? 1 : 0));
|
||||
IOState.setValue(0, 6, (ushort)(DIO.GetIOInput(eDIName.PORTR_DET_UP) ? 1 : 0));
|
||||
|
||||
IOState.setValue(1, 4, (ushort)(DIO.GetIOInput(eDIName.PORTL_LIM_UP) ? 2 : 0));
|
||||
IOState.setValue(1, 5, (ushort)(DIO.GetIOInput(eDIName.PORTC_LIM_UP) ? 2 : 0));
|
||||
IOState.setValue(1, 6, (ushort)(DIO.GetIOInput(eDIName.PORTR_LIM_UP) ? 2 : 0));
|
||||
|
||||
IOState.setValue(1, 9, (ushort)(PUB.flag.get(eVarBool.FG_KEYENCE_TRIGGER) ? 2 : 0));
|
||||
|
||||
IOState.setValue(0, 10, (ushort)(PUB.flag.get(eVarBool.VS_DETECT_REEL_L) ? 2 : 0)); //reel-left detect
|
||||
IOState.setValue(0, 11, (ushort)(PUB.flag.get(eVarBool.VS_DETECT_REEL_R) ? 2 : 0)); //reel-right detect
|
||||
|
||||
IOState.setValue(1, 10, (ushort)(PUB.flag.get(eVarBool.VS_DETECT_CONV_L) ? 2 : 0)); //conv-left detect
|
||||
IOState.setValue(1, 11, (ushort)(PUB.flag.get(eVarBool.VS_DETECT_CONV_R) ? 2 : 0)); //conv-right detect
|
||||
|
||||
IOState.Invalidate();
|
||||
|
||||
if (PUB.Result.isSetvModel)
|
||||
{
|
||||
var modelVision = PUB.Result.vModel;
|
||||
var modelName = modelVision.Title;
|
||||
var modelNameM = string.Empty;
|
||||
|
||||
if (PUB.Result.isSetmModel) modelNameM = PUB.Result.mModel.Title;
|
||||
if (modelNameM.ToUpper().StartsWith("CONV"))
|
||||
{
|
||||
arLabel1.Text = "CONVEYOR ON";
|
||||
arLabel1.ForeColor = Color.Blue;
|
||||
}
|
||||
else
|
||||
{
|
||||
arLabel1.Text = "CONVEYOR OFF";
|
||||
arLabel1.ForeColor = Color.Red;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//시스템바이패스
|
||||
if (SETTING.Data.SystemBypass)
|
||||
{
|
||||
lbModelName.Text = $"SYSTEM BYPASS";
|
||||
lbModelName.ForeColor = Color.White;
|
||||
lbModelName.BackColor = Color.Blue;
|
||||
lbModelName.BackColor2 = Color.DeepSkyBlue;
|
||||
lbModelName.ShadowColor = Color.DimGray;
|
||||
}
|
||||
else
|
||||
{
|
||||
//바이패스는 색깔을 달리한다.
|
||||
if (modelName.ToUpper().Contains("BYPASS"))
|
||||
{
|
||||
lbModelName.Text = $"{modelName}";
|
||||
lbModelName.ForeColor = Color.DarkGreen;
|
||||
lbModelName.BackColor = Color.Gold;
|
||||
lbModelName.BackColor2 = Color.Yellow;
|
||||
lbModelName.ShadowColor = Color.WhiteSmoke;
|
||||
}
|
||||
else if (modelName.ToUpper().Contains("CONVERT"))
|
||||
{
|
||||
lbModelName.Text = $"{modelName}";
|
||||
lbModelName.ForeColor = Color.DarkBlue;
|
||||
lbModelName.BackColor = Color.Gold;
|
||||
lbModelName.BackColor2 = Color.Yellow;
|
||||
lbModelName.ShadowColor = Color.WhiteSmoke;
|
||||
}
|
||||
else
|
||||
{
|
||||
lbModelName.Text = $"[{VAR.STR[eVarString.JOB_CUSTOMER_CODE]}] {modelName}";
|
||||
lbModelName.ForeColor = Color.Black;
|
||||
lbModelName.BackColor = Color.White;
|
||||
lbModelName.BackColor2 = Color.WhiteSmoke;
|
||||
lbModelName.ShadowColor = Color.DimGray;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
lbModelName.Text = "모델을 선택하세요";
|
||||
lbModelName.ForeColor = Color.Blue;
|
||||
lbModelName.BackColor = Color.Tomato;
|
||||
lbModelName.BackColor2 = Color.Red;
|
||||
lbModelName.ShadowColor = Color.DimGray;
|
||||
}
|
||||
arLabel1.BackColor = lbModelName.BackColor;
|
||||
arLabel1.BackColor2 = lbModelName.BackColor2;
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
//바코드정보표시
|
||||
var row = 1;
|
||||
var col = 1;
|
||||
Class.VisionData visdata = PUB.Result.ItemDataL.VisionData;
|
||||
listView21.SetText(row++, col, visdata.RID);
|
||||
listView21.SetText(row++, col, visdata.SID);
|
||||
listView21.SetText(row++, col, visdata.QTY);
|
||||
listView21.SetText(row++, col, visdata.VNAME);
|
||||
listView21.SetText(row++, col, visdata.VLOT);
|
||||
listView21.SetText(row++, col, visdata.MFGDATE);
|
||||
listView21.SetText(row++, col, visdata.PARTNO);
|
||||
listView21.SetText(row++, col, visdata.ReelSize == eCartSize.None ? "--" : visdata.ReelSize.ToString());
|
||||
|
||||
|
||||
if (PUB.flag.get(eVarBool.FG_ENABLE_LEFT) == false)
|
||||
{
|
||||
sbVisTitle0.Text = "DISABLE";
|
||||
sbVisTitle0.BackColor = Color.Orange;
|
||||
sbVisTitle0.BackColor2 = Color.Tomato;
|
||||
}
|
||||
else
|
||||
{
|
||||
listView21.SetText(0, col, DIO.getCartSize(0) == eCartSize.None ? "?" : DIO.getCartSize(0).ToString());
|
||||
}
|
||||
|
||||
if (VAR.BOOL[eVarBool.Use_Conveyor]) listView21.GetStyle(0, 1).ForeColor = Color.White;
|
||||
else
|
||||
listView21.GetStyle(0, 1).ForeColor = AR.SETTING.Data.Detect_CartL ? Color.White : Color.Red;
|
||||
|
||||
if (VAR.BOOL[eVarBool.Use_Conveyor]) listView21.GetStyle(0, 5).ForeColor = Color.White;
|
||||
else
|
||||
listView21.GetStyle(0, 5).ForeColor = AR.SETTING.Data.Detect_CartR ? Color.White : Color.Red;
|
||||
//lbSize0.ForeColor = COMM.SETTING.Data.Detect_CartL ? Color.White : Color.Red;
|
||||
|
||||
listView21.SetText(row, col, visdata.RID2);
|
||||
if (visdata.RID2.isEmpty() == false && visdata.RID.Equals(visdata.RID2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col, 1);
|
||||
|
||||
listView21.SetText(row, col, visdata.SID2);
|
||||
if (visdata.SID2.isEmpty() == false && visdata.SID.Equals(visdata.SID2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
|
||||
if (visdata.QTY2.Equals("0")) listView21.SetText(row, 1, string.Empty);
|
||||
else listView21.SetText(row, col, visdata.QTY2);
|
||||
if (visdata.QTY2.isEmpty() == false && visdata.QTY2.Equals("0") == false && visdata.QTY.Equals(visdata.QTY2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
|
||||
|
||||
listView21.SetText(row, col, visdata.VNAME2);
|
||||
if (visdata.VNAME2.isEmpty() == false && visdata.VNAME.Equals(visdata.VNAME2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
|
||||
listView21.SetText(row, col, visdata.VLOT2);
|
||||
if (visdata.VLOT2.isEmpty() == false && visdata.VLOT.Equals(visdata.VLOT2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
|
||||
listView21.SetText(row, col, visdata.MFGDATE2);
|
||||
if (visdata.MFGDATE2.isEmpty() == false && visdata.MFGDATE.Equals(visdata.MFGDATE2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
|
||||
listView21.SetText(row, col, visdata.PARTNO2);
|
||||
if (visdata.PARTNO2.isEmpty() == false && visdata.PARTNO.Equals(visdata.PARTNO2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
|
||||
}
|
||||
catch { }
|
||||
|
||||
try
|
||||
{
|
||||
var visdata = PUB.Result.ItemDataC.VisionData;
|
||||
Color textColor = visdata.Confirm ? Color.Lime : Color.WhiteSmoke;
|
||||
|
||||
var row = 1;
|
||||
var col = 3;
|
||||
this.listView21.SetText(row, col, visdata.RID);
|
||||
if (visdata.RID_Trust)
|
||||
{
|
||||
if (visdata.RIDNew) //new reelid mode
|
||||
{
|
||||
listView21.SetColor(row++, col - 1, 3);
|
||||
}
|
||||
else
|
||||
{
|
||||
listView21.SetColor(row++, col - 1, 6);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
listView21.SetColor(row++, col - 1, 0);
|
||||
}
|
||||
|
||||
if (visdata.SID0.isEmpty())
|
||||
listView21.SetText(row, col, visdata.SID);
|
||||
else
|
||||
listView21.SetText(row, col, visdata.SID + "\n<< " + visdata.SID0);
|
||||
|
||||
listView21.SetColor(row++, col - 1, (ushort)(visdata.SID_Trust ? 6 : 0));
|
||||
|
||||
if (PUB.Result.ItemDataC.VisionData.QTYRQ)
|
||||
{
|
||||
listView21.SetText(row, col, "RQ:" + visdata.QTY);
|
||||
listView21.SetColor(row++, col - 1, 6);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (visdata.QTY.Equals("0")) listView21.SetText(row, col, string.Empty);
|
||||
else listView21.SetText(row, col, visdata.QTY);
|
||||
listView21.SetColor(row++, col - 1, (ushort)(visdata.QTY_Trust ? 6 : 0));
|
||||
}
|
||||
|
||||
listView21.SetText(row, col, visdata.VNAME); listView21.SetColor(row++, col - 1, (ushort)(visdata.VNAME_Trust ? 6 : 0));
|
||||
listView21.SetText(row, col, visdata.VLOT); listView21.SetColor(row++, col - 1, (ushort)(visdata.VLOT_Trust ? 6 : 0));
|
||||
listView21.SetText(row, col, visdata.MFGDATE); listView21.SetColor(row++, col - 1, (ushort)(visdata.MFGDATE_Trust ? 6 : 0));
|
||||
listView21.SetText(row, col, visdata.PARTNO); listView21.SetColor(row++, col - 1, (ushort)(visdata.PARTNO_Trust ? 6 : 0));
|
||||
|
||||
//lbSize1.Text = DIO.getCartSize(1) == eCartSize.None ? "?" : DIO.getCartSize(1).ToString();
|
||||
listView21.SetText(0, col, DIO.getCartSize(1) == eCartSize.None ? "?" : DIO.getCartSize(1).ToString());
|
||||
listView21.GetStyle(0, col - 1).ForeColor = AR.SETTING.Data.Detect_CartC ? Color.White : Color.Red;
|
||||
|
||||
listView21.SetText(row++, col, visdata.ReelSize == eCartSize.None ? "--" : visdata.ReelSize.ToString());
|
||||
|
||||
//Degree
|
||||
row++; //gridView2.setTitle(row++, 1, visdata.PARTNO);
|
||||
|
||||
//QR
|
||||
row++; //gridView2.setTitle(row++, 1, visdata.PARTNO);
|
||||
|
||||
//바코드수량
|
||||
//listView21.SetText(row, col-1, "BACD");
|
||||
listView21.SetText(row++, col, $"{visdata.barcodelist.Count}");
|
||||
|
||||
listView21.SetText(row, col - 1, "REGEX");
|
||||
listView21.SetText(row++, col, $"{PUB.Result.BCDPattern.Count}");
|
||||
|
||||
row++;//
|
||||
listView21.SetText(row, col - 1, "BATCH");
|
||||
listView21.SetText(row++, col, $"{visdata.BATCH}");
|
||||
|
||||
listView21.SetText(row, col - 1, "MAX");
|
||||
listView21.SetText(row++, col, $"{visdata.QTYMAX}");
|
||||
|
||||
var textcolor = visdata.Confirm ? 7 : 0;
|
||||
var crow = 1;
|
||||
listView21.SetColor(crow++, 3, textcolor);
|
||||
listView21.SetColor(crow++, 3, textcolor);
|
||||
listView21.SetColor(crow++, 3, textcolor);
|
||||
listView21.SetColor(crow++, 3, textcolor);
|
||||
listView21.SetColor(crow++, 3, textcolor);
|
||||
listView21.SetColor(crow++, 3, textcolor);
|
||||
listView21.SetColor(crow++, 3, textcolor);
|
||||
|
||||
//arLabel25.ForeColor = textColor;
|
||||
//listView21.SetColor(2, 1, (visdata.QTYRQ ? 3 : 1));
|
||||
}
|
||||
catch { }
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
var row = 1;
|
||||
var col = 5;
|
||||
Class.VisionData visdata = PUB.Result.ItemDataR.VisionData;
|
||||
listView21.SetText(row++, col, visdata.RID);
|
||||
listView21.SetText(row++, col, visdata.SID);
|
||||
listView21.SetText(row++, col, visdata.QTY);
|
||||
listView21.SetText(row++, col, visdata.VNAME);
|
||||
listView21.SetText(row++, col, visdata.VLOT);
|
||||
listView21.SetText(row++, col, visdata.MFGDATE);
|
||||
listView21.SetText(row++, col, visdata.PARTNO);
|
||||
listView21.SetText(row++, col, visdata.ReelSize == eCartSize.None ? "--" : visdata.ReelSize.ToString());
|
||||
|
||||
|
||||
if (PUB.flag.get(eVarBool.FG_ENABLE_RIGHT) == false)
|
||||
{
|
||||
sbVisTitle2.Text = "DISABLE";
|
||||
sbVisTitle2.BackColor = Color.Orange;
|
||||
sbVisTitle2.BackColor2 = Color.Tomato;
|
||||
}
|
||||
else
|
||||
{
|
||||
listView21.SetText(0, col, DIO.getCartSize(2) == eCartSize.None ? "?" : DIO.getCartSize(2).ToString());
|
||||
}
|
||||
|
||||
|
||||
listView21.GetStyle(0, col).ForeColor = AR.SETTING.Data.Detect_CartR ? Color.White : Color.Red;
|
||||
//lbSize2.Text = DIO.getCartSize(2) == eCartSize.None ? "?" : DIO.getCartSize(2).ToString();
|
||||
//lbSize2.ForeColor = COMM.SETTING.Data.Detect_CartR ? Color.White : Color.Red;
|
||||
|
||||
listView21.SetText(row, col, visdata.RID2);
|
||||
if (visdata.RID2.isEmpty() == false && visdata.RID.Equals(visdata.RID2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
|
||||
listView21.SetText(row, col, visdata.SID2);
|
||||
if (visdata.SID2.isEmpty() == false && visdata.SID.Equals(visdata.SID2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
|
||||
if (visdata.QTY2.Equals("0")) listView21.SetColor(row, col, 0);
|
||||
else listView21.SetText(row, col, visdata.QTY2);
|
||||
if (visdata.QTY2.isEmpty() == false && visdata.QTY2.Equals("0") == false && visdata.QTY.Equals(visdata.QTY2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
|
||||
|
||||
listView21.SetText(row, col, visdata.VNAME2);
|
||||
if (visdata.VNAME2.isEmpty() == false && visdata.VNAME.Equals(visdata.VNAME2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
|
||||
listView21.SetText(row, col, visdata.VLOT2);
|
||||
if (visdata.VLOT2.isEmpty() == false && visdata.VLOT.Equals(visdata.VLOT2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
|
||||
listView21.SetText(row, col, visdata.MFGDATE2);
|
||||
if (visdata.MFGDATE2.isEmpty() == false && visdata.MFGDATE.Equals(visdata.MFGDATE2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
|
||||
listView21.SetText(row, col, visdata.PARTNO2);
|
||||
if (visdata.PARTNO2.isEmpty() == false && visdata.PARTNO.Equals(visdata.PARTNO2) == false) listView21.SetColor(row++, col - 1, 2);
|
||||
else listView21.SetColor(row++, col - 1, 1);
|
||||
}
|
||||
catch { }
|
||||
|
||||
listView21.Invalidate();
|
||||
listView21.Refresh();
|
||||
|
||||
lbLock0.BackColor = l0 ? Color.FromArgb(0xff, 0x4c, 0x0e) : Color.FromArgb(32, 32, 32);
|
||||
lbLock0.BackColor2 = l0 ? Color.FromArgb(0xff, 0x4c, 0x0e) : Color.FromArgb(80, 80, 80);
|
||||
lbLock1.BackColor = l1 ? Color.FromArgb(0xff, 0x4c, 0x0e) : Color.FromArgb(32, 32, 32);
|
||||
lbLock1.BackColor2 = l1 ? Color.FromArgb(0xff, 0x4c, 0x0e) : Color.FromArgb(80, 80, 80);
|
||||
lbLock2.BackColor = l2 ? Color.FromArgb(0xff, 0x4c, 0x0e) : Color.FromArgb(32, 32, 32);
|
||||
lbLock2.BackColor2 = l2 ? Color.FromArgb(0xff, 0x4c, 0x0e) : Color.FromArgb(80, 80, 80);
|
||||
|
||||
//display mesasge
|
||||
UpdateStatusMessage(); //left
|
||||
}
|
||||
}
|
||||
}
|
||||
63
Handler/Project/RunCode/Display/_Interval_500ms.cs
Normal file
63
Handler/Project/RunCode/Display/_Interval_500ms.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using AR;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
public partial class FMain
|
||||
{
|
||||
|
||||
|
||||
void _Display_Interval_500ms()
|
||||
{
|
||||
|
||||
//홈진행중에는 모델쪽을 건드릴수 없게 한다
|
||||
toolStripButton7.Enabled = !PUB.sm.Step.ToString().StartsWith("HOME");
|
||||
//현재시간표시
|
||||
if (PUB.sm.Step == eSMStep.INIT)
|
||||
lbTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
else
|
||||
lbTime.Text = PUB.sm.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
//키엔스 데이터를 바로 표시한다.
|
||||
tbBarcodeF.Text = KeyenceBarcodeDataF;
|
||||
tbBarcodeR.Text = KeyenceBarcodeDataR;
|
||||
|
||||
lbCntLeft.Text = $"{VAR.I32[eVarInt32.LPickOfCount]}";
|
||||
lbCntRight.Text = $"{VAR.I32[eVarInt32.RPickOfCount]}";
|
||||
lbCntPicker.Text = $"{VAR.I32[eVarInt32.PickOfCount]}";
|
||||
//lbCntPrnL.Text = $"{PUB.counter.CountPrintL}";
|
||||
//lbCnrPrnR.Text = $"{PUB.counter.CountPrintR}";
|
||||
|
||||
if (AR.SETTING.Data.Enable_SpeedLimit)
|
||||
grpProgress.Text = $"작업 수량(속도제한:{AR.SETTING.Data.LimitSpeed})";
|
||||
else
|
||||
grpProgress.Text = $"작업 수량";
|
||||
|
||||
//display Room Light
|
||||
btLightRoom.BackColor = DIO.GetIOOutput(eDOName.ROOMLIGHT) ? Color.Gold : SystemColors.Control;
|
||||
|
||||
//상태를 DB에 저장한다.
|
||||
EEMStatus.UpdateStatusSQL(PUB.sm.Step);
|
||||
|
||||
//컨베이어 가동시간계싼
|
||||
if(DIO.GetIOOutput(eDOName.LEFT_CONV) && VAR.TIME[eVarTime.CONVL_START].Year != 1982)
|
||||
{
|
||||
var t = (DateTime.Now - VAR.TIME[eVarTime.CONVL_START]).TotalSeconds;
|
||||
if (t > 999) t = 999;
|
||||
VAR.DBL[eVarDBL.CONVL_RUNTIME] = t;
|
||||
}
|
||||
|
||||
if (DIO.GetIOOutput(eDOName.RIGHT_CONV) && VAR.TIME[eVarTime.CONVR_START].Year != 1982)
|
||||
{
|
||||
var t = (DateTime.Now - VAR.TIME[eVarTime.CONVR_START]).TotalSeconds;
|
||||
if (t > 999) t = 999;
|
||||
VAR.DBL[eVarDBL.CONVR_RUNTIME] = t;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
20
Handler/Project/RunCode/Display/_Interval_5min.cs
Normal file
20
Handler/Project/RunCode/Display/_Interval_5min.cs
Normal file
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
public partial class FMain
|
||||
{
|
||||
|
||||
void _Display_Interval_5min()
|
||||
{
|
||||
//남은디스크확인
|
||||
PUB.CheckFreeSpace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
370
Handler/Project/RunCode/Display/_TMDisplay.cs
Normal file
370
Handler/Project/RunCode/Display/_TMDisplay.cs
Normal file
@@ -0,0 +1,370 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using AR;
|
||||
namespace Project
|
||||
{
|
||||
public partial class FMain
|
||||
{
|
||||
DateTime tm500minute = DateTime.Now.AddDays(-1);
|
||||
DateTime tm250minute = DateTime.Now.AddDays(-1);
|
||||
DateTime tm1minute = DateTime.Now.AddDays(-1);
|
||||
DateTime tm5minute = DateTime.Now;
|
||||
Boolean displayOn = false;
|
||||
Boolean needShowSummary = false;
|
||||
|
||||
|
||||
private void _DisplayTimer(object sender, EventArgs e)
|
||||
{
|
||||
if (displayOn == false) displayOn = true;
|
||||
else
|
||||
{
|
||||
PUB.log.AddAT("Display Timer Overlab");// Console.WriteLine("display overlab");
|
||||
return;
|
||||
}
|
||||
|
||||
//lbOnline.Text = COMM.SETTING.Data.OnlineMode ? "ON-LINE" : "OFF-LINE";
|
||||
//lbOnline.ForeColor = COMM.SETTING.Data.OnlineMode ? Color.Black : Color.Red;
|
||||
//toolStripLabel1.Visible = Pub.Result.DryRun;
|
||||
//if(Pub.Result.DryRun)
|
||||
//{
|
||||
// if (toolStripLabel1.ForeColor == Color.Red) toolStripLabel1.ForeColor = Color.Black;
|
||||
// else toolStripLabel1.ForeColor = Color.Red;
|
||||
//}
|
||||
try
|
||||
{
|
||||
UpdateDisplayTimerData();
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//작업수량 업데이트
|
||||
UpdateJobCount();
|
||||
|
||||
#region "250ms time 루틴"
|
||||
var ts250 = DateTime.Now - tm250minute;
|
||||
if (ts250.TotalMilliseconds >= 250)
|
||||
{
|
||||
_Display_Interval_250ms();
|
||||
tm250minute = DateTime.Now;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region "500ms time 루틴"
|
||||
var ts500 = DateTime.Now - tm500minute;
|
||||
if (ts500.TotalMilliseconds >= 500)
|
||||
{
|
||||
_Display_Interval_500ms();
|
||||
tm500minute = DateTime.Now;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region retgion"1분 time 루틴"
|
||||
var ts = DateTime.Now - tm1minute;
|
||||
if (ts.TotalMinutes >= 1)
|
||||
{
|
||||
//리셋카운트
|
||||
_Display_Interval_1min();
|
||||
tm1minute = DateTime.Now;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region retgion"5분 time 루틴"
|
||||
ts = DateTime.Now - tm5minute;
|
||||
if (ts.TotalMinutes >= 5)
|
||||
{
|
||||
//남은디스크확인
|
||||
_Display_Interval_5min();
|
||||
tm5minute = DateTime.Now;
|
||||
}
|
||||
#endregion
|
||||
|
||||
displayOn = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void UpdateDisplayTimerData()
|
||||
{
|
||||
if (PUB.sm.Step > eSMStep.INIT &&
|
||||
panTopMenu.Enabled == false) panTopMenu.Enabled = true;
|
||||
|
||||
//쓰레드로인해서 메인에서 진행하게한다. SPS는 메인쓰레드에서 진행 됨
|
||||
//팝을 제거 혹은 표시하는 기능
|
||||
if (PUB.popup.needShow) PUB.popup.showMessage();
|
||||
else if (PUB.popup.needClose) PUB.popup.Visible = false; // .setVision(false)();
|
||||
|
||||
|
||||
|
||||
////업로드화면을 표시해야하느 ㄴ경우
|
||||
if (needShowSummary)
|
||||
{
|
||||
ShowSummary();
|
||||
needShowSummary = false;
|
||||
}
|
||||
|
||||
//시스템 정보를 메인 UI에 표시한다
|
||||
UpdateLoaderDisplay();
|
||||
|
||||
|
||||
}
|
||||
void UpdateJobCount()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void UpdateLoaderDisplay()
|
||||
{
|
||||
hmi1.L_PICK_FW = DIO.GetIOInput(eDIName.L_PICK_FW); //피커의 실린더 전후진 상태
|
||||
hmi1.L_PICK_BW = DIO.GetIOInput(eDIName.L_PICK_BW); //피커의 실린더 전후진 상태
|
||||
hmi1.R_PICK_FW = DIO.GetIOInput(eDIName.R_PICK_FW); //피커의 실린더 전후진 상태
|
||||
hmi1.R_PICK_BW = DIO.GetIOInput(eDIName.R_PICK_BW); //피커의 실린더 전후진 상태
|
||||
|
||||
hmi1.PrintLPICK = DIO.GetIOInput(eDIName.L_PICK_VAC);
|
||||
hmi1.PrintRPICK = DIO.GetIOInput(eDIName.R_PICK_VAC);
|
||||
|
||||
hmi1.arJoystickGroup = PUB.Result.JoystickAxisGroup;
|
||||
hmi1.arJoystickOn = PUB.joystick.IsOpen;
|
||||
|
||||
hmi1.arPortLItemOn = PUB.flag.get(eVarBool.FG_PORTL_ITEMON);
|
||||
hmi1.arPortRItemOn = PUB.flag.get(eVarBool.FG_PORTR_ITEMON);
|
||||
|
||||
hmi1.arPLItemON = PUB.flag.get(eVarBool.FG_PL_ITEMON);
|
||||
hmi1.arPRItemON = PUB.flag.get(eVarBool.FG_PR_ITEMON);
|
||||
|
||||
hmi1.arFGVision0RDY = PUB.flag.get(eVarBool.FG_PRC_VISIONL);
|
||||
hmi1.arFGVision1RDY = false;// PUB.flag.get(eVarBool.RDY_VISION1);
|
||||
hmi1.arFGVision2RDY = PUB.flag.get(eVarBool.FG_PRC_VISIONR);
|
||||
|
||||
hmi1.arFGVision0END = PUB.flag.get(eVarBool.FG_END_VISIONL);
|
||||
hmi1.arFGVision1END = false;// PUB.flag.get(eVarBool.END_VISION1);
|
||||
hmi1.arFGVision2END = PUB.flag.get(eVarBool.FG_END_VISIONR);
|
||||
|
||||
hmi1.arFGPrinter0RDY = PUB.flag.get(eVarBool.FG_RUN_PRINTL);
|
||||
hmi1.arFGPrinter1RDY = PUB.flag.get(eVarBool.FG_RUN_PRINTR);
|
||||
|
||||
hmi1.arFGPrinter0END = PUB.flag.get(eVarBool.FG_OK_PRINTL);
|
||||
hmi1.arFGPrinter1END = PUB.flag.get(eVarBool.FG_OK_PRINTR);
|
||||
|
||||
hmi1.arMagnet0 = DIO.GetIOOutput(eDOName.CART_MAG0);
|
||||
hmi1.arMagnet1 = DIO.GetIOOutput(eDOName.CART_MAG1);
|
||||
hmi1.arMagnet2 = DIO.GetIOOutput(eDOName.CART_MAG2);
|
||||
|
||||
hmi1.arPickerSafeZone = DIO.GetIOInput(eDIName.PICKER_SAFE);
|
||||
|
||||
hmi1.arMotPosNamePX = MOT.GetPosName(eAxis.PX_PICK);
|
||||
hmi1.arMotPosNamePZ = MOT.GetPosName(eAxis.PZ_PICK);
|
||||
hmi1.arMotPosNameLM = MOT.GetPosName(eAxis.PL_MOVE);
|
||||
hmi1.arMotPosNameLZ = MOT.GetPosName(eAxis.PL_UPDN);
|
||||
hmi1.arMotPosNameRM = MOT.GetPosName(eAxis.PR_MOVE);
|
||||
hmi1.arMotPosNameRZ = MOT.GetPosName(eAxis.PR_UPDN);
|
||||
|
||||
hmi1.arMotILockPKX = PUB.iLock[(int)eAxis.PX_PICK].IsEmpty() == false;
|
||||
hmi1.arMotILockPKZ = PUB.iLock[(int)eAxis.PZ_PICK].IsEmpty() == false;
|
||||
hmi1.arMotILockPLM = PUB.iLock[(int)eAxis.PL_MOVE].IsEmpty() == false;
|
||||
hmi1.arMotILockPLZ = PUB.iLock[(int)eAxis.PL_UPDN].IsEmpty() == false;
|
||||
hmi1.arMotILockPRM = PUB.iLock[(int)eAxis.PR_MOVE].IsEmpty() == false;
|
||||
hmi1.arMotILockPRZ = PUB.iLock[(int)eAxis.PR_UPDN].IsEmpty() == false;
|
||||
|
||||
hmi1.arMotILockPRL = PUB.iLockPRL.IsEmpty() == false;
|
||||
hmi1.arMotILockPRR = PUB.iLockPRR.IsEmpty() == false;
|
||||
hmi1.arMotILockVS0 = PUB.iLockVS0.IsEmpty() == false;
|
||||
hmi1.arMotILockVS1 = PUB.iLockVS1.IsEmpty() == false;
|
||||
hmi1.arMotILockVS2 = PUB.iLockVS2.IsEmpty() == false;
|
||||
hmi1.arMotILockCVL = PUB.iLockCVL.IsEmpty() == false;
|
||||
hmi1.arMotILockCVR = PUB.iLockCVR.IsEmpty() == false;
|
||||
|
||||
hmi1.arIsRunning = PUB.sm.isRunning;
|
||||
hmi1.arUnloaderSeq = PUB.Result.UnloaderSeq;
|
||||
|
||||
//연결상태
|
||||
hmi1.arConn_MOT = PUB.mot.IsInit;
|
||||
hmi1.arConn_DIO = PUB.dio.IsInit;
|
||||
hmi1.arAIRDetect = DIO.GetIOInput(eDIName.AIR_DETECT);
|
||||
hmi1.arJobEND = PUB.flag.get(eVarBool.FG_JOB_END);
|
||||
hmi1.arConn_REM = PUB.remocon.IsOpen();
|
||||
|
||||
hmi1.arDI_Emergency = DIO.GetIOInput(eDIName.BUT_EMGF) == true;
|
||||
hmi1.arDI_SaftyOk = DIO.isSaftyDoorF();
|
||||
|
||||
hmi1.arVisionProcessL = PUB.flag.get(eVarBool.FG_PRC_VISIONL);
|
||||
hmi1.arVisionProcessC = false;// PUB.flag.get(eVarBool.RDY_VISION1);
|
||||
hmi1.arVisionProcessR = PUB.flag.get(eVarBool.FG_PRC_VISIONR);
|
||||
|
||||
try
|
||||
{
|
||||
hmi1.arVision_RID = PUB.Result.ItemDataC.VisionData.RID; //200925
|
||||
hmi1.arVision_SID = PUB.Result.ItemDataC.VisionData.SID; //200925
|
||||
hmi1.arVar_Picker[0].PortPos = PUB.Result.ItemDataL.PortPos; //200925
|
||||
}
|
||||
catch { }
|
||||
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
if (PUB.mot != null && PUB.mot.IsInit)
|
||||
{
|
||||
hmi1.arMOT_HSet[i] = PUB.mot.IsHomeSet(i);
|
||||
hmi1.arMOT_Alm[i] = PUB.mot.IsServAlarm(i);
|
||||
hmi1.arMOT_LimUp[i] = PUB.mot.IsLimitP(i);
|
||||
hmi1.arMOT_LimDn[i] = PUB.mot.IsLimitN(i);
|
||||
hmi1.arMOT_Origin[i] = PUB.mot.IsOrg(i);
|
||||
hmi1.arMOT_SVOn[i] = PUB.mot.IsServOn(i);
|
||||
}
|
||||
else
|
||||
{
|
||||
hmi1.arMOT_HSet[i] = false;
|
||||
hmi1.arMOT_Alm[i] = false;
|
||||
hmi1.arMOT_LimUp[i] = false;
|
||||
hmi1.arMOT_LimDn[i] = false;
|
||||
hmi1.arMOT_Origin[i] = false;
|
||||
hmi1.arMOT_SVOn[i] = false;
|
||||
}
|
||||
}
|
||||
|
||||
//포트 리밋센서
|
||||
hmi1.arVar_Port[0].LimitLower = DIO.GetIOInput(eDIName.PORTL_LIM_DN); //front-left
|
||||
hmi1.arVar_Port[0].LimitUpper = DIO.GetIOInput(eDIName.PORTL_LIM_UP);
|
||||
hmi1.arVar_Port[0].DetectUp = DIO.GetIOInput(eDIName.PORTL_DET_UP);
|
||||
hmi1.arVar_Port[0].SaftyErr = !DIO.isSaftyDoorF(0, false);
|
||||
hmi1.arVar_Port[0].reelCount = PUB.counter.CountP0;
|
||||
hmi1.arVar_Port[0].CartSize = (int)DIO.getCartSize(0);
|
||||
|
||||
hmi1.arVar_Port[1].LimitLower = DIO.GetIOInput(eDIName.PORTC_LIM_DN); //front-right
|
||||
hmi1.arVar_Port[1].LimitUpper = DIO.GetIOInput(eDIName.PORTC_LIM_UP);
|
||||
hmi1.arVar_Port[1].DetectUp = DIO.GetIOInput(eDIName.PORTC_DET_UP);
|
||||
hmi1.arVar_Port[1].SaftyErr = !DIO.isSaftyDoorF(1, false);
|
||||
hmi1.arVar_Port[1].reelCount = PUB.counter.CountP1;
|
||||
hmi1.arVar_Port[1].CartSize = (int)DIO.getCartSize(1);
|
||||
|
||||
hmi1.arVar_Port[2].LimitLower = DIO.GetIOInput(eDIName.PORTR_LIM_DN); //front-left
|
||||
hmi1.arVar_Port[2].LimitUpper = DIO.GetIOInput(eDIName.PORTR_LIM_UP);
|
||||
hmi1.arVar_Port[2].DetectUp = DIO.GetIOInput(eDIName.PORTR_DET_UP);
|
||||
hmi1.arVar_Port[2].SaftyErr = !DIO.isSaftyDoorF(2, false);
|
||||
hmi1.arVar_Port[2].reelCount = PUB.counter.CountP2;
|
||||
hmi1.arVar_Port[2].CartSize = (int)DIO.getCartSize(2);
|
||||
|
||||
hmi1.arCountPrint0 = PUB.counter.CountPrintL;
|
||||
hmi1.arCountPrint1 = PUB.counter.CountPrintR;
|
||||
|
||||
if (VAR.BOOL[eVarBool.Use_Conveyor])
|
||||
{
|
||||
hmi1.arVar_Port[0].reelCount = VAR.I32[eVarInt32.LEFT_ITEM_COUNT];
|
||||
hmi1.arVar_Port[2].reelCount = VAR.I32[eVarInt32.RIGT_ITEM_COUNT];
|
||||
}
|
||||
|
||||
hmi1.arCountV1 = PUB.counter.CountV1;
|
||||
hmi1.arCountV0 = PUB.counter.CountV0;
|
||||
hmi1.arCountV2 = PUB.counter.CountV2;
|
||||
|
||||
//피커 백큠감지 상태(Front)
|
||||
hmi1.arVar_Picker[0].VacOutput[0] = DIO.GetIOOutput(eDOName.PICK_VAC1);
|
||||
hmi1.arVar_Picker[0].VacOutput[1] = DIO.GetIOOutput(eDOName.PICK_VAC2);
|
||||
hmi1.arVar_Picker[0].VacOutput[2] = DIO.GetIOOutput(eDOName.PICK_VAC3);
|
||||
hmi1.arVar_Picker[0].VacOutput[3] = DIO.GetIOOutput(eDOName.PICK_VAC4);
|
||||
hmi1.arVar_Picker[0].ItemOn = PUB.flag.get(eVarBool.FG_PK_ITEMON);
|
||||
}
|
||||
|
||||
|
||||
Color StatusBackColor = Color.FromArgb(150, 150, 150);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 상태표시라벨의 진행값을 변경 합니다
|
||||
/// </summary>
|
||||
/// <param name="idx"></param>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="max"></param>
|
||||
/// <param name="title"></param>
|
||||
void SetStatusProgress(double value, string title, double max = 0, Color? textColor = null, Color? shadowColor = null)
|
||||
{
|
||||
arCtl.arLabel lbl = lbMsg;//idx == 0 ? lbMsgL : (idx == 1 ? lbMsgC : (idx == 2 ? lbMsgR : lbMsg));
|
||||
|
||||
if (lbl.ProgressEnable == false) lbl.ProgressEnable = true;
|
||||
if (lbl.ProgressValue != value) lbl.ProgressValue = (float)value;
|
||||
if (lbl.Text != title) lbl.Text = title;
|
||||
|
||||
if (max != 0)
|
||||
{
|
||||
if (lbl.ProgressMax != max) lbl.ProgressMax = (float)max;
|
||||
}
|
||||
if (textColor != null)
|
||||
{
|
||||
if (lbl.ProgressForeColor != textColor) lbl.ProgressForeColor = (Color)textColor;
|
||||
}
|
||||
if (shadowColor != null)
|
||||
{
|
||||
if (lbl.ShadowColor != shadowColor) lbl.ShadowColor = (Color)shadowColor;
|
||||
}
|
||||
}
|
||||
|
||||
///// <summary>
|
||||
///// 상태표시라벨의 메세지를 변경 합니다
|
||||
///// </summary>
|
||||
///// <param name="idx"></param>
|
||||
///// <param name="dispmsg"></param>
|
||||
///// <param name="bColor"></param>
|
||||
///// <param name="bColor2"></param>
|
||||
///// <param name="fcolor"></param>
|
||||
///// <param name="shadow"></param>
|
||||
///// <param name="blank"></param>
|
||||
//void SetStatusMessage(string dispmsg, Color bColor, Color bColor2, Color fcolor, Color? shadow = null, Boolean blank = false)
|
||||
//{
|
||||
// arCtl.arLabel lbl = lbMsg;//idx == 0 ? lbMsgL : (idx == 1 ? lbMsgC : (idx == 2 ? lbMsgR : lbMsg));
|
||||
// if (shadow == null) shadow = Color.Transparent;
|
||||
// if (lbl.ProgressValue != 0 || dispmsg != lbl.Text || lbl.ForeColor != fcolor || lbl.ShadowColor != (Color)shadow || (lbl.BackColor != bColor && lbl.BackColor2 != bColor))
|
||||
// {
|
||||
// lbl.ProgressValue = 0;
|
||||
// lbl.BackColor = bColor;
|
||||
// lbl.BackColor2 = bColor2;
|
||||
// lbl.ForeColor = fcolor;
|
||||
// lbl.ShadowColor = (Color)shadow;
|
||||
// lbl.Text = dispmsg;
|
||||
// if (blank) lbl.Tag = "BLINK";
|
||||
// else lbl.Tag = null;
|
||||
// }
|
||||
//}
|
||||
|
||||
void SetStatusMessage(string dispmsg, Color fcolor, Color backcolor, Color? backColor2 = null, Color? shadow = null, Boolean blank = false)
|
||||
{
|
||||
arCtl.arLabel lbl = lbMsg;//idx == 0 ? lbMsgL : (idx == 1 ? lbMsgC : (idx == 2 ? lbMsgR : lbMsg));
|
||||
|
||||
if (shadow == null) shadow = Color.Transparent;
|
||||
if (backColor2 == null) backColor2 = backcolor;
|
||||
|
||||
var bg1ok = lbl.BackColor == backcolor && lbl.BackColor2 == backColor2;
|
||||
var bg2ok = lbl.BackColor2 == backcolor && lbl.BackColor == backColor2;
|
||||
|
||||
|
||||
if (lbl.ProgressValue != 0 || dispmsg != lbl.Text ||
|
||||
lbl.ForeColor != fcolor || lbl.ShadowColor != (Color)shadow || (bg1ok == false && bg2ok == false))
|
||||
{
|
||||
lbl.ProgressValue = 0;
|
||||
lbl.BackColor = backcolor;
|
||||
lbl.BackColor2 = (Color)backColor2;
|
||||
|
||||
lbl.ForeColor = fcolor;
|
||||
lbl.ShadowColor = (Color)shadow;
|
||||
lbl.Text = dispmsg;
|
||||
if (blank) lbl.Tag = "BLINK";
|
||||
else lbl.Tag = null;
|
||||
}
|
||||
else if (lbl.ProgressEnable)
|
||||
{
|
||||
lbl.ProgressEnable = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
208
Handler/Project/RunCode/Display/_UpdateStatusMessage.cs
Normal file
208
Handler/Project/RunCode/Display/_UpdateStatusMessage.cs
Normal file
@@ -0,0 +1,208 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using AR;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
public partial class FMain
|
||||
{
|
||||
/// <summary>
|
||||
/// 상태표시라벨의 메세지 자동 변경
|
||||
/// </summary>
|
||||
/// <param name="idx"></param>
|
||||
void UpdateStatusMessage()
|
||||
{
|
||||
arCtl.arLabel lbl = lbMsg;
|
||||
|
||||
//메세지창이 깜박거려야하는 상황 체크
|
||||
if (lbl.Tag != null && lbl.Tag.ToString() == "BLINK")
|
||||
{
|
||||
var bg1 = lbl.BackColor;
|
||||
var bg2 = lbl.BackColor2;
|
||||
lbl.BackColor = bg2;
|
||||
lbl.BackColor2 = bg1;
|
||||
lbl.Invalidate();
|
||||
}
|
||||
|
||||
if (PUB.sm.Step == eSMStep.INIT)
|
||||
{
|
||||
SetStatusMessage("초기화 작업 중", Color.White, Color.FromArgb(0x38, 0x4d, 0x9d));
|
||||
}
|
||||
else if (PUB.sm.Step == eSMStep.IDLE)
|
||||
{
|
||||
//각종 IO확인하여 에러메세지 표시한다
|
||||
|
||||
var msg = string.Empty;
|
||||
bool errst = true;
|
||||
if (PUB.mot.IsInit == false) msg = "모션 카드 준비 안됨";
|
||||
else if (PUB.dio.IsInit == false) msg = "I/O 카드 준비 안됨";
|
||||
else if (PUB.dio.HasDIOn == false) msg = "전원 확인 필요 (입력포트 감지 안됨)";
|
||||
else if (PUB.mot.HasServoAlarm == true) msg = "서보 알람 발생";
|
||||
else if (PUB.mot.HasHoming == true) msg = "홈 검색 진행 중";
|
||||
else if (PUB.mot.HasServoOff == true) msg = "서보 OFF 발생";
|
||||
else if (DIO.GetIOOutput(eDOName.SOL_AIR) == false) msg = "AIR 출력 안됨(전면 청색 AIR버튼을 누르세요)";
|
||||
else if (DIO.GetIOInput(eDIName.AIR_DETECT) == false) msg = "AIR 감지 안됨";
|
||||
else if (PUB.mot.HasHomeSetOff == true)
|
||||
{
|
||||
if (DIO.GetIOInput(eDIName.PICKER_SAFE) == false)
|
||||
{
|
||||
msg = "피커(X)축을 중앙으로 옮겨주세요 (기능-관리화면)";
|
||||
}
|
||||
else
|
||||
{
|
||||
msg = "홈 검색이 필요 합니다";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
var limport = new List<string>();
|
||||
if (PUB.mot.HasLimitError == true)
|
||||
{
|
||||
for (int i = 0; i < PUB.system.MotaxisCount; i++)
|
||||
{
|
||||
if (PUB.mot.IsUse(i) == false) continue;
|
||||
if (PUB.mot.IsLimitN(i))
|
||||
{
|
||||
var useOrgSensor = PUB.system_mot.GetUseOrigin;
|
||||
if (useOrgSensor[i] == true) limport.Add(i.ToString());
|
||||
}
|
||||
else if (PUB.mot.IsLimitP(i))
|
||||
limport.Add(i.ToString());
|
||||
else if (PUB.mot.IsLimitSWN(i))
|
||||
limport.Add(i.ToString());
|
||||
else if (PUB.mot.IsLimitSWP(i))
|
||||
limport.Add(i.ToString());
|
||||
}
|
||||
}
|
||||
if (limport.Any())
|
||||
{
|
||||
msg = "서보 LIMIT 알람 발생(Ax:" + string.Join(",", limport) + ")";
|
||||
}
|
||||
else
|
||||
{
|
||||
msg = "작업을 시작 하려면 START를 누르세요";
|
||||
errst = false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (errst)
|
||||
{
|
||||
SetStatusMessage(msg, Color.White, Color.Red, Color.IndianRed, Color.DimGray, blank: true);
|
||||
}
|
||||
else
|
||||
{
|
||||
Color fColor = Color.FromArgb(200, 200, 200);
|
||||
Color bColor1 = Color.DimGray;
|
||||
Color bColor2 = Color.DarkGray;
|
||||
|
||||
SetStatusMessage(msg, Color.Lime, bColor1, bColor2, Color.Black, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else if (PUB.sm.Step == eSMStep.WAITSTART)
|
||||
{
|
||||
SetStatusMessage("[시작 대기] ", Color.Gold, Color.FromArgb(50, 50, 50));
|
||||
}
|
||||
else if (PUB.sm.Step == eSMStep.ERROR)
|
||||
{
|
||||
var msglis = PUB.Result.ResultMessage.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
SetStatusMessage($"{msglis[0]}", Color.White, Color.Red);
|
||||
}
|
||||
else if (PUB.sm.Step == eSMStep.PAUSE)
|
||||
{
|
||||
SetStatusMessage("[일시 정지] ", Color.Gold, Color.FromArgb(50, 50, 50));
|
||||
}
|
||||
else if (PUB.sm.Step == eSMStep.HOME_FULL)// || Pub.sm.Step == eSMStep.QHOME)
|
||||
{
|
||||
SetStatusMessage($"전체 모션의 원점을 확인하고 있습니다", Color.White, Color.FromArgb(0x98, 0x79, 0xd0), shadow: Color.DimGray);
|
||||
}
|
||||
else if (PUB.sm.Step == eSMStep.HOME_DELAY)// || Pub.sm.Step == eSMStep.QHOME)
|
||||
{
|
||||
SetStatusMessage($"잠시만 기다려 주세요(홈 진행 중)", Color.White, Color.FromArgb(0x98, 0x79, 0xd0), shadow: Color.DimGray);
|
||||
}
|
||||
else if (PUB.sm.Step == eSMStep.HOME_CONFIRM)// || Pub.sm.Step == eSMStep.QHOME)
|
||||
{
|
||||
SetStatusMessage($"홈 작업을 완료 하는 중", Color.White, Color.FromArgb(0x98, 0x79, 0xd0), shadow: Color.DimGray);
|
||||
}
|
||||
else if (PUB.sm.Step == eSMStep.RUN)
|
||||
{
|
||||
|
||||
double cur = PUB.sm.seq.GetTime(PUB.sm.Step).TotalSeconds;
|
||||
double max = AR.SETTING.Data.Timeout_StepMaxTime;
|
||||
string msg = $"진행 중";
|
||||
Color fColor = Color.Gold;
|
||||
|
||||
if (PUB.flag.get(eVarBool.FG_JOB_END))
|
||||
{
|
||||
msg = "로더가 비어 있습니다. 잠시 후 작업이 완료 됩니다";
|
||||
cur = max = 0;
|
||||
fColor = Color.Lime;
|
||||
|
||||
}
|
||||
else if (PUB.flag.get(eVarBool.FG_WAIT_LOADERINFO))
|
||||
{
|
||||
msg = "사용자 정보 입력을 기다리고 있습니다";
|
||||
cur = 100;
|
||||
max = 100;
|
||||
}
|
||||
else //if (PUB.flag.get(eVarBool.RDY_VISION1) == true && PUB.flag.get(eVarBool.RDY_PORT_PC) == true && idx == 9)
|
||||
{
|
||||
msg = "작업 중";
|
||||
if (PUB.flag.get(eVarBool.FG_PRC_VISIONL) && PUB.flag.get(eVarBool.FG_END_VISIONL) == false)
|
||||
msg += "(LEFT-QR검증중)";
|
||||
if (PUB.flag.get(eVarBool.FG_PRC_VISIONR) && PUB.flag.get(eVarBool.FG_END_VISIONR) == false)
|
||||
msg += "(RIGHT-QR검증중)";
|
||||
|
||||
//컨베이어 사용모드에서 컨베이어 인터락 검사
|
||||
if (VAR.BOOL[eVarBool.Use_Conveyor])
|
||||
{
|
||||
if (DIO.GetIOInput(eDIName.R_CONV1) || DIO.GetIOInput(eDIName.R_CONV4))
|
||||
{
|
||||
if (PUB.iLockCVR.IsEmpty() == false)
|
||||
msg += "(우측컨베이어 인터락 해제 대기)";
|
||||
}
|
||||
if (DIO.GetIOInput(eDIName.L_CONV1) || DIO.GetIOInput(eDIName.L_CONV4))
|
||||
{
|
||||
if (PUB.iLockCVL.IsEmpty() == false)
|
||||
msg += "(좌측컨베이어 인터락 해제 대기)";
|
||||
}
|
||||
}
|
||||
|
||||
cur = VAR.TIME.RUN((int)eVarTime.LIVEVIEW1).TotalSeconds;
|
||||
max = AR.SETTING.Data.Timeout_VisionProcessL / 1000.0;
|
||||
}
|
||||
//else if (PUB.flag.get(eVarBool.RDY_ZL_PICKON))
|
||||
//{
|
||||
// var ts = DateTime.Now - Pub.GetVarTime(eVarTime.JOB_END);
|
||||
// msg = string.Format("UNLOADER PICK ON #{0}", PUB.sm.seq.Get(step));
|
||||
// cur = Pub.getRunSteptime(0).TotalSeconds;//ts.TotalSeconds;
|
||||
// max = 10;//COMM.SETTING.Data.Timeout_JOBEnd;
|
||||
//}
|
||||
//else if (PUB.mot.IsMotion((int)eAxis.Y_PICKER])
|
||||
//{
|
||||
// msg = string.Format("이동 중");
|
||||
// cur = 0;// Pub.getRunSteptime(0).TotalSeconds;// ts.TotalSeconds;
|
||||
// max = 10;//COMM.SETTING.Data.Timeout_JOBEnd;
|
||||
//}
|
||||
SetStatusProgress(cur, msg, max, fColor, Color.FromArgb(50, 50, 50));
|
||||
}
|
||||
else if (PUB.flag.get(eVarBool.FG_MOVE_PICKER))
|
||||
{
|
||||
SetStatusMessage("X축을 버튼으로 이동 가능 합니다", Color.Black, Color.White);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetStatusMessage("[" + PUB.sm.Step.ToString() + "]", Color.Red, Color.White);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user