Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 09dde46d
由
LN
编写于
2019-11-20 17:10:34 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1
1 个父辈
73b57b24
隐藏空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
555 行增加
和
662 行删除
dll/Asa.IOModule.AIOBOX.dll
dll/Asa.IOModule.AIOBOX.xml
source/AssemblyLineClient/FrmDischargeLine.cs
source/AssemblyLineClient/FrmEquipBase.cs
source/AssemblyLineClient/FrmFeedingEquip.cs
source/AssemblyLineClient/FrmIOStatus.Designer.cs
source/AssemblyLineClient/FrmMoveEquip.cs
source/AssemblyLineClient/FrmProvidingEquip.cs
source/DeviceLibrary/assemblyLine/DischargeLine.cs
source/DeviceLibrary/assemblyLine/EquipBase.cs
source/DeviceLibrary/assemblyLine/FeedingEquip.cs
source/DeviceLibrary/assemblyLine/LineBean.cs
source/DeviceLibrary/assemblyLine/MoveEquip.cs
source/DeviceLibrary/assemblyLine/ProvidingEquip.cs
source/DeviceLibrary/deviceLibrary/IO/AIOBOX/AIOBOXManager.cs
source/DeviceLibrary/model/KTK_Store.cs
dll/Asa.IOModule.AIOBOX.dll
查看文件 @
09dde46
此文件类型无法预览
dll/Asa.IOModule.AIOBOX.xml
查看文件 @
09dde46
...
@@ -9,12 +9,6 @@
...
@@ -9,12 +9,6 @@
AIOBOX操作类
AIOBOX操作类
</summary>
</summary>
</member>
</member>
<member
name=
"F:Asa.IOModule.AIOBOX._unrevdRemote"
>
<summary>
暂停次数
WriteDO 命令非常多时,暂停一次发送 ReadDI 或 ReadDO
</summary>
</member>
<member
name=
"F:Asa.IOModule.AIOBOX.SEND_SLEEP"
>
<member
name=
"F:Asa.IOModule.AIOBOX.SEND_SLEEP"
>
<summary>
<summary>
每条命令发送的间隔
每条命令发送的间隔
...
@@ -22,13 +16,12 @@
...
@@ -22,13 +16,12 @@
小于30时,会出现接收数据连包的情况
小于30时,会出现接收数据连包的情况
</summary>
</summary>
</member>
</member>
<member
name=
"F:Asa.IOModule.AIOBOX.
LISTEN_SLEEP
"
>
<member
name=
"F:Asa.IOModule.AIOBOX.
PORT
"
>
<summary>
<summary>
监听网络接收数据的间隔
ModBus端口
必须小于SEND_SLEEP
</summary>
</summary>
</member>
</member>
<member
name=
"T:Asa.IOModule.AIOBOX.DI_Changed"
>
<member
name=
"T:Asa.IOModule.AIOBOX.DI
O
_Changed"
>
<summary>
<summary>
自动读取DI委托
自动读取DI委托
</summary>
</summary>
...
@@ -40,19 +33,12 @@
...
@@ -40,19 +33,12 @@
自动读取DI事件触发
自动读取DI事件触发
</summary>
</summary>
</member>
</member>
<member
name=
"T:Asa.IOModule.AIOBOX.DO_Changed"
>
<summary>
自动读取DO委托
</summary>
<param
name=
"box"
>
AIOBOX
</param>
<param
name=
"sta"
>
所有DO状态
</param>
</member>
<member
name=
"E:Asa.IOModule.AIOBOX.DO_Changed_Event"
>
<member
name=
"E:Asa.IOModule.AIOBOX.DO_Changed_Event"
>
<summary>
<summary>
自动读取DO事件触发
自动读取DO事件触发
</summary>
</summary>
</member>
</member>
<member
name=
"T:Asa.IOModule.AIOBOX.AI_Changed"
>
<member
name=
"T:Asa.IOModule.AIOBOX.AI
O
_Changed"
>
<summary>
<summary>
自动读取AI委托
自动读取AI委托
</summary>
</summary>
...
@@ -64,13 +50,6 @@
...
@@ -64,13 +50,6 @@
自动读取AI事件触发
自动读取AI事件触发
</summary>
</summary>
</member>
</member>
<member
name=
"T:Asa.IOModule.AIOBOX.AO_Changed"
>
<summary>
自动读取AO委托
</summary>
<param
name=
"box"
>
AIOBOX
</param>
<param
name=
"val"
>
所有AO的值
</param>
</member>
<member
name=
"E:Asa.IOModule.AIOBOX.AO_Changed_Event"
>
<member
name=
"E:Asa.IOModule.AIOBOX.AO_Changed_Event"
>
<summary>
<summary>
自动读取AO事件触发
自动读取AO事件触发
...
@@ -86,11 +65,6 @@
...
@@ -86,11 +65,6 @@
IP地址
IP地址
</summary>
</summary>
</member>
</member>
<member
name=
"P:Asa.IOModule.AIOBOX.Port"
>
<summary>
ModBus端口
</summary>
</member>
<member
name=
"P:Asa.IOModule.AIOBOX.IsConn"
>
<member
name=
"P:Asa.IOModule.AIOBOX.IsConn"
>
<summary>
<summary>
是否连接
是否连接
...
@@ -101,35 +75,11 @@
...
@@ -101,35 +75,11 @@
错误信息
错误信息
</summary>
</summary>
</member>
</member>
<member
name=
"P:Asa.IOModule.AIOBOX.LogOutDir"
>
<member
name=
"M:Asa.IOModule.AIOBOX.LogPath(System.String)"
>
<summary>
日志输出目录
</summary>
</member>
<member
name=
"P:Asa.IOModule.AIOBOX.LogOut"
>
<summary>
错误日志输出,默认true
</summary>
</member>
<member
name=
"P:Asa.IOModule.AIOBOX.InputCount"
>
<summary>
输入总数
</summary>
</member>
<member
name=
"P:Asa.IOModule.AIOBOX.OutputCount"
>
<summary>
输出总数
</summary>
</member>
<member
name=
"P:Asa.IOModule.AIOBOX.InputReadSleep"
>
<summary>
自动读取DI间隔
</summary>
</member>
<member
name=
"P:Asa.IOModule.AIOBOX.OutputReadSleep"
>
<summary>
<summary>
自动读取DO间隔
日志路径,连接前设置路径会自动保存日志
</summary>
</summary>
<param
name=
"path"
>
文件夹路径
</param>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.SetInput(Asa.IOModule.Box_Type,System.Int32)"
>
<member
name=
"M:Asa.IOModule.AIOBOX.SetInput(Asa.IOModule.Box_Type,System.Int32)"
>
<summary>
<summary>
...
@@ -197,6 +147,12 @@
...
@@ -197,6 +147,12 @@
<param
name=
"sta"
></param>
<param
name=
"sta"
></param>
<returns></returns>
<returns></returns>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.ReverseStatus(Asa.IOModule.Box_Sta@)"
>
<summary>
相反状态(ON/OFF)
</summary>
<param
name=
"sta"
></param>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.ReadDI(System.Int32)"
>
<member
name=
"M:Asa.IOModule.AIOBOX.ReadDI(System.Int32)"
>
<summary>
<summary>
读取单个DI输入状态(ON/OFF)
读取单个DI输入状态(ON/OFF)
...
@@ -292,20 +248,17 @@
...
@@ -292,20 +248,17 @@
读取所有DO状态,功能码1
读取所有DO状态,功能码1
</summary>
</summary>
<param
name=
"buff"
></param>
<param
name=
"buff"
></param>
<returns></returns>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.ReadDI(System.Byte[])"
>
<member
name=
"M:Asa.IOModule.AIOBOX.ReadDI(System.Byte[])"
>
<summary>
<summary>
读取所有DI状态,功能码2
读取所有DI状态,功能码2
</summary>
</summary>
<returns></returns>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.ReadAI(System.Byte[])"
>
<member
name=
"M:Asa.IOModule.AIOBOX.ReadAI(System.Byte[])"
>
<summary>
<summary>
读取所有AI的值,功能码4
读取所有AI的值,功能码4
</summary>
</summary>
<param
name=
"buff"
></param>
<param
name=
"buff"
></param>
<returns></returns>
</member>
</member>
<member
name=
"M:Asa.IOModule.AIOBOX.Command"
>
<member
name=
"M:Asa.IOModule.AIOBOX.Command"
>
<summary>
<summary>
...
@@ -373,5 +326,46 @@
...
@@ -373,5 +326,46 @@
闭合,打开,高电平
闭合,打开,高电平
</summary>
</summary>
</member>
</member>
<member
name=
"T:Asa.IOModule.LogFile"
>
<summary>
日志操作类
</summary>
</member>
<member
name=
"M:Asa.IOModule.LogFile.#ctor(System.String)"
>
<summary>
日志
</summary>
<param
name=
"path"
>
文件夹路径
</param>
</member>
<member
name=
"M:Asa.IOModule.LogFile.Close"
>
<summary>
关闭文件
</summary>
</member>
<member
name=
"M:Asa.IOModule.LogFile.OutError(System.String)"
>
<summary>
输出错误
</summary>
<param
name=
"s"
></param>
</member>
<member
name=
"M:Asa.IOModule.LogFile.OutInfo(System.String)"
>
<summary>
输出信息
</summary>
<param
name=
"s"
></param>
</member>
<member
name=
"M:Asa.IOModule.LogFile.OutData(System.String,System.Byte[])"
>
<summary>
输出数据
</summary>
<param
name=
"tr"
></param>
<param
name=
"buff"
></param>
</member>
<member
name=
"M:Asa.IOModule.LogFile.OutData(System.String)"
>
<summary>
输出数据
</summary>
<param
name=
"s"
></param>
</member>
</members>
</members>
</doc>
</doc>
source/AssemblyLineClient/FrmDischargeLine.cs
查看文件 @
09dde46
...
@@ -175,8 +175,7 @@ namespace OnlineStore.AssemblyLine
...
@@ -175,8 +175,7 @@ namespace OnlineStore.AssemblyLine
}
}
}
}
}
}
private
void
FrmStoreIOStatus_Load
(
object
sender
,
EventArgs
e
)
private
void
FrmStoreIOStatus_Load
(
object
sender
,
EventArgs
e
)
{
{
chbDebug
.
Checked
=
equipBean
.
IsDebug
;
chbDebug
.
Checked
=
equipBean
.
IsDebug
;
...
@@ -200,26 +199,20 @@ namespace OnlineStore.AssemblyLine
...
@@ -200,26 +199,20 @@ namespace OnlineStore.AssemblyLine
ConfigIO
io
=
(
ConfigIO
)
cmbWriteIO
.
Items
[
e
.
Index
];
ConfigIO
io
=
(
ConfigIO
)
cmbWriteIO
.
Items
[
e
.
Index
];
e
.
Graphics
.
DrawString
(
io
.
DisplayStr
,
e
.
Font
,
new
SolidBrush
(
e
.
ForeColor
),
e
.
Bounds
.
X
,
e
.
Bounds
.
Y
+
3
);
e
.
Graphics
.
DrawString
(
io
.
DisplayStr
,
e
.
Font
,
new
SolidBrush
(
e
.
ForeColor
),
e
.
Bounds
.
X
,
e
.
Bounds
.
Y
+
3
);
}
}
}
}
private
void
btnReadIO_Click
(
object
sender
,
EventArgs
e
)
private
void
btnReadIO_Click
(
object
sender
,
EventArgs
e
)
{
{
ReadIOList
();
ReadIOList
();
}
}
internal
void
FormStatus
(
bool
isStart
)
internal
override
void
FormStatus
(
bool
isStart
)
{
{
btnStart
.
Enabled
=
!
isStart
;
btnStart
.
Enabled
=
!
isStart
;
btnStop
.
Enabled
=
true
;
btnStop
.
Enabled
=
true
;
btnReset
.
Enabled
=
isStart
;
btnReset
.
Enabled
=
isStart
;
//btnInStore.Enabled = isStart;
//btnInStore.Enabled = isStart;
btnOutStore
.
Enabled
=
isStart
;
btnOutStore
.
Enabled
=
isStart
;
}
}
private
void
FrmIOStatus_Shown
(
object
sender
,
EventArgs
e
)
private
void
FrmIOStatus_Shown
(
object
sender
,
EventArgs
e
)
{
{
timer1
.
Start
();
timer1
.
Start
();
...
@@ -227,16 +220,17 @@ namespace OnlineStore.AssemblyLine
...
@@ -227,16 +220,17 @@ namespace OnlineStore.AssemblyLine
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
{
{
if
(
equipBean
.
runStatus
.
Equals
(
LineRunStatus
.
Wait
))
StartDebug
();
{
}
bool
result
=
equipBean
.
StartRun
(
true
);
private
void
btnStop_Click
(
object
sender
,
EventArgs
e
)
if
(
result
)
{
{
StopRun
();
FormStatus
(
true
);
}
}
private
void
btnReset_Click
(
object
sender
,
EventArgs
e
)
}
{
Reset
();
}
}
private
void
chbDebug_CheckedChanged
(
object
sender
,
EventArgs
e
)
private
void
chbDebug_CheckedChanged
(
object
sender
,
EventArgs
e
)
{
{
if
(!
IsLoad
)
if
(!
IsLoad
)
...
@@ -290,26 +284,6 @@ namespace OnlineStore.AssemblyLine
...
@@ -290,26 +284,6 @@ namespace OnlineStore.AssemblyLine
private
void
btnStop_Click
(
object
sender
,
EventArgs
e
)
{
try
{
equipBean
.
StopMove
();
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
+
ex
.
StackTrace
);
}
}
private
void
btnReset_Click
(
object
sender
,
EventArgs
e
)
{
if
(
equipBean
.
runStatus
>(
LineRunStatus
.
Wait
))
{
equipBean
.
Reset
();
}
}
private
void
btnCloseAll_Click
(
object
sender
,
EventArgs
e
)
private
void
btnCloseAll_Click
(
object
sender
,
EventArgs
e
)
{
{
...
...
source/AssemblyLineClient/FrmEquipBase.cs
查看文件 @
09dde46
...
@@ -85,5 +85,52 @@ namespace OnlineStore.AssemblyLine
...
@@ -85,5 +85,52 @@ namespace OnlineStore.AssemblyLine
btn
.
BackColor
=
Color
.
SkyBlue
;
btn
.
BackColor
=
Color
.
SkyBlue
;
}
}
}
}
protected
void
StartDebug
()
{
if
(
equipBase
.
runStatus
.
Equals
(
LineRunStatus
.
Wait
))
{
bool
result
=
equipBase
.
StartRun
(
true
);
if
(
result
)
{
FormStatus
(
true
);
}
}
else
{
MessageBox
.
Show
(
equipBase
.
Name
+
"已启动,不能重复启动"
);
}
}
protected
void
StopRun
()
{
try
{
if
(
equipBase
.
runStatus
>=
LineRunStatus
.
HomeMoving
)
{
equipBase
.
StopRun
();
}
else
{
MessageBox
.
Show
(
"请先启动设备"
);
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
+
ex
.
StackTrace
);
}
}
protected
void
Reset
()
{
if
(
equipBase
.
runStatus
>=
(
LineRunStatus
.
HomeMoving
))
{
equipBase
.
Reset
();
}
else
{
MessageBox
.
Show
(
"请先启动设备"
);
}
}
internal
virtual
void
FormStatus
(
bool
status
)
{
}
}
}
}
}
source/AssemblyLineClient/FrmFeedingEquip.cs
查看文件 @
09dde46
...
@@ -253,16 +253,12 @@ namespace OnlineStore.AssemblyLine
...
@@ -253,16 +253,12 @@ namespace OnlineStore.AssemblyLine
e
.
Graphics
.
DrawString
(
io
.
DisplayStr
,
e
.
Font
,
new
SolidBrush
(
e
.
ForeColor
),
e
.
Bounds
.
X
,
e
.
Bounds
.
Y
+
3
);
e
.
Graphics
.
DrawString
(
io
.
DisplayStr
,
e
.
Font
,
new
SolidBrush
(
e
.
ForeColor
),
e
.
Bounds
.
X
,
e
.
Bounds
.
Y
+
3
);
}
}
}
}
private
void
btnReadIO_Click
(
object
sender
,
EventArgs
e
)
private
void
btnReadIO_Click
(
object
sender
,
EventArgs
e
)
{
{
ReadIOList
();
ReadIOList
();
}
}
internal
override
void
FormStatus
(
bool
isStart
)
internal
void
FormStatus
(
bool
isStart
)
{
{
btnStart
.
Enabled
=
!
isStart
;
btnStart
.
Enabled
=
!
isStart
;
btnStop
.
Enabled
=
true
;
btnStop
.
Enabled
=
true
;
...
@@ -277,14 +273,16 @@ namespace OnlineStore.AssemblyLine
...
@@ -277,14 +273,16 @@ namespace OnlineStore.AssemblyLine
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
{
{
if
(
equipBean
.
runStatus
.
Equals
(
LineRunStatus
.
Wait
))
StartDebug
();
{
}
bool
result
=
equipBean
.
StartRun
(
true
);
private
void
btnStop_Click
(
object
sender
,
EventArgs
e
)
if
(
result
)
{
{
StopRun
();
FormStatus
(
true
);
}
}
}
private
void
btnReset_Click
(
object
sender
,
EventArgs
e
)
{
Reset
();
}
}
private
void
chbDebug_CheckedChanged
(
object
sender
,
EventArgs
e
)
private
void
chbDebug_CheckedChanged
(
object
sender
,
EventArgs
e
)
...
@@ -350,27 +348,6 @@ namespace OnlineStore.AssemblyLine
...
@@ -350,27 +348,6 @@ namespace OnlineStore.AssemblyLine
}
}
}
}
private
void
btnStop_Click
(
object
sender
,
EventArgs
e
)
{
try
{
equipBean
.
StopMove
();
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
+
ex
.
StackTrace
);
}
}
private
void
btnReset_Click
(
object
sender
,
EventArgs
e
)
{
if
(
equipBean
.
runStatus
>
(
LineRunStatus
.
Wait
))
{
equipBean
.
Reset
();
}
}
private
void
btnLocationCylinder_Click
(
object
sender
,
EventArgs
e
)
private
void
btnLocationCylinder_Click
(
object
sender
,
EventArgs
e
)
{
{
BtnMove
(
btnLocationCylinder
,
"SL定位气缸上升"
,
"SL定位气缸下降"
,
IO_Type
.
SL_LocationCylinder_Down
,
IO_Type
.
SL_LocationCylinder_Up
);
BtnMove
(
btnLocationCylinder
,
"SL定位气缸上升"
,
"SL定位气缸下降"
,
IO_Type
.
SL_LocationCylinder_Down
,
IO_Type
.
SL_LocationCylinder_Up
);
...
...
source/AssemblyLineClient/FrmIOStatus.Designer.cs
查看文件 @
09dde46
...
@@ -223,6 +223,7 @@
...
@@ -223,6 +223,7 @@
this
.
tableLayoutPanel2
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
this
.
tableLayoutPanel2
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
tableLayoutPanel2
.
AutoScroll
=
true
;
this
.
tableLayoutPanel2
.
ColumnCount
=
1
;
this
.
tableLayoutPanel2
.
ColumnCount
=
1
;
this
.
tableLayoutPanel2
.
ColumnStyles
.
Add
(
new
System
.
Windows
.
Forms
.
ColumnStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
100F
));
this
.
tableLayoutPanel2
.
ColumnStyles
.
Add
(
new
System
.
Windows
.
Forms
.
ColumnStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
100F
));
this
.
tableLayoutPanel2
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
14
);
this
.
tableLayoutPanel2
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
14
);
...
@@ -250,6 +251,7 @@
...
@@ -250,6 +251,7 @@
this
.
tableLayoutPanel1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
this
.
tableLayoutPanel1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
tableLayoutPanel1
.
AutoScroll
=
true
;
this
.
tableLayoutPanel1
.
ColumnCount
=
1
;
this
.
tableLayoutPanel1
.
ColumnCount
=
1
;
this
.
tableLayoutPanel1
.
ColumnStyles
.
Add
(
new
System
.
Windows
.
Forms
.
ColumnStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
100F
));
this
.
tableLayoutPanel1
.
ColumnStyles
.
Add
(
new
System
.
Windows
.
Forms
.
ColumnStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
100F
));
this
.
tableLayoutPanel1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
14
);
this
.
tableLayoutPanel1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
14
);
...
...
source/AssemblyLineClient/FrmMoveEquip.cs
查看文件 @
09dde46
...
@@ -236,7 +236,7 @@ namespace OnlineStore.AssemblyLine
...
@@ -236,7 +236,7 @@ namespace OnlineStore.AssemblyLine
{
{
ReadIOList
();
ReadIOList
();
}
}
internal
void
FormStatus
(
bool
isStart
)
internal
override
void
FormStatus
(
bool
isStart
)
{
{
btnStart
.
Enabled
=
!
isStart
;
btnStart
.
Enabled
=
!
isStart
;
btnStop
.
Enabled
=
true
;
btnStop
.
Enabled
=
true
;
...
@@ -253,14 +253,15 @@ namespace OnlineStore.AssemblyLine
...
@@ -253,14 +253,15 @@ namespace OnlineStore.AssemblyLine
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
{
{
if
(
equipBean
.
runStatus
.
Equals
(
LineRunStatus
.
Wait
))
StartDebug
();
{
}
bool
result
=
equipBean
.
StartRun
(
true
);
private
void
btnStop_Click
(
object
sender
,
EventArgs
e
)
if
(
result
)
{
{
StopRun
();
FormStatus
(
true
);
}
}
private
void
btnReset_Click
(
object
sender
,
EventArgs
e
)
}
{
Reset
();
}
}
private
void
chbDebug_CheckedChanged
(
object
sender
,
EventArgs
e
)
private
void
chbDebug_CheckedChanged
(
object
sender
,
EventArgs
e
)
...
@@ -326,25 +327,7 @@ namespace OnlineStore.AssemblyLine
...
@@ -326,25 +327,7 @@ namespace OnlineStore.AssemblyLine
}
}
}
}
private
void
btnStop_Click
(
object
sender
,
EventArgs
e
)
{
try
{
equipBean
.
StopMove
();
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
+
ex
.
StackTrace
);
}
}
private
void
btnReset_Click
(
object
sender
,
EventArgs
e
)
{
if
(
equipBean
.
runStatus
>
(
LineRunStatus
.
Wait
))
{
equipBean
.
Reset
();
}
}
private
void
btnStop1Up_Click
(
object
sender
,
EventArgs
e
)
private
void
btnStop1Up_Click
(
object
sender
,
EventArgs
e
)
{
{
BtnMove
(
btnStop1Up
,
"阻挡1下降"
,
"阻挡1上升"
,
IO_Type
.
StopCylinder_Down1
);
BtnMove
(
btnStop1Up
,
"阻挡1下降"
,
"阻挡1上升"
,
IO_Type
.
StopCylinder_Down1
);
...
...
source/AssemblyLineClient/FrmProvidingEquip.cs
查看文件 @
09dde46
...
@@ -173,9 +173,7 @@ namespace OnlineStore.AssemblyLine
...
@@ -173,9 +173,7 @@ namespace OnlineStore.AssemblyLine
selectControl
=
newControl
;
selectControl
=
newControl
;
}
}
}
}
}
}
private
void
FrmStoreIOStatus_Load
(
object
sender
,
EventArgs
e
)
private
void
FrmStoreIOStatus_Load
(
object
sender
,
EventArgs
e
)
{
{
if
(
equipBean
.
UseAxis
)
if
(
equipBean
.
UseAxis
)
...
@@ -216,17 +214,13 @@ namespace OnlineStore.AssemblyLine
...
@@ -216,17 +214,13 @@ namespace OnlineStore.AssemblyLine
e
.
Graphics
.
DrawString
(
io
.
DisplayStr
,
e
.
Font
,
new
SolidBrush
(
e
.
ForeColor
),
e
.
Bounds
.
X
,
e
.
Bounds
.
Y
+
3
);
e
.
Graphics
.
DrawString
(
io
.
DisplayStr
,
e
.
Font
,
new
SolidBrush
(
e
.
ForeColor
),
e
.
Bounds
.
X
,
e
.
Bounds
.
Y
+
3
);
}
}
}
}
private
void
btnReadIO_Click
(
object
sender
,
EventArgs
e
)
private
void
btnReadIO_Click
(
object
sender
,
EventArgs
e
)
{
{
ReadIOList
();
ReadIOList
();
}
}
internal
void
FormStatus
(
bool
isStart
)
internal
override
void
FormStatus
(
bool
isStart
)
{
{
btnStart
.
Enabled
=
!
isStart
;
btnStart
.
Enabled
=
!
isStart
;
btnStop
.
Enabled
=
true
;
btnStop
.
Enabled
=
true
;
...
@@ -242,16 +236,16 @@ namespace OnlineStore.AssemblyLine
...
@@ -242,16 +236,16 @@ namespace OnlineStore.AssemblyLine
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
{
{
if
(
equipBean
.
runStatus
.
Equals
(
LineRunStatus
.
Wait
))
StartDebug
();
{
}
bool
result
=
equipBean
.
StartRun
(
true
);
private
void
btnStop_Click
(
object
sender
,
EventArgs
e
)
if
(
result
)
{
{
StopRun
();
FormStatus
(
true
);
}
}
private
void
btnReset_Click
(
object
sender
,
EventArgs
e
)
}
{
Reset
();
}
}
private
void
chbDebug_CheckedChanged
(
object
sender
,
EventArgs
e
)
private
void
chbDebug_CheckedChanged
(
object
sender
,
EventArgs
e
)
{
{
if
(!
IsLoad
)
if
(!
IsLoad
)
...
@@ -301,29 +295,8 @@ namespace OnlineStore.AssemblyLine
...
@@ -301,29 +295,8 @@ namespace OnlineStore.AssemblyLine
{
{
MessageBox
.
Show
(
"未启动或不在空闲中,无法入库测试!"
);
MessageBox
.
Show
(
"未启动或不在空闲中,无法入库测试!"
);
}
}
}
}
private
void
btnStop_Click
(
object
sender
,
EventArgs
e
)
{
try
{
equipBean
.
StopMove
();
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
+
ex
.
StackTrace
);
}
}
private
void
btnReset_Click
(
object
sender
,
EventArgs
e
)
{
if
(
equipBean
.
runStatus
>(
LineRunStatus
.
Wait
))
{
equipBean
.
Reset
();
}
}
private
void
btnStop1Up_Click
(
object
sender
,
EventArgs
e
)
private
void
btnStop1Up_Click
(
object
sender
,
EventArgs
e
)
{
{
BtnMove
(
btnStop1Up
,
"阻挡1下降"
,
"阻挡1上升"
,
IO_Type
.
StopCylinder_Down1
);
BtnMove
(
btnStop1Up
,
"阻挡1下降"
,
"阻挡1上升"
,
IO_Type
.
StopCylinder_Down1
);
...
...
source/DeviceLibrary/assemblyLine/DischargeLine.cs
查看文件 @
09dde46
...
@@ -36,24 +36,102 @@ namespace OnlineStore.DeviceLibrary
...
@@ -36,24 +36,102 @@ namespace OnlineStore.DeviceLibrary
/// 开始运行
/// 开始运行
/// </summary>
/// </summary>
public
override
bool
StartRun
(
bool
isDebug
=
false
)
public
override
bool
StartRun
(
bool
isDebug
=
false
)
{
{
preTrayNum
=
0
;
if
(
CanStartRun
().
Equals
(
false
))
currTrayNum
=
0
;
{
mainTimer
.
Enabled
=
false
;
return
false
;
}
mainTimer
.
Stop
();
MoveInfo
.
EndMove
();
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
lineStatus
=
LineStatus
.
StoreOnline
;
lineStatus
=
LineStatus
.
StoreOnline
;
//TODO 调试时暂时注释
runStatus
=
LineRunStatus
.
HomeMoving
;
runStatus
=
LineRunStatus
.
HomeMoving
;
bool
result
=
ReturnHome
();
LogInfo
(
"开始原点返回: (重置灯状态,定位气缸下降 )开始"
);
if
(
result
&&
isDebug
)
MoveInfo
.
NewMove
(
LineMoveType
.
ReturnHome
);
StartReset
();
if
(
isDebug
)
{
{
mainTimer
.
Enabled
=
true
;
mainTimer
.
Enabled
=
true
;
}
}
return
result
;
return
true
;
}
/// <summary>
/// 出料装置重置
/// </summary>
public
override
bool
Reset
()
{
StopMove
();
LogInfo
(
"开始重置: (重置灯状态,定位气缸下降 )开始;"
);
runStatus
=
LineRunStatus
.
Reset
;
MoveInfo
.
NewMove
(
LineMoveType
.
Reset
);
StartReset
();
return
true
;
}
private
void
StartReset
()
{
ResetClearData
();
lineStatus
=
LineStatus
.
ResetMove
;
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
DL_R_CylinderDown
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SeparateDevice_Up
,
IO_Type
.
SeparateDevice_Down
);
IOMove
(
IO_Type
.
DLine_RunStatus
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
DLine_RunAlarm
,
IO_VALUE
.
LOW
);
if
(
IsDebug
)
{
mainTimer
.
Start
();
}
isInPro
=
false
;
}
/// <summary>
/// 复位处理
/// </summary>
protected
override
void
ResetProcess
()
{
if
(
MoveInfo
.
IsInWait
)
{
CheckWait
(
MoveInfo
);
}
else
if
(
SecondMoveInfo
.
IsInWait
)
{
CheckWait
(
SecondMoveInfo
);
}
if
(!
MoveInfo
.
IsInWait
&&
!
SecondMoveInfo
.
IsInWait
)
{
switch
(
MoveInfo
.
MoveStep
)
{
case
LineMoveStep
.
DL_R_CylinderDown
:
LogInfo
(
MoveInfo
.
MoveType
+
"完成!"
);
runStatus
=
LineRunStatus
.
Runing
;
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
break
;
default
:
break
;
}
}
}
}
/// <summary>
/// 停止运动
/// </summary>
internal
override
void
StopMove
()
{
runStatus
=
LineRunStatus
.
Busy
;
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
StopLineRun
();
LogInfo
(
"停止运动:(定位气缸下降,皮带线停转 )开始 "
);
CylinderMove
(
null
,
IO_Type
.
SeparateDevice_Up
,
IO_Type
.
SeparateDevice_Down
);
IOMove
(
IO_Type
.
DLine_Run1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
DLine_Run2
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
DLine_Run3
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
SeparateDevice_Run
,
IO_VALUE
.
LOW
);
}
/// <summary>
/// <summary>
/// 停止运行
/// 停止运行
/// </summary>
/// </summary>
...
@@ -110,25 +188,26 @@ namespace OnlineStore.DeviceLibrary
...
@@ -110,25 +188,26 @@ namespace OnlineStore.DeviceLibrary
BusyMoveProcess
();
BusyMoveProcess
();
//判断流水线打开了才可以运行
//判断流水线打开了才可以运行
if
(
runStatus
.
Equals
(
LineRunStatus
.
Runing
)&&
alarmType
.
Equals
(
LineAlarm
.
None
))
{
if
(
runStatus
.
Equals
(
LineRunStatus
.
Runing
)
&&
alarmType
.
Equals
(
LineAlarm
.
None
))
{
//判断是否需要入库
//判断是否需要入库
if
(
IOValue
(
IO_Type
.
DLine_Exit_Check3
).
Equals
(
IO_VALUE
.
LOW
)&&
LineRuning
.
Equals
(
false
))
if
(
IOValue
(
IO_Type
.
DLine_Exit_Check3
).
Equals
(
IO_VALUE
.
LOW
)
&&
LineRuning
.
Equals
(
false
))
{
{
//皮带3入口或者中间有料盘,出口无料盘,转动皮带三
//皮带3入口或者中间有料盘,出口无料盘,转动皮带三
if
((
IOValue
(
IO_Type
.
DLine_Entry_Check3
).
Equals
(
IO_VALUE
.
HIGH
)
||
IOValue
(
IO_Type
.
DLine_Middle_Check3
).
Equals
(
IO_VALUE
.
HIGH
)))
if
((
IOValue
(
IO_Type
.
DLine_Entry_Check3
).
Equals
(
IO_VALUE
.
HIGH
)
||
IOValue
(
IO_Type
.
DLine_Middle_Check3
).
Equals
(
IO_VALUE
.
HIGH
)))
{
{
StartLineRun
(
IO_Type
.
DLine_Run3
,
IO_Type
.
DLine_Location_Check3
);
StartLineRun
(
IO_Type
.
DLine_Run3
,
IO_Type
.
DLine_Location_Check3
);
}
}
}
}
if
(
IOValue
(
IO_Type
.
DLine_Entry_Check3
).
Equals
(
IO_VALUE
.
LOW
)
&&
LineRuning
.
Equals
(
false
)&&
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
if
(
IOValue
(
IO_Type
.
DLine_Entry_Check3
).
Equals
(
IO_VALUE
.
LOW
)
&&
LineRuning
.
Equals
(
false
)
&&
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
{
if
((
IOValue
(
IO_Type
.
DLine_Entry_Check1
).
Equals
(
IO_VALUE
.
HIGH
)
||
IOValue
(
IO_Type
.
DLine_Exit_Check1
).
Equals
(
IO_VALUE
.
HIGH
)))
if
((
IOValue
(
IO_Type
.
DLine_Entry_Check1
).
Equals
(
IO_VALUE
.
HIGH
)
||
IOValue
(
IO_Type
.
DLine_Exit_Check1
).
Equals
(
IO_VALUE
.
HIGH
)))
{
{
StartLineRun
(
IO_Type
.
DLine_Run1
,
IO_Type
.
DLine_Location_Check1
);
StartLineRun
(
IO_Type
.
DLine_Run1
,
IO_Type
.
DLine_Location_Check1
);
}
}
}
}
if
(
IOValue
(
IO_Type
.
DLine_Middle_Check3
).
Equals
(
IO_VALUE
.
LOW
)
&&
LineRuning
.
Equals
(
false
)&&
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
if
(
IOValue
(
IO_Type
.
DLine_Middle_Check3
).
Equals
(
IO_VALUE
.
LOW
)
&&
LineRuning
.
Equals
(
false
)
&&
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
{
if
((
IOValue
(
IO_Type
.
DLine_Entry_Check2
).
Equals
(
IO_VALUE
.
HIGH
)
||
IOValue
(
IO_Type
.
DLine_Exit_Check2
).
Equals
(
IO_VALUE
.
HIGH
)))
if
((
IOValue
(
IO_Type
.
DLine_Entry_Check2
).
Equals
(
IO_VALUE
.
HIGH
)
||
IOValue
(
IO_Type
.
DLine_Exit_Check2
).
Equals
(
IO_VALUE
.
HIGH
)))
{
{
StartLineRun
(
IO_Type
.
DLine_Run2
,
IO_Type
.
DLine_Location_Check2
);
StartLineRun
(
IO_Type
.
DLine_Run2
,
IO_Type
.
DLine_Location_Check2
);
...
@@ -143,112 +222,12 @@ namespace OnlineStore.DeviceLibrary
...
@@ -143,112 +222,12 @@ namespace OnlineStore.DeviceLibrary
{
{
IOMove
(
IO_Type
.
DLine_RunAlarm
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
DLine_RunAlarm
,
IO_VALUE
.
LOW
);
}
}
else
if
(
IOValue
(
IO_Type
.
DLine_RunAlarm
).
Equals
(
IO_VALUE
.
LOW
))
else
if
(
IOValue
(
IO_Type
.
DLine_RunAlarm
).
Equals
(
IO_VALUE
.
LOW
))
{
IOMove
(
IO_Type
.
DLine_RunAlarm
,
IO_VALUE
.
HIGH
);
}
}
/// <summary>
/// 出料装置原点返回
/// </summary>
public
bool
ReturnHome
()
{
mainTimer
.
Stop
();
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
alarmType
=
LineAlarmType
.
None
;
runStatus
=
LineRunStatus
.
HomeMoving
;
LogInfo
(
"开始原点返回: (重置灯状态,定位气缸下降 )开始"
);
MoveInfo
.
NewMove
(
LineMoveType
.
ReturnHome
);
StartReset
();
return
true
;
}
/// <summary>
/// 出料装置重置
/// </summary>
public
override
bool
Reset
()
{
WarnMsg
=
""
;
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
alarmType
=
LineAlarmType
.
None
;
LogInfo
(
"开始重置: (重置灯状态,定位气缸下降 )开始;"
);
runStatus
=
LineRunStatus
.
Reset
;
MoveInfo
.
NewMove
(
LineMoveType
.
Reset
);
StartReset
();
return
true
;
}
private
void
StartReset
()
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
DL_R_CylinderDown
);
CylinderMove
(
MoveInfo
,
IO_Type
.
SeparateDevice_Up
,
IO_Type
.
SeparateDevice_Down
);
IOMove
(
IO_Type
.
DLine_RunStatus
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
DLine_RunAlarm
,
IO_VALUE
.
LOW
);
if
(
IsDebug
)
{
mainTimer
.
Start
();
}
isInPro
=
false
;
}
/// <summary>
/// 重置处理
/// </summary>
protected
override
void
ResetProcess
()
{
ReturnHomeProcess
();
}
/// <summary>
/// 原点返回处理
/// </summary>
protected
override
void
ReturnHomeProcess
()
{
if
(
MoveInfo
.
IsInWait
)
{
CheckWait
(
MoveInfo
);
}
else
if
(
SecondMoveInfo
.
IsInWait
)
{
{
CheckWait
(
SecondMoveInfo
);
IOMove
(
IO_Type
.
DLine_RunAlarm
,
IO_VALUE
.
HIGH
);
}
if
(!
MoveInfo
.
IsInWait
&&
!
SecondMoveInfo
.
IsInWait
)
{
switch
(
MoveInfo
.
MoveStep
)
{
case
LineMoveStep
.
DL_R_CylinderDown
:
LogInfo
(
MoveInfo
.
MoveType
+
"完成!"
);
runStatus
=
LineRunStatus
.
Runing
;
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
break
;
default
:
break
;
}
}
}
}
}
/// <summary>
/// 停止运动
/// </summary>
public
override
void
StopMove
()
{
runStatus
=
LineRunStatus
.
Busy
;
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
StopLineRun
();
LogInfo
(
"停止运动:(定位气缸下降,皮带线停转 )开始 "
);
CylinderMove
(
null
,
IO_Type
.
SeparateDevice_Up
,
IO_Type
.
SeparateDevice_Down
);
IOMove
(
IO_Type
.
DLine_Run1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
DLine_Run2
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
DLine_Run3
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
SeparateDevice_Run
,
IO_VALUE
.
LOW
);
}
public
override
bool
StartInStoreMove
(
InOutParam
param
)
public
override
bool
StartInStoreMove
(
InOutParam
param
)
{
{
return
false
;
return
false
;
...
...
source/DeviceLibrary/assemblyLine/EquipBase.cs
查看文件 @
09dde46
...
@@ -35,7 +35,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -35,7 +35,7 @@ namespace OnlineStore.DeviceLibrary
/// 升降轴
/// 升降轴
/// </summary>
/// </summary>
public
AxisBean
UpdownAxis
=
null
;
public
AxisBean
UpdownAxis
=
null
;
protected
abstract
void
ReturnHomeProcess
();
protected
virtual
void
StopMoveProcess
()
protected
virtual
void
StopMoveProcess
()
{
{
}
}
...
@@ -74,7 +74,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -74,7 +74,7 @@ namespace OnlineStore.DeviceLibrary
OutStoreProcess
();
OutStoreProcess
();
break
;
break
;
case
LineMoveType
.
ReturnHome
:
case
LineMoveType
.
ReturnHome
:
Re
turnHome
Process
();
Re
set
Process
();
break
;
break
;
case
LineMoveType
.
Reset
:
case
LineMoveType
.
Reset
:
...
@@ -95,7 +95,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -95,7 +95,7 @@ namespace OnlineStore.DeviceLibrary
}
}
else
if
(
MoveInfo
.
MoveType
==
LineMoveType
.
ReturnHome
)
else
if
(
MoveInfo
.
MoveType
==
LineMoveType
.
ReturnHome
)
{
{
Re
turnHome
Process
();
Re
set
Process
();
}
}
else
if
(
MoveInfo
.
MoveType
==
LineMoveType
.
Reset
)
else
if
(
MoveInfo
.
MoveType
==
LineMoveType
.
Reset
)
{
{
...
@@ -167,6 +167,24 @@ namespace OnlineStore.DeviceLibrary
...
@@ -167,6 +167,24 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
"IOTimeOutProcess出错:"
+
ex
.
ToString
());
LogUtil
.
error
(
"IOTimeOutProcess出错:"
+
ex
.
ToString
());
}
}
}
}
protected
bool
CanStartRun
()
{
string
canResult
=
LineManager
.
Line
.
CanStart
();
if
(
String
.
IsNullOrEmpty
(
canResult
).
Equals
(
false
))
{
LogUtil
.
error
(
Name
+
""
+
canResult
);
WarnMsg
=
canResult
;
return
false
;
}
return
true
;
}
protected
void
ResetClearData
()
{
WarnMsg
=
""
;
alarmType
=
LineAlarmType
.
None
;
preTrayNum
=
0
;
currTrayNum
=
0
;
}
public
void
ChangeDebug
(
bool
isDebug
)
public
void
ChangeDebug
(
bool
isDebug
)
{
{
if
(
baseConfig
.
DType
.
Equals
(
DeviceType
.
MoveEquip
)
||
baseConfig
.
DType
.
Equals
(
DeviceType
.
ProvidingEquip
))
if
(
baseConfig
.
DType
.
Equals
(
DeviceType
.
MoveEquip
)
||
baseConfig
.
DType
.
Equals
(
DeviceType
.
ProvidingEquip
))
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip.cs
查看文件 @
09dde46
...
@@ -33,115 +33,45 @@ namespace OnlineStore.DeviceLibrary
...
@@ -33,115 +33,45 @@ namespace OnlineStore.DeviceLibrary
MoveInfo
=
new
LineMoveInfo
(
DeviceID
,
"入料-"
+
DeviceID
+
"-Move"
);
MoveInfo
=
new
LineMoveInfo
(
DeviceID
,
"入料-"
+
DeviceID
+
"-Move"
);
SecondMoveInfo
=
new
LineMoveInfo
(
DeviceID
,
"入料-"
+
DeviceID
+
"-SecondMove"
);
SecondMoveInfo
=
new
LineMoveInfo
(
DeviceID
,
"入料-"
+
DeviceID
+
"-SecondMove"
);
}
}
/// <summary>
/// 开始运行
/// </summary>
public
override
bool
StartRun
(
bool
isDebug
=
false
)
{
mainTimer
.
Enabled
=
false
;
MoveInfo
.
EndMove
();
lineStatus
=
LineStatus
.
StoreOnline
;
//TODO 调试时暂时注释
runStatus
=
LineRunStatus
.
HomeMoving
;
bool
result
=
ReturnHome
();
if
(
result
&&
isDebug
)
{
mainTimer
.
Enabled
=
true
;
}
return
result
;
}
/// <summary>
/// <summary>
///
停止
运行
///
开始
运行
/// </summary>
/// </summary>
public
override
void
StopRun
()
public
override
bool
StartRun
(
bool
isDebug
=
false
)
{
if
(
mainTimer
!=
null
)
{
mainTimer
.
Enabled
=
false
;
}
StopMove
();
runStatus
=
LineRunStatus
.
Wait
;
}
public
override
void
TimerProcess
()
{
{
if
(
IOValue
(
IO_Type
.
SL_SuddenStop_BTN
).
Equals
(
IO_VALUE
.
LOW
))
if
(
CanStartRun
().
Equals
(
false
))
{
WarnMsg
=
Name
+
"收到急停信号"
;
LogUtil
.
error
(
WarnMsg
);
Alarm
(
LineAlarmType
.
SuddenStop
);
return
;
}
if
(
IOValue
(
IO_Type
.
SL_Reset_BTN
).
Equals
(
IO_VALUE
.
HIGH
))
{
if
(
alarmType
.
Equals
(
LineAlarmType
.
None
))
{
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
LogUtil
.
error
(
Name
+
"收到复位信号,当前无报警,不需要复位"
);
}
else
{
LogUtil
.
error
(
Name
+
"收到复位信号,当前无报警,正在"
+
MoveInfo
.
MoveType
+
"处理中,不需要复位"
);
}
}
else
{
LogUtil
.
info
(
Name
+
"收到复位信号,开始复位"
);
Reset
();
}
return
;
}
BusyMoveProcess
();
//判断流水线打开了才可以运行
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
{
if
(
LineManager
.
Line
.
CanProcessLine
()&&
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
return
false
;
{
StartCheckFixture
();
}
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
)&&
Config
.
IsCanOut
.
Equals
(
false
))
{
StartInStoreP
();
}
}
}
IOTimeOutProcess
();
}
/// <summary>
/// 入料装置原点返回
/// </summary>
public
bool
ReturnHome
()
{
mainTimer
.
Stop
();
StopMove
();
if
(
RunAxis
(
true
,
BatchAxis
)
&&
RunAxis
(
true
,
UpdownAxis
))
if
(
RunAxis
(
true
,
BatchAxis
)
&&
RunAxis
(
true
,
UpdownAxis
))
{
{
mainTimer
.
Enabled
=
false
;
MoveInfo
.
EndMove
();
alarmType
=
LineAlarmType
.
None
;
SecondMoveInfo
.
EndMove
();
runStatus
=
LineRunStatus
.
HomeMoving
;
lineStatus
=
LineStatus
.
StoreOnline
;
runStatus
=
LineRunStatus
.
HomeMoving
;
LogInfo
(
"开始原点返回: "
);
LogInfo
(
"开始原点返回: "
);
MoveInfo
.
NewMove
(
LineMoveType
.
ReturnHome
);
MoveInfo
.
NewMove
(
LineMoveType
.
ReturnHome
);
StartReset
();
StartReset
();
if
(
isDebug
)
{
mainTimer
.
Start
();
}
return
true
;
return
true
;
}
return
false
;
}
return
false
;
}
}
/// <summary>
/// <summary>
/// 入料装置重置
/// 入料装置重置
/// </summary>
/// </summary>
public
override
bool
Reset
()
public
override
bool
Reset
()
{
{
WarnMsg
=
""
;
StopMove
();
StopMove
();
if
(
RunAxis
(
true
,
BatchAxis
)
&&
RunAxis
(
true
,
UpdownAxis
))
if
(
RunAxis
(
true
,
BatchAxis
)
&&
RunAxis
(
true
,
UpdownAxis
))
{
{
...
@@ -155,6 +85,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -155,6 +85,8 @@ namespace OnlineStore.DeviceLibrary
}
}
private
void
StartReset
()
private
void
StartReset
()
{
{
ResetClearData
();
lineStatus
=
LineStatus
.
ResetMove
;
LogInfo
(
MoveInfo
.
MoveType
+
":FR_01_StopCylinderMove:放料阻挡气缸上升,顶升气缸下降"
);
LogInfo
(
MoveInfo
.
MoveType
+
":FR_01_StopCylinderMove:放料阻挡气缸上升,顶升气缸下降"
);
IOMove
(
IO_Type
.
SL_HddLed
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
SL_HddLed
,
IO_VALUE
.
HIGH
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FR_01_StopCylinderMove
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FR_01_StopCylinderMove
);
...
@@ -167,18 +99,12 @@ namespace OnlineStore.DeviceLibrary
...
@@ -167,18 +99,12 @@ namespace OnlineStore.DeviceLibrary
}
}
isInPro
=
false
;
isInPro
=
false
;
}
}
/// <summary>
/// <summary>
///
重置
处理
///
复位
处理
/// </summary>
/// </summary>
protected
override
void
ResetProcess
()
protected
override
void
ResetProcess
()
{
{
ReturnHomeProcess
();
}
/// <summary>
/// 原点返回处理
/// </summary>
protected
override
void
ReturnHomeProcess
()
{
if
(
MoveInfo
.
IsInWait
)
if
(
MoveInfo
.
IsInWait
)
{
{
CheckWait
(
MoveInfo
);
CheckWait
(
MoveInfo
);
...
@@ -242,8 +168,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -242,8 +168,8 @@ namespace OnlineStore.DeviceLibrary
}
}
}
}
}
}
public
override
void
StopMove
()
internal
override
void
StopMove
()
{
{
MoveInfo
.
EndMove
();
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
...
@@ -264,9 +190,68 @@ namespace OnlineStore.DeviceLibrary
...
@@ -264,9 +190,68 @@ namespace OnlineStore.DeviceLibrary
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
SL_Buffer_StopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
SL_Out_StopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
SL_Out_StopDown
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
SL_OutLine_Run
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
SL_OutLine_Run
,
IO_VALUE
.
LOW
);
}
}
/// <summary>
/// 停止运行
/// </summary>
public
override
void
StopRun
()
{
if
(
mainTimer
!=
null
)
{
mainTimer
.
Enabled
=
false
;
}
StopMove
();
runStatus
=
LineRunStatus
.
Wait
;
}
public
override
void
TimerProcess
()
{
if
(
IOValue
(
IO_Type
.
SL_SuddenStop_BTN
).
Equals
(
IO_VALUE
.
LOW
))
{
WarnMsg
=
Name
+
"收到急停信号"
;
LogUtil
.
error
(
WarnMsg
);
Alarm
(
LineAlarmType
.
SuddenStop
);
return
;
}
if
(
IOValue
(
IO_Type
.
SL_Reset_BTN
).
Equals
(
IO_VALUE
.
HIGH
))
{
if
(
alarmType
.
Equals
(
LineAlarmType
.
None
))
{
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
LogUtil
.
error
(
Name
+
"收到复位信号,当前无报警,不需要复位"
);
}
else
{
LogUtil
.
error
(
Name
+
"收到复位信号,当前无报警,正在"
+
MoveInfo
.
MoveType
+
"处理中,不需要复位"
);
}
}
else
{
LogUtil
.
info
(
Name
+
"收到复位信号,开始复位"
);
Reset
();
}
return
;
}
BusyMoveProcess
();
//判断流水线打开了才可以运行
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
if
(
LineManager
.
Line
.
CanProcessLine
()
&&
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
StartCheckFixture
();
}
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
)
&&
Config
.
IsCanOut
.
Equals
(
false
))
{
StartInStoreP
();
}
}
IOTimeOutProcess
();
}
/// <summary>
/// <summary>
/// 下降所有阻挡气缸
/// 下降所有阻挡气缸
/// </summary>
/// </summary>
...
...
source/DeviceLibrary/assemblyLine/LineBean.cs
查看文件 @
09dde46
...
@@ -162,25 +162,35 @@ namespace OnlineStore.DeviceLibrary
...
@@ -162,25 +162,35 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
endregion
public
override
bool
StartRun
(
bool
isDebug
=
false
)
public
string
CanStart
(
)
{
{
if
(!
canStart
)
if
(!
canStart
)
{
{
SetWarnMsg
(
"启动失败:设备未初始化完成"
)
;
return
"启动失败:设备未初始化完成"
;
return
false
;
}
}
if
(
MoveEquipMap
==
null
)
if
(
MoveEquipMap
==
null
)
{
{
SetWarnMsg
(
"启动失败:未加载到移栽信息"
);
return
"启动失败:未加载到移栽信息"
;
return
false
;
}
}
if
(
IOValue
(
IO_Type
.
SuddenStop_BTN
).
Equals
(
IO_VALUE
.
LOW
))
if
(
IOValue
(
IO_Type
.
SuddenStop_BTN
).
Equals
(
IO_VALUE
.
LOW
))
{
{
SetWarnMsg
(
"启动失败:急停未开"
);
return
"启动失败:急停未开"
;
}
}
else
if
(
IOValue
(
IO_Type
.
Airpressure_Check
).
Equals
(
IO_VALUE
.
LOW
))
else
if
(
IOValue
(
IO_Type
.
Airpressure_Check
).
Equals
(
IO_VALUE
.
LOW
))
{
{
SetWarnMsg
(
"启动失败:没有气压信号"
);
return
"启动失败:没有气压信号"
;
}
return
""
;
}
public
override
bool
StartRun
(
bool
isDebug
=
false
)
{
string
result
=
CanStart
();
if
(
String
.
IsNullOrEmpty
(
result
).
Equals
(
false
))
{
SetWarnMsg
(
result
);
return
false
;
}
}
else
else
{
{
...
@@ -819,7 +829,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -819,7 +829,7 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
endregion
public
override
void
StopMove
()
internal
override
void
StopMove
()
{
{
foreach
(
MoveEquip
equip
in
this
.
AllEquipMap
.
Values
)
foreach
(
MoveEquip
equip
in
this
.
AllEquipMap
.
Values
)
...
...
source/DeviceLibrary/assemblyLine/MoveEquip.cs
查看文件 @
09dde46
...
@@ -48,146 +48,40 @@ namespace OnlineStore.DeviceLibrary
...
@@ -48,146 +48,40 @@ namespace OnlineStore.DeviceLibrary
public
override
bool
StartRun
(
bool
isDebug
=
false
)
public
override
bool
StartRun
(
bool
isDebug
=
false
)
{
{
preTrayNum
=
0
;
if
(
CanStartRun
().
Equals
(
false
))
currTrayNum
=
0
;
mainTimer
.
Enabled
=
false
;
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
lineStatus
=
LineStatus
.
StoreOnline
;
runStatus
=
LineRunStatus
.
HomeMoving
;
bool
result
=
ReturnHome
();
if
(
result
&&
isDebug
)
{
mainTimer
.
Enabled
=
true
;
}
return
result
;
}
public
override
void
StopRun
()
{
preTrayNum
=
0
;
currTrayNum
=
0
;
if
(
mainTimer
!=
null
)
{
mainTimer
.
Enabled
=
false
;
}
StopMove
();
//停止运行时,把所有IO 置零
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
StopCylinder_Down2
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
TopCylinder_UP
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
TopCylinder_Down
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
BeforeAfterCylinder_Before
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
BeforeAfterCylinder_After
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
UpDownCylinder_Up
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
UpDownCylinder_Down
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
ClampCylinder_Slack
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
ClampCylinder_Tighten
,
IO_VALUE
.
LOW
);
runStatus
=
LineRunStatus
.
Wait
;
}
public
override
void
TimerProcess
()
{
BusyMoveProcess
();
//判断流水线打开了才可以运行
if
(
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
if
(
LineManager
.
Line
.
CanProcessLine
())
{
// LogUtil.info("StartCheckFixture");
StartCheckFixture
();
}
}
IOTimeOutProcess
();
OutStoreListPro
();
}
/// <summary>
/// 出库队列处理
/// </summary>
private
void
OutStoreListPro
()
{
//料仓出库完成,进仓装置开始出库检测
if
(
IsDebug
.
Equals
(
false
)
&&
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
)
&&
runStatus
.
Equals
(
LineRunStatus
.
Runing
))
{
{
InOutParam
waitOutParma
=
null
;
return
false
;
lock
(
waitOutListLock
)
{
if
(
waitOutStoreList
.
Count
>
0
)
{
waitOutParma
=
waitOutStoreList
[
0
];
waitOutStoreList
.
RemoveAt
(
0
);
}
}
if
(
waitOutParma
!=
null
)
{
LogUtil
.
info
(
Name
+
"开始 执行排队中的出库【"
+
waitOutParma
.
ToStr
()
+
"】"
);
//出库
bool
result
=
StartOutStoreMove
(
waitOutParma
);
if
(!
result
)
{
LogUtil
.
info
(
Name
+
" 执行排队中的出库【"
+
waitOutParma
.
ToStr
()
+
"】失败,重新加入等待队列"
);
AddWaitOutInfo
(
waitOutParma
);
}
}
}
}
public
void
AddWaitOutInfo
(
InOutParam
param
)
{
lock
(
waitOutListLock
)
{
//判断是否已经加入,不重复加
List
<
InOutParam
>
paramList
=
(
from
m
in
waitOutStoreList
where
m
.
PosId
.
Equals
(
param
.
PosId
)
select
m
).
ToList
<
InOutParam
>();
if
(
paramList
.
Count
>
0
)
{
LogUtil
.
error
(
Name
+
"出库【"
+
param
.
ToStr
()
+
"】加入等待出库队列失败,此库位已存在列表中"
);
}
else
{
waitOutStoreList
.
Add
(
param
);
}
}
}
}
public
bool
ReturnHome
()
{
mainTimer
.
Stop
();
if
(!
RunAxis
(
true
,
UpdownAxis
))
if
(!
RunAxis
(
true
,
UpdownAxis
))
{
{
return
false
;
return
false
;
}
}
alarmType
=
LineAlarmType
.
None
;
mainTimer
.
Enabled
=
false
;
runStatus
=
LineRunStatus
.
HomeMoving
;
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
runStatus
=
LineRunStatus
.
HomeMoving
;
LogInfo
(
"开始原点返回: (上下气缸回原点,阻挡1气缸上升 )开始"
);
LogInfo
(
"开始原点返回: (上下气缸回原点,阻挡1气缸上升 )开始"
);
MoveInfo
.
NewMove
(
LineMoveType
.
ReturnHome
);
MoveInfo
.
NewMove
(
LineMoveType
.
ReturnHome
);
StartReset
();
if
(
isDebug
)
{
mainTimer
.
Enabled
=
true
;
}
return
true
;
return
true
;
}
}
public
override
bool
Reset
()
public
override
bool
Reset
()
{
{
WarnMsg
=
""
;
StopMove
();
//如果正在出库中,需要减去托盘号
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
OutStore
))
{
LogInfo
(
"重置之前发现在出库执行中,减去托盘数;"
);
//减去需要的盘数
TrayManager
.
DelNeedEmptyTrayNum
();
MoveInfo
.
EndMove
();
}
if
(!
RunAxis
(
true
,
UpdownAxis
))
if
(!
RunAxis
(
true
,
UpdownAxis
))
{
{
return
false
;
return
false
;
}
}
alarmType
=
LineAlarmType
.
None
;
//重置时清理盘号,从头开始判断
preTrayNum
=
0
;
currTrayNum
=
0
;
LogInfo
(
"开始重置:清空托盘号,(上下气缸回原点,阻挡1气缸上升 )开始;"
);
LogInfo
(
"开始重置:清空托盘号,(上下气缸回原点,阻挡1气缸上升 )开始;"
);
runStatus
=
LineRunStatus
.
Reset
;
runStatus
=
LineRunStatus
.
Reset
;
SecondMoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
MoveInfo
.
NewMove
(
LineMoveType
.
Reset
);
MoveInfo
.
NewMove
(
LineMoveType
.
Reset
);
...
@@ -197,6 +91,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -197,6 +91,8 @@ namespace OnlineStore.DeviceLibrary
private
void
StartReset
()
private
void
StartReset
()
{
{
ResetClearData
();
lineStatus
=
LineStatus
.
ResetMove
;
//移载装置原点状态:顶升气缸下降端,前后气缸后退端,上下气缸上升端,夹料气缸放松端,阻挡气缸输入=0
//移载装置原点状态:顶升气缸下降端,前后气缸后退端,上下气缸上升端,夹料气缸放松端,阻挡气缸输入=0
UpdownHomeMove
();
UpdownHomeMove
();
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Down, IO_Type.UpDownCylinder_Up);
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Down, IO_Type.UpDownCylinder_Up);
...
@@ -265,15 +161,11 @@ namespace OnlineStore.DeviceLibrary
...
@@ -265,15 +161,11 @@ namespace OnlineStore.DeviceLibrary
}
}
}
}
}
}
protected
override
void
ReturnHomeProcess
()
{
ResetProcess
();
}
/// <summary>
/// <summary>
/// 停止运动
/// 停止运动
/// </summary>
/// </summary>
public
override
void
StopMove
()
internal
override
void
StopMove
()
{
{
//如果正在出库中,需要减去托盘号
//如果正在出库中,需要减去托盘号
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
OutStore
))
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
OutStore
))
...
@@ -287,9 +179,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -287,9 +179,7 @@ namespace OnlineStore.DeviceLibrary
SecondMoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
LogInfo
(
"停止运动:(上下气缸上升端,阻挡气缸输入=0 )开始 "
);
LogInfo
(
"停止运动:(上下气缸上升端,阻挡气缸输入=0 )开始 "
);
//MoveInfo.NewMove(LineMoveType.StopMove);
//MoveInfo.NextMoveStep(LineMoveStep.MH_UpDownCylinder_Up);
UpdownUpMove
();
UpdownUpMove
();
CylinderMove
(
MoveInfo
,
IO_Type
.
TopCylinder_UP
,
IO_Type
.
TopCylinder_Down
);
CylinderMove
(
MoveInfo
,
IO_Type
.
TopCylinder_UP
,
IO_Type
.
TopCylinder_Down
);
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
);
...
@@ -297,8 +187,94 @@ namespace OnlineStore.DeviceLibrary
...
@@ -297,8 +187,94 @@ namespace OnlineStore.DeviceLibrary
}
}
public
override
void
StopRun
()
{
if
(
mainTimer
!=
null
)
{
mainTimer
.
Enabled
=
false
;
}
StopMove
();
//停止运行时,把所有IO 置零
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
StopCylinder_Down2
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
TopCylinder_UP
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
TopCylinder_Down
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
BeforeAfterCylinder_Before
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
BeforeAfterCylinder_After
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
UpDownCylinder_Up
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
UpDownCylinder_Down
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
ClampCylinder_Slack
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
ClampCylinder_Tighten
,
IO_VALUE
.
LOW
);
runStatus
=
LineRunStatus
.
Wait
;
}
public
override
void
TimerProcess
()
{
BusyMoveProcess
();
//判断流水线打开了才可以运行
if
(
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
if
(
LineManager
.
Line
.
CanProcessLine
())
{
// LogUtil.info("StartCheckFixture");
StartCheckFixture
();
}
}
IOTimeOutProcess
();
OutStoreListPro
();
}
/// <summary>
/// 出库队列处理
/// </summary>
private
void
OutStoreListPro
()
{
//料仓出库完成,进仓装置开始出库检测
if
(
IsDebug
.
Equals
(
false
)
&&
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
)
&&
runStatus
.
Equals
(
LineRunStatus
.
Runing
))
{
InOutParam
waitOutParma
=
null
;
lock
(
waitOutListLock
)
{
if
(
waitOutStoreList
.
Count
>
0
)
{
waitOutParma
=
waitOutStoreList
[
0
];
waitOutStoreList
.
RemoveAt
(
0
);
}
}
if
(
waitOutParma
!=
null
)
{
LogUtil
.
info
(
Name
+
"开始 执行排队中的出库【"
+
waitOutParma
.
ToStr
()
+
"】"
);
//出库
bool
result
=
StartOutStoreMove
(
waitOutParma
);
if
(!
result
)
{
LogUtil
.
info
(
Name
+
" 执行排队中的出库【"
+
waitOutParma
.
ToStr
()
+
"】失败,重新加入等待队列"
);
AddWaitOutInfo
(
waitOutParma
);
}
}
}
}
public
void
AddWaitOutInfo
(
InOutParam
param
)
{
lock
(
waitOutListLock
)
{
//判断是否已经加入,不重复加
List
<
InOutParam
>
paramList
=
(
from
m
in
waitOutStoreList
where
m
.
PosId
.
Equals
(
param
.
PosId
)
select
m
).
ToList
<
InOutParam
>();
if
(
paramList
.
Count
>
0
)
{
LogUtil
.
error
(
Name
+
"出库【"
+
param
.
ToStr
()
+
"】加入等待出库队列失败,此库位已存在列表中"
);
}
else
{
waitOutStoreList
.
Add
(
param
);
}
}
}
#
region
上下气缸伺服运动
#
region
上下气缸伺服运动
private
void
UpdownUpMove
()
private
void
UpdownUpMove
()
{
{
if
(
UseAxis
)
if
(
UseAxis
)
...
...
source/DeviceLibrary/assemblyLine/ProvidingEquip.cs
查看文件 @
09dde46
...
@@ -47,102 +47,48 @@ namespace OnlineStore.DeviceLibrary
...
@@ -47,102 +47,48 @@ namespace OnlineStore.DeviceLibrary
public
override
bool
StartRun
(
bool
isDebug
=
false
)
public
override
bool
StartRun
(
bool
isDebug
=
false
)
{
{
preTrayNum
=
0
;
if
(
CanStartRun
().
Equals
(
false
))
currTrayNum
=
0
;
mainTimer
.
Enabled
=
false
;
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
lineStatus
=
LineStatus
.
StoreOnline
;
//TODO 调试时暂时注释
runStatus
=
LineRunStatus
.
HomeMoving
;
bool
result
=
ReturnHome
();
if
(
result
&&
isDebug
)
{
mainTimer
.
Enabled
=
true
;
}
return
result
;
}
public
override
void
StopRun
()
{
if
(
mainTimer
!=
null
)
{
mainTimer
.
Enabled
=
false
;
}
StopMove
();
CloseAxis
(
UpdownAxis
);
//停止运行时,把所有IO 置零
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
StopCylinder_Down2
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
TopCylinder_UP
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
TopCylinder_Down
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
BeforeAfterCylinder_Before
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
BeforeAfterCylinder_After
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
UpDownCylinder_Up
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
UpDownCylinder_Down
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
ClampCylinder_Slack
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
ClampCylinder_Tighten
,
IO_VALUE
.
LOW
);
runStatus
=
LineRunStatus
.
Wait
;
}
public
override
void
TimerProcess
()
{
BusyMoveProcess
();
//判断流水线打开了才可以运行
if
(
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
{
LineBean
lineBean
=
LineManager
.
Line
;
return
false
;
if
(
LineManager
.
Line
.
CanProcessLine
())
{
StartCheckFixture
();
}
}
}
IOTimeOutProcess
();
}
public
bool
ReturnHome
()
{
if
(!
RunAxis
(
true
,
UpdownAxis
))
if
(!
RunAxis
(
true
,
UpdownAxis
))
{
{
return
false
;
return
false
;
}
}
WarnMsg
=
""
;
mainTimer
.
Stop
();
mainTimer
.
Enabled
=
false
;
alarmType
=
LineAlarmType
.
None
;
runStatus
=
LineRunStatus
.
HomeMoving
;
LogInfo
(
"开始原点返回: (上下气上升,阻挡气缸上升 )开始"
);
SecondMoveInfo
.
EndMove
();
MoveInfo
.
EndMove
();
MoveInfo
.
EndMove
();
MoveInfo
.
NewMove
(
LineMoveType
.
ReturnHome
);
SecondMoveInfo
.
EndMove
();
runStatus
=
LineRunStatus
.
HomeMoving
;
LogInfo
(
"开始原点返回: (上下气上升,阻挡气缸上升 )开始"
);
MoveInfo
.
NewMove
(
LineMoveType
.
ReturnHome
);
StartReset
();
StartReset
();
return
true
;
if
(
isDebug
)
}
{
mainTimer
.
Enabled
=
true
;
}
return
true
;
}
public
override
bool
Reset
()
public
override
bool
Reset
()
{
{
StopMove
();
if
(!
RunAxis
(
true
,
UpdownAxis
))
if
(!
RunAxis
(
true
,
UpdownAxis
))
{
{
return
false
;
return
false
;
}
}
WarnMsg
=
""
;
LogInfo
(
"开始重置:清理盘号,(上下气上升,阻挡气缸上升 )开始 "
);
alarmType
=
LineAlarmType
.
None
;
preTrayNum
=
0
;
currTrayNum
=
0
;
LogInfo
(
"开始重置:清理盘号,(上下气上升,阻挡气缸上升 )开始 "
);
runStatus
=
LineRunStatus
.
Reset
;
runStatus
=
LineRunStatus
.
Reset
;
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
MoveInfo
.
NewMove
(
LineMoveType
.
Reset
);
MoveInfo
.
NewMove
(
LineMoveType
.
Reset
);
StartReset
();
StartReset
();
return
true
;
return
true
;
}
}
private
void
StartReset
()
private
void
StartReset
()
{
{
ResetClearData
();
lineStatus
=
LineStatus
.
ResetMove
;
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
MH_UpDownCylinder_Up
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
MH_UpDownCylinder_Up
);
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Down, IO_Type.UpDownCylinder_Up);
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Down, IO_Type.UpDownCylinder_Up);
UpdownHomeMove
();
UpdownHomeMove
();
...
@@ -206,30 +152,62 @@ namespace OnlineStore.DeviceLibrary
...
@@ -206,30 +152,62 @@ namespace OnlineStore.DeviceLibrary
default
:
break
;
default
:
break
;
}
}
}
}
}
}
protected
override
void
ReturnHomeProcess
()
{
internal
override
void
StopMove
()
ResetProcess
();
}
public
override
void
StopMove
()
{
{
MoveInfo
.
EndMove
();
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
runStatus
=
LineRunStatus
.
Busy
;
runStatus
=
LineRunStatus
.
Busy
;
LogInfo
(
"停止运动:(上下气缸上升 ,阻挡气缸输入=0,顶升气缸下降 ) "
);
LogInfo
(
"停止运动:(上下气缸上升 ,阻挡气缸输入=0,顶升气缸下降 ) "
);
//MoveInfo.NewMove(LineMoveType.StopMove);
//MoveInfo.NextMoveStep(LineMoveStep.MH_UpDownCylinder_Up);
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Down, IO_Type.UpDownCylinder_Up);
if
(
UseAxis
)
if
(
UseAxis
)
{
{
UpdownAxis
.
SuddenStop
();
UpdownAxis
.
SuddenStop
();
}
}
CylinderMove
(
MoveInfo
,
IO_Type
.
TopCylinder_UP
,
IO_Type
.
TopCylinder_Down
);
CylinderMove
(
MoveInfo
,
IO_Type
.
TopCylinder_UP
,
IO_Type
.
TopCylinder_Down
);
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
StopCylinder_Down2
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
StopCylinder_Down2
,
IO_VALUE
.
LOW
);
}
}
public
override
void
StopRun
()
{
if
(
mainTimer
!=
null
)
{
mainTimer
.
Enabled
=
false
;
}
StopMove
();
CloseAxis
(
UpdownAxis
);
//停止运行时,把所有IO 置零
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
StopCylinder_Down2
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
TopCylinder_UP
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
TopCylinder_Down
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
BeforeAfterCylinder_Before
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
BeforeAfterCylinder_After
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
UpDownCylinder_Up
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
UpDownCylinder_Down
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
ClampCylinder_Slack
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
ClampCylinder_Tighten
,
IO_VALUE
.
LOW
);
runStatus
=
LineRunStatus
.
Wait
;
}
public
override
void
TimerProcess
()
{
BusyMoveProcess
();
//判断流水线打开了才可以运行
if
(
SecondMoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
LineBean
lineBean
=
LineManager
.
Line
;
if
(
LineManager
.
Line
.
CanProcessLine
())
{
StartCheckFixture
();
}
}
IOTimeOutProcess
();
}
public
override
bool
StartInStoreMove
(
InOutParam
param
)
public
override
bool
StartInStoreMove
(
InOutParam
param
)
{
{
return
false
;
return
false
;
...
...
source/DeviceLibrary/deviceLibrary/IO/AIOBOX/AIOBOXManager.cs
查看文件 @
09dde46
...
@@ -131,7 +131,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -131,7 +131,7 @@ namespace OnlineStore.DeviceLibrary
//DI主动上传
//DI主动上传
aioBox
.
AutoReadInput
(
true
);
aioBox
.
AutoReadInput
(
true
);
aioBox
.
AutoReadOutput
(
true
,
DOMS
);
aioBox
.
AutoReadOutput
(
true
,
DOMS
);
aioBox
.
LogOut
=
true
;
aioBox
.
DI_Changed_Event
+=
AioBox_DI_Changed_Event
;
;
aioBox
.
DI_Changed_Event
+=
AioBox_DI_Changed_Event
;
;
aioBox
.
DO_Changed_Event
+=
AioBox_DO_Changed_Event
;
aioBox
.
DO_Changed_Event
+=
AioBox_DO_Changed_Event
;
...
...
source/DeviceLibrary/model/KTK_Store.cs
查看文件 @
09dde46
...
@@ -197,16 +197,13 @@ namespace OnlineStore.DeviceLibrary
...
@@ -197,16 +197,13 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// <summary>
/// 停止所有运动
/// 停止所有运动
/// </summary>
/// </summary>
public
abstract
void
StopMove
(
);
internal
abstract
void
StopMove
(
);
/// <summary>
/// <summary>
/// 重置处理
/// 重置处理
/// </summary>
/// </summary>
protected
abstract
void
ResetProcess
();
protected
abstract
void
ResetProcess
();
///// <summary>
///// 原点返回处理
///// </summary>
//protected abstract void ReturnHomeProcess();
/// <summary>
/// <summary>
/// 初始化
/// 初始化
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论