wangxinhui
2026-01-19 3148a5c11b47ccbda05b8cf4b7fc445318eb13f5
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Tasks/Âë¶â/MDJob_CP.cs
@@ -74,7 +74,7 @@
                if (flag && value != null)
                {
                    OtherDevice device = (OtherDevice)value;
                    List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StackerCraneCode == device.DeviceCode && x.StationType == StationTypeEnum.StationType_InStartAndOutEnd.ObjToInt() && x.IsOccupied == 0);
                    List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StackerCraneCode == device.DeviceCode && x.StationType == StationTypeEnum.StationType_InStartAndOutEnd.ObjToInt());
                    //获取协议
                    DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == device.DeviceCode && x.DeviceProParamType == nameof(R_MDDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
                    DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == device.DeviceCode && x.DeviceProParamType == nameof(W_MDDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
@@ -93,6 +93,7 @@
                            #endregion
                            //码垛状态
                            short PackState = device.GetValue<R_MDDB, short>(GetPackStateEnum(item.StackerCraneStationCode), item.StackerCraneCode);
                            short PackSendState = device.GetValue<W_MDDB, short>(GetPackSendEnum(item.StackerCraneStationCode), item.StackerCraneCode);
                            //码垛数量
                            short PackNum = device.GetValue<R_MDDB, short>(GetPackNumEnum(item.StackerCraneStationCode), item.StackerCraneCode);
                            if ((R_MDStatus1 == 1 || R_MDStatus2 == 1 || R_MDStatus3 == 1 || R_MDStatus4 == 1) && Allow == 4)
@@ -105,11 +106,18 @@
                                }
                                continue;
                            }
                            if (PackState == 2)
                            if (PackState == 2 && PackSendState == 2)
                            {
                                Thread.Sleep(200);
                                device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 0);
                                WriteInfo(item.StationName, $"{item.StationName}清除工位结托信号");
                                device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 4);
                                WriteInfo(item.StationName, $"{item.StationName}写入清托信号");
                                continue;
                            }
                            if (PackState == 4 && PackSendState == 4)
                            {
                                Thread.Sleep(200);
                                device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 0);
                                WriteInfo(item.StationName, $"{item.StationName}清托信号复位");
                                continue;
                            }
                            //获取当前工位码垛执行中数据