107 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Drawing;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using AR;
 | |
| using arDev;
 | |
| 
 | |
| namespace Project
 | |
| {
 | |
|     public partial class FMain
 | |
|     {
 | |
| 
 | |
|         void Lock_ValueChanged(object sender, AR.InterfaceValueEventArgs e)
 | |
|         {
 | |
| 
 | |
|             //인터락플래그 변경 이벤트
 | |
|             var iL = sender as AR.CInterLock;
 | |
|             var tagstr = (iL.Tag == null ? string.Empty : iL.Tag.ToString());
 | |
|             var fgstr = $"[{e.ArrIDX}]";
 | |
| 
 | |
|             if (tagstr == "PKX") fgstr = ((eILock)e.ArrIDX).ToString();
 | |
|             else if (tagstr == "PKZ") fgstr = ((eILock)e.ArrIDX).ToString();
 | |
|             else if (tagstr == "PKT") fgstr = ((eILock)e.ArrIDX).ToString();
 | |
|             else if (tagstr == "PLM") fgstr = ((eILock)e.ArrIDX).ToString();
 | |
|             else if (tagstr == "PLZ") fgstr = ((eILock)e.ArrIDX).ToString();
 | |
|             else if (tagstr == "PRM") fgstr = ((eILock)e.ArrIDX).ToString();
 | |
|             else if (tagstr == "PRZ") fgstr = ((eILock)e.ArrIDX).ToString();
 | |
|             else if (tagstr == "PRL") fgstr = ((eILockPRL)e.ArrIDX).ToString();
 | |
|             else if (tagstr == "PRR") fgstr = ((eILockPRR)e.ArrIDX).ToString();
 | |
|             else if (tagstr == "VS0") fgstr = ((eILockVS0)e.ArrIDX).ToString();
 | |
|             else if (tagstr == "VS1") fgstr = ((eILockVS1)e.ArrIDX).ToString();
 | |
|             else if (tagstr == "VS2") fgstr = ((eILockVS2)e.ArrIDX).ToString();
 | |
| 
 | |
|             else if (tagstr == "CVL") fgstr = ((eILockCV)e.ArrIDX).ToString();
 | |
|             else if (tagstr == "CVR") fgstr = ((eILockCV)e.ArrIDX).ToString();
 | |
| 
 | |
|             //else fgstr = "?";
 | |
| 
 | |
|             //최초생성시에는 값을 표시한다
 | |
|             if (PUB.sm.Step >= eSMStep.IDLE && PUB.sm.Step != eSMStep.HOME_FULL)
 | |
|             {
 | |
|                 if (e.NewOn)
 | |
|                 {
 | |
|                     if (tagstr == "PKX" && PUB.mot.IsMotion(0) == true)
 | |
|                     {
 | |
|                         Console.WriteLine("ㅠㅠ");
 | |
|                     }
 | |
|                     if (AR.SETTING.Data.Log_ILock)
 | |
|                         PUB.log.Add(string.Format("[IL-ON:{2}] {0}:{1}", fgstr, e.Reason, tagstr));
 | |
|                     if (AR.SETTING.Data.Enable_Log_ILock)
 | |
|                         PUB.logILock.Add("ON", $"{fgstr}:{e.Reason}");
 | |
|                 }
 | |
|                 else if (e.NewOff)
 | |
|                 {
 | |
|                     if (AR.SETTING.Data.Log_ILock)
 | |
|                         PUB.log.Add(string.Format("[IL-OF:{2}] {0}:{1}", fgstr, e.Reason, tagstr));
 | |
|                     if (AR.SETTING.Data.Enable_Log_ILock)
 | |
|                         PUB.logILock.Add("OF", $"{fgstr}:{e.Reason}");
 | |
|                 }
 | |
| 
 | |
|                 var logmsg = "#### ILOCK(" + tagstr + ")변경 : " + fgstr + "(" + e.ArrIDX.ToString() + ") 값:" + e.NewValue.ToString() + ",사유:" + e.Reason;
 | |
| 
 | |
|                 //ILOck 로그에 기록
 | |
|                 if (AR.SETTING.Data.Enable_Log_ILock) PUB.logILock.Add(logmsg);
 | |
| 
 | |
|                 //메인로그에 기록
 | |
|                 if (AR.SETTING.Data.Log_ILock) PUB.log.Add(logmsg);
 | |
|             }
 | |
| 
 | |
|         }
 | |
|         private void Flag_ValueChanged(object sender, VarData<bool>.ValueEventArgs e)
 | |
|         {
 | |
|             var fg = (eVarBool)e.Idx;
 | |
| 
 | |
|             if (fg == eVarBool.FG_PK_ITEMON)
 | |
|             {
 | |
|                 // Pub.log.AddAT(string.Format("[FLAG:{0}] : {1}", fg, e.NewValue));
 | |
|                 hmi1.arVar_Picker[0].ItemOn = e.Value;
 | |
|             }
 | |
| 
 | |
|             else if (fg == eVarBool.FG_RDY_PZ_LPICKOF) hmi1.arFG_RDY_YP_FPICKOF = e.Value;
 | |
|             else if (fg == eVarBool.FG_RDY_PZ_RPICKOF) hmi1.arFG_RDY_YP_RPICKOF = e.Value;
 | |
|             else if (fg == eVarBool.FG_CMD_YP_LPICKON) hmi1.arFG_CMD_YP_FPICKON = e.Value;
 | |
|             else if (fg == eVarBool.FG_CMD_YP_RPICKON) hmi1.arFG_CMD_YP_RPICKON = e.Value;
 | |
| 
 | |
|             else if (fg == eVarBool.FG_MINSPACE) hmi1.arFlag_Minspace = e.Value;
 | |
| 
 | |
| 
 | |
|             hmi1.arVar_Port[0].Ready = PUB.flag.get(eVarBool.FG_RDY_PORT_PL);
 | |
|             hmi1.arVar_Port[1].Ready = PUB.flag.get(eVarBool.FG_RDY_PORT_PC);
 | |
|             hmi1.arVar_Port[2].Ready = PUB.flag.get(eVarBool.FG_RDY_PORT_PR);
 | |
| 
 | |
|             if (PUB.sm.Step >= eSMStep.IDLE && PUB.sm.Step != eSMStep.HOME_FULL)
 | |
|             {
 | |
|                 var logmsg = string.Format("[{0}] {1} : {2} => {3}", e.Idx, fg, e.Value, e.Message);
 | |
|                 //ILOck 로그에 기록
 | |
|                 if (AR.SETTING.Data.Enable_Log_Flag) PUB.logFlag.Add(logmsg);
 | |
| 
 | |
|                 //메인로그에 기록
 | |
|                 if (AR.SETTING.Data.Log_flag) PUB.log.Add(logmsg);
 | |
|             }
 | |
| 
 | |
|         }
 | |
|     }
 | |
| }
 | 
