Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张东亮
/
NS200
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
图表
网络
创建新的问题
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 2846c9e9
由
刘韬
编写于
2025-03-11 18:58:41 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
优化72mm料盘NG
1 个父辈
07bacd1d
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
157 行增加
和
59 行删除
AutoScanAndLabel/resources/en-US.lngres
DeviceLibrary/AutoScanAndLabel/MainMachine _BtnProcess.cs
DeviceLibrary/AutoScanAndLabel/MainMachine _IOMonitor.cs
DeviceLibrary/AutoScanAndLabel/MainMachine _LeftProcess.cs
DeviceLibrary/AutoScanAndLabel/MainMachine _MiddleProcess.cs
DeviceLibrary/AutoScanAndLabel/MainMachine _RightProcess.cs
DeviceLibrary/AutoScanAndLabel/MoveStep.cs
DeviceLibrary/DEIF.cs
DeviceLibrary/DeviceLibrary.csproj
DeviceLibrary/DeviceLibrary/RemoteDecodeHelper.cs
AutoScanAndLabel/resources/en-US.lngres
查看文件 @
2846c9e
...
...
@@ -521,6 +521,41 @@ Res0128.e5d9ef10 模版匹配失败 Template Matching Failure
Res0129.0e13d0de 标签打印失败,请检查打印机状态,关门后将自动重试 Label printing failure.Please check the status. Will automatically retry after closing the door
Res0130.c3836615 标签吸取失败,请检查,关门后将自动重试 Label sucking failed, please check, will automatically retry after closing the door
Res0131.df796d2d 运动报警 Motion Alarm
Res0132.45f8ce0b 请先选择相机 Please select camera
Res0133.348f1b33 请先选择图片 Please select picture
Res0134.2f36fc36 获取二维码图片为空 Get the two-dimensional code picture is empty
Res0135.4cc0a7a8 确定删除文件: Make sure to delete the file:
Res0136.c56a14a0 读取文件失败:
Res0137.f18f365a 扫码测试_
Res0138.72eff852 识别
Res0139.29d9f02a //ID,启用,宽度,高度,角度,中点x,中点y,p1.x,p1.y,p2.x,p2.y,p3.x,p3.y,p4.x,p4.y
Res0140.3b7b140a //类型,中点X,中点Y,角度,文本
Res0141.45b4fe3b 选择二维码图片
Res0142.5358d483 图片(*.jpg)|*.jpg|图片(*.png)|*.png
Res0143.836d6b0c 请先解析条码!
Res0144.0d4a0d99 请等待上个二维码生成成功后再操作!
Res0145.308b5439 生成中:
Res0146.2f29961e 拼接格式说明:*为分隔符
Res0147.fa67f3ad \r\nRID表示RealID对应的条码内容
Res0148.1a900ea2 \r\nPN表示Customer PN 对应的条码内容
Res0149.d96f4e8e \r\nQTY表示QTY对应的条码内容
Res0150.620048ee \r\nDATE表示DATE对应的条码内容
Res0151.6926e3be \r\nLOT表示LOT对应的条码内容
Res0152.3b108349 保存成功
Res0153.78876856 (默认)
Res0154.7854b52a 启用
Res0155.5daef6b4 输入新的标签名称:
Res0156.67a79371 输入字段名:
Res0157.89d3b48c 图片文件|*.jpg;*.jpeg;*.png;*.bmp;*.gif|所有文件|*.*
Res0158.14175694 输入模板的名称:
Res0159.a5d1c511 模板名称
Res0160.e7991e32 图片(*.png)|*.png|图片(*.jpg)|*.jpg
Res0161.631cd220 确认删除
Res0162.b04fbd0f \r\n识别到二维码:
Res0163.17995f3f \r\n未识别到二维码
Res0164.d42d76fd \r\n扫码结束耗时:
Res0165.5e2a4b76 \r\n转换图片耗时:
Res0166.2bf72810 NG物料厚度超过72mm无法放入NG箱 NG materials exceeding 72mm in thickness cannot be placed into the NG container.
Res0188 电夹爪通讯失败:{0} Eletric Gripper Communication Failure:{0}
Res0189 IO板卡初始化失败 IO Card Initialization Failure
Res0190 打开配置模式 Turn On Configuration Modo
...
...
DeviceLibrary/AutoScanAndLabel/MainMachine _BtnProcess.cs
查看文件 @
2846c9e
...
...
@@ -21,7 +21,9 @@ namespace DeviceLibrary
{
//硬件v2版本,已经去除料车检测X11的io
if
((
RightMoveInfo
.
IsStep
(
MoveStep
.
Wait
)
||
RightMoveInfo
.
IsStep
(
MoveStep
.
REND
))
&&
IOValue
(
IO_Type
.
Right_BTN
).
Equals
(
IO_VALUE
.
HIGH
))
&&
IOValue
(
IO_Type
.
Right_BTN
).
Equals
(
IO_VALUE
.
HIGH
)
&&
MiddleMoveInfo
.
MoveStep
!=
MoveStep
.
M20_ToNgBox
&&
MiddleMoveInfo
.
MoveStep
!=
MoveStep
.
M20_ToNgBox_72HRelease
)
{
//有料,出料,无料,进料
if
(
IOValue
(
IO_Type
.
RightEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
))
...
...
@@ -52,7 +54,9 @@ namespace DeviceLibrary
{
if
((
RightMoveInfo
.
IsStep
(
MoveStep
.
Wait
)
||
RightMoveInfo
.
IsStep
(
MoveStep
.
REND
))
&&
IOValue
(
IO_Type
.
Right_BTN
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
RightCar_Check
).
Equals
(
IO_VALUE
.
HIGH
))
&&
IOValue
(
IO_Type
.
RightCar_Check
).
Equals
(
IO_VALUE
.
HIGH
)
&&
MiddleMoveInfo
.
MoveStep
!=
MoveStep
.
M20_ToNgBox
&&
MiddleMoveInfo
.
MoveStep
!=
MoveStep
.
M20_ToNgBox_72HRelease
)
{
//有料,出料,无料,进料
if
(
IOValue
(
IO_Type
.
RightEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
))
...
...
@@ -86,7 +90,9 @@ namespace DeviceLibrary
if
(
RightMoveInfo
.
IsStep
(
MoveStep
.
Wait
)
&&
IOValue
(
IO_Type
.
Right_BTN
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
RightEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
RightCar_Check
).
Equals
(
IO_VALUE
.
HIGH
))
&&
IOValue
(
IO_Type
.
RightCar_Check
).
Equals
(
IO_VALUE
.
HIGH
)
&&
MiddleMoveInfo
.
MoveStep
!=
MoveStep
.
M20_ToNgBox
&&
MiddleMoveInfo
.
MoveStep
!=
MoveStep
.
M20_ToNgBox_72HRelease
)
{
RightMoveInfo
.
NewMove
(
MoveStep
.
R30_OutShelf
);
LogUtil
.
info
(
"BtnProcess:进料串感应到有料,进料口确认,检测到小车"
);
...
...
@@ -114,6 +120,17 @@ namespace DeviceLibrary
CylinderMove
(
null
,
IO_Type
.
LeftStopUP
,
IO_Type
.
LeftStopDown
);
}
}
if
(
MiddleMoveInfo
.
MoveStep
==
MoveStep
.
M20_ToNgBox
&&
IOValue
(
IO_Type
.
GratingSignal_Check
).
Equals
(
IO_VALUE
.
LOW
))
{
if
(
IOValue
(
IO_Type
.
Right_BTN
).
Equals
(
IO_VALUE
.
HIGH
))
{
MiddleMoveInfo
.
NextMoveStep
(
MoveStep
.
M20_ToNgBox_72HRelease
);
clampTool
.
Release
();
MiddleMoveInfo
.
log
(
"用户按下右侧reset,夹抓放松"
);
}
}
}
}
}
DeviceLibrary/AutoScanAndLabel/MainMachine _IOMonitor.cs
查看文件 @
2846c9e
...
...
@@ -24,7 +24,10 @@ namespace DeviceLibrary
RightMoveInfo
.
NewMove
(
MoveStep
.
R40_InShelf
);
}
//有料无AGV进料请求转到出料步骤
else
if
(
IOValue
(
IO_Type
.
RightEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
FeedAGV_Receiving
).
Equals
(
IO_VALUE
.
LOW
))
else
if
(
IOValue
(
IO_Type
.
RightEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
FeedAGV_Receiving
).
Equals
(
IO_VALUE
.
LOW
)
&&
MiddleMoveInfo
.
MoveStep
!=
MoveStep
.
M20_ToNgBox
&&
MiddleMoveInfo
.
MoveStep
!=
MoveStep
.
M20_ToNgBox_72HRelease
)
{
RightMoveInfo
.
NewMove
(
MoveStep
.
R30_OutShelf
);
LogUtil
.
info
(
"IOMonitor:进料串感应到有料"
);
...
...
@@ -60,6 +63,8 @@ namespace DeviceLibrary
}
else
if
(
IOValue
(
IO_Type
.
RightEnd_Check
).
Equals
(
IO_VALUE
.
HIGH
)
&&
IOValue
(
IO_Type
.
RightCar_Check
).
Equals
(
IO_VALUE
.
HIGH
)
&&
MiddleMoveInfo
.
MoveStep
!=
MoveStep
.
M20_ToNgBox
&&
MiddleMoveInfo
.
MoveStep
!=
MoveStep
.
M20_ToNgBox_72HRelease
&&
(
IOValue
(
IO_Type
.
Right_BTN
).
Equals
(
IO_VALUE
.
HIGH
)
||
IOValue
(
IO_Type
.
FeedAGV_Receiving
).
Equals
(
IO_VALUE
.
HIGH
)))
{
RightMoveInfo
.
NewMove
(
MoveStep
.
R30_OutShelf
);
...
...
DeviceLibrary/AutoScanAndLabel/MainMachine _LeftProcess.cs
查看文件 @
2846c9e
...
...
@@ -17,26 +17,28 @@ namespace DeviceLibrary
int
LeftCount
=
0
;
public
bool
SafeReleaseLeftShelf
=
false
;
int
Uppre
=
-
1000
;
int
Uplast
=
-
1000
;
int
step
=
0
;
//int Uppre = -1000;
//int Uplast = -1000;
//int step = 0;
public
int
LastBatchAxisPosition
=
0
;
public
int
PlwHight
=
0
;
/// <summary>
/// 料盘高度单位脉冲
/// </summary>
public
int
PlwHight
{
get
{
int
hight
=
0
;
//if (Uppre != -1000 && Uplast != -1000&&step==3)
if
(
Uppre
!=
-
1000
&&
Uplast
!=
-
1000
&&
step
==
2
)
{
hight
=
Math
.
Abs
(
Uplast
-
Uppre
)
+
2000
;
RightMoveInfo
.
log
(
$
"料盘高度计算:hight:{hight},Uppre:{Uppre},Uplast:{Uplast}"
);
}
return
hight
;
}
}
//
public int PlwHight
//
{
//
get
//
{
//
int hight = 0;
//
//if (Uppre != -1000 && Uplast != -1000&&step==3)
//
if (Uppre != -1000 && Uplast != -1000 && step == 2)
//
{
//
hight = Math.Abs(Uplast - Uppre) + 2000;
//
RightMoveInfo.log($"料盘高度计算:hight:{hight},Uppre:{Uppre},Uplast:{Uplast}");
//
}
//
return hight;
//
}
//
}
void
LeftProcess
()
{
if
(
CheckWait
(
LeftMoveInfo
))
...
...
@@ -52,25 +54,34 @@ namespace DeviceLibrary
CylinderMove
(
null
,
IO_Type
.
LeftStopDown
,
IO_Type
.
LeftStopUP
);
LeftBatchAxisToP2
(
Config
.
Left_Batch_P2
,
Config
.
Left_Batch_P1_speed
,
IO_VALUE
.
HIGH
);
LeftMoveInfo
.
log
(
$
"批量轴上升到P2位置,第一次提升,LeftStartMovePosition={LeftStartMovePosition}"
);
step
=
1
;
break
;
//没有这个步骤
case
MoveStep
.
L02
:
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L03
);
LeftBatchAxisToP2
(
Config
.
Left_Batch_P2
,
Config
.
Left_Batch_P2_speed
,
IO_VALUE
.
HIGH
);
LeftMoveInfo
.
log
(
$
"批量轴上升到P2位置,二次提升,LeftStartMovePosition={LeftStartMovePosition}"
);
break
;
//轴下降一点
case
MoveStep
.
L03
:
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L04
);
//int currpot = Left_Batch_Axis.GetAclPosition();
LeftBatchAxisDown
();
int
targetP1
=
Left_Batch_Axis
.
GetAclPosition
()
-
ConfigHelper
.
Config
.
Get
(
"LeftAxisDownValue"
,
50
)
*
Config
.
Left_Batch_ChangeValue
;
if
(
PlwHight
>
5000
)
{
int
currpoint
=
Left_Batch_Axis
.
GetAclPosition
();
int
countPleHight
=
PlwHight
/
Config
.
Right_Batch_ChangeValue
*
Config
.
Left_Batch_ChangeValue
;
targetP1
=
currpoint
-
countPleHight
+
5000
;
LeftMoveInfo
.
log
(
$
"出料提升机构,获取到料盘高度脉冲{PlwHight},当前位置{currpoint},计算盘高{countPleHight}"
);
}
int
targetSpeed
=
Config
.
Left_Batch_P1_speed
;
if
(
targetP1
<=
0
)
{
LeftMoveInfo
.
log
(
"出料提升机构,下降固定值小于0,设置回到0原点。"
);
targetP1
=
0
;
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L40_ShelfFull
);
LeftMoveInfo
.
log
(
$
"批量轴已下降到底,料串已满,Left_Batch_P1={Config.Left_Batch_P1}"
);
}
LeftMoveInfo
.
log
(
$
"出料提升机构,下降固定值为{targetP1}脉冲!"
);
Left_Batch_Axis
.
AbsMove
(
LeftMoveInfo
,
targetP1
,
targetSpeed
);
LeftMoveInfo
.
log
(
$
"批量轴下降固定值"
);
break
;
//根据轴位置判断去料串满步骤还是不满步骤
case
MoveStep
.
L04
:
var
currpos
=
Left_Batch_Axis
.
GetAclPosition
();
if
(
currpos
<=
Config
.
Left_Batch_P1
)
if
(
currpos
<=
Config
.
Left_Batch_P1
+
2000
)
{
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L40_ShelfFull
);
LeftMoveInfo
.
log
(
$
"批量轴已下降到底,料串已满,Left_Batch_P1={Config.Left_Batch_P1},needpos={currpos}"
);
...
...
@@ -86,7 +97,7 @@ namespace DeviceLibrary
break
;
//中间步骤给盘,下降一点,获取盘信息
case
MoveStep
.
L11_ReelPutted
:
if
(
step
==
2
||
RightMoveInfo
.
MoveStep
==
MoveStep
.
Wait
)
//if (
RightMoveInfo.MoveStep== MoveStep.Wait)
{
LeftCount
++;
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L12
);
...
...
@@ -95,10 +106,10 @@ namespace DeviceLibrary
LabelMoveInfo
.
MoveParam
=
LeftMoveInfo
.
MoveParam
.
clone
();
LeftMoveInfo
.
log
(
$
"左侧料盘已放入,批量轴下降固定值"
);
}
else
{
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L11_ReelPutted
);
}
//
else
//
{
//
LeftMoveInfo.NextMoveStep(MoveStep.L11_ReelPutted);
//
}
break
;
//防意外
case
MoveStep
.
L12
:
...
...
@@ -109,18 +120,7 @@ namespace DeviceLibrary
break
;
case
MoveStep
.
L13
:
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L20_WaitLabel
);
int
currpot
=
Left_Batch_Axis
.
GetAclPosition
();
//if (step == 1)
//{
// Uppre = currpot;
// step = 2;
//}
//else if (step == 2)
//{
// Uplast = currpot;
// step = 3;
//}
LeftMoveInfo
.
log
(
$
"批量轴完成上升,等待贴标当前位置{currpot},步骤step:{step},Uppre:{Uppre},Uplast:{Uplast}"
);
break
;
//等贴标,由贴标流程跳出
case
MoveStep
.
L20_WaitLabel
:
...
...
@@ -136,7 +136,7 @@ namespace DeviceLibrary
}
else
{
if
(
step
==
2
)
if
(
PlwHight
>
0
)
{
LeftMoveInfo
.
NextMoveStep
(
MoveStep
.
L03
);
LeftBatchAxisToP2
(
Config
.
Left_Batch_P1
,
Config
.
Left_Batch_P1_speed
,
IO_VALUE
.
LOW
);
...
...
DeviceLibrary/AutoScanAndLabel/MainMachine _MiddleProcess.cs
查看文件 @
2846c9e
...
...
@@ -26,6 +26,7 @@ namespace DeviceLibrary
//如果右侧可取料那么那么移动轴到p2点,夹爪释放。获取右侧的标签信息,右侧标签信息复位,否则等待
if
(
RightMoveInfo
.
MoveStep
==
MoveStep
.
R10_WaitReelLeave
)
{
PlwHight
=
0
;
MiddleMoveInfo
.
NextMoveStep
(
MoveStep
.
M02
);
Take_Middle_Axis
.
AbsMove
(
MiddleMoveInfo
,
Config
.
Take_Middle_P2
,
Config
.
Take_Middle_P2_speed
);
Take_UpDown_Axis
.
AbsMove
(
MiddleMoveInfo
,
Config
.
Take_UpDown_P2
,
Config
.
Take_UpDown_P2_speed
);
...
...
@@ -204,9 +205,29 @@ namespace DeviceLibrary
break
;
//NG流程
case
MoveStep
.
M20_ToNgBox
:
MiddleMoveInfo
.
NextMoveStep
(
MoveStep
.
M20_1_ToNgBox
);
Take_UpDown_Axis
.
AbsMove
(
MiddleMoveInfo
,
Config
.
Take_UpDown_P1
,
Config
.
Take_UpDown_P1_speed
);
MiddleMoveInfo
.
log
(
"NG时上下轴转到P1"
);
if
(
PlwHight
>
65
*
1000
)
{
Msg
.
add
(
crc
.
GetString
(
"Res0166.2bf72810"
,
"NG物料厚度超过72mm无法放入NG箱"
),
MsgLevel
.
alarm
);
}
else
if
(
PlwHight
>
0
)
{
MiddleMoveInfo
.
NextMoveStep
(
MoveStep
.
M20_1_ToNgBox
);
Take_UpDown_Axis
.
AbsMove
(
MiddleMoveInfo
,
Config
.
Take_UpDown_P1
,
Config
.
Take_UpDown_P1_speed
);
MiddleMoveInfo
.
log
(
"NG时上下轴转到P1"
);
}
else
{
Msg
.
add
(
"NG物料, 等待测高"
,
MsgLevel
.
info
);
MiddleMoveInfo
.
log
(
"NG物料, 等待测高"
);
}
break
;
case
MoveStep
.
M20_ToNgBox_72HRelease
:
if
(
IOValue
(
IO_Type
.
GratingSignal_Check
).
Equals
(
IO_VALUE
.
HIGH
))
{
MiddleMoveInfo
.
NextMoveStep
(
MoveStep
.
M_ReturnToP1
);
MiddleMoveInfo
.
log
(
"光栅恢复,回待机点"
);
}
break
;
case
MoveStep
.
M20_1_ToNgBox
:
MiddleMoveInfo
.
NextMoveStep
(
MoveStep
.
M21
);
...
...
DeviceLibrary/AutoScanAndLabel/MainMachine _RightProcess.cs
查看文件 @
2846c9e
...
...
@@ -36,16 +36,15 @@ namespace DeviceLibrary
break
;
case
MoveStep
.
R02
:
RightMoveInfo
.
NextMoveStep
(
MoveStep
.
R03
);
Uppre
=
Right_Batch_Axis
.
GetAclPosition
();
step
=
1
;
LastBatchAxisPosition
=
Right_Batch_Axis
.
GetAclPosition
();
RightBatchAxisToP2
(
false
);
RightMoveInfo
.
log
(
$
"批量轴上升到P2位置,二次提升,
RightStartMove
Position={RightStartMovePosition}"
);
RightMoveInfo
.
log
(
$
"批量轴上升到P2位置,二次提升,
LastBatchAxis
Position={RightStartMovePosition}"
);
break
;
case
MoveStep
.
R03
:
RightMoveInfo
.
NextMoveStep
(
MoveStep
.
R04
);
Uplast
=
Right_Batch_Axis
.
GetAclPosition
();
step
=
2
;
RightMoveInfo
.
log
(
$
"批量轴上升到P2位置到位,当前位置
{Uplas
t}"
);
var
Uplast
=
Right_Batch_Axis
.
GetAclPosition
();
PlwHight
=
Uplast
-
LastBatchAxisPosition
;
RightMoveInfo
.
log
(
$
"批量轴上升到P2位置到位,当前位置
:{Uplast}, PlwHight:{PlwHigh
t}"
);
break
;
//如果定位上升并且特定中间步骤偶,开始扫码
case
MoveStep
.
R04
:
...
...
@@ -146,6 +145,7 @@ namespace DeviceLibrary
break
;
case
MoveStep
.
R11_NextReel
:
RightCount
++;
//处于释放状态转到无料料流程,否则回到取料流程
if
(
SafeReleaseRightShelf
)
{
...
...
DeviceLibrary/AutoScanAndLabel/MoveStep.cs
查看文件 @
2846c9e
...
...
@@ -98,6 +98,7 @@ namespace DeviceLibrary
M09
,
M10
,
M20_ToNgBox
,
M20_ToNgBox_72HRelease
,
M20_1_ToNgBox
,
M21
,
M22
,
...
...
DeviceLibrary/DEIF.cs
0 → 100644
查看文件 @
2846c9e
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
DeviceLibrary
{
class
DEIF
{
}
}
DeviceLibrary/DeviceLibrary.csproj
查看文件 @
2846c9e
...
...
@@ -120,6 +120,7 @@
<Compile Include="AutoScanAndLabel\MoveStep.cs" />
<Compile Include="AutoScanAndLabel\MainMachine _Common_.cs" />
<Compile Include="AutoScanAndLabel\MainMachine _RightProcess.cs" />
<Compile Include="DEIF.cs" />
<Compile Include="DeviceLibrary\AlarmBuzzer.cs" />
<Compile Include="DeviceLibrary\ClampTool.cs" />
<Compile Include="DeviceLibrary\CodeManager.cs" />
...
...
DeviceLibrary/DeviceLibrary/RemoteDecodeHelper.cs
查看文件 @
2846c9e
...
...
@@ -297,7 +297,12 @@ public class RemoteDecodeHelper_mod
{
lock
(
p
)
{
var
port
=
(
int
)
Registry
.
GetValue
(
"HKEY_LOCAL_MACHINE\\SOFTWARE\\NS100\\"
,
"port"
,
58137
);
int
port
=
58137
;
try
{
port
=
(
int
)
Registry
.
GetValue
(
"HKEY_LOCAL_MACHINE\\SOFTWARE\\NS100\\"
,
"port"
,
58137
);
}
catch
{
}
serverhost
=
"http://127.0.0.1:"
+
port
+
"/"
;
Process
proes
=
new
Process
();
var
pss
=
Process
.
GetProcessesByName
(
"Neo Scan"
);
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论