| | |
| | | doorState_1f_cx += 30; |
| | | |
| | | } |
| | | //入壳缓存架 |
| | | double comErr_rk = 9450.0;//是否掉线 |
| | | double doorCode_rk = 9452.0;//缓存架ID |
| | | double doorState_rk = 9474.0;//缓存架物料状态(1:空位,2:空托盘,3:满托盘) |
| | | var dt_stationinfo_rk = freeDB.Select<dt_stationinfo>().Where(d => d.stationType == "入壳缓存架").OrderBy(t => t.sort).ToList(); |
| | | foreach (var item in dt_stationinfo_rk) |
| | | { |
| | | |
| | | if (item.connect == true) |
| | | { |
| | | //掉线 |
| | | } |
| | | else |
| | | { |
| | | if (item.tpgd == true && item.wlgd == true) |
| | | { |
| | | OperateResult W_HCJ_FullState = agvzzplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1003." + doorState_rk, Convert.ToInt16(3)); |
| | | } |
| | | else if (item.tpgd == true && item.wlgd == false) |
| | | { |
| | | OperateResult W_HCJ_FullState = agvzzplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1003." + doorState_rk, Convert.ToInt16(2)); |
| | | } |
| | | else |
| | | { |
| | | OperateResult W_HCJ_FullState = agvzzplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1003." + doorState_rk, Convert.ToInt16(1)); |
| | | } |
| | | } |
| | | |
| | | OperateResult W_HCJ_StationCode = agvzzplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1003." + doorCode_rk, item.stationCode.ToString()); |
| | | OperateResult W_HCJ_ComErr = agvzzplc.SiemensPLCClient.SiemensS7NetClient.Write("DB1003." + comErr_rk, item.connect); |
| | | |
| | | comErr_1f_cx += 30; |
| | | doorCode_1f_cx += 30; |
| | | doorState_1f_cx += 30; |
| | | |
| | | } |
| | | } |
| | | |
| | | private void agvtaskAdd(string agv_remark, string begin, string end,bool communi) |
| | |
| | | t.LampYellow |
| | | }).ExecuteAffrows(); |
| | | } |
| | | else if (stationList.HCJCenterName == "铝壳缓存架一楼") |
| | | else if (stationList.HCJCenterName == "铝壳缓存架一楼" && !item.HCJName.Contains("入壳缓存架")) |
| | | { |
| | | string ButtonResetDB = item.RPLCDB[0]; //复位按钮(黄色)信号点位 |
| | | string ButtonEnsureDB = item.RPLCDB[1];//确认按钮(绿色)信号点位 |
| | |
| | | t.LampYellow |
| | | }).ExecuteAffrows(); |
| | | } |
| | | else if (stationList.HCJCenterName == "铝壳缓存架一楼" && item.HCJName.Contains("入壳缓存架")) |
| | | { |
| | | string ButtonEnsureDB = item.RPLCDB[0];//确认按钮(绿色)信号点位 |
| | | string tpgdstateDB = item.RPLCDB[1];//托盘光电状态信号点位 |
| | | string wlgdstateDB = item.RPLCDB[2];//物料光电状态信号点位 |
| | | |
| | | ////确认按钮(绿色) |
| | | OperateResult<bool> R_TBR_XT = ModbusPLCClient.ReadBool(ButtonEnsureDB); |
| | | WriteLog.GetLog().Write($"{item.HCJName}缓存架,连接{R_TBR_XT.IsSuccess}", "入壳缓存架"); |
| | | if (!R_TBR_XT.IsSuccess) |
| | | { |
| | | //Console.WriteLine($"-{ModbusPLCClient.IpAddress}---{station.stationCode}----{ButtonEnsureDB}--------false--{R_TBR_XT.Message}----------------"); |
| | | station.connect = true; |
| | | var stationoff = freeDB.Update(station).UpdateColumns(t => new |
| | | { |
| | | t.connect |
| | | }).ExecuteAffrows(); |
| | | continue; |
| | | } |
| | | bool ButtonEnsure = ModbusPLCClient.ReadBool(ButtonEnsureDB).Content; |
| | | //托盘光电状态 |
| | | bool pgdstate = ModbusPLCClient.ReadBool(tpgdstateDB).Content; |
| | | //物料光电状态 |
| | | bool wlgdstate = ModbusPLCClient.ReadBool(wlgdstateDB).Content; |
| | | |
| | | //根据读到的PLC信息,轮询更新数据库信息 |
| | | station.getLastTime = DateTime.Now; |
| | | station.greenbutton = ButtonEnsure; |
| | | station.tpgd = pgdstate; |
| | | station.wlgd = wlgdstate; |
| | | |
| | | string LampYellowDB = item.WPLCDB[0];//黄灯信号点位 |
| | | string LampGreenDB = item.WPLCDB[1];//绿灯信号点位 |
| | | string LampRedDB = item.WPLCDB[2];//红灯信号点位 |
| | | //货架存在任务任务时 |
| | | if (station.task) |
| | | { |
| | | if (station.LampYellow) |
| | | { |
| | | ModbusPLCClient.Write(LampYellowDB, false); //黄灯 |
| | | ModbusPLCClient.Write(LampRedDB, false); //红灯 |
| | | ModbusPLCClient.Write(LampGreenDB, false); //绿灯 |
| | | // Console.WriteLine($"{station.stationCode}---亮---{DateTime.Now}"); |
| | | station.LampRed = false; |
| | | station.LampYellow = false; |
| | | station.LampGreen = false; |
| | | |
| | | } |
| | | else |
| | | { |
| | | ModbusPLCClient.Write(LampYellowDB, true); //黄灯 |
| | | ModbusPLCClient.Write(LampRedDB, false); //红灯 |
| | | ModbusPLCClient.Write(LampGreenDB, false); //绿灯 |
| | | // Console.WriteLine($"{station.stationCode}---灭---{DateTime.Now}"); |
| | | station.LampRed = false; |
| | | station.LampYellow = true; |
| | | station.LampGreen = false; |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //当有人按下绿色按钮时: |
| | | //将缓存架的灯光亮绿灯 |
| | | if (ButtonEnsure && pgdstate && wlgdstate) |
| | | { |
| | | DateTime date = DateTime.Now; |
| | | DateTime time2 = station.greenbuttontime; |
| | | Double STAMP = (date - time2).TotalSeconds; |
| | | if (STAMP > 4) |
| | | { |
| | | if (station.LampGreen) |
| | | { |
| | | ModbusPLCClient.Write(LampGreenDB, false); //绿灯 |
| | | station.LampGreen = false; |
| | | |
| | | } |
| | | else |
| | | { |
| | | ModbusPLCClient.Write(LampGreenDB, true); //绿灯 |
| | | station.LampGreen = true; |
| | | } |
| | | |
| | | //ModbusPLCClient.Write(LampRedDB, false); //红灯 |
| | | ModbusPLCClient.Write(LampYellowDB, false); //黄灯 |
| | | //station.LampRed = false; |
| | | station.LampYellow = false; |
| | | station.greenbuttontime = DateTime.Now; |
| | | } |
| | | } |
| | | else if (station.LampGreen && (!pgdstate || !wlgdstate)) |
| | | { |
| | | ModbusPLCClient.Write(LampRedDB, false); //红灯 |
| | | ModbusPLCClient.Write(LampYellowDB, false); //黄灯 |
| | | ModbusPLCClient.Write(LampGreenDB, false); //绿灯 |
| | | station.LampRed = false; |
| | | station.LampYellow = false; |
| | | station.LampGreen = false; |
| | | } |
| | | //检测托盘光电有料,但未按确认按钮,亮黄灯 |
| | | else if (!station.LampGreen && pgdstate) |
| | | { |
| | | // ModbusPLCClient.Write(LampRedDB, false); //红灯 |
| | | ModbusPLCClient.Write(LampYellowDB, true); //黄灯 |
| | | ModbusPLCClient.Write(LampGreenDB, false); //绿灯 |
| | | // station.LampRed = false; |
| | | station.LampYellow = true; |
| | | station.LampGreen = false; |
| | | } |
| | | else if (!station.LampGreen && !pgdstate && !wlgdstate) |
| | | { |
| | | ModbusPLCClient.Write(LampRedDB, false); //红灯 |
| | | ModbusPLCClient.Write(LampYellowDB, false); //黄灯 |
| | | ModbusPLCClient.Write(LampGreenDB, false); //绿灯 |
| | | |
| | | station.LampRed = false; |
| | | station.LampYellow = false; |
| | | station.LampGreen = false; |
| | | } |
| | | |
| | | } |
| | | |
| | | station.connect = false; |
| | | |
| | | var executeAffrows = freeDB.Update(station).UpdateColumns(t => new |
| | | { |
| | | t.connect, |
| | | t.getLastTime, |
| | | t.greenbutton, |
| | | t.tpgd, |
| | | t.wlgd, |
| | | t.LampRed, |
| | | t.LampGreen, |
| | | t.LampYellow |
| | | }).ExecuteAffrows(); |
| | | } |
| | | } |
| | | } |
| | | |