Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
SO1196_X800
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit f38a5be1
由
刘韬
编写于
2024-03-28 09:26:03 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1
1 个父辈
9d5f1ef3
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
270 行增加
和
70 行删除
DeviceLibrary/DeviceLibrary/AxisBean.cs
DeviceLibrary/DeviceLibrary/PrinterHelper.cs
DeviceLibrary/theMachine/MainMachine _Common.cs
DeviceLibrary/theMachine/MainMachine.cs
DeviceLibrary/theMachine/MainMachine_Counting.cs
DeviceLibrary/theMachine/MainMachine_InMove.cs
DeviceLibrary/theMachine/MainMachine_OutCar.cs
DeviceLibrary/theMachine/MainMachine_OutMove.cs
SO20117_AutoCountAndLabel.sln → SO1196_AutoCountAndLabel.sln
TheMachine/Form1.Designer.cs
TheMachine/Form1.cs
TheMachine/Program.cs
TheMachine/UC/CylinderButton.cs
DeviceLibrary/DeviceLibrary/AxisBean.cs
查看文件 @
f38a5be
...
...
@@ -341,7 +341,7 @@ namespace DeviceLibrary
#
region
匀速上升处理
private
System
.
Timers
.
Timer
axisCheckTimer
=
null
;
internal
string
[]
TargetIoType
=
new
string
[]
{
};
internal
IO_VALUE
TargetIoValue
=
IO_VALUE
.
HIGH
;
internal
volatile
IO_VALUE
TargetIoValue
=
IO_VALUE
.
HIGH
;
public
bool
BatchAxisStartCheck
(
string
[]
targetIo
,
IO_VALUE
value
=
IO_VALUE
.
HIGH
)
{
if
(
axisCheckTimer
==
null
)
...
...
@@ -365,6 +365,7 @@ namespace DeviceLibrary
{
axisCheckTimer
.
Stop
();
}
TargetIoValue
=
IO_VALUE
.
None
;
return
true
;
}
private
bool
IsInProcess
=
false
;
...
...
@@ -378,9 +379,9 @@ namespace DeviceLibrary
{
if
(
IOManager
.
IOValue
(
io
).
Equals
(
TargetIoValue
))
{
SuddenStop
();
StopAxisCheckMove
();
SuddenStop
();
LogUtil
.
info
(
AxisName
+
"上料轴,检测到 "
+
io
+
"="
+
TargetIoValue
+
",停止运动"
);
StopAxisCheckMove
();
break
;
}
}
...
...
DeviceLibrary/DeviceLibrary/PrinterHelper.cs
查看文件 @
f38a5be
...
...
@@ -61,6 +61,7 @@ namespace DeviceLibrary
print
.
LoadLabel
(
labelname
);
var
bmp
=
print
.
PrintPreview
(
data
);
//print.Print(data);
if
(!
zebraManger
.
PrintImage
(
bmp
,
out
msg
))
{
LogUtil
.
error
(
msg
);
...
...
DeviceLibrary/theMachine/MainMachine _Common.cs
查看文件 @
f38a5be
...
...
@@ -122,37 +122,46 @@ namespace DeviceLibrary
else
if
(
wait
.
WaitType
.
Equals
(
WaitEnum
.
W008_BatchAxis
))
{
AxisBean
axisBean
=
AxisBean
.
List
.
Find
(
a
=>
a
.
Config
.
GetAxisValue
()
==
wait
.
AxisInfo
.
GetAxisValue
());
//等待信号亮或者走到绝对位置才停止
var
tio
=
axisBean
.
TargetIoType
.
Where
(
io
=>
{
return
IOValue
(
io
).
Equals
(
axisBean
.
TargetIoValue
);
});
if
(
tio
.
Count
()>
0
)
if
(
axisBean
.
TargetIoValue
==
IO_VALUE
.
None
)
{
LogUtil
.
info
(
Name
+
"CheckWaitResult 检测到"
+
string
.
Join
(
","
,
tio
.
ToArray
())
+
"="
+
axisBean
.
TargetIoValue
+
",停止运行"
);
axisBean
.
StopAxisCheckMove
();
if
(
AxisManager
.
GetBusyStatus
(
wait
.
AxisInfo
.
DeviceName
,
wait
.
AxisInfo
.
GetAxisValue
()).
Equals
(
1
))
{
axisBean
.
SuddenStop
();
}
wait
.
IsEnd
=
true
;
axisBean
.
SuddenStop
();
LogUtil
.
info
(
Name
+
"axisCheckTimer 已经结束,停止运行"
);
}
else
{
bool
isbusy
=
AxisManager
.
GetBusyStatus
(
wait
.
AxisInfo
.
DeviceName
,
wait
.
AxisInfo
.
GetAxisValue
()).
Equals
(
1
);
if
(!
isbusy
)
//等待信号亮或者走到绝对位置才停止
var
tio
=
axisBean
.
TargetIoType
.
Where
(
io
=>
{
return
IOValue
(
io
).
Equals
(
axisBean
.
TargetIoValue
);
});
if
(
tio
.
Count
()
>
0
)
{
int
outCount
=
AxisManager
.
GetActualtPosition
(
wait
.
AxisInfo
.
DeviceName
,
wait
.
AxisInfo
.
GetAxisValue
());
LogUtil
.
info
(
$
"{wait.AxisInfo.Explain},当前位置:{outCount}"
);
int
errorCount
=
Math
.
Abs
(
outCount
-
wait
.
TargetPosition
);
if
(
errorCount
<=
wait
.
AxisInfo
.
CanErrorCountMax
)
LogUtil
.
info
(
Name
+
"CheckWaitResult 检测到"
+
string
.
Join
(
","
,
tio
.
ToArray
())
+
"="
+
axisBean
.
TargetIoValue
+
",停止运行"
);
axisBean
.
StopAxisCheckMove
();
if
(
AxisManager
.
GetBusyStatus
(
wait
.
AxisInfo
.
DeviceName
,
wait
.
AxisInfo
.
GetAxisValue
()).
Equals
(
1
))
{
LogUtil
.
info
(
$
"{wait.AxisInfo.Explain},到达目标:errorCount:{errorCount},停止上升"
);
axisBean
.
StopAxisCheckMove
();
wait
.
IsEnd
=
true
;
axisBean
.
SuddenStop
();
}
else
wait
.
IsEnd
=
true
;
}
else
{
bool
isbusy
=
AxisManager
.
GetBusyStatus
(
wait
.
AxisInfo
.
DeviceName
,
wait
.
AxisInfo
.
GetAxisValue
()).
Equals
(
1
);
if
(!
isbusy
&&
axisBean
.
TargetIoValue
!=
IO_VALUE
.
None
)
{
LogUtil
.
info
(
$
"{wait.AxisInfo.Explain},继续上升:{wait.TargetPosition}"
);
axisBean
.
AbsMove
(
null
,
wait
.
TargetPosition
,
wait
.
TargetSpeed
);
wait
.
IsEnd
=
false
;
int
outCount
=
AxisManager
.
GetActualtPosition
(
wait
.
AxisInfo
.
DeviceName
,
wait
.
AxisInfo
.
GetAxisValue
());
LogUtil
.
info
(
$
"{wait.AxisInfo.Explain},当前位置:{outCount}"
);
int
errorCount
=
Math
.
Abs
(
outCount
-
wait
.
TargetPosition
);
if
(
errorCount
<=
wait
.
AxisInfo
.
CanErrorCountMax
)
{
LogUtil
.
info
(
$
"{wait.AxisInfo.Explain},到达目标:errorCount:{errorCount},停止上升"
);
axisBean
.
StopAxisCheckMove
();
wait
.
IsEnd
=
true
;
}
else
{
LogUtil
.
info
(
$
"{wait.AxisInfo.Explain},继续上升:{wait.TargetPosition}"
);
axisBean
.
AbsMove
(
null
,
wait
.
TargetPosition
,
wait
.
TargetSpeed
);
wait
.
IsEnd
=
false
;
}
}
}
}
...
...
DeviceLibrary/theMachine/MainMachine.cs
查看文件 @
f38a5be
...
...
@@ -358,7 +358,7 @@ namespace DeviceLibrary
ResetMoveInfo
.
log
(
"小车批量轴, 贴标z轴回原"
);
Loading_Batch_Axis
.
HomeMove
(
null
,
forceHome
);
Unloading_Batch_Axis
.
HomeMove
(
null
,
forceHome
);
Label_Z_Axis
.
HomeMove
(
ResetMoveInfo
,
forceHome
);
Label_Z_Axis
.
HomeMove
(
null
,
forceHome
);
GrabImageEX
();
break
;
case
MoveStep
.
H02_HomeReset_02
:
...
...
@@ -366,6 +366,7 @@ namespace DeviceLibrary
ResetMoveInfo
.
log
(
"2侧升降轴回原"
);
Loading_UpDown_Axis
.
HomeMove
(
ResetMoveInfo
,
forceHome
);
Unloading_UpDown_Axis
.
HomeMove
(
ResetMoveInfo
,
forceHome
);
Label_Z_Axis
.
HomeMove
(
ResetMoveInfo
,
forceHome
);
break
;
case
MoveStep
.
H02_HomeReset
:
ResetMoveInfo
.
NextMoveStep
(
MoveStep
.
H02_HomeReset_1
);
...
...
@@ -387,13 +388,15 @@ namespace DeviceLibrary
case
MoveStep
.
H03_HomeReset
:
ResetMoveInfo
.
NextMoveStep
(
MoveStep
.
H04_HomeReset
);
ResetMoveInfo
.
log
(
"2侧旋转轴回原"
);
Loading_Middle_Axis
.
HomeMove
(
ResetMoveInfo
,
forceHome
);
Unloading_Middle_Axis
.
HomeMove
(
ResetMoveInfo
,
forceHome
);
Loading_Middle_Axis
.
HomeMove
(
null
,
forceHome
);
Unloading_Middle_Axis
.
HomeMove
(
null
,
forceHome
);
break
;
case
MoveStep
.
H04_HomeReset
:
ResetMoveInfo
.
NextMoveStep
(
MoveStep
.
H05_HomeReset
);
Loading_Batch_Axis
.
HomeMove
(
ResetMoveInfo
,
forceHome
);
Unloading_Batch_Axis
.
HomeMove
(
ResetMoveInfo
,
forceHome
);
Loading_Middle_Axis
.
HomeMove
(
ResetMoveInfo
,
forceHome
);
Unloading_Middle_Axis
.
HomeMove
(
ResetMoveInfo
,
forceHome
);
break
;
case
MoveStep
.
H05_HomeReset
:
ResetMoveInfo
.
NextMoveStep
(
MoveStep
.
H06_HomeReset
);
...
...
DeviceLibrary/theMachine/MainMachine_Counting.cs
查看文件 @
f38a5be
...
...
@@ -271,13 +271,13 @@ namespace DeviceLibrary
CountMoveInfo
.
log
(
"料盘已取走"
);
break
;
case
MoveStep
.
Count_20
:
if
(
IOValue
(
IO_Type
.
Counting_ExitDoor_Close
).
Equals
(
IO_VALUE
.
HIGH
)
||
OutMoveInfo
.
MoveStep
>=
MoveStep
.
Out_03
)
if
(
OutMoveInfo
.
MoveStep
>=
MoveStep
.
Out_09
)
{
CountMoveInfo
.
NextMoveStep
(
MoveStep
.
Count_21
);
CountMoveInfo
.
log
(
"
出口门已关闭
"
);
CountMoveInfo
.
log
(
"
料盘已取走
"
);
}
else
if
(
CountMoveInfo
.
IsTimeOut
(
60
))
{
CountMoveInfo
.
log
(
"等待
出口门关闭
"
);
CountMoveInfo
.
log
(
"等待
料盘取走超时
"
);
}
break
;
case
MoveStep
.
Count_21
:
...
...
DeviceLibrary/theMachine/MainMachine_InMove.cs
查看文件 @
f38a5be
...
...
@@ -130,7 +130,7 @@ namespace DeviceLibrary
InMoveInfo
.
log
(
$
"旋转轴到达p1点,升降轴到放料P2"
);
break
;
case
MoveStep
.
In_11
:
if
(
CountMoveInfo
.
MoveStep
==
MoveStep
.
Wait
)
if
(
CountMoveInfo
.
MoveStep
==
MoveStep
.
Wait
||
IOValue
(
IO_Type
.
Counting_EnterDoor_Open
).
Equals
(
IO_VALUE
.
HIGH
)
)
{
InMoveInfo
.
NextMoveStep
(
MoveStep
.
In_12
);
InMoveInfo
.
log
(
$
"点料机已空闲"
);
...
...
@@ -151,9 +151,16 @@ namespace DeviceLibrary
InMoveInfo
.
log
(
$
"旋转轴,升降轴到达放料p2点"
);
break
;
case
MoveStep
.
In_14
:
InMoveInfo
.
NextMoveStep
(
MoveStep
.
In_15
);
Loading_InOut_Axis
.
AbsMove
(
InMoveInfo
,
InToPos
.
InOut_P2
,
Config
.
Loading_InOut_Axis_P1_speed
);
InMoveInfo
.
log
(
$
"进出轴达放料p2点"
);
if
(
CountMoveInfo
.
MoveStep
==
MoveStep
.
Wait
)
{
InMoveInfo
.
NextMoveStep
(
MoveStep
.
In_15
);
Loading_InOut_Axis
.
AbsMove
(
InMoveInfo
,
InToPos
.
InOut_P2
,
Config
.
Loading_InOut_Axis_P1_speed
);
InMoveInfo
.
log
(
$
"进出轴达放料p2点"
);
}
else
{
Msg
.
add
(
"等待点料机空闲"
,
MsgLevel
.
info
);
}
break
;
case
MoveStep
.
In_15
:
if
(
IOValue
(
IO_Type
.
Counting_Reel_Check
).
Equals
(
IO_VALUE
.
LOW
))
...
...
@@ -174,7 +181,7 @@ namespace DeviceLibrary
case
MoveStep
.
In_16
:
InMoveInfo
.
NextMoveStep
(
MoveStep
.
In_17
);
IOMove
(
IO_Type
.
Loading_ReelVacuum_On
,
IO_VALUE
.
LOW
);
InMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
5
00
));
InMoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
20
00
));
InMoveInfo
.
log
(
$
"关闭吸盘"
);
break
;
case
MoveStep
.
In_17
:
...
...
DeviceLibrary/theMachine/MainMachine_OutCar.cs
查看文件 @
f38a5be
...
...
@@ -64,9 +64,18 @@ namespace DeviceLibrary
else
OutCarType
=
CarTypeE
.
Car13
;
OutCarMoveInfo
.
log
(
$
"检测到料车尺寸:{InCarType}"
);
OutCarMoveInfo
.
NextMoveStep
(
MoveStep
.
OutCar_03
);
Unloading_NOCar_Led
.
LedState
=
LedState
.
on
;
if
(
InCarType
!=
CarTypeE
.
None
&&
InCarType
!=
OutCarType
)
{
OutCarMoveInfo
.
NextMoveStep
(
MoveStep
.
OutCarOut_01
);
OutCarMoveInfo
.
log
(
"检测到出料车与入料车尺寸不符"
);
}
else
{
OutCarMoveInfo
.
log
(
$
"检测到料车尺寸:{OutCarType}"
);
OutCarMoveInfo
.
NextMoveStep
(
MoveStep
.
OutCar_03
);
Unloading_NOCar_Led
.
LedState
=
LedState
.
on
;
}
}
else
{
OutCarMoveInfo
.
log
(
$
"小车丢失,重新检测"
);
...
...
@@ -86,7 +95,7 @@ namespace DeviceLibrary
if
(
lowlist
.
Length
>
0
)
{
OutCarMoveInfo
.
log
(
$
"批量轴高速上升到顶部检测点"
);
BatchAxisToP2
(
OutCarMoveInfo
,
Unloading_Batch_Axis
,
OutGetLowReelCheckIOList
()
,
IO_VALUE
.
HIGH
,
Config
.
Unloading_Batch_Axis_P2
,
Config
.
Unloading_Batch_Axis_P1_speed
);
BatchAxisToP2
(
OutCarMoveInfo
,
Unloading_Batch_Axis
,
lowlist
,
IO_VALUE
.
HIGH
,
Config
.
Unloading_Batch_Axis_P2
,
Config
.
Unloading_Batch_Axis_P1_speed
);
}
else
{
OutCarMoveInfo
.
log
(
$
"批量轴所有监测点都已Low"
);
...
...
DeviceLibrary/theMachine/MainMachine_OutMove.cs
查看文件 @
f38a5be
...
...
@@ -51,9 +51,13 @@ namespace DeviceLibrary
}
break
;
case
MoveStep
.
Out_01
:
OutMoveInfo
.
NextMoveStep
(
MoveStep
.
Out_0
2
);
OutMoveInfo
.
NextMoveStep
(
MoveStep
.
Out_0
3
);
Unloading_InOut_Axis
.
AbsMove
(
OutMoveInfo
,
Config
.
Unloading_InOut_Axis_P1
,
Config
.
Unloading_InOut_Axis_P1_speed
);
OutMoveInfo
.
log
(
$
"进出轴回到p1"
);
CylinderMove
(
OutMoveInfo
,
IO_Type
.
Counting_ExitDoor_Close
,
IO_Type
.
Counting_ExitDoor_Open
,
IO_VALUE
.
HIGH
);
if
(
InMoveInfo
.
MoveStep
>=
MoveStep
.
In_10
&&
InMoveInfo
.
MoveStep
<=
MoveStep
.
In_13
)
CylinderMove
(
null
,
IO_Type
.
Counting_EnterDoor_Close
,
IO_Type
.
Counting_EnterDoor_Open
,
IO_VALUE
.
HIGH
);
OutMoveInfo
.
log
(
$
"打开点料机出口大门"
);
break
;
case
MoveStep
.
Out_02
:
OutMoveInfo
.
NextMoveStep
(
MoveStep
.
Out_03
);
...
...
@@ -120,6 +124,8 @@ namespace DeviceLibrary
break
;
case
MoveStep
.
Out_09
:
OutMoveInfo
.
NextMoveStep
(
MoveStep
.
Out_10
);
if
(
CountMoveInfo
.
MoveStep
==
MoveStep
.
Count_ReadyOut
)
CountMoveInfo
.
NextMoveStep
(
MoveStep
.
Count_Outted
);
Unloading_Middle_Axis
.
AbsMove
(
OutMoveInfo
,
Config
.
Unloading_Middle_Axis_P1
,
Config
.
Unloading_Middle_Axis_P1_speed
);
Unloading_UpDown_Axis
.
AbsMove
(
OutMoveInfo
,
Config
.
Unloading_UpDown_Axis_P1
,
Config
.
Unloading_UpDown_Axis_P1_speed
);
OutMoveInfo
.
log
(
$
"旋转轴, 升降轴到p1"
);
...
...
@@ -131,8 +137,7 @@ namespace DeviceLibrary
if
(
OutMoveInfo
.
MoveParam
.
IsNg
)
OutMoveInfo
.
NextMoveStep
(
MoveStep
.
Out_20
);
if
(
CountMoveInfo
.
MoveStep
==
MoveStep
.
Count_ReadyOut
)
CountMoveInfo
.
NextMoveStep
(
MoveStep
.
Count_Outted
);
break
;
case
MoveStep
.
Out_11
:
if
(
string
.
IsNullOrEmpty
(
OutMoveInfo
.
MoveParam
.
ReeID
))
{
...
...
@@ -197,7 +202,7 @@ namespace DeviceLibrary
}
}
else
if
(
OutCarMoveInfo
.
MoveStep
==
MoveStep
.
OutCarReadyPut
)
else
if
(
OutCarMoveInfo
.
MoveStep
==
MoveStep
.
OutCarReadyPut
&&
(
InCarType
==
OutCarType
||
InCarType
==
CarTypeE
.
None
)
)
{
OutMoveInfo
.
MoveParam
.
CurrentStringNum
=
OutCurrentStringNum
;
var
topos
=
"Unloading_T"
+
OutCurrentStringNum
;
...
...
@@ -207,7 +212,12 @@ namespace DeviceLibrary
Unloading_UpDown_Axis
.
AbsMove
(
OutMoveInfo
,
OutToPos
.
UpDown_P2
,
Config
.
Unloading_UpDown_Axis_P1_speed
);
OutMoveInfo
.
log
(
$
"旋转轴,升降轴到达p2点"
);
}
else
{
else
if
(
InCarType
!=
OutCarType
)
{
Msg
.
add
(
"出料车尺寸与入料车不符"
,
MsgLevel
.
alarm
);
LogUtil
.
info
(
"出料车尺寸与入料车不符"
);
}
else
{
Msg
.
add
(
"等待出口料车可以放料"
,
MsgLevel
.
info
);
LogUtil
.
info
(
"等待出口料车可以放料"
);
}
...
...
@@ -215,7 +225,7 @@ namespace DeviceLibrary
case
MoveStep
.
Out_21
:
OutMoveInfo
.
NextMoveStep
(
MoveStep
.
Out_22
);
Unloading_InOut_Axis
.
AbsMove
(
OutMoveInfo
,
OutToPos
.
InOut_P2
,
Config
.
Unloading_InOut_Axis_P1_speed
);
OutMoveInfo
.
log
(
$
"进出轴达p2点"
);
OutMoveInfo
.
log
(
$
"进出轴达p2点"
);
break
;
case
MoveStep
.
Out_22
:
OutMoveInfo
.
NextMoveStep
(
MoveStep
.
Out_23
);
...
...
@@ -277,8 +287,10 @@ namespace DeviceLibrary
break
;
case
MoveStep
.
Out_30
:
OutMoveInfo
.
NextMoveStep
(
MoveStep
.
Out_31
);
BatchAxisToP2
(
OutMoveInfo
,
Unloading_Batch_Axis
,
OutGetReelCheckIOList
(
OutCurrentStringNum
),
IO_VALUE
.
HIGH
,
Config
.
Unloading_Batch_Axis_P2
,
Config
.
Unloading_Batch_Axis_P2_speed
);
OutMoveInfo
.
log
(
$
"批量轴慢速上升到检测点亮"
);
var
target
=
Unloading_Batch_Axis
.
GetAclPosition
();
target
=
target
+
(
OutMoveInfo
.
MoveParam
.
PlateH
+
20
)
*
1000
;
BatchAxisToP2
(
OutMoveInfo
,
Unloading_Batch_Axis
,
OutGetReelCheckIOList
(
OutCurrentStringNum
),
IO_VALUE
.
HIGH
,
target
,
Config
.
Unloading_Batch_Axis_P2_speed
);
OutMoveInfo
.
log
(
$
"批量轴慢速上升到检测点亮,当前位置:{Unloading_Batch_Axis.GetAclPosition()},控制上升:{OutMoveInfo.MoveParam.PlateH},{target}"
);
break
;
case
MoveStep
.
Out_31
:
OutMoveInfo
.
NextMoveStep
(
MoveStep
.
Out_WaitForLabel
);
...
...
SO
20117
_AutoCountAndLabel.sln
→
SO
1196
_AutoCountAndLabel.sln
查看文件 @
f38a5be
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 1
6
VisualStudioVersion = 1
6.0.30907.101
# Visual Studio Version 1
7
VisualStudioVersion = 1
7.9.34701.34
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LoadCSVLibrary", "LoadCVSLibrary\LoadCSVLibrary.csproj", "{064BEBF5-8FAA-4EA2-A5F3-A06E6E7D9251}"
EndProject
...
...
TheMachine/Form1.Designer.cs
查看文件 @
f38a5be
...
...
@@ -45,6 +45,13 @@ namespace TheMachine
this
.
tabc
=
new
System
.
Windows
.
Forms
.
TabControl
();
this
.
tabP1
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
pnl
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
cylinderButton7
=
new
TheMachine
.
CylinderButton
();
this
.
cylinderButton3
=
new
TheMachine
.
CylinderButton
();
this
.
cylinderButton5
=
new
TheMachine
.
CylinderButton
();
this
.
cylinderButton4
=
new
TheMachine
.
CylinderButton
();
this
.
cylinderButton2
=
new
TheMachine
.
CylinderButton
();
this
.
cylinderButton1
=
new
TheMachine
.
CylinderButton
();
this
.
cylinderButton6
=
new
TheMachine
.
CylinderButton
();
this
.
groupBox_ngboxstatus
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
btn_ngboxclear
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
pb_ngbox
=
new
VerticalProgressBar
();
...
...
@@ -202,6 +209,13 @@ namespace TheMachine
//
// pnl
//
this
.
pnl
.
Controls
.
Add
(
this
.
cylinderButton7
);
this
.
pnl
.
Controls
.
Add
(
this
.
cylinderButton3
);
this
.
pnl
.
Controls
.
Add
(
this
.
cylinderButton5
);
this
.
pnl
.
Controls
.
Add
(
this
.
cylinderButton4
);
this
.
pnl
.
Controls
.
Add
(
this
.
cylinderButton2
);
this
.
pnl
.
Controls
.
Add
(
this
.
cylinderButton1
);
this
.
pnl
.
Controls
.
Add
(
this
.
cylinderButton6
);
this
.
pnl
.
Controls
.
Add
(
this
.
groupBox_ngboxstatus
);
this
.
pnl
.
Controls
.
Add
(
this
.
groupBox2
);
this
.
pnl
.
Controls
.
Add
(
this
.
groupBox1
);
...
...
@@ -216,22 +230,134 @@ namespace TheMachine
this
.
pnl
.
Size
=
new
System
.
Drawing
.
Size
(
1000
,
576
);
this
.
pnl
.
TabIndex
=
273
;
//
// cylinderButton7
//
this
.
cylinderButton7
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
cylinderButton7
.
Confirm
=
true
;
this
.
cylinderButton7
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
cylinderButton7
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cylinderButton7
.
IO_HIGH
=
"Counting_EnterDoor_Open"
;
this
.
cylinderButton7
.
IO_LOW
=
"Counting_EnterDoor_Close"
;
this
.
cylinderButton7
.
Location
=
new
System
.
Drawing
.
Point
(
754
,
236
);
this
.
cylinderButton7
.
Name
=
"cylinderButton7"
;
this
.
cylinderButton7
.
Size
=
new
System
.
Drawing
.
Size
(
224
,
39
);
this
.
cylinderButton7
.
TabIndex
=
9
;
this
.
cylinderButton7
.
Tag
=
"not"
;
this
.
cylinderButton7
.
Text
=
"Counting_EnterDoor_Open"
;
this
.
cylinderButton7
.
UseVisualStyleBackColor
=
false
;
//
// cylinderButton3
//
this
.
cylinderButton3
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
cylinderButton3
.
Confirm
=
true
;
this
.
cylinderButton3
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
cylinderButton3
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cylinderButton3
.
IO_HIGH
=
"Unloading_Car_Location_Up"
;
this
.
cylinderButton3
.
IO_LOW
=
"Unloading_Car_Location_Down"
;
this
.
cylinderButton3
.
Location
=
new
System
.
Drawing
.
Point
(
754
,
404
);
this
.
cylinderButton3
.
Name
=
"cylinderButton3"
;
this
.
cylinderButton3
.
Size
=
new
System
.
Drawing
.
Size
(
224
,
39
);
this
.
cylinderButton3
.
TabIndex
=
10
;
this
.
cylinderButton3
.
Tag
=
"not"
;
this
.
cylinderButton3
.
Text
=
"Unloading_Car_Location_Up"
;
this
.
cylinderButton3
.
UseVisualStyleBackColor
=
false
;
//
// cylinderButton5
//
this
.
cylinderButton5
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
cylinderButton5
.
Confirm
=
true
;
this
.
cylinderButton5
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
cylinderButton5
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cylinderButton5
.
IO_HIGH
=
"Unloading_LabelVacuum_On"
;
this
.
cylinderButton5
.
IO_LOW
=
""
;
this
.
cylinderButton5
.
Location
=
new
System
.
Drawing
.
Point
(
754
,
488
);
this
.
cylinderButton5
.
Name
=
"cylinderButton5"
;
this
.
cylinderButton5
.
Size
=
new
System
.
Drawing
.
Size
(
224
,
39
);
this
.
cylinderButton5
.
TabIndex
=
11
;
this
.
cylinderButton5
.
Tag
=
"not"
;
this
.
cylinderButton5
.
Text
=
"Unloading_LabelVacuum_On"
;
this
.
cylinderButton5
.
UseVisualStyleBackColor
=
false
;
//
// cylinderButton4
//
this
.
cylinderButton4
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
cylinderButton4
.
Confirm
=
true
;
this
.
cylinderButton4
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
cylinderButton4
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cylinderButton4
.
IO_HIGH
=
"Unloading_ReelVacuum_On"
;
this
.
cylinderButton4
.
IO_LOW
=
""
;
this
.
cylinderButton4
.
Location
=
new
System
.
Drawing
.
Point
(
754
,
446
);
this
.
cylinderButton4
.
Name
=
"cylinderButton4"
;
this
.
cylinderButton4
.
Size
=
new
System
.
Drawing
.
Size
(
224
,
39
);
this
.
cylinderButton4
.
TabIndex
=
12
;
this
.
cylinderButton4
.
Tag
=
"not"
;
this
.
cylinderButton4
.
Text
=
"Unloading_ReelVacuum_On"
;
this
.
cylinderButton4
.
UseVisualStyleBackColor
=
false
;
//
// cylinderButton2
//
this
.
cylinderButton2
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
cylinderButton2
.
Confirm
=
true
;
this
.
cylinderButton2
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
cylinderButton2
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cylinderButton2
.
IO_HIGH
=
"Loading_ReelVacuum_On"
;
this
.
cylinderButton2
.
IO_LOW
=
""
;
this
.
cylinderButton2
.
Location
=
new
System
.
Drawing
.
Point
(
754
,
362
);
this
.
cylinderButton2
.
Name
=
"cylinderButton2"
;
this
.
cylinderButton2
.
Size
=
new
System
.
Drawing
.
Size
(
224
,
39
);
this
.
cylinderButton2
.
TabIndex
=
13
;
this
.
cylinderButton2
.
Tag
=
"not"
;
this
.
cylinderButton2
.
Text
=
"Loading_ReelVacuum_On"
;
this
.
cylinderButton2
.
UseVisualStyleBackColor
=
false
;
//
// cylinderButton1
//
this
.
cylinderButton1
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
cylinderButton1
.
Confirm
=
true
;
this
.
cylinderButton1
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
cylinderButton1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cylinderButton1
.
IO_HIGH
=
"Loading_Car_Location_Up"
;
this
.
cylinderButton1
.
IO_LOW
=
"Loading_Car_Location_Down"
;
this
.
cylinderButton1
.
Location
=
new
System
.
Drawing
.
Point
(
754
,
320
);
this
.
cylinderButton1
.
Name
=
"cylinderButton1"
;
this
.
cylinderButton1
.
Size
=
new
System
.
Drawing
.
Size
(
224
,
39
);
this
.
cylinderButton1
.
TabIndex
=
14
;
this
.
cylinderButton1
.
Tag
=
"not"
;
this
.
cylinderButton1
.
Text
=
"Loading_Car_Location_Up"
;
this
.
cylinderButton1
.
UseVisualStyleBackColor
=
false
;
//
// cylinderButton6
//
this
.
cylinderButton6
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
cylinderButton6
.
Confirm
=
true
;
this
.
cylinderButton6
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
cylinderButton6
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cylinderButton6
.
IO_HIGH
=
"Counting_ExitDoor_Open"
;
this
.
cylinderButton6
.
IO_LOW
=
"Counting_ExitDoor_Close"
;
this
.
cylinderButton6
.
Location
=
new
System
.
Drawing
.
Point
(
754
,
278
);
this
.
cylinderButton6
.
Name
=
"cylinderButton6"
;
this
.
cylinderButton6
.
Size
=
new
System
.
Drawing
.
Size
(
224
,
39
);
this
.
cylinderButton6
.
TabIndex
=
15
;
this
.
cylinderButton6
.
Tag
=
"not"
;
this
.
cylinderButton6
.
Text
=
"Counting_ExitDoor_Open"
;
this
.
cylinderButton6
.
UseVisualStyleBackColor
=
false
;
//
// groupBox_ngboxstatus
//
this
.
groupBox_ngboxstatus
.
Controls
.
Add
(
this
.
btn_ngboxclear
);
this
.
groupBox_ngboxstatus
.
Controls
.
Add
(
this
.
pb_ngbox
);
this
.
groupBox_ngboxstatus
.
Location
=
new
System
.
Drawing
.
Point
(
792
,
247
);
this
.
groupBox_ngboxstatus
.
Location
=
new
System
.
Drawing
.
Point
(
876
,
12
);
this
.
groupBox_ngboxstatus
.
Name
=
"groupBox_ngboxstatus"
;
this
.
groupBox_ngboxstatus
.
Size
=
new
System
.
Drawing
.
Size
(
1
54
,
244
);
this
.
groupBox_ngboxstatus
.
Size
=
new
System
.
Drawing
.
Size
(
1
16
,
216
);
this
.
groupBox_ngboxstatus
.
TabIndex
=
8
;
this
.
groupBox_ngboxstatus
.
TabStop
=
false
;
this
.
groupBox_ngboxstatus
.
Text
=
"NG箱状态"
;
//
// btn_ngboxclear
//
this
.
btn_ngboxclear
.
Location
=
new
System
.
Drawing
.
Point
(
20
,
1
92
);
this
.
btn_ngboxclear
.
Location
=
new
System
.
Drawing
.
Point
(
20
,
1
56
);
this
.
btn_ngboxclear
.
Name
=
"btn_ngboxclear"
;
this
.
btn_ngboxclear
.
Size
=
new
System
.
Drawing
.
Size
(
116
,
40
);
this
.
btn_ngboxclear
.
Size
=
new
System
.
Drawing
.
Size
(
82
,
40
);
this
.
btn_ngboxclear
.
TabIndex
=
1
;
this
.
btn_ngboxclear
.
Text
=
"清空"
;
this
.
btn_ngboxclear
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -241,17 +367,17 @@ namespace TheMachine
//
this
.
pb_ngbox
.
Location
=
new
System
.
Drawing
.
Point
(
20
,
28
);
this
.
pb_ngbox
.
Name
=
"pb_ngbox"
;
this
.
pb_ngbox
.
Size
=
new
System
.
Drawing
.
Size
(
116
,
157
);
this
.
pb_ngbox
.
Size
=
new
System
.
Drawing
.
Size
(
82
,
122
);
this
.
pb_ngbox
.
TabIndex
=
0
;
//
// groupBox2
//
this
.
groupBox2
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Righ
t
)));
this
.
groupBox2
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Lef
t
)));
this
.
groupBox2
.
Controls
.
Add
(
this
.
listView_reelnfo
);
this
.
groupBox2
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
247
);
this
.
groupBox2
.
Name
=
"groupBox2"
;
this
.
groupBox2
.
Size
=
new
System
.
Drawing
.
Size
(
7
73
,
244
);
this
.
groupBox2
.
Size
=
new
System
.
Drawing
.
Size
(
7
25
,
299
);
this
.
groupBox2
.
TabIndex
=
7
;
this
.
groupBox2
.
TabStop
=
false
;
this
.
groupBox2
.
Text
=
"料盘数据"
;
...
...
@@ -265,7 +391,7 @@ namespace TheMachine
this
.
listView_reelnfo
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
25
);
this
.
listView_reelnfo
.
MultiSelect
=
false
;
this
.
listView_reelnfo
.
Name
=
"listView_reelnfo"
;
this
.
listView_reelnfo
.
Size
=
new
System
.
Drawing
.
Size
(
7
67
,
216
);
this
.
listView_reelnfo
.
Size
=
new
System
.
Drawing
.
Size
(
7
19
,
271
);
this
.
listView_reelnfo
.
TabIndex
=
0
;
this
.
listView_reelnfo
.
UseCompatibleStateImageBehavior
=
false
;
//
...
...
@@ -274,7 +400,7 @@ namespace TheMachine
this
.
groupBox1
.
Controls
.
Add
(
this
.
stateView
);
this
.
groupBox1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
4
);
this
.
groupBox1
.
Name
=
"groupBox1"
;
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
5
98
,
224
);
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
5
69
,
224
);
this
.
groupBox1
.
TabIndex
=
1
;
this
.
groupBox1
.
TabStop
=
false
;
this
.
groupBox1
.
Text
=
"运行状态"
;
...
...
@@ -288,14 +414,14 @@ namespace TheMachine
this
.
stateView
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
25
);
this
.
stateView
.
MultiSelect
=
false
;
this
.
stateView
.
Name
=
"stateView"
;
this
.
stateView
.
Size
=
new
System
.
Drawing
.
Size
(
5
92
,
196
);
this
.
stateView
.
Size
=
new
System
.
Drawing
.
Size
(
5
63
,
196
);
this
.
stateView
.
TabIndex
=
0
;
this
.
stateView
.
UseCompatibleStateImageBehavior
=
false
;
//
// cb_IgnoreSafecheck
//
this
.
cb_IgnoreSafecheck
.
AutoSize
=
true
;
this
.
cb_IgnoreSafecheck
.
Location
=
new
System
.
Drawing
.
Point
(
607
,
47
);
this
.
cb_IgnoreSafecheck
.
Location
=
new
System
.
Drawing
.
Point
(
578
,
43
);
this
.
cb_IgnoreSafecheck
.
Name
=
"cb_IgnoreSafecheck"
;
this
.
cb_IgnoreSafecheck
.
Size
=
new
System
.
Drawing
.
Size
(
215
,
25
);
this
.
cb_IgnoreSafecheck
.
TabIndex
=
2
;
...
...
@@ -307,7 +433,7 @@ namespace TheMachine
// cb_IgnoreGratingSignal
//
this
.
cb_IgnoreGratingSignal
.
AutoSize
=
true
;
this
.
cb_IgnoreGratingSignal
.
Location
=
new
System
.
Drawing
.
Point
(
607
,
78
);
this
.
cb_IgnoreGratingSignal
.
Location
=
new
System
.
Drawing
.
Point
(
578
,
74
);
this
.
cb_IgnoreGratingSignal
.
Name
=
"cb_IgnoreGratingSignal"
;
this
.
cb_IgnoreGratingSignal
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
25
);
this
.
cb_IgnoreGratingSignal
.
TabIndex
=
2
;
...
...
@@ -319,7 +445,7 @@ namespace TheMachine
// cb_EnableBuzzer
//
this
.
cb_EnableBuzzer
.
AutoSize
=
true
;
this
.
cb_EnableBuzzer
.
Location
=
new
System
.
Drawing
.
Point
(
607
,
16
);
this
.
cb_EnableBuzzer
.
Location
=
new
System
.
Drawing
.
Point
(
578
,
12
);
this
.
cb_EnableBuzzer
.
Name
=
"cb_EnableBuzzer"
;
this
.
cb_EnableBuzzer
.
Size
=
new
System
.
Drawing
.
Size
(
109
,
25
);
this
.
cb_EnableBuzzer
.
TabIndex
=
5
;
...
...
@@ -330,9 +456,9 @@ namespace TheMachine
// btn_IgnoreX09
//
this
.
btn_IgnoreX09
.
BackColor
=
System
.
Drawing
.
Color
.
OrangeRed
;
this
.
btn_IgnoreX09
.
Location
=
new
System
.
Drawing
.
Point
(
607
,
155
);
this
.
btn_IgnoreX09
.
Location
=
new
System
.
Drawing
.
Point
(
578
,
151
);
this
.
btn_IgnoreX09
.
Name
=
"btn_IgnoreX09"
;
this
.
btn_IgnoreX09
.
Size
=
new
System
.
Drawing
.
Size
(
301
,
40
);
this
.
btn_IgnoreX09
.
Size
=
new
System
.
Drawing
.
Size
(
292
,
40
);
this
.
btn_IgnoreX09
.
TabIndex
=
6
;
this
.
btn_IgnoreX09
.
Text
=
"忽略X23错误,并继续运行"
;
this
.
btn_IgnoreX09
.
UseVisualStyleBackColor
=
false
;
...
...
@@ -341,9 +467,9 @@ namespace TheMachine
// btn_PauseBuzzer
//
this
.
btn_PauseBuzzer
.
BackColor
=
System
.
Drawing
.
Color
.
OrangeRed
;
this
.
btn_PauseBuzzer
.
Location
=
new
System
.
Drawing
.
Point
(
607
,
109
);
this
.
btn_PauseBuzzer
.
Location
=
new
System
.
Drawing
.
Point
(
578
,
105
);
this
.
btn_PauseBuzzer
.
Name
=
"btn_PauseBuzzer"
;
this
.
btn_PauseBuzzer
.
Size
=
new
System
.
Drawing
.
Size
(
301
,
40
);
this
.
btn_PauseBuzzer
.
Size
=
new
System
.
Drawing
.
Size
(
292
,
40
);
this
.
btn_PauseBuzzer
.
TabIndex
=
6
;
this
.
btn_PauseBuzzer
.
Text
=
"本次暂停警报器响声"
;
this
.
btn_PauseBuzzer
.
UseVisualStyleBackColor
=
false
;
...
...
@@ -453,6 +579,13 @@ namespace TheMachine
private
VerticalProgressBar
pb_ngbox
;
private
System
.
Windows
.
Forms
.
ToolStripMenuItem
点料算法匹配
ToolStripMenuItem
;
private
System
.
Windows
.
Forms
.
ToolStripSeparator
toolStripSeparator2
;
private
CylinderButton
cylinderButton7
;
private
CylinderButton
cylinderButton3
;
private
CylinderButton
cylinderButton5
;
private
CylinderButton
cylinderButton4
;
private
CylinderButton
cylinderButton2
;
private
CylinderButton
cylinderButton1
;
private
CylinderButton
cylinderButton6
;
}
}
TheMachine/Form1.cs
查看文件 @
f38a5be
...
...
@@ -344,6 +344,14 @@ namespace TheMachine
lm
.
Add
(
m
);
}
SetMsg
(
lm
);
foreach
(
var
cn
in
pnl
.
Controls
)
{
if
(
cn
is
CylinderButton
)
{
(
cn
as
CylinderButton
).
DataUpdate
();
}
}
}
private
void
MainMachine_ButtenEvent
(
object
sender
,
ErrInfo
e
)
...
...
TheMachine/Program.cs
查看文件 @
f38a5be
...
...
@@ -84,7 +84,7 @@ namespace TheMachine
Environment
.
CurrentDirectory
=
Application
.
StartupPath
;
XmlConfigurator
.
Configure
();
var
pn
=
ServerCommunication
.
GetPnByReelid
(
"123"
);
//var pn= ServerCommunication.GetPnByReelid("S202306181351530002");
//LogUtil.info(pn);
//return;
...
...
TheMachine/UC/CylinderButton.cs
查看文件 @
f38a5be
...
...
@@ -82,7 +82,9 @@ namespace TheMachine
}
}
void
DataUpdate
()
{
[
Category
(
"数据"
),
Description
(
"需要确认"
),
Browsable
(
true
)]
public
bool
Confirm
{
get
;
set
;}=
false
;
public
void
DataUpdate
()
{
if
(
string
.
IsNullOrEmpty
(
io_high
)
||
!
DeviceConfig
.
AllDOlist
.
ContainsKey
(
io_high
))
this
.
Text
=
$
"IO {io_high} Not Find"
;
else
...
...
@@ -111,6 +113,9 @@ namespace TheMachine
}
void
StateUpdate
()
{
if
(
configio_high
==
null
)
return
;
io_state
=
IOManager
.
GetDOValue
(
configio_high
.
DeviceName
,
configio_high
.
SlaveID
,
configio_high
.
GetIOAddr
());
if
(
configio_low
!=
null
)
{
...
...
@@ -142,6 +147,18 @@ namespace TheMachine
}
private
void
CylinderButton_Click
(
object
sender
,
EventArgs
e
)
{
if
(
Confirm
)
{
if
(
RobotManage
.
isRunning
)
{
MessageBox
.
Show
(
$
"设备正在运行,不能操作IO"
);
return
;
}
var
r
=
MessageBox
.
Show
(
$
"您正在点击:{Text}"
,
"请注意"
,
MessageBoxButtons
.
OKCancel
);
if
(
r
!=
DialogResult
.
OK
)
{
return
;
}
}
if
(
io_state
.
Equals
(
IO_VALUE
.
LOW
))
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论