1. 알람 AUTO설정 時, 관련 오류수정 후 적용
2. NullBalance 관련 요청사항(절대치로 비교) 적용 3. 알람목록의 '비고'컬럼에 알람수치 입력 기능 추가
This commit is contained in:
@@ -197,7 +197,7 @@ namespace vmsnet.HMI
|
||||
public delegate void OnSetNBHandler(CGROUP grp, Single value);
|
||||
|
||||
public event OnAlamChangeHHandler OnAlamChange; //알람이 변경되었을경우(활성/비활성)
|
||||
public delegate void OnAlamChangeHHandler(int ch, COMM.EALAMRAISETYPE raisetype, COMM.EALAMTYPE atype, String AM, Single value, Single maxvalue, Single minvalue);
|
||||
public delegate void OnAlamChangeHHandler(int ch, COMM.EALAMRAISETYPE raisetype, COMM.EALAMTYPE atype, String AM, Single value, Single maxvalue, Single minvalue, string remark);
|
||||
|
||||
public event OnRaiseAlamChangeHHandler RaiseAlarm; //알람이 변경되었을경우(활성/비활성)
|
||||
public delegate void OnRaiseAlamChangeHHandler(Boolean On);
|
||||
@@ -615,7 +615,7 @@ namespace vmsnet.HMI
|
||||
Item.alaml = grp.LOW;
|
||||
Item.aalamh = grp.UP;
|
||||
Item.aalaml = grp.UP;
|
||||
Item.alamv = -999; /* 작성자: 이재웅, 작성일: 2025-06-11, 작성내용: 알람발생 원인으로 의심 -> 'Item.alamv = -999' 주석해제 */
|
||||
//Item.alamv = -999; /* 작성자: 이재웅, 작성일: 2025-06-11, 작성내용: 알람발생 원인으로 의심 -> 'Item.alamv = -999' 주석해제 했다가 다시 원복 */
|
||||
break;
|
||||
case COMM.EALAMTYPE.사용안함:
|
||||
Item.alamh = -999;
|
||||
@@ -669,6 +669,7 @@ namespace vmsnet.HMI
|
||||
|
||||
//값의 저장소가 아에없다면?
|
||||
//Boolean OverDATA = false;
|
||||
var alarmRemark = string.Empty;
|
||||
if (this.Values == null)
|
||||
{
|
||||
Item.value2 = 0;
|
||||
@@ -728,7 +729,7 @@ namespace vmsnet.HMI
|
||||
if (TimeStr != "" && TimeStr != "Not USE" && Item._p_onalamover == false)
|
||||
{
|
||||
String alamtimes = DateTime.Parse(TimeStr).ToString("yy-MM-dd HH:mm:ss");
|
||||
OnAlamChange(Item.idx, COMM.EALAMRAISETYPE.OVER_ON, Item.알람형태, "--", Item.CurValue, Item.alamh, Item.alaml);
|
||||
OnAlamChange(Item.idx, COMM.EALAMRAISETYPE.OVER_ON, Item.알람형태, "--", Item.CurValue, Item.alamh, Item.alaml, "over 32000");
|
||||
Item._p_onalamover = true;
|
||||
}
|
||||
Item.CurValue = 0f;
|
||||
@@ -744,7 +745,7 @@ namespace vmsnet.HMI
|
||||
if (TimeStr != "" && TimeStr != "Not USE" && Item._p_onalamover == true)
|
||||
{
|
||||
String alamtimes = DateTime.Parse(TimeStr).ToString("yy-MM-dd HH:mm:ss");
|
||||
OnAlamChange(Item.idx, COMM.EALAMRAISETYPE.OVER_OFF, Item.알람형태, "--", Item.CurValue, Item.alamh, Item.alaml);
|
||||
OnAlamChange(Item.idx, COMM.EALAMRAISETYPE.OVER_OFF, Item.알람형태, "--", Item.CurValue, Item.alamh, Item.alaml, "");
|
||||
Item._p_onalamover = false;
|
||||
}
|
||||
}
|
||||
@@ -785,8 +786,9 @@ namespace vmsnet.HMI
|
||||
case COMM.EALAMTYPE.그룹설정을따름:
|
||||
if (grp.AlarmType == "AUTO")
|
||||
{
|
||||
/* 작성자: 이재웅, 작성일: 2025-06-11, 작성내용: 알람발생 원인으로 의심 -> '알람타입:그룹설정을따름' 일때 'Item.alamv == -999' 주석해제 */
|
||||
if (Item.alamv == -999) Item.alamv = Item.CurValue;
|
||||
//if (Item.alamv == -999) Item.alamv = Item.CurValue;
|
||||
/* 작성자: 이재웅, 작성일: 2025-06-17, 작성내용: 'Item.alamv == 0' OR조건 추가 */
|
||||
if (Item.alamv == -999 || Item.alamv == 0) Item.alamv = Item.CurValue;
|
||||
|
||||
Item.적용형태 = "AUTO";
|
||||
if (Item.CurValue > Item.alamv) //큰값이 있을경우 상한선을 확인한다.
|
||||
@@ -797,6 +799,7 @@ namespace vmsnet.HMI
|
||||
Item.onalamh = true;
|
||||
Item.onalaml = false;
|
||||
BackColor = Color.Orange; //BackColor0 = Color.LightPink;
|
||||
alarmRemark = $"ref({Item.alamv})";
|
||||
}
|
||||
}
|
||||
else if (Item.CurValue < Item.alamv)
|
||||
@@ -807,6 +810,7 @@ namespace vmsnet.HMI
|
||||
Item.onalamh = false;
|
||||
Item.onalaml = true;
|
||||
BackColor = Color.SkyBlue; //BackColor0 = Color.LightBlue;
|
||||
alarmRemark = $"ref({Item.alamv})";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -819,12 +823,14 @@ namespace vmsnet.HMI
|
||||
Item.onalamh = true;
|
||||
Item.onalaml = false;
|
||||
BackColor = Color.Orange;// BackColor0 = Color.LightPink;
|
||||
alarmRemark = $"ref({Item.alamh})";
|
||||
}
|
||||
else if (Item.CurValue < Item.alaml)
|
||||
{
|
||||
Item.onalamh = false;
|
||||
Item.onalaml = true;
|
||||
BackColor = Color.SkyBlue; //BackColor0 = Color.LightBlue;
|
||||
alarmRemark = $"ref({Item.alaml})";
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -841,18 +847,22 @@ namespace vmsnet.HMI
|
||||
Item.onalamh = true;
|
||||
Item.onalaml = false;
|
||||
BackColor = Color.Orange; //BackColor0 = Color.LightPink;
|
||||
alarmRemark = $"ref({Item.alamh})";
|
||||
}
|
||||
else if (Item.CurValue < Item.alaml)
|
||||
{
|
||||
Item.onalamh = false;
|
||||
Item.onalaml = true;
|
||||
BackColor = Color.SkyBlue;// BackColor0 = Color.LightBlue;
|
||||
alarmRemark = $"ref({Item.alaml})";
|
||||
}
|
||||
|
||||
break;
|
||||
case COMM.EALAMTYPE.개별알람자동:
|
||||
Item.적용형태 = "AUTO";
|
||||
if (Item.alamv == -999) Item.alamv = Item.CurValue;
|
||||
//if (Item.alamv == -999) Item.alamv = Item.CurValue; // 이전 코드
|
||||
/* 작성자: 이재웅, 작성일: 2025-06-17, 작성내용: 'Item.alamv == 0' OR조건 추가 */
|
||||
if (Item.alamv == -999 || Item.alamv == 0) Item.alamv = Item.CurValue;
|
||||
|
||||
if (Item.CurValue > Item.alamv) //큰값이 있을경우 상한선을 확인한다.
|
||||
{
|
||||
@@ -862,6 +872,7 @@ namespace vmsnet.HMI
|
||||
Item.onalamh = true;
|
||||
Item.onalaml = false;
|
||||
BackColor = Color.Orange; //BackColor0 = Color.LightPink;
|
||||
alarmRemark = $"ref({Item.alamv})";
|
||||
}
|
||||
}
|
||||
else if (Item.CurValue < Item.alamv)
|
||||
@@ -872,6 +883,7 @@ namespace vmsnet.HMI
|
||||
Item.onalamh = false;
|
||||
Item.onalaml = true;
|
||||
BackColor = Color.SkyBlue; //BackColor0 = Color.LightBlue;
|
||||
alarmRemark = $"ref({Item.alamv})";
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -883,9 +895,10 @@ namespace vmsnet.HMI
|
||||
|
||||
if (Item.활성화 && init == true && (Item.onalaml != Item._p_onalaml || Item._p_onalamh != Item.onalamh)) //이전과 알람상태가 변경된경우다.
|
||||
{
|
||||
String alamtimes;
|
||||
String alamtimes = "";
|
||||
|
||||
if (TimeStr != "" && TimeStr != "Not USE") alamtimes = DateTime.Parse(TimeStr).ToString("yy-MM-dd HH:mm:ss");
|
||||
if (TimeStr != "" && TimeStr != "Not USE")
|
||||
alamtimes = DateTime.Parse(TimeStr).ToString("yy-MM-dd HH:mm:ss");
|
||||
else alamtimes = "";
|
||||
|
||||
Single AH, AL;
|
||||
@@ -901,23 +914,22 @@ namespace vmsnet.HMI
|
||||
}
|
||||
if (Item.onalamh && !Item._p_onalamh)
|
||||
{
|
||||
|
||||
OnAlamChange(Item.idx, COMM.EALAMRAISETYPE.HIGH_ON, Item.알람형태, Item.적용형태, Item.CurValue, AH, AL);
|
||||
OnAlamChange(Item.idx, COMM.EALAMRAISETYPE.HIGH_ON, Item.알람형태, Item.적용형태, Item.CurValue, AH, AL, alarmRemark);
|
||||
Item._p_onalamh = true;
|
||||
}
|
||||
else if (Item.onalaml && !Item._p_onalaml)
|
||||
{
|
||||
OnAlamChange(Item.idx, COMM.EALAMRAISETYPE.LOW_ON, Item.알람형태, Item.적용형태, Item.CurValue, AH, AL);
|
||||
OnAlamChange(Item.idx, COMM.EALAMRAISETYPE.LOW_ON, Item.알람형태, Item.적용형태, Item.CurValue, AH, AL, alarmRemark);
|
||||
Item._p_onalaml = true;
|
||||
}
|
||||
else if (!Item.onalamh && Item._p_onalamh)
|
||||
{
|
||||
OnAlamChange(Item.idx, COMM.EALAMRAISETYPE.HIGH_OFF, Item.알람형태, Item.적용형태, Item.CurValue, AH, AL);
|
||||
OnAlamChange(Item.idx, COMM.EALAMRAISETYPE.HIGH_OFF, Item.알람형태, Item.적용형태, Item.CurValue, AH, AL, "");
|
||||
Item._p_onalamh = false;
|
||||
}
|
||||
else if (!Item.onalaml && Item._p_onalaml)
|
||||
{
|
||||
OnAlamChange(Item.idx, COMM.EALAMRAISETYPE.LOW_OFF, Item.알람형태, Item.적용형태, Item.CurValue, AH, AL);
|
||||
OnAlamChange(Item.idx, COMM.EALAMRAISETYPE.LOW_OFF, Item.알람형태, Item.적용형태, Item.CurValue, AH, AL, "");
|
||||
Item._p_onalamh = false;
|
||||
}
|
||||
}
|
||||
@@ -1338,12 +1350,15 @@ namespace vmsnet.HMI
|
||||
Single imgheight = 30;
|
||||
if (!(grp.nbh == 0 && grp.nbl == 0))
|
||||
{
|
||||
if (Math.Abs(nullvalue) > grp.nbl)
|
||||
//if (Math.Abs(nullvalue) > grp.nbl) // a2영역보다 크다면
|
||||
/* 작성자: 이재웅, 작성일: 2025-06-17, 작성내용: 'a2영역 절대값보다 클 경우'로 변경 */
|
||||
if (Math.Abs(nullvalue) > Math.Abs(grp.nbl)) // a2영역 절대값보다 크다면
|
||||
{
|
||||
grp._nbalam_l = true; //a2 on
|
||||
if (!grp._pre_nbalam_l)
|
||||
{
|
||||
if (grp.AlarmType != "STOP") OnAlamChange(grp.IDX, COMM.EALAMRAISETYPE.A2_ON, COMM.EALAMTYPE.사용안함, "NB", (Single)nullvalue, (Single)grp.nbl, (Single)grp.nbl);
|
||||
if (grp.AlarmType != "STOP") OnAlamChange(grp.IDX, COMM.EALAMRAISETYPE.A2_ON, COMM.EALAMTYPE.사용안함, "NB",
|
||||
(Single)nullvalue, (Single)grp.nbl, (Single)grp.nbl, $"> {grp.nbl}");
|
||||
grp._pre_nbalam_l = true;
|
||||
A2 = false;
|
||||
blink2 = 0;
|
||||
@@ -1376,18 +1391,21 @@ namespace vmsnet.HMI
|
||||
|
||||
if (grp._pre_nbalam_l) //이전에 a2알람이 켜져잇엇다면 알람을 끈다.
|
||||
{
|
||||
OnAlamChange(grp.IDX, COMM.EALAMRAISETYPE.A2_OFF, COMM.EALAMTYPE.사용안함, "NB", (Single)nullvalue, (Single)grp.nbl, (Single)grp.nbl);
|
||||
OnAlamChange(grp.IDX, COMM.EALAMRAISETYPE.A2_OFF, COMM.EALAMTYPE.사용안함, "NB", (Single)nullvalue, (Single)grp.nbl, (Single)grp.nbl, "");
|
||||
grp._pre_nbalam_l = false;
|
||||
blink1 = 0;
|
||||
}
|
||||
|
||||
|
||||
if (Math.Abs(nullvalue) > grp.nbh) //a1영역보다 크다면
|
||||
//if (Math.Abs(nullvalue) > grp.nbh) // a1영역보다 크다면
|
||||
/* 작성자: 이재웅, 작성일: 2025-06-17, 작성내용: 'a1영역 절대값보다 클 경우'로 변경 */
|
||||
if (Math.Abs(nullvalue) > Math.Abs(grp.nbh)) // a1영역 절대값보다 크다면
|
||||
{
|
||||
grp._nbalam_h = true;
|
||||
if (!grp._pre_nbalam_h) //이전에 발생안햇다면
|
||||
{
|
||||
if (grp.AlarmType != "STOP") OnAlamChange(grp.IDX, COMM.EALAMRAISETYPE.A1_ON, COMM.EALAMTYPE.사용안함, "NB", (Single)nullvalue, (Single)grp.nbh, (Single)grp.nbh);
|
||||
if (grp.AlarmType != "STOP") OnAlamChange(grp.IDX, COMM.EALAMRAISETYPE.A1_ON, COMM.EALAMTYPE.사용안함, "NB",
|
||||
(Single)nullvalue, (Single)grp.nbh, (Single)grp.nbh, $"> {grp.nbh}");
|
||||
grp._pre_nbalam_h = true;
|
||||
blink1 = 0;
|
||||
}
|
||||
@@ -1418,7 +1436,7 @@ namespace vmsnet.HMI
|
||||
grp._nbalam_h = false; //a1 off
|
||||
if (grp._pre_nbalam_h) //이전에 a1알람이 켜져잇엇다면 알람을 끈다.
|
||||
{
|
||||
OnAlamChange(grp.IDX, COMM.EALAMRAISETYPE.A1_OFF, COMM.EALAMTYPE.사용안함, "NB", (Single)nullvalue, (Single)grp.nbl, (Single)grp.nbl);
|
||||
OnAlamChange(grp.IDX, COMM.EALAMRAISETYPE.A1_OFF, COMM.EALAMTYPE.사용안함, "NB", (Single)nullvalue, (Single)grp.nbl, (Single)grp.nbl, "");
|
||||
grp._pre_nbalam_h = false;
|
||||
}
|
||||
blink1 = 0;
|
||||
|
||||
Reference in New Issue
Block a user