Commit 9c7f139d LN

1

1 个父辈 3768325d
......@@ -10,7 +10,7 @@ namespace OnlineStore.Common
{
public class SMF
{
public static string DeviceType = "SBSH";
public static string DeviceType = "OUT";
static string _server = Setting_Init.Device_Server_Address;
static string server
{
......
......@@ -124,8 +124,26 @@ namespace DeviceLibrary
path = path.Substring(0, path.Length - 1);
return path;
}
private static string getData(Dictionary<string, Object> data, string key)
{
if (data.ContainsKey(key))
{
return data[key].ToString();
}
return "";
}
private static int getIntData(Dictionary<string, Object> data, string key)
{
try
{
return Int32.Parse(getData(data, key));
}
catch (Exception ex)
{
}
return -1;
}
public static ShelfTaskInfo ShelfFinish(string rfid, string barcode = "", string rfidLoc = "", string robotIndex = "1")
{
......@@ -145,44 +163,28 @@ namespace DeviceLibrary
string url = GetAddr(api, paramMap);
LogUtil.debug("http :URL:" + url);
string json = HttpHelper.Post(url, "", 10000);
string resultStr = HttpHelper.Post(url, "", 10000);
if (barcode != "")
{
LogUtil.info("http :URL:" + url + " :Response:" + json + " 耗时[" + FormUtil.GetSpanStr(DateTime.Now - startTime) + "]");
LogUtil.info("http :URL:" + url + " :Response:" + resultStr + " 耗时[" + FormUtil.GetSpanStr(DateTime.Now - startTime) + "]");
}
else
{
LogUtil.debug("http :URL:" + url + " :Response:" + json);
LogUtil.debug("http :URL:" + url + " :Response:" + resultStr);
}
if (string.IsNullOrWhiteSpace(json)) return task;
//行 2234: [2021 - 04 - 07 15:09:31,412][9]INFO - http :URL:
//http://192.168.100.14/myproject/rest/api/qisda/device/putShelfFinished?barcode=640253A*34005600000309*QG00006*5000*23C4&rfid=F103&rfidLoc=8&robotIndex=1 :
//Response:{"code":0,"msg":"ok","data":{"smallTask":"0","cutPackageTask":"0","packageTask":"0","bigTask":"0","smallEmpty":"0","bigEmpty":"5","packageEmpty":"0","rfid":"F103","usedRfidList":"F106,F105,F103","barcode":"640253A*34005600000309*QG00006*5000*23C4","cutTask":"0"}} 耗时[00:00:00.1]
JavaScriptSerializer serializer = new JavaScriptSerializer();
Dictionary<string, object> obj = (Dictionary<string, object>)serializer.DeserializeObject(json);
if (!obj.TryGetValue("code", out object value)) return task;
if (value.ToString() != "0")
{
if (obj.TryGetValue("msg", out value))
LogUtil.error("http" + api + ": " + value.ToString());
return task;
ResultData data = JsonHelper.DeserializeJsonToObject<ResultData>(resultStr);
if (data == null || data.code != 0)
{
return null;
}
if (!obj.TryGetValue("data", out value)) return task;
Dictionary<string, object> dict = (Dictionary<string, object>)value;
if (dict == null)
else
{
LogUtil.info("http" + api + ": data=null");
return task;
task.bigEmpty = getIntData(data.data, "bigEmpty");
task.smallEmpty = getIntData(data.data, "smallEmpty");
task.usedRfidList = getData(data.data, "usedRfidList");
}
if (dict.TryGetValue("bigEmpty", out value))
int.TryParse(value.ToString(), out task.bigEmpty);
if (dict.TryGetValue("smallEmpty", out value))
int.TryParse(value.ToString(), out task.smallEmpty);
if (dict.TryGetValue("usedRfidList", out value))
task.usedRfidList = value.ToString();
}
catch (Exception ex)
{
......
......@@ -9,24 +9,7 @@ using System.Threading.Tasks;
[Serializable]
public class ReelParam
{
///// <summary>
///// 创建新出入库信息
///// </summary>
///// <param name="wareNo">二维码内容</param>
///// <param name="platew">宽度</param>
///// <param name="plateh">高度</param>
///// <param name="IsNg">是否是入库NG料</param>
///// <param name="ngMsg">NG消息</param>
//public ReelParam(string wareNo = "", int platew = 0, int plateh = 0, bool _IsNg = false, string ngMsg = "")
//{
// WareCode = wareNo;
// PlateW = platew;
// PlateH = plateh;
// IsNg = _IsNg;
// NgMsg = ngMsg;
// codeInfos = new List<CodeInfo>();
//}
{
public ReelParam(string wareNo = "", int platew = 0, int plateh = 0,string startPos="",string pos="", bool _IsNg = false, string ngMsg = "")
{
WareCode = wareNo;
......@@ -35,8 +18,17 @@ public class ReelParam
IsNg = _IsNg;
NgMsg = ngMsg;
this.StartPos = startPos;
this.TargetPos = TargetPos;
this.TargetPos = pos;
codeInfos = new List<CodeInfo>();
string[] posArray = TargetPos.Split('_');
if (posArray.Length >=2)
{
TargetOutShelf = posArray[0];
if (TargetOutShelf != "NG")
{
TargetLoc = posArray[1];
}
}
}
/// <summary>
/// 物品二维码信息
......@@ -50,6 +42,16 @@ public class ReelParam
/// 库位号
/// </summary>
public string TargetPos { get; set; }
/// <summary>
/// 放料的目标料架
/// </summary>
public string TargetOutShelf { get; set; }
/// <summary>
/// 放料的目标位置(服务器通信)
/// </summary>
public string TargetLoc { get; set; }
public string bitmapfilename = "";
public List<CodeInfo> codeInfos { get; set; }
/// <summary>
......
......@@ -18,12 +18,12 @@ namespace DeviceLibrary
//料盘检测信号
public string Reel_Check = "Reel_Check";
MoveInfo MoveInfo;
public string ErrMsgTxt = "";
public string WarnMsg = "";
//private string LastCode;
private List<CodeLibrary.CodeInfo> LastCode;
public TrayInfo CurrTray = null;
public TrayInfo CurrTray = new TrayInfo();
public string PosName;
......@@ -31,7 +31,7 @@ namespace DeviceLibrary
{
this.Name = name;
this.PosName = name;
MoveInfo = new MoveInfo(name, false);
MoveInfo = new MoveInfo(name );
#region 初始化IO
string ioStr = name + "_";
......@@ -45,7 +45,7 @@ namespace DeviceLibrary
MoveInfo.NewMove(MoveStep.Wait);
MoveInfo.log("执行重置,清理当前条码:"+LastCode);
LastCode = new List<CodeLibrary.CodeInfo>();
ErrMsgTxt = "";
WarnMsg = "";
}
public bool ReelReady()
......@@ -61,7 +61,7 @@ namespace DeviceLibrary
MoveInfo.NewMove(MoveStep.Wait);
MoveInfo.log("料盘已离开:执行重置,清理当前条码:" + LastCode);
LastCode = new List<CodeLibrary.CodeInfo> ();
ErrMsgTxt = "";
WarnMsg = "";
}
bool pause = false;
......@@ -96,7 +96,7 @@ namespace DeviceLibrary
MoveInfo.NewMove(MoveStep.IN01_WaitCheck);
MoveInfo.log("检测到料盘信号");
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(Reel_Check, IO_VALUE.HIGH));
ErrMsgTxt = "";
WarnMsg = "";
}
}
else
......@@ -115,7 +115,7 @@ namespace DeviceLibrary
}
else if (MoveInfo.IsTimeOut(60))
{
ErrMsgTxt = MoveInfo.Name + "[" + MoveInfo.MoveStep + "] 扫码执行结束超时 [" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "] 扫码执行结束超时 [" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
}
break;
case MoveStep.IN03_GetPos:
......@@ -126,7 +126,7 @@ namespace DeviceLibrary
}
else if (MoveInfo.IsTimeOut(60))
{
ErrMsgTxt = MoveInfo.Name + "[" + MoveInfo.MoveStep + "] 获取库位号超时 [" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "] 获取库位号超时 [" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
}
break;
case MoveStep.IN05_ReelReady:
......@@ -186,8 +186,8 @@ namespace DeviceLibrary
if (String.IsNullOrEmpty(shelfRfid))
{
//无可用料架
ErrMsgTxt = $"{Name}:{codestr}暂无可用料架";
MoveInfo.errlog("获取库位号: " + ErrMsgTxt + ",等待3秒后重新获取");
WarnMsg = $"{Name}:{codestr}暂无可用料架";
MoveInfo.errlog("获取库位号: " + WarnMsg + ",等待3秒后重新获取");
Thread.Sleep(3000);
}
else
......@@ -204,7 +204,7 @@ namespace DeviceLibrary
}
else
{
ErrMsgTxt = " getLocation " + outMsg;
WarnMsg = " getLocation " + outMsg;
}
break;
}
......@@ -220,9 +220,9 @@ namespace DeviceLibrary
private void ClearWarnMsg(string v)
{
if (ErrMsgTxt.Contains(v))
if (WarnMsg.Contains(v))
{
ErrMsgTxt = "";
WarnMsg = "";
}
}
......
using CodeLibrary;
using OnlineStore;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OnlineStore;
using OnlineStore.LoadCSVLibrary;
using System.Linq;
namespace DeviceLibrary
{
......@@ -26,39 +19,8 @@ namespace DeviceLibrary
CurrentPosIndex = posindex;
AIOTMoveInfo.NewMove(MoveStep.StoreIn01);
return true;
}
public bool ManualOut(int posindex, out string errmsg)
{
errmsg = "";
if (boxTransport.IsComplateOrFree)
{
if (!boxTransport.IgnoreX09 && IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
{
if (!boxTransport.IgnoreX09 && IOMonitor.IODebound(IO_Type.TrayCheck_Fixture, Config, IO_VALUE.HIGH, 5000))
{
errmsg = crc.GetString("Res0152", "收到出库任务,但料叉上有料,无法启动,请检查");
}
else
errmsg = crc.GetString("Res0152", "收到出库任务,但料叉上有料,无法启动,请检查");
return false;
}
else
boxTransport.IgnoreX09 = false;
CurrentPosIndex = posindex + 1;
AIOTMoveInfo.NewMove(MoveStep.StoreOut14);
AIOTMoveInfo.log($"开始出库任务:" + RobotManage.allPositionMap.Values.ToArray()[posindex].PositionNum);
}
else
{
errmsg = crc.GetString("Res0153", "料仓正在出入库中,无法出库");
}
return true;
}
public bool ManualIn(int posindex, out string errmsg)
}
public bool ManualIn(string startPos, int posindex, out string errmsg)
{
errmsg = "";
if (boxTransport.IsComplateOrFree)
......@@ -78,6 +40,7 @@ namespace DeviceLibrary
boxTransport.IgnoreX09 = false;
CurrentPosIndex = posindex;
CurrStartPos = startPos;
StopAutoInOut = true;
AIOTMoveInfo.NewMove(MoveStep.StoreIn01);
AIOTMoveInfo.log($"开始入库任务:" + RobotManage.allPositionMap.Values.ToArray()[posindex].PositionNum);
......@@ -100,6 +63,7 @@ namespace DeviceLibrary
/// </summary>
public bool AutoInOutTest { get; set; } = false;
bool StopAutoInOut = false;
string CurrStartPos = "IN_1";
void AutoInOutTestProcess()
{
if (CheckWait(AIOTMoveInfo))
......
using CodeLibrary;
using OnlineStore;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using OnlineStore.LoadCSVLibrary;
namespace DeviceLibrary
{
......
......@@ -2,9 +2,6 @@
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
......
using CodeLibrary;
using OnlineStore;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DeviceLibrary
{
......
......@@ -14,6 +14,7 @@ namespace DeviceLibrary
{
public partial class MainMachine : IRobot
{
public bool LoadOk = false;
public string Name { get; set; } = "OutBound";
private bool _canRunning = true;
public bool canRunning
......@@ -113,25 +114,43 @@ namespace DeviceLibrary
IOMonitor.RegisterIO(IO_Type.Left_NGDoor_Close_Check, Config,IO_VALUE.LOW, LeftNgDoorOpen, 2500, 500);
IOMonitor.RegisterIO(IO_Type.Right_NGDoor_Close_Check, Config, IO_VALUE.LOW, RightNgDoorOpen, 2500, 500);
for(int i = 0; i < 2; i++)
for(int i = 1; i <= 2; i++)
{
InReelBean inReel = new InReelBean("IN_"+i);
inReelBeans.Add(inReel);
}
for (int i = 0; i < 5; i++)
for (int i = 1; i < 5; i++)
{
OutShelfBean outShelf = new OutShelfBean("U" + i);
outShelfBeans.Add(outShelf.Name, outShelf);
}
LedProcessInit();
LoadOk = true;
}
public OutShelfBean getOutShelf(string name)
{
OutShelfBean result = null;
outShelfBeans.TryGetValue(name, out result);
return result;
}
public InReelBean getInReelBean(string name)
{
foreach(InReelBean inReel in inReelBeans)
{
if (inReel.Name.Equals(name))
{
return inReel;
}
}
return null;
}
//private void ServerCM_OutStoreEvent(JobInfo jobInfo)
//{
// AddOutStoreTask(jobInfo.WareNum, jobInfo.PosId, jobInfo.plateW, jobInfo.plateH);
//}
private void Crc_LanguageChangeEvent(object sender, EventArgs e)
{
......@@ -202,6 +221,8 @@ namespace DeviceLibrary
{
bean.Process();
}
ShelfEmptyProcess();
}
else if (runStatus == RunStatus.HomeReset)
{
......@@ -610,7 +631,7 @@ namespace DeviceLibrary
{
if (bean.ShelfValid())
{
rfid += bean.currShelfRfid;
rfid += bean.CurrShelf.realRFID;
}
}
return rfid;
......@@ -637,23 +658,24 @@ namespace DeviceLibrary
//需要取放料,且料架已准备好
if (emptyMap != null)
{
//List<int> keys = new List<int>(StationMap.Keys);
//foreach (int key in keys)
//{
// ShelfInfo shelf = StationMap[key].CurrShelf;
// if (StationMap[key].IsReady())
// {
// string realRfid = StationMap[key].CurrShelf.RealShelf;
// if (emptyMap.TryGetValue(realRfid, out int emptyP))
// {
// StationMap[key].CurrShelf.EmptyPos = emptyP;
// if (emptyP <= 0)
// {
// StationMap[key].CheckNeedLeave(true);
// }
// }
// }
//}
List<string> keys = new List<string>(outShelfBeans.Keys);
foreach (string key in keys)
{
ShelfInfo shelf = outShelfBeans[key].CurrShelf;
if (outShelfBeans[key].ShelfValid())
{
string realRfid = outShelfBeans[key].CurrShelf.rfid;
if (emptyMap.TryGetValue(realRfid, out int emptyP))
{
outShelfBeans[key].CurrShelf.EmptyPos = emptyP;
if (emptyP <= 0)
{
outShelfBeans[key].CurrShelf.IsNeedLeave=true;
LogUtil.error(outShelfBeans[key] + "的料架 【" + realRfid + "】剩余空位【" + emptyP + "】更改料架状态为需要离开");
}
}
}
}
}
}
......@@ -665,21 +687,31 @@ namespace DeviceLibrary
internal string GetShelfPosId(TrayInfo tray)
{
string str = "";
string targetPosName = "";
if (tray != null)
{
foreach (OutShelfBean obj in outShelfBeans.Values)
{
if (obj.IsRightShelf(tray, out str))
{
if (obj.IsRightShelf(tray, out targetPosName))
{
//判断库位号是否存在
ACStorePosition position = CSVPositionReader<ACStorePosition>.GetPositon(targetPosName);
if (position == null)
{
LogUtil.error(Name + " " + tray.ToStr() + " 找到匹配料架,但未找到库位号:" + position) ;
WarnMsg = tray.barcode+"未找到库位号:"+position;
targetPosName = "";
break;
}
obj.StartPutReel();
LogUtil.info(Name + " " + tray.ToStr() + " 使用料架:" + str + ",更改料架为忙碌状态");
LogUtil.info(Name + " " + tray.ToStr() + " 使用料架:" + targetPosName + ",更改料架为忙碌状态,开始放料");
break;
}
}
}
return str;
return targetPosName;
}
}
}
\ No newline at end of file
......@@ -56,7 +56,7 @@ namespace DeviceLibrary
//送料到NG
StoreMoveInfo.NewMove(MoveStep.PutReel01_Ready);
StoreMoveInfo.MoveParam = new ReelParam(tray.barcode, tray.plateW, tray.plageH, inReel.PosName, ngPos, tray.ngReel, tray.ngMsg);
StoreMoveInfo.log("准备放料:" + StoreMoveInfo.MoveParam.ToStr());
StoreMoveInfo.log("NG料准备放料:" + StoreMoveInfo.MoveParam.ToStr());
break;
}
}
......@@ -65,13 +65,17 @@ namespace DeviceLibrary
{
//获取料架
string pos = GetShelfPosId(tray);
if (pos != "")
{
//送料到料架
StoreMoveInfo.NewMove(MoveStep.PutReel01_Ready);
StoreMoveInfo.MoveParam = new ReelParam(tray.barcode, tray.plateW, tray.plageH, inReel.PosName, pos, tray.ngReel, tray.ngMsg);
StoreMoveInfo.log("出库料准备放料:" + StoreMoveInfo.MoveParam.ToStr());
break;
}
}
}
}
}
break;
// //放料,准备放料
......@@ -99,15 +103,36 @@ namespace DeviceLibrary
{
StoreMoveInfo.NewMove(MoveStep.PutReel03_GetReelEnd);
StoreMoveInfo.log("取料完成:" + StoreMoveInfo.MoveParam.ToStr());
//入口状态处理
foreach(InReelBean inReelBean in inReelBeans)
{
if (inReelBean.Name.Equals(StoreMoveInfo.MoveParam.StartPos)){
inReelBean.ReelLeave();
}
}
}
break;
case MoveStep.PutReel03_GetReelEnd:
if (boxTransport.IsPutOnOut|| boxTransport.IsComplateOrFree)
if (boxTransport.IsPutOnOut || boxTransport.IsComplateOrFree)
{
StoreMoveInfo.NewMove(MoveStep.PutReel04_PutReelEnd);
StoreMoveInfo.log("放料完成:" + StoreMoveInfo.MoveParam.ToStr());
//TODO 通知服务器
if (StoreMoveInfo.MoveParam.IsNg)
{
//更新NG库位缓存状态
UpdateNgPos(StoreMoveInfo.MoveParam.TargetPos, StoreMoveInfo.MoveParam);
}
else
{
OutShelfBean bean = getOutShelf(StoreMoveInfo.MoveParam.TargetOutShelf);
//通知服务器放料完成
ShelfTaskInfo taskInfo = HttpServer.ShelfFinish(bean.CurrShelf.realRFID, StoreMoveInfo.MoveParam.WareCode, StoreMoveInfo.MoveParam.TargetLoc);
bean.PutReelOk(taskInfo);
}
}
break;
case MoveStep.PutReel04_PutReelEnd:
......@@ -128,17 +153,18 @@ namespace DeviceLibrary
string StoreState()
{
string state = crc.GetString("Res0162", "空闲中");
string moveInfo= StoreMoveInfo.MoveParam.WareCode + ": [" + StoreMoveInfo.MoveParam.StartPos + "]->[" + StoreMoveInfo.MoveParam.TargetPos + "]";
if (StoreMoveInfo.MoveStep == MoveStep.PutReel01_Ready)
{
state = crc.GetString("Res0072","准备放料") + ":[]->[" + StoreMoveInfo.MoveParam.TargetPos+"]";
state = crc.GetString("Res0072", "准备放料") + ":" + moveInfo;
}
else if (StoreMoveInfo.MoveStep >= MoveStep.PutReel03_GetReelEnd)
{
state = crc.GetString("Res0163", "取料中") + ":" + StoreMoveInfo.MoveParam.TargetPos;
state = crc.GetString("Res0163", "取料中") + ":" + moveInfo;
}
else if (StoreMoveInfo.MoveStep >= MoveStep.PutReel05_End)
{
state = crc.GetString("Res0164", "放料中") + ":" + StoreMoveInfo.MoveParam.TargetPos;
state = crc.GetString("Res0164", "放料中") + ":" + moveInfo;
}
return state;
......
......@@ -2,10 +2,7 @@ using OnlineStore;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace DeviceLibrary
{
......@@ -19,8 +16,10 @@ namespace DeviceLibrary
this.moveStep = MoveStep.Wait;
IsInWait = false;
this.Name = name;
if(addtolist)
if (addtolist)
{
List.Add(this);
}
}
public MoveInfo(object p, string v)
......
......@@ -31,9 +31,15 @@ namespace DeviceLibrary
public static Dictionary<string, ACStorePosition> allPositionMap { get => CSVPositionReader<ACStorePosition>.allPositionMap; }
static List<string> _positionNumList=null;
public static List<string> PositionNumList { get {
public static List<string> PositionNumList
{
get
{
if (_positionNumList == null)
_positionNumList = CSVPositionReader<ACStorePosition>.allPositionMap.Keys.ToList();
{
List<ACStorePosition> allPosList = new List<ACStorePosition>(CSVPositionReader<ACStorePosition>.allPositionMap.Values);
_positionNumList = (from m in allPosList where m.PosType.Equals(0) select m.PositionNum).ToList();
}
return _positionNumList;
}
}
......
位置,备注,优先级,高度,宽度,旋转轴位置P2,升降轴库位入料高点P3,升降轴库位入料低点P4,进出轴库位点取料点P3
U1_A1,出口1_A1,0,24,7,99198,417323,379066,227002
U1_A2,出口1_A2,0,24,7,219347,91377,80569,206929
U1_A3,出口1_A3,0,24,7,99198,417323,-99999999,227002
U1_A4,出口1_A4,0,24,7,219347,91377,-99999999,206929
U1_A5,出口1_A5,0,24,7,219347,91377,123,206929
U1_A6,出口1_A6,0,24,7,219347,91377,1231,206929
U1_A7,出口1_A7,0,24,7,219347,91377,23,206929
,,,,,,,,
,,,,,,,,
U2_A1,出口2_A1,0,24,7,99198,417323,379066,227002
U2_A2,出口2_A2,0,24,7,219347,91377,80569,206929
U2_A3,出口2_A3,0,24,7,99198,417323,-99999999,227002
U2_A4,出口2_A4,0,24,7,219347,91377,-99999999,206929
U2_A5,出口2_A5,0,24,7,219347,91377,123,206929
U2_A6,出口2_A6,0,24,7,219347,91377,1231,206929
U2_A7,出口2_A7,0,24,7,219347,91377,23,206929
位置,类型,备注,优先级,高度,宽度,旋转轴位置P2,升降轴库位入料高点P3,升降轴库位入料低点P4,进出轴库位点取料点P3
U1_A1,0,出口1_A1,0,24,7,99198,417323,379066,227002
U1_A2,0,出口1_A2,0,24,7,219347,91377,80569,206929
U1_A3,0,出口1_A3,0,24,7,99198,417323,-99999999,227002
U1_A4,0,出口1_A4,0,24,7,219347,91377,-99999999,206929
U1_A5,0,出口1_A5,0,24,7,219347,91377,123,206929
U1_A6,0,出口1_A6,0,24,7,219347,91377,1231,206929
U1_A7,0,出口1_A7,0,24,7,219347,91377,23,206929
,,,,,,,,,
,,,,,,,,,
U2_A1,0,出口2_A1,0,24,7,99198,417323,379066,227002
U2_A2,0,出口2_A2,0,24,7,219347,91377,80569,206929
U2_A3,0,出口2_A3,0,24,7,99198,417323,-99999999,227002
U2_A4,0,出口2_A4,0,24,7,219347,91377,-99999999,206929
U2_A5,0,出口2_A5,0,24,7,219347,91377,123,206929
U2_A6,0,出口2_A6,0,24,7,219347,91377,1231,206929
U2_A7,0,出口2_A7,0,24,7,219347,91377,23,206929
位置,备注,优先级,高度,宽度,旋转轴位置P2,升降轴库位入料高点P3,升降轴库位入料低点P4,进出轴库位点取料点P3
IN_1,上层入料口,0,24,7,99198,417323,379066,227002
IN_2,下层入料口,0,24,7,219347,91377,80569,206929
,,,,,,,,
NG_7_1,NG 7寸 1,0,24,7,99198,417323,379066,227002
NG_7_2,NG 7寸 2,0,24,7,219347,91377,80569,206929
NG_7_3,NG 7寸 3,0,24,7,99198,417323,-99999999,227002
NG_7_4,NG 7寸 4,0,24,7,219347,91377,-99999999,206929
NG_7_5,NG 7寸 5,0,24,7,219347,91377,123,206929
NG_7_6,NG 7寸 6,0,24,7,219347,91377,1231,206929
NG_7_7,NG 7寸 7,0,24,7,219347,91377,23,206929
,,,,,,,,
NG_13_1,NG 13寸 1,0,56,7,219347,91377,23,206929
NG_13_2,NG 13寸 2,0,56,7,219347,91377,23,206929
NG_13_3,NG 13寸 3,0,56,7,219347,91377,23,206929
NG_13_4,NG 13寸 4,0,56,7,219347,91377,23,206929
NG_13_5,NG 13寸 5,0,56,7,219347,91377,23,206929
位置,类型,备注,优先级,高度,宽度,旋转轴位置P2,升降轴库位入料高点P3,升降轴库位入料低点P4,进出轴库位点取料点P3
IN_1,1,上层入料口,0,24,7,99198,417323,379066,227002
IN_2,1,下层入料口,0,24,7,219347,91377,80569,206929
,,,,,,,,,
NG_7_1,2,NG 7寸 1,0,24,7,99198,417323,379066,227002
NG_7_2,2,NG 7寸 2,0,24,7,219347,91377,80569,206929
NG_7_3,2,NG 7寸 3,0,24,7,99198,417323,-99999999,227002
NG_7_4,2,NG 7寸 4,0,24,7,219347,91377,-99999999,206929
NG_7_5,2,NG 7寸 5,0,24,7,219347,91377,123,206929
NG_7_6,2,NG 7寸 6,0,24,7,219347,91377,1231,206929
NG_7_7,2,NG 7寸 7,0,24,7,219347,91377,23,206929
,,,,,,,,,
NG_13_1,2,NG 13寸 1,0,56,7,219347,91377,23,206929
NG_13_2,2,NG 13寸 2,0,56,7,219347,91377,23,206929
NG_13_3,2,NG 13寸 3,0,56,7,219347,91377,23,206929
NG_13_4,2,NG 13寸 4,0,56,7,219347,91377,23,206929
NG_13_5,2,NG 13寸 5,0,56,7,219347,91377,23,206929
......@@ -12,7 +12,12 @@ namespace OnlineStore.LoadCSVLibrary
/// 位置
/// </summary>
[CSVAttribute("位置")]
public string PositionNum { get; set; }
public string PositionNum { get; set; }
/// <summary>
/// 类型。0=库位。1=入库库位,2=NG库位
/// </summary>
[CSVAttribute("类型")]
public int PosType { get; set; }
/// <summary>
/// 优先级
/// </summary>
......

namespace TheMachine
{
partial class Form1
partial class FormMain
{
/// <summary>
/// 必需的设计器变量。
......@@ -47,10 +47,10 @@ namespace TheMachine
this.tabc = new System.Windows.Forms.TabControl();
this.tabP1 = new System.Windows.Forms.TabPage();
this.pnl = new System.Windows.Forms.Panel();
this.listReelInfo = new System.Windows.Forms.ListView();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.stateView = new System.Windows.Forms.ListView();
this.pictureBox2 = new System.Windows.Forms.PictureBox();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.btn_IgnoreX09 = new System.Windows.Forms.Button();
this.btn_PauseBuzzer = new System.Windows.Forms.Button();
this.listView1 = new System.Windows.Forms.ListView();
......@@ -60,7 +60,6 @@ namespace TheMachine
this.pnl.SuspendLayout();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// menuStrip1
......@@ -164,7 +163,7 @@ namespace TheMachine
// 简体中文ToolStripMenuItem
//
this.简体中文ToolStripMenuItem.Name = "简体中文ToolStripMenuItem";
this.简体中文ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.简体中文ToolStripMenuItem.Size = new System.Drawing.Size(144, 26);
this.简体中文ToolStripMenuItem.Tag = "not";
this.简体中文ToolStripMenuItem.Text = "简体中文";
this.简体中文ToolStripMenuItem.Click += new System.EventHandler(this.简体中文ToolStripMenuItem_Click);
......@@ -172,7 +171,7 @@ namespace TheMachine
// englishToolStripMenuItem
//
this.englishToolStripMenuItem.Name = "englishToolStripMenuItem";
this.englishToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.englishToolStripMenuItem.Size = new System.Drawing.Size(144, 26);
this.englishToolStripMenuItem.Tag = "not";
this.englishToolStripMenuItem.Text = "English";
this.englishToolStripMenuItem.Click += new System.EventHandler(this.englishToolStripMenuItem_Click);
......@@ -210,9 +209,9 @@ namespace TheMachine
//
// pnl
//
this.pnl.Controls.Add(this.listReelInfo);
this.pnl.Controls.Add(this.groupBox1);
this.pnl.Controls.Add(this.pictureBox2);
this.pnl.Controls.Add(this.pictureBox1);
this.pnl.Controls.Add(this.btn_IgnoreX09);
this.pnl.Controls.Add(this.btn_PauseBuzzer);
this.pnl.Dock = System.Windows.Forms.DockStyle.Fill;
......@@ -221,8 +220,23 @@ namespace TheMachine
this.pnl.Size = new System.Drawing.Size(1000, 576);
this.pnl.TabIndex = 273;
//
// listReelInfo
//
this.listReelInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listReelInfo.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.listReelInfo.HideSelection = false;
this.listReelInfo.Location = new System.Drawing.Point(3, 300);
this.listReelInfo.Name = "listReelInfo";
this.listReelInfo.Size = new System.Drawing.Size(530, 268);
this.listReelInfo.TabIndex = 1;
this.listReelInfo.UseCompatibleStateImageBehavior = false;
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.stateView);
this.groupBox1.Location = new System.Drawing.Point(3, 4);
this.groupBox1.Name = "groupBox1";
......@@ -233,8 +247,10 @@ namespace TheMachine
//
// stateView
//
this.stateView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.stateView.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.stateView.Dock = System.Windows.Forms.DockStyle.Fill;
this.stateView.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.stateView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.stateView.HideSelection = false;
this.stateView.Location = new System.Drawing.Point(3, 25);
......@@ -246,10 +262,12 @@ namespace TheMachine
//
// pictureBox2
//
this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.pictureBox2.BackColor = System.Drawing.Color.Gainsboro;
this.pictureBox2.Location = new System.Drawing.Point(472, 321);
this.pictureBox2.Location = new System.Drawing.Point(539, 300);
this.pictureBox2.Name = "pictureBox2";
this.pictureBox2.Size = new System.Drawing.Size(436, 204);
this.pictureBox2.Size = new System.Drawing.Size(436, 268);
this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox2.TabIndex = 270;
this.pictureBox2.TabStop = false;
......@@ -257,19 +275,6 @@ namespace TheMachine
this.pictureBox2.DoubleClick += new System.EventHandler(this.pictureBox1_DoubleClick);
this.pictureBox2.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseDown);
//
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.Color.Gainsboro;
this.pictureBox1.Location = new System.Drawing.Point(3, 321);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(451, 204);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pictureBox1.TabIndex = 271;
this.pictureBox1.TabStop = false;
this.pictureBox1.Visible = false;
this.pictureBox1.DoubleClick += new System.EventHandler(this.pictureBox1_DoubleClick);
this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseDown);
//
// btn_IgnoreX09
//
this.btn_IgnoreX09.BackColor = System.Drawing.Color.OrangeRed;
......@@ -309,7 +314,7 @@ namespace TheMachine
this.listView1.TabIndex = 2;
this.listView1.UseCompatibleStateImageBehavior = false;
//
// Form1
// FormMain
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
......@@ -319,9 +324,9 @@ namespace TheMachine
this.Controls.Add(this.menuStrip1);
this.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.MainMenuStrip = this.menuStrip1;
this.Name = "Form1";
this.Name = "FormMain";
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
this.Text = "Form1";
this.Text = "出料机构";
this.Load += new System.EventHandler(this.Form1_Load);
this.Shown += new System.EventHandler(this.Form1_Shown);
this.menuStrip1.ResumeLayout(false);
......@@ -331,7 +336,6 @@ namespace TheMachine
this.pnl.ResumeLayout(false);
this.groupBox1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
......@@ -352,7 +356,6 @@ namespace TheMachine
private System.Windows.Forms.ToolStripMenuItem 关于ToolStripMenuItem;
private System.Windows.Forms.Button btn_PauseBuzzer;
private System.Windows.Forms.PictureBox pictureBox2;
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Button btn_IgnoreX09;
private System.Windows.Forms.Panel pnl;
private System.Windows.Forms.ToolStripMenuItem 语言toolStripMenuItem;
......@@ -364,6 +367,7 @@ namespace TheMachine
private System.Windows.Forms.ToolStripMenuItem btn_stop;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
private System.Windows.Forms.ListView listReelInfo;
}
}
using CodeLibrary;
using ConfigHelper;
using DeviceLibrary;
using OnlineStore;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.IO;
using System.Runtime.ExceptionServices;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TheMachine
{
public partial class Form1 : Form
public partial class FormMain : Form
{
public Form1()
public FormMain()
{
crc.OpenResourceLog = true;
InitializeComponent();
......@@ -75,60 +68,33 @@ namespace TheMachine
readonly System.Windows.Forms.Timer t1 = new System.Windows.Forms.Timer();
private void Form1_Load(object sender, EventArgs e)
{
//this.Width = Screen.PrimaryScreen.WorkingArea.Width;//获取主显⽰设备的桌⾯宽度
//this.Height = Screen.PrimaryScreen.WorkingArea.Height;//获取主显⽰设备的桌⾯⾼度
//if (this.Width > 1366)
// this.Width = 1366;
//if (this.Height > 900)
// this.Height = 900;
List<CodeInfo> codeInfos = new List<CodeInfo>();
//codeInfos.Add(new CodeInfo("", 528, 406));
codeInfos.Add(new CodeInfo("", 925, 520));
//codeInfos.Add(new CodeInfo("", 564, 684));
{
btn_run.Enabled = false;
//btn_stop.Enabled = false;
#region 报警信息listview初始化
listView1.View = View.Details;
ColumnHeader emptycol = new ColumnHeader();
emptycol.Text = "";
emptycol.Width = 0;
ColumnHeader msgcol = new ColumnHeader();
msgcol.Text = crc.GetString("Res0047","信息");
msgcol.Width = 530;
ColumnHeader timecol = new ColumnHeader();
timecol.Text = crc.GetString("Res0048","时间");
timecol.Width = 150;
listView1.Columns.Add(emptycol);
listView1.Columns.Add(timecol);
listView1.Columns.Add(msgcol);
AddHeader(listView1, "", 0);
AddHeader(listView1, crc.GetString("Res0048", "时间"), 150);
AddHeader(listView1, crc.GetString("Res0047", "信息"), 530);
listView1.ColumnWidthChanging += listView_ColumnWidthChanging;
#endregion
#region 状态信息listview初始化
stateView.View = View.Details;
ColumnHeader c1 = new ColumnHeader();
c1.Text = "";
c1.Width = 0;
ColumnHeader c2 = new ColumnHeader();
c2.Text = crc.GetString("Res0049","模块");
c2.Width = 200;
ColumnHeader c3 = new ColumnHeader();
c3.Text = crc.GetString("Res0050","步骤");
c3.Width = 200;
ColumnHeader c4 = new ColumnHeader();
c4.Text = crc.GetString("Res0047","信息");
c4.Width = 500;
stateView.Columns.Add(c1);
stateView.Columns.Add(c2);
stateView.Columns.Add(c3);
stateView.Columns.Add(c4);
AddHeader(stateView, "", 0);
AddHeader(stateView, crc.GetString("Res0049", "模块"), 200);
AddHeader(stateView, crc.GetString("Res0050", "步骤"), 200);
AddHeader(stateView, crc.GetString("Res0047", "信息"), 500);
stateView.ColumnWidthChanging += listView_ColumnWidthChanging;
#endregion
#region 物料信息显示列表
listReelInfo.View = View.Details;
AddHeader(listReelInfo, "", 0);
AddHeader(listReelInfo, "位置", 200);
AddHeader(listReelInfo, "料盘信息", listReelInfo.Width-200);
listReelInfo.ColumnWidthChanging += listView_ColumnWidthChanging;
#endregion
LogUtil.info("开始初始化");
AlarmBuzzer.BuzzerStateChange += AlarmBuzzer_BuzzerStateChange;
......@@ -136,7 +102,7 @@ namespace TheMachine
RobotManage.UserPauseSet += RobotManage_UserPauseSet;
RobotManage.CameraA.camera_event += CameraA_camera_event;
//RobotManage.CameraA.camera_event += CameraA_camera_event;
CodeManager.camera_event += CameraB_camera_event;
var loadtask = Task.Run(() =>
{
......@@ -154,14 +120,22 @@ namespace TheMachine
禁用蜂鸣器ToolStripMenuItem_Click(this, EventArgs.Empty);
}
private void CameraA_camera_event(object sender, Bitmap e)
private void AddHeader(ListView listView, string headerText,int width)
{
this.Invoke((EventHandler<Bitmap>)delegate
{
pictureBox1.Visible = true;
pictureBox1.Image = e;
}, sender, e);
ColumnHeader header = new ColumnHeader();
header.Text = headerText;
header.Width = width;
listView.Columns.Add(header);
}
//private void CameraA_camera_event(object sender, Bitmap e)
//{
// this.Invoke((EventHandler<Bitmap>)delegate
// {
// pictureBox1.Visible = true;
// pictureBox1.Image = e;
// }, sender, e);
//}
private void CameraB_camera_event(object sender, Bitmap e)
{
this.Invoke((EventHandler<Bitmap>)delegate
......@@ -193,7 +167,37 @@ namespace TheMachine
private void T1_Tick(object sender, EventArgs e)
{
if (RobotManage.mainMachine == null)
{
return;
}
SetState(MoveInfo.List);
Dictionary<string, string> map = new Dictionary<string, string>();
try
{
if (RobotManage.mainMachine.LoadOk)
{
foreach (InReelBean bean in RobotManage.mainMachine.inReelBeans)
{
if (bean.CurrTray != null)
{
map.Add(bean.Name, bean.CurrTray.ToStr());
}
}
foreach (string key in RobotManage.mainMachine.NgPosMap.Keys)
{
ReelParam param = RobotManage.mainMachine.NgPosMap[key];
map.Add(key, param.ToStr());
}
ShowReelList(map);
}
}
catch (Exception ex)
{
}
}
void SetState(List<MoveInfo> moveInfoList)
{
......@@ -201,7 +205,7 @@ namespace TheMachine
return;
this.SuspendLayout();
stateView.Items.Clear();
stateView.Items.Clear();
foreach (MoveInfo moveInfo in moveInfoList)
{
if (moveInfo.Equals(RobotManage.mainMachine.ResetMoveInfo) && RobotManage.mainMachine.runStatus != RunStatus.HomeReset)
......@@ -214,12 +218,44 @@ namespace TheMachine
}
var stateinfo = moveInfo.GetStateStr();
if (!RobotManage.isRunning)
stateinfo = crc.GetString("Res0051","未启动");
ListViewItem lvi = new ListViewItem(new string[] { "", moveInfo.Name, moveInfo.MoveStep.ToString(), stateinfo });
{
stateinfo = crc.GetString("Res0051", "未启动");
}
string name = moveInfo.Name;
OutShelfBean bean = RobotManage.mainMachine.getOutShelf(name);
if (bean != null && bean.CurrShelf != null)
{
stateinfo += "[" + bean.CurrShelf.ToStr() + "]";
}
else
{
InReelBean inReelBean = RobotManage.mainMachine.getInReelBean(name);
if (inReelBean != null&& inReelBean.CurrTray!=null)
{
stateinfo += "[" + inReelBean.CurrTray.ToStr() + "]";
}
}
ListViewItem lvi = new ListViewItem(new string[] { "", name, moveInfo.MoveStep.ToString(), stateinfo });
stateView.Items.Add(lvi);
}
this.ResumeLayout(true);
}
void ShowReelList(Dictionary<string, string> reelMap)
{
if (RobotManage.mainMachine == null)
return;
this.SuspendLayout();
listReelInfo.Items.Clear();
List<string> keys = new List<string>(reelMap.Keys);
foreach (string key in keys)
{
ListViewItem lvi = new ListViewItem(new string[] { "", key, reelMap[key] });
listReelInfo.Items.Add(lvi);
}
this.ResumeLayout(true);
}
private void AddForm(string id, string text, UserControl form)
{
......
......@@ -59,7 +59,7 @@ namespace TheMachine
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
Application.Run(new FormMain());
}
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
......
......@@ -85,11 +85,11 @@
<Compile Include="AxisControl.Designer.cs">
<DependentUpon>AxisControl.cs</DependentUpon>
</Compile>
<Compile Include="Form1.cs">
<Compile Include="FormMain.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
<Compile Include="FormMain.Designer.cs">
<DependentUpon>FormMain.cs</DependentUpon>
</Compile>
<Compile Include="IOControls.cs">
<SubType>UserControl</SubType>
......@@ -169,8 +169,8 @@
<DependentUpon>AxisControl.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
<EmbeddedResource Include="FormMain.resx">
<DependentUpon>FormMain.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="IOControls.resx">
<DependentUpon>IOControls.cs</DependentUpon>
......
......@@ -270,6 +270,14 @@ namespace TheMachine
label_size.Text = $"[{ktkPosition.BagWidth}x{ktkPosition.BagHigh}]";
storePosControl1.LoadPos(ktkPosition);
if (ktkPosition.PosType.Equals(1))
{
groupInout.Enabled = false;
}
else
{
groupInout.Enabled = true;
}
}
private void btnInStore_Click(object sender, EventArgs e)
......@@ -279,7 +287,12 @@ namespace TheMachine
{
int posindex = RobotManage.PositionNumList.IndexOf(cmbPosition.Text);
LogUtil.info($"入库位:{cmbPosition.Text},index:{posindex}");
if (RobotManage.mainMachine.ManualIn(posindex, out string errmsg))
string startPosname = "IN_1";
if (radioButton2.Checked)
{
startPosname = "IN_2";
}
if (RobotManage.mainMachine.ManualIn(startPosname,posindex, out string errmsg))
{
LogUtil.info($"手动入库:{posindex}");
}
......@@ -375,13 +388,13 @@ namespace TheMachine
if (RobotManage.mainMachine.runStatus == RunStatus.Running)
{
if (!RobotManage.mainMachine.IOValue(IO_Type.IN_1_Reel_Check).Equals(IO_VALUE.HIGH))
if (RobotManage.mainMachine.IOValue(IO_Type.IN_1_Reel_Check).Equals(IO_VALUE.LOW)|| RobotManage.mainMachine.IOValue(IO_Type.IN_2_Reel_Check).Equals(IO_VALUE.LOW))
{
MessageBox.Show(crc.GetString("Res0217","入库料盘没有准备好,请先点击[上料准备],无法启动"));
MessageBox.Show(crc.GetString("Res0217","料盘没有准备好,请先点击[上料准备],无法启动"));
return;
}
DialogResult res = MessageBox.Show(crc.GetString("Res0218","确定开始自动库位测试?\n请确保料库位全部为空."), crc.GetString("Res0167","提示"), MessageBoxButtons.YesNo);
DialogResult res = MessageBox.Show(crc.GetString("Res0218","确定开始自动库位测试?\n请确保料库位全部为空."), crc.GetString("Res0167","提示"), MessageBoxButtons.YesNo);
if (res == DialogResult.No)
return;
int posindex = RobotManage.PositionNumList.IndexOf(cmbPosition.Text);
......
......@@ -42,12 +42,17 @@ namespace TheMachine
this.label_verify = new System.Windows.Forms.Label();
this.cb_fixpos = new System.Windows.Forms.ComboBox();
this.storePosControl1 = new TheMachine.StorePosControl();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.radioButton1 = new System.Windows.Forms.RadioButton();
this.radioButton2 = new System.Windows.Forms.RadioButton();
this.groupInout.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// groupInout
//
this.groupInout.Controls.Add(this.groupBox1);
this.groupInout.Controls.Add(this.cb_inoutdebugmode);
this.groupInout.Controls.Add(this.btn_autoinout);
this.groupInout.Controls.Add(this.btnInStore);
......@@ -62,7 +67,7 @@ namespace TheMachine
// cb_inoutdebugmode
//
this.cb_inoutdebugmode.AutoSize = true;
this.cb_inoutdebugmode.Location = new System.Drawing.Point(6, 20);
this.cb_inoutdebugmode.Location = new System.Drawing.Point(15, 28);
this.cb_inoutdebugmode.Name = "cb_inoutdebugmode";
this.cb_inoutdebugmode.Size = new System.Drawing.Size(108, 16);
this.cb_inoutdebugmode.TabIndex = 103;
......@@ -76,7 +81,7 @@ namespace TheMachine
this.btn_autoinout.Enabled = false;
this.btn_autoinout.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_autoinout.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btn_autoinout.Location = new System.Drawing.Point(6, 162);
this.btn_autoinout.Location = new System.Drawing.Point(15, 161);
this.btn_autoinout.Name = "btn_autoinout";
this.btn_autoinout.Size = new System.Drawing.Size(173, 32);
this.btn_autoinout.TabIndex = 102;
......@@ -90,11 +95,11 @@ namespace TheMachine
this.btnInStore.Enabled = false;
this.btnInStore.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnInStore.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnInStore.Location = new System.Drawing.Point(6, 86);
this.btnInStore.Location = new System.Drawing.Point(15, 118);
this.btnInStore.Name = "btnInStore";
this.btnInStore.Size = new System.Drawing.Size(117, 32);
this.btnInStore.Size = new System.Drawing.Size(173, 32);
this.btnInStore.TabIndex = 102;
this.btnInStore.Text = "入库测试";
this.btnInStore.Text = "放料测试";
this.btnInStore.UseVisualStyleBackColor = false;
this.btnInStore.Click += new System.EventHandler(this.btnInStore_Click);
//
......@@ -104,12 +109,13 @@ namespace TheMachine
this.btnOutStore.Enabled = false;
this.btnOutStore.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnOutStore.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOutStore.Location = new System.Drawing.Point(6, 124);
this.btnOutStore.Location = new System.Drawing.Point(129, 17);
this.btnOutStore.Name = "btnOutStore";
this.btnOutStore.Size = new System.Drawing.Size(117, 32);
this.btnOutStore.Size = new System.Drawing.Size(150, 32);
this.btnOutStore.TabIndex = 101;
this.btnOutStore.Text = "出库测试";
this.btnOutStore.UseVisualStyleBackColor = false;
this.btnOutStore.Visible = false;
this.btnOutStore.Click += new System.EventHandler(this.btnOutStore_Click);
//
// label_size
......@@ -192,6 +198,40 @@ namespace TheMachine
this.storePosControl1.TabIndex = 227;
this.storePosControl1.Tag = "not";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.radioButton2);
this.groupBox1.Controls.Add(this.radioButton1);
this.groupBox1.Location = new System.Drawing.Point(15, 55);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(216, 52);
this.groupBox1.TabIndex = 104;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "料盘位置";
//
// radioButton1
//
this.radioButton1.AutoSize = true;
this.radioButton1.Checked = true;
this.radioButton1.Location = new System.Drawing.Point(7, 22);
this.radioButton1.Name = "radioButton1";
this.radioButton1.Size = new System.Drawing.Size(71, 16);
this.radioButton1.TabIndex = 0;
this.radioButton1.TabStop = true;
this.radioButton1.Text = "上层料盘";
this.radioButton1.UseVisualStyleBackColor = true;
//
// radioButton2
//
this.radioButton2.AutoSize = true;
this.radioButton2.Location = new System.Drawing.Point(125, 22);
this.radioButton2.Name = "radioButton2";
this.radioButton2.Size = new System.Drawing.Size(71, 16);
this.radioButton2.TabIndex = 1;
this.radioButton2.TabStop = true;
this.radioButton2.Text = "下层料盘";
this.radioButton2.UseVisualStyleBackColor = true;
//
// uc_boxdebug
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
......@@ -209,6 +249,8 @@ namespace TheMachine
this.groupInout.ResumeLayout(false);
this.groupInout.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
}
......@@ -227,5 +269,8 @@ namespace TheMachine
private System.Windows.Forms.Label label_verify;
private System.Windows.Forms.ComboBox cb_fixpos;
private StorePosControl storePosControl1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.RadioButton radioButton2;
private System.Windows.Forms.RadioButton radioButton1;
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!