Commit c0a0de6a LN

1

1 个父辈 ed18caa3
此文件类型无法预览
...@@ -230,6 +230,19 @@ namespace OnlineStore.AssemblyLine ...@@ -230,6 +230,19 @@ namespace OnlineStore.AssemblyLine
lblStoreStatus.Text = KTK_Store.GetRunStr(equipBean.lineStatus, equipBean.runStatus); lblStoreStatus.Text = KTK_Store.GetRunStr(equipBean.lineStatus, equipBean.runStatus);
lblThisSta.Text = equipBean.WarnMsg; lblThisSta.Text = equipBean.WarnMsg;
txtP1.Text = equipBean.Config.BatchAxisP1.ToString(); txtP1.Text = equipBean.Config.BatchAxisP1.ToString();
if (equipBean.Config.SidesWayNum > 0)
{
btnSwLocationCylinder.Visible = true;
btnSWTop.Visible = true;
btnFL_TopCylinder.Visible = false;
}
else
{
btnSwLocationCylinder.Visible = false ;
btnSWTop.Visible = false ;
btnFL_TopCylinder.Visible = true ;
}
IsLoad = true; IsLoad = true;
} }
......
...@@ -3,6 +3,7 @@ PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,, ...@@ -3,6 +3,7 @@ PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,,
PRO,0,扫码的相机名称(多个用#分隔),CameraNameList,Name1#Name1,,,,, PRO,0,扫码的相机名称(多个用#分隔),CameraNameList,Name1#Name1,,,,,
PRO,0,移栽上下运动是否使用伺服,UpDownUseAxis,1,,,,, PRO,0,移栽上下运动是否使用伺服,UpDownUseAxis,1,,,,,
PRO,0,对应的横移模块,SidesWayNum,1,,,,, PRO,0,对应的横移模块,SidesWayNum,1,,,,,
PRO,0,是否是用来出料,IsCanOut,0,,,,,
,,,,,,,,, ,,,,,,,,,
AXIS,0,批量上料轴,Batch_Axis,2,COM1,0,,, AXIS,0,批量上料轴,Batch_Axis,2,COM1,0,,,
PRO,0,批量上料轴待机点 P1,BatchAxisP1,2000,,,,, PRO,0,批量上料轴待机点 P1,BatchAxisP1,2000,,,,,
...@@ -24,7 +25,7 @@ PRO,0,移栽上下轴原点低速度,UpdownAxis_HomeLowSpeed,100,,,,, ...@@ -24,7 +25,7 @@ PRO,0,移栽上下轴原点低速度,UpdownAxis_HomeLowSpeed,100,,,,,
PRO,0,移栽上下轴原点高速,UpdownAxis_HomeHighSpeed,200,,,,, PRO,0,移栽上下轴原点高速,UpdownAxis_HomeHighSpeed,200,,,,,
PRO,0,移栽上下轴原点加速度,UpdownAxis_HomeAddSpeed,200,,,,, PRO,0,移栽上下轴原点加速度,UpdownAxis_HomeAddSpeed,200,,,,,
PRO,0,移栽上下轴下降速度,UpdownAxis_DownSpeed,500,,,,, PRO,0,移栽上下轴下降速度,UpdownAxis_DownSpeed,500,,,,,
PRO,0,移栽上下轴走到待机点速度,UpdownAxis_P1Speed,400,,,,, PRO,0,移栽上下轴走到待机点速度,UpdownAxis_P1Speed,400,,,,,
,,,,,,,,, ,,,,,,,,,
,,,,,,,,, ,,,,,,,,,
,,,,,,,,, ,,,,,,,,,
......
...@@ -3,6 +3,7 @@ PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,, ...@@ -3,6 +3,7 @@ PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,,
PRO,0,扫码的相机名称(多个用#分隔),CameraNameList,Name1#Name1,,,,, PRO,0,扫码的相机名称(多个用#分隔),CameraNameList,Name1#Name1,,,,,
PRO,0,移栽上下运动是否使用伺服,UpDownUseAxis,1,,,,, PRO,0,移栽上下运动是否使用伺服,UpDownUseAxis,1,,,,,
PRO,0,对应的横移模块,SidesWayNum,0,,,,, PRO,0,对应的横移模块,SidesWayNum,0,,,,,
PRO,0,是否是用来出料,IsCanOut,0,,,,,
,,,,,,,,, ,,,,,,,,,
AXIS,0,批量上料轴,Batch_Axis,2,COM1,0,,, AXIS,0,批量上料轴,Batch_Axis,2,COM1,0,,,
PRO,0,批量上料轴待机点 P1,BatchAxisP1,2000,,,,, PRO,0,批量上料轴待机点 P1,BatchAxisP1,2000,,,,,
...@@ -81,8 +82,8 @@ DO,0,SL2上料气缸放松SOL,SL_FeedCylinder_Slack,0,192.168.200.24,0,SL2上料气缸放松 ...@@ -81,8 +82,8 @@ DO,0,SL2上料气缸放松SOL,SL_FeedCylinder_Slack,0,192.168.200.24,0,SL2上料气缸放松
DO,0,SL2上料气缸夹紧SOL,SL_FeedCylinder_Tighten,1,192.168.200.24,0,SL2上料气缸夹紧SOL,Y162,Y162 DO,0,SL2上料气缸夹紧SOL,SL_FeedCylinder_Tighten,1,192.168.200.24,0,SL2上料气缸夹紧SOL,Y162,Y162
DO,0,SL2托盘定位气缸1前进SOL,SL_TrayLocationCylinder_Before,2,192.168.200.24,0,SL2托盘定位气缸1前进SOL,Y163,Y163 DO,0,SL2托盘定位气缸1前进SOL,SL_TrayLocationCylinder_Before,2,192.168.200.24,0,SL2托盘定位气缸1前进SOL,Y163,Y163
DO,0,SL2托盘定位气缸1后退SOL,SL_TrayLocationCylinder_After,3,192.168.200.24,0,SL2托盘定位气缸1后退SOL,Y164,Y164 DO,0,SL2托盘定位气缸1后退SOL,SL_TrayLocationCylinder_After,3,192.168.200.24,0,SL2托盘定位气缸1后退SOL,Y164,Y164
DO,0,FL1阻挡1下降SOL,FL_Stop1Down,4,192.168.200.24,0,FL1阻挡1下降SOL,Y165,Y165 DO,0,FL1阻挡1下降SOL,FL_StopCylinder_Down1,4,192.168.200.24,0,FL1阻挡1下降SOL,Y165,Y165
DO,0,FL1阻挡2下降SOL,FL_Stop2Down,5,192.168.200.24,0,FL1阻挡2下降SOL,Y166,Y166 DO,0,FL1阻挡2下降SOL,FL_StopCylinder_Down2,5,192.168.200.24,0,FL1阻挡2下降SOL,Y166,Y166
DO,0,FL1顶升上升SOL,FL_TopCylinder_Up,6,192.168.200.24,0,FL1顶升上升SOL,Y167,Y167 DO,0,FL1顶升上升SOL,FL_TopCylinder_Up,6,192.168.200.24,0,FL1顶升上升SOL,Y167,Y167
DO,0,FL1顶升下降SOL,FL_TopCylinder_Down,7,192.168.200.24,0,FL1顶升下降SOL,Y168,Y168 DO,0,FL1顶升下降SOL,FL_TopCylinder_Down,7,192.168.200.24,0,FL1顶升下降SOL,Y168,Y168
DO,0,SL2提升伺服刹车ON,SL_UpAxis_BreakOn,8,192.168.200.24,0,SL2提升伺服刹车ON,Y169,Y169 DO,0,SL2提升伺服刹车ON,SL_UpAxis_BreakOn,8,192.168.200.24,0,SL2提升伺服刹车ON,Y169,Y169
......
...@@ -3,6 +3,7 @@ PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,, ...@@ -3,6 +3,7 @@ PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,,
PRO,0,扫码的相机名称(多个用#分隔),CameraNameList,Name1#Name1,,,,, PRO,0,扫码的相机名称(多个用#分隔),CameraNameList,Name1#Name1,,,,,
PRO,0,移栽上下运动是否使用伺服,UpDownUseAxis,1,,,,, PRO,0,移栽上下运动是否使用伺服,UpDownUseAxis,1,,,,,
PRO,0,对应的横移模块,SidesWayNum,2,,,,, PRO,0,对应的横移模块,SidesWayNum,2,,,,,
PRO,0,是否是用来出料,IsCanOut,0,,,,,
,,,,,,,,, ,,,,,,,,,
AXIS,0,批量上料轴,Batch_Axis,2,COM1,0,,, AXIS,0,批量上料轴,Batch_Axis,2,COM1,0,,,
PRO,0,批量上料轴待机点 P1,BatchAxisP1,2000,,,,, PRO,0,批量上料轴待机点 P1,BatchAxisP1,2000,,,,,
......
...@@ -3,6 +3,7 @@ PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,, ...@@ -3,6 +3,7 @@ PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,,
PRO,0,扫码的相机名称(多个用#分隔),CameraNameList,Name1#Name1,,,,, PRO,0,扫码的相机名称(多个用#分隔),CameraNameList,Name1#Name1,,,,,
PRO,0,移栽上下运动是否使用伺服,UpDownUseAxis,1,,,,, PRO,0,移栽上下运动是否使用伺服,UpDownUseAxis,1,,,,,
PRO,0,对应的横移模块,SidesWayNum,3,,,,, PRO,0,对应的横移模块,SidesWayNum,3,,,,,
PRO,0,是否是用来出料,IsCanOut,1,,,,,
,,,,,,,,, ,,,,,,,,,
AXIS,0,批量上料轴,Batch_Axis,2,COM1,0,,, AXIS,0,批量上料轴,Batch_Axis,2,COM1,0,,,
PRO,0,批量上料轴待机点 P1,BatchAxisP1,2000,,,,, PRO,0,批量上料轴待机点 P1,BatchAxisP1,2000,,,,,
......
类型,分类编号,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义 类型,分类编号,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义
PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,, PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,,
PRO,0,对应的横移模块,SidesWayNum,0,,,,,
\ No newline at end of file \ No newline at end of file
类型,分类编号,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义 类型,分类编号,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义
PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,, PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,,
PRO,0,对应的横移模块,SidesWayNum,0,,,,,
\ No newline at end of file \ No newline at end of file
类型,分类编号,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义 类型,分类编号,说明,名称,属性值,设备名称,默认值,描述,电器定义,代码定义
PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,, PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,1,,,,,
PRO,0,对应的横移模块,SidesWayNum,0,,,,,
\ No newline at end of file \ No newline at end of file
...@@ -36,10 +36,10 @@ DI,18,进仓18夹料放松端,ClampCylinder_Tighten,1,192.168.200.46,0,进仓18夹料放松端 ...@@ -36,10 +36,10 @@ DI,18,进仓18夹料放松端,ClampCylinder_Tighten,1,192.168.200.46,0,进仓18夹料放松端
DI,18,进仓18升降上升端,UpDownCylinder_Up,2,192.168.200.46,0,进仓18升降上升端,X553,X553 DI,18,进仓18升降上升端,UpDownCylinder_Up,2,192.168.200.46,0,进仓18升降上升端,X553,X553
DI,18,进仓18升降下降端,UpDownCylinder_Down,3,192.168.200.46,0,进仓18升降下降端,X554,X554 DI,18,进仓18升降下降端,UpDownCylinder_Down,3,192.168.200.46,0,进仓18升降下降端,X554,X554
DI,204,出料4阻挡1托盘检测,StopCylinder_Check1,4,192.168.200.46,0,出料4阻挡1托盘检测,X555,X555 DI,204,出料4阻挡1托盘检测,StopCylinder_Check1,4,192.168.200.46,0,出料4阻挡1托盘检测,X555,X555
DI,1000,环形线横移4托盘检测,SW4_SideWay_TrayCheck,5,192.168.200.46,0,环形线横移4托盘检测,X556,X556 DI,204,出料4阻挡2托盘检测,StopCylinder_Check2,5,192.168.200.46,0,出料4阻挡2托盘检测,X556,X556
DI,1000,环形线横移4料盘检测1,SW4_SideWay_ReelCheck,6,192.168.200.46,0,环形线横移4料盘检测1,X557,X557 DI,204,出料4料盘检测,TrayCheck,6,192.168.200.46,0,出料4料盘检测,X557,X557
DI,1000,环形线横移4顶升上升端,SW4_TopCylinder_Up,7,192.168.200.46,0,环形线横移4顶升上升端,X558,X558 DI,204,出料4顶升上升端,TopCylinder_UP,7,192.168.200.46,0,出料4顶升上升端,X558,X558
DI,1000,环形线横移4顶升下降端,SW4_TopCylinder_Down,8,192.168.200.46,0,环形线横移4顶升下降端,X559,X559 DI,204,出料4顶升下降端,TopCylinder_Down,8,192.168.200.46,0,出料4顶升下降端,X559,X559
DI,204,出料4前后气缸前进端,BeforeAfterCylinder_Before,9,192.168.200.46,0,出料4前后气缸前进端,X560,X560 DI,204,出料4前后气缸前进端,BeforeAfterCylinder_Before,9,192.168.200.46,0,出料4前后气缸前进端,X560,X560
DI,204,出料4前后气缸后退端,BeforeAfterCylinder_After,10,192.168.200.46,0,出料4前后气缸后退端,X561,X561 DI,204,出料4前后气缸后退端,BeforeAfterCylinder_After,10,192.168.200.46,0,出料4前后气缸后退端,X561,X561
DI,204,出料4夹料气缸夹紧端,ClampCylinder_Slack,11,192.168.200.46,0,出料4夹料气缸夹紧端,X562,X562 DI,204,出料4夹料气缸夹紧端,ClampCylinder_Slack,11,192.168.200.46,0,出料4夹料气缸夹紧端,X562,X562
...@@ -70,8 +70,8 @@ DO,18,进仓18升降上升SOL,UpDownCylinder_Up,2,192.168.200.46,0,进仓18升降上升SOL,Y ...@@ -70,8 +70,8 @@ DO,18,进仓18升降上升SOL,UpDownCylinder_Up,2,192.168.200.46,0,进仓18升降上升SOL,Y
DO,18,进仓18升降下降SOL,UpDownCylinder_Down,3,192.168.200.46,0,进仓18升降下降SOL,Y554,Y554 DO,18,进仓18升降下降SOL,UpDownCylinder_Down,3,192.168.200.46,0,进仓18升降下降SOL,Y554,Y554
DO,204,出料4阻挡1下降SOL,StopCylinder_Down1,4,192.168.200.46,0,出料4阻挡1下降SOL,Y555,Y555 DO,204,出料4阻挡1下降SOL,StopCylinder_Down1,4,192.168.200.46,0,出料4阻挡1下降SOL,Y555,Y555
DO,204,出料4阻挡2下降SOL,StopCylinder_Down2,5,192.168.200.46,0,出料4阻挡2下降SOL,Y556,Y556 DO,204,出料4阻挡2下降SOL,StopCylinder_Down2,5,192.168.200.46,0,出料4阻挡2下降SOL,Y556,Y556
DO,1000,环形线横移4顶升上升SOL,SW4_TopCylinder_Up,6,192.168.200.46,0,环形线横移4顶升上升SOL,Y557,Y557 DO,204,出料4顶升上升SOL,TopCylinder_UP,6,192.168.200.46,0,出料4顶升上升SOL,Y557,Y557
DO,1000,环形线横移4顶升下降SOL,SW4_TopCylinder_Down,7,192.168.200.46,0,环形线横移4顶升下降SOL,Y558,Y558 DO,204,出料4顶升下降SOL,TopCylinder_Down,7,192.168.200.46,0,出料4顶升下降SOL,Y558,Y558
DO,204,出料4前后气缸前进SOL,BeforeAfterCylinder_Before,8,192.168.200.46,,出料4前后气缸前进SOL,Y559,Y559 DO,204,出料4前后气缸前进SOL,BeforeAfterCylinder_Before,8,192.168.200.46,,出料4前后气缸前进SOL,Y559,Y559
DO,204,出料4前后气缸后退SOL,BeforeAfterCylinder_After,9,192.168.200.46,,出料4前后气缸后退SOL,Y560,Y560 DO,204,出料4前后气缸后退SOL,BeforeAfterCylinder_After,9,192.168.200.46,,出料4前后气缸后退SOL,Y560,Y560
DO,204,出料4夹料气缸夹紧SOL,ClampCylinder_Slack,10,192.168.200.46,,出料4夹料气缸夹紧SOL,Y561,Y561 DO,204,出料4夹料气缸夹紧SOL,ClampCylinder_Slack,10,192.168.200.46,,出料4夹料气缸夹紧SOL,Y561,Y561
...@@ -79,5 +79,11 @@ DO,204,出料4夹料气缸放松SOL,ClampCylinder_Tighten,11,192.168.200.46,,出料4夹料气 ...@@ -79,5 +79,11 @@ DO,204,出料4夹料气缸放松SOL,ClampCylinder_Tighten,11,192.168.200.46,,出料4夹料气
DO,204,出料4上下气缸上升SOL,UpDownCylinder_Up,12,192.168.200.46,,出料4上下气缸上升SOL,Y563,Y563 DO,204,出料4上下气缸上升SOL,UpDownCylinder_Up,12,192.168.200.46,,出料4上下气缸上升SOL,Y563,Y563
DO,204,出料4上下气缸下降SOL,UpDownCylinder_Down,13,192.168.200.46,,出料4上下气缸下降SOL,Y564,Y564 DO,204,出料4上下气缸下降SOL,UpDownCylinder_Down,13,192.168.200.46,,出料4上下气缸下降SOL,Y564,Y564
,,,,14,192.168.200.46,,,Y565,Y565 ,,,,14,192.168.200.46,,,Y565,Y565
,,,,15,192.168.200.46,,,Y566,Y566
,,,,,,,,,
\ No newline at end of file \ No newline at end of file
,,,,,,,,,
DI,1000,环形线横移4托盘检测,SW4_SideWay_TrayCheck,5,192.168.200.46,0,环形线横移4托盘检测,X556,X556
DI,1000,环形线横移4料盘检测1,SW4_SideWay_ReelCheck,6,192.168.200.46,0,环形线横移4料盘检测1,X557,X557
DI,1000,环形线横移4顶升上升端,SW4_TopCylinder_Up,7,192.168.200.46,0,环形线横移4顶升上升端,X558,X558
DI,1000,环形线横移4顶升下降端,SW4_TopCylinder_Down,8,192.168.200.46,0,环形线横移4顶升下降端,X559,X559
,,,,,,,,,
DO,1000,环形线横移4顶升上升SOL,SW4_TopCylinder_Up,6,192.168.200.46,0,环形线横移4顶升上升SOL,Y557,Y557
DO,1000,环形线横移4顶升下降SOL,SW4_TopCylinder_Down,7,192.168.200.46,0,环形线横移4顶升下降SOL,Y558,Y558
...@@ -194,7 +194,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -194,7 +194,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 下降所有阻挡气缸 /// 下降所有阻挡气缸
/// </summary> /// </summary>
internal void OpenStopCylinder() internal virtual void OpenStopCylinder()
{ {
if (baseConfig.DType.Equals(DeviceType.MoveEquip) || baseConfig.DType.Equals(DeviceType.ProvidingEquip)) if (baseConfig.DType.Equals(DeviceType.MoveEquip) || baseConfig.DType.Equals(DeviceType.ProvidingEquip))
{ {
...@@ -212,7 +212,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -212,7 +212,7 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.TopCylinder_Down, IO_VALUE.HIGH); IOMove(IO_Type.TopCylinder_Down, IO_VALUE.HIGH);
} }
} }
internal void CloseCylinderStop() internal virtual void CloseCylinderStop()
{ {
if (baseConfig.DType.Equals(DeviceType.MoveEquip) || baseConfig.DType.Equals(DeviceType.ProvidingEquip)) if (baseConfig.DType.Equals(DeviceType.MoveEquip) || baseConfig.DType.Equals(DeviceType.ProvidingEquip))
{ {
...@@ -238,7 +238,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -238,7 +238,7 @@ namespace OnlineStore.DeviceLibrary
} }
string portName = axis.DeviceName; string portName = axis.DeviceName;
int slvAddr = axis.GetAxisValue(); int slvAddr = axis.GetAxisValue();
IOMove(IO_Type.BatchAxis_ServoOn, IO_VALUE.HIGH); IOMove(axis.ServerOnDO, IO_VALUE.HIGH);
Thread.Sleep(1000); Thread.Sleep(1000);
//打开所有轴 //打开所有轴
ACServerManager.OpenPort(portName); ACServerManager.OpenPort(portName);
...@@ -263,7 +263,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -263,7 +263,7 @@ namespace OnlineStore.DeviceLibrary
} }
} }
IsIntSlvBlock = true; IsIntSlvBlock = true;
IOMove(IO_Type.BatchAxis_BreakOn, IO_VALUE.HIGH); IOMove(axis.BreakOnDO, IO_VALUE.HIGH);
return true; return true;
} }
...@@ -314,14 +314,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -314,14 +314,14 @@ namespace OnlineStore.DeviceLibrary
string portName = axis.DeviceName; string portName = axis.DeviceName;
int slvAddr = axis.GetAxisValue(); int slvAddr = axis.GetAxisValue();
LogUtil.info(Name + "关闭刹车,关闭伺服"); LogUtil.info(Name + "关闭刹车,关闭伺服");
IOMove(IO_Type.BatchAxis_BreakOn, IO_VALUE.LOW); IOMove(axis.BreakOnDO, IO_VALUE.LOW);
ACServerManager.ServoOff(portName, slvAddr); ACServerManager.ServoOff(portName, slvAddr);
//关闭串口,等下次重新打开 //关闭串口,等下次重新打开
ACServerManager.ColsePort(portName); ACServerManager.ColsePort(portName);
Thread.Sleep(100); Thread.Sleep(100);
IOMove(IO_Type.BatchAxis_ServoOn, IO_VALUE.LOW); IOMove(axis.ServerOnDO, IO_VALUE.LOW);
} }
...@@ -524,10 +524,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -524,10 +524,10 @@ namespace OnlineStore.DeviceLibrary
int storeId = moveInfo.MoveParam.GetStoreId(); int storeId = moveInfo.MoveParam.GetStoreId();
wait.IsEnd = LineServer.BoxCanReviceTray(storeId); wait.IsEnd = LineServer.BoxCanReviceTray(storeId);
} }
else if (wait.WaitType.Equals(10)) //else if (wait.WaitType.Equals(10))
{ //{
wait.IsEnd = LineManager.Line.SideWay34HasTray().Equals(false); // wait.IsEnd = LineManager.Line.SideWay34HasTray().Equals(false);
} //}
if (wait.IsEnd && moveInfo.OneWaitCanEndStep) if (wait.IsEnd && moveInfo.OneWaitCanEndStep)
{ {
isOk = true; isOk = true;
...@@ -554,5 +554,20 @@ namespace OnlineStore.DeviceLibrary ...@@ -554,5 +554,20 @@ namespace OnlineStore.DeviceLibrary
} }
#endregion #endregion
protected void CheckLog(string msg)
{
LogUtil.debug(Name + msg);
}
protected void InStoreLog(string msg)
{
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : "";
LogUtil.info(Name + "【" + posId + "】" + msg);
}
protected void OutStoreLog(string msg)
{
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : "";
LogUtil.info(Name + "【" + posId + "】" + msg);
}
} }
} }
...@@ -389,8 +389,58 @@ namespace OnlineStore.DeviceLibrary ...@@ -389,8 +389,58 @@ namespace OnlineStore.DeviceLibrary
{ {
} }
protected override void CheckFixtureProcess()
{ /// <summary>
/// 是否需要拦截当前托盘进行处理
/// </summary>
/// <returns></returns>
internal bool NeedCurrTray()
{
int num = TrayManager.GetNum(Config.Id);
bool isFull = TrayManager.IsFixTureFull(num);
if (Config.IsCanOut.Equals(1))
{
if (isFull && runStatus.Equals(LineRunStatus.Runing) && MoveInfo.MoveType.Equals(LineMoveType.OutStore))
{
return true;
}
}
else
{
if (!isFull && runStatus.Equals(LineRunStatus.Runing) && MoveInfo.MoveType.Equals(LineMoveType.InStore))
{
return true;
}
}
return false;
} /// <summary>
/// 下降所有阻挡气缸
/// </summary>
internal override void OpenStopCylinder()
{
if (Config.SidesWayNum<=0)
{
LogInfo("下降阻挡气缸,下降顶升气缸 ");
IOMove(IO_Type.FL_StopCylinder_Down1, IO_VALUE.HIGH);
IOMove(IO_Type.FL_StopCylinder_Down2, IO_VALUE.HIGH);
//顶升气缸下降
IOMove(IO_Type.FL_TopCylinder_Up, IO_VALUE.LOW);
IOMove(IO_Type.FL_TopCylinder_Down, IO_VALUE.HIGH);
}
}
internal override void CloseCylinderStop()
{
if (Config.SidesWayNum <= 0)
{
LogInfo("上升阻挡气缸,关闭 顶升气缸IO");
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.LOW);
//顶升气缸下降
IOMove(IO_Type.FL_TopCylinder_Up, IO_VALUE.LOW);
IOMove(IO_Type.FL_TopCylinder_Down, IO_VALUE.LOW);
}
} }
} }
} }
...@@ -18,7 +18,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -18,7 +18,7 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
public partial class LineBean : KTK_Store public partial class LineBean : KTK_Store
{ {
/// <summary> /// <summary>
/// 是否没有扫到码 /// 是否没有扫到码
/// </summary> /// </summary>
...@@ -64,8 +64,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -64,8 +64,8 @@ namespace OnlineStore.DeviceLibrary
baseConfig = lineConfig; baseConfig = lineConfig;
this.Config = lineConfig; this.Config = lineConfig;
this.DeviceID = lineConfig.Id; this.DeviceID = lineConfig.Id;
SW12_MoveInfo = new LineMoveInfo(DeviceID, "横移轨道-12"); SW41_MoveInfo = new LineMoveInfo(DeviceID, "横移轨道-41");
SW34_MoveInfo = new LineMoveInfo(DeviceID, "横移轨道-34"); SW23_MoveInfo = new LineMoveInfo(DeviceID, "横移轨道-23");
MoveInfo = new LineMoveInfo(DeviceID, "流水线-Move "); MoveInfo = new LineMoveInfo(DeviceID, "流水线-Move ");
Name = (" 流水线_" + Config.CID + " ").ToUpper(); Name = (" 流水线_" + Config.CID + " ").ToUpper();
...@@ -217,7 +217,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -217,7 +217,7 @@ namespace OnlineStore.DeviceLibrary
} }
private void RHomeOp() private void RHomeOp()
{ {
TrayManager.SidesWayStateMap = new Dictionary<int, int>();
alarmType = LineAlarmType.None; alarmType = LineAlarmType.None;
mainTimer.Enabled = false; mainTimer.Enabled = false;
IoCheckTimer.Enabled = false; IoCheckTimer.Enabled = false;
...@@ -226,8 +226,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -226,8 +226,7 @@ namespace OnlineStore.DeviceLibrary
isNoAirCheck = false; isNoAirCheck = false;
alarmType = LineAlarmType.None; alarmType = LineAlarmType.None;
TrayManager.TrayErrorMsg = ""; TrayManager.TrayErrorMsg = "";
WarnMsg = ""; WarnMsg = "";
preTrayNum = 0;
PreIsHasProcess = true; PreIsHasProcess = true;
if (TrayManager.ErrorStoreId > 0) if (TrayManager.ErrorStoreId > 0)
...@@ -244,8 +243,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -244,8 +243,8 @@ namespace OnlineStore.DeviceLibrary
CylinderMove(null, IO_Type.NGCylinder_Before, IO_Type.NGCylinder_After); CylinderMove(null, IO_Type.NGCylinder_Before, IO_Type.NGCylinder_After);
////阻挡都上升 ////阻挡都上升
//IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW); //IOMove(IO_Type.FL_StopCylinder_Down1, IO_VALUE.LOW);
//IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.LOW); //IOMove(IO_Type.FL_StopCylinder_Down2, IO_VALUE.LOW);
//横移轨道下降 //横移轨道下降
SideWayReset(); SideWayReset();
} }
...@@ -375,11 +374,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -375,11 +374,11 @@ namespace OnlineStore.DeviceLibrary
{ {
return true; return true;
} }
if (SW12_MoveInfo.MoveType.Equals(LineMoveType.None).Equals(false)) if (SW41_MoveInfo.MoveType.Equals(LineMoveType.None).Equals(false))
{ {
return true; return true;
} }
if (SW34_MoveInfo.MoveType.Equals(LineMoveType.None).Equals(false)) if (SW23_MoveInfo.MoveType.Equals(LineMoveType.None).Equals(false))
{ {
return true; return true;
} }
...@@ -888,7 +887,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -888,7 +887,7 @@ namespace OnlineStore.DeviceLibrary
string wareNum = serverResult.barcode ; string wareNum = serverResult.barcode ;
int trayCode = TrayManager.GetNum(0); int trayCode = TrayManager.GetNum(0);
LogUtil.info( "更新盘空满信息,托盘号【" + trayCode + "】,是否有料盘【" + true + "】,出库入库【" + 1 + "】"); LogUtil.info( "更新盘空满信息,托盘号【" + trayCode + "】,是否有料盘【" + true + "】,出库入库【" + 1 + "】");
TrayManager.UpdateFixtureValue(trayCode, true, 1); TrayManager.UpdateFixtureValue(trayCode, true, 1,wareNum,posId,plateH,plateW);
//TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器; //TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器;
if (LineServer.BoxCanInStore(moveEquip.DeviceID)) if (LineServer.BoxCanInStore(moveEquip.DeviceID))
......
...@@ -38,7 +38,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -38,7 +38,10 @@ namespace OnlineStore.DeviceLibrary
Config.UpDown_Axis.DelSpeed = Config.UpdownAxis_DelSpeed; Config.UpDown_Axis.DelSpeed = Config.UpdownAxis_DelSpeed;
Config.UpDown_Axis.HomeAddSpeed = Config.UpdownAxis_HomeAddSpeed; Config.UpDown_Axis.HomeAddSpeed = Config.UpdownAxis_HomeAddSpeed;
Config.UpDown_Axis.HomeHighSpeed = Config.UpdownAxis_HomeHighSpeed; Config.UpDown_Axis.HomeHighSpeed = Config.UpdownAxis_HomeHighSpeed;
Config.UpDown_Axis.HomeLowSpeed = Config.UpdownAxis_HomeLowSpeed; Config.UpDown_Axis.HomeLowSpeed = Config.UpdownAxis_HomeLowSpeed;
Config.UpDown_Axis.ServerOnDO = IO_Type.UpDownAxis_ServoOn;
Config.UpDown_Axis.BreakOnDO = IO_Type.UpDownAxis_BreakOn;
} }
} }
...@@ -187,11 +190,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -187,11 +190,11 @@ namespace OnlineStore.DeviceLibrary
runStatus = LineRunStatus.Reset; runStatus = LineRunStatus.Reset;
SecondMoveInfo.EndMove(); SecondMoveInfo.EndMove();
MoveInfo.NewMove(LineMoveType.Reset); MoveInfo.NewMove(LineMoveType.Reset);
UpDownStartReset(); StartReset();
return true; return true;
} }
private void UpDownStartReset() private void StartReset()
{ {
//移载装置原点状态:顶升气缸下降端,前后气缸后退端,上下气缸上升端,夹料气缸放松端,阻挡气缸输入=0 //移载装置原点状态:顶升气缸下降端,前后气缸后退端,上下气缸上升端,夹料气缸放松端,阻挡气缸输入=0
UpdownHomeMove(); UpdownHomeMove();
...@@ -202,7 +205,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -202,7 +205,7 @@ namespace OnlineStore.DeviceLibrary
IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.HIGH); IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.HIGH);
} }
else else
{ {
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW); IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.LOW);
IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.LOW); IOMove(IO_Type.StopCylinder_Down2, IO_VALUE.LOW);
} }
......
...@@ -141,17 +141,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -141,17 +141,10 @@ namespace OnlineStore.DeviceLibrary
{ {
OutStoreLog("出库:(MO_07_ClampCylinderTighten 夹料气缸1放松 )"); OutStoreLog("出库:(MO_07_ClampCylinderTighten 夹料气缸1放松 )");
int bagWidth = MoveInfo.MoveParam.PlateW; int bagWidth = MoveInfo.MoveParam.PlateW;
if (MoveInfo.MoveParam != null)
{ LogInfo("【" + posId + "】出库时,更新盘空满信息 托盘号【" + MoveInfo.MoveParam.TrayNumber + "】,是否有料盘【" + true + "】,出库入库【" + 2 + "】");
LogInfo("【" + posId + "】出库时,更新盘空满信息 托盘号【" + MoveInfo.MoveParam.TrayNumber + "】,是否有料盘【" + true + "】,出库入库【" + 2 + "】"); TrayManager.UpdateFixtureValue(MoveInfo.MoveParam.TrayNumber, true, 2, MoveInfo.MoveParam.WareCode, MoveInfo.MoveParam.PosId, MoveInfo.MoveParam.PlateH, bagWidth);
TrayManager.UpdateFixtureValue(MoveInfo.MoveParam.TrayNumber, true, 2, bagWidth);
}
else
{
int num = TrayManager.GetNum(DeviceID);
LogInfo("【" + posId + "】出库时,更新盘空满信息 托盘号【" + num + "】,是否有料盘【" + true + "】,出库入库【" + 2 + "】");
TrayManager.UpdateFixtureValue(num, true, 2, bagWidth);
}
//出库全部完成 //出库全部完成
lineStatus = LineStatus.StoreOnline; lineStatus = LineStatus.StoreOnline;
MoveInfo.NextMoveStep(LineMoveStep.MO_59_ClampCylinderTighten); MoveInfo.NextMoveStep(LineMoveStep.MO_59_ClampCylinderTighten);
...@@ -256,7 +249,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -256,7 +249,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.MI_10_WaitBox); MoveInfo.NextMoveStep(LineMoveStep.MI_10_WaitBox);
LogInfo("入库【" + posId + "】处理(等待移栽):(判断box门口没有盘, 且可以入库),更新盘号【" + num + "】为空盘"); LogInfo("入库【" + posId + "】处理(等待移栽):(判断box门口没有盘, 且可以入库),更新盘号【" + num + "】为空盘");
MoveInfo.WaitList.Add(WaitResultInfo.WaitBoxCanReviceTray()); MoveInfo.WaitList.Add(WaitResultInfo.WaitBoxCanReviceTray());
TrayManager.UpdateFixtureValue(num, false, 0); TrayManager.UpdateFixtureValue(num );
//阻挡气缸移动 //阻挡气缸移动
InStoreLog("放托盘(放开阻挡):SecondStoreMove=MO_09_TopCylinder_Down 物品已移走,顶升气缸1下降)"); InStoreLog("放托盘(放开阻挡):SecondStoreMove=MO_09_TopCylinder_Down 物品已移走,顶升气缸1下降)");
...@@ -660,20 +653,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -660,20 +653,7 @@ namespace OnlineStore.DeviceLibrary
#endregion #endregion
private void CheckLog(string msg)
{
LogUtil.debug(Name + msg);
}
private void InStoreLog(string msg)
{
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : "";
LogUtil.info(Name + "【" + posId + "】" + msg);
}
private void OutStoreLog(string msg)
{
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : "";
LogUtil.info(Name + "【" + posId + "】" + msg);
}
} }
} }
...@@ -98,7 +98,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -98,7 +98,7 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo.EndMove(); SecondMoveInfo.EndMove();
MoveInfo.EndMove(); MoveInfo.EndMove();
MoveInfo.NewMove(LineMoveType.ReturnHome); MoveInfo.NewMove(LineMoveType.ReturnHome);
UpdownCylinderStartReset(); StartReset();
return true; return true;
} }
...@@ -113,12 +113,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -113,12 +113,12 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.EndMove(); MoveInfo.EndMove();
SecondMoveInfo.EndMove(); SecondMoveInfo.EndMove();
MoveInfo.NewMove(LineMoveType.Reset); MoveInfo.NewMove(LineMoveType.Reset);
UpdownCylinderStartReset(); StartReset();
return true; return true;
} }
private void UpdownCylinderStartReset() private void StartReset()
{ {
MoveInfo.NextMoveStep(LineMoveStep.MH_UpDownCylinder_Up); MoveInfo.NextMoveStep(LineMoveStep.MH_UpDownCylinder_Up);
CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Down, IO_Type.UpDownCylinder_Up); CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Down, IO_Type.UpDownCylinder_Up);
......
...@@ -19,6 +19,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -19,6 +19,7 @@ namespace OnlineStore.DeviceLibrary
//托盘在两个阻挡内 //托盘在两个阻挡内
if (num > 0) if (num > 0)
{ {
TrayManager.UpdateSWState(Config.SidesWayNum, 2);
SecondMoveInfo.NewMove(LineMoveType.CheckFixture); SecondMoveInfo.NewMove(LineMoveType.CheckFixture);
CheckLog("托盘检测(流水线阻挡)SecondStoreMove:(MIO_03_StopCylinder2Down 阻挡气缸1-1上升)"); CheckLog("托盘检测(流水线阻挡)SecondStoreMove:(MIO_03_StopCylinder2Down 阻挡气缸1-1上升)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_StopCylinder2Down); SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_03_StopCylinder2Down);
...@@ -35,6 +36,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -35,6 +36,7 @@ namespace OnlineStore.DeviceLibrary
//托盘在第一个阻挡处 //托盘在第一个阻挡处
SecondMoveInfo.NewMove(LineMoveType.CheckFixture); SecondMoveInfo.NewMove(LineMoveType.CheckFixture);
SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_01_StopCylinder1Down); SecondMoveInfo.NextMoveStep(LineMoveStep.MIO_01_StopCylinder1Down);
TrayManager.UpdateSWState(Config.SidesWayNum, 2);
CheckLog(" 托盘检测:料盘检测 SecondStoreMove(MIO_01_StopCylinder1Down阻挡气缸1-1下降 ,最多等待1秒)"); CheckLog(" 托盘检测:料盘检测 SecondStoreMove(MIO_01_StopCylinder1Down阻挡气缸1-1下降 ,最多等待1秒)");
IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH); IOMove(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH)); SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.StopCylinder_Down1, IO_VALUE.HIGH));
...@@ -194,12 +196,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -194,12 +196,14 @@ namespace OnlineStore.DeviceLibrary
{ {
CheckLog("托盘放行 SecondStoreMove:(MO_07_WaitCanGo ,移栽2,需要判断是否可以放盘通过,最多等待10000)"); CheckLog("托盘放行 SecondStoreMove:(MO_07_WaitCanGo ,移栽2,需要判断是否可以放盘通过,最多等待10000)");
SecondMoveInfo.NextMoveStep(LineMoveStep.MO_07_WaitCanGo); SecondMoveInfo.NextMoveStep(LineMoveStep.MO_07_WaitCanGo);
if (DeviceID.Equals(2)) //更新横移托盘已处理完成
{ TrayManager.UpdateSWState(Config.SidesWayNum, 1);
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(10000)); //if (DeviceID.Equals(2))
SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitSideWay()); //{
SecondMoveInfo.OneWaitCanEndStep = true; // SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitTime(10000));
} // SecondMoveInfo.WaitList.Add(WaitResultInfo.WaitSideWay());
// SecondMoveInfo.OneWaitCanEndStep = true;
//}
} }
else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_07_WaitCanGo)) else if (SecondMoveInfo.MoveStep.Equals(LineMoveStep.MO_07_WaitCanGo))
...@@ -305,7 +309,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -305,7 +309,7 @@ namespace OnlineStore.DeviceLibrary
MoveInfo.NextMoveStep(LineMoveStep.PO_05_WaitBox); MoveInfo.NextMoveStep(LineMoveStep.PO_05_WaitBox);
LogInfo("出料PO_05_WaitBox【" + posId + "】处理(等待可以移栽) 更新盘号【" + num + "】为空盘"); LogInfo("出料PO_05_WaitBox【" + posId + "】处理(等待可以移栽) 更新盘号【" + num + "】为空盘");
MoveInfo.WaitList.Add(WaitResultInfo.WaitBoxCanReviceTray()); MoveInfo.WaitList.Add(WaitResultInfo.WaitBoxCanReviceTray());
TrayManager.UpdateFixtureValue(num, false, 0); TrayManager.UpdateFixtureValue(num );
//阻挡气缸移动 //阻挡气缸移动
InStoreLog("放托盘(放开阻挡):SecondStoreMove=MO_09_TopCylinder_Down 物品已移走,顶升气缸1下降)"); InStoreLog("放托盘(放开阻挡):SecondStoreMove=MO_09_TopCylinder_Down 物品已移走,顶升气缸1下降)");
...@@ -354,20 +358,6 @@ namespace OnlineStore.DeviceLibrary ...@@ -354,20 +358,6 @@ namespace OnlineStore.DeviceLibrary
} }
#endregion #endregion
private void CheckLog(string msg)
{
LogUtil.debug(Name + msg);
}
private void InStoreLog(string msg)
{
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : "";
LogUtil.info(Name + "【" + posId + "】" + msg);
}
private void OutStoreLog(string msg)
{
string posId = MoveInfo.MoveParam != null ? MoveInfo.MoveParam.PosId : "";
LogUtil.info(Name + "【" + posId + "】" + msg);
}
} }
} }
...@@ -13,9 +13,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -13,9 +13,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 出库时,可以不下降直接放料盘的宽度 /// 出库时,可以不下降直接放料盘的宽度
/// </summary> /// </summary>
public const int CanPushBagWidth = 7; public const int CanPushBagWidth = 7;
/// <summary> /// <summary>
/// 放在公共地方,方便存取,夹料编码盘列表,key=编码(1-6),value=是否有物品,true=有物品 /// 放在公共地方,方便存取,夹料编码盘列表,key=编码(1-6),value=是否有物品,true=有物品
/// </summary> /// </summary>
...@@ -24,11 +22,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -24,11 +22,11 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 流水线需要的空盘数量 /// 流水线需要的空盘数量
/// </summary> /// </summary>
public static int LineNeedEmptyTrayNum = 0; internal static int LineNeedEmptyTrayNum = 0;
/// <summary> /// <summary>
/// 最大托盘号,必须按照顺序从1到6走过 /// 最大托盘号,必须按照顺序从1到6走过
/// </summary> /// </summary>
public static int MaxTrayNum = 0; internal static int MaxTrayNum = 0;
/// <summary> /// <summary>
/// 托盘错误消息 /// 托盘错误消息
/// </summary> /// </summary>
...@@ -43,23 +41,20 @@ namespace OnlineStore.DeviceLibrary ...@@ -43,23 +41,20 @@ namespace OnlineStore.DeviceLibrary
{ {
LineRunTest = ConfigAppSettings.GetIntValue(Setting_Init.LineRunTest).Equals(1); LineRunTest = ConfigAppSettings.GetIntValue(Setting_Init.LineRunTest).Equals(1);
} }
//public static bool isNeedEmptyTray()
//{
// if (LineRunTest)
public static bool isNeedEmptyTray() // {
{ // return true;
if (LineRunTest) // }
{ // return LineNeedEmptyTrayNum > 0;
return true; //}
} internal static void AddNeedEmptyTrayNum()
return LineNeedEmptyTrayNum > 0;
}
public static void AddNeedEmptyTrayNum()
{ {
Interlocked.Increment(ref LineNeedEmptyTrayNum); Interlocked.Increment(ref LineNeedEmptyTrayNum);
} }
public static void DelNeedEmptyTrayNum() internal static void DelNeedEmptyTrayNum()
{ {
Interlocked.Decrement(ref LineNeedEmptyTrayNum); Interlocked.Decrement(ref LineNeedEmptyTrayNum);
} }
...@@ -70,7 +65,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -70,7 +65,7 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
/// <param name="trayNum">盘号1-6</param> /// <param name="trayNum">盘号1-6</param>
/// <returns>盘上是否有料盘</returns> /// <returns>盘上是否有料盘</returns>
public static bool IsFixTureFull(int trayNum) internal static bool IsFixTureFull(int trayNum)
{ {
lock (fixtureMapLock) lock (fixtureMapLock)
{ {
...@@ -103,17 +98,17 @@ namespace OnlineStore.DeviceLibrary ...@@ -103,17 +98,17 @@ namespace OnlineStore.DeviceLibrary
// } // }
// return false; // return false;
//} //}
public static void UpdateFixtureValue(int trayNum, bool isFull, int inOrOut) //public static void UpdateFixtureValue(int trayNum, bool isFull, int inOrOut)
{ //{
UpdateFixtureValue(trayNum, isFull, inOrOut, 0); // UpdateFixtureValue(trayNum, isFull, inOrOut, 0);
} //}
/// <summary> /// <summary>
/// 更新对应的盘号(1-6)是否有料盘 /// 更新对应的盘号(1-6)是否有料盘
/// </summary> /// </summary>
/// <param name="trayNum"></param> /// <param name="trayNum"></param>
/// <param name="isFull"></param> /// <param name="isFull"></param>
/// <param name="inOrOut">0=无操作,1=入库,2=出库</param> /// <param name="inOrOut">0=无操作,1=入库,2=出库</param>
public static void UpdateFixtureValue(int trayNum, bool isFull, int inOrOut, int bagWidth) internal static void UpdateFixtureValue(int trayNum, bool isFull=false, int inOrOut=0, string wareCode = "", string posId = "", int plateH = 0, int plateW = 0)
{ {
lock (fixtureMapLock) lock (fixtureMapLock)
{ {
...@@ -121,11 +116,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -121,11 +116,16 @@ namespace OnlineStore.DeviceLibrary
{ {
fixtureCodeFullMap[trayNum].IsFull = isFull; fixtureCodeFullMap[trayNum].IsFull = isFull;
fixtureCodeFullMap[trayNum].InOrOutStore = inOrOut; fixtureCodeFullMap[trayNum].InOrOutStore = inOrOut;
fixtureCodeFullMap[trayNum].BagWidth = bagWidth;
fixtureCodeFullMap[trayNum].WareCode = wareCode;
fixtureCodeFullMap[trayNum].PosId = posId;
fixtureCodeFullMap[trayNum].PlateH = plateH;
fixtureCodeFullMap[trayNum].PlateW = plateW;
} }
else else
{ {
TrayInfo fixture = new TrayInfo(trayNum, isFull, inOrOut, bagWidth); TrayInfo fixture = new TrayInfo(trayNum, isFull, inOrOut, wareCode, posId, plateH, plateW);
fixtureCodeFullMap.Add(trayNum, fixture); fixtureCodeFullMap.Add(trayNum, fixture);
} }
} }
...@@ -133,7 +133,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -133,7 +133,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 是否还有有料仓的盘 /// 是否还有有料仓的盘
/// </summary> /// </summary>
public static bool IsHasFull() internal static bool IsHasFull()
{ {
foreach (int key in fixtureCodeFullMap.Keys) foreach (int key in fixtureCodeFullMap.Keys)
{ {
...@@ -147,7 +147,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -147,7 +147,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 是否还有有料仓正在出库的盘 /// 是否还有有料仓正在出库的盘
/// </summary> /// </summary>
public static bool IsHasFullOutFixture() internal static bool IsHasFullOutFixture()
{ {
foreach (int key in fixtureCodeFullMap.Keys) foreach (int key in fixtureCodeFullMap.Keys)
{ {
...@@ -159,7 +159,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -159,7 +159,7 @@ namespace OnlineStore.DeviceLibrary
return false; return false;
} }
public static bool RightTrayCode(int trayNum, int preTrayNum, bool isCanUpdateMax) internal static bool RightTrayCode(int trayNum, int preTrayNum, bool isCanUpdateMax)
{ {
int defNext = preTrayNum + 1; int defNext = preTrayNum + 1;
if (preTrayNum.Equals(0) || MaxTrayNum.Equals(0) || trayNum.Equals(defNext)) if (preTrayNum.Equals(0) || MaxTrayNum.Equals(0) || trayNum.Equals(defNext))
...@@ -178,7 +178,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -178,7 +178,7 @@ namespace OnlineStore.DeviceLibrary
return false; return false;
} }
public static void UpdateTrayNumError(int errorStoreID, string errorMsg) internal static void UpdateTrayNumError(int errorStoreID, string errorMsg)
{ {
TrayErrorMsg = errorMsg; TrayErrorMsg = errorMsg;
ErrorStoreId = errorStoreID; ErrorStoreId = errorStoreID;
...@@ -195,6 +195,55 @@ namespace OnlineStore.DeviceLibrary ...@@ -195,6 +195,55 @@ namespace OnlineStore.DeviceLibrary
return subType; return subType;
} }
#region 横移状态缓存
internal static Dictionary<int, int> SidesWayStateMap = new Dictionary<int, int>();
internal static object swMapLock = "";
internal static bool CanMoveSidesWay(int swNum)
{
if (SidesWayStateMap.ContainsKey(swNum))
{
if (SidesWayStateMap[swNum].Equals(1))
{
return true;
}
else if (swNum.Equals(1) || swNum.Equals(2))
{
if (SidesWayStateMap[swNum].Equals(0))
{
return true;
}
}
}
return false;
}
/// <summary>
/// 更新横移托盘的处理状态
/// </summary>
/// <param name="swNum">横移编号</param>
/// <param name="value">0=未处理等待中,1=托盘处理完成,可处理横移,2=托盘正在处理中</param>
internal static void UpdateSWState(int swNum,int value)
{
if (swNum <= 0)
{
return;
}
lock (swMapLock)
{
if (SidesWayStateMap.ContainsKey(swNum))
{
SidesWayStateMap[swNum] = value;
}
else
{
SidesWayStateMap.Add(swNum, value);
}
}
}
#endregion
} }
} }
...@@ -38,7 +38,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -38,7 +38,7 @@ namespace OnlineStore.DeviceLibrary
ConfigIO configIo = GetDI(ioType,subType ); ConfigIO configIo = GetDI(ioType,subType );
if (configIo == null) if (configIo == null)
{ {
configIo = GetDO(ioType, subType); configIo = GetDO(ioType, subType);
} }
if (configIo != null) if (configIo != null)
...@@ -88,9 +88,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -88,9 +88,10 @@ namespace OnlineStore.DeviceLibrary
{ {
if (LineManager.allConfigMap.ContainsKey(subType)) if (LineManager.allConfigMap.ContainsKey(subType))
{ {
if (LineManager.allConfigMap[subType].DIList.ContainsKey(ioType)) string newType = ioType.Replace("SW1_", "SW_").Replace("SW2_", "SW_").Replace("SW3_", "SW_").Replace("SW4_", "SW_");
if (LineManager.allConfigMap[subType].DIList.ContainsKey(newType))
{ {
return LineManager.allConfigMap[subType].DIList[ioType]; return LineManager.allConfigMap[subType].DIList[newType];
} }
} }
...@@ -111,9 +112,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -111,9 +112,10 @@ namespace OnlineStore.DeviceLibrary
{ {
if (LineManager.allConfigMap.ContainsKey(subType)) if (LineManager.allConfigMap.ContainsKey(subType))
{ {
if (LineManager.allConfigMap[subType].DOList.ContainsKey(ioType)) string newType=ioType.Replace("SW1_", "SW_").Replace("SW2_", "SW_").Replace("SW3_", "SW_").Replace("SW4_", "SW_");
if (LineManager.allConfigMap[subType].DOList.ContainsKey(newType))
{ {
return LineManager.allConfigMap[subType].DOList[ioType]; return LineManager.allConfigMap[subType].DOList[newType];
} }
} }
......
...@@ -380,9 +380,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -380,9 +380,9 @@ namespace OnlineStore.DeviceLibrary
#region 横移轨道处理 5000 开始 #region 横移轨道处理 5000 开始
SW00_Wait=5000, SW00_Wait=5000,
/// <summary> /// <summary>
/// 阻挡气缸下降 /// 定位气缸下降
/// </summary> /// </summary>
SW01_StopCylinderDown=5001, SW01_LocationCylinderDown=5001,
/// <summary> /// <summary>
/// 等待轨道1夹具检测信号 /// 等待轨道1夹具检测信号
......
...@@ -12,14 +12,22 @@ namespace OnlineStore.DeviceLibrary ...@@ -12,14 +12,22 @@ namespace OnlineStore.DeviceLibrary
public class TrayInfo public class TrayInfo
{ {
public TrayInfo(int trayNum, bool isFull, int inOrOut, int bagWidth) public TrayInfo(int trayNum, bool isFull=false, int inOrOut=0 )
{ {
this.TrayCode = trayNum; this.TrayCode = trayNum;
this.IsFull = isFull; this.IsFull = isFull;
this.InOrOutStore = inOrOut; this.InOrOutStore = inOrOut;
BagWidth = bagWidth;
} }
public TrayInfo (int trayNum, bool isFull , int inOrOut ,string wareCode,string posId,int plateH,int plateW)
{
this.TrayCode = trayNum;
this.IsFull = isFull;
this.InOrOutStore = inOrOut;
this.WareCode = wareCode;
this.PosId = posId;
this.PlateH = plateH;
this.PlateW = plateW;
}
/// <summary> /// <summary>
/// 夹具编码值(1-6) /// 夹具编码值(1-6)
/// </summary> /// </summary>
...@@ -31,11 +39,23 @@ namespace OnlineStore.DeviceLibrary ...@@ -31,11 +39,23 @@ namespace OnlineStore.DeviceLibrary
/// <summary> /// <summary>
/// 出库还是入库(有料盘时才有此操作)0=无操作,1=入库,2=出库 /// 出库还是入库(有料盘时才有此操作)0=无操作,1=入库,2=出库
/// </summary> /// </summary>
public int InOrOutStore { get; set; } public int InOrOutStore { get; set; }
/// <summary>
/// 如果是出库,需要记录盘宽,七寸小盘可以累积到托盘上 /// <summary>
/// 只有出库才会有值 /// 物品二维码信息
/// </summary> /// </summary>
public int BagWidth { get; set; } public string WareCode { get; set; }
/// <summary>
/// 位置坐标名(对应配置表的位置)
/// </summary>
public string PosId { get; set; }
/// <summary>
/// 料盘高度
/// </summary>
public int PlateH { get; set; }
/// <summary>
/// 料盘宽度
/// </summary>
public int PlateW { get; set; }
} }
} }
...@@ -85,6 +85,14 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -85,6 +85,14 @@ namespace OnlineStore.LoadCSVLibrary
public class ConfigMoveAxis : ConfigBase public class ConfigMoveAxis : ConfigBase
{ {
/// <summary> /// <summary>
/// 伺服ON的Do信号
/// </summary>
public string ServerOnDO ="" ;
/// <summary>
/// 伺服刹车信号
/// </summary>
public string BreakOnDO = "";
/// <summary>
/// 使用AC伺服时表示串口号,使用康泰克运动版表示板卡名称 /// 使用AC伺服时表示串口号,使用康泰克运动版表示板卡名称
/// </summary> /// </summary>
[CSVAttribute("设备名称")] [CSVAttribute("设备名称")]
......
...@@ -143,8 +143,7 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -143,8 +143,7 @@ namespace OnlineStore.LoadCSVLibrary
/// </summary> /// </summary>
[ConfigProAttribute("UpdownAxis_HomeAddSpeed", false)] [ConfigProAttribute("UpdownAxis_HomeAddSpeed", false)]
public int UpdownAxis_HomeAddSpeed { get; set; } public int UpdownAxis_HomeAddSpeed { get; set; }
/// <summary> /// <summary>
/// PRO,0,移栽上下轴走到待机点速度,UpdownAxis_P1Speed,400,,,,, /// PRO,0,移栽上下轴走到待机点速度,UpdownAxis_P1Speed,400,,,,,
...@@ -157,7 +156,11 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -157,7 +156,11 @@ namespace OnlineStore.LoadCSVLibrary
[ConfigProAttribute("UpdownAxis_DownSpeed", false)] [ConfigProAttribute("UpdownAxis_DownSpeed", false)]
public int UpdownAxis_DownSpeed { get; set; } public int UpdownAxis_DownSpeed { get; set; }
/// <summary>
/// PRO,0,是否是用来出料,IsCanOut,1,,,,,
/// </summary>
[ConfigProAttribute("IsCanOut", false)]
public int IsCanOut { get; set; }
private Dictionary<int, int> UpDownPositionMap = null; private Dictionary<int, int> UpDownPositionMap = null;
public int GetUpdownPosition(int trayHeight) public int GetUpdownPosition(int trayHeight)
...@@ -277,12 +280,18 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -277,12 +280,18 @@ namespace OnlineStore.LoadCSVLibrary
this.Batch_Axis.HomeHighSpeed = this.BatchAxis_HomeHighSpeed; this.Batch_Axis.HomeHighSpeed = this.BatchAxis_HomeHighSpeed;
this.Batch_Axis.HomeLowSpeed = this.BatchAxis_HomeLowSpeed; this.Batch_Axis.HomeLowSpeed = this.BatchAxis_HomeLowSpeed;
this.Batch_Axis.ServerOnDO = IO_Type.BatchAxis_ServoOn;
this.Batch_Axis.BreakOnDO = IO_Type.BatchAxis_BreakOn;
this.UpDown_Axis.TargetSpeed = this.UpdownAxis_TargetSpeed; this.UpDown_Axis.TargetSpeed = this.UpdownAxis_TargetSpeed;
this.UpDown_Axis.AddSpeed = this.UpdownAxis_AddSpeed; this.UpDown_Axis.AddSpeed = this.UpdownAxis_AddSpeed;
this.UpDown_Axis.DelSpeed = this.UpdownAxis_DelSpeed; this.UpDown_Axis.DelSpeed = this.UpdownAxis_DelSpeed;
this.UpDown_Axis.HomeAddSpeed = this.UpdownAxis_HomeAddSpeed; this.UpDown_Axis.HomeAddSpeed = this.UpdownAxis_HomeAddSpeed;
this.UpDown_Axis.HomeHighSpeed = this.UpdownAxis_HomeHighSpeed; this.UpDown_Axis.HomeHighSpeed = this.UpdownAxis_HomeHighSpeed;
this.UpDown_Axis.HomeLowSpeed = this.UpdownAxis_HomeLowSpeed; this.UpDown_Axis.HomeLowSpeed = this.UpdownAxis_HomeLowSpeed;
this.UpDown_Axis.ServerOnDO = IO_Type.UpDownAxis_ServoOn;
this.UpDown_Axis.BreakOnDO = IO_Type.UpDownAxis_BreakOn;
} }
} }
} }
...@@ -626,15 +626,15 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -626,15 +626,15 @@ namespace OnlineStore.LoadCSVLibrary
/// DI /DO FL1顶升下降端 FL_TopCylinder_Down X174 /// DI /DO FL1顶升下降端 FL_TopCylinder_Down X174
/// </summary> /// </summary>
public static string FL_TopCylinder_Down = "FL_TopCylinder_Down"; public static string FL_TopCylinder_Down = "FL_TopCylinder_Down";
/// <summary> /// <summary>
/// DO FL1阻挡1下降SOL FL_Stop1Down Y165 /// DO FL1阻挡1下降SOL FL_StopCylinder_Down1 Y165
/// </summary> /// </summary>
public static string FL_Stop1Down = "FL_Stop1Down"; public static string FL_StopCylinder_Down1 = "FL_StopCylinder_Down1";
/// <summary> /// <summary>
/// DO FL1阻挡2下降SOL FL_Stop2Down Y166 /// DO FL1阻挡2下降SOL FL_StopCylinder_Down2 Y166
/// </summary> /// </summary>
public static string FL_Stop2Down = "FL_Stop2Down"; public static string FL_StopCylinder_Down2 = "FL_StopCylinder_Down2";
#endregion #endregion
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!