Commit 28ae4782 张东亮

添加校准库位缓存,以在复位时处理校准库位的料。出入库状态在料串动作时就开始变化

1 个父辈 52856290
...@@ -14,10 +14,12 @@ namespace DeviceLibrary ...@@ -14,10 +14,12 @@ namespace DeviceLibrary
public class ServerCommunication public class ServerCommunication
{ {
volatile StoreStatus _storeStatus = StoreStatus.Debugging; volatile StoreStatus _storeStatus = StoreStatus.Debugging;
public StoreStatus storeStatus { public StoreStatus storeStatus
{
get => _storeStatus; get => _storeStatus;
set { set
if (_storeStatus!= value) {
if (_storeStatus != value)
LogUtil.info($"set storeStatus to {value}"); LogUtil.info($"set storeStatus to {value}");
_storeStatus = value; _storeStatus = value;
} }
...@@ -25,13 +27,14 @@ namespace DeviceLibrary ...@@ -25,13 +27,14 @@ namespace DeviceLibrary
static string server = Setting_Init.Device_Server_Address; static string server = Setting_Init.Device_Server_Address;
static string CID = Setting_Init.Device_CID; static string CID = Setting_Init.Device_CID;
int StoreID = 1; int StoreID = 1;
string StoreName=""; string StoreName = "";
string WarnMsg = ""; string WarnMsg = "";
private System.Timers.Timer serverConnectTimer = new System.Timers.Timer(); private System.Timers.Timer serverConnectTimer = new System.Timers.Timer();
object serverclock = new object(); object serverclock = new object();
public ServerCommunication() { public ServerCommunication()
{
serverConnectTimer.Interval = 1000; serverConnectTimer.Interval = 1000;
serverConnectTimer.AutoReset = true; serverConnectTimer.AutoReset = true;
serverConnectTimer.Enabled = true; serverConnectTimer.Enabled = true;
...@@ -62,17 +65,22 @@ namespace DeviceLibrary ...@@ -62,17 +65,22 @@ namespace DeviceLibrary
{ {
LogUtil.info($"ServerConnectTimer_Elapsed:{ex}"); LogUtil.info($"ServerConnectTimer_Elapsed:{ex}");
} }
finally { finally
{
//Monitor.Exit(serverConnectTimer); //Monitor.Exit(serverConnectTimer);
} }
} }
public void StartConnectServer() { public void StartConnectServer()
{
//serverConnectTimer.Enabled = true; //serverConnectTimer.Enabled = true;
}public void StopConnectServer() { }
public void StopConnectServer()
{
//serverConnectTimer.Enabled = false; //serverConnectTimer.Enabled = false;
} }
public void ProcessMsg(List<Msg> msg) { public void ProcessMsg(List<Msg> msg)
{
WarnMsg = string.Join(",", msg.Select(x => WarnMsg = string.Join(",", msg.Select(x =>
{ {
if (x.msgLevel == MsgLevel.warning || x.msgLevel == MsgLevel.alarm) if (x.msgLevel == MsgLevel.warning || x.msgLevel == MsgLevel.alarm)
...@@ -81,9 +89,10 @@ namespace DeviceLibrary ...@@ -81,9 +89,10 @@ namespace DeviceLibrary
} }
return null; return null;
} }
).Where(x=>!string.IsNullOrEmpty(x))); ).Where(x => !string.IsNullOrEmpty(x)));
} }
public void SendInStoreRequest(string[] codelist, ReelParam reel,bool printlog=false) { public void SendInStoreRequest(string[] codelist, ReelParam reel, bool printlog = false)
{
if (RobotManage.InoutDebugMode) if (RobotManage.InoutDebugMode)
return; return;
...@@ -94,7 +103,7 @@ namespace DeviceLibrary ...@@ -94,7 +103,7 @@ namespace DeviceLibrary
operation.op = 1; operation.op = 1;
operation.data = new Dictionary<string, string>() { { "code", code }, { "boxId", StoreID.ToString() }, { "doorReelSignal", "1" } }; operation.data = new Dictionary<string, string>() { { "code", code }, { "boxId", StoreID.ToString() }, { "doorReelSignal", "1" } };
if (reel.PlateH==100 && Setting_Init.Device_SingleInSingleOut) if (reel.PlateH == 100 && Setting_Init.Device_SingleInSingleOut)
{ {
//singleIn 单盘入库 //singleIn 单盘入库
operation.data.Add("singleIn", "true"); operation.data.Add("singleIn", "true");
...@@ -104,9 +113,9 @@ namespace DeviceLibrary ...@@ -104,9 +113,9 @@ namespace DeviceLibrary
operation.data.Add("singleIn", "false"); operation.data.Add("singleIn", "false");
} }
int retrytimes = 0; int retrytimes = 0;
retry: retry:
Operation resultOperation = HttpHelper.Post(GetPostApi(), operation, 15000, printlog); Operation resultOperation = HttpHelper.Post(GetPostApi(), operation, 15000, printlog);
if (RobotManage.isRunning &&( resultOperation==null || operation.seq != resultOperation.seq)) if (RobotManage.isRunning && (resultOperation == null || operation.seq != resultOperation.seq))
{ {
Thread.Sleep(1000); Thread.Sleep(1000);
//SendInStoreRequest(codelist, reel, printlog); //SendInStoreRequest(codelist, reel, printlog);
...@@ -124,15 +133,7 @@ namespace DeviceLibrary ...@@ -124,15 +133,7 @@ namespace DeviceLibrary
Operation operation = getLineBoxStatus(); Operation operation = getLineBoxStatus();
if (!string.IsNullOrEmpty(posid)) if (!string.IsNullOrEmpty(posid))
operation.boxStatus[StoreID].data.Add(ParamDefine.posId, posid); operation.boxStatus[StoreID].data.Add(ParamDefine.posId, posid);
operation.boxStatus[StoreID].status = (int)storeStatus;
if (storeStatus == StoreStatus.OutStoreEnd ||
storeStatus == StoreStatus.OutStoreBoxEnd ||
storeStatus == StoreStatus.InStoreEnd)
{
}
else
operation.boxStatus[StoreID].status = (int)storeStatus;
LogUtil.info(JsonHelper.SerializeObject(operation)); LogUtil.info(JsonHelper.SerializeObject(operation));
if (RobotManage.InoutDebugMode) if (RobotManage.InoutDebugMode)
return true; return true;
...@@ -143,7 +144,8 @@ namespace DeviceLibrary ...@@ -143,7 +144,8 @@ namespace DeviceLibrary
LogUtil.info($"SendStoreState error,posid:{posid}, storeStatus:{storeStatus}"); LogUtil.info($"SendStoreState error,posid:{posid}, storeStatus:{storeStatus}");
return false; return false;
} }
if (operation.seq != resultOperation.seq) { if (operation.seq != resultOperation.seq)
{
LogUtil.info($"SendStoreState seq error,posid:{posid}, storeStatus:{storeStatus}"); LogUtil.info($"SendStoreState seq error,posid:{posid}, storeStatus:{storeStatus}");
return false; return false;
} }
...@@ -157,15 +159,17 @@ namespace DeviceLibrary ...@@ -157,15 +159,17 @@ namespace DeviceLibrary
//{ //{
// this.storeStatus = StoreStatus.StoreOnline; // this.storeStatus = StoreStatus.StoreOnline;
//} //}
if (RobotManage.mainMachine.StringMoveInfo.MoveStep == MoveStep.StringOut_Released) //if (RobotManage.mainMachine.StringMoveInfo.MoveStep == MoveStep.StringOut_Released
{ // || RobotManage.mainMachine.StringMoveInfo.MoveStep == MoveStep.Wait)
this.storeStatus = StoreStatus.StoreOnline; //{
} // this.storeStatus = StoreStatus.StoreOnline;
// LogUtil.info($"StringOut_Released StoreState change,storeStatus:{storeStatus}");
//}
} }
return true; return true;
} }
public string spiltStr = "##"; public string spiltStr = "##";
private string ProcessCode(string[] codeList,int reelw,int reelh) private string ProcessCode(string[] codeList, int reelw, int reelh)
{ {
string message = ""; string message = "";
...@@ -183,7 +187,8 @@ namespace DeviceLibrary ...@@ -183,7 +187,8 @@ namespace DeviceLibrary
message = message + "=" + "1+0x0-" + codeSize + "=" + code + spiltStr; message = message + "=" + "1+0x0-" + codeSize + "=" + code + spiltStr;
LogUtil.info($"加载到fixcode,{w}x{h},remove:{rcode}"); LogUtil.info($"加载到fixcode,{w}x{h},remove:{rcode}");
}else }
else
message = message + "=" + "1+0x0-" + codeSize + "=" + code + spiltStr; message = message + "=" + "1+0x0-" + codeSize + "=" + code + spiltStr;
} }
return message; return message;
...@@ -235,7 +240,8 @@ namespace DeviceLibrary ...@@ -235,7 +240,8 @@ namespace DeviceLibrary
{ {
sendmsg = string.Join(",", new string[] { WarnMsg }); sendmsg = string.Join(",", new string[] { WarnMsg });
} }
else if (!RobotManage.isRunning){ else if (!RobotManage.isRunning)
{
sendmsg = "设备未启动"; sendmsg = "设备未启动";
} }
...@@ -287,13 +293,14 @@ namespace DeviceLibrary ...@@ -287,13 +293,14 @@ namespace DeviceLibrary
} }
} }
if (lineOperation.status != laststatus) { if (lineOperation.status != laststatus)
{
laststatus = lineOperation.status; laststatus = lineOperation.status;
printlog = true; printlog = true;
} }
Operation resultOperation = HttpHelper.Post(GetPostApi(), lineOperation,700, printlog); Operation resultOperation = HttpHelper.Post(GetPostApi(), lineOperation, 700, printlog);
if (resultOperation != null) if (resultOperation != null)
getthtime = 0; getthtime = 0;
//LogUtil.info(JsonHelper.SerializeObject(resultOperation.data)); //LogUtil.info(JsonHelper.SerializeObject(resultOperation.data));
...@@ -305,7 +312,7 @@ namespace DeviceLibrary ...@@ -305,7 +312,7 @@ namespace DeviceLibrary
} }
} }
} }
public int queueTaskCount=-1; public int queueTaskCount = -1;
ConcurrentQueue<string> commandResultMsg = new ConcurrentQueue<string>(); ConcurrentQueue<string> commandResultMsg = new ConcurrentQueue<string>();
void ResultProcess(Operation resultOperation) void ResultProcess(Operation resultOperation)
{ {
...@@ -407,19 +414,19 @@ namespace DeviceLibrary ...@@ -407,19 +414,19 @@ namespace DeviceLibrary
map.Add(ParamDefine.confirmReelOut, ParamDefine.disable); map.Add(ParamDefine.confirmReelOut, ParamDefine.disable);
map.Add(ParamDefine.singleReelIn, ParamDefine.disable); map.Add(ParamDefine.singleReelIn, ParamDefine.disable);
if (storeStatus == StoreStatus.ResetMove if (storeStatus == StoreStatus.ResetMove
|| storeStatus == StoreStatus.SuddenStop || storeStatus == StoreStatus.SuddenStop
|| storeStatus == StoreStatus.Debugging || storeStatus == StoreStatus.Debugging
) )
return map; return map;
if (IOManager.IOValue(IO_Type.DoorClose_LoadMaterial).Equals(IO_VALUE.HIGH) if (IOManager.IOValue(IO_Type.DoorClose_LoadMaterial).Equals(IO_VALUE.HIGH)
&& RobotManage.mainMachine.StringMoveInfo.MoveStep == MoveStep.Wait) && RobotManage.mainMachine.StringMoveInfo.MoveStep == MoveStep.Wait)
{ {
map[ParamDefine.startBatchIn] = ParamDefine.enable; map[ParamDefine.startBatchIn] = ParamDefine.enable;
} }
if (RobotManage.mainMachine.StringMoveInfo.MoveStep == MoveStep.Wait if (RobotManage.mainMachine.StringMoveInfo.MoveStep == MoveStep.Wait
&& IOManager.IOValue(IO_Type.BatchDoor_Open).Equals(IO_VALUE.LOW)) && IOManager.IOValue(IO_Type.BatchDoor_Open).Equals(IO_VALUE.LOW))
{ {
//map.Add(ParamDefine.doorStatus, "料串门关闭"); //map.Add(ParamDefine.doorStatus, "料串门关闭");
...@@ -427,18 +434,18 @@ namespace DeviceLibrary ...@@ -427,18 +434,18 @@ namespace DeviceLibrary
} }
if (!Setting_Init.Device_Allow_SingleIn) if (!Setting_Init.Device_Allow_SingleIn)
map[ParamDefine.singleReelIn] = ParamDefine.hide; map[ParamDefine.singleReelIn] = ParamDefine.hide;
else else
if (Setting_Init.Device_Allow_SingleIn && IOManager.IOValue(IO_Type.NGDoor_Close).Equals(IO_VALUE.HIGH)) if (Setting_Init.Device_Allow_SingleIn && IOManager.IOValue(IO_Type.NGDoor_Close).Equals(IO_VALUE.HIGH))
{ {
map[ParamDefine.singleReelIn] = ParamDefine.enable; map[ParamDefine.singleReelIn] = ParamDefine.enable;
} }
if (IOManager.IOValue(IO_Type.BatchDoor_Close).Equals(IO_VALUE.LOW) if (IOManager.IOValue(IO_Type.BatchDoor_Close).Equals(IO_VALUE.LOW)
&& IOManager.IOValue(IO_Type.DoorClose_LoadMaterial).Equals(IO_VALUE.HIGH)) && IOManager.IOValue(IO_Type.DoorClose_LoadMaterial).Equals(IO_VALUE.HIGH))
{ {
map[ParamDefine.closeLock] = ParamDefine.enable; map[ParamDefine.closeLock] = ParamDefine.enable;
} }
if (RobotManage.mainMachine.StringMoveInfo.MoveStep >= MoveStep.StringLoad_04 if (RobotManage.mainMachine.StringMoveInfo.MoveStep >= MoveStep.StringLoad_04
&& RobotManage.mainMachine.StringMoveInfo.MoveStep < MoveStep.StringOut_01) && RobotManage.mainMachine.StringMoveInfo.MoveStep < MoveStep.StringOut_01)
map[ParamDefine.takeOutReel] = ParamDefine.enable; map[ParamDefine.takeOutReel] = ParamDefine.enable;
...@@ -447,7 +454,7 @@ namespace DeviceLibrary ...@@ -447,7 +454,7 @@ namespace DeviceLibrary
map[ParamDefine.confirmReelOut] = ParamDefine.enable; map[ParamDefine.confirmReelOut] = ParamDefine.enable;
} }
return map; return map;
} }
...@@ -482,7 +489,7 @@ namespace DeviceLibrary ...@@ -482,7 +489,7 @@ namespace DeviceLibrary
{ {
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因 //出入库没有找到服务器发送的库位,需要打印日志方便查询原因
//SetWarnMsg(ResourceControl.InStoreNoPosition, message, posId); //SetWarnMsg(ResourceControl.InStoreNoPosition, message, posId);
WarnMsg = crc.GetString(L.in_store_nothave_position,"入库未找到库位:") + posId;//0505 WarnMsg = crc.GetString(L.in_store_nothave_position, "入库未找到库位:") + posId;//0505
LogUtil.info("收到服务器入库命令:入库未找到库位:二维码【" + message + "】库位【" + posId + "】"); LogUtil.info("收到服务器入库命令:入库未找到库位:二维码【" + message + "】库位【" + posId + "】");
return; return;
} }
...@@ -510,10 +517,11 @@ namespace DeviceLibrary ...@@ -510,10 +517,11 @@ namespace DeviceLibrary
RobotManage.mainMachine.ClampMoveInfo.MoveParam.NgMsg = msg; RobotManage.mainMachine.ClampMoveInfo.MoveParam.NgMsg = msg;
RobotManage.mainMachine.ClampMoveInfo.NextMoveStep(MoveStep.WaitInStore); RobotManage.mainMachine.ClampMoveInfo.NextMoveStep(MoveStep.WaitInStore);
//RobotManage.mainMachine.NGPuted(msg); //RobotManage.mainMachine.NGPuted(msg);
LogUtil.info("服务器没有正确返回库位. msg="+ msg); LogUtil.info("服务器没有正确返回库位. msg=" + msg);
} }
else { else
{
} }
} }
...@@ -533,13 +541,13 @@ namespace DeviceLibrary ...@@ -533,13 +541,13 @@ namespace DeviceLibrary
{ {
string maxHumidity = data[ParamDefine.maxHumidity]; string maxHumidity = data[ParamDefine.maxHumidity];
string maxTemp = data[ParamDefine.maxTemperature]; string maxTemp = data[ParamDefine.maxTemperature];
LogUtil.info( "收到服务器温湿度预警值:maxHumidity=" + maxHumidity + ",maxTemperature=" + maxTemp); LogUtil.info("收到服务器温湿度预警值:maxHumidity=" + maxHumidity + ",maxTemperature=" + maxTemp);
try try
{ {
this.Max_Humidity = (float)Convert.ToDouble(maxHumidity); this.Max_Humidity = (float)Convert.ToDouble(maxHumidity);
this.Max_Temperature = (float)Convert.ToDouble(maxTemp); this.Max_Temperature = (float)Convert.ToDouble(maxTemp);
LogUtil.info( "保存温湿度预警值:Max_Humidity=" + Max_Humidity + ",Max_Temperature=" + Max_Temperature); LogUtil.info("保存温湿度预警值:Max_Humidity=" + Max_Humidity + ",Max_Temperature=" + Max_Temperature);
} }
catch (Exception ex) catch (Exception ex)
{ {
...@@ -585,7 +593,7 @@ namespace DeviceLibrary ...@@ -585,7 +593,7 @@ namespace DeviceLibrary
{ {
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因 //出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg = StoreName + "出库未找库位:【" + posId + "】"; WarnMsg = StoreName + "出库未找库位:【" + posId + "】";
LogUtil.error( "收到服务器出库命令:未找到【" + posId + "】的库位信息"); LogUtil.error("收到服务器出库命令:未找到【" + posId + "】的库位信息");
continue; continue;
} }
else else
...@@ -764,6 +772,6 @@ namespace DeviceLibrary ...@@ -764,6 +772,6 @@ namespace DeviceLibrary
/// 扫码入库失败 /// 扫码入库失败
/// </summary> /// </summary>
InStoreError = 14, InStoreError = 14,
} }
} }
...@@ -30,13 +30,13 @@ namespace DeviceLibrary ...@@ -30,13 +30,13 @@ namespace DeviceLibrary
public event Action<string, StoreMoveType, bool> InOutEndProcessEvent; public event Action<string, StoreMoveType, bool> InOutEndProcessEvent;
public bool IsComplateOrFree { get => MoveInfo.MoveStep == MoveStep.Wait && !movelock; } public bool IsComplateOrFree { get => MoveInfo.MoveStep == MoveStep.Wait && !movelock; }
public bool IsTakedReel { get => MoveInfo.MoveStep >= MoveStep.StoreTS10; } public bool IsTakedReel { get => MoveInfo.MoveStep >= MoveStep.StoreTS10; }
public bool IsPutOnOut {get=> MoveInfo.MoveStep >= MoveStep.StoreTS16; } public bool IsPutOnOut { get => MoveInfo.MoveStep >= MoveStep.StoreTS16; }
public ReelTransport(Robot_Config _Config, MainMachine _mainMachine) public ReelTransport(Robot_Config _Config, MainMachine _mainMachine)
{ {
Config = _Config; Config = _Config;
mainMachine = _mainMachine; mainMachine = _mainMachine;
MoveInfo = new MoveInfo(crc.GetString(L.transfer_equipment, "出入库机构"),false); MoveInfo = new MoveInfo(crc.GetString(L.transfer_equipment, "出入库机构"), false);
To = null; To = null;
From = null; From = null;
#region 初始化伺服轴 #region 初始化伺服轴
...@@ -47,18 +47,19 @@ namespace DeviceLibrary ...@@ -47,18 +47,19 @@ namespace DeviceLibrary
#endregion #endregion
} }
public void Reset() { public void Reset()
{
MoveInfo.NewMove(MoveStep.Wait); MoveInfo.NewMove(MoveStep.Wait);
MoveInfo.log("执行重置"); MoveInfo.log("执行重置");
To = null; To = null;
From = null; From = null;
} }
StoreMoveType storeMoveType = StoreMoveType.None; StoreMoveType storeMoveType = StoreMoveType.None;
string WareCode=""; string WareCode = "";
int plateH = 0; int plateH = 0;
bool PreMove = false; bool PreMove = false;
bool ignoreFixtureCheck = false; bool ignoreFixtureCheck = false;
public bool Start(BoxStorePosition from, BoxStorePosition to, StoreMoveType _storeMoveType, bool premove=false) public bool Start(BoxStorePosition from, BoxStorePosition to, StoreMoveType _storeMoveType, bool premove = false)
{ {
if (MoveInfo.MoveStep != MoveStep.Wait) if (MoveInfo.MoveStep != MoveStep.Wait)
...@@ -72,9 +73,11 @@ namespace DeviceLibrary ...@@ -72,9 +73,11 @@ namespace DeviceLibrary
WareCode = "NG"; WareCode = "NG";
plateH = 56; plateH = 56;
To = to.clone(); To = to.clone();
MoveInfo.NewMove(MoveStep.StoreTS10); {
MoveInfo.log($"{storeMoveType}:开始运输料盘,直接到:{to.posid}"); MoveInfo.NewMove(MoveStep.StoreTS10);
MoveInfo.MoveParam.PosID = $"NA=>{To.posid}"; MoveInfo.log($"{storeMoveType}:开始运输料盘,直接到:{to.posid}");
MoveInfo.MoveParam.PosID = $"NA=>{To.posid}";
}
} }
else else
{ {
...@@ -93,15 +96,16 @@ namespace DeviceLibrary ...@@ -93,15 +96,16 @@ namespace DeviceLibrary
Fix = BoxStorePosition.GetFixPos(Config, To.Reel); Fix = BoxStorePosition.GetFixPos(Config, To.Reel);
} }
MoveInfo.MoveParam.WareCode = WareCode; MoveInfo.MoveParam.WareCode = WareCode;
ErrMsgTxt = ""; ErrMsgTxt = "";
return true; return true;
//thread = new Thread(new ThreadStart(Run)); //thread = new Thread(new ThreadStart(Run));
//thread.Start(); //thread.Start();
} }
public bool ReadyToTakeBox() { public bool ReadyToTakeBox()
if (MoveInfo.MoveStep != MoveStep.StoreTS05) {
if (MoveInfo.MoveStep != MoveStep.StoreTS05)
return false; return false;
MoveInfo.NextMoveStep(MoveStep.StoreTS06); MoveInfo.NextMoveStep(MoveStep.StoreTS06);
...@@ -130,8 +134,9 @@ namespace DeviceLibrary ...@@ -130,8 +134,9 @@ namespace DeviceLibrary
MoveInfo.log($"{storeMoveType}:检查安全状态"); MoveInfo.log($"{storeMoveType}:检查安全状态");
} }
break; break;
case MoveStep.StoreTS02: case MoveStep.StoreTS02:
if (MoveInfo.MoveParam.ReelOnFixture) { if (MoveInfo.MoveParam.ReelOnFixture)
{
MoveInfo.NextMoveStep(MoveStep.StoreTS08); MoveInfo.NextMoveStep(MoveStep.StoreTS08);
MoveInfo.log($"{storeMoveType}:料盘已在料叉上,压紧轴压紧,Comp_PL:{From.Comp_PL}"); MoveInfo.log($"{storeMoveType}:料盘已在料叉上,压紧轴压紧,Comp_PL:{From.Comp_PL}");
Comp_Axis.AbsMove(MoveInfo, From.Comp_PL, Config.Comp_P2_speed); Comp_Axis.AbsMove(MoveInfo, From.Comp_PL, Config.Comp_P2_speed);
...@@ -173,11 +178,12 @@ namespace DeviceLibrary ...@@ -173,11 +178,12 @@ namespace DeviceLibrary
{ {
RobotManage.mainMachine.CylinderMove(MoveInfo, IO_Type.Clamping_Relax, IO_Type.Clamping_Work, IO_VALUE.LOW); RobotManage.mainMachine.CylinderMove(MoveInfo, IO_Type.Clamping_Relax, IO_Type.Clamping_Work, IO_VALUE.LOW);
} }
else { else
{
MoveInfo.NextMoveStep(MoveStep.StoreTS08); MoveInfo.NextMoveStep(MoveStep.StoreTS08);
UpDown_Axis.AbsMove(MoveInfo, From.UpDown_PH, Config.UpDown_P4_speed); UpDown_Axis.AbsMove(MoveInfo, From.UpDown_PH, Config.UpDown_P4_speed);
MoveInfo.log($"{storeMoveType}:上下轴到达取料高点"); MoveInfo.log($"{storeMoveType}:上下轴到达取料高点");
} }
break; break;
case MoveStep.StoreTS07: case MoveStep.StoreTS07:
MoveInfo.NextMoveStep(MoveStep.StoreTS08); MoveInfo.NextMoveStep(MoveStep.StoreTS08);
...@@ -196,7 +202,7 @@ namespace DeviceLibrary ...@@ -196,7 +202,7 @@ namespace DeviceLibrary
InOut_Axis.AbsMove(MoveInfo, Config.InOut_P1, Config.InOut_P1_speed); InOut_Axis.AbsMove(MoveInfo, Config.InOut_P1, Config.InOut_P1_speed);
} }
IgnoreX09 = false; IgnoreX09 = false;
break; break;
case MoveStep.StoreTS09: case MoveStep.StoreTS09:
RobotManage.CameraA.CameraGrabOne(RobotManage.CameraA.GetFixtureStateFilename(From.posid, WareCode, storeMoveType, FixtureState.FromOut)); RobotManage.CameraA.CameraGrabOne(RobotManage.CameraA.GetFixtureStateFilename(From.posid, WareCode, storeMoveType, FixtureState.FromOut));
...@@ -208,7 +214,8 @@ namespace DeviceLibrary ...@@ -208,7 +214,8 @@ namespace DeviceLibrary
} }
else else
{ {
if (!ignoreFixtureCheck && IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.LOW)) { if (!ignoreFixtureCheck && IOManager.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.LOW))
{
MoveInfo.log($"忽略物料:Device_DisableStorePosition:{Setting_Init.Device_DisableStorePosition.Val},库位:{From.posid},{WareCode}"); MoveInfo.log($"忽略物料:Device_DisableStorePosition:{Setting_Init.Device_DisableStorePosition.Val},库位:{From.posid},{WareCode}");
if (Setting_Init.Device_DisableStorePosition && From.posid != BoxStorePosition.strings && From.posid != BoxStorePosition.ngdoor && From.posid != BoxStorePosition.clamp) if (Setting_Init.Device_DisableStorePosition && From.posid != BoxStorePosition.strings && From.posid != BoxStorePosition.ngdoor && From.posid != BoxStorePosition.clamp)
{ {
...@@ -228,6 +235,7 @@ namespace DeviceLibrary ...@@ -228,6 +235,7 @@ namespace DeviceLibrary
break; break;
case MoveStep.StoreFIX01: case MoveStep.StoreFIX01:
MoveInfo.NextMoveStep(MoveStep.StoreFIX02); MoveInfo.NextMoveStep(MoveStep.StoreFIX02);
RobotManage.PutReelInFixPos(To.Reel);
Middle_Axis.AbsMove(MoveInfo, Fix.Middle_P2, Config.Middle_P2_speed); Middle_Axis.AbsMove(MoveInfo, Fix.Middle_P2, Config.Middle_P2_speed);
MoveInfo.log($"{storeMoveType}:行走机构到达目的地:{Fix.Middle_P2}"); MoveInfo.log($"{storeMoveType}:行走机构到达目的地:{Fix.Middle_P2}");
UpDown_Axis.AbsMove(MoveInfo, Fix.UpDown_PH, Config.UpDown_P1_speed); UpDown_Axis.AbsMove(MoveInfo, Fix.UpDown_PH, Config.UpDown_P1_speed);
...@@ -248,9 +256,8 @@ namespace DeviceLibrary ...@@ -248,9 +256,8 @@ namespace DeviceLibrary
break; break;
case MoveStep.StoreFIX04: case MoveStep.StoreFIX04:
MoveInfo.NextMoveStep(MoveStep.StoreFIX05); MoveInfo.NextMoveStep(MoveStep.StoreFIX05);
RobotManage.PutReelInFixPos(MoveInfo.MoveParam);
Comp_Axis.AbsMove(MoveInfo, Fix.Comp_PL, Config.Comp_P2_speed); Comp_Axis.AbsMove(MoveInfo, Fix.Comp_PL, Config.Comp_P2_speed);
UpDown_Axis.AbsMove(MoveInfo, Fix.UpDown_PH, Config.UpDown_P3_speed/2); UpDown_Axis.AbsMove(MoveInfo, Fix.UpDown_PH, Config.UpDown_P3_speed / 2);
MoveInfo.log($"{storeMoveType}:压紧轴压紧点:{Fix.Comp_PL}"); MoveInfo.log($"{storeMoveType}:压紧轴压紧点:{Fix.Comp_PL}");
MoveInfo.log($"{storeMoveType}:上下轴到达目的高点:{Fix.UpDown_PH}"); MoveInfo.log($"{storeMoveType}:上下轴到达目的高点:{Fix.UpDown_PH}");
break; break;
...@@ -268,7 +275,8 @@ namespace DeviceLibrary ...@@ -268,7 +275,8 @@ namespace DeviceLibrary
MoveInfo.log($"{storeMoveType}:上下轴到达目的地高点:{To.UpDown_PH}"); MoveInfo.log($"{storeMoveType}:上下轴到达目的地高点:{To.UpDown_PH}");
break; break;
case MoveStep.StoreTS11: case MoveStep.StoreTS11:
if (To.posid==BoxStorePosition.strings) { if (To.posid == BoxStorePosition.strings)
{
if (!mainMachine.IsPutReelReady) if (!mainMachine.IsPutReelReady)
{ {
//if (MoveInfo.IsTimeOut(20)) //if (MoveInfo.IsTimeOut(20))
...@@ -276,31 +284,33 @@ namespace DeviceLibrary ...@@ -276,31 +284,33 @@ namespace DeviceLibrary
MoveInfo.log($"等待料串准备好放料"); MoveInfo.log($"等待料串准备好放料");
return false; return false;
} }
}else if (To.posid == BoxStorePosition.ngdoor) }
else if (To.posid == BoxStorePosition.ngdoor)
{ {
if (mainMachine.ClampMoveInfo.MoveStep!=MoveStep.Wait) if (mainMachine.ClampMoveInfo.MoveStep != MoveStep.Wait)
{ {
//if (MoveInfo.IsTimeOut(20)) //if (MoveInfo.IsTimeOut(20))
Msg.add(crc.GetString(L.out_store_wait_ngdoor_ready,"等待单料口空闲."), MsgLevel.warning); Msg.add(crc.GetString(L.out_store_wait_ngdoor_ready, "等待单料口空闲."), MsgLevel.warning);
MoveInfo.log($"等待单料口空闲"); MoveInfo.log($"等待单料口空闲");
return false; return false;
} }
} }
MoveInfo.NextMoveStep(MoveStep.StoreTS12); MoveInfo.NextMoveStep(MoveStep.StoreTS12);
break; break;
case MoveStep.StoreTS12: case MoveStep.StoreTS12:
MoveInfo.NextMoveStep(MoveStep.StoreTS13); MoveInfo.NextMoveStep(MoveStep.StoreTS13);
MoveInfo.log($"{storeMoveType}:进出轴到达目的地"); MoveInfo.log($"{storeMoveType}:进出轴到达目的地");
InOut_Axis.AbsMove(MoveInfo, To.InOut_P2, Config.InOut_P2_speed); InOut_Axis.AbsMove(MoveInfo, To.InOut_P2, Config.InOut_P2_speed);
break; break;
case MoveStep.StoreTS13: case MoveStep.StoreTS13:
RobotManage.CameraA.CameraGrabOne(RobotManage.CameraA.GetFixtureStateFilename(To.posid, WareCode, storeMoveType, FixtureState.ToIn)); RobotManage.CameraA.CameraGrabOne(RobotManage.CameraA.GetFixtureStateFilename(To.posid, WareCode, storeMoveType, FixtureState.ToIn));
MoveInfo.NextMoveStep(MoveStep.StoreTS14); MoveInfo.NextMoveStep(MoveStep.StoreTS14);
UpDown_Axis.AbsMove(MoveInfo, To.UpDown_PL, Config.UpDown_P3_speed); UpDown_Axis.AbsMove(MoveInfo, To.UpDown_PL, Config.UpDown_P3_speed);
Comp_Axis.AbsMove(MoveInfo, To.Comp_PH, Config.Comp_P2_speed); Comp_Axis.AbsMove(MoveInfo, To.Comp_PH, Config.Comp_P2_speed);
MoveInfo.log($"{storeMoveType}:压紧轴压紧点:{To.Comp_PH}"); MoveInfo.log($"{storeMoveType}:压紧轴压紧点:{To.Comp_PH}");
MoveInfo.log($"{storeMoveType}:上下轴到达目的地低点:{To.UpDown_PL}"); MoveInfo.log($"{storeMoveType}:上下轴到达目的地低点:{To.UpDown_PL}");
if (To.posid == BoxStorePosition.ngdoor) { if (To.posid == BoxStorePosition.ngdoor)
{
MoveInfo.NextMoveStep(MoveStep.StoreTS_WaitOutProcess); MoveInfo.NextMoveStep(MoveStep.StoreTS_WaitOutProcess);
MoveInfo.log($"{storeMoveType}:目的地为单料口,转运后等待处理"); MoveInfo.log($"{storeMoveType}:目的地为单料口,转运后等待处理");
} }
...@@ -336,26 +346,28 @@ namespace DeviceLibrary ...@@ -336,26 +346,28 @@ namespace DeviceLibrary
) )
{ {
MoveInfo.log($"{storeMoveType}:库位测试模式,上下轴,旋转不返回待机点"); MoveInfo.log($"{storeMoveType}:库位测试模式,上下轴,旋转不返回待机点");
break; break;
} }
//if (To.posid==BoxStorePosition.strings) //if (To.posid==BoxStorePosition.strings)
// UpDown_Axis.AbsMove(MoveInfo, Config.UpDown_P5, Config.UpDown_P1_speed); // UpDown_Axis.AbsMove(MoveInfo, Config.UpDown_P5, Config.UpDown_P1_speed);
//else //else
// UpDown_Axis.AbsMove(MoveInfo, Config.UpDown_P2, Config.UpDown_P1_speed); // UpDown_Axis.AbsMove(MoveInfo, Config.UpDown_P2, Config.UpDown_P1_speed);
if (!RobotManage.mainMachine.HasJob) { if (!RobotManage.mainMachine.HasJob)
{
UpDown_Axis.AbsMove(MoveInfo, Config.UpDown_P1, Config.UpDown_P1_speed); UpDown_Axis.AbsMove(MoveInfo, Config.UpDown_P1, Config.UpDown_P1_speed);
Middle_Axis.AbsMove(MoveInfo, Config.Middle_P1, Config.Middle_P1_speed); Middle_Axis.AbsMove(MoveInfo, Config.Middle_P1, Config.Middle_P1_speed);
MoveInfo.log($"{storeMoveType}:上下轴,旋转返回待机点P1"); MoveInfo.log($"{storeMoveType}:上下轴,旋转返回待机点P1");
}else }
else
MoveInfo.log($"{storeMoveType}:后续还有任务不返回待机点"); MoveInfo.log($"{storeMoveType}:后续还有任务不返回待机点");
ErrMsgTxt = ""; ErrMsgTxt = "";
break; break;
case MoveStep.StoreTS17: case MoveStep.StoreTS17:
//MoveInfo.NextMoveStep(MoveStep.StoreTS16); //MoveInfo.NextMoveStep(MoveStep.StoreTS16);
MoveInfo.log($"{storeMoveType}:转移料盘完成"); MoveInfo.log($"{storeMoveType}:转移料盘完成");
MoveInfo.EndMove(); MoveInfo.EndMove();
ErrMsgTxt = ""; ErrMsgTxt = "";
To.posid = ""; To.posid = "";
storeMoveType = StoreMoveType.None; storeMoveType = StoreMoveType.None;
break; break;
...@@ -364,7 +376,7 @@ namespace DeviceLibrary ...@@ -364,7 +376,7 @@ namespace DeviceLibrary
case MoveStep.StoreTS_Continue: case MoveStep.StoreTS_Continue:
MoveInfo.NextMoveStep(MoveStep.StoreTS17); MoveInfo.NextMoveStep(MoveStep.StoreTS17);
MoveInfo.log($"{storeMoveType}:继续运行进出轴到达待机点"); MoveInfo.log($"{storeMoveType}:继续运行进出轴到达待机点");
InOut_Axis.AbsMove(MoveInfo, Config.InOut_P1, Config.InOut_P1_speed); InOut_Axis.AbsMove(MoveInfo, Config.InOut_P1, Config.InOut_P1_speed);
break; break;
default: default:
MoveInfo.log($"{storeMoveType}:未找到对应步骤:{MoveInfo.MoveStep}"); MoveInfo.log($"{storeMoveType}:未找到对应步骤:{MoveInfo.MoveStep}");
...@@ -374,13 +386,15 @@ namespace DeviceLibrary ...@@ -374,13 +386,15 @@ namespace DeviceLibrary
return false; return false;
} }
public void Continue() { public void Continue()
{
if (MoveInfo.MoveStep == MoveStep.StoreTS_WaitOutProcess) if (MoveInfo.MoveStep == MoveStep.StoreTS_WaitOutProcess)
{ {
MoveInfo.NextMoveStep(MoveStep.StoreTS_Continue); MoveInfo.NextMoveStep(MoveStep.StoreTS_Continue);
MoveInfo.log($"{storeMoveType}:外部处理完成,继续"); MoveInfo.log($"{storeMoveType}:外部处理完成,继续");
} }
else { else
{
MoveInfo.log($"{storeMoveType}:当前不在外部处理状态"); MoveInfo.log($"{storeMoveType}:当前不在外部处理状态");
} }
} }
...@@ -399,7 +413,8 @@ namespace DeviceLibrary ...@@ -399,7 +413,8 @@ namespace DeviceLibrary
InOutEndProcessEvent?.Invoke(posid, storeMoveType, true); InOutEndProcessEvent?.Invoke(posid, storeMoveType, true);
} }
HIKCamera GetCamera(int pos) { HIKCamera GetCamera(int pos)
{
//return pos > 0 ? RobotManage.CameraA : RobotManage.CameraB; //return pos > 0 ? RobotManage.CameraA : RobotManage.CameraB;
return RobotManage.CameraA; return RobotManage.CameraA;
} }
......
...@@ -459,16 +459,15 @@ namespace DeviceLibrary ...@@ -459,16 +459,15 @@ namespace DeviceLibrary
boxTransport.Reset(); boxTransport.Reset();
ResetMoveInfo.log("回原完成"); ResetMoveInfo.log("回原完成");
ResetMoveInfo.EndMove(); ResetMoveInfo.EndMove();
if ((RobotManage.HasReelInFixPos(out ReelParam reelParam)) && boxTransport.IsComplateOrFree && ClampMoveInfo.MoveStep == MoveStep.Wait && ConfigHelper.Config.Get("Device_Use_Fixpos", false)) if ((RobotManage.HasReelInFixPos(out ReelParam reelParam))
&& boxTransport.IsComplateOrFree &&
ClampMoveInfo.MoveStep == MoveStep.Wait && ConfigHelper.Config.Get("Device_Use_Fixpos", false)
&& IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.LOW))
{ {
StoreMoveInfo.NewMove(MoveStep.StoreOut_NGPre); var pos = BoxStorePosition.GetFixPos(Config, reelParam);
StoreMoveInfo.MoveParam = reelParam.clone(); LogUtil.info($"复位完成,校准库位出库:{pos.posid}");
StoreMoveInfo.MoveParam.PosID = "NG"; RobotManage.mainMachine.AddSingleStoreTask("", pos.posid, reelParam.PlateW, reelParam.PlateH);
StoreMoveInfo.MoveParam.IsNg = true; RobotManage.ClearReelInFixPos();
StoreMoveInfo.MoveParam.NgMsg = "检测到校准库位有料盘信息,请人工确认";
StoreMoveInfo.log($"开始校准库位料盘出库");
ServerCM.storeStatus = StoreStatus.OutStoreExecute;
//CloseFlipDoor(StoreMoveInfo);
} }
runStatus = RunStatus.Running; runStatus = RunStatus.Running;
ServerCM.storeStatus = StoreStatus.StoreOnline; ServerCM.storeStatus = StoreStatus.StoreOnline;
......
...@@ -15,13 +15,14 @@ namespace DeviceLibrary ...@@ -15,13 +15,14 @@ namespace DeviceLibrary
{ {
StoreJobList OutStoreJobList = new StoreJobList("批量"); StoreJobList OutStoreJobList = new StoreJobList("批量");
StoreJobList OutSingleJobList = new StoreJobList("单盘"); StoreJobList OutSingleJobList = new StoreJobList("单盘");
public bool HasJob { get => OutStoreJobList.Count > 0 || OutSingleJobList.Count>0; } public bool HasJob { get => OutStoreJobList.Count > 0 || OutSingleJobList.Count > 0; }
public void AddOutStoreTask(string warecode, string posId,int plateW,int plateH) { public void AddOutStoreTask(string warecode, string posId, int plateW, int plateH)
JobInfo jobInfo = new JobInfo(warecode, posId,plateW,plateH); {
JobInfo jobInfo = new JobInfo(warecode, posId, plateW, plateH);
OutStoreJobList.Enqueue(jobInfo); OutStoreJobList.Enqueue(jobInfo);
LogUtil.info($"添加出库任务队列: {posId},当前任务数量: {OutStoreJobList.Count}"); LogUtil.info($"添加出库任务队列: {posId},当前任务数量: {OutStoreJobList.Count}");
} }
public void AddSingleStoreTask(string warecode,string posId, int plateW, int plateH) public void AddSingleStoreTask(string warecode, string posId, int plateW, int plateH)
{ {
JobInfo jobInfo = new JobInfo(warecode, posId, plateW, plateH); JobInfo jobInfo = new JobInfo(warecode, posId, plateW, plateH);
OutSingleJobList.Enqueue(jobInfo); OutSingleJobList.Enqueue(jobInfo);
...@@ -85,7 +86,8 @@ namespace DeviceLibrary ...@@ -85,7 +86,8 @@ namespace DeviceLibrary
ServerCM.storeStatus = StoreStatus.OutStoreExecute; ServerCM.storeStatus = StoreStatus.OutStoreExecute;
} }
} }
else if (OutStoreJobList.Count > 0 && !IsBatchDoorClosed) { else if (OutStoreJobList.Count > 0 && !IsBatchDoorClosed)
{
Msg.add("出库任务等待关闭批量舱门", MsgLevel.warning); Msg.add("出库任务等待关闭批量舱门", MsgLevel.warning);
} }
//判断有没有出库任务, 需要入库空闲, 出口空闲 //判断有没有出库任务, 需要入库空闲, 出口空闲
...@@ -96,7 +98,7 @@ namespace DeviceLibrary ...@@ -96,7 +98,7 @@ namespace DeviceLibrary
if (!boxTransport.IgnoreX09 && IOMonitor.IODebound(IO_Type.TrayCheck_Fixture, Config, IO_VALUE.HIGH, 5000)) if (!boxTransport.IgnoreX09 && IOMonitor.IODebound(IO_Type.TrayCheck_Fixture, Config, IO_VALUE.HIGH, 5000))
{ {
Msg.add("收到出库任务,但料叉上有料,无法启动,请检查", MsgLevel.alarm, ErrInfo.X09_BoxNotDetect); Msg.add("收到出库任务,但料叉上有料,无法启动,请检查", MsgLevel.alarm, ErrInfo.X09_BoxNotDetect);
} }
else else
Msg.add("收到出库任务,但料叉上有料,无法启动,请检查", MsgLevel.warning); Msg.add("收到出库任务,但料叉上有料,无法启动,请检查", MsgLevel.warning);
...@@ -120,9 +122,10 @@ namespace DeviceLibrary ...@@ -120,9 +122,10 @@ namespace DeviceLibrary
case MoveStep.StoreIn01: case MoveStep.StoreIn01:
if (!StoreMoveInfo.MoveParam.IsNg && !ServerCM.SendStoreState(StoreMoveInfo.MoveParam.PosID, StoreStatus.InStoreExecute)) if (!StoreMoveInfo.MoveParam.IsNg && !ServerCM.SendStoreState(StoreMoveInfo.MoveParam.PosID, StoreStatus.InStoreExecute))
{ {
Msg.add("服务器连接异常",MsgLevel.warning); Msg.add("服务器连接异常", MsgLevel.warning);
return; return;
} }
ServerCM.storeStatus = StoreStatus.InStoreExecute;
StoreMoveInfo.NextMoveStep(MoveStep.StoreIn03); StoreMoveInfo.NextMoveStep(MoveStep.StoreIn03);
if (StoreMoveInfo.MoveParam.IsNg) if (StoreMoveInfo.MoveParam.IsNg)
...@@ -131,9 +134,9 @@ namespace DeviceLibrary ...@@ -131,9 +134,9 @@ namespace DeviceLibrary
{ {
var ac = CSVPositionReader<ACStorePosition>.GetPositon(StoreMoveInfo.MoveParam.PosID); var ac = CSVPositionReader<ACStorePosition>.GetPositon(StoreMoveInfo.MoveParam.PosID);
boxTransport.Start(new BoxStorePosition(Config, StoreMoveInfo.MoveParam.ReelOnFixture? StoreSide.NGDoor:StoreSide.Clamp, StoreMoveInfo.MoveParam), new BoxStorePosition(Config, ac, StoreMoveInfo.MoveParam), StoreMoveType.InStore, true); boxTransport.Start(new BoxStorePosition(Config, StoreMoveInfo.MoveParam.ReelOnFixture ? StoreSide.NGDoor : StoreSide.Clamp, StoreMoveInfo.MoveParam), new BoxStorePosition(Config, ac, StoreMoveInfo.MoveParam), StoreMoveType.InStore, true);
} }
StoreMoveInfo.log($"开始转运料盘"); StoreMoveInfo.log($"开始转运料盘");
break; break;
case MoveStep.StoreIn02: case MoveStep.StoreIn02:
break; break;
...@@ -160,7 +163,7 @@ namespace DeviceLibrary ...@@ -160,7 +163,7 @@ namespace DeviceLibrary
StoreMoveInfo.log($"料盘已到达目的地"); StoreMoveInfo.log($"料盘已到达目的地");
if (StoreMoveInfo.MoveParam.IsNg) if (StoreMoveInfo.MoveParam.IsNg)
{ {
NGPuted(StoreMoveInfo.MoveParam.NgMsg); NGPuted(StoreMoveInfo.MoveParam.NgMsg);
} }
StoreMoveInfo.NextMoveStep(MoveStep.StoreIn05); StoreMoveInfo.NextMoveStep(MoveStep.StoreIn05);
} }
...@@ -185,15 +188,16 @@ namespace DeviceLibrary ...@@ -185,15 +188,16 @@ namespace DeviceLibrary
Msg.add("服务器连接异常", MsgLevel.warning); Msg.add("服务器连接异常", MsgLevel.warning);
return; return;
} }
ServerCM.storeStatus = StoreStatus.OutStoreExecute;
StoreMoveInfo.NextMoveStep(MoveStep.StoreOut11); StoreMoveInfo.NextMoveStep(MoveStep.StoreOut11);
var outFrom = CSVPositionReader<ACStorePosition>.GetPositon(StoreMoveInfo.MoveParam.PosID); var outFrom = CSVPositionReader<ACStorePosition>.GetPositon(StoreMoveInfo.MoveParam.PosID);
BoxStorePosition outTo; BoxStorePosition outTo;
if (StoreMoveInfo.MoveParam.IsNg) if (StoreMoveInfo.MoveParam.IsNg)
outTo = new BoxStorePosition(Config, StoreSide.NGDoor, StoreMoveInfo.MoveParam); outTo = new BoxStorePosition(Config, StoreSide.NGDoor, StoreMoveInfo.MoveParam);
else else
outTo = new BoxStorePosition(Config, StoreSide.String, StoreMoveInfo.MoveParam); outTo = new BoxStorePosition(Config, StoreSide.String, StoreMoveInfo.MoveParam);
boxTransport.Start(outFrom == null ? null : new BoxStorePosition(Config, outFrom, StoreMoveInfo.MoveParam), outTo, StoreMoveType.OutStore); boxTransport.Start(outFrom == null ? null : new BoxStorePosition(Config, outFrom, StoreMoveInfo.MoveParam), outTo, StoreMoveType.OutStore);
StoreMoveInfo.log($"开始转运料盘{(StoreMoveInfo.MoveParam.IsNg ? "单料口" : "料串")}"); StoreMoveInfo.log($"开始转运料盘{(StoreMoveInfo.MoveParam.IsNg ? "单料口" : "料串")}");
break; break;
case MoveStep.StoreOut11: case MoveStep.StoreOut11:
...@@ -220,10 +224,10 @@ namespace DeviceLibrary ...@@ -220,10 +224,10 @@ namespace DeviceLibrary
Msg.add("服务器连接异常", MsgLevel.warning); Msg.add("服务器连接异常", MsgLevel.warning);
return; return;
} }
StoreMoveInfo.log($"料盘已到达目的地"); StoreMoveInfo.log($"料盘已到达目的地");
if (StoreMoveInfo.MoveParam.IsNg) if (StoreMoveInfo.MoveParam.IsNg)
{ {
NGPuted(StoreMoveInfo.MoveParam.NgMsg); NGPuted(StoreMoveInfo.MoveParam.NgMsg);
OutSingleJobList.ClearLastPosid(StoreMoveInfo.MoveParam.PosID); OutSingleJobList.ClearLastPosid(StoreMoveInfo.MoveParam.PosID);
} }
...@@ -232,7 +236,7 @@ namespace DeviceLibrary ...@@ -232,7 +236,7 @@ namespace DeviceLibrary
ReelPutted(StoreMoveInfo.MoveParam.PlateH); ReelPutted(StoreMoveInfo.MoveParam.PlateH);
OutStoreJobList.ClearLastPosid(StoreMoveInfo.MoveParam.PosID); OutStoreJobList.ClearLastPosid(StoreMoveInfo.MoveParam.PosID);
} }
StoreMoveInfo.EndMove(); StoreMoveInfo.EndMove();
} }
break; break;
...@@ -241,8 +245,9 @@ namespace DeviceLibrary ...@@ -241,8 +245,9 @@ namespace DeviceLibrary
break; break;
} }
} }
string StoreState() { string StoreState()
string state = crc.GetString(L.free,"空闲中"); {
string state = crc.GetString(L.free, "空闲中");
if (StoreMoveInfo.MoveStep >= MoveStep.StoreOut10) if (StoreMoveInfo.MoveStep >= MoveStep.StoreOut10)
{ {
state = $"{crc.GetString(L.reel_outting, "出库中")},{crc.GetString(L.posnum, "出库中")}:{StoreMoveInfo.MoveParam.PosID}"; state = $"{crc.GetString(L.reel_outting, "出库中")},{crc.GetString(L.posnum, "出库中")}:{StoreMoveInfo.MoveParam.PosID}";
......
...@@ -141,6 +141,14 @@ namespace DeviceLibrary ...@@ -141,6 +141,14 @@ namespace DeviceLibrary
Batch_Axis.AbsMove(StringMoveInfo, Config.Batch_P1, Config.Batch_P1_speed); Batch_Axis.AbsMove(StringMoveInfo, Config.Batch_P1, Config.Batch_P1_speed);
break; break;
case MoveStep.StringLoad_01: case MoveStep.StringLoad_01:
if(StringState== StringStateE.OutStore)
{
ServerCM.storeStatus = StoreStatus.OutStoreExecute;
}
else if(StringState== StringStateE.InStore)
{
ServerCM.storeStatus = StoreStatus.InStoreExecute;
}
StringMoveInfo.NextMoveStep(MoveStep.StringLoad_01a); StringMoveInfo.NextMoveStep(MoveStep.StringLoad_01a);
StringMoveInfo.log($"批量轴到待机点"); StringMoveInfo.log($"批量轴到待机点");
Batch_Axis.AbsMove(StringMoveInfo, Config.Batch_P1, Config.Batch_P1_speed); Batch_Axis.AbsMove(StringMoveInfo, Config.Batch_P1, Config.Batch_P1_speed);
...@@ -408,6 +416,7 @@ namespace DeviceLibrary ...@@ -408,6 +416,7 @@ namespace DeviceLibrary
case MoveStep.StringOut_Released: case MoveStep.StringOut_Released:
StringMoveInfo.log($"料串已回到待机点"); StringMoveInfo.log($"料串已回到待机点");
ServerCM.storeStatus = StoreStatus.StoreOnline;
StringMoveInfo.NewMove(MoveStep.Wait); StringMoveInfo.NewMove(MoveStep.Wait);
break; break;
case MoveStep.StringOut_07: case MoveStep.StringOut_07:
......
...@@ -186,7 +186,7 @@ namespace DeviceLibrary ...@@ -186,7 +186,7 @@ namespace DeviceLibrary
reelParam = null; reelParam = null;
try try
{ {
string fix = ConfigHelper.Config.Get(Setting_Init.FixBuffInfo, ""); string fix = Setting_Init.FixBuffInfo;
if (!string.IsNullOrEmpty(fix)) if (!string.IsNullOrEmpty(fix))
{ {
reelParam = JsonHelper.DeserializeJsonToObject<ReelParam>(fix); reelParam = JsonHelper.DeserializeJsonToObject<ReelParam>(fix);
...@@ -201,11 +201,13 @@ namespace DeviceLibrary ...@@ -201,11 +201,13 @@ namespace DeviceLibrary
} }
public static void PutReelInFixPos(ReelParam reelParam) public static void PutReelInFixPos(ReelParam reelParam)
{ {
ConfigHelper.Config.Set(Setting_Init.FixBuffInfo, JsonHelper.SerializeObject(reelParam)); string buff= JsonHelper.SerializeObject(reelParam);
Setting_Init.FixBuffInfo=buff;
LogUtil.info(buff);
} }
public static void ClearReelInFixPos() public static void ClearReelInFixPos()
{ {
ConfigHelper.Config.Set(Setting_Init.FixBuffInfo, ""); Setting_Init.FixBuffInfo = "";
} }
#endregion #endregion
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!