supermanxm
級別: 略有小成
|
trd(SM412,D6000); IF D6010<>D6002 THEN D6010:=D6002; FOR ii:=0 TO 49 DO Chanliang(ii,8):=Chanliang(ii,7); Chanliang(ii,7):=Chanliang(ii,6); Chanliang(ii,6):=Chanliang(ii,5); Chanliang(ii,5):=Chanliang(ii,4); Chanliang(ii,4):=Chanliang(ii,3); Chanliang(ii,3):=Chanliang(ii,2); END_FOR ii; END_IF; IF M6007:=TRUE THEN Chengxuhao(D800,0):=D800; Chengxuhao(D800,1):=D801; Chengxuhao(D800,2):=Chengxuhao(D800,1)+1; END_IF; //*求和 FOR ii:=0 TO 49 DO FOR jj=2 TO 8 DO chanliang(ii,9):=chanliang(ii,9)+chanliang(ii,jj) END_FOR jj; END_FOR ii; IF M401 THEN Z0:=Z0+1 IF Z0>5 THEN Z0:=4 END_IF; END_IF; IF M400 THEN Z0:=Z0-1; IF Z0<=0 THEN Z0=0; END_IF; END_IF; D6008:=Z0*K10; |
---|---|
|
13821917697
承接電氣自動化項目、電氣接線圖設計、IO點表、電氣元器件選型
級別: 工控俠客
|
IF M6007:=TRUE THEN 把這改下試試 |
---|---|
|
樂菱科技
級別: 略有小成
|
叫什么啊 |
---|---|
|
qq240559043
干就完了
級別: 略有小成
|
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總計數 int DayShift_ProductNGCount //白班NG總計數 int NightShift_ProductOKCount //夜班OK總計數 int NightShift_ProductNGCount //夜班NG總計數 float DayPassRate //白班良率 float NightPassRate //白班良率 int Recipe_OK,Recipe_NG//配方內的NG/OK數量 short Current_Recipe char date[6] //date of string char str_zero[1] = "0" //字符'0' int str_len //字符長度 //*******************************************配方系統變量的定義********************** short Recipe_Selection //選中配方的編號 short Recipe_Count //配方大小 short Recipe_Creat = 1 //新增配方記錄 short Recipe_Update = 2 //更新所選配方記錄 short Recipe_Delete = 3 //刪除所選配方記錄 //*******************************************配方系統變量的定義********************** //*******************************************獲取HMI時間日期********************** GetData(Month, "Local HMI", LW, 9021, 1) //HMI_月 GetData(Day, "Local HMI", LW, 9020, 1) //HMI_日 GetData(hour, "Local HMI", LW, 9019, 1) //HMI_時 //*******************************************獲取HMI時間日期********************** GetData(DateStamp, "Local HMI", RW, 1000, 1) //時間戳 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開始累加**************************************** if AddOK and AddDatOK >= 0 then //*****************************數據 到達上限后刪除第一組數據************************* if DateStamp <> Day and Recipe_Count >= 31 then SetData(zero, "Local HMI", RECIPE, "ProduceCount.Selection") //選中第一個數據 SetData(Recipe_Delete, "Local HMI", RECIPE, "ProduceCount.Command") //刪除選中數據 DELAY(100) end if //GetData(AddDatOK, "CODESYS V3 (Ethernet)", "Application.Important_GVL.AddDatOK", 1) //*****************************根據時間修改當前數據************************* 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 |
---|---|
|