Commit 0ac004a3 张东亮

存储机构-更新视觉定位dll

1 个父辈 148e3fdb
此文件类型无法预览
此文件类型无法预览
此文件类型无法预览
...@@ -31,6 +31,7 @@ namespace OnlineStore.Common ...@@ -31,6 +31,7 @@ namespace OnlineStore.Common
public static string ConfigPath_Input = "ConfigPath_Input"; public static string ConfigPath_Input = "ConfigPath_Input";
public static string ConfigPath_Box = "ConfigPath_Box"; public static string ConfigPath_Box = "ConfigPath_Box";
public static string ConfigPath_BoxPosition = "ConfigPath_BoxPosition"; public static string ConfigPath_BoxPosition = "ConfigPath_BoxPosition";
public static string ConfigPath_DrawerPosition = "ConfigPath_DrawerPosition";
/// <summary> /// <summary>
/// 需要识别的二维码类型,多个中间使用#分割 /// 需要识别的二维码类型,多个中间使用#分割
/// </summary> /// </summary>
......
...@@ -12,6 +12,14 @@ AXIS,0,B面移栽压紧轴,ComAxis_B,9,HC,,35000,60000,60000,1000,5000,20000,10,100,0, ...@@ -12,6 +12,14 @@ AXIS,0,B面移栽压紧轴,ComAxis_B,9,HC,,35000,60000,60000,1000,5000,20000,10,100,0,
,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,
PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,0,,,,,,,,,,,, PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,0,,,,,,,,,,,,
PRO,0,温湿度端口号,Humiture_Port,0,,,,,,,,,,,, PRO,0,温湿度端口号,Humiture_Port,0,,,,,,,,,,,,
PRO,0,抽屉Mark_X坐标,Drawer_X,0,,,,,,,,,,,,
PRO,0,抽屉Mark_Y坐标,Drawer_Y,0,,,,,,,,,,,,
PRO,0,抽屉Mark_X方向误差范围,Drawer_X_Error,0,,,,,,,,,,,,
PRO,0,抽屉Mark_Y方向误差范围,Drawer_Y_Error,0,,,,,,,,,,,,
PRO,0,抽屉行间距,Row_Spacing,0,,,,,,,,,,,,
PRO,0,抽屉列间距,Column_Spacing,0,,,,,,,,,,,,
PRO,0,抽屉层数,Drawer_Rows,15,,,,,,,,,,,,
PRO,0,抽屉列数,Drawer_Columns,6,,,,,,,,,,,,
,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,
PRO,0,行走机构_待机点P1,MoveAxis_P1,100,,,,,,,,,,,, PRO,0,行走机构_待机点P1,MoveAxis_P1,100,,,,,,,,,,,,
PRO,0,行走机构_进出料机构取放点P2,MoveAxis_P2,100,,,,,,,,,,,, PRO,0,行走机构_进出料机构取放点P2,MoveAxis_P2,100,,,,,,,,,,,,
......
位置,料仓ID,优先级,高度,宽度,X坐标,Y坐标,X方向误差范围,Y方向误差范围
05AA0101,2,1,8,7,20,3,100,100
05AA0102,2,1,8,7,20,3,100,100
05AA0103,2,1,8,7,20,3,100,100
05AA0104,2,1,8,7,20,3,100,100
05AA0105,2,1,8,7,20,3,100,100
05AA0106,2,1,8,7,20,3,100,100
05AA0201,2,1,8,7,20,3,100,100
05AA0202,2,1,8,7,20,3,100,100
05AA0203,2,1,8,7,20,3,100,100
05AA0204,2,1,8,7,20,3,100,100
05AA0205,2,1,8,7,20,3,100,100
05AA0206,2,1,8,7,20,3,100,100
05AA0301,2,1,8,7,20,3,100,100
05AA0302,2,1,8,7,20,3,100,100
05AA0303,2,1,8,7,20,3,100,100
05AA0304,2,1,8,7,20,3,100,100
05AA0305,2,1,8,7,20,3,100,100
05AA0306,2,1,8,7,20,3,100,100
05AA0401,2,1,8,7,20,3,100,100
05AA0402,2,1,8,7,20,3,100,100
05AA0403,2,1,8,7,20,3,100,100
05AA0404,2,1,8,7,20,3,100,100
05AA0405,2,1,8,7,20,3,100,100
05AA0406,2,1,8,7,20,3,100,100
05AA0501,2,1,8,7,20,3,100,100
05AA0502,2,1,8,7,20,3,100,100
05AA0503,2,1,8,7,20,3,100,100
05AA0504,2,1,8,7,20,3,100,100
05AA0505,2,1,8,7,20,3,100,100
05AA0506,2,1,8,7,20,3,100,100
05AA0601,2,1,8,7,20,3,100,100
05AA0602,2,1,8,7,20,3,100,100
05AA0603,2,1,8,7,20,3,100,100
05AA0604,2,1,8,7,20,3,100,100
05AA0605,2,1,8,7,20,3,100,100
05AA0606,2,1,8,7,20,3,100,100
05AA0701,2,1,8,7,20,3,100,100
05AA0702,2,1,8,7,20,3,100,100
05AA0703,2,1,8,7,20,3,100,100
05AA0704,2,1,8,7,20,3,100,100
05AA0705,2,1,8,7,20,3,100,100
05AA0706,2,1,8,7,20,3,100,100
05AA0801,2,1,8,7,20,3,100,100
05AA0802,2,1,8,7,20,3,100,100
05AA0803,2,1,8,7,20,3,100,100
05AA0804,2,1,8,7,20,3,100,100
05AA0805,2,1,8,7,20,3,100,100
05AA0806,2,1,8,7,20,3,100,100
05AA0901,2,1,8,7,20,3,100,100
05AA0902,2,1,8,7,20,3,100,100
05AA0903,2,1,8,7,20,3,100,100
05AA0904,2,1,8,7,20,3,100,100
05AA0905,2,1,8,7,20,3,100,100
05AA0906,2,1,8,7,20,3,100,100
05AA1001,2,1,8,7,20,3,100,100
05AA1002,2,1,8,7,20,3,100,100
05AA1003,2,1,8,7,20,3,100,100
05AA1004,2,1,8,7,20,3,100,100
05AA1005,2,1,8,7,20,3,100,100
05AA1006,2,1,8,7,20,3,100,100
05AA1101,2,1,8,7,20,3,100,100
05AA1102,2,1,8,7,20,3,100,100
05AA1103,2,1,8,7,20,3,100,100
05AA1104,2,1,8,7,20,3,100,100
05AA1105,2,1,8,7,20,3,100,100
05AA1106,2,1,8,7,20,3,100,100
05AA1201,2,1,8,7,20,3,100,100
05AA1202,2,1,8,7,20,3,100,100
05AA1203,2,1,8,7,20,3,100,100
05AA1204,2,1,8,7,20,3,100,100
05AA1205,2,1,8,7,20,3,100,100
05AA1206,2,1,8,7,20,3,100,100
05AA1301,2,1,8,7,20,3,100,100
05AA1302,2,1,8,7,20,3,100,100
05AA1303,2,1,8,7,20,3,100,100
05AA1304,2,1,8,7,20,3,100,100
05AA1305,2,1,8,7,20,3,100,100
05AA1306,2,1,8,7,20,3,100,100
05AA1401,2,1,8,7,20,3,100,100
05AA1402,2,1,8,7,20,3,100,100
05AA1403,2,1,8,7,20,3,100,100
05AA1404,2,1,8,7,20,3,100,100
05AA1405,2,1,8,7,20,3,100,100
05AA1406,2,1,8,7,20,3,100,100
05AA1501,2,1,8,7,20,3,100,100
05AA1502,2,1,8,7,20,3,100,100
05AA1503,2,1,8,7,20,3,100,100
05AA1504,2,1,8,7,20,3,100,100
05AA1505,2,1,8,7,20,3,100,100
05AA1506,2,1,8,7,20,3,100,100
05AA1601,2,1,8,7,20,3,100,100
05AA1602,2,1,8,7,20,3,100,100
05AA1603,2,1,8,7,20,3,100,100
05AA1604,2,1,8,7,20,3,100,100
05AA1605,2,1,8,7,20,3,100,100
05AA1606,2,1,8,7,20,3,100,100
05BB0101,2,1,8,7,20,3,100,100
05BB0102,2,1,8,7,20,3,100,100
05BB0103,2,1,8,7,20,3,100,100
05BB0104,2,1,8,7,20,3,100,100
05BB0105,2,1,8,7,20,3,100,100
05BB0106,2,1,8,7,20,3,100,100
05BB0201,2,1,8,7,20,3,100,100
05BB0202,2,1,8,7,20,3,100,100
05BB0203,2,1,8,7,20,3,100,100
05BB0204,2,1,8,7,20,3,100,100
05BB0205,2,1,8,7,20,3,100,100
05BB0206,2,1,8,7,20,3,100,100
05BB0301,2,1,8,7,20,3,100,100
05BB0302,2,1,8,7,20,3,100,100
05BB0303,2,1,8,7,20,3,100,100
05BB0304,2,1,8,7,20,3,100,100
05BB0305,2,1,8,7,20,3,100,100
05BB0306,2,1,8,7,20,3,100,100
05BB0401,2,1,8,7,20,3,100,100
05BB0402,2,1,8,7,20,3,100,100
05BB0403,2,1,8,7,20,3,100,100
05BB0404,2,1,8,7,20,3,100,100
05BB0405,2,1,8,7,20,3,100,100
05BB0406,2,1,8,7,20,3,100,100
05BB0501,2,1,8,7,20,3,100,100
05BB0502,2,1,8,7,20,3,100,100
05BB0503,2,1,8,7,20,3,100,100
05BB0504,2,1,8,7,20,3,100,100
05BB0505,2,1,8,7,20,3,100,100
05BB0506,2,1,8,7,20,3,100,100
05BB0601,2,1,8,7,20,3,100,100
05BB0602,2,1,8,7,20,3,100,100
05BB0603,2,1,8,7,20,3,100,100
05BB0604,2,1,8,7,20,3,100,100
05BB0605,2,1,8,7,20,3,100,100
05BB0606,2,1,8,7,20,3,100,100
05BB0701,2,1,8,7,20,3,100,100
05BB0702,2,1,8,7,20,3,100,100
05BB0703,2,1,8,7,20,3,100,100
05BB0704,2,1,8,7,20,3,100,100
05BB0705,2,1,8,7,20,3,100,100
05BB0706,2,1,8,7,20,3,100,100
05BB0801,2,1,8,7,20,3,100,100
05BB0802,2,1,8,7,20,3,100,100
05BB0803,2,1,8,7,20,3,100,100
05BB0804,2,1,8,7,20,3,100,100
05BB0805,2,1,8,7,20,3,100,100
05BB0806,2,1,8,7,20,3,100,100
05BB0901,2,1,8,7,20,3,100,100
05BB0902,2,1,8,7,20,3,100,100
05BB0903,2,1,8,7,20,3,100,100
05BB0904,2,1,8,7,20,3,100,100
05BB0905,2,1,8,7,20,3,100,100
05BB0906,2,1,8,7,20,3,100,100
05BB1001,2,1,8,7,20,3,100,100
05BB1002,2,1,8,7,20,3,100,100
05BB1003,2,1,8,7,20,3,100,100
05BB1004,2,1,8,7,20,3,100,100
05BB1005,2,1,8,7,20,3,100,100
05BB1006,2,1,8,7,20,3,100,100
05BB1101,2,1,8,7,20,3,100,100
05BB1102,2,1,8,7,20,3,100,100
05BB1103,2,1,8,7,20,3,100,100
05BB1104,2,1,8,7,20,3,100,100
05BB1105,2,1,8,7,20,3,100,100
05BB1106,2,1,8,7,20,3,100,100
05BB1201,2,1,8,7,20,3,100,100
05BB1202,2,1,8,7,20,3,100,100
05BB1203,2,1,8,7,20,3,100,100
05BB1204,2,1,8,7,20,3,100,100
05BB1205,2,1,8,7,20,3,100,100
05BB1206,2,1,8,7,20,3,100,100
05BB1301,2,1,8,7,20,3,100,100
05BB1302,2,1,8,7,20,3,100,100
05BB1303,2,1,8,7,20,3,100,100
05BB1304,2,1,8,7,20,3,100,100
05BB1305,2,1,8,7,20,3,100,100
05BB1306,2,1,8,7,20,3,100,100
05BB1401,2,1,8,7,20,3,100,100
05BB1402,2,1,8,7,20,3,100,100
05BB1403,2,1,8,7,20,3,100,100
05BB1404,2,1,8,7,20,3,100,100
05BB1405,2,1,8,7,20,3,100,100
05BB1406,2,1,8,7,20,3,100,100
05BB1501,2,1,8,7,20,3,100,100
05BB1502,2,1,8,7,20,3,100,100
05BB1503,2,1,8,7,20,3,100,100
05BB1504,2,1,8,7,20,3,100,100
05BB1505,2,1,8,7,20,3,100,100
05BB1506,2,1,8,7,20,3,100,100
05BB1601,2,1,8,7,20,3,100,100
05BB1602,2,1,8,7,20,3,100,100
05BB1603,2,1,8,7,20,3,100,100
05BB1604,2,1,8,7,20,3,100,100
05BB1605,2,1,8,7,20,3,100,100
05BB1606,2,1,8,7,20,3,100,100
\ No newline at end of file \ No newline at end of file
位置,优先级,高度,宽度,料仓ID,料斗进出轴料屉提取点P2P4,料斗进出轴料屉库位点P3P5,料斗升降轴料屉提取高点P3,料斗升降轴料屉提取低点P4,存储库位取放点位P3,移栽升降轴料屉上方过渡点P6P12,移栽升降轴料屉取放点P7P13,AB移栽X轴料屉库位取放料点P3,AB移栽压紧轴压紧前点P2,AB移栽压紧轴压紧点P3 位置,优先级,高度,宽度,料仓ID,料斗进出轴料屉提取点P2P4,料斗进出轴料屉库位点P3P5,料斗升降轴料屉提取高点P3,料斗升降轴料屉提取低点P4,存储库位取放点位P3,移栽升降轴料屉上方过渡点P6P12,移栽升降轴料屉取放点P7P13,AB移栽X轴料屉库位取放料点P3,AB移栽压紧轴压紧前点P2,AB移栽压紧轴压紧点P3
05AA03040102,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933 05AA01010101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB03040102,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933 05AA01020101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA01030101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA01040101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA01050101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA01060101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA02010101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA02020101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA02030101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA02040101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA02050101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA02060101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA03010101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA03020101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA03030101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA03040101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA03050101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05AA03060101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB01010101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB01020101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB01030101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB01040101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB01050101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB01060101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB02010101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB02020101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB02030101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB02040101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB02050101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB02060101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB03010101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB03020101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB03030101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB03040101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB03050101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB03060101,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
...@@ -83,6 +83,8 @@ ...@@ -83,6 +83,8 @@
<Compile Include="storeBean\boxBean\AutoInoutInfo.cs" /> <Compile Include="storeBean\boxBean\AutoInoutInfo.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_InExecute.cs" /> <Compile Include="storeBean\boxBean\BoxEquip_InExecute.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_OutExecute.cs" /> <Compile Include="storeBean\boxBean\BoxEquip_OutExecute.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_AutoFindPos.cs" />
<Compile Include="storeBean\boxBean\EyemLibDemo.cs" />
<Compile Include="storeBean\boxBean\Humiture\HumitureBean.cs" /> <Compile Include="storeBean\boxBean\Humiture\HumitureBean.cs" />
<Compile Include="storeBean\boxBean\Humiture\HumitureController.cs" /> <Compile Include="storeBean\boxBean\Humiture\HumitureController.cs" />
<Compile Include="storeBean\inputBean\BatchMoveBean.cs" /> <Compile Include="storeBean\inputBean\BatchMoveBean.cs" />
......
...@@ -106,9 +106,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -106,9 +106,12 @@ namespace OnlineStore.DeviceLibrary
boxConfig.SetIO(2); boxConfig.SetIO(2);
boxConfig.CID = CID; boxConfig.CID = CID;
allConfigMap.Add(2, boxConfig); allConfigMap.Add(2, boxConfig);
//加载点位 //加载仓位点位
string positionConfigFile = appPath + ConfigAppSettings.GetValue(Setting_Init.ConfigPath_BoxPosition); string positionConfigFile = appPath + ConfigAppSettings.GetValue(Setting_Init.ConfigPath_BoxPosition);
CSVPositionReader<BoxPosition>.AddCSVFile(positionConfigFile); CSVPositionReader<BoxPosition>.AddCSVFile(positionConfigFile);
//加载抽屉点位
//string drawConfigFile = appPath + ConfigAppSettings.GetValue(Setting_Init.ConfigPath_DrawerPosition);
//CSVPositionReader<DrawerPosition>.AddCSVFile(drawConfigFile);
XLRStore = new XLRStoreBean(Config, inputConfig, boxConfig); XLRStore = new XLRStoreBean(Config, inputConfig, boxConfig);
LogUtil.info("加载 完成!"); LogUtil.info("加载 完成!");
......
...@@ -368,6 +368,41 @@ namespace OnlineStore.DeviceLibrary ...@@ -368,6 +368,41 @@ namespace OnlineStore.DeviceLibrary
#endregion #endregion
#region 存储机构自动对位功能 400开始
/// <summary>
/// 存储机构自动对位:开始对位
/// </summary>
SA_Drawer_Start_Find_Pos = 401,
/// <summary>
/// 存储机构自动对位:去抽屉起始点
/// </summary>
SA_01_To_Drawer_StartPoint,
/// <summary>
/// 存储机构自动对位:取图(正向)
/// </summary>
SA_02_Pos_AcqImg,
/// <summary>
/// 存储机构自动对位:对位(正向)
/// </summary>
SA_03_Pos_AdjPos,
/// <summary>
/// 存储机构自动对位:到下一个抽屉(正向)
/// </summary>
SA_04_Pos_NextDrawer,
/// <summary>
/// 存储机构自动对位:取图(反向)
/// </summary>
SA_05_Neg_AcqImg,
/// <summary>
/// 存储机构自动对位:对位(反向)
/// </summary>
SA_06_Neg_AdjPos,
/// <summary>
/// 存储机构自动对位:到下一个抽屉(反向)
/// </summary>
SA_07_Neg_NextDrawer,
#endregion
#region 入料模块复位 1000 开始 #region 入料模块复位 1000 开始
......
...@@ -80,10 +80,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -80,10 +80,6 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
public string[] trayBColumns; public string[] trayBColumns;
/// <summary> /// <summary>
/// 等待出库的队列
/// </summary>
public ConcurrentQueue<InOutParam> waitOutStoreList = new ConcurrentQueue<InOutParam>();
/// <summary>
/// A面等待出库的队列 /// A面等待出库的队列
/// </summary> /// </summary>
public ConcurrentQueue<InOutParam> waitAOutStoreList = new ConcurrentQueue<InOutParam>(); public ConcurrentQueue<InOutParam> waitAOutStoreList = new ConcurrentQueue<InOutParam>();
...@@ -111,6 +107,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -111,6 +107,7 @@ namespace OnlineStore.DeviceLibrary
InitRowColumnSig(); InitRowColumnSig();
InitAllAxis(); InitAllAxis();
InitPosititionNumList(); InitPosititionNumList();
InitDrawInfos();
} }
void InitRowColumnSig() void InitRowColumnSig()
...@@ -379,13 +376,66 @@ namespace OnlineStore.DeviceLibrary ...@@ -379,13 +376,66 @@ namespace OnlineStore.DeviceLibrary
dtUpperB = DateTime.Now; dtUpperB = DateTime.Now;
} }
} }
private void ExecuteOutListProcess()
{
try
{
//bool noInStore = true;
//if (AutoInout.CurrInOutACount >= this.Config.Box_ResetACount && noInStore)
//{
// if (storeRunStatus < StoreRunStatus.Runing || MoveInfo.MoveType == StoreMoveType.InStore || MoveInfo.MoveType == StoreMoveType.OutStore)
// {
// // LogInfo("已经累计出入库" + AutoInout.CurrInOutACount + "次,当时当前正在忙碌中暂不复位");
// }
// else
// {
// LogInfo("已经累计出入库" + AutoInout.CurrInOutACount + "次,需要复位一下");
// Reset();
// }
// return;
//}
if (waitAOutStoreList.Count > 0)
{
InOutParam param = null;
bool result = waitAOutStoreList.TryDequeue(out param);
if (result && param != null)
{
LogInfo("执行A面排队的出库【" + param.PosInfo.ToStr() + "】");
StartExecuctOut(param);
return;
}
}
if (waitBOutStoreList.Count > 0)
{
InOutParam param = null;
bool result = waitBOutStoreList.TryDequeue(out param);
if (result && param != null)
{
LogInfo("执行B面排队的出库【" + param.PosInfo.ToStr() + "】");
StartExecuctOut(param);
return;
}
}
}
catch (Exception ex)
{
LogUtil.error(Name + "处理出库排队列表出错:" + ex.ToString());
}
}
protected override void BaseTimerProcess() protected override void BaseTimerProcess()
{ {
if (isInSuddenDown || isNoAirpressure_Check) if (isInSuddenDown || isNoAirpressure_Check)
{ {
return; return;
} }
if(runStatus.Equals(RunStatus.Runing))
{
ExecuteOutListProcess();
}
if (autoFindPosMode)//自动对位模式
{
AutoFindPosProcess();
}
BusyMoveProcess(); BusyMoveProcess();
if (NoErrorAlarm()) if (NoErrorAlarm())
......
using CodeLibrary;
using HuichuanLibrary;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms.VisualStyles;
using static eyemLib_Sharp.EyemLibDemo;
namespace OnlineStore.DeviceLibrary
{
public partial class BoxEquip
{
//public Dictionary<string, List<DrawerInfo>> DrawerNums = new Dictionary<string, List<DrawerInfo>>();
AutoFindPos autoFindPos;
private bool autoFindPosMode = false;
private void InitDrawInfos()
{
autoFindPos = new AutoFindPos(Config);
//DrawerNums.Add("A", new List<DrawerInfo>());
//DrawerNums.Add("B", new List<DrawerInfo>());
//List<DrawerPosition> drawerPositions = CSVPositionReader<DrawerPosition>.getPositionList();
//foreach (DrawerPosition position in drawerPositions)
//{
// if (position.StoreId.Equals(DeviceID))
// {
// DrawerNums[PosSide(position.PositionNum)].Add(new DrawerInfo(position.PositionNum,PositionNumList));
// }
//}
}
/// <summary>
/// 获取抽屉/仓位所在面
/// </summary>
/// <param name="pos">位置</param>
/// <returns></returns>
private string PosSide(string pos)
{
if (pos.Substring(2, 2).Equals("AA")) return "A";
else if (pos.Substring(2, 2).Equals("BB")) return "B";
return "";
}
/// <summary>
/// 获取轴的负限位
/// </summary>
/// <param name="axisNo"></param>
/// <returns></returns>
public bool GetAxisNelSts(short axisNo)
{
AxisSts sts = HCBoardManager.GetAxisSts(axisNo);
return sts.NEL == 1;
}
/// <summary>
/// 获取轴的正限位
/// </summary>
/// <param name="axisNo"></param>
/// <returns></returns>
public bool GetAxisPelSts(short axisNo)
{
AxisSts sts = HCBoardManager.GetAxisSts(axisNo);
return sts.PEL == 1;
}
public void AutoFindPosProcess()
{
if (MoveInfo.IsInWait)
{
CheckWait(MoveInfo);
}
if (MoveInfo.IsInWait)
{
return;
}
switch(MoveInfo.MoveStep)
{
case StepEnum.SA_Drawer_Start_Find_Pos:
MoveInfo.NextMoveStep(StepEnum.SA_01_To_Drawer_StartPoint);
LogInfo($"存储机构-视觉对位 {MoveInfo.SLog}:到抽屉起始点," +
$"行走机构到进出料机构取放点P2,移栽升降轴到上暂存区取料低点P3/P9,移栽压紧轴到压紧前点P2,移栽旋转轴到进出料暂存区取放料水平点P2[{MoveInfo.MoveParam.PosInfo.PosSide}面]");
MoveAxis.AbsMove(MoveInfo, Config.MoveAxis_P2, Config.MoveAxis_P2_Speed);
break;
case StepEnum.SA_01_To_Drawer_StartPoint:
break;
case StepEnum.SA_02_Pos_AcqImg:
break;
case StepEnum.SA_03_Pos_AdjPos:
break;
case StepEnum.SA_04_Pos_NextDrawer:
break;
case StepEnum.SA_05_Neg_AcqImg:
break;
case StepEnum.SA_06_Neg_AdjPos:
break;
case StepEnum.SA_07_Neg_NextDrawer:
break;
//case StepEnum.:
// //如果行>抽屉行数,直接退出。否则获取图片、得到mark的坐标,并与模板坐标比较。根据误差范围外对行走机构和移栽升降轴移动
// //在误差范围内,保存该位置脉冲同时生成库位位置信息。列加1进行第二步
// break;
//case StepEnum.:
// //如果列>抽屉列数,判断行是否大于抽屉的行数?大于则结束;否则行加1,移栽升降轴运动,到第三步
// //否则行走机构移动一个行间距的距离,到第一步
// break;
//case StepEnum.:
// //如果行>抽屉行数,直接退出。否则获取图片、得到mark的坐标,并与模板坐标比较。根据误差范围外对行走机构和移栽升降轴移动
// //在误差范围内,保存该位置脉冲同时生成库位位置信息。列减1进行第四步
// break;
//case StepEnum.:
// //如果列《1,判断行是否大于抽屉的行数?大于则结束;否则行加1,移栽升降轴运动,到第一步
// //否则行走机构移动一个行间距的距离,到第三步
// break;
//case StepEnum.:
// break;
}
}
}
public class AutoFindPos
{
/// <summary>
/// 当前行
/// </summary>
public int CurRow { get; set; } = 1;
/// <summary>
/// 当前行脉冲
/// </summary>
public int CurRowPulse { get; set; } = 0;
/// <summary>
/// 当前列脉冲
/// </summary>
public int CurColumnPulse { get; set; } = 0;
/// <summary>
/// 坐标到脉冲的转换系数
/// </summary>
public float CoeffOfCoorToPulse { get; set; } = 1;
/// <summary>
/// 当前列
/// </summary>
public int CurColumn { get; set; } = 1;
/// <summary>
/// 抽屉行数
/// </summary>
public int Rows { get; private set; }
/// <summary>
/// 抽屉列数
/// </summary>
public int Columns { get; private set; }
/// <summary>
/// 抽屉间行间距
/// </summary>
public int Row_Spacing { get; private set; }
/// <summary>
/// 抽屉间列间距
/// </summary>
public int Column_Spacing { get; private set; }
public AutoFindPos(BoxEquip_Config boxEquip_Config)
{
Row_Spacing = boxEquip_Config.Row_Spacing;
Column_Spacing = boxEquip_Config.Column_Spacing;
Rows = boxEquip_Config.Drawer_Rows;
Columns = boxEquip_Config.Drawer_Columns;
}
/// <summary>
/// Mark点坐标信息
/// </summary>
/// <param name="bitmap">输入图片</param>
/// <param name="markCoor">mark点坐标信息</param>
/// <returns>0 正常 -4未定位到 </returns>
public static int GetMarkInfo(Bitmap bitmap,out EyemOcsFXYR markCoor)
{
int flag;
markCoor = new EyemOcsFXYR();
EyemImage image = eyemCvtToEyemImage(bitmap);
flag = eyemMarkerTracing(image, 130, ref markCoor);
Marshal.FreeHGlobal(image.vpImage);
return flag;
}
}
public class DrawerInfo
{
/// <summary>
/// 抽屉信息
/// </summary>
/// <param name="pos">抽屉位置</param>
/// <param name="posNums">仓位列表</param>
public DrawerInfo(string pos, List<string> posNums)
{
PositionNum = pos;
Positions = posNums.FindAll(s => s.StartsWith(pos));
}
/// <summary>
/// 抽屉位置
/// </summary>
public string PositionNum { get; private set; }
/// <summary>
/// 抽屉内的仓位位置
/// </summary>
public List<string> Positions { get; private set; }
}
}
...@@ -290,14 +290,17 @@ namespace OnlineStore.DeviceLibrary ...@@ -290,14 +290,17 @@ namespace OnlineStore.DeviceLibrary
try try
{ {
//判断是否接收过此库位的出库信息 //判断是否接收过此库位的出库信息
if (MoveInfo.MoveType.Equals(MoveType.OutStore) && MoveInfo.MoveParam.PosInfo.PosId.Equals(posId)) if (MoveInfo.MoveType.Equals(MoveType.OutStore) && (MoveInfo.MoveParam.PosInfo.PosId.Equals(posId)||
(MoveInfo.MoveParam.PosInfoBack !=null && MoveInfo.MoveParam.PosInfoBack.PosId.Equals(posId))))
{ {
LogUtil.error(Name + " 出库命令【" + inoutParam.PosInfo.ToStr() + "】重复,正在【" + posId + "】出库中"); LogUtil.error(Name + " 出库命令【" + inoutParam.PosInfo.ToStr() + "】重复,正在【" + posId + "】出库中");
continue; continue;
} }
//判断排队列表中是否已存在 //判断排队列表中是否已存在
List<InOutParam> reviceList = new List<InOutParam>(waitOutStoreList); List<InOutParam> reviceList = new List<InOutParam>();
reviceList.AddRange(waitAOutStoreList);
reviceList.AddRange(waitBOutStoreList);
reviceList = (from m in reviceList where m.PosInfo.PosId.Equals(posId) select m).ToList<InOutParam>(); reviceList = (from m in reviceList where m.PosInfo.PosId.Equals(posId) select m).ToList<InOutParam>();
if (reviceList.Count > 0) if (reviceList.Count > 0)
{ {
......
...@@ -319,6 +319,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -319,6 +319,7 @@ namespace OnlineStore.DeviceLibrary
} }
return false; return false;
} }
private static object outStoreObject = new object();
public void StartExecuctOut(InOutParam param) public void StartExecuctOut(InOutParam param)
{ {
bool result = false; bool result = false;
...@@ -328,7 +329,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -328,7 +329,7 @@ namespace OnlineStore.DeviceLibrary
} }
if (!result) if (!result)
{ {
lock (waitOutStoreList) lock (outStoreObject)
{ {
LogInfo(" 执行出库【" + param.PosInfo.ToStr() + "】失败,加入等待队列"); LogInfo(" 执行出库【" + param.PosInfo.ToStr() + "】失败,加入等待队列");
if (MoveInfo.MoveType.Equals(MoveType.OutStore) && MoveInfo.MoveParam.PosInfo.PosId.Equals(param.PosInfo.PosId)) if (MoveInfo.MoveType.Equals(MoveType.OutStore) && MoveInfo.MoveParam.PosInfo.PosId.Equals(param.PosInfo.PosId))
...@@ -337,11 +338,20 @@ namespace OnlineStore.DeviceLibrary ...@@ -337,11 +338,20 @@ namespace OnlineStore.DeviceLibrary
return; return;
} }
List<InOutParam> reviceList = new List<InOutParam>(waitOutStoreList); List<InOutParam> reviceList = new List<InOutParam>();
reviceList.AddRange(waitAOutStoreList);
reviceList.AddRange(waitBOutStoreList);
reviceList = (from m in reviceList where m.PosInfo.PosId.Equals(param.PosInfo.PosId) select m).ToList<InOutParam>(); reviceList = (from m in reviceList where m.PosInfo.PosId.Equals(param.PosInfo.PosId) select m).ToList<InOutParam>();
if (reviceList.Count == 0) if (reviceList.Count == 0)
{ {
waitOutStoreList.Enqueue(param); if(param.PosInfo.PosSide.Equals("A"))
{
waitAOutStoreList.Enqueue(param);
}
else if(param.PosInfo.PosSide.Equals("B"))
{
waitBOutStoreList.Enqueue(param);
}
} }
} }
} }
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OnlineStore.LoadCSVLibrary
{
/// <summary>
/// 抽屉配置信息
/// </summary>
public class DrawerPosition:PositionBase
{
/// <summary>
/// 对应的料仓ID(流水线料仓需要用此字段区分哪个BOX)
/// </summary>
[CSVAttribute("料仓ID")]
public int StoreId { get; set; }
/// <summary>
/// X坐标
/// </summary>
[CSVAttribute("X坐标")]
public double X { get; set; }
/// <summary>
/// Y坐标
/// </summary>
[CSVAttribute("Y坐标")]
public double Y { get; set; }
/// <summary>
/// X方向误差范围
/// </summary>
[CSVAttribute("X方向误差范围")]
public string X_Error { get; set; }
/// <summary>
/// Y方向误差范围
/// </summary>
[CSVAttribute("Y方向误差范围")]
public string Y_Error { get; set; }
}
}
...@@ -71,6 +71,46 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -71,6 +71,46 @@ namespace OnlineStore.LoadCSVLibrary
[ConfigProAttribute("ComAxis_B")] [ConfigProAttribute("ComAxis_B")]
public ConfigMoveAxis ComAxis_B { get; set; } public ConfigMoveAxis ComAxis_B { get; set; }
#endregion #endregion
/// <summary>
/// 抽屉Mark_X坐标
/// </summary>
[ConfigProAttribute("Drawer_X")]
public double Drawer_X { get; set; }
/// <summary>
/// 抽屉Mark_Y坐标
/// </summary>
[ConfigProAttribute("Drawer_Y")]
public double Drawer_Y { get; set; }
/// <summary>
/// 抽屉Mark_X方向误差范围
/// </summary>
[ConfigProAttribute("Drawer_X_Error")]
public string Drawer_X_Error { get; set; }
/// <summary>
/// 抽屉Mark_Y方向误差范围
/// </summary>
[ConfigProAttribute("Drawer_Y_Error")]
public string Drawer_Y_Error { get; set; }
/// <summary>
/// 抽屉行间距
/// </summary>
[ConfigProAttribute("Row_Spacing")]
public int Row_Spacing { get; set; }
/// <summary>
/// 抽屉列间距
/// </summary>
[ConfigProAttribute("Column_Spacing")]
public int Column_Spacing { get; set; }
/// <summary>
/// 抽屉行数
/// </summary>
[ConfigProAttribute("Drawer_Rows")]
public int Drawer_Rows { get; set; }
/// <summary>
/// 抽屉列数
/// </summary>
[ConfigProAttribute("Drawer_Columns")]
public int Drawer_Columns { get; set; }
/// <summary> /// <summary>
/// PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,0,,,,,,,,,,,, /// PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,0,,,,,,,,,,,,
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
<add key="ConfigPath_Input" value="\Config\Config_InputEquip.csv" /> <add key="ConfigPath_Input" value="\Config\Config_InputEquip.csv" />
<add key="ConfigPath_Box" value="\Config\Config_BoxEquip.csv" /> <add key="ConfigPath_Box" value="\Config\Config_BoxEquip.csv" />
<add key="ConfigPath_BoxPosition" value="\Config\linePositions.csv" /> <add key="ConfigPath_BoxPosition" value="\Config\linePositions.csv" />
<add key="ConfigPath_DrawerPosition" value="\Config\DrawerPosition.csv" />
<add key="ConfigPath_TrayList" value="\LineConfig\TrayList.data" /> <add key="ConfigPath_TrayList" value="\LineConfig\TrayList.data" />
<add key="Line_CID" value="so827" /> <add key="Line_CID" value="so827" />
<!--end one store config--> <!--end one store config-->
......
...@@ -137,7 +137,7 @@ ...@@ -137,7 +137,7 @@
this.tabPage2.Controls.Add(this.panel1); this.tabPage2.Controls.Add(this.panel1);
this.tabPage2.Location = new System.Drawing.Point(4, 29); this.tabPage2.Location = new System.Drawing.Point(4, 29);
this.tabPage2.Name = "tabPage2"; this.tabPage2.Name = "tabPage2";
this.tabPage2.Size = new System.Drawing.Size(192, 67); this.tabPage2.Size = new System.Drawing.Size(988, 605);
this.tabPage2.TabIndex = 1; this.tabPage2.TabIndex = 1;
this.tabPage2.Text = " 设备状态 "; this.tabPage2.Text = " 设备状态 ";
this.tabPage2.UseVisualStyleBackColor = true; this.tabPage2.UseVisualStyleBackColor = true;
...@@ -148,7 +148,7 @@ ...@@ -148,7 +148,7 @@
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(0, 0); this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1"; this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(192, 67); this.panel1.Size = new System.Drawing.Size(988, 605);
this.panel1.TabIndex = 1; this.panel1.TabIndex = 1;
// //
// tableLayoutPanel1 // tableLayoutPanel1
...@@ -173,7 +173,7 @@ ...@@ -173,7 +173,7 @@
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 14.28571F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 19.04762F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 19.04762F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 19.04762F)); this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 19.04762F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(192, 67); this.tableLayoutPanel1.Size = new System.Drawing.Size(988, 605);
this.tableLayoutPanel1.TabIndex = 0; this.tableLayoutPanel1.TabIndex = 0;
// //
// InputControl // InputControl
...@@ -184,10 +184,10 @@ ...@@ -184,10 +184,10 @@
this.tableLayoutPanel1.SetColumnSpan(this.InputControl, 2); this.tableLayoutPanel1.SetColumnSpan(this.InputControl, 2);
this.InputControl.Dock = System.Windows.Forms.DockStyle.Fill; this.InputControl.Dock = System.Windows.Forms.DockStyle.Fill;
this.InputControl.EquipText = "上料机构"; this.InputControl.EquipText = "上料机构";
this.InputControl.Location = new System.Drawing.Point(3, 43); this.InputControl.Location = new System.Drawing.Point(3, 376);
this.InputControl.MoveInfo = "暂无出入库"; this.InputControl.MoveInfo = "暂无出入库";
this.InputControl.Name = "InputControl"; this.InputControl.Name = "InputControl";
this.InputControl.Size = new System.Drawing.Size(186, 6); this.InputControl.Size = new System.Drawing.Size(982, 109);
this.InputControl.TabIndex = 5; this.InputControl.TabIndex = 5;
this.InputControl.WorkStatus = "暂未启动"; this.InputControl.WorkStatus = "暂未启动";
// //
...@@ -197,10 +197,10 @@ ...@@ -197,10 +197,10 @@
this.ReelControlA1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.ReelControlA1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ReelControlA1.ColorStatus = System.Drawing.Color.White; this.ReelControlA1.ColorStatus = System.Drawing.Color.White;
this.ReelControlA1.Dock = System.Windows.Forms.DockStyle.Fill; this.ReelControlA1.Dock = System.Windows.Forms.DockStyle.Fill;
this.ReelControlA1.Location = new System.Drawing.Point(3, 25); this.ReelControlA1.Location = new System.Drawing.Point(3, 204);
this.ReelControlA1.Name = "ReelControlA1"; this.ReelControlA1.Name = "ReelControlA1";
this.ReelControlA1.ReelText = "暂存区物料"; this.ReelControlA1.ReelText = "暂存区物料";
this.ReelControlA1.Size = new System.Drawing.Size(90, 3); this.ReelControlA1.Size = new System.Drawing.Size(488, 80);
this.ReelControlA1.TabIndex = 0; this.ReelControlA1.TabIndex = 0;
// //
// ReelControlA2 // ReelControlA2
...@@ -209,10 +209,10 @@ ...@@ -209,10 +209,10 @@
this.ReelControlA2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.ReelControlA2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ReelControlA2.ColorStatus = System.Drawing.Color.White; this.ReelControlA2.ColorStatus = System.Drawing.Color.White;
this.ReelControlA2.Dock = System.Windows.Forms.DockStyle.Fill; this.ReelControlA2.Dock = System.Windows.Forms.DockStyle.Fill;
this.ReelControlA2.Location = new System.Drawing.Point(3, 34); this.ReelControlA2.Location = new System.Drawing.Point(3, 290);
this.ReelControlA2.Name = "ReelControlA2"; this.ReelControlA2.Name = "ReelControlA2";
this.ReelControlA2.ReelText = "暂存区物料"; this.ReelControlA2.ReelText = "暂存区物料";
this.ReelControlA2.Size = new System.Drawing.Size(90, 3); this.ReelControlA2.Size = new System.Drawing.Size(488, 80);
this.ReelControlA2.TabIndex = 1; this.ReelControlA2.TabIndex = 1;
// //
// ReelControlB1 // ReelControlB1
...@@ -221,10 +221,10 @@ ...@@ -221,10 +221,10 @@
this.ReelControlB1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.ReelControlB1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ReelControlB1.ColorStatus = System.Drawing.Color.White; this.ReelControlB1.ColorStatus = System.Drawing.Color.White;
this.ReelControlB1.Dock = System.Windows.Forms.DockStyle.Fill; this.ReelControlB1.Dock = System.Windows.Forms.DockStyle.Fill;
this.ReelControlB1.Location = new System.Drawing.Point(99, 25); this.ReelControlB1.Location = new System.Drawing.Point(497, 204);
this.ReelControlB1.Name = "ReelControlB1"; this.ReelControlB1.Name = "ReelControlB1";
this.ReelControlB1.ReelText = "暂存区物料"; this.ReelControlB1.ReelText = "暂存区物料";
this.ReelControlB1.Size = new System.Drawing.Size(90, 3); this.ReelControlB1.Size = new System.Drawing.Size(488, 80);
this.ReelControlB1.TabIndex = 2; this.ReelControlB1.TabIndex = 2;
// //
// ReelControlB2 // ReelControlB2
...@@ -233,10 +233,10 @@ ...@@ -233,10 +233,10 @@
this.ReelControlB2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.ReelControlB2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.ReelControlB2.ColorStatus = System.Drawing.Color.White; this.ReelControlB2.ColorStatus = System.Drawing.Color.White;
this.ReelControlB2.Dock = System.Windows.Forms.DockStyle.Fill; this.ReelControlB2.Dock = System.Windows.Forms.DockStyle.Fill;
this.ReelControlB2.Location = new System.Drawing.Point(99, 34); this.ReelControlB2.Location = new System.Drawing.Point(497, 290);
this.ReelControlB2.Name = "ReelControlB2"; this.ReelControlB2.Name = "ReelControlB2";
this.ReelControlB2.ReelText = "暂存区物料"; this.ReelControlB2.ReelText = "暂存区物料";
this.ReelControlB2.Size = new System.Drawing.Size(90, 3); this.ReelControlB2.Size = new System.Drawing.Size(488, 80);
this.ReelControlB2.TabIndex = 3; this.ReelControlB2.TabIndex = 3;
// //
// BoxControl // BoxControl
...@@ -250,7 +250,7 @@ ...@@ -250,7 +250,7 @@
this.BoxControl.Location = new System.Drawing.Point(3, 3); this.BoxControl.Location = new System.Drawing.Point(3, 3);
this.BoxControl.MoveInfo = "暂无出入库"; this.BoxControl.MoveInfo = "暂无出入库";
this.BoxControl.Name = "BoxControl"; this.BoxControl.Name = "BoxControl";
this.BoxControl.Size = new System.Drawing.Size(186, 16); this.BoxControl.Size = new System.Drawing.Size(982, 195);
this.BoxControl.TabIndex = 4; this.BoxControl.TabIndex = 4;
this.BoxControl.WorkStatus = "暂未启动"; this.BoxControl.WorkStatus = "暂未启动";
// //
...@@ -261,10 +261,10 @@ ...@@ -261,10 +261,10 @@
this.ShelfAControl.ColorStatus = System.Drawing.Color.White; this.ShelfAControl.ColorStatus = System.Drawing.Color.White;
this.ShelfAControl.Dock = System.Windows.Forms.DockStyle.Fill; this.ShelfAControl.Dock = System.Windows.Forms.DockStyle.Fill;
this.ShelfAControl.EquipText = "A料口"; this.ShelfAControl.EquipText = "A料口";
this.ShelfAControl.Location = new System.Drawing.Point(3, 55); this.ShelfAControl.Location = new System.Drawing.Point(3, 491);
this.ShelfAControl.MoveInfo = "暂无出入库"; this.ShelfAControl.MoveInfo = "暂无出入库";
this.ShelfAControl.Name = "ShelfAControl"; this.ShelfAControl.Name = "ShelfAControl";
this.ShelfAControl.Size = new System.Drawing.Size(90, 9); this.ShelfAControl.Size = new System.Drawing.Size(488, 111);
this.ShelfAControl.TabIndex = 6; this.ShelfAControl.TabIndex = 6;
this.ShelfAControl.WorkStatus = "暂未启动"; this.ShelfAControl.WorkStatus = "暂未启动";
// //
...@@ -275,10 +275,10 @@ ...@@ -275,10 +275,10 @@
this.ShelfBControl.ColorStatus = System.Drawing.Color.White; this.ShelfBControl.ColorStatus = System.Drawing.Color.White;
this.ShelfBControl.Dock = System.Windows.Forms.DockStyle.Fill; this.ShelfBControl.Dock = System.Windows.Forms.DockStyle.Fill;
this.ShelfBControl.EquipText = "B料口"; this.ShelfBControl.EquipText = "B料口";
this.ShelfBControl.Location = new System.Drawing.Point(99, 55); this.ShelfBControl.Location = new System.Drawing.Point(497, 491);
this.ShelfBControl.MoveInfo = "暂无出入库"; this.ShelfBControl.MoveInfo = "暂无出入库";
this.ShelfBControl.Name = "ShelfBControl"; this.ShelfBControl.Name = "ShelfBControl";
this.ShelfBControl.Size = new System.Drawing.Size(90, 9); this.ShelfBControl.Size = new System.Drawing.Size(488, 111);
this.ShelfBControl.TabIndex = 7; this.ShelfBControl.TabIndex = 7;
this.ShelfBControl.WorkStatus = "暂未启动"; this.ShelfBControl.WorkStatus = "暂未启动";
// //
......
...@@ -89,6 +89,12 @@ ...@@ -89,6 +89,12 @@
<Reference Include="XLRStore, Version=1.0.7818.19677, Culture=neutral, PublicKeyToken=null" /> <Reference Include="XLRStore, Version=1.0.7818.19677, Culture=neutral, PublicKeyToken=null" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="boxForm\FrmAutoFindPos.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="boxForm\FrmAutoFindPos.Designer.cs">
<DependentUpon>FrmAutoFindPos.cs</DependentUpon>
</Compile>
<Compile Include="boxForm\FrmAxisMove.cs"> <Compile Include="boxForm\FrmAxisMove.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
...@@ -182,6 +188,9 @@ ...@@ -182,6 +188,9 @@
<Compile Include="useControl\EquipControl.Designer.cs"> <Compile Include="useControl\EquipControl.Designer.cs">
<DependentUpon>EquipControl.cs</DependentUpon> <DependentUpon>EquipControl.cs</DependentUpon>
</Compile> </Compile>
<EmbeddedResource Include="boxForm\FrmAutoFindPos.resx">
<DependentUpon>FrmAutoFindPos.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="boxForm\FrmAxisMove.resx"> <EmbeddedResource Include="boxForm\FrmAxisMove.resx">
<DependentUpon>FrmAxisMove.cs</DependentUpon> <DependentUpon>FrmAxisMove.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
......
namespace OnlineStore.XLRStore
{
partial class FrmAutoFindPos
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.SuspendLayout();
//
// FrmAutoFindPos
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Name = "FrmAutoFindPos";
this.Text = "自动对位";
this.ResumeLayout(false);
}
#endregion
}
}
\ No newline at end of file \ No newline at end of file
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace OnlineStore.XLRStore
{
internal partial class FrmAutoFindPos : FrmBase
{
internal FrmAutoFindPos()
{
InitializeComponent();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file \ No newline at end of file
...@@ -642,5 +642,38 @@ namespace OnlineStore.XLRStore ...@@ -642,5 +642,38 @@ namespace OnlineStore.XLRStore
} }
} }
} }
private void btnToPosPage_Click(object sender, EventArgs e)
{
tabControl1.SelectedIndex = 0;
}
private void btnToReelPage_Click(object sender, EventArgs e)
{
tabControl1.SelectedIndex = 1;
}
private void btnToSigPage_Click(object sender, EventArgs e)
{
tabControl1.SelectedIndex = 2;
}
private void button1_Click(object sender, EventArgs e)
{
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 0;
}
private void button2_Click(object sender, EventArgs e)
{
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 1;
}
private void button3_Click(object sender, EventArgs e)
{
tabControl1.SelectedIndex = 0;
tabControl2.SelectedIndex = 2;
}
} }
} }
...@@ -40,6 +40,7 @@ namespace OnlineStore.XLRStore ...@@ -40,6 +40,7 @@ namespace OnlineStore.XLRStore
lblName.Text = boxBean.Name; lblName.Text = boxBean.Name;
this.Text = boxBean.Name; this.Text = boxBean.Name;
chbDebug.Checked = boxBean.IsDebug;
IsLoad = true; IsLoad = true;
} }
protected Dictionary<string, IOTextControl> DIControlList = new Dictionary<string, IOTextControl>(); protected Dictionary<string, IOTextControl> DIControlList = new Dictionary<string, IOTextControl>();
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!