Commit 11e2c782 LN

增加料架位置的配置

1 个父辈 9717704f
...@@ -28,11 +28,15 @@ ...@@ -28,11 +28,15 @@
<add key="ACBaudRate" value="115200" /> <add key="ACBaudRate" value="115200" />
<add key="InOutDefaultPosition" value="8000"/> <add key="InOutDefaultPosition" value="8000"/>
<add key="Config_Pwd" value="123456"/> <add key="Config_Pwd" value="123456"/>
<!--二维码类型列表配置,用#分割,一维码=Barcode 二维码: QR Code#Data Matrix ECC 200#Micro QR Code-->
<add key="CodeType" value="QR Code" />
<!--出库等待料盘拿走的时间,秒--> <!--出库等待料盘拿走的时间,秒-->
<add key="OutStoreWaitSeconds" value="10"/> <add key="OutStoreWaitSeconds" value="10"/>
<!--温控器类型,0=壁挂王字壳温湿度变送器,1=妙昕温湿度记录仪--> <!--温控器类型,0=壁挂王字壳温湿度变送器,1=妙昕温湿度记录仪-->
<add key="HumitureControllerType" value="0"/> <add key="HumitureControllerType" value="0"/>
<add key="UseAIOBOX" value="1"/> <add key="UseAIOBOX" value="1"/>
<add key ="DIMS" value ="120"/>
<add key ="DOMS" value ="300"/>
<!--流水线地址和端口配置--> <!--流水线地址和端口配置-->
<add key ="LineServerIp" value ="192.168.101.11"/> <add key ="LineServerIp" value ="192.168.101.11"/>
<add key ="LineServerPort" value ="5246"/> <add key ="LineServerPort" value ="5246"/>
......
...@@ -26,36 +26,35 @@ namespace OnlineStore.ACPackingStore ...@@ -26,36 +26,35 @@ namespace OnlineStore.ACPackingStore
internal FrmStore() internal FrmStore()
{ {
InitializeComponent(); InitializeComponent();
LogUtil.logBox = this.logBox;
startTimer = new System.Timers.Timer(); startTimer = new System.Timers.Timer();
startTimer.Interval = 1000; startTimer.Interval = 1000;
startTimer.Enabled = false; startTimer.Enabled = false;
startTimer.AutoReset = false; startTimer.AutoReset = false;
} }
private void FrmMain_Load(object sender, EventArgs e) private void FrmMain_Load(object sender, EventArgs e)
{ {
FrmBase. GetVersion(); FrmBase.GetVersion();
store = StoreManager.InitStore(); store = StoreManager.InitStore();
if (store == null) if (store == null)
{ {
this.Close(); this.Close();
return; return;
} }
else
foreach (AC_BOX_Bean box in store.BoxMap.Values)
{ {
foreach (AC_BOX_Bean box in store.BoxMap.Values) FrmBox frm = new FrmBox();
{ frm.BoxBean = box;
FrmBox frm = new FrmBox(); AddForm(box.Name, frm);
frm.BoxBean = box;
AddForm(box.Name, frm);
}
} }
chbAutoRun.Checked = store.UseBuzzer;
this.Text = ConfigAppSettings.GetValue(Setting_Init.App_Title); this.Text = ConfigAppSettings.GetValue(Setting_Init.App_Title);
chbAutoRun.Checked = ConfigAppSettings.GetValue(Setting_Init.App_AutoRun).Equals(1); chbAutoRun.Checked = ConfigAppSettings.GetValue(Setting_Init.App_AutoRun).Equals(1);
HideForm(); // LogUtil.logBox = this.logBox;
chbAutoRun.Checked = store.UseBuzzer; // HideForm();
LoadOk = true; LoadOk = true;
} }
...@@ -88,8 +87,7 @@ namespace OnlineStore.ACPackingStore ...@@ -88,8 +87,7 @@ namespace OnlineStore.ACPackingStore
this.Opacity = 0; this.Opacity = 0;
this.ShowInTaskbar = false; this.ShowInTaskbar = false;
this.notifyIcon1.Visible = true; this.notifyIcon1.Visible = true;
this.Hide(); this.Hide();
GC.Collect();
} }
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
......
...@@ -18,22 +18,81 @@ namespace OnlineStore.DeviceLibrary ...@@ -18,22 +18,81 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
public void StartShelfInStore() public void StartShelfInStore()
{ {
if (storeRunStatus == StoreRunStatus.Runing) if (storeRunStatus == StoreRunStatus.Runing)
{ {
if(IOValue(IO_Type.LineIn_Check).Equals(IO_VALUE.HIGH)) if (IOValue(IO_Type.LineIn_Check).Equals(IO_VALUE.HIGH))
{ {
LogInfo(" 空闲中,检测到入料口有信号,入料口移门打开,"); LogInfo(" 空闲中,检测到入料口有信号,料架入库:入料口移门打开,");
storeRunStatus = StoreRunStatus.Busy; storeRunStatus = StoreRunStatus.Busy;
storeStatus = StoreStatus.InStoreExecute; storeStatus = StoreStatus.InStoreExecute;
MoveInfo.NewMove(StoreMoveType.InStore, new InOutParam()); MoveInfo.NewMove(StoreMoveType.InStore, new InOutParam());
MoveInfo.NextMoveStep(StoreMoveStep.BOX_M_H_TOP1_OtherAxisToP1) MoveInfo.NextMoveStep(StoreMoveStep.SI_S02_DoorOpen);
CylinderMove(MoveInfo, IO_Type.EntranceDoor_Close, IO_Type.EntranceDoor_Open);
} }
}
}
} }
private void ShelfInStoreProcess()
{
if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S01_LineIn_Check))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S02_DoorOpen);
InStoreLog("SI_S02_DoorOpen:料架入库:入料口移门打开");
CylinderMove(MoveInfo, IO_Type.EntranceDoor_Close, IO_Type.EntranceDoor_Open);
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S02_DoorOpen))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S03_LineRun);
InStoreLog("SI_S03_LineRun:料架入库:线体正转,等待取料位检测到信号");
IOMove(IO_Type.Line_BackRun, IO_VALUE.LOW);
IOMove(IO_Type.Line_Run, IO_VALUE.HIGH);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LineIn_Check, IO_VALUE.LOW));
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LineTake_Check, IO_VALUE.HIGH));
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S03_LineRun))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S04_LineStop);
InStoreLog("SI_S04_LineStop:料架入库:取料位检测到信号,停止线体正转");
IOMove(IO_Type.Line_Run, IO_VALUE.LOW);
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S04_LineStop))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S05_DoorClose);
InStoreLog("SI_S05_DoorClose:料架入库:入料口移门关闭");
CylinderMove(MoveInfo, IO_Type.EntranceDoor_Open, IO_Type.EntranceDoor_Close);
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S05_DoorClose))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S06_LocationUp);
InStoreLog("SI_S06_LocationUp:料架入库:定位装置上升");
CylinderMove(MoveInfo, IO_Type.LocationCylinder_Down, IO_Type.LocationCylinder_Up);
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S06_LocationUp))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S07_TopCylinderUp);
InStoreLog("SI_S07_TopCylinderUp:料架入库:顶升装置上升");
CylinderMove(MoveInfo, IO_Type.TopCylinder_Down, IO_Type.TopCylinder_Up);
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S07_TopCylinderUp))
{
MoveInfo.NextMoveStep(StoreMoveStep.SI_S08_StartGetTray);
InStoreLog("SI_S07_TopCylinderUp:料架入库:开始循环从第一个空位逐个取料盘,扫码入库");
CylinderMove(MoveInfo, IO_Type.TopCylinder_Down, IO_Type.TopCylinder_Up);
}
else if (MoveInfo.MoveStep.Equals(StoreMoveStep.SI_S08_StartGetTray))
{
}
else
{
LogInfo(" 入库,moveStatus=" + MoveInfo.MoveStep + ",没有对应的处理!");
}
}
} }
} }
...@@ -37,7 +37,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -37,7 +37,8 @@ namespace OnlineStore.DeviceLibrary
{ {
if (valueList.Contains(item)) if (valueList.Contains(item))
{ {
LogUtil.error(LOGGER, type.Name + "枚举值:" + item + "重复存在,请检查代码!"); LogUtil.error( type.Name + "枚举值:" + item + "重复存在,请检查代码,即将 退出程序!");
MessageBox.Show(type.Name + "枚举值:" + item + "重复存在,请检查代码,即将 退出程序!");
Application.Exit(); Application.Exit();
break; break;
} }
...@@ -122,7 +123,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -122,7 +123,7 @@ namespace OnlineStore.DeviceLibrary
{ {
LOGGER.Error("出错:", ex); LOGGER.Error("出错:", ex);
MessageBox.Show(ex.ToString(), "加载配置错误(请检查配置)"); MessageBox.Show(ex.ToString(), "加载配置错误(请检查配置)");
Application.Exit();
} }
return Store; return Store;
} }
...@@ -153,6 +154,66 @@ namespace OnlineStore.DeviceLibrary ...@@ -153,6 +154,66 @@ namespace OnlineStore.DeviceLibrary
LOGGER.Error("出错:", ex); LOGGER.Error("出错:", ex);
} }
} }
public static bool LoadInoutParam(InOutParam param, AC_BOX_Bean box)
{
if (param == null)
{
return false;
}
//加载位置
if (param.MoveP == null)
{
LineMoveP p = new LineMoveP();
ACBoxPosition position = CSVPositionReader<ACBoxPosition>.GetPositon(param.PosID);
if (position == null)
{
LogUtil.error(box.Name + "GetPositon[" + param.PosID + "]=null,没有库位不能执行出入库");
return false;
}
ShelfPosition sp = CSVPositionReader<ShelfPosition>.GetPositon(param.ShelfPosID);
if (sp == null)
{
LogUtil.error(box.Name + "GetPositon[" + param.ShelfPosID + "]=null,没有库位不能执行出入库");
return false;
}
p.InOut_PA = sp.InoutAxis_PA;
p.UpDown_LPA1 = sp.UpDownAxis_LPA1;
p.UpDown_HPA2 = sp.UpDownAxis_HPA2;
p.Middle_PA = sp.MiddleAxis_PA;
p.ComPress_P1 = box.Config.CompressAxis_P1_Position;
p.InOut_P1 = box.Config.InOutAxis_P1_Position;
p.Middle_P1 = box.Config.MiddleAxis_P1_Position;
p.InOut_P2 = position.InOutAxis_DoorPosition_P2;
p.UpDown_P1 = box.Config.UpDownAxis_DoorOPosition_P1;
p.UpDown_P8 = box.Config.UpDownAxis_DoorIBPosition_P8;
p.UpDown_P2 = box.Config.UpDownAxis_DoorIPosition_P2;
p.UpDown_P7 = box.Config.UpDownAxis_DoorOBPosition_P7;
p.ComPress_P2 = position.CompressAxis_Position_P2;
p.ComPress_P3 = position.CompressAxis_CPosition_P3;
p.InOut_P3 = position.InOutAxis_Position_P3;
p.Middle_P2 = position.MiddleAxis_Position_P2;
p.UpDown_P3 = position.UpDownAxis_IHPosition_P3;
p.UpDown_P4 = position.UpDownAxis_ILPosition_P4;
p.UpDown_P5 = position.UpDownAxis_OHPosition_P5;
p.UpDown_P6 = position.UpDownAxis_OLPosition_P6;
param.MoveP = p;
if (String.IsNullOrEmpty(param.PlateH))
{
param.PlateH = position.BagHigh.ToString();
}
if (string.IsNullOrEmpty(param.PlateW))
{
param.PlateW = position.BagWidth.ToString();
}
return true;
}
return true;
}
private static string api_communication = "service/store/communication"; //流水线状态通信接口 private static string api_communication = "service/store/communication"; //流水线状态通信接口
private static string api_nextFeeder = "service/store/nextFeeder"; // 出库站位列表切换接口 private static string api_nextFeeder = "service/store/nextFeeder"; // 出库站位列表切换接口
public static string GetPostApi(string host) public static string GetPostApi(string host)
......
...@@ -77,14 +77,14 @@ ...@@ -77,14 +77,14 @@
<Compile Include="device\PanasonicServo\ACServerManager.cs" /> <Compile Include="device\PanasonicServo\ACServerManager.cs" />
<Compile Include="device\PanasonicServo\ACServerManager_Partial.cs" /> <Compile Include="device\PanasonicServo\ACServerManager_Partial.cs" />
<Compile Include="device\RFID\RFIDManager.cs" /> <Compile Include="device\RFID\RFIDManager.cs" />
<Compile Include="store\AutoInoutInfo.cs" />
<Compile Include="store\LineMoveP.cs" /> <Compile Include="store\LineMoveP.cs" />
<Compile Include="store\LineAlarm.cs"> <Compile Include="store\LineAlarm.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="store\model\AxisAlarmInfo.cs" /> <Compile Include="store\model\AxisAlarmInfo.cs" />
<Compile Include="store\model\FixtureCodeInfo.cs" /> <Compile Include="store\InOutParam.cs">
<Compile Include="store\InOrOutStoreParam.cs">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="store\model\StoreMoveInfo.cs"> <Compile Include="store\model\StoreMoveInfo.cs">
......
...@@ -113,7 +113,6 @@ PRO,预警湿度,WarnHumidity,80,,,,,, , ...@@ -113,7 +113,6 @@ PRO,预警湿度,WarnHumidity,80,,,,,, ,
PRO,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,, PRO,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,,
PRO,出入库多少次,会自动重置所有轴操作,Box_ResetACount,100,,,,,,, PRO,出入库多少次,会自动重置所有轴操作,Box_ResetACount,100,,,,,,,
PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,, PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,,
PRO,是否使用料盘检测信号,IsUse_Tray_Check,0,,,,,,,
PRO,需要吹气的温度(温度标准),Max_Temperature,0,,,,,,, PRO,需要吹气的温度(温度标准),Max_Temperature,0,,,,,,,
PRO,需要吹气的湿度(湿度标准),Max_Humidity,10,,,,,,, PRO,需要吹气的湿度(湿度标准),Max_Humidity,10,,,,,,,
PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,, PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,,
......
...@@ -115,7 +115,6 @@ PRO,预警湿度,WarnHumidity,80,,,,,, , ...@@ -115,7 +115,6 @@ PRO,预警湿度,WarnHumidity,80,,,,,, ,
PRO,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,, PRO,出入库多少次,会自动重置旋转轴,Box_ResetMCount,1000,,,,,,,
PRO,出入库多少次,会自动重置所有轴操作,Box_ResetACount,100,,,,,,, PRO,出入库多少次,会自动重置所有轴操作,Box_ResetACount,100,,,,,,,
PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,, PRO,IO信号超时时间(毫秒),IOSingle_TimerOut,10000,,,,,,,
PRO,是否使用料盘检测信号,IsUse_Tray_Check,0,,,,,,,
PRO,需要吹气的温度(温度标准),Max_Temperature,0,,,,,,, PRO,需要吹气的温度(温度标准),Max_Temperature,0,,,,,,,
PRO,需要吹气的湿度(湿度标准),Max_Humidity,10,,,,,,, PRO,需要吹气的湿度(湿度标准),Max_Humidity,10,,,,,,,
PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,, PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,,
......
位置,优先级,高度,宽度,料仓ID,旋转轴位置,升降轴低点,升降轴高点,进出轴位置 位置,优先级,高度,宽度,料仓ID,旋转轴位置PA,升降轴低点PA1,升降轴高点PA2,进出轴位置PA
1#AC1_1_1_4,1,8,7,1,211783,51884,55245,81000 1#S_1_4,1,8,7,1,211783,51884,55245,81000
1#AC1_1_1_5,2,8,7,1,211783,67807,71168,81000 1#S_1_5,2,8,7,1,211783,67807,71168,81000
1#AC1_1_1_6,3,8,7,1,211783,83730,87091,81000 1#S_1_6,3,8,7,1,211783,83730,87091,81000
1#AC1_1_1_7,4,8,7,1,211783,99653,103014,81000 1#S_1_7,4,8,7,1,211783,99653,103014,81000
1#AC1_1_1_8,5,8,7,1,211783,115576,118937,81000 1#S_1_8,5,8,7,1,211783,115576,118937,81000
1#AC1_1_1_9,6,8,7,1,211783,131499,134860,81000 1#S_1_9,6,8,7,1,211783,131499,134860,81000
1#AC1_1_1_10,7,8,7,1,211783,147422,150783,81000 1#S_1_10,7,8,7,1,211783,147422,150783,81000
1#AC1_1_1_11,8,8,7,1,211783,163345,166706,81000 1#S_1_11,8,8,7,1,211783,163345,166706,81000
1#AC1_1_1_12,9,8,7,1,211783,179268,182629,81000 1#S_1_12,9,8,7,1,211783,179268,182629,81000
1#AC1_1_1_13,10,8,7,1,211783,195191,198552,81000 1#S_1_13,10,8,7,1,211783,195191,198552,81000
1#AC1_1_1_14,11,8,7,1,211783,211114,214475,81000 1#S_1_14,11,8,7,1,211783,211114,214475,81000
1#AC1_1_1_15,12,8,7,1,211783,227037,230398,81000 1#S_1_15,12,8,7,1,211783,227037,230398,81000
1#AC1_1_1_16,13,8,7,1,211783,242960,246321,81000 1#S_1_16,13,8,7,1,211783,242960,246321,81000
1#AC1_1_1_17,14,8,7,1,211783,258883,262244,81000 1#S_1_17,14,8,7,1,211783,258883,262244,81000
1#AC1_1_1_18,15,8,7,1,211783,274806,278167,81000 1#S_1_18,15,8,7,1,211783,274806,278167,81000
1#AC1_1_1_19,16,8,7,1,211783,289000,294090,81000 1#S_1_19,16,8,7,1,211783,289000,294090,81000
1#AC1_1_1_20,17,8,7,1,211783,304652,310013,81000 1#S_1_20,17,8,7,1,211783,304652,310013,81000
1#AC1_1_1_21,18,8,7,1,211783,320575,325936,81000 1#S_1_21,18,8,7,1,211783,320575,325936,81000
1#AC1_1_1_22,19,8,7,1,211783,336498,341859,81000 1#S_1_22,19,8,7,1,211783,336498,341859,81000
1#AC1_1_2_3,20,8,7,1,211783,385700,389433,81000 1#S_2_3,20,8,7,1,211783,385700,389433,81000
1#AC1_1_2_4,21,8,7,1,211783,403000,405356,81000 1#S_2_4,21,8,7,1,211783,403000,405356,81000
1#AC1_1_2_5,22,8,7,1,211783,418345,421279,81000 1#S_2_5,22,8,7,1,211783,418345,421279,81000
1#AC1_1_2_6,23,8,7,1,211783,434000,437202,81000 1#S_2_6,23,8,7,1,211783,434000,437202,81000
1#AC1_1_2_7,24,8,7,1,211783,450000,453125,81000 1#S_2_7,24,8,7,1,211783,450000,453125,81000
1#AC1_1_2_8,25,8,7,1,211783,465900,469048,81000 1#S_2_8,25,8,7,1,211783,465900,469048,81000
1#AC1_1_2_9,26,8,7,1,211783,481800,484971,81000 1#S_2_9,26,8,7,1,211783,481800,484971,81000
1#AC1_1_2_10,27,8,7,1,211783,497660,500894,81000 1#S_2_10,27,8,7,1,211783,497660,500894,81000
1#AC1_1_2_11,28,8,7,1,211783,513600,516817,81000 1#S_2_11,28,8,7,1,211783,513600,516817,81000
1#AC1_1_2_12,29,8,7,1,211783,529200,532740,81000 1#S_2_12,29,8,7,1,211783,529200,532740,81000
1#AC1_1_2_13,30,8,7,1,211783,545100,548663,81000 1#S_2_13,30,8,7,1,211783,545100,548663,81000
1#AC1_1_2_14,31,8,7,1,211783,560500,564586,81000 1#S_2_14,31,8,7,1,211783,560500,564586,81000
1#AC1_1_2_15,32,8,7,1,211783,575500,580509,81000 1#S_2_15,32,8,7,1,211783,575500,580509,81000
1#AC1_1_2_16,33,8,7,1,211783,591500,596432,81000 1#S_2_16,33,8,7,1,211783,591500,596432,81000
1#AC1_1_2_17,34,8,7,1,211783,606000,612355,81000 1#S_2_17,34,8,7,1,211783,606000,612355,81000
1#AC1_1_2_18,35,8,7,1,211783,621000,628278,81000 1#S_2_18,35,8,7,1,211783,621000,628278,81000
,,,,,,,, ,,,,,,,,
2#AC1_1_1_4,1,8,7,2,211783,51884,55245,81000 2#S_1_4,1,8,7,2,211783,51884,55245,81000
2#AC1_1_1_5,2,8,7,2,211783,67807,71168,81000 2#S_1_5,2,8,7,2,211783,67807,71168,81000
2#AC1_1_1_6,3,8,7,2,211783,83730,87091,81000 2#S_1_6,3,8,7,2,211783,83730,87091,81000
2#AC1_1_1_7,4,8,7,2,211783,99653,103014,81000 2#S_1_7,4,8,7,2,211783,99653,103014,81000
2#AC1_1_1_8,5,8,7,2,211783,115576,118937,81000 2#S_1_8,5,8,7,2,211783,115576,118937,81000
2#AC1_1_1_9,6,8,7,2,211783,131499,134860,81000 2#S_1_9,6,8,7,2,211783,131499,134860,81000
2#AC1_1_1_10,7,8,7,2,211783,147422,150783,81000 2#S_1_10,7,8,7,2,211783,147422,150783,81000
2#AC1_1_1_11,8,8,7,2,211783,163345,166706,81000 2#S_1_11,8,8,7,2,211783,163345,166706,81000
2#AC1_1_1_12,9,8,7,2,211783,179268,182629,81000 2#S_1_12,9,8,7,2,211783,179268,182629,81000
2#AC1_1_1_13,10,8,7,2,211783,195191,198552,81000 2#S_1_13,10,8,7,2,211783,195191,198552,81000
2#AC1_1_1_14,11,8,7,2,211783,211114,214475,81000 2#S_1_14,11,8,7,2,211783,211114,214475,81000
2#AC1_1_1_15,12,8,7,2,211783,227037,230398,81000 2#S_1_15,12,8,7,2,211783,227037,230398,81000
2#AC1_1_1_16,13,8,7,2,211783,242960,246321,81000 2#S_1_16,13,8,7,2,211783,242960,246321,81000
2#AC1_1_1_17,14,8,7,2,211783,258883,262244,81000 2#S_1_17,14,8,7,2,211783,258883,262244,81000
2#AC1_1_1_18,15,8,7,2,211783,274806,278167,81000 2#S_1_18,15,8,7,2,211783,274806,278167,81000
2#AC1_1_1_19,16,8,7,2,211783,289000,294090,81000 2#S_1_19,16,8,7,2,211783,289000,294090,81000
2#AC1_1_1_20,17,8,7,2,211783,304652,310013,81000 2#S_1_20,17,8,7,2,211783,304652,310013,81000
2#AC1_1_1_21,18,8,7,2,211783,320575,325936,81000 2#S_1_21,18,8,7,2,211783,320575,325936,81000
2#AC1_1_1_22,19,8,7,2,211783,336498,341859,81000 2#S_1_22,19,8,7,2,211783,336498,341859,81000
2#AC1_1_2_3,20,8,7,2,211783,385700,389433,81000 2#S_2_3,20,8,7,2,211783,385700,389433,81000
2#AC1_1_2_4,21,8,7,2,211783,403000,405356,81000 2#S_2_4,21,8,7,2,211783,403000,405356,81000
2#AC1_1_2_5,22,8,7,2,211783,418345,421279,81000 2#S_2_5,22,8,7,2,211783,418345,421279,81000
2#AC1_1_2_6,23,8,7,2,211783,434000,437202,81000 2#S_2_6,23,8,7,2,211783,434000,437202,81000
2#AC1_1_2_7,24,8,7,2,211783,450000,453125,81000 2#S_2_7,24,8,7,2,211783,450000,453125,81000
2#AC1_1_2_8,25,8,7,2,211783,465900,469048,81000 2#S_2_8,25,8,7,2,211783,465900,469048,81000
2#AC1_1_2_9,26,8,7,2,211783,481800,484971,81000 2#S_2_9,26,8,7,2,211783,481800,484971,81000
2#AC1_1_2_10,27,8,7,2,211783,497660,500894,81000 2#S_2_10,27,8,7,2,211783,497660,500894,81000
2#AC1_1_2_11,28,8,7,2,211783,513600,516817,81000 2#S_2_11,28,8,7,2,211783,513600,516817,81000
2#AC1_1_2_12,29,8,7,2,211783,529200,532740,81000 2#S_2_12,29,8,7,2,211783,529200,532740,81000
2#AC1_1_2_13,30,8,7,2,211783,545100,548663,81000 2#S_2_13,30,8,7,2,211783,545100,548663,81000
2#AC1_1_2_14,31,8,7,2,211783,560500,564586,81000 2#S_2_14,31,8,7,2,211783,560500,564586,81000
2#AC1_1_2_15,32,8,7,2,211783,575500,580509,81000 2#S_2_15,32,8,7,2,211783,575500,580509,81000
2#AC1_1_2_16,33,8,7,2,211783,591500,596432,81000 2#S_2_16,33,8,7,2,211783,591500,596432,81000
2#AC1_1_2_17,34,8,7,2,211783,606000,612355,81000 2#S_2_17,34,8,7,2,211783,606000,612355,81000
2#AC1_1_2_18,35,8,7,2,211783,621000,628278,81000 2#S_2_18,35,8,7,2,211783,621000,628278,81000
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OnlineStore.DeviceLibrary
{
public class AutoInoutInfo
{
/// <summary>
/// 入库完成后自动出库,出库完成后自动入库
/// </summary>
public bool autoNext = false;
/// <summary>
/// 自动出入库间隔
/// </summary>
public int Jiange = 3;
public int positionIndex = 0;
public string autoMsg = "";
public int startIndex = -1;
public string shelfPosId = "";
#region 出入库参数
/// <summary>
/// 当前出入库的次数,超过配置的数量时,需要自动重置一下,再进行出入库
/// </summary>
internal int CurrInOutCount = 0;
internal int CurrInOutACount = 0;
#endregion
internal void InOutEndProcess(AC_BOX_Bean boxBean, StoreMoveType storeMoveType)
{
try
{
CurrInOutCount++;
CurrInOutACount++;
//是否自动进入出库状态
if (!autoNext)
{
return;
}
if (storeMoveType.Equals(StoreMoveType.InStore))
{
int newIndex = positionIndex - 1;
if (newIndex < 0)
{
if (startIndex >= 0 && startIndex < boxBean.PositionNumList.Count)
{
newIndex = startIndex;
boxBean.LogInfo("下一个索引不存在,重新开始自动出入库,索引【" + startIndex + "】");
}
else
{
autoNext = false;
autoMsg = "自动出入库结束!";
boxBean.LogInfo("下一个索引不存在,自动 出入库结束!");
}
}
else
{
positionIndex = newIndex;
string posid = boxBean.PositionNumList[positionIndex];
//判断是否需要重置
if (CurrInOutACount >= boxBean.Config.Box_ResetACount)
{
boxBean.LogInfo("自动进入下一个出库:posid=" + posid + ",当时已经出入库" + CurrInOutACount + "次,需要重置BOX,先把出库信息存入排队列表中");
boxBean.Reset(false);
autoMsg = "自动出库:" + posid;
boxBean.AddWaitOutInfo(new InOutParam("", posid, shelfPosId));
}
else if (CurrInOutCount >= boxBean.Config.Box_ResetMCount)
{
boxBean.LogInfo("自动进入下一个出库:posid=" + posid + ",当时已经出入库" + CurrInOutCount + "次,需要重置BOX旋转轴,先把出库信息存入排队列表中");
//ResetMiddleAxis(false);
autoMsg = "自动出库:" + posid;
boxBean.AddWaitOutInfo(new InOutParam("", posid, shelfPosId));
}
else
{
boxBean.LogInfo("自动进入下一个出库:posid=" + posid);
autoMsg = "自动出库:" + posid;
boxBean.StartOutStoreMove(new InOutParam("", posid, shelfPosId));
}
}
}
else if (storeMoveType.Equals(StoreMoveType.OutStore))
{
int newIndex = positionIndex - Jiange;
if (newIndex < 0)
{
if (startIndex >= 0 && startIndex < boxBean.PositionNumList.Count)
{
newIndex = startIndex;
boxBean.LogInfo("下一个索引不存在,重新开始自动出入库,索引【" + startIndex + "】");
}
else
{
autoNext = false;
autoMsg = "自动出入库结束!";
boxBean.LogInfo("下一个索引不存在,自动 出入库结束!");
}
}
else
{
string posid = boxBean.PositionNumList[newIndex];
//判断是否需要重置
if (CurrInOutACount >= boxBean.Config.Box_ResetACount)
{
boxBean.LogInfo("自动进入下一个入库:posid=" + posid + ",当时已经出入库" + CurrInOutACount + "次,需要重置BOX,先把入库信息存入排队列表中");
boxBean.Reset(false);
autoMsg = "自动入库:" + posid;
boxBean.AddWaitOutInfo(new InOutParam("AAAA", posid, shelfPosId));
}
else if (CurrInOutCount >= boxBean.Config.Box_ResetMCount)
{
boxBean.LogInfo("自动进入下一个出库:posid=" + posid + ",当时已经出入库" + CurrInOutCount + "次,需要重置BOX旋转轴,先把出库信息存入排队列表中");
//ResetMiddleAxis(false);
autoMsg = "自动入库:" + posid;
boxBean.AddWaitOutInfo(new InOutParam("AAAA", posid, shelfPosId));
}
else
{
boxBean.LogInfo("自动进入下一个入库:posid=" + posid);
autoMsg = "自动入库:" + posid;
boxBean.StartInStoreMove(new InOutParam("AAAA", posid, shelfPosId));
}
}
}
}
catch (Exception ex)
{
LogUtil.error(boxBean.Name + "InOutEndProcess ERROR:" + ex.ToString());
}
}
internal void ClearCount()
{
CurrInOutACount = 0;
CurrInOutCount = 0;
}
}
}
...@@ -17,9 +17,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -17,9 +17,8 @@ namespace OnlineStore.DeviceLibrary
{ {
public static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); public static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public InOutParam() public InOutParam()
{ {
ACStoreP = null; this.WareCode = "";
this.WareNumber = "";
MoveP = null; MoveP = null;
} }
/// <summary> /// <summary>
...@@ -27,71 +26,43 @@ namespace OnlineStore.DeviceLibrary ...@@ -27,71 +26,43 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
/// <param name="wareNo">物品二维码</param> /// <param name="wareNo">物品二维码</param>
/// <param name="position">仓位号</param> /// <param name="position">仓位号</param>
public InOutParam(string wareNo, string posId) public InOutParam(string wareNo, string posId,string ShelfPosID)
{ {
ACStoreP = null; this.ShelfPosID = ShelfPosID;
WareNumber = wareNo; WareCode = wareNo;
PositionNum = posId; PosID = posId;
MoveP = null; MoveP = null;
IsSolderPaste = false; IsSolderPaste = false;
} }
public InOutParam(string wareNo, string posId,string plateH,string plateW) public InOutParam(string wareNo, string posId,string plateH,string plateW, string ShelfPosID="")
{ {
ACStoreP = null; this.ShelfPosID = ShelfPosID;
WareNumber = wareNo; WareCode = wareNo;
PositionNum = posId; PosID = posId;
MoveP = null; MoveP = null;
this.PlateW = plateW; this.PlateW = plateW;
this.PlateH = plateH; this.PlateH = plateH;
IsSolderPaste = false; IsSolderPaste = false;
} }
public InOutParam(string wareNo, string posId, LineMoveP linePosition )
{
public InOutParam(string wareNo, string posId, LineMoveP linePosition) WareCode = wareNo;
{ PosID = posId;
ACStoreP = null;
WareNumber = wareNo;
PositionNum = posId;
MoveP = linePosition; MoveP = linePosition;
IsSolderPaste = false; IsSolderPaste = false;
} }
//public InOutStoreParam(string wareNo, string posId, ACStorePosition movep)
//{
// ACStoreP = movep;
// WareNumber = wareNo;
// PositionNum = posId;
// MoveP = null;
// IsSolderPaste = false;
//}
private ACBoxPosition ACStoreP = null;
public ACBoxPosition GetACPosition()
{
try
{
if (ACStoreP == null)
{
ACStoreP = CSVPositionReader<ACBoxPosition>.GetPositon(PositionNum);
}
}
catch (Exception ex)
{
LogUtil.error(log, "出入库获取库位信息GetKTKPosition出错:" + ex.ToString());
}
return ACStoreP;
}
/// <summary> /// <summary>
/// 物品二维码信息 /// 物品二维码信息
/// </summary> /// </summary>
public string WareNumber { get; set; } public string WareCode { get; set; }
/// <summary> /// <summary>
/// 位置坐标名(对应配置表的位置) /// 位置坐标名(对应配置表的位置)
/// </summary> /// </summary>
public string PositionNum { get; set; } public string PosID { get; set; }
/// <summary>
/// 料架对应的库位号
/// </summary>
public string ShelfPosID = "";
public LineMoveP MoveP { get; set; } public LineMoveP MoveP { get; set; }
/// <summary> /// <summary>
/// 料盘高度 /// 料盘高度
...@@ -105,7 +76,100 @@ namespace OnlineStore.DeviceLibrary ...@@ -105,7 +76,100 @@ namespace OnlineStore.DeviceLibrary
/// 是否是放入锡膏(在线料仓才需要此字段) /// 是否是放入锡膏(在线料仓才需要此字段)
/// </summary> /// </summary>
public bool IsSolderPaste { get; set; } public bool IsSolderPaste { get; set; }
/// <summary>
/// 根据PosId获取对应的料仓ID,若PosId=="",返回-1
} /// </summary>
/// <returns></returns>
public int GetStoreId()
{
if (!PosID.Equals(""))
{
string[] arr = PosID.Split('#');
if (arr.Length >= 2)
{
try
{
return int.Parse(arr[0]);
}
catch (Exception ex)
{
}
}
}
return -1;
}
public string ToStr()
{
return " ShelfPosID=["+ ShelfPosID + "],WareCode=【" + WareCode + "】,PosID=【" + PosID + "】,PlateW=【" + PlateW + "】,PlateH=【" + PlateH + "】";
}
}
///// <summary>
// /// 夹具编码信息(保存夹具检测到的IO数值,和对应的料仓位置)
// /// </summary>
//public class FixtureCodeInfo
//{
// public FixtureCodeInfo(string wareNum, string posId)
// {
// this.WareNum = wareNum;
// this.PosId = posId;
// this.plateH = "";
// this.plateW = "";
// }
// public FixtureCodeInfo(string wareNum, string posId, string platew, string plateh)
// {
// this.WareNum = wareNum;
// this.PosId = posId;
// this.plateW = platew;
// this.plateH = plateh;
// }
// /// <summary>
// /// 物品二维码
// /// </summary>
// public string WareNum { get; set; }
// /// <summary>
// /// 库位号编码
// /// </summary>
// public string PosId { get; set; }
// /// <summary>
// /// 料盘宽
// /// </summary>
// public string plateW { get; set; }
// /// <summary>
// /// 料盘高
// /// </summary>
// public string plateH { get; set; }
// public string ToStr()
// {
// return " WareNum=【" + WareNum + "】,PosId=【" + PosId + "】,plateW=【" + plateW + "】,plateH=【" + plateH + "】";
// }
// /// <summary>
// /// 根据PosId获取对应的料仓ID,若PosId=="",返回-1
// /// </summary>
// /// <returns></returns>
// public int GetStoreId()
// {
// if (!PosId.Equals(""))
// {
// string[] arr = PosId.Split('#');
// if (arr.Length >= 2)
// {
// try
// {
// return int.Parse(arr[0]);
// }
// catch (Exception ex)
// {
// }
// }
// }
// return -1;
// }
//}
} }
...@@ -79,5 +79,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -79,5 +79,22 @@ namespace OnlineStore.DeviceLibrary
/// 轴4( 压紧轴) 压紧前点P3 /// 轴4( 压紧轴) 压紧前点P3
/// </summary> /// </summary>
public int ComPress_P3{ get; set; } public int ComPress_P3{ get; set; }
/// <summary>
/// 料架进出轴取料点
/// </summary>
public int InOut_PA = 0;
/// <summary>
/// 料架旋转轴位置
/// </summary>
public int Middle_PA = 0;
/// <summary>
/// 料架升降轴低点PA1
/// </summary>
public int UpDown_LPA1 = 0;
/// <summary>
/// 料架升降轴高点PA2
/// </summary>
public int UpDown_HPA2 = 0;
} }
} }
...@@ -316,7 +316,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -316,7 +316,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 料架入库:检测到线体入料口信号 /// 料架入库:检测到线体入料口信号
/// </summary> /// </summary>
SI_S01_LIneIn_Check= 20001, SI_S01_LineIn_Check= 20001,
/// <summary> /// <summary>
/// 料架入库:入料口移门打开 /// 料架入库:入料口移门打开
/// </summary> /// </summary>
...@@ -342,6 +342,63 @@ namespace OnlineStore.DeviceLibrary ...@@ -342,6 +342,63 @@ namespace OnlineStore.DeviceLibrary
/// 料架入库:顶升装置上升 /// 料架入库:顶升装置上升
/// </summary> /// </summary>
SI_S07_TopCylinderUp = 20007, SI_S07_TopCylinderUp = 20007,
/// <summary>
/// 料架入库:开始循环从第一个空位逐个取料盘,扫码入库
/// </summary>
SI_S08_StartGetTray= 20008,
///// <summary>
///// 入库。。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点)
///// </summary>
//SI_S03_CompressWare = 20103,
///// <summary>
///// 入库。。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点)
///// </summary>
//SI_S04_CompressWare = 20104,
///// <summary>
///// 入库。。叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点)
///// </summary>
//SI_S05_DeviceToDoor = 20105,
///// <summary>
///// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点),压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P2(压紧点)
///// </summary>
//SI_S06_DoorWarToDevice = 20106,
///// <summary>
///// 入库。。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点)
///// </summary>
//SI_S07_DeviceBackFromDoor = 20107,
///// <summary>
///// 入库。。,定位气缸伸出 (有压紧轴的不需要此步骤)
///// </summary>
//SI_S08_LocationCylinder_Up = 20108,
///// <summary>
///// 入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)
///// </summary>
//SI_S09_MoveToBag = 20109,
///// <summary>
///// 入库。。定位气缸退回 (有压紧轴的不需要此步骤)
///// </summary>
//SI_S10_LocationCylinder_Down = 20110,
///// <summary>
///// 入库。。叉子进入库位中,轴3( 叉子) 至P3(库位取放料点)
///// </summary>
//SI_S11_DeviceToBag = 20111,
///// <summary>
///// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)轴4( 压紧) 至P3( 压紧前点)
///// </summary>
//SI_S12_PutWareToBag = 20112,
///// <summary>
///// 入库。。叉子从库位中返回,轴3( 叉子) 动作至P1( 待机点)
///// </summary>
//SI_S13_DeviceBackFromBag = 20113,
///// <summary>
///// 入库。。返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始
///// </summary>
//SI_S14_GoBack = 20114,
#endregion #endregion
} }
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OnlineStore.DeviceLibrary
{
/// <summary>
/// 夹具编码信息(保存夹具检测到的IO数值,和对应的料仓位置)
/// </summary>
public class FixtureCodeInfo
{
public FixtureCodeInfo(int trayCode, string wareNum, string posId)
{
this.TrayCode = trayCode;
this.WareNum = wareNum;
this.PosId = posId;
this.plateH = "";
this.plateW = "";
}
public FixtureCodeInfo(int trayCode, string wareNum, string posId,string platew,string plateh)
{
this.TrayCode = trayCode;
this.WareNum = wareNum;
this.PosId = posId;
this.plateW = platew;
this.plateH = plateh;
}
/// <summary>
/// 夹具编码值(1-6)
/// </summary>
public int TrayCode { get; set; }
/// <summary>
/// 物品二维码
/// </summary>
public string WareNum { get; set; }
/// <summary>
/// 库位号编码
/// </summary>
public string PosId { get; set; }
/// <summary>
/// 料盘宽
/// </summary>
public string plateW { get; set; }
/// <summary>
/// 料盘高
/// </summary>
public string plateH { get; set; }
public string ToStr()
{
return "TrayCode【" + TrayCode + "】,WareNum=【" + WareNum + "】,PosId=【" + PosId + "】,plateW=【" + plateW + "】,plateH=【" + plateH + "】";
}
/// <summary>
/// 根据PosId获取对应的料仓ID,若PosId=="",返回-1
/// </summary>
/// <returns></returns>
public int GetStoreId()
{
if (!PosId.Equals(""))
{
string[] arr = PosId.Split('#');
if (arr.Length >= 2)
{
try
{
return int.Parse(arr[0]);
}
catch (Exception ex)
{
}
}
}
return -1;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OnlineStore.DeviceLibrary
{
/// <summary>
/// 托盘信息
/// </summary>
public class FixtureInfo
{
private int codeNum;
private int inOrOut;
public FixtureInfo(int codeNum, bool isFull, int inOrOut, int bagWidth)
{
this.codeNum = codeNum;
this.IsFull = isFull;
this.inOrOut = inOrOut;
BagWidth = bagWidth;
}
/// <summary>
/// 夹具编码值(1-6)
/// </summary>
public int TrayCode { get; set; }
/// <summary>
/// 是否有料盘,true=有料盘
/// </summary>
public bool IsFull { get; set; }
/// <summary>
/// 出库还是入库(有料盘时才有此操作)0=无操作,1=入库,2=出库
/// </summary>
public int InOrOutStore { get; set; }
/// <summary>
/// 如果是出库,需要记录盘宽,七寸小盘可以累积到托盘上
/// 只有出库才会有值
/// </summary>
public int BagWidth { get; set; }
}
}
...@@ -12,27 +12,27 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -12,27 +12,27 @@ namespace OnlineStore.LoadCSVLibrary
/// </summary> /// </summary>
[CSVAttribute("料仓ID")] [CSVAttribute("料仓ID")]
public int StoreId { get; set; } public int StoreId { get; set; }
/// <summary> /// <summary>
/// 旋转轴位置 /// 旋转轴位置PA
/// </summary> /// </summary>
[CSVAttribute("旋转轴位置")] [CSVAttribute("旋转轴位置PA")]
public int MiddleAxis_P100 { get; set; } public int MiddleAxis_PA{ get; set; }
/// <summary> /// <summary>
/// 升降轴高点 /// 升降轴低点PA1
/// </summary> /// </summary>
[CSVAttribute("升降轴低点")] [CSVAttribute("升降轴低点PA1")]
public int UpDownAxis_HP100 { get; set; } public int UpDownAxis_LPA1 { get; set; }
/// <summary> /// <summary>
/// 升降轴高点 /// 升降轴高点PA2
/// /// </summary> /// /// </summary>
[CSVAttribute("升降轴高点")] [CSVAttribute("升降轴高点PA2")]
public int UpDownAxis_LP100 { get; set; } public int UpDownAxis_HPA2{ get; set; }
/// <summary> /// <summary>
/// 进出轴位置 /// 进出轴位置PA
/// </summary> /// </summary>
[CSVAttribute("进出轴位置")] [CSVAttribute("进出轴位置PA")]
public int UpDownAxis_P100 { get; set; } public int InoutAxis_PA { get; set; }
} }
} }
...@@ -288,29 +288,14 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -288,29 +288,14 @@ namespace OnlineStore.LoadCSVLibrary
{ {
IoValue = -1; IoValue = -1;
} }
else if (ProType.Equals(ConfigItemType.DI)) else
{ {
IoValue = Convert.ToInt32(ProValue, 8); IoValue = Convert.ToInt32(ProValue);
} }
else if (ProType.Equals(ConfigItemType.DO))
{
if (ProValue.Length == 2)
{
int a = Convert.ToInt32(ProValue.Substring(0, 1), 16) - 8;
string str =a+ProValue.Substring(1,1);
IoValue = Convert.ToInt32( str, 8);
//IoValue = a + b;
}
else
{
IoValue = Convert.ToInt32(ProValue, 16) - Convert.ToInt32("80", 16);
}
}
//LOGGER.Info("IO转换:(" + ElectricalDefinition + ")" + ProVale + "=" + IoValue);
} }
catch (Exception ex) catch (Exception ex)
{ {
LOGGER.Error("出错了:", ex); LOGGER.Error(ToString()+"出错了:", ex);
return -1; return -1;
} }
return IoValue; return IoValue;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!