bool AddOK,AddNG,ON=true
short AddDatOK,AddDatNG
short Month,Day,DateStamp
short hour
short zero = 0
int int_zero = 0
int DayShift_ProductOKCount //白班OK總計(jì)數(shù)
int DayShift_ProductNGCount //白班NG總計(jì)數(shù)
int NightShift_ProductOKCount //夜班OK總計(jì)數(shù)
int NightShift_ProductNGCount //夜班NG總計(jì)數(shù)
float DayPassRate //白班良率
float NightPassRate //白班良率
int Recipe_OK,Recipe_NG//配方內(nèi)的NG/OK數(shù)量
short Current_Recipe
char date[6] //date of string
char str_zero[1] = "0" //字符'0'
int str_len //字符長(zhǎng)度
//*******************************************配方系統(tǒng)變量的定義**********************
short Recipe_Selection //選中配方的編號(hào)
short Recipe_Count //配方大小
short Recipe_Creat = 1 //新增配方記錄
short Recipe_Update = 2 //更新所選配方記錄
short Recipe_Delete = 3 //刪除所選配方記錄
//*******************************************配方系統(tǒng)變量的定義**********************
//*******************************************獲取HMI時(shí)間日期**********************
GetData(Month, "Local HMI", LW, 9021, 1) //HMI_月
GetData(Day, "Local HMI", LW, 9020, 1) //HMI_日
GetData(hour, "Local HMI", LW, 9019, 1) //HMI_時(shí)
//*******************************************獲取HMI時(shí)間日期**********************
GetData(DateStamp, "Local HMI", RW, 1000, 1) //時(shí)間戳
GetData(Recipe_Count, "Local HMI", RECIPE, "ProduceCount.Count")
if Recipe_Count > 0 then
Current_Recipe = Recipe_Count - 1
else
Current_Recipe = Recipe_Count
end if
GetData(AddOK, "CODESYS V3 (Ethernet)", "Application.Important_GVL.AddOK", 1)
GetData(AddNG, "CODESYS V3 (Ethernet)", "Application.Important_GVL.AddNG", 1)
GetData(AddDatOK, "CODESYS V3 (Ethernet)", "Application.Important_GVL.AddDatOK", 1)
//********************************************************OK開(kāi)始累加****************************************
if AddOK and AddDatOK >= 0 then
//*****************************數(shù)據(jù) 到達(dá)上限后刪除第一組數(shù)據(jù)*************************
if DateStamp <> Day and Recipe_Count >= 31 then
SetData(zero, "Local HMI", RECIPE, "ProduceCount.Selection") //選中第一個(gè)數(shù)據(jù)
SetData(Recipe_Delete, "Local HMI", RECIPE, "ProduceCount.Command") //刪除選中數(shù)據(jù)
DELAY(100)
end if
//GetData(AddDatOK, "CODESYS V3 (Ethernet)", "Application.Important_GVL.AddDatOK", 1)
//*****************************根據(jù)時(shí)間修改當(dāng)前數(shù)據(jù)*************************
if DateStamp == Day and Recipe_Count > 0 then
SetData(Current_Recipe, "Local HMI", RECIPE, "ProduceCount.Selection")
select case hour
case 0
GetData(Recipe_OK, "Local HMI", RECIPE, "ProduceCount.OK1")
Recipe_OK = Recipe_OK + AddDatOK
SetData(Recipe_OK, "Local HMI", RECIPE, "ProduceCount.OK1")
break
case 1
GetData(Recipe_OK, "Local HMI", RECIPE, "ProduceCount.OK2")
Recipe_OK = Recipe_OK + AddDatOK
SetData(Recipe_OK, "Local HMI", RECIPE, "ProduceCount.OK2")
break
case 2
GetData(Recipe_OK, "Local HMI", RECIPE, "ProduceCount.OK3")
Recipe_OK = Recipe_OK + AddDatOK
SetData(Recipe_OK, "Local HMI", RECIPE, "ProduceCount.OK3")
break
case 3
GetData(Recipe_OK, "Local HMI", RECIPE, "ProduceCount.OK4")
Recipe_OK = Recipe_OK + AddDatOK
SetData(Recipe_OK, "Local HMI", RECIPE, "ProduceCount.OK4")
break
case 4
GetData(Recipe_OK, "Local HMI", RECIPE, "ProduceCount.OK5")
Recipe_OK = Recipe_OK + AddDatOK
SetData(Recipe_OK, "Local HMI", RECIPE, "ProduceCount.OK5")
break