Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 03579498
由
LN
编写于
2021-06-30 09:31:18 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加运行日志打印
1 个父辈
c94c8fec
显示空白字符变更
内嵌
并排
正在显示
23 个修改的文件
包含
1067 行增加
和
564 行删除
source/AssemblyLineClient/App.config
source/AssemblyLineClient/FrmLineStore.cs
source/Common/Common.csproj
source/Common/util/LogUtil.cs
source/Common/util/RunLogUtil.cs
source/DeviceLibrary/assemblyLine/DischargeLine.cs
source/DeviceLibrary/assemblyLine/DischargeLine_Partial.cs
source/DeviceLibrary/assemblyLine/EquipBase.cs
source/DeviceLibrary/assemblyLine/FeedingEquip.cs
source/DeviceLibrary/assemblyLine/FeedingEquip_InStore.cs
source/DeviceLibrary/assemblyLine/FeedingEquip_OutStore.cs
source/DeviceLibrary/assemblyLine/LineBean.cs
source/DeviceLibrary/assemblyLine/LineBean_Partial.cs
source/DeviceLibrary/assemblyLine/LineBean_Shunt.cs
source/DeviceLibrary/assemblyLine/LineBean_Shunt2.cs
source/DeviceLibrary/assemblyLine/MoveEquip.cs
source/DeviceLibrary/assemblyLine/MoveEquip_Partial.cs
source/DeviceLibrary/assemblyLine/ProvidingEquip.cs
source/DeviceLibrary/assemblyLine/ProvidingEquip_Partial.cs
source/DeviceLibrary/assemblymanager/ALineManager.cs
source/DeviceLibrary/model/KTK_Store.cs
source/DeviceLibrary/model/LineMoveInfo.cs
source/DeviceLibrary/model/StoreStep.cs
source/AssemblyLineClient/App.config
查看文件 @
0357949
...
...
@@ -113,6 +113,16 @@
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
</
layout
>
</
appender
>
<
appender
name
=
"RunLog"
type
=
"log4net.Appender.RollingFileAppender"
>
<
file
value
=
"logs/log/RunLog-line.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
conversionPattern
value
=
" %m%n"
/>
</
layout
>
</
appender
>
<
logger
name
=
"RollingLogFileAppender"
>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"RollingLogFileAppender"
/>
...
...
@@ -125,6 +135,10 @@
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"AIOBOX"
/>
</
logger
>
<
logger
name
=
"RunLog"
>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"RunLog"
/>
</
logger
>
<!--<
root
>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"RollingLogFileAppender"
/>
...
...
source/AssemblyLineClient/FrmLineStore.cs
查看文件 @
0357949
...
...
@@ -302,6 +302,7 @@ namespace OnlineStore.AssemblyLine
{
LogUtil
.
info
(
"即将退出程序,停止"
+
lineBean
.
Name
+
"运行 "
);
lineBean
.
StopRun
();
lineBean
.
SetWarnMsg
();
}
foreach
(
EquipBase
equip
in
lineBean
.
AllEquipMap
.
Values
)
{
...
...
@@ -309,6 +310,7 @@ namespace OnlineStore.AssemblyLine
{
LogUtil
.
info
(
"即将退出程序,停止"
+
equip
.
Name
+
"运行 "
);
equip
.
StopRun
();
equip
.
SetWarnMsg
();
}
}
// IOManager.instance.CloseAllDO();
...
...
source/Common/Common.csproj
查看文件 @
0357949
...
...
@@ -65,6 +65,7 @@
<Compile Include="util\NetTCPServer.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="util\RunLogUtil.cs" />
<Compile Include="util\TcpClient.cs" />
<Compile Include="util\TcpServer.cs" />
<Compile Include="util\UdpServer.cs" />
...
...
source/Common/util/LogUtil.cs
查看文件 @
0357949
...
...
@@ -89,7 +89,7 @@ namespace OnlineStore.Common
}
public
static
void
error
(
ILog
log
,
string
errorMsg
,
Exception
ex
=
null
)
{
if
(
errorMsg
.
Trim
().
Equals
(
""
)
&&(
ex
==
null
))
if
(
errorMsg
.
Trim
().
Equals
(
""
)
&&
(
ex
==
null
))
{
return
;
}
...
...
@@ -123,7 +123,7 @@ namespace OnlineStore.Common
}
else
{
LOGGER
.
Debug
(
"ShowLogPro【"
+
msg
+
"】失败,未得到锁"
);
LOGGER
.
Debug
(
"ShowLogPro【"
+
msg
+
"】失败,未得到锁"
);
}
}
private
static
List
<
string
>
logList
=
new
List
<
string
>();
...
...
@@ -204,9 +204,9 @@ namespace OnlineStore.Common
{
debug
(
LOGGER
,
msg
);
}
public
static
void
error
(
string
errorMsg
,
Exception
ex
=
null
)
public
static
void
error
(
string
errorMsg
,
Exception
ex
=
null
)
{
error
(
LOGGER
,
errorMsg
,
ex
);
error
(
LOGGER
,
errorMsg
,
ex
);
}
public
static
void
info
(
string
msg
)
{
...
...
source/Common/util/RunLogUtil.cs
0 → 100644
查看文件 @
0357949
using
log4net
;
using
Newtonsoft.Json
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Runtime.Serialization
;
using
System.Text
;
namespace
OnlineStore.Common
{
public
class
RunLogUtil
{
public
static
readonly
ILog
RunLog
=
LogManager
.
GetLogger
(
"RunLog"
);
public
static
void
ErrorLog
(
ErrorLog
log
)
{
string
jsonStr
=
JsonHelper
.
SerializeObject
(
log
);
RunLog
.
Error
(
jsonStr
);
}
public
static
void
MoveLog
(
MoveLog
log
)
{
//if (log == null || (!log.IsValid()))
//{
// return;
//}
//string jsonStr = JsonHelper.SerializeObject(log);
//RunLog.Info(jsonStr);
}
public
static
void
MoveEndLog
(
MoveEndLog
log
)
{
if
(
log
==
null
||
(!
log
.
IsValid
()))
{
return
;
}
string
jsonStr
=
JsonHelper
.
SerializeObject
(
log
);
RunLog
.
Info
(
jsonStr
);
}
public
static
void
AxisLog
(
AxisMoveLog
log
)
{
string
jsonStr
=
JsonHelper
.
SerializeObject
(
log
);
RunLog
.
Error
(
jsonStr
);
}
}
public
class
BaseLog
{
[
JsonProperty
(
Order
=
0
)]
public
string
Name
{
get
;
set
;
}
=
"四楼环形线"
;
[
JsonProperty
(
Order
=
1
)]
public
string
DeviceName
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
2
)]
public
string
LogType
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
3
)]
public
string
StartTime
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
4
)]
public
string
EndTime
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
5
)]
public
string
timeSpan
{
get
;
set
;
}
=
""
;
}
public
class
ErrorLog
:
BaseLog
{
public
ErrorLog
()
{
this
.
LogType
=
"Error"
;
}
public
ErrorLog
(
string
deviceName
,
string
errType
,
string
errMsg
,
DateTime
startTime
,
DateTime
endTime
,
string
operType
=
""
,
string
posid
=
""
,
string
barcode
=
""
)
{
this
.
LogType
=
"Error"
;
this
.
DeviceName
=
deviceName
.
Trim
();
this
.
ErrorType
=
errType
.
Trim
();
this
.
ErrorMsg
=
errMsg
.
Trim
();
this
.
StartTime
=
startTime
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
);
this
.
EndTime
=
endTime
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
);
this
.
OperateType
=
operType
.
Trim
();
this
.
PosId
=
posid
.
Trim
();
this
.
Barcode
=
barcode
.
Trim
();
TimeSpan
span
=
endTime
-
startTime
;
this
.
timeSpan
=
(
Math
.
Round
(
span
.
TotalMinutes
,
2
)).
ToString
();
//两位小数的分钟
}
public
bool
IsValid
()
{
if
(
string
.
IsNullOrEmpty
(
DeviceName
)
||
String
.
IsNullOrEmpty
(
LogType
)
||
string
.
IsNullOrEmpty
(
ErrorType
)
||
string
.
IsNullOrEmpty
(
ErrorMsg
))
{
return
false
;
}
return
true
;
}
[
JsonProperty
(
Order
=
11
)]
public
string
ErrorType
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
12
)]
public
string
ErrorMsg
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
13
)]
public
string
OperateType
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
14
)]
public
string
PosId
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
15
)]
public
string
Barcode
{
get
;
set
;
}
=
""
;
}
public
class
MoveLog
:
BaseLog
{
public
MoveLog
()
{
this
.
LogType
=
"Running"
;
}
public
MoveLog
(
string
deviceName
,
string
moveType
,
string
moveMsg
,
DateTime
startTime
,
DateTime
endTime
,
string
posid
=
""
,
string
barcode
=
""
)
{
this
.
LogType
=
"Running"
;
this
.
DeviceName
=
deviceName
.
Replace
(
"-Move"
,
""
).
Replace
(
"-SMove"
,
""
).
Trim
();
this
.
MoveType
=
moveType
.
Trim
();
this
.
MoveMsg
=
moveMsg
.
Trim
();
this
.
StartTime
=
startTime
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
);
this
.
EndTime
=
endTime
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
);
this
.
PosId
=
posid
.
Trim
();
this
.
Barcode
=
barcode
.
Trim
();
TimeSpan
span
=
endTime
-
startTime
;
this
.
timeSpan
=
(
Math
.
Round
(
span
.
TotalMinutes
,
2
)).
ToString
();
//两位小数的分钟
}
public
bool
IsValid
()
{
if
(
string
.
IsNullOrEmpty
(
DeviceName
)
||
String
.
IsNullOrEmpty
(
LogType
)
||
string
.
IsNullOrEmpty
(
MoveType
)
||
string
.
IsNullOrEmpty
(
MoveMsg
))
{
return
false
;
}
return
true
;
}
[
JsonProperty
(
Order
=
11
)]
public
string
MoveType
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
12
)]
public
string
MoveMsg
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
13
)]
public
string
PosId
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
14
)]
public
string
Barcode
{
get
;
set
;
}
=
""
;
}
public
class
MoveEndLog
:
BaseLog
{
public
MoveEndLog
()
{
this
.
LogType
=
"InoutEnd"
;
}
public
MoveEndLog
(
string
deviceName
,
string
moveType
,
DateTime
startTime
,
DateTime
endTime
,
string
posid
=
""
,
string
barcode
=
""
)
{
this
.
LogType
=
"InoutEnd"
;
this
.
DeviceName
=
deviceName
.
Replace
(
"-Move"
,
""
).
Replace
(
"-SMove"
,
""
).
Trim
();
this
.
MoveType
=
moveType
.
Trim
();
this
.
StartTime
=
startTime
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
);
this
.
EndTime
=
endTime
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
);
this
.
PosId
=
posid
.
Trim
();
this
.
Barcode
=
barcode
.
Trim
();
TimeSpan
span
=
endTime
-
startTime
;
this
.
timeSpan
=
(
Math
.
Round
(
span
.
TotalMinutes
,
2
)).
ToString
();
//两位小数的分钟
}
public
bool
IsValid
()
{
if
(
string
.
IsNullOrEmpty
(
DeviceName
)
||
string
.
IsNullOrEmpty
(
MoveType
))
{
return
false
;
}
return
true
;
}
[
JsonProperty
(
Order
=
11
)]
public
string
MoveType
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
12
)]
public
string
PosId
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
13
)]
public
string
Barcode
{
get
;
set
;
}
=
""
;
}
public
class
AxisMoveLog
:
BaseLog
{
public
AxisMoveLog
()
{
this
.
LogType
=
"Axis"
;
}
public
AxisMoveLog
(
string
deviceName
,
string
axisName
,
string
moveType
,
int
targetP
,
int
speed
,
DateTime
startTime
,
DateTime
endTime
,
string
posid
=
""
,
string
barcode
=
""
)
{
this
.
LogType
=
"Axis"
;
this
.
DeviceName
=
deviceName
.
Replace
(
"-Move"
,
""
).
Replace
(
"-SMove"
,
""
).
Trim
();
this
.
MoveType
=
moveType
.
Trim
();
this
.
AxisName
=
axisName
;
this
.
TargetPos
=
targetP
;
this
.
StartTime
=
startTime
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
);
this
.
EndTime
=
endTime
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
);
this
.
PosId
=
posid
.
Trim
();
this
.
Barcode
=
barcode
.
Trim
();
TimeSpan
span
=
endTime
-
startTime
;
this
.
timeSpan
=
(
Math
.
Round
(
span
.
TotalMinutes
,
2
)).
ToString
();
//两位小数的分钟
this
.
Speed
=
speed
;
}
public
bool
IsValid
()
{
if
(
string
.
IsNullOrEmpty
(
DeviceName
)
||
string
.
IsNullOrEmpty
(
MoveType
))
{
return
false
;
}
return
true
;
}
[
JsonProperty
(
Order
=
11
)]
public
string
AxisName
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
12
)]
public
string
MoveType
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
13
)]
public
int
TargetPos
{
get
;
set
;
}
=
0
;
[
JsonProperty
(
Order
=
14
)]
public
int
Speed
{
get
;
set
;
}
[
JsonProperty
(
Order
=
15
)]
public
string
PosId
{
get
;
set
;
}
=
""
;
[
JsonProperty
(
Order
=
16
)]
public
string
Barcode
{
get
;
set
;
}
=
""
;
}
}
source/DeviceLibrary/assemblyLine/DischargeLine.cs
查看文件 @
0357949
...
...
@@ -194,6 +194,7 @@ namespace OnlineStore.DeviceLibrary
}
}
RunLogUtil
.
MoveEndLog
(
new
MoveEndLog
(
Name
,
"复位"
,
MoveInfo
.
MoveStartTime
,
DateTime
.
Now
));
MoveEndS
();
SecondMoveInfo
.
EndMove
();
break
;
...
...
@@ -262,7 +263,7 @@ namespace OnlineStore.DeviceLibrary
Thread
.
Sleep
(
300
);
if
(
IOValue
(
IO_Type
.
DLine_SuddenStop
).
Equals
(
IO_VALUE
.
LOW
))
{
SetWarnMsg
(
Name
+
"收到急停信号,急停报警"
);
SetWarnMsg
(
Name
+
"收到急停信号,急停报警"
,
"急停报警"
);
Alarm
(
LineAlarmType
.
SuddenStop
);
return
;
}
...
...
source/DeviceLibrary/assemblyLine/DischargeLine_Partial.cs
查看文件 @
0357949
...
...
@@ -190,6 +190,8 @@ namespace OnlineStore.DeviceLibrary
int
robotIndex
=
GetRobotIndex
();
LogUtil
.
info
(
hengyiName
+
MoveInfo
.
SLog
+
"送料,接驳台有料,调用arriveRobotLocation="
+
robotIndex
+
"["
+
StationInfo_Move
.
CodeStr
+
"]"
);
string
msg
=
SServerManager
.
arriveRobotLocation
(
Name
,
robotIndex
,
StationInfo_Move
.
CodeStr
);
MoveEndS
();
LogUtil
.
info
(
hengyiName
+
MoveInfo
.
SLog
+
"送料结束 ["
+
msg
+
"]"
);
}
...
...
@@ -206,6 +208,7 @@ namespace OnlineStore.DeviceLibrary
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
DON_08_CRun
))
{
SeparateStopRun
();
RunLogUtil
.
MoveEndLog
(
new
MoveEndLog
(
Name
,
"送料"
,
MoveInfo
.
MoveStartTime
,
DateTime
.
Now
,
""
,
StationInfo_Move
.
CodeStr
));
MoveEndS
();
LogUtil
.
info
(
hengyiName
+
MoveInfo
.
SLog
+
"送料结束,停止接驳台皮带线 "
);
}
...
...
source/DeviceLibrary/assemblyLine/EquipBase.cs
查看文件 @
0357949
...
...
@@ -185,19 +185,8 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
"IOTimeOutProcess出错:"
,
ex
);
}
}
protected
void
ClearTimeoutAlarm
(
string
msg
)
{
if
(
isInSuddenDown
||
isNoAirCheck
)
{
return
;
}
if
(
WarnMsg
.
Contains
(
msg
)
&&
alarmType
.
Equals
(
LineAlarmType
.
IoSingleTimeOut
))
{
LogUtil
.
info
(
Name
+
"清理信号超时报警【"
+
WarnMsg
+
"】 "
);
alarmType
=
LineAlarmType
.
None
;
SetWarnMsg
(
""
);
}
}
protected
bool
CanStartRun
()
{
string
canResult
=
LineManager
.
Line
.
CanStart
();
...
...
@@ -380,7 +369,7 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
axis
.
Config
.
BreakOnDO
,
IO_VALUE
.
HIGH
);
return
true
;
}
SetWarnMsg
(
Name
+
msg
);
SetWarnMsg
(
Name
+
msg
,
axis
.
Config
.
DisplayStr
+
"_轴报警"
);
//WarnMsg = DateTime.Now.ToLongTimeString() + " " + Name + msg;
Alarm
(
LineAlarmType
.
AxisAlarm
);
return
false
;
...
...
@@ -443,16 +432,24 @@ namespace OnlineStore.DeviceLibrary
if
(
wait
.
IsHomeMove
)
{
wait
.
IsEnd
=
AxisBean
.
HomeMoveIsEnd
(
moveInfo
,
wait
.
AxisInfo
,
out
msg
);
if
(
wait
.
IsEnd
)
{
RunLogUtil
.
AxisLog
(
new
AxisMoveLog
(
Name
,
wait
.
AxisInfo
.
Explain
,
"回原点"
,
0
,
wait
.
AxisInfo
.
HomeHighSpeed
,
moveInfo
.
LastSetpTime
,
DateTime
.
Now
,
moveInfo
.
MoveParam
.
PosId
,
moveInfo
.
MoveParam
.
WareCode
));
}
}
else
{
wait
.
IsEnd
=
AxisBean
.
ACAxisMoveIsEnd
(
moveInfo
,
wait
.
AxisInfo
,
wait
.
TargetPosition
,
wait
.
TargetSpeed
,
out
msg
);
if
(
wait
.
IsEnd
)
{
RunLogUtil
.
AxisLog
(
new
AxisMoveLog
(
Name
,
wait
.
AxisInfo
.
Explain
,
"绝对运动"
,
wait
.
TargetPosition
,
wait
.
TargetSpeed
,
moveInfo
.
LastSetpTime
,
DateTime
.
Now
,
moveInfo
.
MoveParam
.
PosId
,
moveInfo
.
MoveParam
.
WareCode
));
}
}
if
(!
msg
.
Equals
(
""
))
{
isOk
=
false
;
WarnMsg
=
Name
+
msg
;
string
type
=
moveInfo
.
GetStepDes
()
+
"_轴运动报警"
;
SetWarnMsg
(
msg
,
type
,
moveInfo
);
Alarm
(
LineAlarmType
.
AxisMoveError
);
CheckAlarmProcess
(
moveInfo
,
LineAlarmType
.
AxisMoveError
);
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
14
);
...
...
@@ -477,9 +474,12 @@ namespace OnlineStore.DeviceLibrary
if
(
span
.
TotalSeconds
>
LineManager
.
Config
.
IOSingle_TimerOut
&&
alarmType
<=
LineAlarmType
.
IoSingleTimeOut
)
{
ConfigIO
io
=
baseConfig
.
getWaitIO
(
wait
.
IoType
);
WarnMsg
=
moveInfo
.
Name
+
"["
+
moveInfo
.
MoveType
+
"]["
+
moveInfo
.
MoveStep
+
"] 等待"
+
NotOkMsg
+
" 超时 "
+
Math
.
Round
(
span
.
TotalSeconds
,
1
)
+
"秒"
;
string
msg
=
moveInfo
.
Name
+
"["
+
moveInfo
.
MoveType
+
"]["
+
moveInfo
.
MoveStep
+
"] 等待"
+
NotOkMsg
+
" 超时 "
+
Math
.
Round
(
span
.
TotalSeconds
,
1
)
+
"秒"
;
LogUtil
.
error
(
MoveInfo
.
Name
+
WarnMsg
,
DeviceID
*
1000
+
13
);
string
type
=
moveInfo
.
GetStepDes
()
+
"_"
+
"超时报警"
;
SetWarnMsg
(
msg
,
type
,
moveInfo
);
//WarnMsg = moveInfo.Name + "[" + moveInfo.MoveType + "][" + moveInfo.MoveStep + "] 等待" + NotOkMsg + " 超时 " + Math.Round(span.TotalSeconds, 1) + "秒";
//LogUtil.error(MoveInfo.Name + WarnMsg, DeviceID * 1000 + 13);
if
(
NoAlarm
())
{
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
...
...
@@ -559,11 +559,11 @@ namespace OnlineStore.DeviceLibrary
if
(
isOk
)
{
moveInfo
.
EndStepWait
();
ClearStepAlarm
(
moveInfo
.
GetStepDes
());
}
else
if
(
span
.
TotalSeconds
>
moveInfo
.
TimeOutSeconds
)
{
WarnMsg
=
moveInfo
.
Name
+
"["
+
moveInfo
.
MoveType
+
"]["
+
moveInfo
.
MoveStep
+
"]等待"
+
NotOkMsg
+
"超时["
+
Math
.
Round
(
span
.
TotalSeconds
,
1
)
+
"]秒"
;
int
second
=
10
;
if
(
IsLowAlarm
(
moveInfo
))
{
...
...
@@ -577,7 +577,12 @@ namespace OnlineStore.DeviceLibrary
{
second
=
10
;
}
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
15
,
second
);
//WarnMsg = moveInfo.Name + "[" + moveInfo.MoveType + "][" + moveInfo.MoveStep + "]等待" + NotOkMsg+ "超时[" + Math.Round(span.TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 15, second);
string
msg
=
moveInfo
.
Name
+
"["
+
moveInfo
.
MoveType
+
"]["
+
moveInfo
.
MoveStep
+
"]等待"
+
NotOkMsg
+
"超时["
+
Math
.
Round
(
span
.
TotalSeconds
,
1
)
+
"]秒"
;
string
type
=
moveInfo
.
GetStepDes
()
+
"_"
+
"超时报警"
;
SetWarnMsg
(
msg
,
type
,
moveInfo
,
second
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
CheckAlarmProcess
(
moveInfo
,
LineAlarmType
.
IoSingleTimeOut
);
}
...
...
@@ -587,6 +592,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
moveInfo
.
Name
+
" ["
+
moveInfo
.
MoveStep
+
"] CheckWait 出错:"
,
ex
);
}
}
private
bool
IsLowAlarm
(
LineMoveInfo
moveInfo
)
{
//托盘卡的信号不报警,只提示
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip.cs
查看文件 @
0357949
...
...
@@ -291,6 +291,7 @@ namespace OnlineStore.DeviceLibrary
LogInfo
(
"重置完成,出口检测到有料架,调用 "
+
Config
.
AgvOutName
+
" AgvClient.NeedLeave"
);
AgvClient
.
NeedLeave
(
Config
.
AgvOutName
,
LastOutShelfId
,
level
);
}
RunLogUtil
.
MoveEndLog
(
new
MoveEndLog
(
Name
,
"复位"
,
MoveInfo
.
MoveStartTime
,
DateTime
.
Now
));
MoveEndS
();
break
;
default
:
break
;
...
...
@@ -557,9 +558,10 @@ namespace OnlineStore.DeviceLibrary
}
else
{
WarnMsg
=
Name
+
"TrayLCylinderAfter:提升轴当前不在下降位置P2,不后退定位气缸"
;
//WarnMsg = Name + "TrayLCylinderAfter:提升轴当前不在下降位置P2,不后退定位气缸";
//LogUtil.error(Name + "TrayLCylinderAfter:提升轴当前不在下降位置P2,不后退定位气缸");
SetWarnMsg
(
"TrayLCylinderAfter:提升轴当前不在下降位置P2,不后退定位气缸"
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
LogUtil
.
error
(
Name
+
"TrayLCylinderAfter:提升轴当前不在下降位置P2,不后退定位气缸"
);
}
}
if
(
moveinfo
!=
null
)
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip_InStore.cs
查看文件 @
0357949
...
...
@@ -436,8 +436,8 @@ namespace OnlineStore.DeviceLibrary
{
if
(
SecondMoveInfo
.
IsTimeOut
(
15
))
{
WarnMsg
=
SecondMoveInfo
.
Name
+
"["
+
SecondMoveInfo
.
MoveStep
+
"] 等待入库托盘超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnM
sg
+
",暂时放托盘离开"
);
string
msg
=
SecondMoveInfo
.
Name
+
"["
+
SecondMoveInfo
.
MoveStep
+
"] 等待入库托盘超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
m
sg
+
",暂时放托盘离开"
);
TrayMoveOk
();
}
}
...
...
@@ -449,20 +449,19 @@ namespace OnlineStore.DeviceLibrary
{
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_201_WaitOutEnd
);
}
//如果当前无料串,或者料串已离开,直接放行 托盘
else
if
(
SecondMoveInfo
.
IsTimeOut
(
30
))
{
WarnM
sg
=
SecondMoveInfo
.
Name
+
"["
+
SecondMoveInfo
.
MoveStep
+
"] 等待出库移栽超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnM
sg
+
",暂时放托盘离开"
);
string
m
sg
=
SecondMoveInfo
.
Name
+
"["
+
SecondMoveInfo
.
MoveStep
+
"] 等待出库移栽超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
m
sg
+
",暂时放托盘离开"
);
TrayMoveOk
();
}
else
if
(
SecondMoveInfo
.
IsTimeOut
(
20
))
{
WarnMsg
=
SecondMoveInfo
.
Name
+
"["
+
SecondMoveInfo
.
MoveStep
+
"] 等待出库移栽超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
21
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeoutAlarm
(
SecondMoveInfo
,
"等待出库移栽超时"
);
//WarnMsg = SecondMoveInfo.Name + "[" + SecondMoveInfo.MoveStep + "] 等待出库移栽超时 [" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 21);
//Alarm(LineAlarmType.IoSingleTimeOut);
}
}
}
...
...
@@ -792,9 +791,10 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"] 扫码执行结束超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
30
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeoutAlarm
(
MoveInfo
,
"扫码执行结束超时"
);
//WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "] 扫码执行结束超时 [" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 30);
//Alarm(LineAlarmType.IoSingleTimeOut);
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FI_14_CylinderTake
))
...
...
@@ -1001,9 +1001,10 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
(
180
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待空托盘到达超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
22
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeoutAlarm
(
MoveInfo
,
"等待空托盘到达超时"
);
//WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveType + "][" + MoveInfo.SLog + "]等待空托盘到达超时[" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 22);
//Alarm(LineAlarmType.IoSingleTimeOut);
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
FI_26_CylinderDown
))
...
...
@@ -1191,9 +1192,10 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
(
15
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"] 获取库位号超时 "
+
getPosIdMsg
+
" ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
30
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeoutAlarm
(
MoveInfo
,
"获取库位号超时 "
+
getPosIdMsg
+
""
);
//WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveStep + "] 获取库位号超时 " + getPosIdMsg + " [" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 30);
//Alarm(LineAlarmType.IoSingleTimeOut);
}
}
...
...
@@ -1447,9 +1449,10 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
WarnMsg
=
SecondMoveInfo
.
Name
+
"["
+
SecondMoveInfo
.
MoveStep
+
"] 等待预扫码结束超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
21
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeoutAlarm
(
MoveInfo
,
"等待预扫码结束超时"
);
//WarnMsg = SecondMoveInfo.Name + "[" + SecondMoveInfo.MoveStep + "] 等待预扫码结束超时 [" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 21);
//Alarm(LineAlarmType.IoSingleTimeOut);
}
}
else
...
...
@@ -1499,8 +1502,9 @@ namespace OnlineStore.DeviceLibrary
}
else
{
WarnMsg
=
Name
+
"提升轴运动报警。上升到P3点已重复"
+
LoopCount
+
"次,仍未检测到料盘信号"
;
LogUtil
.
error
(
WarnMsg
);
//WarnMsg = Name + "提升轴运动报警。上升到P3点已重复" + LoopCount + "次,仍未检测到料盘信号";
//LogUtil.error(WarnMsg);
SetWarnMsg
(
"提升轴运动报警。上升到P3点已重复"
+
LoopCount
+
"次,仍未检测到料盘信号"
,
"提升轴运动报警,未检测到料盘信号"
);
Alarm
(
LineAlarmType
.
AxisMoveError
);
}
return
;
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip_OutStore.cs
查看文件 @
0357949
...
...
@@ -744,9 +744,10 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
WarnMsg
=
SecondMoveInfo
.
Name
+
"["
+
SecondMoveInfo
.
MoveStep
+
"] 等待给服务器发送afterPut完成超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
21
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeoutAlarm
(
MoveInfo
,
"等待给服务器发送afterPut完成超时"
);
//WarnMsg = SecondMoveInfo.Name + "[" + SecondMoveInfo.MoveStep + "] 等待给服务器发送afterPut完成超时 [" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 21);
//Alarm(LineAlarmType.IoSingleTimeOut);
}
}
}
...
...
source/DeviceLibrary/assemblyLine/LineBean.cs
查看文件 @
0357949
...
...
@@ -719,7 +719,7 @@ namespace OnlineStore.DeviceLibrary
Thread
.
Sleep
(
300
);
if
(
IOValue
(
IO_Type
.
SuddenStop_BTN
).
Equals
(
IO_VALUE
.
LOW
))
{
SetWarnMsg
(
"收到急停信号,报警急停"
);
SetWarnMsg
(
"收到急停信号,报警急停"
,
"急停报警"
);
Alarm
(
LineAlarmType
.
SuddenStop
);
}
//});
...
...
@@ -865,7 +865,7 @@ namespace OnlineStore.DeviceLibrary
{
if
((
DateTime
.
Now
-
lastAirCloseTime
).
TotalSeconds
>
Config
.
AirCheckSeconds
)
{
SetWarnMsg
(
"持续"
+
Config
.
AirCheckSeconds
+
"秒未检测到气压信号"
);
SetWarnMsg
(
"持续"
+
Config
.
AirCheckSeconds
+
"秒未检测到气压信号"
,
"未检测到气压信号"
);
//SendAlarmCode(0, LineAlarm.NoAirCheck);
airValue
=
IO_VALUE
.
LOW
;
Alarm
(
LineAlarmType
.
NoAirCheck
);
...
...
@@ -1028,8 +1028,8 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
span
.
TotalSeconds
>
120
)
{
Warn
Msg
=
Name
+
"["
+
MoveInfo
.
MoveStep
+
"]["
+
msg
+
"]已等待["
+
Math
.
Round
(
span
.
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
903
);
string
w
Msg
=
Name
+
"["
+
MoveInfo
.
MoveStep
+
"]["
+
msg
+
"]已等待["
+
Math
.
Round
(
span
.
TotalSeconds
,
1
)
+
"]秒"
;
SetWarnMsg
(
wMsg
,
$
"{msg}超时"
,
MoveInfo
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
}
}
...
...
source/DeviceLibrary/assemblyLine/LineBean_Partial.cs
查看文件 @
0357949
...
...
@@ -110,9 +110,9 @@ namespace OnlineStore.DeviceLibrary
if
(
span
.
TotalSeconds
>
LineManager
.
Config
.
IOSingle_TimerOut
&&
NoAlarm
())
{
ConfigIO
io
=
baseConfig
.
getWaitIO
(
wait
.
IoType
);
WarnMsg
=
Name
+
"["
+
checkWaitInfo
.
MoveStep
+
"]等待"
+
NotOkMsg
+
" 超时"
;
string
warnMsg
=
checkWaitInfo
.
Name
+
"["
+
checkWaitInfo
.
MoveStep
+
"]等待"
+
NotOkMsg
+
" 超时"
;
SetWarnMsg
(
warnMsg
,
checkWaitInfo
.
GetStepDes
()+
"_超时报警"
,
checkWaitInfo
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
LogUtil
.
error
(
MoveInfo
.
Name
+
WarnMsg
,
901
);
}
//超过报警时长
else
if
(
rwSpan
.
TotalSeconds
>
5
&&
span
.
TotalSeconds
>
6
&&
span
.
TotalSeconds
<
LineManager
.
Config
.
IOSingle_TimerOut
*
2
)
...
...
@@ -183,11 +183,12 @@ namespace OnlineStore.DeviceLibrary
if
(
isOk
)
{
checkWaitInfo
.
EndStepWait
();
ClearStepAlarm
(
checkWaitInfo
.
GetStepDes
());
}
else
if
(
span
.
TotalSeconds
>
checkWaitInfo
.
TimeOutSeconds
)
{
War
nMsg
=
checkWaitInfo
.
Name
+
"["
+
checkWaitInfo
.
MoveStep
+
"]["
+
NotOkMsg
+
"]已等待["
+
Math
.
Round
(
span
.
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
900
);
string
wa
nMsg
=
checkWaitInfo
.
Name
+
"["
+
checkWaitInfo
.
MoveStep
+
"]["
+
NotOkMsg
+
"]已等待["
+
Math
.
Round
(
span
.
TotalSeconds
,
1
)
+
"]秒"
;
SetWarnMsg
(
wanMsg
,
checkWaitInfo
.
GetStepDes
()+
"_超时报警"
,
checkWaitInfo
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
}
}
...
...
source/DeviceLibrary/assemblyLine/LineBean_Shunt.cs
查看文件 @
0357949
...
...
@@ -285,9 +285,10 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
Shunt_MoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待分流横移2可以上升["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
12
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeoutAlarm
(
Shunt_MoveInfo
,
"等待分流横移2可以上升"
);
//WarnMsg = Shunt_MoveInfo.Name + "[" + Shunt_MoveInfo.MoveType + "][" + Shunt_MoveInfo.SLog + "]等待分流横移2可以上升[" + Math.Round(Shunt_MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 12);
//Alarm(LineAlarmType.IoSingleTimeOut);
}
}
else
if
(
Shunt_MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
Shunt07_Top2Up
))
...
...
source/DeviceLibrary/assemblyLine/LineBean_Shunt2.cs
查看文件 @
0357949
...
...
@@ -337,9 +337,10 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
Shunt2_MoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待分流横移22可以上升["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
12
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeoutAlarm
(
Shunt2_MoveInfo
,
"等待分流横移2可以上升"
);
//WarnMsg = Shunt2_MoveInfo.Name + "[" + Shunt2_MoveInfo.MoveType + "][" + Shunt2_MoveInfo.SLog + "]等待分流横移22可以上升[" + Math.Round(Shunt2_MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 12);
//Alarm(LineAlarmType.IoSingleTimeOut);
}
}
else
if
(
Shunt2_MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
Shunt07_Top2Up
))
...
...
source/DeviceLibrary/assemblyLine/MoveEquip.cs
查看文件 @
0357949
...
...
@@ -161,6 +161,7 @@ namespace OnlineStore.DeviceLibrary
}
else
{
RunLogUtil
.
MoveEndLog
(
new
MoveEndLog
(
Name
,
"复位"
,
MoveInfo
.
MoveStartTime
,
DateTime
.
Now
));
ResetEnd
();
}
...
...
source/DeviceLibrary/assemblyLine/MoveEquip_Partial.cs
查看文件 @
0357949
...
...
@@ -249,6 +249,8 @@ namespace OnlineStore.DeviceLibrary
CylinderMove
(
SecondMoveInfo
,
IO_Type
.
TopCylinder_UP
,
IO_Type
.
TopCylinder_Down
);
OutLog
(
"出库处理结束!"
);
RunLogUtil
.
MoveEndLog
(
new
MoveEndLog
(
Name
,
"出库"
,
MoveInfo
.
MoveStartTime
,
DateTime
.
Now
,
MoveInfo
.
MoveParam
.
PosId
,
MoveInfo
.
MoveParam
.
WareCode
));
MoveEndS
();
}
...
...
@@ -275,9 +277,10 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
(
300
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待空托盘到达超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
12
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeoutAlarm
(
MoveInfo
,
"等待空托盘到达超时"
);
//WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveType + "][" + MoveInfo.SLog + "]等待空托盘到达超时[" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 12);
//Alarm(LineAlarmType.IoSingleTimeOut);
return
false
;
}
return
false
;
...
...
@@ -521,13 +524,14 @@ namespace OnlineStore.DeviceLibrary
if
(
sendCount
>=
3
)
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"] "
+
" 等待BOX开始入库超时 已发送"
+
sendCount
+
"次"
;
LogUtil
.
error
(
WarnMsg
);
SetWarnMsg
(
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveStep
+
"] "
+
" 等待BOX开始入库超时 已发送"
+
sendCount
+
"次"
,
"等待BOX开始入库超时"
)
;
//
LogUtil.error(WarnMsg);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
}
}
else
{
RunLogUtil
.
MoveEndLog
(
new
MoveEndLog
(
Name
,
"入库"
,
MoveInfo
.
MoveStartTime
,
DateTime
.
Now
,
MoveInfo
.
MoveParam
.
PosId
,
MoveInfo
.
MoveParam
.
WareCode
));
sendCount
=
0
;
LogInfo
(
"入库【"
+
posId
+
"】处理(移栽)全部完成!"
);
MoveEndS
();
...
...
@@ -535,6 +539,7 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
MI_16_SendEnd
))
{
RunLogUtil
.
MoveEndLog
(
new
MoveEndLog
(
Name
,
"入库"
,
MoveInfo
.
MoveStartTime
,
DateTime
.
Now
,
MoveInfo
.
MoveParam
.
PosId
,
MoveInfo
.
MoveParam
.
WareCode
));
LogInfo
(
"入库【"
+
posId
+
"】处理(移栽)全部完成!"
);
MoveEndS
();
}
...
...
@@ -1072,8 +1077,8 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MIO_09_WaitLetFixtureGo
);
}
else
if
(
SecondMoveInfo
.
IsTimeOut
(
30
))
{
WarnM
sg
=
SecondMoveInfo
.
Name
+
"["
+
SecondMoveInfo
.
MoveStep
+
"] 等待开始入库超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnM
sg
+
",暂时放托盘离开"
);
string
m
sg
=
SecondMoveInfo
.
Name
+
"["
+
SecondMoveInfo
.
MoveStep
+
"] 等待开始入库超时 ["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
m
sg
+
",暂时放托盘离开"
);
SecondMoveInfo
.
NextMoveStep
(
LineMoveStep
.
MO_14_TopDown
);
InLog
(
"放托盘(放开阻挡): "
+
MoveInfo
.
SLog
+
" 入库超时,放托盘离开,顶升气缸1下降"
);
CylinderMove
(
SecondMoveInfo
,
IO_Type
.
TopCylinder_UP
,
IO_Type
.
TopCylinder_Down
);
...
...
@@ -1131,9 +1136,10 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
SecondMoveInfo
.
IsTimeOut
(
120
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
SLog
+
"]等待分流横移1空闲["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
12
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeoutAlarm
(
SecondMoveInfo
,
"等待分流横移1空闲"
);
//WarnMsg = SecondMoveInfo.Name + "[" + SecondMoveInfo.MoveType + "][" + SecondMoveInfo.SLog + "]等待分流横移1空闲[" + Math.Round(SecondMoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 12);
//Alarm(LineAlarmType.IoSingleTimeOut);
}
}
...
...
source/DeviceLibrary/assemblyLine/ProvidingEquip.cs
查看文件 @
0357949
...
...
@@ -133,6 +133,7 @@ namespace OnlineStore.DeviceLibrary
CylinderMove
(
MoveInfo
,
IO_Type
.
ClampCylinder_Slack
,
IO_Type
.
ClampCylinder_Tighten
);
break
;
case
LineMoveStep
.
MH_OtherCylinderBack
:
RunLogUtil
.
MoveEndLog
(
new
MoveEndLog
(
Name
,
"复位"
,
MoveInfo
.
MoveStartTime
,
DateTime
.
Now
));
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
LogInfo
(
MoveInfo
.
MoveType
+
" 完成!"
);
...
...
source/DeviceLibrary/assemblyLine/ProvidingEquip_Partial.cs
查看文件 @
0357949
...
...
@@ -423,8 +423,9 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
SecondMoveInfo
.
IsTimeOut
(
30
))
{
WarnMsg
=
Name
+
TrayDisableManager
.
ProWarnMsg
+
"["
+
currTrayNum
+
"], 请处理并启用托盘,已超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
20
);
MoveTimeoutAlarm
(
SecondMoveInfo
,
"等待处理并启用托盘超时"
);
//WarnMsg = Name + TrayDisableManager.ProWarnMsg+ "[" + currTrayNum + "], 请处理并启用托盘,已超时[" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 20);
}
else
{
...
...
@@ -639,10 +640,10 @@ namespace OnlineStore.DeviceLibrary
PO_07_CylinderBefore
();
}
}
else
if
(
MoveInfo
.
MoveStep
.
Equals
(
LineMoveStep
.
PO_05_ClampCheck
))
{
PO_07_CylinderBefore
();
}
//
else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_05_ClampCheck))
//
{
//
PO_07_CylinderBefore();
//
}
//else if (MoveInfo.MoveStep.Equals(LineMoveStep.PO_06_WaitBox))
//{
// MoveInfo.NextMoveStep(LineMoveStep.PO_07_CylinderBefore);
...
...
@@ -681,9 +682,10 @@ namespace OnlineStore.DeviceLibrary
}
else
if
(
MoveInfo
.
IsTimeOut
())
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
MoveStep
+
"]等待 皮带线可放料 "
+
"超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
20
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeoutAlarm
(
MoveInfo
,
"等待皮带线可放料超时"
);
//WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveType + "][" + MoveInfo.MoveStep + "]等待 皮带线可放料 " + "超时[" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 20);
//Alarm(LineAlarmType.IoSingleTimeOut);
}
}
else
...
...
@@ -707,14 +709,16 @@ namespace OnlineStore.DeviceLibrary
{
if
(
afterPutCutOK
)
{
RunLogUtil
.
MoveEndLog
(
new
MoveEndLog
(
Name
,
"出库"
,
MoveInfo
.
MoveStartTime
,
DateTime
.
Now
,
MoveInfo
.
MoveParam
.
PosId
,
MoveInfo
.
MoveParam
.
WareCode
));
OutLog
(
"出料【"
+
posId
+
"】处理完成!"
);
MoveEndS
();
}
else
if
(
MoveInfo
.
IsTimeOut
(
60
))
{
WarnMsg
=
MoveInfo
.
Name
+
"["
+
MoveInfo
.
MoveType
+
"]["
+
MoveInfo
.
MoveStep
+
"]等待 给服务器发送afterPutCutTask完成 "
+
"超时["
+
Math
.
Round
(
MoveInfo
.
StepSpan
().
TotalSeconds
,
1
)
+
"]秒"
;
LogUtil
.
error
(
WarnMsg
,
DeviceID
*
1000
+
20
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
MoveTimeoutAlarm
(
MoveInfo
,
"等待给服务器发送afterPutCutTask完成超时"
);
//WarnMsg = MoveInfo.Name + "[" + MoveInfo.MoveType + "][" + MoveInfo.MoveStep + "]等待 给服务器发送afterPutCutTask完成 " + "超时[" + Math.Round(MoveInfo.StepSpan().TotalSeconds, 1) + "]秒";
//LogUtil.error(WarnMsg, DeviceID * 1000 + 20);
//Alarm(LineAlarmType.IoSingleTimeOut);
}
}
}
...
...
source/DeviceLibrary/assemblymanager/ALineManager.cs
查看文件 @
0357949
...
...
@@ -3,6 +3,7 @@ using OnlineStore.Common;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.IO
;
using
System.Linq
;
using
System.Text
;
...
...
@@ -24,8 +25,11 @@ namespace OnlineStore.DeviceLibrary
public
LineManager
()
{
}
public
static
void
CheckEnum
(
Type
type
)
public
static
Dictionary
<
string
,
string
>
StepDesMap
=
new
Dictionary
<
string
,
string
>();
public
static
void
CheckEnum
(
Type
type
,
bool
isStep
=
false
)
{
if
(
type
.
IsEnum
)
{
List
<
int
>
valueList
=
new
List
<
int
>();
...
...
@@ -34,11 +38,18 @@ namespace OnlineStore.DeviceLibrary
{
if
(
valueList
.
Contains
(
item
))
{
LogUtil
.
error
(
type
.
Name
+
"枚举值:"
+
item
+
"重复存在,请检查代码!程序退出。"
);
LogUtil
.
error
(
type
.
Name
+
"枚举值:"
+
item
+
"重复存在,请检查代码!程序退出。"
);
Application
.
Exit
();
break
;
}
valueList
.
Add
(
item
);
if
(
isStep
)
{
LineMoveStep
en
=
(
LineMoveStep
)
item
;
string
des
=
EnumDesHelper
.
GetStepDes
(
en
);
StepDesMap
.
Add
(
en
.
ToString
(),
des
);
}
}
}
}
...
...
@@ -72,13 +83,13 @@ namespace OnlineStore.DeviceLibrary
{
IsConnectServer
=
true
;
}
CheckEnum
(
typeof
(
LineMoveStep
));
CheckEnum
(
typeof
(
LineMoveStep
)
,
true
);
CheckEnum
(
typeof
(
LineStatus
));
CheckEnum
(
typeof
(
LineRunStatus
));
isInit
=
true
;
string
lineType
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
Line_Type
);
LogUtil
.
info
(
" 类型="
+
lineType
+
",开始加载 配置"
);
LogUtil
.
info
(
" 类型="
+
lineType
+
",开始加载 配置"
);
if
(
lineType
==
DeviceType
.
Line
)
{
string
appPath
=
Application
.
StartupPath
;
...
...
@@ -93,7 +104,7 @@ namespace OnlineStore.DeviceLibrary
{
string
nameStr
=
i
.
ToString
().
PadLeft
(
2
,
'0'
);
string
config
=
appPath
+
moveEquipConfig
.
Replace
(
".csv"
,
"_"
+
nameStr
+
".csv"
);
MoveEquip_Config
moveConfig
=
CSVConfigReader
.
LoadMoveConfig
(
i
,
DeviceType
.
MoveEquip
,
config
);
MoveEquip_Config
moveConfig
=
CSVConfigReader
.
LoadMoveConfig
(
i
,
DeviceType
.
MoveEquip
,
config
);
int
subType
=
i
;
// moveConfig.SetIO(subType);
moveECMap
.
Add
(
i
,
moveConfig
);
...
...
@@ -111,7 +122,7 @@ namespace OnlineStore.DeviceLibrary
{
int
subType
=
100
+
i
;
string
config
=
appPath
+
feedingEquipConfig
.
Replace
(
".csv"
,
"_"
+
i
+
".csv"
);
FeedingEquip_Config
moveConfig
=
CSVConfigReader
.
LoadFeedingConfig
(
subType
,
DeviceType
.
FeedingEquip
,
config
);
FeedingEquip_Config
moveConfig
=
CSVConfigReader
.
LoadFeedingConfig
(
subType
,
DeviceType
.
FeedingEquip
,
config
);
moveConfig
.
SetIO
(
subType
);
feedingECMap
.
Add
(
subType
,
moveConfig
);
allConfigMap
.
Add
(
subType
,
moveConfig
);
...
...
@@ -123,7 +134,7 @@ namespace OnlineStore.DeviceLibrary
{
int
subType
=
200
+
i
;
string
config
=
appPath
+
providingEquipConfig
.
Replace
(
".csv"
,
"_"
+
i
+
".csv"
);
ProvidingEquip_Config
moveConfig
=
CSVConfigReader
.
LoadProvidingConfig
(
subType
,
DeviceType
.
ProvidingEquip
,
config
);
ProvidingEquip_Config
moveConfig
=
CSVConfigReader
.
LoadProvidingConfig
(
subType
,
DeviceType
.
ProvidingEquip
,
config
);
moveConfig
.
SetIO
(
subType
);
providingECMap
.
Add
(
subType
,
moveConfig
);
allConfigMap
.
Add
(
subType
,
moveConfig
);
...
...
@@ -135,7 +146,7 @@ namespace OnlineStore.DeviceLibrary
{
int
subType
=
300
+
i
;
string
config
=
appPath
+
dischargeLineConfig
.
Replace
(
".csv"
,
"_"
+
i
+
".csv"
);
DischargeLine_Config
moveConfig
=
CSVConfigReader
.
LoadDischargeLineConfig
(
subType
,
DeviceType
.
DischargeLine
,
config
);
DischargeLine_Config
moveConfig
=
CSVConfigReader
.
LoadDischargeLineConfig
(
subType
,
DeviceType
.
DischargeLine
,
config
);
moveConfig
.
SetIO
(
subType
);
disChargeLineMap
.
Add
(
subType
,
moveConfig
);
allConfigMap
.
Add
(
subType
,
moveConfig
);
...
...
@@ -143,7 +154,7 @@ namespace OnlineStore.DeviceLibrary
Config
.
SetIO
(
1000
);
Line
=
new
LineBean
(
Config
,
moveECMap
,
feedingECMap
,
providingECMap
,
disChargeLineMap
);
LoadTrayCheck
();
LogUtil
.
info
(
"加载 完成!"
);
LogUtil
.
info
(
"加载 完成!"
);
return
true
;
}
}
...
...
@@ -154,7 +165,7 @@ namespace OnlineStore.DeviceLibrary
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
,
ex
);
LogUtil
.
error
(
"出错:"
,
ex
);
MessageBox
.
Show
(
ex
.
ToString
(),
"加载配置错误(请检查配置)"
);
Application
.
Exit
();
}
...
...
@@ -169,9 +180,9 @@ namespace OnlineStore.DeviceLibrary
//位置配置到文件中
string
appPath
=
Application
.
StartupPath
;
string
moveEquipConfig
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_MoveEquip
);
string
configStr
=
appPath
+
moveEquipConfig
.
Replace
(
".csv"
,
"_"
+
config
.
Id
.
ToString
().
PadLeft
(
2
,
'0'
)
+
".csv"
);
string
configStr
=
appPath
+
moveEquipConfig
.
Replace
(
".csv"
,
"_"
+
config
.
Id
.
ToString
().
PadLeft
(
2
,
'0'
)
+
".csv"
);
allConfigMap
[
config
.
Id
]
=
config
;
bool
result
=
CSVConfigReader
.
SaveConfig
(
configStr
,
config
,
typeof
(
MoveEquip_Config
));
bool
result
=
CSVConfigReader
.
SaveConfig
(
configStr
,
config
,
typeof
(
MoveEquip_Config
));
if
(!
result
)
{
LogUtil
.
error
(
"保存配置文件失败:"
+
configStr
);
...
...
@@ -179,7 +190,7 @@ namespace OnlineStore.DeviceLibrary
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
,
ex
);
LogUtil
.
error
(
"出错:"
,
ex
);
}
}
public
static
void
SaveFeedingEquipConfig
(
FeedingEquip_Config
config
)
...
...
@@ -191,9 +202,9 @@ namespace OnlineStore.DeviceLibrary
string
moveEquipConfig
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_FeedingEquip
);
int
id
=
config
.
Id
-
100
;
string
configStr
=
appPath
+
moveEquipConfig
.
Replace
(
".csv"
,
"_"
+
id
+
".csv"
);
string
configStr
=
appPath
+
moveEquipConfig
.
Replace
(
".csv"
,
"_"
+
id
+
".csv"
);
allConfigMap
[
config
.
Id
]
=
config
;
bool
result
=
CSVConfigReader
.
SaveConfig
(
configStr
,
config
,
typeof
(
FeedingEquip_Config
));
bool
result
=
CSVConfigReader
.
SaveConfig
(
configStr
,
config
,
typeof
(
FeedingEquip_Config
));
if
(!
result
)
{
LogUtil
.
error
(
"保存配置文件失败:"
+
configStr
);
...
...
@@ -201,7 +212,7 @@ namespace OnlineStore.DeviceLibrary
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
,
ex
);
LogUtil
.
error
(
"出错:"
,
ex
);
}
}
public
static
void
SaveProvidingEquipConfig
(
ProvidingEquip_Config
config
)
...
...
@@ -214,7 +225,7 @@ namespace OnlineStore.DeviceLibrary
int
id
=
config
.
Id
-
200
;
string
configStr
=
appPath
+
moveEquipConfig
.
Replace
(
".csv"
,
"_"
+
id
+
".csv"
);
allConfigMap
[
config
.
Id
]
=
config
;
bool
result
=
CSVConfigReader
.
SaveConfig
(
configStr
,
config
,
typeof
(
ProvidingEquip_Config
));
bool
result
=
CSVConfigReader
.
SaveConfig
(
configStr
,
config
,
typeof
(
ProvidingEquip_Config
));
if
(!
result
)
{
LogUtil
.
error
(
"保存配置文件失败:"
+
configStr
);
...
...
@@ -222,7 +233,7 @@ namespace OnlineStore.DeviceLibrary
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
,
ex
);
LogUtil
.
error
(
"出错:"
,
ex
);
}
}
...
...
@@ -245,7 +256,7 @@ namespace OnlineStore.DeviceLibrary
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
,
ex
);
LogUtil
.
error
(
"出错:"
,
ex
);
}
}
...
...
@@ -262,7 +273,7 @@ namespace OnlineStore.DeviceLibrary
{
string
config
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
UseTrayCheck
);
string
[]
array
=
config
.
Split
(
','
);
foreach
(
string
st
in
array
)
foreach
(
string
st
in
array
)
{
try
{
...
...
@@ -284,7 +295,7 @@ namespace OnlineStore.DeviceLibrary
}
useTrayCheck
.
Add
(
id
);
string
config
=
""
;
foreach
(
int
i
in
useTrayCheck
)
foreach
(
int
i
in
useTrayCheck
)
{
config
+=
i
+
","
;
}
...
...
source/DeviceLibrary/model/KTK_Store.cs
查看文件 @
0357949
...
...
@@ -28,10 +28,9 @@ namespace OnlineStore.DeviceLibrary
/// 9=出库执行,10=出仓完成,11=出库失败
/// </summary>
public
LineStatus
lineStatus
=
LineStatus
.
ResetMove
;
/// <summary>
/// 提示消息,一般发给服务器后清空(LineBean表示报警提示消息,BoxBean表示出入库失败的原因记录)
/// </summary>
public
string
WarnMsg
=
""
;
private
WarnParam
warnParam
=
new
WarnParam
();
public
DeviceConfig
baseConfig
=
null
;
public
string
Name
{
get
;
set
;
}
public
int
DeviceID
{
get
;
set
;
}
...
...
@@ -132,7 +131,7 @@ namespace OnlineStore.DeviceLibrary
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"BusyMoveProcess出错:"
,
ex
);
LogUtil
.
error
(
"BusyMoveProcess出错:"
,
ex
);
}
isInPro
=
false
;
}
...
...
@@ -198,9 +197,9 @@ namespace OnlineStore.DeviceLibrary
}
if
(
alarmType
.
Equals
(
LineAlarmType
.
None
))
{
return
true
;
return
true
;
}
return
false
;
return
false
;
}
/// <summary>
/// 开始运行
...
...
@@ -214,7 +213,7 @@ namespace OnlineStore.DeviceLibrary
/// 报警
/// </summary>
/// <param name="alarmType"></param>
public
abstract
void
Alarm
(
LineAlarmType
alarmType
);
public
abstract
void
Alarm
(
LineAlarmType
alarmType
);
/// <summary>
/// 重置(夹料装置状态不变)
/// </summary>
...
...
@@ -223,7 +222,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 停止所有运动
/// </summary>
internal
abstract
void
StopMove
(
);
internal
abstract
void
StopMove
();
/// <summary>
/// 重置处理
...
...
@@ -273,37 +272,8 @@ namespace OnlineStore.DeviceLibrary
protected
abstract
void
InStoreProcess
();
#
endregion
public
void
SetWarnMsg
(
string
msg
=
""
)
{
if
(
String
.
IsNullOrEmpty
(
msg
).
Equals
(
false
))
{
if
(
WarnMsg
.
Equals
(
msg
))
{
if
(
msg
.
StartsWith
(
Name
))
{
LogUtil
.
error
(
msg
,
801
);
}
else
{
LogUtil
.
error
(
Name
+
msg
,
801
);
}
}
else
{
if
(
msg
.
StartsWith
(
Name
))
{
LogUtil
.
error
(
msg
);
}
else
{
LogUtil
.
error
(
Name
+
msg
);
}
}
}
WarnMsg
=
msg
;
}
public
string
GetRunStr
(
)
public
string
GetRunStr
()
{
string
sta
=
"运行中"
;
string
aa
=
""
;
...
...
@@ -368,7 +338,7 @@ namespace OnlineStore.DeviceLibrary
if
(
isInSuddenDown
)
{
aa
=
"急停中"
;
}
else
if
(
isNoAirCheck
)
}
else
if
(
isNoAirCheck
)
{
aa
=
"无气压信号"
;
}
...
...
@@ -457,7 +427,7 @@ namespace OnlineStore.DeviceLibrary
}
public
bool
CylinderIsOk
(
string
IoLowType
,
string
IoHighType
)
{
if
(
IOManager
.
DIValue
(
IoLowType
,
DeviceID
).
Equals
(
IO_VALUE
.
LOW
)
&&
IOManager
.
DIValue
(
IoHighType
,
DeviceID
).
Equals
(
IO_VALUE
.
HIGH
))
{
if
(
IOManager
.
DIValue
(
IoLowType
,
DeviceID
).
Equals
(
IO_VALUE
.
LOW
)
&&
IOManager
.
DIValue
(
IoHighType
,
DeviceID
).
Equals
(
IO_VALUE
.
HIGH
))
{
return
true
;
}
return
false
;
...
...
@@ -520,9 +490,9 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IoLowType
,
IO_VALUE
.
LOW
);
IOMove
(
IoHighType
,
IO_VALUE
.
HIGH
);
}
}
catch
(
Exception
ex
)
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
"CylinderMove ["
+
moveInfo
.
Name
+
"] ["
+
IoLowType
+
"] ["
+
IoHighType
+
"] ["
+
isCheckMove
+
"] 出错:"
+
ex
.
ToString
());
LogUtil
.
error
(
Name
+
"CylinderMove ["
+
moveInfo
.
Name
+
"] ["
+
IoLowType
+
"] ["
+
IoHighType
+
"] ["
+
isCheckMove
+
"] 出错:"
+
ex
.
ToString
());
}
}
...
...
@@ -555,7 +525,7 @@ namespace OnlineStore.DeviceLibrary
IO_VALUE
tValue
=
value
.
Equals
(
IO_VALUE
.
HIGH
)
?
IO_VALUE
.
LOW
:
IO_VALUE
.
HIGH
;
if
(
IOValue
(
IoType
).
Equals
(
tValue
).
Equals
(
false
))
{
if
(
IoType
.
Equals
(
IO_Type
.
StopCylinder_Down1
).
Equals
(
false
)
&&
IoType
.
Equals
(
IO_Type
.
SW_StopDown
).
Equals
(
false
))
if
(
IoType
.
Equals
(
IO_Type
.
StopCylinder_Down1
).
Equals
(
false
)
&&
IoType
.
Equals
(
IO_Type
.
SW_StopDown
).
Equals
(
false
))
{
LogUtil
.
info
(
Name
+
"定时回写IO: ["
+
IoType
+
"]=["
+
value
+
"],["
+
baseConfig
.
Id
+
"],msTime="
+
msTime
);
}
...
...
@@ -601,6 +571,143 @@ namespace OnlineStore.DeviceLibrary
return
false
;
}
}
/// <summary>
/// 设置报警消息,报警类型,清除报警时记录日志
/// </summary>
/// <param name="msg"></param>
/// <param name="logtype"></param>
/// <param name="logseconds"></param>
public
void
SetWarnMsg
(
string
msg
=
""
,
string
alarmType
=
""
,
LineMoveInfo
moveInfo
=
null
,
int
logseconds
=
10
)
{
int
logtype
=
801
;
if
(
moveInfo
!=
null
)
{
logtype
=
DeviceID
*
10000
+
(
int
)
moveInfo
.
MoveStep
;
}
if
(
String
.
IsNullOrEmpty
(
msg
).
Equals
(
false
))
{
if
(
WarnMsg
.
Equals
(
msg
))
{
if
(
msg
.
StartsWith
(
Name
))
{
LogUtil
.
error
(
msg
,
logtype
,
logseconds
);
}
else
{
LogUtil
.
error
(
Name
+
msg
,
logtype
,
logseconds
);
}
}
else
{
if
(
msg
.
StartsWith
(
Name
))
{
LogUtil
.
error
(
msg
);
}
else
{
LogUtil
.
error
(
Name
+
msg
);
}
}
}
if
(!
warnParam
.
AlarmType
.
Equals
(
alarmType
))
{
//报警类型不一致,若之前不是空,记录日志
if
(!
String
.
IsNullOrEmpty
(
warnParam
.
AlarmType
))
{
RunLogUtil
.
ErrorLog
(
new
ErrorLog
(
Name
,
warnParam
.
AlarmType
,
WarnMsg
,
warnParam
.
StartTime
,
DateTime
.
Now
,
warnParam
.
OperteType
,
warnParam
.
PosId
,
warnParam
.
Barcode
));
}
//更新开始时间
warnParam
.
StartTime
=
DateTime
.
Now
;
if
(
moveInfo
!=
null
)
{
warnParam
.
PosId
=
moveInfo
.
MoveParam
?.
PosId
;
warnParam
.
Barcode
=
moveInfo
.
MoveParam
?.
WareCode
;
warnParam
.
OperteType
=
moveInfo
.
GetMoveType
();
}
else
{
warnParam
.
PosId
=
""
;
warnParam
.
Barcode
=
""
;
warnParam
.
OperteType
=
""
;
}
}
WarnMsg
=
msg
;
warnParam
.
AlarmType
=
alarmType
;
}
protected
void
MoveTimeoutAlarm
(
LineMoveInfo
move
,
string
alarmType
)
{
SetWarnMsg
(
move
.
Name
+
"["
+
move
.
GetMoveType
()
+
"]["
+
move
.
SLog
+
"] "
+
alarmType
+
" ["
+
FormUtil
.
GetSpanStr
(
move
.
StepSpan
())
+
"]"
,
alarmType
,
move
);
Alarm
(
LineAlarmType
.
IoSingleTimeOut
);
}
protected
void
ClearTimeoutAlarm
(
string
msg
)
{
if
(
isInSuddenDown
||
isNoAirCheck
)
{
return
;
}
if
(
WarnMsg
.
Contains
(
msg
)
&&
alarmType
.
Equals
(
LineAlarmType
.
IoSingleTimeOut
))
{
LogUtil
.
info
(
Name
+
"清理信号超时报警【"
+
WarnMsg
+
"】 "
);
alarmType
=
LineAlarmType
.
None
;
SetWarnMsg
(
""
);
}
}
protected
void
ClearStepAlarm
(
string
stepDes
)
{
if
(
isInSuddenDown
||
isNoAirCheck
)
{
return
;
}
if
(
String
.
IsNullOrEmpty
(
WarnMsg
).
Equals
(
false
)
&&
String
.
IsNullOrEmpty
(
warnParam
.
AlarmType
).
Equals
(
false
))
{
if
(
alarmType
.
Equals
(
LineAlarmType
.
IoSingleTimeOut
)){
string
alarmTypeStr
=
stepDes
+
"_超时报警"
;
if
(
warnParam
.
AlarmType
.
Equals
(
alarmTypeStr
))
{
LogUtil
.
info
(
Name
+
$
"步骤{stepDes}结束,清理【{ WarnMsg }】 "
);
alarmType
=
LineAlarmType
.
None
;
SetWarnMsg
(
""
);
}
}
else
if
(
alarmType
.
Equals
(
LineAlarmType
.
AxisMoveError
))
{
string
alarmTypeStr
=
stepDes
+
"_轴运动报警"
;
if
(
warnParam
.
AlarmType
.
Equals
(
alarmTypeStr
))
{
LogUtil
.
info
(
Name
+
$
"步骤{stepDes}结束,清理【{ WarnMsg }】 "
);
alarmType
=
LineAlarmType
.
None
;
SetWarnMsg
(
""
);
}
}
}
}
}
public
class
WarnParam
{
public
WarnParam
()
{
}
public
WarnParam
(
string
alarmType
,
DateTime
startTime
,
string
operType
,
string
posId
,
string
barcode
)
{
this
.
AlarmType
=
alarmType
;
this
.
StartTime
=
startTime
;
this
.
OperteType
=
operType
;
this
.
PosId
=
posId
;
this
.
Barcode
=
barcode
;
}
public
string
AlarmType
=
""
;
public
DateTime
StartTime
=
DateTime
.
Now
;
public
string
OperteType
=
""
;
public
string
PosId
=
""
;
public
string
Barcode
=
""
;
}
}
source/DeviceLibrary/model/LineMoveInfo.cs
查看文件 @
0357949
...
...
@@ -3,6 +3,7 @@ using OnlineStore.DeviceLibrary;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Linq
;
using
System.Text
;
...
...
@@ -36,6 +37,9 @@ namespace OnlineStore.DeviceLibrary
public
DateTime
LastSetpTime
{
get
;
set
;
}
public
DateTime
MoveStartTime
{
get
;
set
;
}
/// <summary>
/// =true表示满足一个等待条件,就可以完成此步骤的等待
/// </summary>
...
...
@@ -82,6 +86,22 @@ namespace OnlineStore.DeviceLibrary
{
get
{
return
moveStep
;
}
}
public
string
GetStepDes
()
{
string
currName
=
moveStep
.
ToString
();
try
{
if
(
LineManager
.
StepDesMap
.
ContainsKey
(
currName
))
{
return
LineManager
.
StepDesMap
[
currName
];
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"GetStepDes 出错:"
+
ex
.
ToString
());
}
return
currName
;
}
public
string
SLog
{
get
{
return
" "
+
MoveStep
+
" "
;
}
...
...
@@ -100,8 +120,31 @@ namespace OnlineStore.DeviceLibrary
TimeSpan
span
=
DateTime
.
Now
-
LastSetpTime
;
return
span
;
}
public
string
GetMoveType
()
{
switch
(
moveType
)
{
case
LineMoveType
.
CheckFixture
:
return
"托盘处理"
;
break
;
case
LineMoveType
.
InStore
:
return
"入料"
;
break
;
case
LineMoveType
.
OutStore
:
return
"出料"
;
break
;
case
LineMoveType
.
Reset
:
return
"复位"
;
break
;
case
LineMoveType
.
ReturnHome
:
return
"回原"
;
break
;
}
return
""
;
}
public
void
NextMoveStep
(
LineMoveStep
step
)
{
StepMoveLog
();
PreMoveStep
=
moveStep
;
moveStep
=
step
;
LastSetpTime
=
DateTime
.
Now
;
...
...
@@ -111,6 +154,18 @@ namespace OnlineStore.DeviceLibrary
OneWaitCanEndStep
=
false
;
CanWhileCount
=
5
;
}
private
void
StepMoveLog
()
{
try
{
RunLogUtil
.
MoveLog
(
new
MoveLog
(
Name
,
GetMoveType
(),
GetStepDes
(),
LastSetpTime
,
DateTime
.
Now
,
MoveParam
.
PosId
,
MoveParam
.
WareCode
));
}
catch
(
Exception
ex
)
{
}
}
/// <summary>
/// 当前步骤执行完成
/// </summary>
...
...
@@ -128,6 +183,7 @@ namespace OnlineStore.DeviceLibrary
WaitList
=
new
List
<
WaitResultInfo
>();
WriteIoList
=
new
List
<
WriteIOInfo
>();
MoveNum
++;
MoveStartTime
=
DateTime
.
Now
;
}
public
void
NewMove
(
LineMoveType
type
,
InOutParam
param
)
{
...
...
@@ -137,9 +193,11 @@ namespace OnlineStore.DeviceLibrary
LastSetpTime
=
DateTime
.
Now
;
WaitList
=
new
List
<
WaitResultInfo
>();
WriteIoList
=
new
List
<
WriteIOInfo
>();
MoveStartTime
=
DateTime
.
Now
;
}
public
void
EndMove
()
{
StepMoveLog
();
this
.
moveType
=
LineMoveType
.
None
;
this
.
MoveParam
=
null
;
moveStep
=
LineMoveStep
.
Wait
;
...
...
@@ -217,40 +275,40 @@ namespace OnlineStore.DeviceLibrary
wait
.
IsEnd
=
false
;
return
wait
;
}
public
static
WaitResultInfo
WaitStell
(
byte
slvAddr
,
int
targetPosition
,
int
speed
)
{
WaitResultInfo
wait
=
new
WaitResultInfo
();
wait
.
CanWhileMoveCount
=
10
;
wait
.
WaitType
=
WaitEnum
.
W004_StellMove
;
wait
.
SlvAddr
=
slvAddr
;
wait
.
IsHomeMove
=
false
;
wait
.
TargetPosition
=
targetPosition
;
wait
.
TargetSpeed
=
speed
;
wait
.
IsEnd
=
false
;
return
wait
;
}
public
static
WaitResultInfo
WaitStellHome
(
byte
slvAddr
,
int
targetPosition
,
int
speed
)
{
WaitResultInfo
wait
=
new
WaitResultInfo
();
wait
.
CanWhileMoveCount
=
10
;
wait
.
WaitType
=
WaitEnum
.
W004_StellMove
;
wait
.
SlvAddr
=
slvAddr
;
wait
.
IsHomeMove
=
true
;
wait
.
TargetPosition
=
0
;
wait
.
TargetSpeed
=
speed
;
wait
.
IsEnd
=
false
;
return
wait
;
}
public
static
WaitResultInfo
WaitShuoKe
(
int
slvAddr
,
int
targetPosition
,
bool
isHome
)
{
WaitResultInfo
wait
=
new
WaitResultInfo
();
wait
.
CanWhileMoveCount
=
0
;
wait
.
WaitType
=
WaitEnum
.
W005_ShuoKe
;
wait
.
SlvAddr
=(
byte
)
slvAddr
;
wait
.
TargetPosition
=
targetPosition
;
wait
.
IsHomeMove
=
isHome
;
return
wait
;
}
//
public static WaitResultInfo WaitStell(byte slvAddr, int targetPosition, int speed)
//
{
//
WaitResultInfo wait = new WaitResultInfo();
//
wait.CanWhileMoveCount =10;
//
wait.WaitType = WaitEnum.W004_StellMove;
//
wait.SlvAddr = slvAddr;
//
wait.IsHomeMove = false;
//
wait.TargetPosition = targetPosition;
//
wait.TargetSpeed = speed;
//
wait.IsEnd = false;
//
return wait;
//
}
//
public static WaitResultInfo WaitStellHome(byte slvAddr, int targetPosition, int speed)
//
{
//
WaitResultInfo wait = new WaitResultInfo();
//
wait.CanWhileMoveCount = 10;
//
wait.WaitType = WaitEnum.W004_StellMove;
//
wait.SlvAddr = slvAddr;
//
wait.IsHomeMove = true;
//
wait.TargetPosition = 0;
//
wait.TargetSpeed = speed;
//
wait.IsEnd = false;
//
return wait;
//
}
//
public static WaitResultInfo WaitShuoKe(int slvAddr, int targetPosition, bool isHome)
//
{
//
WaitResultInfo wait = new WaitResultInfo();
//
wait.CanWhileMoveCount = 0;
//
wait.WaitType = WaitEnum.W005_ShuoKe;
//
wait.SlvAddr =(byte) slvAddr;
//
wait.TargetPosition = targetPosition;
//
wait.IsHomeMove = isHome;
//
return wait;
//
}
public
static
WaitResultInfo
WaitTime
(
int
MScends
)
{
WaitResultInfo
wait
=
new
WaitResultInfo
();
...
...
@@ -573,9 +631,5 @@ namespace OnlineStore.DeviceLibrary
/// 移栽装置的停止,需要先远点返回,然后停止
/// </summary>
StopMove
=
5
,
///// <summary>
///// 移栽检测托盘
///// </summary>
//CheckFixture=6,
}
}
source/DeviceLibrary/model/StoreStep.cs
查看文件 @
0357949
...
...
@@ -4,6 +4,7 @@ using OnlineStore.DeviceLibrary;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Drawing
;
using
System.IO
;
using
System.IO.Ports
;
...
...
@@ -14,7 +15,25 @@ using System.Windows.Forms;
namespace
OnlineStore.DeviceLibrary
{
public
static
class
EnumDesHelper
{
public
static
string
GetStepDes
(
this
Enum
val
)
{
var
type
=
val
.
GetType
();
var
memberInfo
=
type
.
GetMember
(
val
.
ToString
());
var
attributes
=
memberInfo
[
0
].
GetCustomAttributes
(
typeof
(
DescriptionAttribute
),
false
);
if
(
attributes
==
null
||
attributes
.
Length
!=
1
)
{
//如果没有定义描述,就把当前枚举值的对应名称返回
return
val
.
ToString
();
}
return
(
attributes
.
Single
()
as
DescriptionAttribute
).
Description
;
}
}
/// <summary>
///0= 等待启动/已经停止,1=初始化完成, 2=正常运行中,3=可以进行新的处理,4=忙碌,重置
/// </summary>
...
...
@@ -115,318 +134,320 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 无操作,等待状态
/// </summary>
[
Description
(
"等待开始"
)]
Wait
=
0
,
#
region
流水线入仓操作
100
开始
/// <summary>
/// 流水线入仓,开始扫码 扫描枪触发,数据处理
/// </summary>
LI_Scannering
=
101
,
/// <summary>
/// 流水线入仓,料仓号及库位号发送, 夹具号编码记忆(X5,X6.X7)数据接收
/// </summary>
LI_WaitServerResult
=
102
,
/// <summary>
/// 等待100毫秒后再放行
/// </summary>
LI_00_Wait100
=
103
,
/// <summary>
/// 阻挡气缸0-2下降
/// </summary>
LI_01_Stop2Down
=
104
,
/// <summary>
/// 检测夹具检测1=0 ) 开始
/// </summary>
LI_02_FixtureCheck
=
105
,
/// <summary>
/// 阻挡气缸0-2上升
/// </summary>
LI_03_Stop2Up
=
106
,
/// <summary>
/// 阻挡气缸0-1下降
/// </summary>
LI_04_Stop1Down
=
107
,
#
endregion
#
region
流水线出库操作
200
开始
/// <summary>
/// 流水线出库,等待100毫秒之后在放行
/// </summary>
LO_00_Wait100
=
200
,
/// <summary>
/// 流水线出库,阻挡气缸0-2下降
/// </summary>
LO_01_Stop2Down
=
201
,
/// <summary>
/// 流水线出库, 检测夹具检测1=0
/// </summary>
LO_02_FixtureCheck
=
202
,
/// <summary>
/// 流水线出库,阻挡气缸0-2上升
/// </summary>
LO_03_Stop2Up
=
203
,
/// <summary>
/// 阻挡气缸0-1下降
/// </summary>
LO_04_Stop1Up
=
204
,
#
endregion
#
region
移栽装置原点返回和重置步骤
2000
开始
#
region
移栽装置原点返回和重置步骤
1000
开始
/// <summary>
/// 上下气缸回原点
/// </summary>
MH_UpDownHome
=
2000
,
[
Description
(
"复位_升降轴原点返回"
)]
MH_UpDownHome
=
1000
,
/// <summary>
/// 料仓移栽装置,上下气缸上升端
/// </summary>
MH_CylinderUp
=
2001
,
[
Description
(
"复位_上下气缸到待机点"
)]
MH_CylinderUp
,
/// <summary>
/// 料仓移载装置,其他气缸运行到初始状态( 顶升气缸下降端,前后气缸后退端,夹料气缸放松端,阻挡气缸输入=0 )
/// </summary>
MH_OtherCylinderBack
=
2002
,
[
Description
(
"复位_其他气缸复位,顶升气缸下降,前后气缸后退,夹料气缸放松"
)]
MH_OtherCylinderBack
,
/// <summary>
/// 料仓移载装置,等待夹爪无料
/// </summary>
MH_ClampCheck
=
2003
,
[
Description
(
"复位_等待夹爪无料"
)]
MH_ClampCheck
,
#
endregion
#
region
移载装置入库处理
3000
-
30
50
#
region
移载装置入库处理
1100
-
11
50
/// <summary>
///移载装置入库处理,升降气缸上升
/// </summary>
MI_00_UpdownUp
=
3000
,
[
Description
(
"入库_取料前_升降气缸上升"
)]
MI_00_UpdownUp
=
1100
,
/// <summary>
///移载装置入库处理,横移气缸后退
/// </summary>
[
Description
(
"入库_取料前_前后气缸后退,等待夹爪无料"
)]
MI_01_ToLineUp
,
/// <summary>
///移载装置入库处理,如果是>=30的料,先顶升上升
/// </summary>
[
Description
(
"入库_取料前_顶升气缸上升"
)]
MI_02_TopUP
,
/// <summary>
///移载装置入库处理,
编码与仓位一致,上下气缸1下降
///移载装置入库处理,
升降气缸下降,顶升气缸上升
/// </summary>
[
Description
(
"入库_取料前_升降气缸下降,顶升气缸上升"
)]
MI_03_CylinderDown
,
/// <summary>
///移载装置入库处理,
编码与仓位一致,上下气缸1下降后,等待0.3秒,防止没有 下降到位就
夹紧
///移载装置入库处理,
等待200ms后
夹紧
/// </summary>
[
Description
(
"入库_取料_等待200ms后夹紧"
)]
MI_04_DownWait
,
/// <summary>
///移载装置入库处理,夹料气缸1夹紧
/// </summary>
[
Description
(
"入库_取料_夹料气缸夹紧"
)]
MI_05_CylinderOpen
,
/// <summary>
///移载装置入库处理,上下气缸1上升
/// </summary>
[
Description
(
"入库_取料完成_升降气缸上升"
)]
MI_06_CylinderUp
,
/// <summary>
///移载装置入库处理,等待夹爪有料
/// </summary>
[
Description
(
"入库_取料完成_等待夹爪有料"
)]
MI_07_ClampCheck
,
/// <summary>
/// 移载装置入库处理,等待box等待状态才能继续操作
/// </summary>
[
Description
(
"入库_取料完成_等待box可入库"
)]
MI_08_WaitBox
,
/// <summary>
///移载装置入库处理,,前后气缸1前进
/// </summary>
[
Description
(
"入库_取料完成_前后气缸前进"
)]
MI_09_CylinderBefore
,
/// <summary>
///移载装置入库处理,上下气缸1下降
/// </summary>
MI_11_CylinderDown
=
3011
,
[
Description
(
"入库_取料完成_升降气缸下降"
)]
MI_11_CylinderDown
=
1111
,
/// <summary>
///移载装置入库处理,,夹料气缸1放松
/// </summary>
MI_12_CylinderRelax
=
3012
,
[
Description
(
"入库_放料_夹料气缸放松"
)]
MI_12_CylinderRelax
,
/// <summary>
///移载装置入库处理,上下气缸1上升
/// </summary>
MI_13_UpdownCylinderUp
=
3013
,
[
Description
(
"入库_放料完成_升降气缸上升"
)]
MI_13_UpdownCylinderUp
,
/// <summary>
///移载装置入库处理,,前后气缸1后退
/// </summary>
MI_14_CylinderAfter
=
3014
,
[
Description
(
"入库_放料完成_前后气缸后退"
)]
MI_14_CylinderAfter
,
/// <summary>
///移载装置入库处理,,前后气缸已后退,通知料仓入库
/// </summary>
MI_15_SendPosToStore
=
3015
,
[
Description
(
"入库_放料完成_通知料仓入库"
)]
MI_15_SendPosToStore
,
/// <summary>
///移载装置入库处理,检测到X102-1=1送料流程完成
/// </summary>
MI_16_SendEnd
=
3016
,
[
Description
(
"入库_放料完成"
)]
MI_16_SendEnd
,
/// <summary>
///入库:升降轴下降取料盘失败,升降轴上升,托盘禁用,托盘放行
/// </summary>
MI_18_UpdownUp
=
3018
,
[
Description
(
"入库_放料完成_升降气缸上升,顶升气缸下降"
)]
MI_18_UpdownUp
,
#
endregion
#
region
移栽装置出入库共同模块
3080
-
3
100
#
region
移栽装置出入库共同模块
1180
-
1
100
/// <summary>
///移载(流水线)装置出入库处理,阻挡气缸1-1下降
/// </summary>
MIO_00_Stop1Down
=
3080
,
[
Description
(
"托盘处理_前阻挡检测到托盘,前阻挡下降"
)]
MIO_00_Stop1Down
=
1180
,
/// <summary>
///移载(流水线)装置出入库处理,夹具检测1-4=1
/// </summary>
MIO_01_FixtureCheck
=
3081
,
/// <summary>
/// 移载(流水线)装置出入库处理,等待夹具持续500毫秒
/// </summary>
MIO_02_WaitFixture
=
3082
,
[
Description
(
"托盘处理_等待托盘检测信号亮"
)]
MIO_01_FixtureCheck
,
// /// <summary>
// /// 移载(流水线)装置出入库处理,等待夹具持续500毫秒
///// </summary>
//MIO_02_WaitFixture ,
/// <summary>
///移载(流水线)装置出入库处理,阻挡气缸1-1上升
/// </summary>
MIO_03_Stop2Down
=
3083
,
[
Description
(
"托盘处理_托盘检测信号亮,前阻挡上升"
)]
MIO_03_Stop2Down
,
/// <summary>
/// 检测夹具检测IO1=1
/// </summary>
MIO_04_Wait
=
3084
,
[
Description
(
"托盘处理_等待托盘检测信号稳定"
)]
MIO_04_Wait
,
/// <summary>
///
等待一秒钟
///
托盘处理_托盘需要出入库,等待顶升气缸上升
/// </summary>
MIO_05_WaitTime
=
3085
,
[
Description
(
"托盘处理_托盘需要出入库,等待顶升气缸上升"
)]
MIO_05_WaitTime
,
/// <summary>
///移载(流水线)装置出入库处理,顶 升气缸上升
/// </summary>
MIO_06_TopUp
=
3086
,
/// <summary>
/// 移载(流水线)装置出入库处理,定位气缸上升
/// </summary>
MIO_07_LocationUp
=
3087
,
[
Description
(
"托盘处理_顶升气缸上升"
)]
MIO_06_TopUp
,
///// <summary>
///// 移载(流水线)装置出入库处理,定位气缸上升
///// </summary>
//MIO_07_LocationUp ,
/// <summary>
/// 等待StoreMove完成当前操作开始入库
/// </summary>
MIO_08_WaitInStore
=
3088
,
[
Description
(
"托盘处理_等待开始入库"
)]
MIO_08_WaitInStore
,
/// <summary>
/// 等待StoreMove移走料盘开始放托盘通过
/// </summary>
MIO_09_WaitLetFixtureGo
=
3089
,
[
Description
(
"托盘处理_开始出入库,等待移栽拿走料盘"
)]
MIO_09_WaitLetFixtureGo
,
/// <summary>
///
等待禁用托盘被启用
///
拦截禁用托盘,等待托盘启用后再放行
/// </summary>
MIO_10_WaitProDisableTray
=
3090
,
[
Description
(
"托盘处理_拦截禁用托盘,等待托盘启用后再放行"
)]
MIO_10_WaitProDisableTray
,
#
endregion
#
region
移栽装置出库处理
3100
-
32
00
#
region
移栽装置出库处理
1200
-
13
00
/// <summary>
/// 移载(流水线)装置出库处理, 出库盘,高度>=30,需要先顶升下降
/// </summary>
MO_10_TopDown
=
3100
,
[
Description
(
"托盘出库_出库前顶升气缸先下降"
)]
MO_10_TopDown
=
1200
,
/// <summary>
/// 移载(流水线)装置出库处理, 检测夹具编码并记忆,托盘 是空盘,并且BOX在出库等待中,开始移栽料盘
/// </summary>
MO_11_CodeRember
=
3101
,
[
Description
(
"托盘出库_等待移栽拿走料盘"
)]
MO_11_CodeRember
,
/// <summary>
/// 移栽处理已完成,开始扫码或继续托盘处理流程
/// </summary>
MO_12_MoveOk
=
3102
,
[
Description
(
"托盘处理_取放料完成,托盘可离开"
)]
MO_12_MoveOk
,
/// <summary>
/// 移载(流水线)定位气缸下降
/// </summary>
MO_13_LoactionDown
=
3103
,
/// </summary
[
Description
(
"托盘离开_定位气缸下降"
)]
MO_13_LoactionDown
,
/// <summary>
/// 移载(流水线)装置出库处理 ,顶升气缸1下降
/// </summary>
MO_14_TopDown
=
3104
,
[
Description
(
"托盘离开_顶升气缸下降"
)]
MO_14_TopDown
,
/// <summary>
/// 如果是移栽2需要等待托盘是否可以走
/// </summary>
MO_15_WaitCanGo
=
3105
,
[
Description
(
"托盘离开_托盘可离开,等待阻挡下降放托盘离开"
)]
MO_15_WaitCanGo
,
/// <summary>
/// 移载(流水线)装置出库处理, 阻挡气缸1-2下降
/// </summary>
MO_16_Stop2Down
=
3106
,
[
Description
(
"托盘离开_阻挡2下降"
)]
MO_16_Stop2Down
,
/// <summary>
/// 移载(流水线)装置出库处理, 阻挡2托盘检测=0,
/// </summary>
MO_17_Stop2Check
=
3107
,
[
Description
(
"托盘离开_等待托盘检测信号消失"
)]
MO_17_Stop2Check
,
/// <summary>
/// 移载(流水线)装置出库处理, 延迟500ms后上升阻挡2
/// </summary>
MO_18_WaitTime
=
3108
,
[
Description
(
"托盘离开_等待300ms后阻挡2上升"
)]
MO_18_WaitTime
,
/// <summary>
/// 移载(流水线)装置出库处理, 阻挡气缸1-1下降 阻挡气缸1-2上升
/// </summary>
MO_19_StopCylinder_Back
=
3109
,
[
Description
(
"托盘离开_阻挡2上升"
)]
MO_19_StopCylinder_Back
,
/// <summary>
/// 移栽装置出库处理,开始出库
/// </summary>
MO_50_StartOutProcess
=
3150
,
[
Description
(
"开始出库_升降气缸上升"
)]
MO_50_StartOutProcess
=
1250
,
/// <summary>
/// 移栽装置出库处理。。前后气缸1前进
/// </summary>
[
Description
(
"出库_取料前_前后气缸前进"
)]
MO_51_CylinderBefore
,
/// <summary>
/// 移栽装置出库处理。上下气缸1下降
/// </summary>
[
Description
(
"出库_取料前_升降气缸下降"
)]
MO_52_CylinderDown
,
/// <summary>
/// 移栽装置出库处理。上下气缸1下降后,等待0.3秒再夹紧,防止没有下降到位就夹紧操作
/// </summary>
[
Description
(
"出库_取料前_等待200ms后夹紧"
)]
MO_53_DownWait
,
/// <summary>
/// 移栽装置出库处理。 夹料气缸1夹紧
/// </summary>
[
Description
(
"出库_取料_夹爪夹紧"
)]
MO_54_CylinderOpen
,
/// <summary>
/// 移栽装置出库处理。 上下气缸1上升
/// </summary>
[
Description
(
"出库_取料完成_升降气缸上升"
)]
MO_55_CylinderUp
,
/// <summary>
/// 移栽装置出库处理。 检测夹爪有料
/// </summary>
[
Description
(
"出库_取料完成_检测夹爪有料"
)]
MO_56_ClarmpCheck
,
/// <summary>
/// 移栽装置出库处理。 前后气缸1后退
/// </summary>
[
Description
(
"出库_取料完成_前后气缸后退"
)]
MO_61_CylinderAfter
,
/// <summary>
/// 移载(流水线)装置出库处理,上下气缸1下降
/// </summary>
[
Description
(
"出库_取料完成_升降气缸下降"
)]
MO_62_CylinderDown
,
/// <summary>
/// 移载(流水线)装置出库处理,夹爪放松
/// </summary>
[
Description
(
"出库_放料_夹爪放松"
)]
MO_63_CylinderRelax
,
/// <summary>
/// 移载(流水线)装置出库处理,夹爪夹紧
/// </summary>
[
Description
(
"出库_放料_夹爪夹紧"
)]
MO_64_CylinderWork
,
/// <summary>
/// 移载(流水线)装置出库处理,夹爪放松
/// </summary>
[
Description
(
"出库_放料_再次夹爪放松"
)]
MO_65_CylinderRelax2
,
/// <summary>
/// 移载(流水线)装置出库处理,上下气缸
1上升
/// 移载(流水线)装置出库处理,上下气缸
上升,同时顶升气缸先下降
/// </summary>
[
Description
(
"出库_放料完成_上下气缸上升,同时顶升气缸先下降"
)]
MO_66_CylinderUp
,
#
region
入料模块,紧急出料移栽处理
#
region
入料模块,紧急出料移栽处理
1290
/// <summary>
/// 等待当前的出入库结束
/// </summary>
MO_200_WaitInoutParam
=
3200
,
[
Description
(
"紧急出料_等待紧急料模块开始出库"
)]
MO_200_WaitInoutParam
=
1290
,
/// <summary>
/// 等待紧急出料结束
/// </summary>
MO_201_WaitOutEnd
=
3201
,
[
Description
(
"紧急出料_等待紧急出料结束"
)]
MO_201_WaitOutEnd
=
1291
,
#
endregion
...
...
@@ -435,192 +456,212 @@ namespace OnlineStore.DeviceLibrary
#
region
横移轨道处理
5000
开始
SW00_Wait
=
5000
,
#
region
横移轨道处理
300
开始
[
Description
(
"托盘横移_等待"
)]
SW00_Wait
=
300
,
/// <summary>
/// 阻挡气缸下降
/// </summary>
SW01_StopDown
=
5001
,
[
Description
(
"托盘横移_阻挡气缸下降"
)]
SW01_StopDown
,
/// <summary>
/// 等待
到托盘信号后,需要持续一段时间
/// 等待
横移托盘检测信号
/// </summary>
SW02_WaitCheckTime
=
5002
,
[
Description
(
"托盘横移_等待横移托盘检测信号"
)]
SW02_WaitCheckTime
,
/// <summary>
/// 等待到托盘信号后,需要持续一段时间
/// </summary>
SW03_WaitTime
=
5003
,
[
Description
(
"托盘横移_再次等待横移托盘检测信号"
)]
SW03_WaitTime
,
/// <summary>
/// 等待轨道1夹具检测信号,等待横移3或横移1无托盘
/// </summary>
SW04_WaitCanUp
=
5004
,
[
Description
(
"托盘横移_等待顶升气缸可顶升"
)]
SW04_WaitCanUp
,
/// <summary>
/// 定位气缸下降
/// </summary>
SW05_LocationDown
=
5005
,
[
Description
(
"托盘横移_定位气缸下降"
)]
SW05_LocationDown
,
/// <summary>
/// 横移轨道顶升气缸上升
/// </summary>
SW06_TopCylinderUp
=
5006
,
[
Description
(
"托盘横移_顶升气缸上升"
)]
SW06_TopCylinderUp
,
/// <summary>
/// 等待第二个横移没有托盘
/// </summary>
SW07_WaitNoTray
=
5007
,
[
Description
(
"托盘横移_等待横移出口没有料盘"
)]
SW07_WaitNoTray
,
/// <summary>
/// 横移轨道点击转动
/// </summary>
SW08_DriveMotorMove
=
5008
,
[
Description
(
"托盘横移_横移电机转动"
)]
SW08_DriveMotorMove
,
/// <summary>
/// 收到横移轨道2夹具检测信号
/// </summary>
SW09_WaitOutCheck
=
5009
,
[
Description
(
"托盘横移_等待托盘到达横移出库"
)]
SW09_WaitOutCheck
,
/// <summary>
/// 等待出口信号持续一段时间
/// </summary>
SW10_WatOutFixture2
=
5010
,
[
Description
(
"托盘横移_再次验证托盘是否在出口处,停止横移入库电机转动"
)]
SW10_WatOutFixture2
,
/// <summary>
/// 停止横移轨道转动,横移轨道顶升气缸下降
/// </summary>
SW11_TopDown
=
5011
,
[
Description
(
"托盘横移_顶升气缸下降"
)]
SW11_TopDown
,
/// <summary>
/// 等待托盘流出,等待1秒后再检测托盘信号是否消失
/// </summary>
SW12_WaitTime
=
5012
,
[
Description
(
"托盘横移_停止横移电机转动"
)]
SW12_WaitTime
,
/// <summary>
/// 等待托盘流出,上升阻挡气缸
/// </summary>
SW13_WaitTrayGo
=
5013
,
[
Description
(
"托盘横移_等待托盘离开横移机构"
)]
SW13_WaitTrayGo
,
#
endregion
#
region
分流横移处理
60
00
开始
#
region
分流横移处理
4
00
开始
/// <summary>
/// 分流横移:前阻挡下降
/// </summary>
Shunt01_StopDown1
=
6001
,
[
Description
(
"分流横移_前阻挡下降"
)]
Shunt01_StopDown1
=
400
,
/// <summary>
/// 分流横移:等待Shunt_Check1_Front亮
/// </summary>
[
Description
(
"分流横移_阻挡1亮,阻挡2亮,阻挡1上升,升降1下降"
)]
Shunt02_WaitTime
,
/// <summary>
/// 分流横移:等待阻挡可下降
/// </summary>
[
Description
(
"分流横移_等待阻挡可下降"
)]
Shunt03_WaitStop1Down
,
/// <summary>
/// 分流横移:托盘不需要横移,阻挡1下降1200,
/// </summary>
[
Description
(
"分流横移_托盘不需要横移,阻挡1下降1200,"
)]
Shunt04_Stop1Down
,
/// <summary>
/// 分流横移:等待检测1信号消失
/// </summary>
[
Description
(
"分流横移_等待检测1信号消失"
)]
Shunt05_WaitCheck1Low
,
/// <summary>
/// 分流横移:阻挡1上升,升降1上升,等待升降2是否可上升
/// </summary>
[
Description
(
"分流横移_阻挡1上升,升降1上升,等待升降2是否可上升"
)]
Shunt06_Top1Up
,
/// <summary>
/// 分流横移:升降2开始上升
/// </summary>
[
Description
(
"分流横移_升降2开始上升"
)]
Shunt07_Top2Up
,
/// <summary>
/// 分流横移:两边皮带线开始转动
/// </summary>
[
Description
(
"分流横移_两边皮带线转动"
)]
Shunt08_DriveMotorMove
,
/// <summary>
/// 分流横移:等待检测2信号消失
/// </summary>
[
Description
(
"分流横移_等待检测2信号消失"
)]
Shunt09_Top1Down
,
/// <summary>
/// 分流横移:升降1先下降,皮带1停止,等待检测4信号亮
/// </summary>
[
Description
(
"分流横移_升降1先下降,皮带1停止,等待检测4信号亮"
)]
Shunt10_WaitCheck
,
/// <summary>
/// 分流横移:升降2下降,皮带线停止
/// </summary>
[
Description
(
"分流横移_升降2下降,皮带线停止"
)]
Shunt11_TopDown
,
#
endregion
#
region
入料装置原点返回,
10000
开始
#
region
入料装置原点返回,
2000
开始
/// <summary>
/// 复位之前,所有阻挡先上升到位
/// </summary>
FR_01_StopUp
=
10001
,
[
Description
(
"复位_所有阻挡上升"
)]
FR_01_StopUp
=
2000
,
/// <summary>
/// 复位之前,
所有的
链条先转动3秒钟
/// 复位之前,
放料顶升下降, 所有阻挡上升,
链条先转动3秒钟
/// </summary>
FR_02_LineRun
=
10002
,
[
Description
(
"复位_放料顶升下降, 所有阻挡上升,链条先转动3秒钟"
)]
FR_02_LineRun
,
/// <summary>
///
横移装置上升,
///
链条停止转动,上料横移机构上升,出口顶升下降,所有阻挡气缸上升
/// </summary>
FR_03_CylinderUp
=
10003
,
[
Description
(
"复位_链条停止转动,上料横移机构上升,出口顶升下降,所有阻挡气缸上升"
)]
FR_03_CylinderUp
,
/// <summary>
/// 升降伺服回原点
/// </summary>
FR_04_UpdownAxisHome
=
10004
,
[
Description
(
"复位_升降伺服回原点"
)]
FR_04_UpdownAxisHome
,
/// <summary>
///上料装置:上料气缸放松SOL,升降机构到待机点
/// </summary>
FR_05_UpdownAxis_P1
=
10005
,
[
Description
(
"复位_上料气缸放松,升降机构到待机点"
)]
FR_05_UpdownAxis_P1
,
/// <summary>
///上料装置:上料横移气缸取料端SOL
/// </summary>
FR_06_CylinderGive
=
10006
,
[
Description
(
"复位_上料横移气缸取料端"
)]
FR_06_CylinderGive
,
/// <summary>
/// 提升伺服回原点,夹紧装置放松
/// </summary>
FR_11_BatchAxisHome
=
10011
,
[
Description
(
"复位_提升伺服回原点,夹紧装置放松"
)]
FR_11_BatchAxisHome
,
/// <summary>
/// 然后提升伺服下降到P2点
/// </summary>
[
Description
(
"复位_提升伺服下降到P2点"
)]
FR_12_BatchAxisToP2
,
/// <summary>
/// 放开定位气缸
/// </summary>
[
Description
(
"复位_放开定位气缸"
)]
FR_13_LocationDown
,
/// <summary>
///
顶升气缸下降
///
SL1定位气缸下降SOL,出口顶升气缸下降,夹紧气缸放松
/// </summary>
[
Description
(
"复位_SL1定位气缸下降SOL,出口顶升气缸下降,夹紧气缸放松"
)]
FR_14_TopDown
,
/// <summary>
/// 提升伺服在上升到P1点
/// </summary>
[
Description
(
"复位_提升伺服在上升到P1点"
)]
FR_15_BatchAxisToP1
,
///// <summary>
/////上料装置:上料横移机构上升SOL
///// </summary>
//FR_07_MoveCylinder_Up = 10007,
///// <summary>
/////上料装置:上料气缸放松SOL
///// </summary>
//FR_08_MoveCylinder_Slack = 10008,
///// <summary>
/////上料装置:上料横移气缸取料端SOL
///// </summary>
//FR_09_MoveCylinder_Give = 10009,
///// <summary>
/////上料装置:出口顶升下降SOL
///// </summary>
//FR_10_OutTopCylinder_Down = 10010,
#
endregion
#
region
入料装置入料处理,
11000
开始
#
region
入料装置入料处理,
2100
开始
////SL1定位工位检测有信号,阻挡气缸不能下降。
//SL1定位工位检测无信号,阻挡气缸下降,然后料架到工位
...
...
@@ -652,103 +693,126 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 提升轴先返回P2
/// </summary>
FI_00_BatchAxisToP2
=
11000
,
[
Description
(
"入料_提升轴返回P2"
)]
FI_00_BatchAxisToP2
=
2100
,
/// <summary>
/// 入料流程:升降盘定位气缸后退
/// </summary>
FI_01_TrayLocation_After
=
11001
,
[
Description
(
"入料_升降盘定位气缸后退"
)]
FI_01_TrayLocation_After
=
2101
,
/// <summary>
/// 入料流程:定位气缸下降
/// 入料流程:定位气缸下降
,提升伺服移动到P1
/// </summary>
FI_02_LocationCylinder_Down
=
11002
,
[
Description
(
"入料_定位气缸下降,提升伺服移动到P1"
)]
FI_02_LocationCylinder_Down
=
2102
,
/// <summary>
/// 入口流水线转动,
等待入料检测信号消失
/// 入口流水线转动,
阻挡工位或进料口有新料架,相关阻挡上升,流水线转动1000
/// </summary>
FI_03_LineStart
=
11003
,
[
Description
(
"入料_阻挡工位或进料口有新料架,相关阻挡上升,流水线转动1000"
)]
FI_03_LineStart
,
/// <summary>
/// 入口流水线转动,
等待定位工位信号稳定1秒
/// 入口流水线转动,
定位工位有料架,进料阻挡上升,缓冲阻挡上升, 等待3秒再次检测
/// </summary>
FI_04_WaitTime
=
11004
,
[
Description
(
"入料_定位工位有料架,进料阻挡上升,缓冲阻挡上升, 等待3秒再次检测"
)]
FI_04_WaitTime
,
/// <summary>
///入料检测: 工位检测信号,
定位气缸上升
///入料检测: 工位检测信号,
缓冲阻挡上升, 定位气缸上升,读取并缓存料架RFID
/// </summary>
[
Description
(
"入料_工位检测信号,缓冲阻挡上升, 定位气缸上升,读取并缓存料架RFID"
)]
FI_05_LocationCylinder_Up
,
/// <summary>
/// 入料检测:提升轴下降到位P2
/// 入料检测:提升轴下降到位P2
,定位气缸上升
/// </summary>
[
Description
(
"入料_提升轴下降到位P2,定位气缸上升"
)]
FI_06_BatchAxisToP2
,
/// <summary>
/// 入料检测:升降盘定位气缸第一次前进
/// 入料检测:升降盘定位气缸第一次前进
2秒,清空条码信息
/// </summary>
[
Description
(
"入料_升降盘定位气缸第一次前进 2秒,清空条码信息"
)]
FI_07_TrayLocation_Before
,
/// <summary>
/// 入料检测:升降盘定位气缸
第一次后退
/// 入料检测:升降盘定位气缸
后退,等待再次前进
/// </summary>
[
Description
(
"入料_升降盘定位气缸后退,等待再次前进"
)]
FI_08_TrayLocation_Back
,
/// <summary>
/// 入料检测:升降盘定位气缸前进
/// 入料检测:升降盘定位气缸前进
,清空条码信息
/// </summary>
[
Description
(
"入料_升降盘定位气缸前进,清空条码信息"
)]
FI_09_TrayLocation_Before
,
/// <summary>
/// 入料检测:上料轴开始慢速上升到P3点,等待检测到料盘
/// </summary>
[
Description
(
"入料_上料轴开始慢速上升到P3点,等待检测到料盘"
)]
FI_10_AxisUpMove
,
/// <summary>
/// 入料取料:
横移机构先
上升
/// 入料取料:
上料机构检测到料盘,横移机构
上升
/// </summary>
[
Description
(
"入料_上料机构检测到料盘,横移机构上升"
)]
FI_11_CylinderUp
,
/// <summary>
/// 入料取料:上料机构到放料端
/// 入料取料:上料机构
检测到料盘,横移机构
到放料端
/// </summary>
[
Description
(
"入料_上料机构检测到料盘,横移机构到放料端"
)]
FI_12_CylinderGive
,
/// <summary>
/// 入料检测到料盘:扫码
/// 入料检测到料盘:
开始
扫码
/// </summary>
[
Description
(
"入料_开始扫码"
)]
FI_13_ScanCode
,
/// <summary>
/// 料盘移栽:有料盘:上料横移机构取料
/// </summary>
[
Description
(
"入料_取料_上料横移取料端"
)]
FI_14_CylinderTake
,
/// <summary>
/// 料盘移栽:升降轴到P3
/// </summary>
[
Description
(
"入料_取料_升降轴到P3"
)]
FI_15_UpdownAxisToP3
,
/// <summary>
/// 料盘移栽:上料横移机构夹紧
/// </summary>
[
Description
(
"入料_取料_上料横移机构夹紧"
)]
FI_16_CylinderTighten
,
/// <summary>
/// 料盘移栽:升降伺服到P1点
/// </summary>
[
Description
(
"入料_取料完成_升降伺服到P1点"
)]
FI_17_UpdownAxisToP1
,
/// <summary>
/// 料盘移栽:等待没有伺服料盘检测信号
/// </summary>
[
Description
(
"入料_取料完成_等待伺服检测信号消失"
)]
FI_18_WaitNoLocationCheck
,
/// <summary>
/// 料盘移栽:
批量轴到P3点,检测是否有料盘
/// 料盘移栽:
提升伺服运动到P3,横移气缸上升
/// </summary>
[
Description
(
"入料_取料完成_提升伺服运动到P3,横移气缸上升"
)]
FI_19_BatchAxisToP3
,
/// <summary>
/// 料盘移栽:记录高度尺寸
/// </summary>
[
Description
(
"入料_取料完成_记录高度尺寸"
)]
FI_20_SaveSize
,
/// <summary>
/// 料盘移栽: 上料横移气缸放料SOL
/// 料盘移栽: 上料横移气缸放料SOL
,开始获取库位号
/// </summary>
[
Description
(
"入料_取料完成_上料横移气缸到放料端,开始获取库位号"
)]
FI_21_CylinderGive
,
/// <summary>
/// 提升轴下降到料盘不溢出的位置
/// 提升轴下降到料盘不溢出的位置
,移栽伺服下降到P2
/// </summary>
[
Description
(
"入料_取料完成_提升轴下降到料盘不溢出的位置,移栽伺服下降到P2"
)]
FI_22_BatchAxisDown
,
///// <summary>
...
...
@@ -763,39 +827,47 @@ namespace OnlineStore.DeviceLibrary
//FI_24_GetPosID,
/// <summary>
/// 料盘移栽:
等待空托盘到达,移栽伺服下降到P2,并预扫码
/// 料盘移栽:
开始拦截空托盘
/// </summary>
[
Description
(
"入料_取料完成_开始拦截空托盘"
)]
FI_25_WaitTray
,
/// <summary>
/// 料盘移栽: 上料机构下降
/// 料盘移栽: 上料机构下降
,更新托盘信息
/// </summary>
[
Description
(
"入料_放料_上料机构下降,更新托盘信息"
)]
FI_26_CylinderDown
,
/// <summary>
/// 料盘移栽: 上料气缸放松
/// </summary>
[
Description
(
"入料_放料_上料气缸放松"
)]
FI_27_CylinderRelax
,
/// <summary>
/// 料盘移栽: 上料气缸夹紧
/// </summary>
[
Description
(
"入料_放料_夹爪气缸夹紧等待再次放松"
)]
FI_28_CylinderWork
,
/// <summary>
/// 料盘移栽: 上料气缸再次放松
/// </summary>
[
Description
(
"入料_放料_上料气缸再次放松"
)]
FI_29_CylinderRelax2
,
/// <summary>
/// 料盘移栽: 上料横移机构上升
/// </summary>
[
Description
(
"入料_放料完成_上料横移机构上升"
)]
FI_30_WaitCylinderUp
,
/// <summary>
/// 料盘移栽:上料横移机构上升
,定位或者顶升可以先下降
/// 料盘移栽:上料横移机构上升
/// </summary>
[
Description
(
"入料_放料完成_上料横移机构上升"
)]
FI_31_CylinderUp
,
/// <summary>
/// 料盘移栽:升降
伺服到P1点
/// 料盘移栽:升降
轴到P1点,托盘放行
/// </summary>
[
Description
(
"入料_放料完成_升降轴到P1点,托盘放行"
)]
FI_32_UpDownAxisToP1
,
...
...
@@ -803,279 +875,316 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 上料完成,未检测到料盘,提升伺服到P2点
/// </summary>
FI_51_BatchAxisToP2
=
11051
,
[
Description
(
"入料_送料串离开_未检测到料盘,提升伺服到P2点"
)]
FI_51_BatchAxisToP2
=
2151
,
/// <summary>
/// 上料完成,升降盘定位气缸后退
/// </summary>
[
Description
(
"入料_料串离开_升降盘定位气缸后退"
)]
FI_52_TrayLocationCylinder_After
,
/// <summary>
/// 上料完成,提升伺服到P1点
/// 上料完成,提升伺服到P1点
,定位气缸下降
/// </summary>
[
Description
(
"入料_料串离开_提升伺服到P1点,定位气缸下降"
)]
FI_53_BatchAxisToP1
,
/// <summary>
/// 上料完成,等待出料线体无料架
/// </summary>
[
Description
(
"入料_料串离开_等待出料线体无料架"
)]
FI_54_OutCheck
,
/// <summary>
/// 上料完成,出口顶升气缸上升
/// 上料完成,出口顶升气缸上升
,出料缓冲阻挡上升
/// </summary>
[
Description
(
"入料_料串离开_出口顶升气缸上升,出料缓冲阻挡上升"
)]
FI_55_OutTopCylinder_Up
,
/// <summary>
///上料完成, 线体横移电机运转,等待料架
到达出口
///上料完成, 线体横移电机运转,等待料架
离开上料工位
/// </summary>
[
Description
(
"入料_料串离开_线体横移电机运转,等待料架离开上料工位"
)]
FI_56_SideWayLineRun
,
/// <summary>
///上料完成,等待料架到达出口
///上料完成,
线体横移电机运转,
等待料架到达出口
/// </summary>
[
Description
(
"入料_料串离开_线体横移电机运转,等待料架到达出口"
)]
FI_57_WaitShelfGo
,
/// <summary>
///上料完成, 料架到达出口,线体横移电机停止
/// </summary>
[
Description
(
"入料_料串离开_料架到达出口,线体横移电机停止"
)]
FI_58_LineStop
,
/// <summary>
///上料完成, 料架到达出口,出口顶升下降
,定位气缸下降
,
///上料完成, 料架到达出口,出口顶升下降
,清理缓存料架RFID
,
/// </summary>
[
Description
(
"入料_料串离开_料架到达出口,出口顶升下降 ,清理缓存料架RFID"
)]
FI_59_TopDown
,
/// <summary>
///上料完成, 出口线体运转,料架到达出口处, 通知AGV取空料架
/// </summary>
FI_61_OutLineRun
,
/// <summary>
///上料完成, AGV到达,继续转动出口线体,送走出料料架,
/// </summary>
FI_62_OutLineRun
,
/// <summary>
///上料完成, 料架送出,
/// </summary>
FI_63_OutLineRun
,
#
endregion
#
region
入料装置出料处理,
12000
开始
#
region
入料装置出料处理,
2200
开始
/// <summary>
/// 出库流程:提升伺服到P2
/// </summary>
FO_00_BatchAxisToP2
=
12000
,
[
Description
(
"出料_料串准备_提升伺服到P2"
)]
FO_00_BatchAxisToP2
=
2200
,
/// <summary>
/// 出料流程:升降盘定位气缸后退
/// </summary>
FO_01_TrayLocation_After
=
12001
,
[
Description
(
"出料_料串准备_升降盘定位气缸后退"
)]
FO_01_TrayLocation_After
=
2201
,
/// <summary>
/// 出料流程:定位气缸下降
/// 出料流程:定位气缸下降
,提升轴移动到P1
/// </summary>
FO_02_LocationDown
=
12002
,
[
Description
(
"出料_料串准备_定位气缸下降,提升轴移动到P1"
)]
FO_02_LocationDown
,
/// <summary>
/// 入口流水线转动,
等待出料检测信号消失
/// 入口流水线转动,
阻挡工位或进料口有料串,相关阻挡上升,流水线转动
/// </summary>
FO_03_LineStart
=
12003
,
[
Description
(
"出料_料串准备_阻挡工位或进料口有料串,相关阻挡上升,流水线转动"
)]
FO_03_LineStart
,
/// <summary>
/// 定位工位检测到料架,
等待1秒钟后重新
检测
/// 定位工位检测到料架,
定位工位检测到料架:进料阻挡上升, 等待3秒再次
检测
/// </summary>
FO_04_WaitTime
=
12004
,
[
Description
(
"出料_料串准备_定位工位检测到料架:进料阻挡上升, 等待3秒再次检测"
)]
FO_04_WaitTime
,
/// <summary>
///出料检测:
工位检测信号,定位气缸上升
///出料检测:
缓冲阻挡下降, 定位气缸上升,读取并缓存料架RFID
/// </summary>
FO_05_LocationUp
=
12005
,
[
Description
(
"出料_料串准备_缓冲阻挡下降, 定位气缸上升,读取并缓存料架RFID"
)]
FO_05_LocationUp
,
/// <summary>
/// 出料检测:提升轴下降到位P2
/// 出料检测:提升轴下降到位P2
,定位气缸上升
/// </summary>
FO_06_BatchAxisToP2
=
12006
,
[
Description
(
"出料_料串准备_提升轴下降到位P2,定位气缸上升"
)]
FO_06_BatchAxisToP2
,
/// <summary>
/// 出料检测:升降盘定位气缸第一次前进
/// 出料检测:升降盘定位气缸第一次前进
2秒
/// </summary>
[
Description
(
"出料_料串准备_升降盘定位气缸第一次前进 2秒"
)]
FO_07_TrayLocation_Before
,
/// <summary>
/// 出料检测:升降盘定位气缸
第一次后退
/// 出料检测:升降盘定位气缸
后退,等待再次前进
/// </summary>
[
Description
(
"出料_料串准备_升降盘定位气缸后退,等待再次前进"
)]
FO_08_TrayLocation_Back
,
/// <summary>
/// 出料检测:升降盘定位气缸前进
/// </summary>
[
Description
(
"出料_料串准备_升降盘定位气缸前进"
)]
FO_09_TrayLocation_Before
,
/// <summary>
/// 出料检测:上料轴开始慢速上升到P3点
/// 出料检测:上料轴开始慢速上升到P3点
,等待检测到料盘
/// </summary>
[
Description
(
"出料_料串准备_上料轴开始慢速上升到P3点,等待检测到料盘"
)]
FO_10_AxisUpMove
,
/// <summary>
/// 紧急出料移栽:上料轴下降指定的高度
,同时升降轴回待机点
/// 紧急出料移栽:上料轴下降指定的高度
/// </summary>
FO_211_AxisDownMove
=
12211
,
[
Description
(
"出料_上料轴下降指定的高度"
)]
FO_211_AxisDownMove
=
2211
,
/// <summary>
/// 紧急出料移栽:上料横移机构取料端
/// 紧急出料移栽:上料横移机构
到
取料端
/// /// </summary>
[
Description
(
"出料_取料_上料横移机构到取料端"
)]
FO_212_CylinderTake
,
/// <summary>
/// 紧急出料移栽:升降伺服下降到P2
/// /// </summary>
[
Description
(
"出料_取料_升降伺服下降到P2"
)]
FO_213_UpdownAxisToP2
,
/// <summary>
/// 紧急出料移栽:上料横移机构下降
/// /// </summary>
[
Description
(
"出料_取料_上料横移机构下降"
)]
FO_214_CylinderDown
,
/// <summary>
/// 紧急出料移栽:上料气缸夹紧
/// /// </summary>
[
Description
(
"出料_取料_上料气缸夹紧"
)]
FO_215_CylinderTighten
,
/// <summary>
/// 紧急出料移栽:上料横移机构上升
/// /// </summary>
[
Description
(
"出料_取料完成_上料横移机构上升"
)]
FO_216_CylinderUp
,
/// <summary>
/// 紧急出料移栽:等待夹爪有料
/// </summary>
[
Description
(
"出料_取料完成_上料横移机构上升"
)]
FO_217_ClampCheck
,
/// <summary>
/// 紧急出料移栽:升降伺服到P1
/// /// </summary>
[
Description
(
"出料_取料完成_升降伺服到P1"
)]
FO_218_UpdownToP1
,
/// <summary>
/// 紧急出料移栽:上料横移机构到放料端
/// /// </summary>
[
Description
(
"出料_放料_上料横移机构到放料端"
)]
FO_219_CylinderGive
,
/// <summary>
/// 紧急出料移栽:升降伺服到P3
/// </summary>
[
Description
(
"出料_放料_升降伺服到P3"
)]
FO_220_UpdownAxisToP3
,
/// <summary>
/// 紧急出料移栽:出料横移机构放松
/// </summary>
[
Description
(
"出料_放料_出料横移机构放松"
)]
FO_221_CylinderSlack
,
/// <summary>
/// 紧急出料移栽:升降伺服回P1
/// </summary>
[
Description
(
"出料_放料完成_升降伺服回P1"
)]
FO_222_UpdownAxisToP1
,
/// <summary>
/// 紧急出料移栽:夹爪信号检测
///
</summary>
FO_223_ClampCheck
,
///
//
<summary>
///
//
紧急出料移栽:夹爪信号检测
///
// </summary>
//
FO_223_ClampCheck,
/// <summary>
/// 紧急出料移栽:上料横移机构到取料端
/// </summary>
[
Description
(
"出料_放料完成_上料横移机构到取料端"
)]
FO_224_CylinderTake
,
/// <summary>
/// 出料完成,料盘已放入料架,提升伺服到P2点
/// </summary>
FO_30_BatchAxisToP2
=
12330
,
[
Description
(
"出料_料串离开_料盘已放入料架,提升伺服到P2点"
)]
FO_30_BatchAxisToP2
=
2230
,
/// <summary>
/// 出料完成,升降盘定位气缸后退
/// </summary>
[
Description
(
"出料_料串离开_升降盘定位气缸后退"
)]
FO_31_TrayLocation_After
,
/// <summary>
/// 出料完成,提升伺服到P1点
/// 出料完成,提升伺服到P1点
,定位气缸下降
/// </summary>
[
Description
(
"出料_料串离开_提升伺服到P1点,定位气缸下降"
)]
FO_32_BatchAxisToP1
,
/// <summary>
/// 出料完成,等待出料线体无料架
/// </summary>
[
Description
(
"出料_料串离开_等待出料线体无料架"
)]
FO_34_OutCheck
,
/// <summary>
/// 出料完成,出口顶升气缸上升
/// 出料完成,出口顶升气缸上升
,出料缓冲阻挡上升
/// </summary>
[
Description
(
"出料_料串离开_出口顶升气缸上升,出料缓冲阻挡上升"
)]
FO_34_OutTopCylinder_Up
,
/// <summary>
///出料完成, 线体横移电机运转,等待料架
到达出口
///出料完成, 线体横移电机运转,等待料架
离开定位工位
/// </summary>
[
Description
(
"出料_料串离开_线体横移电机运转,等待料架离开定位工位"
)]
FO_35_SideWayLineRun
,
/// <summary>
///出料完成,
等待料架离开定位工位
///出料完成,
线体横移电机运转,等待料架到达出口
/// </summary>
[
Description
(
"出料_料串离开_线体横移电机运转,等待料架到达出口"
)]
FO_36_WaitShelfGo
,
/// <summary>
///出料完成, 料架到达出口,线体横移电机停止
/// </summary>
FO_37_LineStop
,
[
Description
(
"出料_料串离开_料架到达出口,线体横移电机停止"
)]
FO_37_LineStop
,
/// <summary>
///出料完成, 料架到达出口,出口顶升下降,
定位气缸下降
,
///出料完成, 料架到达出口,出口顶升下降,
清理缓存料架RFID
,
/// </summary>
FO_38_TopDown
,
[
Description
(
"出料_料串离开_料架到达出口,出口顶升下降,清理缓存料架RFID"
)]
FO_38_TopDown
,
/// <summary>
///
出料完成, 出口线体运转,料架到达出口处, 通知AGV取空料架
/// </summary>
FO_39_OutLineRun
,
/// <summary>
///出料完成, AGV到达,继续转动出口线体,送走出料料架,
/// </summary>
FO_40_OutLineRun
,
///
//
<summary>
///
//出料完成, 出口线体运转,料架到达出口处, 通知AGV取空料架, 出料结束
///
//
</summary>
//FO_39_OutLineRun
,
///
//
<summary>
///
//
出料完成, AGV到达,继续转动出口线体,送走出料料架,
///
//
</summary>
//
FO_40_OutLineRun,
/// <summary>
///出料完成, 料架送出,
/// </summary>
FO_41_OutLineRun
,
///
//
<summary>
///
//
出料完成, 料架送出,
///
//
</summary>
//
FO_41_OutLineRun,
#
endregion
#
region
出料装置移栽出料,
20000
开始
#
region
出料装置移栽出料,
3000
开始
/// <summary>
/// 前后气缸后退
/// </summary>
PO_00_CylinderAfter
=
20000
,
[
Description
(
"出料_取料前_前后气缸后退"
)]
PO_00_CylinderAfter
=
3000
,
/// <summary>
/// 上下气缸下降
/// </summary>
PO_01_CylinderDown
=
20001
,
[
Description
(
"出料_取料前_上下气缸下降"
)]
PO_01_CylinderDown
=
3101
,
/// <summary>
/// 顶升气缸上升
/// </summary>
PO_02_TopUP
=
20002
,
[
Description
(
"出料_取料前_顶升气缸上升"
)]
PO_02_TopUP
,
/// <summary>
/// 夹料气缸夹紧
/// </summary>
PO_03_CylinderOpen
=
20003
,
[
Description
(
"出料_取料_夹料气缸夹紧"
)]
PO_03_CylinderOpen
,
/// <summary>
/// 上下气缸上升
/// 上下气缸上升
,皮带线准备出料
/// </summary>
PO_04_CylinderUp
=
20004
,
[
Description
(
"出料_取料完成_上下气缸上升,皮带线准备出料"
)]
PO_04_CylinderUp
,
/// <summary>
/// 检测夹爪夹紧信号
/// </summary>
PO_05_ClampCheck
,
/// <summary>
/// 等待可以移栽料盘到流水线
/// </summary>
PO_06_WaitBox
,
///
//
<summary>
///
//
检测夹爪夹紧信号
///
//
</summary>
//
PO_05_ClampCheck,
///
//
<summary>
///
//
等待可以移栽料盘到流水线
///
//
</summary>
//
PO_06_WaitBox,
/// <summary>
/// 前后气缸前进
/// </summary>
[
Description
(
"出料_取料完成_前后气缸前进"
)]
PO_07_CylinderBefore
,
/// <summary>
/// 上下气缸下降
/// </summary>
PO_08_CylinderDown
,
///
//
<summary>
///
//
上下气缸下降
///
//
</summary>
//
PO_08_CylinderDown,
/// <summary>
/// 夹料气缸放松
/// </summary>
[
Description
(
"出料_放料_夹料气缸放松"
)]
PO_09_CylinderRelax
,
/// <summary>
/// 上下气缸上升
/// </summary>
PO_10_CylinderUp
,
///
//
<summary>
///
//
上下气缸上升
///
//
</summary>
//
PO_10_CylinderUp,
/// <summary>
/// 前后气缸后退,等待
4000
/// 前后气缸后退,等待
200 ,皮带线继续运动
/// </summary>
[
Description
(
"出料_放料完成_前后气缸后退"
)]
PO_11_CylinderAfter
,
...
...
@@ -1083,183 +1192,127 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
出料流水线处理,
30000
开始
#
region
出料流水线处理,
4000
开始
/// <summary>
/// 出料流水线复位,定位气缸下降,NG气缸后退
/// 出料流水线复位,
关闭所有皮带线,
定位气缸下降,NG气缸后退
/// </summary>
DL_R_CylinderDown
=
30001
,
/// <summary>
/// 转动皮带开始运行
/// </summary>
DL_R_StartRun
=
30002
,
/// <summary>
/// 皮带线检测处理
/// </summary>
DL_R_LineCheck
=
30100
,
[
Description
(
"复位_关闭所有皮带线,定位气缸下降,NG气缸后退"
)]
DL_R_CylinderDown
=
4001
,
#
region
皮带线
3
送出料盘处理
/// <summary>
/// 出料皮带线开始扫码送出料盘,等待1000后扫码
/// </summary>
DO_01_WaitTime
=
30201
,
/// <summary>
/// 出料皮带线开始扫码送出料盘,开始扫码,等待扫码结果,最多等待6000
/// </summary>
DO_02_ScanCode
=
30202
,
/// <summary>
/// 出料皮带线开始扫码送出料盘,根据二维码从服务器获取料盘尺寸
/// </summary>
DO_03_GetTraySize
=
30203
,
/// <summary>
/// 出料皮带线开始扫码送出料盘,上升或下降分盘定位气缸
/// </summary>
DO_04_SUpDownMove
=
30204
,
#
region
皮带线
3
送出料盘新处理,增加
NG
推出气缸后的处理
4501
/// <summary>
/// 出料皮带线开始扫码送出料盘,转动皮带线,同时转动分盘装置
/// </summary>
DO_05_LineRun1
=
30205
,
/// <summary>
/// 出料皮带线转动第二个工位,同时转动分盘装置
/// </summary>
DO_06_LineRun2
=
30206
,
/// <summary>
/// 出料皮带线开始扫码送出料盘,等待料盘到达分盘装置位置
/// </summary>
DO_07_SeparateCheck
=
30207
,
/// <summary>
/// 出料皮带线开始扫码送出料盘,到达后再转动500
/// </summary>
DO_08_CRun
=
30208
,
/// <summary>
/// 停止接驳台皮带线
/// </summary>
DO_10_StopSeparateLine
=
30210
,
/// <summary>
/// 出料皮带线获取尺寸NG,先转动料盘到扫码的下一个工位
/// </summary>
DO_11_NGToNextStation
=
30211
,
/// <summary>
/// 出料皮带线获取尺寸NG,NG气缸前进
/// </summary>
DO_12_NGCylinderForward
=
30212
,
/// <summary>
/// 出料皮带线获取尺寸NG,NG气缸前进后等待1000ms
/// </summary>
DO_13_NGCylinderWait
=
30213
,
/// <summary>
/// 出料皮带线获取尺寸NG,NG气缸后退
/// </summary>
DO_14_NGCylinderBack
=
30214
,
/// <summary>
/// 出料皮带线获取尺寸NG,,NG料到接驳台,接驳台皮带线反转
/// </summary>
DO_15_SeparateBackRun
=
30215
,
/// <summary>
/// 出料皮带线获取尺寸NG,,NG料到接驳台,反转等待3000
/// </summary>
DO_16_SeparateBackRunWait
=
30216
,
/// <summary>
/// 出料皮带线获取尺寸NG,,NG料已出,接驳台先停止反转
/// </summary>
DO_17_SeparateStopRun
=
30217
,
/// <summary>
/// 出料皮带线获取尺寸NG,,NG料已出,接驳台皮带线恢复正转
/// 送料盘到双层线:NG气缸后退,等待100后获取尺寸,
/// </summary>
DO_18_SeparateRun
=
30218
,
#
endregion
#
region
皮带线
3
送出料盘新处理,增加
NG
推出气缸后的处理
[
Description
(
"出料_NG气缸后退,等待100后获取尺寸"
)]
DON_01_WaitTime
=
4501
,
/// <summary>
///
送料盘到双层线:NG气缸后退,等待100后处理,
///
出口有料,NG气缸后退,等待100后获取盘尺寸
/// </summary>
DON_01_WaitTime
=
30401
,
[
Description
(
"出料_出口有料,NG气缸后退,等待100后获取盘尺寸"
)]
DO_02_ScanCode
=
4502
,
/// <summary>
/// 送料盘到双层线:
根据二维码从服务器获取料盘
尺寸
/// 送料盘到双层线:
获取
尺寸
/// </summary>
DON_03_GetTraySize
=
30403
,
[
Description
(
"出料_获取料盘尺寸"
)]
DON_03_GetTraySize
=
4503
,
/// <summary>
/// 送料盘到双层线:上升或下降分盘定位气缸
/// </summary>
DON_04_SUpDownMove
=
30404
,
[
Description
(
"出料_上升或下降分盘定位气缸"
)]
DON_04_SUpDownMove
,
/// <summary>
/// 送料盘到双层线:
转动皮带线,同时转动分盘装置
/// 送料盘到双层线:
NG->接驳台,转动接驳台皮带
/// </summary>
DON_05_LineRun
=
30405
,
[
Description
(
"出料_NG->接驳台,转动接驳台皮带"
)]
DON_05_LineRun
,
/// <summary>
/// 送料盘到双层线:等待料盘到达
分盘装置位置
/// 送料盘到双层线:等待料盘到达
接驳台
/// </summary>
DON_07_SeparateCheck
=
30407
,
[
Description
(
"出料_等待料盘到达接驳台"
)]
DON_07_SeparateCheck
,
/// <summary>
/// 送料盘到双层线:
到达后再转动500
/// 送料盘到双层线:
料盘到达接驳台,调用arriveRobotLocation
/// </summary>
DON_08_CRun
=
30408
,
[
Description
(
"出料_料盘到达接驳台,调用arriveRobotLocation"
)]
DON_08_CRun
,
/// <summary>
/// 横移NG料:NG气缸前进
/// </summary>
DON_12_NGCylinderForward
=
30412
,
[
Description
(
"出料_NG气缸前进"
)]
DON_12_NGCylinderForward
,
/// <summary>
/// 横移NG料:NG气缸
前进后等待1000ms
/// 横移NG料:NG气缸
等待1500后后退
/// </summary>
DON_13_NGCylinderWait
=
30413
,
[
Description
(
"出料_NG气缸等待1500后后退"
)]
DON_13_NGCylinderWait
,
/// <summary>
/// 横移NG料:NG气缸后退
/// </summary>
DON_14_NGCylinderBack
=
30414
,
[
Description
(
"出料_NG气缸后退"
)]
DON_14_NGCylinderBack
,
#
endregion
#
region
皮带线
12
接收料盘并转动处理
#
region
皮带线
12
接收料盘并转动处理
4601
/// <summary>
/// 皮带线12处理料盘:NG气缸后退
/// </summary>
DLO_01_NGBack
=
30301
,
[
Description
(
"送料_NG气缸后退"
)]
DLO_01_NGBack
=
4601
,
/// <summary>
/// 皮带线12处理料盘:等待入口无料盘,
等待
最后一盘料位置>1
/// 皮带线12处理料盘:等待入口无料盘,
且
最后一盘料位置>1
/// </summary>
[
Description
(
"送料_等待入口无料盘, 且最后一盘料位置>1"
)]
DLO_02_WaitEnteryNoTray
,
///// <summary>
///// 皮带线12处理料盘:入口出口都没有料盘,转动皮带线到入口定位亮
///// </summary>
//DLO_03_LineRun,
/// <summary>
/// 皮带线12处理料盘:可以放入料盘,等待移栽放
下
料盘
/// 皮带线12处理料盘:可以放入料盘,等待移栽放料盘
/// </summary>
[
Description
(
"送料_可以放入料盘,等待移栽放料盘"
)]
DLO_04_CanReviceTray
,
/// <summary>
/// 皮带线12处理料盘:
移栽放下料盘后更新为已放料盘
/// 皮带线12处理料盘:
料盘放入完成
/// </summary>
[
Description
(
"送料_料盘放入完成"
)]
DLO_05_TrayIsOk
,
/// <summary>
/// 皮带线12处理料盘:
盘放下后等待2000ms
/// 皮带线12处理料盘:
等待2000,NG气缸前进
/// </summary>
[
Description
(
"送料_等待2000,NG气缸前进"
)]
DLO_06_WaitTime
,
/// <summary>
/// 皮带线12处理料盘:
出库有料盘,继续转动一
个工位,
/// 皮带线12处理料盘:
转动到下
个工位,
/// </summary>
[
Description
(
"送料_转动到下个工位"
)]
DLO_07_LineRun
,
/// <summary>
/// 皮带线12处理料盘:
是
NG料盘,NG气缸前进
/// 皮带线12处理料盘:NG料盘,NG气缸前进
/// </summary>
[
Description
(
"送料_NG料盘,NG气缸前进"
)]
DLO_08_NGBefore
,
/// <summary>
/// 皮带线12处理料盘:
是
NG料盘,NG气缸后退
/// 皮带线12处理料盘:NG料盘,NG气缸后退
/// </summary>
[
Description
(
"送料_NG料盘,NG气缸后退"
)]
DLO_09_NGAfter
,
///// <summary>
///// 皮带线12处理料盘:判断出口是否有料盘,有料盘需要转动,没有料盘结束
///// </summary>
//DLO_10_LineRun,
/// <summary>
/// 皮带线12处理料盘:出口无料盘,结束,
/// </summary>
DLO_11_ExitNoTray
///
//
<summary>
///
//
皮带线12处理料盘:出口无料盘,结束,
///
//
</summary>
//
DLO_11_ExitNoTray
#
endregion
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论