Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-ACPackingStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 80239c85
由
张东亮
编写于
2023-09-14 11:45:55 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
入库到库位失败,重新放下
1 个父辈
ef130e32
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
213 行增加
和
55 行删除
source/DeviceLibrary/PackingStore/AC_BOX_Bean_InStore.cs
source/DeviceLibrary/PackingStore/PackingStoreBean.cs
source/DeviceLibrary/PackingStore/StoreManager.cs
source/DeviceLibrary/StoreConfig/BoxConfig_1.csv
source/DeviceLibrary/StoreConfig/BoxConfig_2.csv
source/DeviceLibrary/store/KTK_Store.cs
source/DeviceLibrary/PackingStore/AC_BOX_Bean_InStore.cs
查看文件 @
80239c8
...
@@ -302,7 +302,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -302,7 +302,7 @@ namespace OnlineStore.DeviceLibrary
else
else
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_21_ToScanPosition
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_21_ToScanPosition
);
InOutStoreLog
(
"扫码,升降轴到P2,旋转轴到P1
"
);
InOutStoreLog
(
$
"扫码,升降轴到P2[{moveP.UpDown_P2}],旋转轴到P1[{moveP.Middle_P1}]
"
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P2
,
Config
.
UpDownAxis_P1_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P2
,
Config
.
UpDownAxis_P1_Speed
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
}
}
...
@@ -310,21 +310,21 @@ namespace OnlineStore.DeviceLibrary
...
@@ -310,21 +310,21 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_21_ToScanPosition
))
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_21_ToScanPosition
))
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_22_InOutToP2
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_22_InOutToP2
);
InOutStoreLog
(
"扫码,进出轴到P2
"
);
InOutStoreLog
(
$
"扫码,进出轴到P2[{moveP.InOut_P2}]
"
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
);
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_22_InOutToP2
))
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_22_InOutToP2
))
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_23_PutTrayDown
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_23_PutTrayDown
);
InOutStoreLog
(
"扫码,升降轴到扫码低点P1,压紧轴到最大压紧前点P3
"
);
InOutStoreLog
(
$
"扫码,升降轴到扫码低点P1[{moveP.UpDown_P1}],压紧轴到最大压紧前点P3[{Config.CompAxis_Max_P3}]
"
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P2_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P2_Speed
);
ACAxisMove
(
Config
.
Comp_Axis
,
Config
.
CompAxis_Max_P3
,
Config
.
CompAxis_P3_Speed
);
ACAxisMove
(
Config
.
Comp_Axis
,
Config
.
CompAxis_Max_P3
,
Config
.
CompAxis_P3_Speed
);
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_23_PutTrayDown
))
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_23_PutTrayDown
))
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_24_InOutToP1
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_24_InOutToP1
);
InOutStoreLog
(
"扫码,进出轴返回待机点P1
"
);
InOutStoreLog
(
$
"扫码,进出轴返回待机点P1[{moveP.InOut_P1}]
"
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P1
,
Config
.
CompAxis_P1_Speed
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P1
,
Config
.
CompAxis_P1_Speed
);
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_24_InOutToP1
))
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_24_InOutToP1
))
...
@@ -376,21 +376,21 @@ namespace OnlineStore.DeviceLibrary
...
@@ -376,21 +376,21 @@ namespace OnlineStore.DeviceLibrary
//else
//else
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_27_InoutToP2
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_27_InoutToP2
);
InOutStoreLog
(
"扫码,进出轴到P2
"
);
InOutStoreLog
(
$
"扫码,进出轴到P2[{moveP.InOut_P2}]
"
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P2
,
Config
.
InOutAxis_P2_Speed
);
}
}
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_27_InoutToP2
))
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_27_InoutToP2
))
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_28_GetScanPTray
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_28_GetScanPTray
);
InOutStoreLog
(
"扫码,升降轴到扫码高P2,压紧轴到压紧点P2
"
);
InOutStoreLog
(
$
"扫码,升降轴到扫码高P2[{moveP.UpDown_P2}],压紧轴到压紧点P2[{moveP.ComPress_P2}]
"
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P2
,
Config
.
UpDownAxis_P2_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P2
,
Config
.
UpDownAxis_P2_Speed
);
ACAxisMove
(
Config
.
Comp_Axis
,
moveP
.
ComPress_P2
,
Config
.
CompAxis_P2_Speed
);
ACAxisMove
(
Config
.
Comp_Axis
,
moveP
.
ComPress_P2
,
Config
.
CompAxis_P2_Speed
);
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_28_GetScanPTray
))
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_28_GetScanPTray
))
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_29_InoutBackP1
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_29_InoutBackP1
);
InOutStoreLog
(
"扫码,进出轴返回
"
);
InOutStoreLog
(
$
"扫码,进出轴返回P1[{moveP.InOut_P1}]
"
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P1
,
Config
.
InOutAxis_P1_Speed
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P1
,
Config
.
InOutAxis_P1_Speed
);
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_29_InoutBackP1
))
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_29_InoutBackP1
))
...
@@ -436,13 +436,13 @@ namespace OnlineStore.DeviceLibrary
...
@@ -436,13 +436,13 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_51_MoveToBag
))
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_51_MoveToBag
))
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_52_DeviceToBag
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_52_DeviceToBag
);
InOutStoreLog
(
"叉子进入库位中,进出轴到库位P3
"
);
InOutStoreLog
(
$
"叉子进入库位中,进出轴到库位P3[{moveP.InOut_P3}]
"
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P3
,
Config
.
InOutAxis_P3_Speed
);
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_52_DeviceToBag
))
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_52_DeviceToBag
))
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_53_PutWareToBag
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_53_PutWareToBag
);
InOutStoreLog
(
"放下物品,升降轴到库位缓冲点P4,压紧轴到P3
"
);
InOutStoreLog
(
$
"放下物品,升降轴到库位缓冲点P4[{moveP.UpDown_P4}],压紧轴到P3[{moveP.ComPress_P3}]
"
);
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
// 5= 入仓位完成(料仓Box把料盘放入对应的库位中,装置还未恢复原始状态)
string
posId
=
MoveInfo
.
MoveParam
!=
null
?
MoveInfo
.
MoveParam
.
PosID
:
""
;
string
posId
=
MoveInfo
.
MoveParam
!=
null
?
MoveInfo
.
MoveParam
.
PosID
:
""
;
...
@@ -457,16 +457,26 @@ namespace OnlineStore.DeviceLibrary
...
@@ -457,16 +457,26 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_53_PutWareToBag
))
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_53_PutWareToBag
))
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_54_DeviceBackFromBag
);
if
(
ACAxisIsInPositon
(
Config
.
Comp_Axis
,
moveP
.
ComPress_P3
)
&&
ACAxisIsInPositon
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P4
))
InOutStoreLog
(
"叉子从库位中返回,进出轴到P1"
);
{
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P1
,
Config
.
InOutAxis_P1_Speed
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_54_DeviceBackFromBag
);
InOutStoreLog
(
$
"叉子从库位中返回,进出轴到P1[{moveP.InOut_P1}]"
);
ACAxisMove
(
Config
.
InOut_Axis
,
moveP
.
InOut_P1
,
Config
.
InOutAxis_P1_Speed
);
}
else
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_53_PutWareToBag
);
InOutStoreLog
(
$
"放下物品失败,重新放下,升降轴到库位缓冲点P4[{moveP.UpDown_P4}],压紧轴到P3[{moveP.ComPress_P3}]"
);
ACAxisMove
(
Config
.
Comp_Axis
,
moveP
.
ComPress_P3
,
Config
.
CompAxis_P3_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P4
,
Config
.
UpDownAxis_P4_Speed
);
}
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_54_DeviceBackFromBag
))
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
StoreMoveStep
.
BI_54_DeviceBackFromBag
))
{
{
if
(
MoveInfo
.
SingleInstore
)
if
(
MoveInfo
.
SingleInstore
)
{
{
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_55_GoBack
);
MoveInfo
.
NextMoveStep
(
StoreMoveStep
.
BI_55_GoBack
);
InOutStoreLog
(
"返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始"
);
InOutStoreLog
(
$
"返回待机点,轴2/轴1/轴4动作至P1( 待机点))开始"
);
ACAxisMove
(
Config
.
Comp_Axis
,
moveP
.
ComPress_P1
,
Config
.
CompAxis_P1_Speed
);
ACAxisMove
(
Config
.
Comp_Axis
,
moveP
.
ComPress_P1
,
Config
.
CompAxis_P1_Speed
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
ACAxisMove
(
Config
.
Middle_Axis
,
moveP
.
Middle_P1
,
Config
.
MiddleAxis_P1_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
ACAxisMove
(
Config
.
UpDown_Axis
,
moveP
.
UpDown_P1
,
Config
.
UpDownAxis_P1_Speed
);
...
...
source/DeviceLibrary/PackingStore/PackingStoreBean.cs
查看文件 @
80239c8
using
Asa
;
using
Asa
;
using
log4net
;
using
log4net
;
using
log4net.Repository.Hierarchy
;
using
log4net.Util
;
using
OnlineStore.Common
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System
;
...
@@ -7,6 +9,7 @@ using System.Collections.Generic;
...
@@ -7,6 +9,7 @@ using System.Collections.Generic;
using
System.Drawing
;
using
System.Drawing
;
using
System.Linq
;
using
System.Linq
;
using
System.Net
;
using
System.Net
;
using
System.Security.Cryptography.X509Certificates
;
using
System.Text
;
using
System.Text
;
using
System.Threading
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Threading.Tasks
;
...
@@ -221,14 +224,131 @@ namespace OnlineStore.DeviceLibrary
...
@@ -221,14 +224,131 @@ namespace OnlineStore.DeviceLibrary
}
}
#
region
灯光处理
#
region
灯光处理
//private void LedProcess(object sender, ElapsedEventArgs e)
//{
// try
// {
// DateTime time = DateTime.Now;
// bool isNeedAlarmLed = false;
// bool isInOut = false;
// StoreRunStatus runs = StoreRunStatus.Wait;
// foreach (AC_BOX_Bean box in BoxMap.Values)
// {
// if (!box.alarmType.Equals(StoreAlarmType.None))
// {
// isNeedAlarmLed = true;
// }
// if (box.MoveInfo.MoveType.Equals(StoreMoveType.InStore) || box.MoveInfo.MoveType.Equals(StoreMoveType.OutStore))
// {
// isInOut = true;
// }
// if (box.storeRunStatus > runs)
// {
// runs = box.storeRunStatus;
// }
// }
// //黄灯
// if (runs.Equals(StoreRunStatus.HomeMoving) || runs.Equals(StoreRunStatus.Reset))
// {
// //开机执行中时黄灯闪烁
// if (IsDoValue(IO_Type.RunSign_HddLed, IO_VALUE.HIGH))
// {
// IOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
// }
// else
// {
// IOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH);
// }
// }
// else if (isInOut)
// {
// IOMove(IO_Type.RunSign_HddLed, IO_VALUE.HIGH);
// }
// else
// {
// if (IsDoValue(IO_Type.RunSign_HddLed, IO_VALUE.HIGH))
// {
// IOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
// }
// }
// if (alarmType.Equals(StoreAlarmType.None).Equals(false) || isNoAirCheck || isInSuddenDown)
// {
// isNeedAlarmLed = true;
// }
// //忙碌中,判断是否有移栽在出入库执行 绿灯灭
// if (isInOut)
// {
// IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.LOW);
// }
// else
// {
// IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
// }
// //报警中 ,红灯闪烁
// if (isNeedAlarmLed)
// {
// if (IsDoValue(IO_Type.Alarm_HddLed, IO_VALUE.LOW))
// {
// IOMove(IO_Type.Alarm_HddLed, IO_VALUE.HIGH);
// }
// else
// {
// IOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
// }
// }
// else if (IsDoValue(IO_Type.Alarm_HddLed, IO_VALUE.HIGH))
// {
// IOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
// }
// }
// catch (Exception ex)
// {
// LogUtil.error(Name + "灯处理定时器出错:" + ex.ToString());
// }
// Thread.Sleep(5);
//}
bool
TempOrHumidityIsAlarm
=
false
;
DateTime
TempAlarmTime
=
DateTime
.
Now
;
bool
isPro
=
false
;
private
void
LedProcess
(
object
sender
,
ElapsedEventArgs
e
)
private
void
LedProcess
(
object
sender
,
ElapsedEventArgs
e
)
{
{
if
(
isPro
)
{
return
;
}
isInPro
=
true
;
try
try
{
{
// 机器状态 顶灯显示
// 绿 黄 红
//机器复位中 闪 灭 灭
//机器待机中 亮 灭 灭
//机器出入库中 闪 闪 灭
//温湿度超限报警中 亮 闪 灭
//温湿度超限报警中超过30分钟 亮 闪 闪
//机器未启动 灭 灭 灭
//机器设备故障(非温湿度)报警 亮 灭 闪
//报警时只需要亮红灯
DateTime
time
=
DateTime
.
Now
;
DateTime
time
=
DateTime
.
Now
;
bool
isNeedAlarmLed
=
false
;
bool
isTemp30M
=
false
;
if
(
TempOrHumidityIsAlarm
)
{
TimeSpan
span
=
DateTime
.
Now
-
TempAlarmTime
;
if
(
span
.
Minutes
>
30
)
{
isTemp30M
=
true
;
}
}
bool
isInOut
=
false
;
bool
isInOut
=
false
;
StoreRunStatus
runs
=
StoreRunStatus
.
Wait
;
bool
isNeedAlarmLed
=
false
;
StoreRunStatus
runs
=
storeRunStatus
;
foreach
(
AC_BOX_Bean
box
in
BoxMap
.
Values
)
foreach
(
AC_BOX_Bean
box
in
BoxMap
.
Values
)
{
{
...
@@ -244,71 +364,78 @@ namespace OnlineStore.DeviceLibrary
...
@@ -244,71 +364,78 @@ namespace OnlineStore.DeviceLibrary
{
{
runs
=
box
.
storeRunStatus
;
runs
=
box
.
storeRunStatus
;
}
}
if
(
isNeedAlarmLed
||
isInOut
)
break
;
}
}
//
黄
灯
//
报警
灯
if
(
runs
.
Equals
(
StoreRunStatus
.
HomeMoving
)
||
runs
.
Equals
(
StoreRunStatus
.
Reset
)
)
if
(
!
alarmType
.
Equals
(
StoreAlarmType
.
None
)
||
isTemp30M
)
{
{
//开机执行中时黄灯闪烁
isNeedAlarmLed
=
true
;
if
(
IsDoValue
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
HIGH
))
{
IOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
}
else
{
IOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
HIGH
);
}
}
}
else
if
(
isInOut
)
if
(
isNeedAlarmLed
&&
IOValue
(
IO_Type
.
Alarm_HddLed
).
Equals
(
IO_VALUE
.
LOW
)
)
{
{
IOMove
(
IO_Type
.
RunSign
_HddLed
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
Alarm
_HddLed
,
IO_VALUE
.
HIGH
);
}
}
else
else
{
{
if
(
I
sDoValue
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
HIGH
))
if
(
I
OValue
(
IO_Type
.
Alarm_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
IOMove
(
IO_Type
.
RunSign
_HddLed
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
Alarm
_HddLed
,
IO_VALUE
.
LOW
);
}
}
}
}
if
(
alarmType
.
Equals
(
StoreAlarmType
.
None
).
Equals
(
false
)
||
isNoAirCheck
||
isInSuddenDown
)
//报警时绿灯和黄灯灭
if
(
isNeedAlarmLed
)
{
{
isNeedAlarmLed
=
true
;
if
(
IOValue
(
IO_Type
.
AutoRun_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
IOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
LOW
);
}
if
(
IOValue
(
IO_Type
.
RunSign_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
IOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
LOW
);
}
return
;
}
}
//忙碌中,判断是否有移栽在出入库执行 绿灯灭
//绿灯闪
if
(
isInOut
)
if
((
isInOut
||
runs
.
Equals
(
StoreRunStatus
.
HomeMoving
)
||
runs
.
Equals
(
StoreRunStatus
.
Reset
))
&&
IOValue
(
IO_Type
.
AutoRun_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
IOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
LOW
);
}
}
else
else
{
{
//绿灯亮
IOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
AutoRun_HddLed
,
IO_VALUE
.
HIGH
);
}
}
//黄灯
//报警中 ,红灯闪烁
if
(
isInOut
||
TempOrHumidityIsAlarm
||
isTemp30M
)
if
(
isNeedAlarmLed
)
{
{
if
(
I
sDoValue
(
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
))
if
(
I
OValue
(
IO_Type
.
RunSign_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
{
IOMove
(
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
}
}
else
else
{
{
IOMove
(
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
HIGH
);
}
}
}
}
else
if
(
IsDoValue
(
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
HIGH
))
else
{
{
IOMove
(
IO_Type
.
Alarm_HddLed
,
IO_VALUE
.
LOW
);
if
(
IOValue
(
IO_Type
.
RunSign_HddLed
).
Equals
(
IO_VALUE
.
HIGH
))
{
IOMove
(
IO_Type
.
RunSign_HddLed
,
IO_VALUE
.
LOW
);
}
}
}
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
LogUtil
.
error
(
Name
+
"灯处理定时器出错:"
+
ex
.
ToString
());
Common
.
LogUtil
.
error
(
Name
+
"灯处理定时器出错:"
,
ex
);
}
finally
{
isInPro
=
false
;
}
}
Thread
.
Sleep
(
5
);
}
}
private
bool
IsDoValue
(
string
ioType
,
IO_VALUE
ioValue
)
private
bool
IsDoValue
(
string
ioType
,
IO_VALUE
ioValue
)
...
...
source/DeviceLibrary/PackingStore/StoreManager.cs
查看文件 @
80239c8
...
@@ -240,7 +240,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -240,7 +240,7 @@ namespace OnlineStore.DeviceLibrary
p
.
UpDown_P5
=
position
.
UpdownAxis_OH_P5
;
p
.
UpDown_P5
=
position
.
UpdownAxis_OH_P5
;
p
.
UpDown_P6
=
position
.
UpdownAxis_OL_P6
;
p
.
UpDown_P6
=
position
.
UpdownAxis_OL_P6
;
param
.
MoveP
=
p
;
param
.
MoveP
=
p
;
LogUtil
.
info
(
$
"加载[{param.PosID}]位置信息:{JsonHelper.SerializeObject(p)}"
);
return
true
;
return
true
;
}
}
...
...
source/DeviceLibrary/StoreConfig/BoxConfig_1.csv
查看文件 @
80239c8
...
@@ -5,6 +5,10 @@ DI,气压检测,Airpressure_Check,2,PRO_AOI_IP_1,0,门禁,X03,DI-03,0,
...
@@ -5,6 +5,10 @@ DI,气压检测,Airpressure_Check,2,PRO_AOI_IP_1,0,门禁,X03,DI-03,0,
DI,L侧门禁,DoorLimit,3,PRO_AOI_IP_1,0,料盘检测1(进料口),X04,DI-04,0,
DI,L侧门禁,DoorLimit,3,PRO_AOI_IP_1,0,料盘检测1(进料口),X04,DI-04,0,
DI,L侧仓位调试,PositionDebug,5,PRO_AOI_IP_1,0,L侧仓位调试,X06,DI-06,0,
DI,L侧仓位调试,PositionDebug,5,PRO_AOI_IP_1,0,L侧仓位调试,X06,DI-06,0,
DI,L侧线体空料架检测,EmptyShelf_Check,7,PRO_AOI_IP_1,0,线体空料架检测1,X08,DI-08,0,
DI,L侧线体空料架检测,EmptyShelf_Check,7,PRO_AOI_IP_1,0,线体空料架检测1,X08,DI-08,0,
DO,自动指示灯,AutoRun_HddLed,0,PRO_AOI_IP_1,0,自动指示灯,Y01,DO-01,0,
DO,故障指示灯,Alarm_HddLed,1,PRO_AOI_IP_1,0,故障指示灯,Y02,DO-02,0,
DO,待机指示灯,RunSign_HddLed,2,PRO_AOI_IP_1,0,待机指示灯,Y03,DO-03,0,
DO,报警蜂鸣器,Alarm_Buzzer,3,PRO_AOI_IP_1,0,报警蜂鸣器,Y04,DO-04,0,
DO,NG料线体电机运转,NGLine_Run,4,PRO_AOI_IP_1,0,NG料线体电机运转,Y05,DO-05,0,
DO,NG料线体电机运转,NGLine_Run,4,PRO_AOI_IP_1,0,NG料线体电机运转,Y05,DO-05,0,
DO,NG料线体电机反转,NGLine_BackRun,5,PRO_AOI_IP_1,0,NG料线体电机反转,Y06,DO-06,0,
DO,NG料线体电机反转,NGLine_BackRun,5,PRO_AOI_IP_1,0,NG料线体电机反转,Y06,DO-06,0,
,,,,,,,,,,
,,,,,,,,,,
...
...
source/DeviceLibrary/StoreConfig/BoxConfig_2.csv
查看文件 @
80239c8
...
@@ -5,6 +5,10 @@ DI,气压检测,Airpressure_Check,2,PRO_AOI_IP_1,0,门禁,X03,DI-03,0,
...
@@ -5,6 +5,10 @@ DI,气压检测,Airpressure_Check,2,PRO_AOI_IP_1,0,门禁,X03,DI-03,0,
DI,R侧门禁,DoorLimit,4,PRO_AOI_IP_1,0,料盘检测2(料叉),X05,DI-05,0,
DI,R侧门禁,DoorLimit,4,PRO_AOI_IP_1,0,料盘检测2(料叉),X05,DI-05,0,
DI,R侧仓位调试,PositionDebug,6,PRO_AOI_IP_1,0,R侧仓位调试,X07,DI-07,0,
DI,R侧仓位调试,PositionDebug,6,PRO_AOI_IP_1,0,R侧仓位调试,X07,DI-07,0,
DI,R侧线体空料架检测,EmptyShelf_Check,8,PRO_AOI_IP_1,0,线体空料架检测2,X09,DI-09,0,
DI,R侧线体空料架检测,EmptyShelf_Check,8,PRO_AOI_IP_1,0,线体空料架检测2,X09,DI-09,0,
DO,自动指示灯,AutoRun_HddLed,0,PRO_AOI_IP_1,0,自动指示灯,Y01,DO-01,0,
DO,故障指示灯,Alarm_HddLed,1,PRO_AOI_IP_1,0,故障指示灯,Y02,DO-02,0,
DO,待机指示灯,RunSign_HddLed,2,PRO_AOI_IP_1,0,待机指示灯,Y03,DO-03,0,
DO,报警蜂鸣器,Alarm_Buzzer,3,PRO_AOI_IP_1,0,报警蜂鸣器,Y04,DO-04,0,
DO,NG料线体电机运转,NGLine_Run,4,PRO_AOI_IP_1,0,NG料线体电机运转,Y05,DO-05,0,
DO,NG料线体电机运转,NGLine_Run,4,PRO_AOI_IP_1,0,NG料线体电机运转,Y05,DO-05,0,
DO,NG料线体电机反转,NGLine_BackRun,5,PRO_AOI_IP_1,0,NG料线体电机反转,Y06,DO-06,0,
DO,NG料线体电机反转,NGLine_BackRun,5,PRO_AOI_IP_1,0,NG料线体电机反转,Y06,DO-06,0,
,,,,,,,,,,
,,,,,,,,,,
...
...
source/DeviceLibrary/store/KTK_Store.cs
查看文件 @
80239c8
...
@@ -125,7 +125,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -125,7 +125,7 @@ namespace OnlineStore.DeviceLibrary
protected
object
isInPro
=
new
object
();
protected
object
isInPro
=
new
object
();
protected
virtual
void
BusyMoveProcess
()
protected
virtual
void
BusyMoveProcess
()
{
{
if
(
Monitor
.
TryEnter
(
isInPro
))
if
(
Monitor
.
TryEnter
(
isInPro
))
{
{
try
try
{
{
...
@@ -136,15 +136,15 @@ namespace OnlineStore.DeviceLibrary
...
@@ -136,15 +136,15 @@ namespace OnlineStore.DeviceLibrary
break
;
break
;
case
StoreMoveType
.
OutStore
:
case
StoreMoveType
.
OutStore
:
OutStoreProcess
();
OutStoreProcess
();
break
;
break
;
case
StoreMoveType
.
ReturnHome
:
case
StoreMoveType
.
ReturnHome
:
ResetProcess
();
ResetProcess
();
break
;
break
;
case
StoreMoveType
.
StoreReset
:
case
StoreMoveType
.
StoreReset
:
ResetProcess
();
ResetProcess
();
break
;
break
;
case
StoreMoveType
.
CheckPos
:
case
StoreMoveType
.
CheckPos
:
InOuTestProcess
();
InOuTestProcess
();
...
@@ -156,7 +156,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -156,7 +156,8 @@ namespace OnlineStore.DeviceLibrary
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
LogUtil
.
error
(
"BusyMoveProcess出错:"
+
ex
.
ToString
());
LogUtil
.
error
(
"BusyMoveProcess出错:"
+
ex
.
ToString
());
}
finally
}
finally
{
{
Monitor
.
Exit
(
isInPro
);
Monitor
.
Exit
(
isInPro
);
}
}
...
@@ -252,7 +253,18 @@ namespace OnlineStore.DeviceLibrary
...
@@ -252,7 +253,18 @@ namespace OnlineStore.DeviceLibrary
moveAxis
.
TargetPosition
=
targetPosition
;
moveAxis
.
TargetPosition
=
targetPosition
;
ACServerManager
.
AbsMove
(
moveAxis
.
DeviceName
,
moveAxis
.
GetAxisValue
(),
targetPosition
,
targetSpeed
);
ACServerManager
.
AbsMove
(
moveAxis
.
DeviceName
,
moveAxis
.
GetAxisValue
(),
targetPosition
,
targetSpeed
);
}
}
protected
bool
ACAxisIsInPositon
(
ConfigMoveAxis
moveAxis
,
int
targetPosition
)
{
string
deviceName
=
moveAxis
.
DeviceName
;
short
axisNo
=
moveAxis
.
GetAxisValue
();
int
outCount
=
ACServerManager
.
GetActualtPosition
(
deviceName
,
axisNo
);
int
errorCount
=
Math
.
Abs
(
outCount
-
targetPosition
);
if
(
errorCount
<=
moveAxis
.
CanErrorCountMax
)
{
return
true
;
}
return
false
;
}
/// <summary>
/// <summary>
/// 判断AC伺服电机轴是否运动完成
/// 判断AC伺服电机轴是否运动完成
/// </summary>
/// </summary>
...
@@ -261,7 +273,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -261,7 +273,7 @@ namespace OnlineStore.DeviceLibrary
msg
=
""
;
msg
=
""
;
string
deviceName
=
moveAxis
.
DeviceName
;
string
deviceName
=
moveAxis
.
DeviceName
;
short
axisNo
=
moveAxis
.
GetAxisValue
();
short
axisNo
=
moveAxis
.
GetAxisValue
();
bool
isOk
=
ACServerManager
.
GetBusyStatus
(
deviceName
,
axisNo
).
Equals
(
0
);
bool
isOk
=
ACServerManager
.
GetBusyStatus
(
deviceName
,
axisNo
).
Equals
(
0
);
int
outCount
=
ACServerManager
.
GetActualtPosition
(
deviceName
,
axisNo
);
int
outCount
=
ACServerManager
.
GetActualtPosition
(
deviceName
,
axisNo
);
int
errorCount
=
Math
.
Abs
(
outCount
-
targetPosition
);
int
errorCount
=
Math
.
Abs
(
outCount
-
targetPosition
);
...
@@ -269,6 +281,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -269,6 +281,7 @@ namespace OnlineStore.DeviceLibrary
{
{
if
(
errorCount
<=
moveAxis
.
CanErrorCountMax
)
if
(
errorCount
<=
moveAxis
.
CanErrorCountMax
)
{
{
LogUtil
.
info
(
$
"{Name} {moveAxis.DisplayStr} 到达目标位置 {targetPosition}"
);
return
true
;
return
true
;
}
}
//判断是否需要重新运动
//判断是否需要重新运动
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论