Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
SO908-XLRStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 93b20862
由
张东亮
编写于
2021-06-01 15:21:10 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
存储机构-添加出入库、初始化、点位配置
1 个父辈
5d42698f
隐藏空白字符变更
内嵌
并排
正在显示
36 个修改的文件
包含
7634 行增加
和
878 行删除
source/Common/Setting_Init.cs
source/Common/bean/Bean.cs
source/Common/util/FormUtil.cs
source/Common/util/MyWebClient.cs
source/DeviceLibrary/Config/Config_BoxEquip.csv
source/DeviceLibrary/Config/linePositions.csv
source/DeviceLibrary/DeviceLibrary.csproj
source/DeviceLibrary/manager/SServerManager.cs
source/DeviceLibrary/manager/StoreManager.cs
source/DeviceLibrary/manager/model/DeviceStep.cs
source/DeviceLibrary/manager/model/InOutParam.cs
source/DeviceLibrary/storeBean/boxBean/AutoInoutInfo.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_RequestServer.cs → source/DeviceLibrary/storeBean/boxBean/BoxEquip_ConnectServerTimer.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_InExecute.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_OutExecute.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_Partial.cs
source/LoadCVSLibrary/position/BoxPosition.cs
source/LoadCVSLibrary/storeConfig/config/BoxEquip_Config.cs
source/XLRStoreClient/App.config
source/XLRStoreClient/FrmBase.Designer.cs
source/XLRStoreClient/FrmXLRStore.Designer.cs
source/XLRStoreClient/Properties/AssemblyInfo.cs
source/XLRStoreClient/XLRStore.csproj
source/XLRStoreClient/boxForm/FrmAxisDebug.Designer.cs
source/XLRStoreClient/boxForm/FrmAxisDebug.cs
source/XLRStoreClient/boxForm/FrmAxisDebug.resx
source/XLRStoreClient/boxForm/FrmAxisMove.Designer.cs
source/XLRStoreClient/boxForm/FrmAxisMove.cs
source/XLRStoreClient/boxForm/FrmAxisMove.resx
source/XLRStoreClient/boxForm/FrmBoxEquip.Designer.cs
source/XLRStoreClient/boxForm/FrmBoxEquip.cs
source/XLRStoreClient/boxForm/FrmIOStatus.Designer.cs
source/XLRStoreClient/boxForm/FrmIOStatus.cs
source/XLRStoreClient/boxForm/FrmIOStatus.resx
source/XLRStoreClient/inputForm/FrmInputEquip.Designer.cs
source/Common/Setting_Init.cs
查看文件 @
93b2086
...
...
@@ -29,8 +29,8 @@ namespace OnlineStore.Common
public
static
string
ConfigPath_XLRStore
=
"ConfigPath_XLRStore"
;
public
static
string
ConfigPath_Input
=
"ConfigPath_Input"
;
public
static
string
ConfigPath_Box
=
"ConfigPath_Box"
;
public
static
string
ConfigPath_Box
=
"ConfigPath_Box"
;
public
static
string
ConfigPath_BoxPosition
=
"ConfigPath_BoxPosition"
;
/// <summary>
/// 需要识别的二维码类型,多个中间使用#分割
/// </summary>
...
...
source/Common/bean/Bean.cs
查看文件 @
93b2086
...
...
@@ -262,6 +262,6 @@ namespace OnlineStore.Common
public
static
string
rfidLoc
=
"rfidLoc"
;
public
static
string
barcode
=
"barcode"
;
}
}
source/Common/util/FormUtil.cs
查看文件 @
93b2086
...
...
@@ -104,5 +104,35 @@ namespace OnlineStore.Common
}
return
span
.
Hours
.
ToString
().
PadLeft
(
2
,
'0'
)
+
":"
+
span
.
Minutes
.
ToString
().
PadLeft
(
2
,
'0'
)
+
":"
+
seconds
;
}
public
static
bool
GetBoolData
(
Dictionary
<
string
,
string
>
data
,
string
key
,
bool
defaultValue
=
false
)
{
if
(
data
.
ContainsKey
(
key
))
{
try
{
return
Convert
.
ToBoolean
(
data
[
key
]);
}
catch
(
Exception
ex
)
{
}
}
return
defaultValue
;
}
public
static
int
GetIntData
(
Dictionary
<
string
,
string
>
data
,
string
key
,
int
defaultValue
=
0
)
{
if
(
data
.
ContainsKey
(
key
))
{
try
{
return
Convert
.
ToInt32
(
data
[
key
]);
}
catch
(
Exception
ex
)
{
}
}
return
defaultValue
;
}
}
}
source/Common/util/MyWebClient.cs
查看文件 @
93b2086
...
...
@@ -52,6 +52,79 @@ namespace OnlineStore.Common
}
public
class
HttpHelper
{
public
static
Operation
PostOperation
(
string
url
,
Operation
operation
,
bool
simulate
=
false
)
{
try
{
if
(
operation
==
null
)
{
return
null
;
}
if
(
simulate
)
{
//模拟服务器返回
operation
.
status
=
200
;
operation
.
data
.
Clear
();
operation
.
data
.
Add
(
"posId"
,
"A001"
);
string
pos
=
"D100-111#D102-222#D104-333"
;
operation
.
data
.
Add
(
"pos"
,
pos
);
if
(
operation
.
op
==
1
||
operation
.
op
==
2
)
{
//入库或出库
string
json
=
JsonHelper
.
SerializeObject
(
operation
);
LogUtil
.
error
(
"模拟HTTP服务器返回出库入库信息:"
+
json
);
return
operation
;
}
return
null
;
}
try
{
if
(
url
.
ToLower
().
IndexOf
(
"https"
,
System
.
StringComparison
.
Ordinal
)
>
-
1
)
{
ServicePointManager
.
ServerCertificateValidationCallback
=
new
RemoteCertificateValidationCallback
((
sender
,
certificate
,
chain
,
errors
)
=>
{
return
true
;
});
}
string
json
=
JsonHelper
.
SerializeObject
(
operation
);
var
wc
=
new
MyWebClient
(
5000
);
if
(
string
.
IsNullOrEmpty
(
wc
.
Headers
[
"Content-Type"
]))
wc
.
Headers
.
Add
(
"Content-Type"
,
"application/json;charset=UTF-8"
);
wc
.
Encoding
=
Encoding
.
UTF8
;
string
result
=
wc
.
UploadString
(
url
,
"POST"
,
json
);
if
(!
string
.
IsNullOrEmpty
(
result
))
{
try
{
Operation
reOP
=
JsonHelper
.
DeserializeJsonToObject
<
Operation
>(
result
);
if
(
isLog
==
1
||
reOP
.
op
>
0
)
{
//LogUtil.info("【"+url+"】发送【" + json + "】收到【" + result + "】");
}
return
reOP
;
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"JsonHelper.DeserializeJsonToObject 出错【result="
+
result
+
"】"
+
ex
);
}
}
}
catch
(
WebException
ex
)
{
LogUtil
.
error
(
"POST ["
+
url
+
"] WebException :"
+
ex
.
ToString
(),
101
);
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
"POST ["
+
url
+
"] ERROR:"
+
e
.
ToString
(),
101
);
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"Post 出错【operation.op="
+
operation
.
op
+
"】:"
+
ex
);
}
return
null
;
}
public
static
bool
PingURLIP
(
string
url
,
int
ms
=
100
)
{
string
[]
urlArray
=
url
.
Split
(
'/'
);
...
...
source/DeviceLibrary/Config/Config_BoxEquip.csv
查看文件 @
93b2086
...
...
@@ -11,10 +11,10 @@ AXIS,0,B面移栽旋转轴,MiddleAxis_B,8,HC,,35000,60000,60000,1000,5000,20000,10,100
AXIS,0,B面移栽压紧轴,ComAxis_B,9,HC,,35000,60000,60000,1000,5000,20000,10,100,0,0
,,,,,,,,,,,,,,,,
PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,0,,,,,,,,,,,,
PRO,0,温湿度端口号,Humiture_Port,0,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,行走机构_待机点P1,MoveAxis_P1,100,,,,,,,,,,,,
PRO,0,行走机构_进出料机构取放点P2,MoveAxis_P2,100,,,,,,,,,,,,
PRO,0,行走机构_存储库位取放点位P3,MoveAxis_P3,100,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,料斗拉取进出轴_待机点P1,PullAxis_Inout_P1,100,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
...
...
source/DeviceLibrary/Config/linePositions.csv
查看文件 @
93b2086
位置,优先级,高度,宽度,料仓ID,料斗进出轴料屉提取点P2P4,料斗进出轴料屉库位点P3P5,料斗升降轴料屉提取高点P3,料斗升降轴料屉提取低点P4,移栽升降轴料屉上方过渡点P6P12,移栽升降轴料屉取放点P7P13,AB移栽X轴料屉库位取放料点P3,AB移栽压紧轴压紧前点P2,AB移栽压紧轴压紧点P3
05AA03040102,1,20,7,1,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933
位置,优先级,高度,宽度,料仓ID,料斗进出轴料屉提取点P2P4,料斗进出轴料屉库位点P3P5,料斗升降轴料屉提取高点P3,料斗升降轴料屉提取低点P4,存储库位取放点位P3,移栽升降轴料屉上方过渡点P6P12,移栽升降轴料屉取放点P7P13,AB移栽X轴料屉库位取放料点P3,AB移栽压紧轴压紧前点P2,AB移栽压紧轴压紧点P3
05AA03040102,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
05BB03040102,1,20,7,2,190500,1779933,1790933,1790933,1779933,1779933,1779933,1779933,1779933,1779933
source/DeviceLibrary/DeviceLibrary.csproj
查看文件 @
93b2086
...
...
@@ -79,8 +79,10 @@
<Compile Include="manager\StoreManager.cs" />
<Compile Include="deviceLibrary\RFID\RFIDManagercs.cs" />
<Compile Include="manager\SServerManager.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_
RequestServ
er.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_
ConnectServerTim
er.cs" />
<Compile Include="storeBean\boxBean\AutoInoutInfo.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_InExecute.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_OutExecute.cs" />
<Compile Include="storeBean\boxBean\Humiture\HumitureBean.cs" />
<Compile Include="storeBean\boxBean\Humiture\HumitureController.cs" />
<Compile Include="storeBean\inputBean\BatchMoveBean.cs" />
...
...
@@ -201,7 +203,9 @@
<Content Include="huichuan_x86\IMC_API_x86.lib">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Include="Config\linePositions.csv" />
<Content Include="Config\linePositions.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Include="packages.config" />
<Content Include="SDK\MotorMaster.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
...
...
source/DeviceLibrary/manager/SServerManager.cs
查看文件 @
93b2086
...
...
@@ -10,6 +10,39 @@ namespace OnlineStore.DeviceLibrary
{
public
class
SServerManager
{
#
region
存储机构使用的
API
private
static
string
api_communication
=
"service/store/communication"
;
//流水线状态通信接口
public
static
string
GetPostApi
(
string
host
)
{
if
(
host
==
""
)
{
host
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
http_server
);
}
if
(!
host
.
StartsWith
(
"http://"
))
{
host
=
"http://"
+
host
;
}
if
(!
host
.
EndsWith
(
"/"
))
{
host
=
host
+
"/"
;
}
return
host
+
api_communication
;
}
internal
static
string
GetShelfIDByLoc
(
int
rfidLoc
,
List
<
string
>
shelfPosList
)
{
string
shelfId
=
""
;
if
(
rfidLoc
.
Equals
(-
1
))
{
shelfId
=
shelfPosList
[
0
];
}
if
(
rfidLoc
>=
1
&&
rfidLoc
<=
8
&&
rfidLoc
<=
shelfPosList
.
Count
)
{
shelfId
=
shelfPosList
[
rfidLoc
-
1
];
}
return
shelfId
;
}
#
endregion
//http://localhost/myproject/service/store/emptyPosForPutin
private
static
string
Addr_PosForPutin
=
"/service/store/emptyPosForPutin"
;
/// <summary>
...
...
source/DeviceLibrary/manager/StoreManager.cs
查看文件 @
93b2086
...
...
@@ -97,15 +97,18 @@ namespace OnlineStore.DeviceLibrary
string
inputConfigPath
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_Input
);
InputEquip_Config
inputConfig
=
CSVConfigReader
.
LoadInputConfig
(
1
,
DeviceType
.
InputEquip
,
inputConfigPath
);
inputConfig
.
SetIO
(
1
);
allConfigMap
.
Add
(
1
,
inputConfig
);
string
boxPath
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_Box
);
BoxEquip_Config
boxConfig
=
CSVConfigReader
.
LoadBoxConfig
(
2
,
DeviceType
.
BoxEquip
,
boxPath
);
BoxEquip_Config
boxConfig
=
CSVConfigReader
.
LoadBoxConfig
(
2
,
DeviceType
.
BoxEquip
,
boxPath
);
boxConfig
.
SetIO
(
2
);
allConfigMap
.
Add
(
2
,
boxConfig
);
//加载点位
string
positionConfigFile
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_BoxPosition
);
CSVPositionReader
<
BoxPosition
>.
AddCSVFile
(
positionConfigFile
);
XLRStore
=
new
XLRStoreBean
(
Config
,
inputConfig
,
boxConfig
);
LogUtil
.
info
(
"加载 完成!"
);
...
...
@@ -144,25 +147,28 @@ namespace OnlineStore.DeviceLibrary
return
false
;
}
public
static
void
SaveBoxConfig
(
BoxEquip_Config
config
)
public
static
bool
SaveBoxConfig
(
BoxEquip_Config
config
)
{
try
{
//位置配置到文件中
string
appPath
=
Application
.
StartupPath
;
string
boxConfig
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_Box
);
allConfigMap
[
config
.
Id
]
=
config
;
bool
result
=
CSVConfigReader
.
SaveConfig
(
boxConfig
,
config
,
typeof
(
BoxEquip_Config
));
if
(!
result
)
{
LogUtil
.
error
(
"保存配置文件失败:"
+
boxConfig
);
return
false
;
}
return
true
;
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"出错:"
,
ex
);
return
false
;
}
}
public
static
void
SaveInputEquipConfig
(
InputEquip_Config
config
)
...
...
@@ -172,7 +178,7 @@ namespace OnlineStore.DeviceLibrary
//位置配置到文件中
string
appPath
=
Application
.
StartupPath
;
string
configFile
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_Input
);
allConfigMap
[
config
.
Id
]
=
config
;
bool
result
=
CSVConfigReader
.
SaveConfig
(
configFile
,
config
,
typeof
(
InputEquip_Config
));
if
(!
result
)
...
...
@@ -185,7 +191,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
"出错:"
,
ex
);
}
}
private
static
List
<
int
>
trayHeightList
=
new
List
<
int
>();
public
static
List
<
int
>
GetTrayList
()
...
...
source/DeviceLibrary/manager/model/DeviceStep.cs
查看文件 @
93b2086
...
...
@@ -9,12 +9,12 @@ using System.IO;
using
System.IO.Ports
;
using
System.Linq
;
using
System.Text
;
using
System.Windows.Forms
;
namespace
OnlineStore.DeviceLibrary
{
/// <summary>
///0= 等待启动/已经停止,1=初始化完成, 2=正常运行中,3=可以进行新的处理,4=忙碌,重置
/// </summary>
...
...
@@ -32,7 +32,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 设备正在重置中,请稍后
/// </summary>
Reset
=
2
,
Reset
=
2
,
/// <summary>
/// 正常运行中,可以进行新的处理
/// </summary>
...
...
@@ -52,7 +52,7 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
public
enum
DeviceStatus
{
None
=
0
,
None
=
0
,
/// <summary>
/// 1=设备联机(正常就绪)(入库后,BOX恢复原始状态)(出库后,移载装置恢复原始状态),
/// </summary>
...
...
@@ -60,7 +60,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
///2=急停中
/// </summary>
SuddenStop
=
2
,
SuddenStop
=
2
,
/// <summary>
/// 3=故障中
/// </summary>
...
...
@@ -72,7 +72,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 5=设备调试中
/// </summary>
Debugging
=
5
,
Debugging
=
5
,
/// <summary>
/// 6=入库执行中
/// </summary>
...
...
@@ -104,13 +104,275 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 重置中(原点返回和重置都发此状态)
/// </summary>
ResetMove
=
13
,
ResetMove
=
13
,
}
public
enum
StepEnum
{
public
enum
StepEnum
{
/// <summary>
/// 无操作,等待状态
/// </summary>
Wait
=
0
,
#
region
料仓原点返回和重置步骤
100
开始
/// <summary>
/// BOX复位:存储机构复位
/// </summary>
BOX_H01_Wait
=
101
,
/// <summary>
/// BOX复位:料斗拉取升降轴到待机点
/// </summary>
BOX_H02_PullAxis_UpDownToP1
,
/// <summary>
/// BOX复位:料斗拉取进出轴先返回原点
/// </summary>
BOX_H03_PullAxis_InoutHome
,
/// <summary>
/// BOX复位:料斗拉取升降轴、AB面压紧轴返回原点
/// </summary>
BOX_H04_PullAxis_Updown_ABComAxis_Home
,
/// <summary>
/// BOX复位:AB面移栽x轴原点返回
/// </summary>
BOX_H05_XAxis_AB_Home
,
/// <summary>
/// BOX复位:行走机构、移栽升降轴、AB面移栽旋转轴原点返回
/// </summary>
BOX_H06_OtherAxis_Home
,
/// <summary>
/// BOX待机位:料斗拉取升降轴先返回待机位
/// </summary>
BOX_R01_PullAxis_UpDownToP1
,
/// <summary>
/// BOX待机位:料斗拉取进出轴、AB面压紧轴返回待机位
/// </summary>
BOX_R02_PullAxis_InOut_ABComAxis_ToP1
,
/// <summary>
/// BOX待机位:AB面移栽x轴返回待机位
/// </summary>
BOX_R03_XAxis_AB_ToP1
,
/// <summary>
/// BOX待机位:行走机构、移栽升降轴、AB面移栽旋转轴返回待机位
/// </summary>
BOX_R04_OtherAxisToP1
,
#
endregion
#
region
出库步骤
200
开始
/// <summary>
/// 料仓出库:开始出库
/// </summary>
SO_00_StartOutstore
=
201
,
/// <summary>
///料仓出库:料斗拉取进出轴先运动到P1,料斗拉取升降轴运动到P1
/// </summary>
SO_01_PullAxis_Ready
,
/// <summary>
/// 料仓出库:所有轴运行到库位:
/// 1. 移栽升降轴到AB料屉上方过度点
/// 2. 行走机构到P3(存储库位取放点位)
/// 3. A/B面移栽压紧轴到P2(压紧前点)
/// 4. A/B面移栽旋转轴到P3(料屉垂直取放料点)
/// </summary>
SO_02_ToPosition
,
/// <summary>
/// 料仓出库:到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)
/// </summary>
SO_03_ToTray
,
/// <summary>
/// 料仓出库:提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SO_04_LiftTray
,
/// <summary>
/// 料仓出库:拉抽屉到库位点,料斗拉取进出轴到P3(A/B面料屉库位点)
/// </summary>
SO_05_PullTray
,
/// <summary>
/// 料仓出库:将抽屉降到库位提取点,料斗拉取升降轴到P2(料屉提取水平点),到位后检测X16-X30对应信号=1
/// </summary>
SO_06_DropTrayToPos
,
/// <summary>
/// 料仓出库:进入库位中,移栽升降轴到A/B面料屉取放点
/// </summary>
SO_07_GetReel
,
/// <summary>
/// 料仓出库:压紧轴开始缓慢压紧,A/B面移栽压紧轴到P3(压紧点)
/// </summary>
SO_08_StartCompress
,
///// <summary>
///// 料仓出库:检测到料叉压紧确认信号,再次向下压紧指定的值
///// </summary>
//SO_09_ComDownMove,
/// <summary>
/// 料仓出库,等待压紧信号确认
/// </summary>
//SO_10_CheckComSig,
/// <summary>
///料仓出库:叉子从库位返回,移栽升降轴到A/B面料屉上方过度点
/// </summary>
SO_09_UpDownBack
,
/// <summary>
/// 料仓出库:料屉返回,提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SO_10_LiftTray
,
/// <summary>
/// 料仓出库:推到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)同时检测X04-X09=1
/// </summary>
SO_11_PushTray
,
/// <summary>
/// 料仓出库:放下料屉,料斗拉取升降轴到P4(料屉提取低点)
/// /// </summary>
SO_12_PutTrayDown
,
/// <summary>
/// 料仓出库:料斗拉取进出轴到P1(待机点)
/// </summary>
SO_13_InoutBack
,
/// <summary>
/// 料仓出库:取料完成,准备去出料口
/// </summary>
SO_14_GetReels_Ready
,
/// <summary>
/// 料仓出库:到料盘暂存区
/// 1. 移栽升降轴到A/B下暂存区放料高点
/// 2. 行走机构到P2(进出料机构取放点)
/// 3. A面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X02=1
/// 或者 B面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X03=1
/// </summary>
SO_15_ToBufferArea
,
/// <summary>
/// 料仓出库:确保暂存区无料盘
/// 如果有料盘则报警,该区域无料时才会出库
/// </summary>
SO_16_VerifyBufferState
,
/// <summary>
/// 料仓出库:A/B面移栽X轴到P2(A/B进出料暂存区取放点)
/// </summary>
SO_17_InOutToBuff
,
/// <summary>
/// 料仓出库:把料盘放下
/// 1. 移栽升降轴到A/B下暂存区放料低点
/// 2. A/B面移栽压紧轴到P2压紧前点
/// </summary>
SO_18_PutReel
,
/// <summary>
/// 料仓出库:A/B面移栽X轴到P1(待机点)
/// </summary>
SO_19_InOutBackFromBuff
,
/// <summary>
/// 料仓出库:A/B面移栽旋转轴到P1(待机点)
/// </summary>
SO_20_Finish
,
#
endregion
#
region
入库步骤,
300
开始
/// <summary>
/// 料仓入库:开始入库
/// </summary>
SI_00_StartInstore
=
301
,
/// <summary>
///料仓入库:料斗拉取进出轴先运动到P1
/// </summary>
SI_01_PullAxis_Ready
,
/// <summary>
/// 料仓入库:到料盘暂存区
/// 1. 行走机构到P2(进出料机构取放点)
/// 2. 移栽升降轴到P3(A上暂存区取料低点)
/// 3. A/B面移栽压紧轴到P2(压紧前点)
/// 4. A面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X02=1
/// 或者 B面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X03=1
/// </summary>
SI_02_ToBufferArea
,
/// <summary>
/// 料仓入库:确保暂存区有料盘
/// 如果无料盘则报警
/// </summary>
SI_03_VerifyBufferState
,
/// <summary>
/// 料仓入库:A/B面移栽X轴到P2(A/B进出料暂存区取放点)
/// </summary>
SI_04_InOutToBuff
,
/// <summary>
/// 料仓入库:取料盘
/// 1. 移栽升降轴到P2(A上暂存区取料高点)
/// 2. A/B面移栽压紧轴到P3压紧点
/// </summary>
SI_05_GetReel
,
/// <summary>
/// 料仓入库:A/B面移栽X轴到P3(A/B面料屉库位取放料点)
/// </summary>
SI_06_InOutBackFromBuff
,
/// <summary>
/// 料仓入库:A/B面移栽旋转轴到P3(A面料屉库位垂直取放料点)
/// </summary>
SI_07_MiddleToP3
,
/// <summary>
/// 料仓入库:所有轴运行到库位:
/// 1. 移栽升降轴到AB料屉上方过度点
/// 2. 行走机构到P3(存储库位取放点位)
/// 3. 料斗拉取升降轴到P4(料屉提取低点)
/// </summary>
SI_08_ToPosition
,
/// <summary>
/// 料仓入库:到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)
/// </summary>
SI_09_ToTray
,
/// <summary>
/// 料仓入库:提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SI_10_LiftTray
,
/// <summary>
/// 料仓入库:拉抽屉到库位点,料斗拉取进出轴到P3(A/B面料屉库位点)
/// </summary>
SI_11_PullTray
,
/// <summary>
/// 料仓入库:将抽屉降到库位提取点,料斗拉取升降轴到P2(料屉提取水平点),到位后检测X16-X30对应信号=1
/// </summary>
SI_12_DropTrayToPos
,
/// <summary>
/// 料仓入库:进入库位中,移栽升降轴到A/B面料屉取放点
/// </summary>
SI_13_GetReel
,
///// <summary>
///// 料仓入库:压紧轴开始缓慢释放,A/B面移栽压紧轴到P2(压紧前点)
///// </summary>
SI_14_ReleaseCompress
,
/// <summary>
///料仓入库:叉子从库位返回,移栽升降轴到A/B面料屉上方过度点
/// </summary>
SI_15_UpDownBack
,
/// <summary>
/// 料仓入库:料屉返回,提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SI_16_LiftTray
,
/// <summary>
/// 料仓入库:推到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)同时检测X04-X09=1
/// </summary>
SI_17_PushTray
,
/// <summary>
/// 料仓入库:放下料屉,料斗拉取升降轴到P4(料屉提取低点)
/// </summary>
SI_18_PutTrayDown
,
/// <summary>
/// 料仓入库:料斗拉取进出轴到P1(待机点),检查另一边入库情况
/// </summary>
SI_19_InoutBack
,
#
endregion
#
region
入料模块复位
1000
开始
...
...
@@ -142,7 +404,7 @@ namespace OnlineStore.DeviceLibrary
/// 入料模块复位:升降轴到P1
/// </summary>
IR06_UpdownToP1
,
/// <summary>
/// 入料模块复位: 夹紧气缸放松
/// </summary>
...
...
@@ -155,11 +417,11 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
入料模块取料
1100
开始
/// <summary>
/// 入库料串取料:升降轴到达P1
/// </summary>
II01_UpdownToP1
=
1101
,
II01_UpdownToP1
=
1101
,
/// <summary>
/// 入库料串取料A:取料旋转轴SVD13运动到P2(A料口取料点)
...
...
@@ -297,7 +559,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 入料->NG:取料旋转轴SVD13 运动到P1(待机点)
/// </summary>
II86_MiddleToP1
,
II86_MiddleToP1
,
#
endregion
...
...
@@ -334,7 +596,6 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
region
入料模块批量轴开始入料
1600
开始
/// <summary>
/// 料串入料:准备取料
...
...
@@ -344,12 +605,12 @@ namespace OnlineStore.DeviceLibrary
/// 料串入料:批量轴到待机点P1, 阻挡气缸下降
/// </summary>
IB02_BatchAxisToP1
,
/// <summary>
/// 料串入料:链条开始转动
/// </summary>
IB04_LineStart
,
/// <summary>
/// 料串入料:阻挡气缸上升
/// </summary>
...
...
@@ -403,268 +664,17 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
IB23_ShelfOut
,
#
endregion
}
/// <summary>
/// 料仓运动状态(当料仓状态=busy时,才会有此运动状态)
/// </summary>
public
enum
StoreStep
{
/// <summary>
/// 无操作,等待状态
/// </summary>
Wait
=
0
,
#
region
料仓原点返回和重置步骤
0010
开始
/// <summary>
/// BOX复位:料斗拉取进出轴先返回原点
/// </summary>
BOX_H01_PullAxis_InoutBack
=
011
,
/// <summary>
/// BOX复位:料斗拉取升降轴、AB面压紧轴返回原点
/// </summary>
BOX_H02_PullAxis_Updown_ABComAxis_Back
=
012
,
/// <summary>
/// BOX复位:AB面移栽x轴原点返回
/// </summary>
BOX_H03_XAxis_AB_Back
=
013
,
/// <summary>
/// BOX复位:行走机构、移栽升降轴、AB面移栽旋转轴原点返回
/// </summary>
BOX_H04_OtherAxisBack
=
014
,
/// <summary>
/// BOX待机位:料斗拉取进出轴先返回待机位
/// </summary>
BOX_H05_PullAxis_InoutToP1
=
015
,
/// <summary>
/// BOX待机位:料斗拉取升降轴、AB面压紧轴返回待机位
/// </summary>
BOX_H06_PullAxis_Updown_ABComAxis_ToP1
=
016
,
/// <summary>
/// BOX待机位:AB面移栽x轴返回待机位
/// </summary>
BOX_H07_XAxis_AB_ToP1
=
017
,
/// <summary>
/// BOX待机位:行走机构、移栽升降轴、AB面移栽旋转轴返回待机位
/// </summary>
BOX_H08_OtherAxisToP1
=
018
,
#
endregion
#
region
出库步骤
2000
开始
/// <summary>
///料仓出库:检查出库的料在哪一边
/// </summary>
SO_00_StartWithCheck
=
2001
,
/// <summary>
///料仓出库:料斗拉取进出轴先运动到P1,料斗拉取升降轴运动到料屉提取低点
/// </summary>
SO_01_PullAxis_Ready
=
2002
,
/// <summary>
/// 料仓出库:所有轴运行到库位:
/// 1. 移栽升降轴到AB料屉上方过度点
/// 2. 行走机构到P3(存储库位取放点位)
/// 3. A/B面移栽压紧轴到P2(压紧前点)
/// 4. A/B面移栽旋转轴到P3(料屉垂直取放料点)
/// </summary>
SO_02_ToPosition
,
/// <summary>
/// 料仓出库:到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)
/// </summary>
SO_03_ToTray
,
/// <summary>
/// 料仓出库:提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SO_04_LiftTray
,
/// <summary>
/// 料仓出库:拉抽屉到库位点,料斗拉取进出轴到P3(A/B面料屉库位点)
/// </summary>
SO_05_PullTray
,
/// <summary>
/// 料仓出库:将抽屉降到库位提取点,料斗拉取升降轴到P2(料屉提取水平点),到位后检测X16-X30对应信号=1
/// </summary>
SO_06_DropTrayToPos
,
/// <summary>
/// 料仓出库:进入库位中,移栽升降轴到A/B面料屉取放点
/// </summary>
SO_07_GetReel
,
///// <summary>
///// 料仓出库:压紧轴开始缓慢压紧,A/B面移栽压紧轴到P3(压紧点)
///// </summary>
SO_08_StartCompress
,
///// <summary>
///// 料仓出库:检测到料叉压紧确认信号,再次向下压紧指定的值
///// </summary>
//SO_09_ComDownMove,
/// <summary>
/// 料仓出库,等待压紧信号确认
/// </summary>
//SO_10_CheckComSig,
/// <summary>
///料仓出库:叉子从库位返回,移栽升降轴到A/B面料屉上方过度点
/// </summary>
SO_09_UpDownBack
,
/// <summary>
/// 料仓出库:料屉返回,提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SO_10_LiftTray
,
/// <summary>
/// 料仓出库:推到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)同时检测X04-X09=1
/// </summary>
SO_11_PushTray
,
/// <summary>
/// 料仓出库:放下料屉,料斗拉取升降轴到P4(料屉提取低点)
/// /// </summary>
SO_12_PutTrayDown
,
/// <summary>
/// 料仓出库:料斗拉取进出轴到P1(待机点)
/// </summary>
SO_13_InoutBack
,
/// <summary>
/// 料仓出库:检查另一边是否有出库任务
/// </summary>
SO_14_CheckOtherSide
,
/// <summary>
/// 料仓出库:到料盘暂存区
/// 1. 移栽升降轴到A/B下暂存区放料高点
/// 2. 行走机构到P2(进出料机构取放点)
/// 3. A面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X02=1
/// 或者 B面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X03=1
/// </summary>
S0_15_ToBufferArea
,
/// <summary>
/// 料仓出库:确保暂存区无料盘
/// 如果有料盘则报警,该区域无料时才会出库
/// </summary>
SO_16_VerifyBufferState
,
/// <summary>
/// 料仓出库:A/B面移栽X轴到P2(A/B进出料暂存区取放点)
/// </summary>
SO_17_InOutToBuff
,
/// <summary>
/// 料仓出库:把料盘放下
/// 1. 移栽升降轴到A/B下暂存区放料低点
/// 2. A/B面移栽压紧轴到P2压紧前点
/// </summary>
SO_18_PutReel
,
/// <summary>
/// 料仓出库:A/B面移栽X轴到P1(待机点)
/// </summary>
SO_19_InOutBackFromBuff
,
/// <summary>
/// 料仓出库:A/B面移栽旋转轴到P1(待机点)
/// </summary>
SO_20_Finish
,
#
endregion
#
region
入库步骤,
3000
开始
/// <summary>
///料仓出库:料斗拉取进出轴先运动到P1
/// </summary>
SI_01_PullAxis_Ready
=
3010
,
/// <summary>
/// 料仓入库:到料盘暂存区
/// 1. 移栽升降轴到P3(A上暂存区取料低点)
/// 2. 行走机构到P2(进出料机构取放点)
/// 3. A/B面移栽压紧轴到P2(压紧前点)
/// 3. A面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X02=1
/// 或者 B面移栽旋转轴到P2(进出料暂存区取放料水平点),同时检测X03=1
/// </summary>
SI_02_ToBufferArea
,
/// <summary>
/// 料仓入库:确保暂存区有料盘
/// 如果无料盘则报警
/// </summary>
SI_03_VerifyBufferState
,
/// <summary>
/// 料仓入库:A/B面移栽X轴到P2(A/B进出料暂存区取放点)
/// </summary>
SI_04_InOutToBuff
,
/// <summary>
/// 料仓入库:取料盘
/// 1. 移栽升降轴到P2(A上暂存区取料高点)
/// 2. A/B面移栽压紧轴到P3压紧点
/// </summary>
SI_05_GetReel
,
/// <summary>
/// 料仓入库:A/B面移栽X轴到P3(A/B面料屉库位取放料点)
/// </summary>
SI_06_InOutBackFromBuff
,
/// <summary>
/// 料仓入库:A/B面移栽旋转轴到P3(A面料屉库位垂直取放料点)
/// </summary>
SI_07_MiddleToP3
,
/// <summary>
/// 料仓入库:所有轴运行到库位:
/// 1. 移栽升降轴到AB料屉上方过度点
/// 2. 行走机构到P3(存储库位取放点位)
/// 3. 料斗拉取升降轴到P4(料屉提取低点)
/// </summary>
SI_08_ToPosition
,
/// <summary>
/// 料仓入库:到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)
/// </summary>
SI_09_ToTray
,
/// <summary>
/// 料仓入库:提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SI_10_LiftTray
,
/// <summary>
/// 料仓入库:拉抽屉到库位点,料斗拉取进出轴到P3(A/B面料屉库位点)
/// </summary>
SI_11_PullTray
,
/// <summary>
/// 料仓入库:将抽屉降到库位提取点,料斗拉取升降轴到P2(料屉提取水平点),到位后检测X16-X30对应信号=1
/// </summary>
SI_12_DropTrayToPos
,
/// <summary>
/// 料仓入库:进入库位中,移栽升降轴到A/B面料屉取放点
/// </summary>
SI_13_GetReel
,
///// <summary>
///// 料仓入库:压紧轴开始缓慢释放,A/B面移栽压紧轴到P2(压紧前点)
///// </summary>
SI_14_ReleaseCompress
,
/// <summary>
///料仓入库:叉子从库位返回,移栽升降轴到A/B面料屉上方过度点
/// </summary>
SI_15_UpDownBack
,
/// <summary>
/// 料仓入库:料屉返回,提升抽屉,料斗拉取升降轴到P3(料屉提取高点)
/// </summary>
SI_16_LiftTray
,
/// <summary>
/// 料仓入库:推到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)同时检测X04-X09=1
/// </summary>
SI_17_PushTray
,
/// <summary>
/// 料仓入库:放下料屉,料斗拉取升降轴到P4(料屉提取低点)
/// /// </summary>
SI_18_PutTrayDown
,
/// <summary>
/// 料仓入库:料斗拉取进出轴到P1(待机点)
/// </summary>
SI_19_InoutBack
,
/// <summary>
/// 料仓入库:检查另一边入库情况
/// </summary>
SI_20_CheckOtherSide
,
#
endregion
}
public
enum
AlarmType
...
...
@@ -681,7 +691,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 轴报警
/// </summary>
AxisAlarm
=
1000
,
AxisAlarm
=
1000
,
/// <summary>
/// 轴运动错误,没有达到指定脉冲,但是io判断已停止运动
/// </summary>
...
...
source/DeviceLibrary/manager/model/InOutParam.cs
查看文件 @
93b2086
...
...
@@ -24,7 +24,7 @@ namespace OnlineStore.DeviceLibrary
public
InOutParam
(
InOutPosInfo
inoutInfo
,
LineMoveP
linePosition
=
null
)
{
ACStoreP
=
null
;
;
ACStoreP
=
null
;
MoveP
=
linePosition
;
this
.
PosInfo
=
inoutInfo
;
}
...
...
@@ -48,19 +48,23 @@ namespace OnlineStore.DeviceLibrary
}
public
InOutPosInfo
PosInfo
{
get
;
set
;
}
public
LineMoveP
MoveP
{
get
;
set
;
}
/// <summary>
/// 料叉已取料的信息
/// </summary>
public
InOutPosInfo
PosInfoBack
{
get
;
set
;
}
=
null
;
public
LineMoveP
MoveP
{
get
;
set
;
}
/// <summary>
/// 入料机构从哪个料串取料,或出库放到哪个料串
/// 0=未知,1=A侧料串,2=B侧料串
/// </summary>
public
int
ShelfType
{
get
;
set
;
}=
0
;
}
public
int
ShelfType
{
get
;
set
;
}
=
0
;
}
/// <summary>
/// 出入库料盘信息
/// </summary>
/// 出入库料盘信息
/// </summary>
public
class
InOutPosInfo
{
public
InOutPosInfo
()
{
}
public
InOutPosInfo
(
string
barcode
,
string
posId
,
int
platew
=
0
,
int
plateh
=
0
,
bool
urgentReel
=
false
,
bool
cutReel
=
false
,
bool
smallReel
=
false
,
string
rfid
=
""
,
int
rfidLoc
=
0
,
bool
singleOut
=
false
)
{
this
.
barcode
=
barcode
;
...
...
@@ -75,7 +79,7 @@ namespace OnlineStore.DeviceLibrary
this
.
singleOut
=
singleOut
;
}
public
static
InOutPosInfo
NewNgPos
(
string
barcode
,
string
posId
,
int
platew
,
int
plateh
,
string
ngMsg
)
public
static
InOutPosInfo
NewNgPos
(
string
barcode
,
string
posId
,
int
platew
,
int
plateh
,
string
ngMsg
)
{
InOutPosInfo
inOut
=
new
InOutPosInfo
(
barcode
,
posId
,
platew
,
plateh
);
inOut
.
IsNG
=
true
;
...
...
@@ -132,12 +136,343 @@ namespace OnlineStore.DeviceLibrary
public
bool
IsNG
{
get
;
set
;
}
=
false
;
public
string
NgMsg
{
get
;
set
;
}
=
""
;
/// <summary>
/// 库位在存储机构哪个面
/// 0=未知,1=A面,2=B面
/// 例:05AA03040102
// 05:表示料仓编号,01-08
// AA:存储机构A面或B面,AA或者BB
// 03:表示抽屉在第几行
// 04:表示抽屉在第几列
// 01:表示在抽屉中的第几行
//02:表示在抽屉中的第几列
/// </summary>
public
string
PosSide
{
get
{
if
(
PosId
.
Substring
(
2
,
2
).
Equals
(
"AA"
))
return
"A"
;
else
if
(
PosId
.
Substring
(
2
,
2
).
Equals
(
"BB"
))
return
"B"
;
return
""
;
}
}
/// <summary>
/// 检查库位是否存在
/// </summary>
/// <returns></returns>
public
bool
CheckPosition
()
{
BoxPosition
position
=
CSVPositionReader
<
BoxPosition
>.
GetPositon
(
PosId
);
if
(
position
==
null
)
{
return
false
;
}
return
true
;
}
/// <summary>
/// 获取料盘所在料屉的层序号
/// </summary>
/// <returns></returns>
public
int
GetTrayRow
()
{
int
.
TryParse
(
PosId
.
Substring
(
4
,
2
),
out
int
result
);
return
result
;
}
/// <summary>
/// 获取料盘所在料屉的列序号
/// </summary>
/// <returns></returns>
public
int
GetTrayColumn
()
{
int
.
TryParse
(
PosId
.
Substring
(
6
,
2
),
out
int
result
);
return
result
;
}
/// <summary>
/// 获取料盘在抽屉里的行
/// </summary>
/// <returns></returns>
public
int
GetRowInTray
()
{
int
.
TryParse
(
PosId
.
Substring
(
8
,
2
),
out
int
result
);
return
result
;
}
/// <summary>
/// 获取料盘在抽屉里的列
/// </summary>
/// <returns></returns>
public
int
GetColumnInTray
()
{
int
.
TryParse
(
PosId
.
Substring
(
10
,
2
),
out
int
result
);
return
result
;
}
/// <summary>
/// 拷贝一个新的实例
/// </summary>
/// <returns></returns>
public
InOutPosInfo
ToCopy
()
{
InOutPosInfo
posInfo
=
new
InOutPosInfo
();
System
.
Reflection
.
PropertyInfo
[]
info1
=
posInfo
.
GetType
().
GetProperties
();
System
.
Reflection
.
PropertyInfo
[]
info2
=
this
.
GetType
().
GetProperties
();
for
(
int
i
=
0
;
i
<
info1
.
Length
;
i
++)
info1
[
i
].
SetValue
(
posInfo
,
info2
[
i
].
GetValue
(
this
));
return
posInfo
;
}
}
/// <summary>
/// 出入库位置信息
/// </summary>
public
class
LineMoveP
{
public
LineMoveP
()
{
}
public
LineMoveP
(
BoxEquip_Config
equip_Config
,
string
posId
=
""
)
{
if
(!
string
.
IsNullOrEmpty
(
posId
))
UpdatePosById
(
posId
);
LoadStaticPos
(
equip_Config
);
}
/// <summary>
/// 根据库位编号获取库位位置
/// </summary>
/// <param name="posId"></param>
public
void
UpdatePosById
(
string
posId
)
{
BoxPosition
position
=
CSVPositionReader
<
BoxPosition
>.
GetPositon
(
posId
);
if
(
position
==
null
)
{
LogUtil
.
error
(
"GetPositon["
+
posId
+
"] =null,没有库位不能执行出入库"
);
}
PullAxis_Inout_P2_P4
=
position
.
PullAxis_Inout_P2_P4
;
PullAxis_Inout_P3_P5
=
position
.
PullAxis_Inout_P3_P5
;
PullAxis_Updown_P3
=
position
.
PullAxis_Updown_P3
;
PullAxis_Updown_P4
=
position
.
PullAxis_Updown_P4
;
Updown_P6_P12
=
position
.
Updown_P6_P12
;
Updown_P7_P13
=
position
.
Updown_P7_P13
;
XAxis_AB_P3
=
position
.
XAxis_AB_P3
;
ComAxis_AB_P2
=
position
.
ComAxis_AB_P2
;
ComAxis_AB_P3
=
position
.
XAxis_AB_P3
;
MoveAxis_P3
=
position
.
MoveAxis_P3
;
}
/// <summary>
/// 加载固定点位位置
/// </summary>
public
void
LoadStaticPos
(
BoxEquip_Config
equip_Config
)
{
MoveAxis_P1
=
equip_Config
.
MoveAxis_P1
;
MoveAxis_P2
=
equip_Config
.
MoveAxis_P2
;
PullAxis_Inout_P1
=
equip_Config
.
PullAxis_Inout_P1
;
Updown_P1
=
equip_Config
.
Updown_P1
;
Updown_P2
=
equip_Config
.
Updown_P2
;
Updown_P3
=
equip_Config
.
Updown_P3
;
Updown_P4
=
equip_Config
.
Updown_P4
;
Updown_P5
=
equip_Config
.
Updown_P5
;
Updown_P8
=
equip_Config
.
Updown_P8
;
Updown_P9
=
equip_Config
.
Updown_P9
;
Updown_P10
=
equip_Config
.
Updown_P10
;
Updown_P11
=
equip_Config
.
Updown_P11
;
PullAxis_Updown_P1
=
equip_Config
.
PullAxis_Updown_P1
;
PullAxis_Updown_P2
=
equip_Config
.
PullAxis_Updown_P2
;
XAxis_A_P1
=
equip_Config
.
XAxis_A_P1
;
XAxis_A_P2
=
equip_Config
.
XAxis_A_P2
;
MiddleAxis_A_P1
=
equip_Config
.
MiddleAxis_A_P1
;
MiddleAxis_A_P2
=
equip_Config
.
MiddleAxis_A_P2
;
MiddleAxis_A_P3
=
equip_Config
.
MiddleAxis_A_P3
;
ComAxis_A_P1
=
equip_Config
.
ComAxis_A_P1
;
XAxis_B_P1
=
equip_Config
.
XAxis_B_P1
;
XAxis_B_P2
=
equip_Config
.
XAxis_B_P2
;
MiddleAxis_B_P1
=
equip_Config
.
MiddleAxis_B_P1
;
MiddleAxis_B_P2
=
equip_Config
.
MiddleAxis_B_P2
;
MiddleAxis_B_P3
=
equip_Config
.
MiddleAxis_B_P3
;
ComAxis_B_P1
=
equip_Config
.
ComAxis_B_P1
;
}
#
region
固定轴移动点位信息
/// <summary>
/// PRO,0,行走机构_待机点P1,MoveAxis_P1,100,,,,,,,,,,,,
/// </summary>
public
int
MoveAxis_P1
=
0
;
/// <summary>
/// PRO,0,行走机构_进出料机构取放点位P2,MoveAxis_P2,100,,,,,,,,,,,,
/// </summary>
public
int
MoveAxis_P2
=
0
;
/// <summary>
/// PRO,0,料斗拉取进出轴_待机点P1,PullAxis_Inout_P1,100,,,,,,,,,,,,
/// </summary>
public
int
PullAxis_Inout_P1
=
0
;
/// <summary>
/// PRO,0,移栽升降轴_待机点P1,Updown_P1,100,,,,,,,,,,,,
/// </summary>
public
int
Updown_P1
=
0
;
/// <summary>
/// PRO,0,移栽升降轴_A上暂存区取料高点P2,Updown_P2,100,,,,,,,,,,,,
/// </summary>
public
int
Updown_P2
=
0
;
/// <summary>
/// PRO,0,移栽升降轴_A上暂存区取料低点P3,Updown_P3,100,,,,,,,,,,,,
/// </summary>
public
int
Updown_P3
=
0
;
/// <summary>
/// PRO,0,移栽升降轴_A下暂存区放料高点P4,Updown_P4,100,,,,,,,,,,,,
/// </summary>
public
int
Updown_P4
=
0
;
/// <summary>
/// PRO,0,移栽升降轴_A下暂存区放料低点P5,Updown_P5,100,,,,,,,,,,,,
/// </summary>
public
int
Updown_P5
=
0
;
/// <summary>
/// PRO,0,移栽升降轴_B上暂存区取料高点P8,Updown_P8,100,,,,,,,,,,,,
/// </summary>
public
int
Updown_P8
=
0
;
/// <summary>
/// PRO,0,移栽升降轴_B上暂存区取料低点P9,Updown_P9,100,,,,,,,,,,,,
/// </summary>
public
int
Updown_P9
=
0
;
/// <summary>
/// PRO,0,移栽升降轴_B下暂存区取料高点P10,Updown_P10,100,,,,,,,,,,,,
/// </summary>
public
int
Updown_P10
=
0
;
/// <summary>
/// PRO,0,移栽升降轴_B下暂存区取料低点P11,Updown_P11,100,,,,,,,,,,,,
/// </summary>
public
int
Updown_P11
=
0
;
/// <summary>
/// PRO,0,料斗拉取升降轴_待机点P1,PullAxis_Updown_P1,100,,,,,,,,,,,,
/// </summary>
public
int
PullAxis_Updown_P1
=
0
;
/// <summary>
/// PRO,0,料斗拉取升降轴_料屉提取水平点P2,PullAxis_Updown_P2,100,,,,,,,,,,,,
/// </summary>
public
int
PullAxis_Updown_P2
=
0
;
/// <summary>
/// PRO,0,A面移栽X轴_待机点P1,XAxis_A_P1,100,,,,,,,,,,,,
/// </summary>
public
int
XAxis_A_P1
=
0
;
/// <summary>
/// PRO,0,A面移栽X轴_A进出料暂存区取放料点P2,XAxis_A_P2,100,,,,,,,,,,,,
/// </summary>
public
int
XAxis_A_P2
=
0
;
/// <summary>
/// PRO,0,A面移栽旋转轴_待机点P1,MiddleAxis_A_P1,100,,,,,,,,,,,,
/// </summary>
public
int
MiddleAxis_A_P1
=
0
;
/// <summary>
/// PRO,0,A面移栽旋转轴_A进出料暂存区取放料水平点P2,MiddleAxis_A_P2,100,,,,,,,,,,,,
/// </summary>
public
int
MiddleAxis_A_P2
=
0
;
/// <summary>
/// PRO,0,A面移栽旋转轴_A面料屉库位垂直取放料点P3,MiddleAxis_A_P3,100,,,,,,,,,,,,
/// </summary>
public
int
MiddleAxis_A_P3
=
0
;
/// <summary>
/// PRO,0,A面移栽压紧轴_待机点P1,ComAxis_A_P1,100,,,,,,,,,,,,
/// </summary>
public
int
ComAxis_A_P1
=
0
;
/// <summary>
/// PRO,0,B面移栽X轴_待机点P1,XAxis_B_P1,100,,,,,,,,,,,,
/// </summary>
public
int
XAxis_B_P1
=
0
;
/// <summary>
/// PRO,0,B面移栽X轴_B进出料暂存区取放料点P2,XAxis_B_P2,100,,,,,,,,,,,,
/// </summary>
public
int
XAxis_B_P2
=
0
;
/// <summary>
/// PRO,0,B面移栽旋转轴_待机点P1,MiddleAxis_B_P1,100,,,,,,,,,,,,
/// </summary>
public
int
MiddleAxis_B_P1
=
0
;
/// <summary>
/// PRO,0,B面移栽旋转轴_B进出料暂存区取放料水平点P2,MiddleAxis_B_P2,100,,,,,,,,,,,,
/// </summary>
public
int
MiddleAxis_B_P2
=
0
;
/// <summary>
/// PRO,0,B面移栽旋转轴_B面料屉库位垂直取放料点P3,MiddleAxis_B_P3,100,,,,,,,,,,,,
/// </summary>
public
int
MiddleAxis_B_P3
=
0
;
/// <summary>
/// PRO,0,B面移栽压紧轴_待机点P1,ComAxis_B_P1,100,,,,,,,,,,,,
/// </summary>
public
int
ComAxis_B_P1
=
0
;
#
endregion
#
region
灵活轴移动点位信息
/// <summary>
/// PRO,0,行走机构_存储库位取放点位P3,MoveAxis_P3,100,,,,,,,,,,,,
/// </summary>
public
int
MoveAxis_P3
=
0
;
/// <summary>
/// 料斗进出轴料屉提取点
/// P2 对应 A面
/// P4 对应 B面
/// </summary>
public
int
PullAxis_Inout_P2_P4
=
0
;
/// <summary>
/// 料斗进出轴料屉库位点
/// P3 对应 A面
/// P5 对应 B面
/// </summary>
public
int
PullAxis_Inout_P3_P5
=
0
;
/// <summary>
/// 料斗升降轴料屉提取高点P3
/// </summary>
public
int
PullAxis_Updown_P3
=
0
;
/// <summary>
/// 料斗升降轴料屉提取低点P4
/// </summary>
public
int
PullAxis_Updown_P4
=
0
;
/// <summary>
/// 移栽升降轴料屉上方过渡点
/// P6 对应 A面
/// P12 对应 B面
/// </summary>
public
int
Updown_P6_P12
=
0
;
/// <summary>
/// 移栽升降轴料屉取放点
/// P7 对应 A面
/// P13 对应 B面
/// </summary>
public
int
Updown_P7_P13
=
0
;
/// <summary>
/// AB移栽X轴料屉库位取放料点P3
/// </summary>
public
int
XAxis_AB_P3
=
0
;
/// <summary>
/// AB移栽压紧轴压紧前点P2
/// </summary>
public
int
ComAxis_AB_P2
=
0
;
/// <summary>
/// AB移栽压紧轴压紧点P3
/// </summary>
public
int
ComAxis_AB_P3
=
0
;
#
endregion
}
}
}
\ No newline at end of file
source/DeviceLibrary/storeBean/boxBean/AutoInoutInfo.cs
查看文件 @
93b2086
...
...
@@ -30,7 +30,6 @@ namespace OnlineStore.DeviceLibrary
#
endregion
public
void
StartAuto
(
int
jiange
,
int
currIndex
,
string
shelfPosId
)
{
autoNext
=
true
;
...
...
@@ -44,18 +43,16 @@ namespace OnlineStore.DeviceLibrary
autoNext
=
false
;
}
internal
void
InOutEndProcess
(
AC_BOX_Bean
boxBean
,
Store
MoveType
storeMoveType
)
internal
void
InOutEndProcess
(
BoxEquip
boxBean
,
MoveType
storeMoveType
)
{
try
{
CurrInOutCount
++;
CurrInOutACount
++;
//是否自动进入出库状态
if
(!
autoNext
)
{
return
;
}
if
(
storeMoveType
.
Equals
(
Store
MoveType
.
InStore
))
if
(
storeMoveType
.
Equals
(
MoveType
.
InStore
))
{
int
newIndex
=
positionIndex
-
1
;
if
(
newIndex
<
0
)
...
...
@@ -76,27 +73,26 @@ namespace OnlineStore.DeviceLibrary
{
positionIndex
=
newIndex
;
string
posid
=
boxBean
.
PositionNumList
[
positionIndex
];
InOutParam
param
=
new
InOutParam
(
"AAAA"
,
posid
,
shelfPosId
);
InOutParam
param
=
new
InOutParam
(
new
InOutPosInfo
(
"AAAA"
,
posid
));
//param.NeedOutShelf = false;
//param.NeedEnterShelf = false;
//判断是否需要重置
if
(
CurrInOutACount
>=
boxBean
.
Config
.
Box_ResetACount
)
{
boxBean
.
LogInfo
(
"自动进入下一个出库:posid="
+
posid
+
",当时已经出入库"
+
CurrInOutACount
+
"次,需要重置BOX,先把出库信息存入排队列表中"
);
boxBean
.
Reset
(
false
);
autoMsg
=
"自动出库:"
+
posid
;
boxBean
.
waitOutStoreList
.
Enqueue
(
param
);
}
else
//
if (CurrInOutACount >= boxBean.Config.Box_ResetACount)
//
{
//
boxBean.LogInfo("自动进入下一个出库:posid=" + posid + ",当时已经出入库" + CurrInOutACount + "次,需要重置BOX,先把出库信息存入排队列表中");
//
boxBean.Reset(false);
//
autoMsg = "自动出库:" + posid;
//
boxBean.waitOutStoreList.Enqueue(param);
//
}
//
else
{
boxBean
.
LogInfo
(
"自动进入下一个出库:posid="
+
posid
);
autoMsg
=
"自动出库:"
+
posid
;
boxBean
.
StartOut
StoreMov
e
(
param
);
boxBean
.
StartOut
stor
e
(
param
);
}
}
}
else
if
(
storeMoveType
.
Equals
(
Store
MoveType
.
OutStore
))
else
if
(
storeMoveType
.
Equals
(
MoveType
.
OutStore
))
{
int
newIndex
=
positionIndex
-
Jiange
;
if
(
newIndex
<
0
)
...
...
@@ -116,21 +112,21 @@ namespace OnlineStore.DeviceLibrary
else
{
string
posid
=
boxBean
.
PositionNumList
[
newIndex
];
InOutParam
param
=
new
InOutParam
(
"AAAA"
,
posid
,
shelfPosId
);
InOutParam
param
=
new
InOutParam
(
new
InOutPosInfo
(
"AAAA"
,
posid
)
);
// param.NeedOutShelf = false;
//判断是否需要重置
if
(
CurrInOutACount
>=
boxBean
.
Config
.
Box_ResetACount
)
{
boxBean
.
LogInfo
(
"自动进入下一个入库:posid="
+
posid
+
",当时已经出入库"
+
CurrInOutACount
+
"次,需要重置BOX,先把入库信息存入排队列表中"
);
boxBean
.
Reset
(
false
);
autoMsg
=
"自动入库:"
+
posid
;
boxBean
.
waitOutStoreList
.
Enqueue
(
param
);
}
else
//
if (CurrInOutACount >= boxBean.Config.Box_ResetACount)
//
{
//
boxBean.LogInfo("自动进入下一个入库:posid=" + posid + ",当时已经出入库" + CurrInOutACount + "次,需要重置BOX,先把入库信息存入排队列表中");
//
boxBean.Reset(false);
//
autoMsg = "自动入库:" + posid;
//
boxBean.waitOutStoreList.Enqueue(param);
//
}
//
else
{
boxBean
.
LogInfo
(
"自动进入下一个入库:posid="
+
posid
);
autoMsg
=
"自动入库:"
+
posid
;
boxBean
.
StartIn
StoreMov
e
(
param
);
boxBean
.
StartIn
stor
e
(
param
);
}
}
}
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip.cs
查看文件 @
93b2086
...
...
@@ -10,27 +10,79 @@ using System.Threading;
using
System.Threading.Tasks
;
namespace
OnlineStore.DeviceLibrary
{
{
public
partial
class
BoxEquip
:
EquipBase
{
{
/// <summary>
/// 自动出入库
/// </summary>
public
AutoInoutInfo
AutoInout
=
new
AutoInoutInfo
();
/// <summary>
/// 配置文件
/// </summary>
public
BoxEquip_Config
Config
;
/// <summary>
///
轴
///
行走机构
/// </summary>
public
AxisBean
MoveAxis
=
null
;
/// <summary>
/// 料屉拉取进出轴
/// </summary>
public
AxisBean
PullAxis_Inout
=
null
;
/// <summary>
/// 移栽升降轴
/// </summary>
public
AxisBean
UpdownAxis
=
null
;
/// <summary>
/// A面移栽X轴
/// </summary>
public
AxisBean
XAxis_A
=
null
;
/// <summary>
/// A面移栽旋转轴
/// </summary>
public
AxisBean
MiddleAxis_A
=
null
;
/// <summary>
/// A面移栽压紧轴
/// </summary>
public
AxisBean
ComAxis_A
=
null
;
/// <summary>
/// 料屉拉取升降轴
/// </summary>
public
AxisBean
PullAxis_Updown
=
null
;
/// <summary>
/// B面移栽X轴
/// </summary>
public
AxisBean
XAxis_B
=
null
;
/// <summary>
/// B面移栽旋转轴
/// </summary>
public
AxisBean
MiddleAxis_B
=
null
;
/// <summary>
/// B面移栽压紧轴
/// </summary>
public
AxisBean
ComAxis_B
=
null
;
private
AxisBean
[]
moveAxisArray
;
public
AxisBean
[]
moveAxisArray
;
//温湿度
public
HumitureBean
humBean
=
null
;
public
string
lastPosId
=
""
;
public
DeviceStatus
deviceStatus
=
DeviceStatus
.
ResetMove
;
public
string
CID
=
""
;
/// <summary>
/// 抽屉层信号
/// </summary>
public
string
[]
trayRows
;
/// <summary>
/// A面列抽屉列信号
/// </summary>
public
string
[]
trayAColumns
;
/// <summary>
/// B面列抽屉列信号
/// </summary>
public
string
[]
trayBColumns
;
/// <summary>
/// 等待出库的队列
/// </summary>
public
ConcurrentQueue
<
InOutParam
>
waitOutStoreList
=
new
ConcurrentQueue
<
InOutParam
>();
/// <summary>
/// A面等待出库的队列
/// </summary>
...
...
@@ -39,38 +91,94 @@ namespace OnlineStore.DeviceLibrary
/// B面等待出库的队列
/// </summary>
public
ConcurrentQueue
<
InOutParam
>
waitBOutStoreList
=
new
ConcurrentQueue
<
InOutParam
>();
//库位表
public
List
<
string
>
PositionNumList
;
public
BoxEquip
(
string
cid
,
BoxEquip_Config
config
)
{
baseConfig
=
config
;
this
.
DeviceID
=
config
.
Id
;
this
.
Config
=
config
;
IsDebug
=
config
.
IsDebug
.
Equals
(
1
);
Name
=
(
" "
+
"存储机构"
+
" "
).
ToUpper
();
this
.
DeviceID
=
config
.
Id
;
CID
=
config
.
CID
;
IsDebug
=
config
.
IsDebug
.
Equals
(
1
);
Name
=
(
" "
+
"存储机构"
+
" "
).
ToUpper
();
Init
();
InitConnectServerTimer
();
ledProcessTimer
.
Elapsed
+=
LedProcess
;
IoCheckTimer
.
Elapsed
+=
IoCheckTimerProcess
;
MoveInfo
=
new
DeviceMoveInfo
(
" 存储机构 "
);
//MoveZAxis = new AxisBean(StoreManager.Config.Move_Z_Axis, Name);
//MoveXAxis = new AxisBean(StoreManager.Config.Move_X_Axis, Name);
//LabelXAxis = new AxisBean(StoreManager.Config.Label_X_Axis, Name);
//LabelYAxis = new AxisBean(StoreManager.Config.Label_Y_Axis, Name);
//LabelZAxis = new AxisBean(StoreManager.Config.Label_Z_Axis, Name);
//LabelRAxis = new AxisBean(StoreManager.Config.Label_R_Axis, Name);
//BatchAxis = new AxisBean(StoreManager.Config.Out_Batch_Axis,Name);
MoveInfo
=
new
DeviceMoveInfo
(
" 存储机构 "
);
//温湿度
humBean
=
new
HumitureBean
(
config
.
Humiture_Port
,
Name
);
InitRowColumnSig
();
InitAllAxis
();
InitPosititionNumList
();
//moveAxisArray = new AxisBean[] {MoveXAxis,MoveZAxis };
//labelAxisArray = new AxisBean[] { LabelXAxis,LabelYAxis,LabelZAxis,LabelRAxis};
//if (LabelWaitMS < 1000)
//{
// LabelWaitMS = 3000;
// ConfigAppSettings.SaveValue(Setting_Init.LabelWaitMS, LabelWaitMS);
// LogUtil.info(Name + " 初始化并保存 LabelWaitMS=" + LabelWaitMS);
//}
}
void
InitRowColumnSig
()
{
trayRows
=
new
string
[]
{
IO_Type
.
SuddenStop_BTN
,
IO_Type
.
Row_Check_1
,
IO_Type
.
Row_Check_2
,
IO_Type
.
Row_Check_3
,
IO_Type
.
Row_Check_4
,
IO_Type
.
Row_Check_5
,
IO_Type
.
Row_Check_6
,
IO_Type
.
Row_Check_7
,
IO_Type
.
Row_Check_8
,
IO_Type
.
Row_Check_9
,
IO_Type
.
Row_Check_10
,
IO_Type
.
Row_Check_11
,
IO_Type
.
Row_Check_12
,
IO_Type
.
Row_Check_13
,
IO_Type
.
Row_Check_14
,
IO_Type
.
Row_Check_15
};
trayAColumns
=
new
string
[]
{
IO_Type
.
SuddenStop_BTN
,
IO_Type
.
Column_Check_A1
,
IO_Type
.
Column_Check_A2
,
IO_Type
.
Column_Check_A3
,
IO_Type
.
Column_Check_A4
,
IO_Type
.
Column_Check_A5
,
IO_Type
.
Column_Check_A6
};
trayBColumns
=
new
string
[]
{
IO_Type
.
SuddenStop_BTN
,
IO_Type
.
Column_Check_B1
,
IO_Type
.
Column_Check_B2
,
IO_Type
.
Column_Check_B3
,
IO_Type
.
Column_Check_B4
,
IO_Type
.
Column_Check_B5
,
IO_Type
.
Column_Check_B6
};
}
internal
void
InitAllAxis
()
{
MoveAxis
=
new
AxisBean
(
Config
.
MoveAxis
,
Name
);
PullAxis_Inout
=
new
AxisBean
(
Config
.
PullAxis_Inout
,
Name
);
UpdownAxis
=
new
AxisBean
(
Config
.
UpdownAxis
,
Name
);
XAxis_A
=
new
AxisBean
(
Config
.
XAxis_A
,
Name
);
MiddleAxis_A
=
new
AxisBean
(
Config
.
MiddleAxis_A
,
Name
);
ComAxis_A
=
new
AxisBean
(
Config
.
ComAxis_A
,
Name
);
PullAxis_Updown
=
new
AxisBean
(
Config
.
PullAxis_Updown
,
Name
);
XAxis_B
=
new
AxisBean
(
Config
.
XAxis_B
,
Name
);
MiddleAxis_B
=
new
AxisBean
(
Config
.
MiddleAxis_B
,
Name
);
ComAxis_B
=
new
AxisBean
(
Config
.
ComAxis_B
,
Name
);
moveAxisArray
=
new
AxisBean
[]
{
MoveAxis
,
PullAxis_Inout
,
UpdownAxis
,
PullAxis_Updown
,
XAxis_A
,
MiddleAxis_A
,
ComAxis_A
,
XAxis_B
,
MiddleAxis_B
,
ComAxis_B
};
}
internal
void
InitPosititionNumList
()
{
List
<
BoxPosition
>
positionList
=
CSVPositionReader
<
BoxPosition
>.
getPositionList
();
PositionNumList
=
new
List
<
string
>();
foreach
(
BoxPosition
position
in
positionList
)
{
if
(
position
.
StoreId
.
Equals
(
DeviceID
)
&&
BoxPosition
.
CheckPosition
(
position
,
Config
))
{
PositionNumList
.
Add
(
position
.
PositionNum
);
}
}
}
public
override
bool
StartRun
()
{
if
(
CanStartRun
().
Equals
(
false
))
...
...
@@ -83,17 +191,18 @@ namespace OnlineStore.DeviceLibrary
return
false
;
}
SetAllTimer
(
false
);
MoveInfo
.
EndMove
();
runStatus
=
RunStatus
.
HomeMoving
;
MoveInfo
.
NewMove
(
MoveType
.
RHome
);
SetConnectServerTimer
(
false
);
MoveInfo
.
EndMove
();
SetBoxStatus
(
DeviceStatus
.
ResetMove
,
RunStatus
.
HomeMoving
);
MoveInfo
.
NewMove
(
MoveType
.
RHome
);
LogInfo
(
"开始 原点返回: "
);
StartReset
();
SetAllTimer
(
true
);
return
true
;
SetConnectServerTimer
(
true
);
SetAllTimer
(
true
);
return
true
;
}
public
override
bool
Reset
()
{
StopMove
();
...
...
@@ -102,14 +211,13 @@ namespace OnlineStore.DeviceLibrary
CloseAllAxis
();
return
false
;
}
mainTimer
.
Enabled
=
false
;
runStatus
=
RunStatus
.
Reset
;
MoveInfo
.
NewMove
(
MoveType
.
Reset
);
mainTimer
.
Enabled
=
false
;
SetBoxStatus
(
DeviceStatus
.
ResetMove
,
RunStatus
.
Reset
);
MoveInfo
.
NewMove
(
MoveType
.
Reset
);
LogInfo
(
"开始重置: "
);
StartReset
();
mainTimer
.
Enabled
=
true
;
mainTimer
.
Enabled
=
true
;
return
true
;
}
...
...
@@ -118,44 +226,27 @@ namespace OnlineStore.DeviceLibrary
private
void
StartReset
()
{
//AgvClient.SetStatus(Config.AgvInName);
//AgvClient.SetStatus(Config.AgvOutName);
////TimerMaxSeconds = 10;
//SetWarnMsg("");
//alarmType = AlarmType.None;
//isInSuddenDown = false;
//isNoAirpressure_Check = false;
//TimerMaxSeconds = 0;
SetWarnMsg
(
""
);
alarmType
=
AlarmType
.
None
;
isInSuddenDown
=
false
;
isNoAirpressure_Check
=
false
;
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_H01_Wait
);
AutoInout
.
StopAuto
();
LogInfo
(
$
"复位 {MoveInfo.SLog} :存储机构轴开始复位"
);
//MoveReset();
//SecMoveReset();
ShelfMoveReset
();
isInPro
=
false
;
}
public
void
ShelfMoveReset
()
{
//ShelfMoveInfo.NextMoveStep(StepEnum.OBR01_StopUp);
//ShelfWorkLog("阻挡气缸上升");
//IOMove(IO_Type.O_ELine_InStop, IO_VALUE.LOW);
//IOMove(IO_Type.O_WLine_OutStop, IO_VALUE.LOW);
//IOMove(IO_Type.O_WLine_WorkStop, IO_VALUE.LOW);
//ShelfMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.O_ELine_InStop, IO_VALUE.LOW));
//ShelfMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.O_WLine_OutStop, IO_VALUE.LOW));
//ShelfMoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.O_WLine_WorkStop, IO_VALUE.LOW));
}
protected
override
void
ResetProcess
()
{
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
Reset
)
||
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
RHome
))
{
MoveResetPro
();
}
//else if(MoveInfo.MoveType.Equals(MoveType.RHome))
//{
// MoveHomePro();
//}
}
private
void
MoveResetPro
()
...
...
@@ -168,146 +259,126 @@ namespace OnlineStore.DeviceLibrary
{
return
;
}
switch
(
MoveInfo
.
MoveStep
)
{
//回零
case
StepEnum
.
BOX_H01_Wait
:
if
(!
PullAxis_Updown
.
IsInPosition
(
Config
.
PullAxis_Updown_P1
)
&&
!
PullAxis_Updown
.
IsInPosition
(
Config
.
PullAxis_Updown_P2
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_H02_PullAxis_UpDownToP1
);
LogInfo
(
$
"存储机构复位 {MoveInfo.SLog}:当前料屉拉取升降轴不在在料屉待机点/提取低点,升降轴先到待机点P1:{Config.PullAxis_Updown_P1}"
);
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
Config
.
PullAxis_Updown_P1
,
Config
.
PullAxis_Updown_P1_Speed
);
}
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_H03_PullAxis_InoutHome
);
LogInfo
(
$
"存储机构复位 {MoveInfo.SLog}:料屉拉取进出轴回原点"
);
PullAxis_Inout
.
HomeMove
(
MoveInfo
);
}
break
;
case
StepEnum
.
BOX_H02_PullAxis_UpDownToP1
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_H03_PullAxis_InoutHome
);
LogInfo
(
$
"存储机构复位 {MoveInfo.SLog}:料屉拉取进出轴回原点"
);
PullAxis_Inout
.
HomeMove
(
MoveInfo
);
break
;
case
StepEnum
.
BOX_H03_PullAxis_InoutHome
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_H04_PullAxis_Updown_ABComAxis_Home
);
LogInfo
(
$
"存储机构复位 {MoveInfo.SLog}:料屉拉取升降轴、AB面压紧轴回原点"
);
PullAxis_Inout
.
HomeMove
(
MoveInfo
);
ComAxis_A
.
HomeMove
(
MoveInfo
);
ComAxis_B
.
HomeMove
(
MoveInfo
);
break
;
case
StepEnum
.
BOX_H04_PullAxis_Updown_ABComAxis_Home
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_H05_XAxis_AB_Home
);
LogInfo
(
$
"存储机构复位 {MoveInfo.SLog}:AB面移栽X轴回原点"
);
PullAxis_Inout
.
HomeMove
(
MoveInfo
);
XAxis_A
.
HomeMove
(
MoveInfo
);
XAxis_B
.
HomeMove
(
MoveInfo
);
break
;
case
StepEnum
.
BOX_H05_XAxis_AB_Home
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_H06_OtherAxis_Home
);
LogInfo
(
$
"存储机构复位 {MoveInfo.SLog}:行走机构、移栽升降轴、AB面移栽旋转轴回原点"
);
MoveAxis
.
HomeMove
(
MoveInfo
);
UpdownAxis
.
HomeMove
(
MoveInfo
);
MiddleAxis_A
.
HomeMove
(
MoveInfo
);
MiddleAxis_B
.
HomeMove
(
MoveInfo
);
break
;
case
StepEnum
.
BOX_H06_OtherAxis_Home
:
LogInfo
(
$
"存储机构复位 {MoveInfo.SLog}:所有轴回零完成"
);
AllAxisStartMoveToP1
();
break
;
//回待机位
case
StepEnum
.
BOX_R01_PullAxis_UpDownToP1
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_R02_PullAxis_InOut_ABComAxis_ToP1
);
LogInfo
(
$
"存储机构复位 {MoveInfo.SLog}:料屉拉取进出轴、AB面压紧轴返回待机位P1"
);
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
Config
.
PullAxis_Inout_P1
,
Config
.
PullAxis_Inout_P1_Speed
);
ComAxis_A
.
AbsMove
(
MoveInfo
,
Config
.
ComAxis_A_P1
,
Config
.
ComAxis_A_P1_Speed
);
ComAxis_B
.
AbsMove
(
MoveInfo
,
Config
.
ComAxis_B_P1
,
Config
.
ComAxis_B_P1_Speed
);
break
;
case
StepEnum
.
BOX_R02_PullAxis_InOut_ABComAxis_ToP1
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_R03_XAxis_AB_ToP1
);
LogInfo
(
$
"存储机构复位 {MoveInfo.SLog}:AB面移栽X轴返回待机位P1"
);
XAxis_A
.
AbsMove
(
MoveInfo
,
Config
.
XAxis_A_P1
,
Config
.
XAxis_A_P1_Speed
);
XAxis_B
.
AbsMove
(
MoveInfo
,
Config
.
XAxis_B_P1
,
Config
.
XAxis_B_P1_Speed
);
break
;
case
StepEnum
.
BOX_R03_XAxis_AB_ToP1
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_R04_OtherAxisToP1
);
LogInfo
(
$
"存储机构复位 {MoveInfo.SLog}:行走机构、移栽升降轴、AB面移栽旋转轴返回待机位P1"
);
MoveAxis
.
AbsMove
(
MoveInfo
,
Config
.
MoveAxis_P1
,
Config
.
MoveAxis_P1_Speed
);
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P1
,
Config
.
Updown_P1_Speed
);
break
;
case
StepEnum
.
BOX_R04_OtherAxisToP1
:
LogInfo
(
$
"存储机构复位 {MoveInfo.SLog}:所有轴到达待机位完成"
);
SetBoxStatus
(
DeviceStatus
.
None
,
RunStatus
.
Runing
);
MoveInfo
.
EndMove
();
break
;
}
}
private
void
AllAxisStartMoveToP1
()
{
SetBoxStatus
(
DeviceStatus
.
ResetMove
,
RunStatus
.
Reset
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
BOX_R01_PullAxis_UpDownToP1
);
LogInfo
(
$
"存储机构复位 {MoveInfo.SLog}:料屉拉取升降轴返回待机位P1"
);
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
Config
.
PullAxis_Updown_P1
,
Config
.
PullAxis_Updown_P1_Speed
);
}
#
endregion
private
bool
moveInPro
=
false
;
private
bool
secInPro
=
false
;
private
bool
shelfInPro
=
false
;
private
DateTime
moveLastTime
=
DateTime
.
Now
;
private
DateTime
secLastTime
=
DateTime
.
Now
;
private
DateTime
shelfLastTime
=
DateTime
.
Now
;
object
worklock
=
new
object
();
private
DateTime
dtUpperA
=
DateTime
.
Now
;
private
DateTime
dtUpperB
=
DateTime
.
Now
;
int
SigLastTime
=
5
;
//5秒
protected
override
void
OnTimerProcess
()
{
if
(
MoveStop
)
TimeSpan
timeSpanA
=
DateTime
.
Now
-
dtUpperA
;
//检测A上暂存区是否有料盘
if
(
IOValue
(
IO_Type
.
UpperArea_Check_A
).
Equals
(
IO_VALUE
.
HIGH
))
{
return
;
if
(
timeSpanA
.
TotalSeconds
>=
SigLastTime
)
StartInstore
(
new
InOutParam
(
BufferDataManager
.
AInStoreInfo
));
}
int
seconds
=
3
;
TimeSpan
shelfSpan
=
DateTime
.
Now
-
shelfLastTime
;
if
(!
shelfInPro
||
shelfSpan
.
TotalSeconds
>
seconds
)
else
{
shelfInPro
=
true
;
shelfLastTime
=
DateTime
.
Now
;
try
{
//if (ShelfMoveInfo.MoveType.Equals(MoveType.ShelfPro))
//{
// ShelfMoveProcess();
//}
//else if (ShelfMoveInfo.MoveType.Equals(MoveType.Reset) || ShelfMoveInfo.MoveType.Equals(MoveType.RHome))
//{
// BatchResetMovePro();
//}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
" OnTimerProcess 出错:"
,
ex
);
}
finally
{
shelfInPro
=
false
;
}
dtUpperA
=
DateTime
.
Now
;
}
TimeSpan
secSpan
=
DateTime
.
Now
-
secLastTime
;
if
(!
secInPro
||
secSpan
.
TotalSeconds
>
seconds
)
TimeSpan
timeSpanB
=
DateTime
.
Now
-
dtUpperB
;
//检测B上暂存区是否有料盘
if
(
IOValue
(
IO_Type
.
UpperArea_Check_A
).
Equals
(
IO_VALUE
.
HIGH
))
{
secInPro
=
true
;
secLastTime
=
DateTime
.
Now
;
try
{
//if (SecMoveInfo.MoveType.Equals(MoveType.Labelling))
//{
// LabellingProcess();
//}
//else if (SecMoveInfo.MoveType.Equals(MoveType.Reset) || SecMoveInfo.MoveType.Equals(MoveType.RHome))
//{
// SecMoveResetPro();
//}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
"TimerProcess出错:"
,
ex
);
}
finally
{
secInPro
=
false
;
}
if
(
timeSpanB
.
TotalSeconds
>=
SigLastTime
)
StartInstore
(
new
InOutParam
(
BufferDataManager
.
BInStoreInfo
));
}
TimeSpan
moveSpan
=
DateTime
.
Now
-
moveLastTime
;
if
(!
moveInPro
||
moveSpan
.
TotalSeconds
>
seconds
)
else
{
moveInPro
=
true
;
moveLastTime
=
DateTime
.
Now
;
try
{
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
Working
))
{
if
(
Monitor
.
TryEnter
(
worklock
))
{
try
{
InstoreProcess
();
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
"WorkingProcess出错:"
,
ex
);
}
finally
{
Monitor
.
Exit
(
worklock
);
}
}
}
else
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
Reset
)
||
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
RHome
))
{
MoveResetPro
();
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
"TimerProcess出错:"
,
ex
);
}
finally
{
moveInPro
=
false
;
}
dtUpperB
=
DateTime
.
Now
;
}
}
//protected override void BusyMoveProcess()
//{
// if (MoveStop)
// {
// return;
// }
// if (runStatus.Equals(RobotRunStatus.HomeMoving) || runStatus.Equals(RobotRunStatus.Reset))
// {
// ResetProcess();
// }
// else
// {
// if (ShelfMoveInfo.MoveType.Equals(RobotMoveType.ShelfPro))
// {
// ShelfMoveProcess();
// }
// if (SecMoveInfo.MoveType.Equals(RobotMoveType.Labelling))
// {
// LabellingProcess();
// }
// if (MoveInfo.MoveType.Equals(RobotMoveType.Working))
// {
// WorkingProcess();
// }
// }
//}
protected
override
void
BaseTimerProcess
()
{
...
...
@@ -315,43 +386,12 @@ namespace OnlineStore.DeviceLibrary
{
return
;
}
//BusyMoveProcess();
//if (ShelfMoveInfo.MoveType.Equals(MoveType.None))
//{
// if (IOValue(IO_Type.O_WLine_WorkOutCheck).Equals(IO_VALUE.LOW) && NoErrorAlarm())
// {
// if (IOValue(IO_Type.O_WLine_WorkCheck).Equals(IO_VALUE.HIGH) || IOValue(IO_Type.O_WLine_InCheck).Equals(IO_VALUE.HIGH) || IOValue(IO_Type.O_ELine_InCheck).Equals(IO_VALUE.HIGH))
// {
// StartShelfMove();
// }
// }
//}
//if (MoveInfo.MoveType.Equals(MoveType.None))
//{
// if (NoErrorAlarm() && IOValue(IO_Type.Out_TrayCheck).Equals(IO_VALUE.HIGH) && IOValue(IO_Type.X_OLine_Run).Equals(IO_VALUE.LOW))
// {
// //料串准备好才能取料
// if (OutReelCount >= 0)
// //if (OutReelCount >= 0 && SecMoveInfo.MoveType.Equals(RobotMoveType.None))
// {
// StartWorking(new WorkParam());
// }
// }
//}
BusyMoveProcess
();
if
(
NoErrorAlarm
())
{
CheckAxisAlarm
();
}
}
}
protected
override
void
IOTimeOutProcess
()
{
...
...
@@ -367,12 +407,12 @@ namespace OnlineStore.DeviceLibrary
return
;
}
////若BOX和出料都没有在等待Io的过程中则此Io超时异常可能已经处理过
//if ( MoveInfo.IsInWait.Equals(false) && SecMoveInfo.IsInWait.Equals(false)&&ShelfMoveInfo.IsInWait.Equals(false) && StoreManager.LastPrintStatus != Asa.PrintLabel.PrinterStatus.Printing
)
//
{
//
LogUtil.info(Name + "清理信号超时报警【" + WarnMsg + "】 ");
//
alarmType = AlarmType.None;
//
SetWarnMsg("");
//
}
if
(
MoveInfo
.
IsInWait
.
Equals
(
false
)
&&
NoErrorAlarm
()
)
{
LogUtil
.
info
(
Name
+
"清理信号超时报警【"
+
WarnMsg
+
"】 "
);
alarmType
=
AlarmType
.
None
;
SetWarnMsg
(
""
);
}
}
}
catch
(
Exception
ex
)
...
...
@@ -382,9 +422,9 @@ namespace OnlineStore.DeviceLibrary
}
internal
override
void
StopMove
()
{
MoveInfo
.
EndMove
();
MoveInfo
.
EndMove
();
PullAxis_Updown
.
SuddenStop
();
MoveAxis
.
SuddenStop
();
...
...
@@ -396,15 +436,16 @@ namespace OnlineStore.DeviceLibrary
ComAxis_A
.
SuddenStop
();
CloseAllAxis
();
}
public
override
void
StopRun
()
{
SetConnectServerTimer
(
false
);
SetAllTimer
(
false
);
StopMove
();
runStatus
=
RunStatus
.
Wait
;
SetBoxStatus
(
DeviceStatus
.
None
,
RunStatus
.
Wait
)
;
}
public
override
string
GetMoveStr
()
...
...
@@ -414,9 +455,9 @@ namespace OnlineStore.DeviceLibrary
msg
+=
"runS: "
+
runStatus
+
"\n"
;
msg
+=
"alarm: "
+
alarmType
+
"\n"
;
return
msg
;
}
...
...
@@ -451,7 +492,7 @@ namespace OnlineStore.DeviceLibrary
return
;
}
}
if
(
AxisIsAlarm
(
PullAxis_Updown
))
{
return
;
...
...
@@ -460,20 +501,33 @@ namespace OnlineStore.DeviceLibrary
public
bool
OpenAllAxis
(
bool
isCheck
=
true
)
{
{
foreach
(
AxisBean
axis
in
moveAxisArray
)
{
string
outMsg
=
""
;
if
(!
axis
.
Open
(
true
,
out
outMsg
))
{
LogUtil
.
info
(
outMsg
);
return
false
;
}
}
return
false
;
}
public
void
CloseAllAxis
()
{
foreach
(
AxisBean
axis
in
moveAxisArray
)
{
axis
.
SuddenStop
();
axis
.
ServoOff
();
}
}
#
endregion
}
}
source/DeviceLibrary/storeBean/boxBean/BoxEquip_
RequestServ
er.cs
→
source/DeviceLibrary/storeBean/boxBean/BoxEquip_
ConnectServerTim
er.cs
查看文件 @
93b2086
...
...
@@ -9,13 +9,26 @@ using System.Linq;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Timers
;
namespace
OnlineStore.DeviceLibrary
{
public
partial
class
BoxEquip
{
#
region
与服务器通信定时器,每
1
秒向服务器通知一次状态
,
同时执行出库操作
private
System
.
Timers
.
Timer
serverConnectTimer
;
public
void
InitConnectServerTimer
()
{
serverConnectTimer
=
new
System
.
Timers
.
Timer
();
serverConnectTimer
.
Interval
=
1000
;
serverConnectTimer
.
AutoReset
=
true
;
serverConnectTimer
.
Enabled
=
false
;
serverConnectTimer
.
Elapsed
+=
server_connect_timer_Tick
;
}
internal
void
SetConnectServerTimer
(
bool
open
)
{
serverConnectTimer
.
Enabled
=
open
;
}
#
region
与服务器通信定时器
private
string
CodeMsg
=
""
;
private
bool
isInProcess
=
false
;
...
...
@@ -34,13 +47,10 @@ namespace OnlineStore.DeviceLibrary
lastConTime
=
DateTime
.
Now
;
try
{
//HumitureController.QueryData();
humBean
.
HumidityProcess
(
this
);
if
(
StoreManager
.
IsConnectServer
)
{
SendLineStatus
();
}
}
catch
(
Exception
ex
)
...
...
@@ -52,7 +62,6 @@ namespace OnlineStore.DeviceLibrary
isInProcess
=
false
;
}
}
/// <summary>
/// 获取整个料仓的状态
/// </summary>
...
...
@@ -67,10 +76,10 @@ namespace OnlineStore.DeviceLibrary
lineOperation
.
status
=
1
;
if
(
WarnMsg
!=
""
)
{
lineOperation
.
status
=
(
int
)
Stor
eStatus
.
Warning
;
lineOperation
.
status
=
(
int
)
Devic
eStatus
.
Warning
;
lineOperation
.
msg
=
WarnMsg
;
}
lineOperation
.
status
=
(
int
)
Stor
eStatus
.
StoreOnline
;
lineOperation
.
status
=
(
int
)
Devic
eStatus
.
StoreOnline
;
BoxStatus
boxStatus
=
new
BoxStatus
();
boxStatus
.
boxId
=
1
;
...
...
@@ -86,22 +95,22 @@ namespace OnlineStore.DeviceLibrary
CodeMsg
=
""
;
//WarnMsg = "";
//状态
boxStatus
.
status
=
(
int
)
store
Status
;
boxStatus
.
status
=
(
int
)
run
Status
;
if
(
IsDebug
)
{
boxStatus
.
status
=
(
int
)
Stor
eStatus
.
Debugging
;
boxStatus
.
status
=
(
int
)
Devic
eStatus
.
Debugging
;
}
else
if
(
storeStatus
.
Equals
(
StoreStatus
.
OutStoreBoxEnd
)
||
storeStatus
.
Equals
(
Stor
eStatus
.
InStoreEnd
))
else
if
(
runStatus
.
Equals
(
DeviceStatus
.
OutStoreBoxEnd
)
||
runStatus
.
Equals
(
Devic
eStatus
.
InStoreEnd
))
{
boxStatus
.
data
.
Add
(
ParamDefine
.
posId
,
lastPosId
);
}
else
if
(!
lastPosId
.
Equals
(
""
))
{
boxStatus
.
data
.
Add
(
ParamDefine
.
posId
,
lastPosId
);
boxStatus
.
status
=
(
int
)
lastPosId
Status
;
boxStatus
.
status
=
(
int
)
device
Status
;
if
(
lastPosId
!=
""
)
{
LogUtil
.
info
(
"给服务器发送出入库完成消息:"
+
Name
+
",status【"
+
lastPosId
Status
+
"】posId【"
+
lastPosId
+
"】"
);
LogUtil
.
info
(
"给服务器发送出入库完成消息:"
+
Name
+
",status【"
+
device
Status
+
"】posId【"
+
lastPosId
+
"】"
);
}
lastPosId
=
""
;
}
...
...
@@ -116,7 +125,7 @@ namespace OnlineStore.DeviceLibrary
}
lineOperation
.
boxStatus
.
Add
(
1
,
boxStatus
);
if
(!
alarmType
.
Equals
(
Store
AlarmType
.
None
))
if
(!
alarmType
.
Equals
(
AlarmType
.
None
))
{
lineOperation
.
alarmList
.
Add
(
alarmInfo
);
}
...
...
@@ -135,8 +144,8 @@ namespace OnlineStore.DeviceLibrary
LogUtil
.
error
(
Name
+
"没有湿度预警范围,需要从服务器获取,发送OP="
+
lineOperation
.
op
,
DeviceID
+
105
);
}
string
server
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
http_server
);
Operation
resultOperation
=
HttpHelper
.
Post
Json
(
StoreManager
.
GetPostApi
(
server
),
lineOperation
,
false
);
Operation
resultOperation
=
HttpHelper
.
Post
Operation
(
SServerManager
.
GetPostApi
(
server
),
lineOperation
);
//LogUtil.info("resultOperation="+ JsonHelper.SerializeObject(resultOperation));
//发送状态信息到服务器
if
(
resultOperation
==
null
||
(
resultOperation
.
op
<=
0
))
{
...
...
@@ -166,7 +175,63 @@ namespace OnlineStore.DeviceLibrary
}
}
public
bool
ReviceInStoreCMD
(
string
posId
,
int
plateH
,
int
plateW
,
string
message
)
{
string
logName
=
"入库库位验证【 "
+
message
+
"】【"
+
posId
+
"】:"
;
try
{
if
(
runStatus
.
Equals
(
RunStatus
.
Wait
))
{
LogUtil
.
info
(
logName
+
" 设备未启动,验证失败"
);
return
false
;
}
//发送扫码内容到服务器进行入库操作
Operation
operation
=
getLineBoxStatus
();
operation
.
op
=
1
;
operation
.
data
=
new
Dictionary
<
string
,
string
>()
{
{
"code"
,
message
},
{
"boxId"
,
this
.
DeviceID
.
ToString
()
}
};
operation
.
data
.
Add
(
"inPos"
,
posId
);
string
server
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
http_server
);
for
(
int
i
=
1
;
i
<=
3
;
i
++)
{
bool
timeOut
=
false
;
Operation
resultOperation
=
HttpHelper
.
PostOperation
(
SServerManager
.
GetPostApi
(
server
),
operation
);
if
(
timeOut
)
{
LogUtil
.
info
(
logName
+
" 第"
+
i
+
"次发送超时 "
);
continue
;
}
if
(
resultOperation
==
null
)
{
// CodeMsg = "二维码【" + message + "】没有收到服务器反馈";
LogUtil
.
info
(
logName
+
" 没有收到服务器反馈 "
);
}
else
if
(!
string
.
IsNullOrEmpty
(
resultOperation
.
msg
))
{
//如果有提示消息,直接显示提示
LogUtil
.
info
(
logName
+
"服务器反馈 :"
+
resultOperation
.
msg
);
}
else
if
(
resultOperation
.
op
.
Equals
(
1
))
{
LogUtil
.
info
(
logName
+
" 成功"
);
return
true
;
}
else
{
LogUtil
.
info
(
logName
+
"服务器反馈 :"
+
JsonHelper
.
SerializeObject
(
resultOperation
));
}
break
;
}
}
catch
(
Exception
ex
)
{
LogUtil
.
info
(
logName
+
" 出错:"
+
ex
.
ToString
());
}
return
false
;
}
//public string LastVisualRfid = "";
private
void
ReviceOutStoreProcess
(
Operation
resultOperation
)
{
DateTime
time
=
DateTime
.
Now
;
...
...
@@ -178,15 +243,23 @@ namespace OnlineStore.DeviceLibrary
string
[]
posIdArray
=
data
[
ParamDefine
.
posId
].
Split
(
splitChar
);
string
[]
plateWArray
=
data
[
ParamDefine
.
plateW
].
Split
(
splitChar
);
string
[]
plateHArray
=
data
[
ParamDefine
.
plateH
].
Split
(
splitChar
);
//if (string.IsNullOrEmpty(StoreManager.LastVisualRfid))
//{
// StoreManager.LastVisualRfid = data[ParamDefine.rfid];
//}
//else if (StoreManager.LastVisualRfid != data[ParamDefine.rfid])
//{
// LogUtil.error(Name + $" 上一个工单还未结束LastVisualRfid={StoreManager.LastVisualRfid}, CurrentVisualRfid={data[ParamDefine.rfid]}");
// return;
//}
bool
urgentReel
=
FormUtil
.
GetBoolData
(
data
,
ParamDefine
.
urgentReel
);
bool
cutReel
=
FormUtil
.
GetBoolData
(
data
,
ParamDefine
.
cutReel
);
bool
smallReel
=
FormUtil
.
GetBoolData
(
data
,
ParamDefine
.
smallReel
);
string
rfid
=
data
.
ContainsKey
(
ParamDefine
.
rfid
)
?
data
[
ParamDefine
.
rfid
]
:
""
;
int
rfidLoc
=
FormUtil
.
GetIntData
(
data
,
ParamDefine
.
rfidLoc
);
//
bool cutReel = FormUtil.GetBoolData(data, ParamDefine.cutReel);
//
bool smallReel = FormUtil.GetBoolData(data, ParamDefine.smallReel);
//
string rfid = data.ContainsKey(ParamDefine.rfid) ? data[ParamDefine.rfid] : "";
//
int rfidLoc = FormUtil.GetIntData(data, ParamDefine.rfidLoc);
string
barcode
=
data
.
ContainsKey
(
ParamDefine
.
barcode
)
?
data
[
ParamDefine
.
barcode
]
:
""
;
string
realRfid
=
data
.
ContainsKey
(
ParamDefine
.
realRfid
)
?
data
[
ParamDefine
.
realRfid
]
:
""
;
int
taskCount
=
FormUtil
.
GetIntData
(
data
,
ParamDefine
.
taskCount
,
0
);
//
string realRfid = data.ContainsKey(ParamDefine.realRfid) ? data[ParamDefine.realRfid] : "";
//
int taskCount = FormUtil.GetIntData(data, ParamDefine.taskCount, 0);
//urgentReel: true 表示紧急料,需要出到料串上
//cutReel: true 表示分盘料,需要出到料串上
...
...
@@ -201,42 +274,41 @@ namespace OnlineStore.DeviceLibrary
foreach
(
string
posId
in
posIdArray
)
{
index
++;
int
plateW
=
Convert
.
ToInt32
(
plateWArray
[
index
]);
int
plateH
=
Convert
.
ToInt32
(
plateHArray
[
index
]);
string
shelfPosID
=
StoreManager
.
GetShelfIDByLoc
(
rfidLoc
,
ShelfPosList
);
InOutParam
inoutParam
=
new
InOutParam
(
barcode
,
posId
,
shelfPosID
,
plateW
,
plateH
,
urgentReel
,
cutReel
,
smallReel
,
rfid
,
rfidLoc
,
taskCount
,
realRfid
);
int
plateW
=
Convert
.
ToInt32
(
plateWArray
[
index
]);
int
plateH
=
Convert
.
ToInt32
(
plateHArray
[
index
]);
InOutParam
inoutParam
=
new
InOutParam
(
new
InOutPosInfo
(
barcode
,
posId
,
plateW
,
plateH
,
urgentReel
));
//根据发送的posId获取位置列表
ACBoxPosition
position
=
CSVPositionReader
<
AC
BoxPosition
>.
GetPositon
(
posId
);
BoxPosition
position
=
CSVPositionReader
<
BoxPosition
>.
GetPositon
(
posId
);
if
(
position
==
null
)
{
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg
=
Name
+
"未找到库位:【"
+
inoutParam
.
ToStr
()
+
"】"
;
WarnMsg
=
Name
+
"未找到库位:【"
+
inoutParam
.
PosInfo
.
ToStr
()
+
"】"
;
LogUtil
.
error
(
WarnMsg
);
continue
;
}
try
{
//判断是否接收过此库位的出库信息
if
(
MoveInfo
.
MoveType
.
Equals
(
StoreMoveType
.
OutStore
)
&&
MoveInfo
.
MoveParam
.
PosID
.
Equals
(
posId
))
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
OutStore
)
&&
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
.
Equals
(
posId
))
{
LogUtil
.
error
(
Name
+
" 出库命令【"
+
inoutParam
.
ToStr
()
+
"】重复,正在【"
+
posId
+
"】出库中"
);
LogUtil
.
error
(
Name
+
" 出库命令【"
+
inoutParam
.
PosInfo
.
ToStr
()
+
"】重复,正在【"
+
posId
+
"】出库中"
);
continue
;
}
//判断排队列表中是否已存在
List
<
InOutParam
>
reviceList
=
new
List
<
InOutParam
>(
waitOutStoreList
);
reviceList
=
(
from
m
in
reviceList
where
m
.
PosI
D
.
Equals
(
posId
)
select
m
).
ToList
<
InOutParam
>();
reviceList
=
(
from
m
in
reviceList
where
m
.
PosI
nfo
.
PosId
.
Equals
(
posId
)
select
m
).
ToList
<
InOutParam
>();
if
(
reviceList
.
Count
>
0
)
{
LogUtil
.
error
(
Name
+
" 出库命令【"
+
inoutParam
.
ToStr
()
+
"】重复,排队列表中已存在【"
+
reviceList
[
0
]
.
ToStr
()
+
"】"
);
LogUtil
.
error
(
Name
+
" 出库命令【"
+
inoutParam
.
PosInfo
.
ToStr
()
+
"】重复,排队列表中已存在【"
+
reviceList
[
0
].
PosInfo
.
ToStr
()
+
"】"
);
continue
;
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
"验证出库【"
+
inoutParam
.
ToStr
()
+
"】是否重复出错:"
+
ex
.
ToString
());
LogUtil
.
error
(
Name
+
"验证出库【"
+
inoutParam
.
PosInfo
.
ToStr
()
+
"】是否重复出错:"
+
ex
.
ToString
());
}
StartExecuctOut
(
inoutParam
);
}
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip_InExecute.cs
0 → 100644
查看文件 @
93b2086
using
CodeLibrary
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.Drawing
;
using
System.Linq
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Windows.Forms.VisualStyles
;
namespace
OnlineStore.DeviceLibrary
{
partial
class
BoxEquip
{
#
region
入库
/// <summary>
/// 检查另一个料叉上是否有料,有料则开始入库
/// </summary>
/// <returns></returns>
private
bool
CheckInStoreOtherSideInfo
()
{
if
(
MoveInfo
.
MoveParam
.
PosInfoBack
!=
null
)
{
return
true
;
}
return
false
;
}
/// <summary>
/// 料屉行
/// </summary>
/// <returns></returns>
private
int
GetPosRow
()
{
return
MoveInfo
.
MoveParam
.
PosInfo
.
GetTrayRow
();
}
/// <summary>
/// 料屉列
/// </summary>
/// <returns></returns>
private
int
GetPosColumn
()
{
return
MoveInfo
.
MoveParam
.
PosInfo
.
GetTrayColumn
();
}
/// <summary>
/// 入库前料盘信息检查
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
private
bool
PreInStoreCheck
(
InOutParam
param
)
{
if
(!
AutoInout
.
autoNext
&&
InDoorCheck
(
param
))
{
SetWarnMsg
(
Name
+
$
" 启动入库出错,入口料盘无入库信息[barcode={param.PosInfo.barcode},PosSide={param.PosInfo.PosSide}], 任务取消"
);
SServerManager
.
cancelPutInTask
(
Name
,
param
.
PosInfo
.
barcode
);
return
false
;
}
if
(!
param
.
PosInfo
.
CheckPosition
())
{
LogUtil
.
error
(
Name
+
" 启动入库【"
+
param
.
PosInfo
.
ToStr
()
+
"】出错,找不到库位信息"
);
return
false
;
}
if
(
AutoInout
.
autoNext
)
{
LogInfo
(
" 循环测试入库, 不做入库验证. "
);
return
true
;
}
else
{
if
(!
ReviceInStoreCMD
(
param
.
PosInfo
.
PosId
,
param
.
PosInfo
.
PlateH
,
param
.
PosInfo
.
PlateW
,
param
.
PosInfo
.
barcode
))
{
LogUtil
.
error
(
$
" 入库验证失败:{param.PosInfo.ToStr()}"
);
return
false
;
}
}
return
true
;
}
/// <summary>
/// 清除入料暂存区的料盘信息
/// </summary>
private
void
ClearInDoorBuffer
()
{
if
(
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
.
Equals
(
BufferDataManager
.
AInStoreInfo
.
PosId
))
{
BufferDataManager
.
AInStoreInfo
=
null
;
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:取料完成,清除该暂存区的料盘信息[barcode={MoveInfo.MoveParam.PosInfo.barcode}][{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
}
else
if
(
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
.
Equals
(
BufferDataManager
.
BInStoreInfo
.
PosId
))
{
BufferDataManager
.
BInStoreInfo
=
null
;
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:取料完成,清除该暂存区的料盘信息[barcode={MoveInfo.MoveParam.PosInfo.barcode}][{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
}
}
/// <summary>
/// 检查另一边暂存区是否存在入库的料
/// </summary>
/// <returns></returns>
private
bool
CheckOtherSideIsThereReel
(
out
InOutPosInfo
inOutPosInfo
)
{
inOutPosInfo
=
null
;
if
(
CheckASide
())
{
if
(
InDoorCheck
(
new
InOutParam
(
BufferDataManager
.
AInStoreInfo
)))
{
inOutPosInfo
=
BufferDataManager
.
AInStoreInfo
.
ToCopy
();
return
true
;
}
}
else
{
if
(
InDoorCheck
(
new
InOutParam
(
BufferDataManager
.
BInStoreInfo
)))
{
inOutPosInfo
=
BufferDataManager
.
BInStoreInfo
.
ToCopy
();
return
true
;
}
}
return
false
;
}
private
void
InstoreExecute
()
{
switch
(
MoveInfo
.
MoveStep
)
{
case
StepEnum
.
SI_00_StartInstore
:
PullAxisToP1
(
"入库"
);
break
;
case
StepEnum
.
SI_01_PullAxis_Ready
:
SetBoxStatus
(
DeviceStatus
.
InStoreExecute
,
RunStatus
.
Busy
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_02_ToBufferArea
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:到暂存区入料口,"
+
$
"行走机构到进出料机构取放点P2,移栽升降轴到上暂存区取料低点P3/P9,移栽压紧轴到压紧前点P2,移栽旋转轴到进出料暂存区取放料水平点P2[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
MoveAxis
.
AbsMove
(
MoveInfo
,
Config
.
MoveAxis_P2
,
Config
.
MoveAxis_P2_Speed
);
if
(
CheckASide
())
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P3
,
Config
.
Updown_P3_Speed
);
ComAxis_A
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P2
,
Config
.
ComAxis_A_P2_Speed
);
MiddleAxis_A
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_A_P2
,
Config
.
MiddleAxis_A_P2_Speed
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
AHorizontal_Check
,
IO_VALUE
.
HIGH
));
}
else
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P9
,
Config
.
Updown_P9_Speed
);
ComAxis_B
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P2
,
Config
.
ComAxis_B_P2_Speed
);
MiddleAxis_B
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_B_P2
,
Config
.
MiddleAxis_B_P2_Speed
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
BHorizontal_Check
,
IO_VALUE
.
HIGH
));
}
break
;
case
StepEnum
.
SI_02_ToBufferArea
:
if
(!
InDoorCheck
(
MoveInfo
.
MoveParam
))
{
SetWarnMsg
(
$
" 存储机构-入库 {MoveInfo.SLog}:入口料盘无入库信息[barcode={MoveInfo.MoveParam.PosInfo.barcode},PosSide={MoveInfo.MoveParam.PosInfo.PosSide}], 任务取消"
);
if
(
MoveInfo
.
MoveParam
.
PosInfoBack
==
null
)
{
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:入口料盘因无入库信息且AB面料叉无料,结束入库"
);
SetBoxStatus
(
DeviceStatus
.
None
,
RunStatus
.
Runing
);
MoveInfo
.
EndMove
();
}
else
if
(
MoveInfo
.
MoveParam
.
PosInfoBack
!=
null
)
//料叉有料,忽略当前入料口,直接入库
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_07_MiddleToP3
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:入口料盘无入库信息,另一面料叉有料。先将当前移栽旋转轴到料屉库位垂直取放料点P3,然后对另一面入库[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
MiddleAxis_To_P3
();
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
MoveInfo
.
MoveParam
.
PosInfo
=
MoveInfo
.
MoveParam
.
PosInfoBack
.
ToCopy
();
MoveInfo
.
MoveParam
.
MoveP
=
new
LineMoveP
(
Config
,
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
);
MoveInfo
.
MoveParam
.
PosInfoBack
=
null
;
}
}
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_03_VerifyBufferState
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:入料口入库信息确认[barcode={MoveInfo.MoveParam.PosInfo.barcode}][{MoveInfo.MoveParam.PosInfo.PosSide}面],开始取料"
);
}
break
;
case
StepEnum
.
SI_03_VerifyBufferState
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_04_InOutToBuff
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:移栽X轴到进出料暂存区取放点P2[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
XAxis_To_P2
();
break
;
case
StepEnum
.
SI_04_InOutToBuff
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_05_GetReel
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:取料盘,移栽升降轴到上暂存区取料高点P2/P8,移栽压紧轴到压紧点P3"
);
if
(
CheckASide
())
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P2
,
Config
.
Updown_P2_Speed
);
ComAxis_A
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P3
,
Config
.
ComAxis_A_P3_Speed
);
}
else
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P8
,
Config
.
Updown_P8_Speed
);
ComAxis_B
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P3
,
Config
.
ComAxis_B_P3_Speed
);
}
break
;
case
StepEnum
.
SI_05_GetReel
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_06_InOutBackFromBuff
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:移栽X轴到料屉库位取放料点P3[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
//清空暂存区料盘信息
ClearInDoorBuffer
();
XAxis_To_P3
();
break
;
case
StepEnum
.
SI_06_InOutBackFromBuff
:
//存储当前料叉信息
if
(
MoveInfo
.
MoveParam
.
PosInfoBack
==
null
)
{
if
(
CheckOtherSideIsThereReel
(
out
InOutPosInfo
inOutPosInfo
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_01_PullAxis_Ready
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:移栽旋转轴到料屉库位垂直取放料点P3,取另一面暂存区的料[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
MiddleAxis_To_P3
();
MoveInfo
.
MoveParam
.
PosInfoBack
=
MoveInfo
.
MoveParam
.
PosInfo
.
ToCopy
();
MoveInfo
.
MoveParam
.
PosInfo
=
inOutPosInfo
;
MoveInfo
.
MoveParam
.
MoveP
=
new
LineMoveP
(
Config
,
inOutPosInfo
.
PosId
);
}
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_07_MiddleToP3
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:移栽旋转轴到料屉库位垂直取放料点P3[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
MiddleAxis_To_P3
();
}
}
else
//另一个料叉已有料,进行入库
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_07_MiddleToP3
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:移栽旋转轴到料屉库位垂直取放料点P3[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
MiddleAxis_To_P3
();
}
break
;
//去库位点
case
StepEnum
.
SI_07_MiddleToP3
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_08_ToPosition
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:运行到库位,移栽升降轴到料屉上方过渡点P6/P12,行走机构到存储库位取放点位P3,"
+
$
"料斗拉取升降轴到料屉提取低点P4[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
MoveAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
MoveAxis_P3
,
Config
.
MoveAxis_P3_Speed
);
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Updown_P4
,
Config
.
PullAxis_Updown_P4_Speed
);
UpdownAxisTo_P6_P12
();
break
;
case
StepEnum
.
SI_08_ToPosition
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_09_ToTray
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:到抽屉提取点,料斗拉取进出轴到料屉提取点P2/P4[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
ToTray
();
break
;
case
StepEnum
.
SI_09_ToTray
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_10_LiftTray
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:提升抽屉,料斗拉取升降轴到料屉提取高点P3[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_UpdownToP3
();
break
;
case
StepEnum
.
SI_10_LiftTray
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_11_PullTray
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:拉抽屉到库位点,料斗拉取进出轴到料屉库位点P3/P5[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Inout_To_P3_P5
();
break
;
case
StepEnum
.
SI_11_PullTray
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_12_DropTrayToPos
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:将抽屉降到库位提取点,料斗拉取升降轴到P2料屉提取水平点P2,到位后检测{trayRows[GetPosRow()]}=1[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
Config
.
PullAxis_Updown_P2
,
Config
.
PullAxis_Updown_P2_Speed
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
trayRows
[
GetPosRow
()],
IO_VALUE
.
HIGH
));
break
;
case
StepEnum
.
SI_12_DropTrayToPos
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_13_GetReel
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:进入库位中,移栽升降轴到料屉取放点P7/P13[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
UpdownAxisToP7_P13
();
break
;
case
StepEnum
.
SI_13_GetReel
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_14_ReleaseCompress
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:压紧轴开始缓慢释放,移栽压紧轴到压紧前点P2[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
ComAxis_To_P2
();
break
;
case
StepEnum
.
SI_14_ReleaseCompress
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_15_UpDownBack
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:叉子从库位返回,[{MoveInfo.MoveParam.PosInfo.ToStr()}]入库完成,移栽升降轴到料屉上方过度点P6/P12[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
//入库完成
SetBoxStatus
(
DeviceStatus
.
InStoreEnd
,
RunStatus
.
Busy
);
UpdownAxisTo_P6_P12
();
break
;
case
StepEnum
.
SI_15_UpDownBack
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_16_LiftTray
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:提升抽屉,料斗拉取升降轴到料屉提取高点P3[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Updown_P3
,
Config
.
PullAxis_Updown_P3_Speed
);
break
;
case
StepEnum
.
SI_16_LiftTray
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_17_PushTray
);
if
(
CheckASide
())
{
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:推到抽屉提取点,料斗拉取进出轴到料屉提取点P2,同时检测{trayAColumns[GetPosColumn()]}=1[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Inout_P2_P4
,
Config
.
PullAxis_Inout_P2_Speed
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
trayAColumns
[
GetPosColumn
()],
IO_VALUE
.
HIGH
));
}
else
{
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:推到抽屉提取点,料斗拉取进出轴到料屉提取点P2,同时检测{trayBColumns[GetPosColumn()]} = 1[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Inout_P2_P4
,
Config
.
PullAxis_Inout_P4_Speed
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
trayBColumns
[
GetPosColumn
()],
IO_VALUE
.
HIGH
));
}
break
;
case
StepEnum
.
SI_17_PushTray
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_18_PutTrayDown
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:放下料屉,料斗拉取升降轴到料屉提取低点P4[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Updown_P4
,
Config
.
PullAxis_Updown_P4_Speed
);
break
;
case
StepEnum
.
SI_18_PutTrayDown
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_19_InoutBack
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:料斗拉取进出轴到待机点P1[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
Config
.
PullAxis_Inout_P1
,
Config
.
PullAxis_Inout_P1_Speed
);
break
;
case
StepEnum
.
SI_19_InoutBack
:
if
(!
CheckInStoreOtherSideInfo
())
{
SetBoxStatus
(
DeviceStatus
.
StoreOnline
,
RunStatus
.
Runing
);
MoveInfo
.
EndMove
();
AutoInout
.
InOutEndProcess
(
this
,
MoveType
.
InStore
);
}
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_07_MiddleToP3
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:从{MoveInfo.MoveParam.PosInfo.PosSide}面切换到另一面入库[{MoveInfo.MoveParam.PosInfoBack.barcode}]"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
MoveInfo
.
MoveParam
.
PosInfo
=
MoveInfo
.
MoveParam
.
PosInfoBack
.
ToCopy
();
MoveInfo
.
MoveParam
.
MoveP
=
new
LineMoveP
(
Config
,
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
);
MoveInfo
.
MoveParam
.
PosInfoBack
=
null
;
}
break
;
}
}
#
endregion
}
}
source/DeviceLibrary/storeBean/boxBean/BoxEquip_OutExecute.cs
0 → 100644
查看文件 @
93b2086
using
CodeLibrary
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.Drawing
;
using
System.Linq
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
using
System.Windows.Forms.VisualStyles
;
namespace
OnlineStore.DeviceLibrary
{
partial
class
BoxEquip
{
/// <summary>
/// 料盘放到出料口成功,并将料盘信息写入该口
/// </summary>
private
void
SetReelInfoToBuff
()
{
if
(
CheckASide
())
{
BufferDataManager
.
AOutStoreInfo
=
MoveInfo
.
MoveParam
.
PosInfo
.
ToCopy
();
}
else
{
BufferDataManager
.
BOutStoreInfo
=
MoveInfo
.
MoveParam
.
PosInfo
.
ToCopy
();
}
}
#
region
出库
private
void
OutstoreExecute
()
{
switch
(
MoveInfo
.
MoveStep
)
{
case
StepEnum
.
SO_00_StartOutstore
:
PullAxisToP1
();
break
;
case
StepEnum
.
SO_01_PullAxis_Ready
:
SetBoxStatus
(
DeviceStatus
.
OutStoreExecute
,
RunStatus
.
Busy
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_02_ToPosition
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:运行到库位,移栽升降轴到料屉上方过渡点P6/P12,行走机构到存储库位取放点位P3,"
+
$
"料斗拉取升降轴到料屉提取低点P4,移栽压紧轴到压紧前点P2[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
MoveAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
MoveAxis_P3
,
Config
.
MoveAxis_P3_Speed
);
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Updown_P4
,
Config
.
PullAxis_Updown_P4_Speed
);
if
(
CheckASide
())
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P6_P12
,
Config
.
Updown_P6_Speed
);
ComAxis_A
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P2
,
Config
.
ComAxis_A_P2_Speed
);
}
else
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P6_P12
,
Config
.
Updown_P12_Speed
);
ComAxis_B
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P2
,
Config
.
ComAxis_B_P2_Speed
);
}
break
;
case
StepEnum
.
SO_02_ToPosition
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_03_ToTray
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:到抽屉提取点,料斗拉取进出轴到料屉提取点P2/P4[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
ToTray
();
break
;
case
StepEnum
.
SO_03_ToTray
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_04_LiftTray
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:提升抽屉,料斗拉取升降轴到料屉提取高点P3[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Updown_P3
,
Config
.
PullAxis_Updown_P3_Speed
);
break
;
case
StepEnum
.
SO_04_LiftTray
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_05_PullTray
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:拉抽屉到库位点,料斗拉取进出轴到料屉库位点P3/P5[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
if
(
CheckASide
())
{
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Inout_P3_P5
,
Config
.
PullAxis_Inout_P3_Speed
);
}
else
{
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Inout_P3_P5
,
Config
.
PullAxis_Inout_P5_Speed
);
}
break
;
case
StepEnum
.
SO_05_PullTray
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_06_DropTrayToPos
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:将抽屉降到库位提取点,料斗拉取升降轴到P2料屉提取水平点P2,到位后检测{trayRows[GetPosRow()]}=1[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
Config
.
PullAxis_Updown_P2
,
Config
.
PullAxis_Updown_P2_Speed
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
trayRows
[
GetPosRow
()],
IO_VALUE
.
HIGH
));
break
;
case
StepEnum
.
SO_06_DropTrayToPos
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_13_GetReel
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:进入库位中,移栽升降轴到料屉取放点P7/P13[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
UpdownAxisToP7_P13
();
break
;
case
StepEnum
.
SO_07_GetReel
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_08_StartCompress
);
LogInfo
(
$
"存储机构-入库 {MoveInfo.SLog}:压紧轴开始缓慢夹取,移栽压紧轴到压紧点P3[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
ComAxis_To_P3
();
break
;
case
StepEnum
.
SO_08_StartCompress
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_09_UpDownBack
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:叉子从库位返回,移栽升降轴到料屉上方过度点P6/P12[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
UpdownAxisTo_P6_P12
();
break
;
case
StepEnum
.
SO_09_UpDownBack
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_10_LiftTray
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:提升抽屉,料斗拉取升降轴到料屉提取高点P3[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Updown_P3
,
Config
.
PullAxis_Updown_P3_Speed
);
break
;
case
StepEnum
.
SO_10_LiftTray
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_11_PushTray
);
if
(
CheckASide
())
{
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:推到抽屉提取点,料斗拉取进出轴到料屉提取点P2,同时检测{trayAColumns[GetPosColumn()]}=1[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Inout_P2_P4
,
Config
.
PullAxis_Inout_P2_Speed
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
trayAColumns
[
GetPosColumn
()],
IO_VALUE
.
HIGH
));
}
else
{
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:推到抽屉提取点,料斗拉取进出轴到料屉提取点P2,同时检测{trayBColumns[GetPosColumn()]} = 1[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Inout_P2_P4
,
Config
.
PullAxis_Inout_P4_Speed
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
trayBColumns
[
GetPosColumn
()],
IO_VALUE
.
HIGH
));
}
break
;
case
StepEnum
.
SO_11_PushTray
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_12_PutTrayDown
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:放下料屉,料斗拉取升降轴到料屉提取低点P4[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Updown_P4
,
Config
.
PullAxis_Updown_P4_Speed
);
break
;
case
StepEnum
.
SO_12_PutTrayDown
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_13_InoutBack
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:料斗拉取进出轴到待机点P1[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
Config
.
PullAxis_Inout_P1
,
Config
.
PullAxis_Inout_P1_Speed
);
break
;
case
StepEnum
.
SO_13_InoutBack
:
//检查另一面是否有出库任务
if
(
MoveInfo
.
MoveParam
.
PosInfoBack
==
null
)
{
if
(
CheckASide
(
MoveInfo
.
MoveParam
))
{
if
(
waitBOutStoreList
.
Count
>
0
&&
CheckBOutDoor
())
{
if
(
waitBOutStoreList
.
TryDequeue
(
out
InOutParam
inOutParam
))
//B面料叉空且B面出料口无料,有出库任务
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_01_PullAxis_Ready
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:A面切换到B面,B面取料[{inOutParam.PosInfo.barcode}]"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
MoveInfo
.
MoveParam
.
PosInfoBack
=
MoveInfo
.
MoveParam
.
PosInfo
.
ToCopy
();
MoveInfo
.
MoveParam
.
PosInfo
=
inOutParam
.
PosInfo
.
ToCopy
();
MoveInfo
.
MoveParam
.
MoveP
=
new
LineMoveP
(
Config
,
inOutParam
.
PosInfo
.
PosId
);
return
;
}
}
}
else
{
if
(
waitAOutStoreList
.
Count
>
0
&&
CheckAOutDoor
())
{
if
(
waitAOutStoreList
.
TryDequeue
(
out
InOutParam
inOutParam
))
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_01_PullAxis_Ready
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:B面切换到A面,A面取料[{inOutParam.PosInfo.barcode}]"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
MoveInfo
.
MoveParam
.
PosInfoBack
=
MoveInfo
.
MoveParam
.
PosInfo
.
ToCopy
();
MoveInfo
.
MoveParam
.
PosInfo
=
inOutParam
.
PosInfo
.
ToCopy
();
MoveInfo
.
MoveParam
.
MoveP
=
new
LineMoveP
(
Config
,
inOutParam
.
PosInfo
.
PosId
);
return
;
}
}
}
}
//直接出库,执行该步骤的情况:1.另一个料叉有料;2.另一面有出库任务但出料口有料;3.另一面没有出库任务;
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_14_GetReels_Ready
);
if
(
MoveInfo
.
MoveParam
.
PosInfoBack
==
null
)
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.barcode}]取料完成,准备送往出料口"
);
else
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}][{MoveInfo.MoveParam.PosInfoBack.ToStr()}]取料完成,准备送往出料口"
);
break
;
case
StepEnum
.
SO_14_GetReels_Ready
:
//已出一边的料,切换到另一边
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_15_ToBufferArea
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:到暂存区出料口,"
+
$
"行走机构到进出料机构取放点P2,移栽升降轴到下暂存区放料高点P4/P10,移栽旋转轴到进出料暂存区取放料水平点P2[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
MoveAxis
.
AbsMove
(
MoveInfo
,
Config
.
MoveAxis_P2
,
Config
.
MoveAxis_P2_Speed
);
if
(
CheckASide
())
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P4
,
Config
.
Updown_P4_Speed
);
MiddleAxis_A
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_A_P2
,
Config
.
MiddleAxis_A_P2_Speed
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
AHorizontal_Check
,
IO_VALUE
.
HIGH
));
}
else
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P10
,
Config
.
Updown_P10_Speed
);
MiddleAxis_B
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_B_P2
,
Config
.
MiddleAxis_B_P2_Speed
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitIO
(
IO_Type
.
BHorizontal_Check
,
IO_VALUE
.
HIGH
));
}
break
;
case
StepEnum
.
SO_15_ToBufferArea
:
if
(!
OutDoorCheck
(
MoveInfo
.
MoveParam
))
{
SetWarnMsg
(
$
" 存储机构-出库 {MoveInfo.SLog}:出料口有其他料盘,无法放置该料盘[barcode={MoveInfo.MoveParam.PosInfo.barcode},PosSide={MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
}
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_16_VerifyBufferState
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:出料口无料盘确认,开始放料[barcode={MoveInfo.MoveParam.PosInfo.barcode}][{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
}
break
;
case
StepEnum
.
SO_16_VerifyBufferState
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_04_InOutToBuff
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:移栽X轴到进出料暂存区取放点P2[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
XAxis_To_P2
();
break
;
case
StepEnum
.
SO_17_InOutToBuff
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_18_PutReel
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:放料盘,移栽升降轴到下暂存区放料低点P5/P11,移栽压紧轴到压紧前点P2"
);
if
(
CheckASide
())
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P5
,
Config
.
Updown_P5_Speed
);
ComAxis_A
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P2
,
Config
.
ComAxis_A_P2_Speed
);
}
else
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
Config
.
Updown_P11
,
Config
.
Updown_P11_Speed
);
ComAxis_B
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P2
,
Config
.
ComAxis_B_P2_Speed
);
}
break
;
case
StepEnum
.
SO_18_PutReel
:
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_19_InOutBackFromBuff
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:[{MoveInfo.MoveParam.PosInfo.ToStr()}]出库完成,移栽X轴到待机点P1[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
//出库料盘放置成功,将料盘信息写入对应出料口
SetReelInfoToBuff
();
XAxis_To_P1
();
SetBoxStatus
(
DeviceStatus
.
OutStoreBoxEnd
,
RunStatus
.
Busy
);
break
;
case
StepEnum
.
SO_19_InOutBackFromBuff
:
if
(
MoveInfo
.
MoveParam
.
PosInfoBack
==
null
)
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_20_Finish
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:另一面料叉无料,出库结束[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
}
else
{
MoveInfo
.
NextMoveStep
(
StepEnum
.
SO_14_GetReels_Ready
);
LogInfo
(
$
"存储机构-出库 {MoveInfo.SLog}:另一面料叉有料,开始出库[{MoveInfo.MoveParam.PosInfo.PosSide}面]"
);
MoveInfo
.
WaitList
.
Add
(
WaitResultInfo
.
WaitTime
(
1000
));
MoveInfo
.
MoveParam
.
PosInfo
=
MoveInfo
.
MoveParam
.
PosInfoBack
.
ToCopy
();
MoveInfo
.
MoveParam
.
MoveP
=
new
LineMoveP
(
Config
,
MoveInfo
.
MoveParam
.
PosInfoBack
.
PosId
);
MoveInfo
.
MoveParam
.
PosInfoBack
=
null
;
}
break
;
case
StepEnum
.
SO_20_Finish
:
SetBoxStatus
(
DeviceStatus
.
StoreOnline
,
RunStatus
.
Runing
);
MoveInfo
.
EndMove
();
AutoInout
.
InOutEndProcess
(
this
,
MoveType
.
OutStore
);
break
;
}
}
#
endregion
}
}
source/DeviceLibrary/storeBean/boxBean/BoxEquip_Partial.cs
查看文件 @
93b2086
using
CodeLibrary
;
using
CodeLibrary
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
...
...
@@ -16,19 +16,246 @@ namespace OnlineStore.DeviceLibrary
partial
class
BoxEquip
{
protected
override
bool
CheckWaitResult
(
DeviceMoveInfo
moveInfo
,
WaitResultInfo
wait
)
{
{
return
false
;
}
/// <summary>
/// 检查当前面是否A面
/// </summary>
/// <returns></returns>
private
bool
CheckASide
()
{
if
(
MoveInfo
.
MoveParam
.
PosInfo
.
PosSide
.
Equals
(
"A"
))
return
true
;
return
false
;
}
/// <summary>
/// 检查当前面是否A面
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
private
bool
CheckASide
(
InOutParam
param
)
{
if
(
param
.
PosInfo
.
PosSide
.
Equals
(
"A"
))
return
true
;
return
false
;
}
#
region
料屉抽取
/// <summary>
/// 料斗拉取进出轴到料屉库位点P3/P5
/// </summary>
private
void
PullAxis_Inout_To_P3_P5
()
{
if
(
CheckASide
())
{
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Inout_P3_P5
,
Config
.
PullAxis_Inout_P3_Speed
);
}
else
{
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Inout_P3_P5
,
Config
.
PullAxis_Inout_P5_Speed
);
}
}
private
void
UpdownAxisToP7_P13
()
{
if
(
CheckASide
())
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P7_P13
,
Config
.
Updown_P7_Speed
);
}
else
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P7_P13
,
Config
.
Updown_P13_Speed
);
}
}
/// <summary>
/// 到抽屉提取点,料斗拉取进出轴到P2(A/B面料屉提取点)
/// </summary>
private
void
ToTray
()
{
if
(
CheckASide
())
{
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Inout_P2_P4
,
Config
.
PullAxis_Inout_P2_Speed
);
}
else
{
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Inout_P2_P4
,
Config
.
PullAxis_Inout_P4_Speed
);
}
}
/// <summary>
/// AB移栽压紧轴到压紧前点P2
/// </summary>
private
void
ComAxis_To_P2
()
{
if
(
CheckASide
())
{
ComAxis_A
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P2
,
Config
.
ComAxis_A_P2_Speed
);
}
else
{
ComAxis_B
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P2
,
Config
.
ComAxis_B_P2_Speed
);
}
}
/// <summary>
/// AB移栽压紧轴到压紧点P3
/// </summary>
private
void
ComAxis_To_P3
()
{
if
(
CheckASide
())
{
ComAxis_A
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P3
,
Config
.
ComAxis_A_P3_Speed
);
}
else
{
ComAxis_B
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
ComAxis_AB_P3
,
Config
.
ComAxis_B_P3_Speed
);
}
}
/// <summary>
/// 提升抽屉,料斗拉取升降轴到料屉提取高点P3
/// </summary>
private
void
PullAxis_UpdownToP3
()
{
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
PullAxis_Updown_P3
,
Config
.
PullAxis_Updown_P3_Speed
);
}
/// <summary>
/// 移栽升降轴到料屉上方过渡点P6/P12
/// </summary>
private
void
UpdownAxisTo_P6_P12
()
{
if
(
CheckASide
())
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P6_P12
,
Config
.
Updown_P6_Speed
);
}
else
{
UpdownAxis
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
Updown_P6_P12
,
Config
.
Updown_P12_Speed
);
}
}
/// <summary>
/// AB面移栽旋转轴到料屉库位垂直取放料点P3
/// </summary>
private
void
MiddleAxis_To_P3
()
{
if
(
CheckASide
())
{
MiddleAxis_A
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_A_P3
,
Config
.
MiddleAxis_A_P3_Speed
);
}
else
{
MiddleAxis_B
.
AbsMove
(
MoveInfo
,
Config
.
MiddleAxis_B_P3
,
Config
.
MiddleAxis_B_P3_Speed
);
}
}
/// <summary>
/// AB面移栽X轴到进出料暂存区取放点P2
/// </summary>
private
void
XAxis_To_P2
()
{
if
(
CheckASide
())
{
XAxis_A
.
AbsMove
(
MoveInfo
,
Config
.
XAxis_A_P2
,
Config
.
XAxis_A_P2_Speed
);
}
else
{
XAxis_B
.
AbsMove
(
MoveInfo
,
Config
.
XAxis_B_P2
,
Config
.
XAxis_B_P2_Speed
);
}
}
/// <summary>
/// AB面移栽X轴到料屉库位取放料点P3
/// </summary>
private
void
XAxis_To_P3
()
{
if
(
CheckASide
())
{
XAxis_A
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
XAxis_AB_P3
,
Config
.
XAxis_A_P3_Speed
);
}
else
{
XAxis_B
.
AbsMove
(
MoveInfo
,
MoveInfo
.
MoveParam
.
MoveP
.
XAxis_AB_P3
,
Config
.
XAxis_B_P3_Speed
);
}
}
/// <summary>
/// AB面移栽X轴到待机点
/// </summary>
private
void
XAxis_To_P1
()
{
if
(
CheckASide
())
{
XAxis_A
.
AbsMove
(
MoveInfo
,
Config
.
XAxis_A_P1
,
Config
.
XAxis_A_P1_Speed
);
}
else
{
XAxis_B
.
AbsMove
(
MoveInfo
,
Config
.
XAxis_B_P1
,
Config
.
XAxis_B_P3_Speed
);
}
}
#
endregion
/// <summary>
/// 设置料仓状态
///1=设备联机(正常就绪)(入库后,BOX恢复原始状态)(出库后,移载装置恢复原始状态),
///2=急停,3=故障,4=警告,5=调试
/// 6=入库执行中,7=入仓完成,8=入仓失败
/// 9=出库执行,10=出仓完成,11=出库失败
/// </summary>
private
void
SetBoxStatus
(
DeviceStatus
deviceStatus
,
RunStatus
runStatus
)
{
this
.
deviceStatus
=
deviceStatus
;
this
.
runStatus
=
runStatus
;
}
private
void
PullAxisToP1
(
string
InOutType
=
"入库"
)
{
if
(!
PullAxis_Updown
.
IsInPosition
(
Config
.
PullAxis_Updown_P1
))
{
PullAxis_Updown
.
AbsMove
(
MoveInfo
,
Config
.
PullAxis_Updown_P1
,
Config
.
PullAxis_Updown_P1_Speed
);
}
if
(!
PullAxis_Inout
.
IsInPosition
(
Config
.
PullAxis_Inout_P1
))
{
PullAxis_Inout
.
AbsMove
(
MoveInfo
,
Config
.
PullAxis_Inout_P1
,
Config
.
PullAxis_Inout_P1_Speed
);
}
LogInfo
(
$
"存储机构-{InOutType} {MoveInfo.SLog}:料屉拉取升降轴、料屉拉取进出轴到待机点P1"
);
}
#
region
入库
private
DateTime
startInStoreTime
=
DateTime
.
Now
;
public
override
bool
StartInstore
(
InOutParam
param
)
{
if
(
isInSuddenDown
||
isNoAirpressure_Check
||
(!
runStatus
.
Equals
(
RunStatus
.
Runing
))
||
(!
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
)))
{
LogUtil
.
error
(
Name
+
" 启动入库出错,忙碌或报警中 ,storeStatus="
+
runStatus
+
",MoveType="
+
MoveInfo
.
MoveType
+
",isInSuddenDown="
+
isInSuddenDown
+
",isNoAirpressure_Check="
+
isNoAirpressure_Check
);
return
false
;
}
if
(!
PreInStoreCheck
(
param
))
{
return
false
;
}
startInStoreTime
=
DateTime
.
Now
;
LogInfo
(
" 启动入库【"
+
param
.
PosInfo
.
ToStr
()
+
"】 "
);
param
.
MoveP
=
new
LineMoveP
(
Config
,
param
.
PosInfo
.
PosId
);
LogInfo
(
"LoadInoutParam:"
+
JsonHelper
.
SerializeObject
(
param
.
MoveP
));
MoveInfo
.
NewMove
(
MoveType
.
InStore
,
param
);
SetBoxStatus
(
DeviceStatus
.
InStoreExecute
,
RunStatus
.
Busy
);
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_00_StartInstore
);
return
true
;
}
private
bool
InDoorCheck
(
InOutParam
param
)
{
if
(
CheckASide
(
param
))
{
if
(
IOValue
(
IO_Type
.
UpperArea_Check_A
).
Equals
(
IO_VALUE
.
HIGH
)
&&
param
.
PosInfo
!=
null
)
{
return
true
;
}
}
else
{
if
(
IOValue
(
IO_Type
.
UpperArea_Check_B
).
Equals
(
IO_VALUE
.
HIGH
)
&&
param
.
PosInfo
!=
null
)
{
return
true
;
}
}
return
false
;
}
protected
override
void
InstoreProcess
()
{
if
(
MoveInfo
.
IsInWait
)
...
...
@@ -38,16 +265,113 @@ namespace OnlineStore.DeviceLibrary
if
(
MoveInfo
.
IsInWait
)
{
return
;
}
}
InstoreExecute
();
}
#
endregion
#
region
出库
public
override
bool
StartOutstore
(
InOutParam
param
)
/// <summary>
/// 出库前验证
/// </summary>
/// <param name="param"></param>
/// <returns></returns>
private
bool
OutDoorCheck
(
InOutParam
param
)
{
if
(
param
.
PosInfo
.
PosSide
.
Equals
(
"A"
))
//A面
{
if
(
CheckAOutDoor
())
{
return
true
;
}
}
else
if
(
param
.
PosInfo
.
PosSide
.
Equals
(
"B"
))
//B面
{
if
(
CheckBOutDoor
())
{
return
true
;
}
}
return
false
;
}
/// <summary>
/// 检查A出料口状态
/// </summary>
/// <returns>true:A口可以出料</returns>
private
bool
CheckAOutDoor
()
{
if
(
BufferDataManager
.
AOutStoreInfo
==
null
&&
IOValue
(
IO_Type
.
UnderArea_Check_A
).
Equals
(
IO_VALUE
.
LOW
))
{
return
true
;
}
return
false
;
}
/// <summary>
/// 检查B出料口状态
/// </summary>
/// <returns>true:B口可以出料</returns>
private
bool
CheckBOutDoor
()
{
if
(
BufferDataManager
.
BOutStoreInfo
==
null
&&
IOValue
(
IO_Type
.
UnderArea_Check_B
).
Equals
(
IO_VALUE
.
LOW
))
{
return
true
;
}
return
false
;
}
public
void
StartExecuctOut
(
InOutParam
param
)
{
bool
result
=
false
;
if
(
OutDoorCheck
(
param
))
{
result
=
StartOutstore
(
param
);
}
if
(!
result
)
{
lock
(
waitOutStoreList
)
{
LogInfo
(
" 执行出库【"
+
param
.
PosInfo
.
ToStr
()
+
"】失败,加入等待队列"
);
if
(
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
OutStore
)
&&
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
.
Equals
(
param
.
PosInfo
.
PosId
))
{
LogUtil
.
error
(
Name
+
" 出库命令【"
+
param
.
PosInfo
.
ToStr
()
+
"】重复,【"
+
MoveInfo
.
MoveParam
.
PosInfo
.
PosId
+
"】出库执行中"
);
return
;
}
List
<
InOutParam
>
reviceList
=
new
List
<
InOutParam
>(
waitOutStoreList
);
reviceList
=
(
from
m
in
reviceList
where
m
.
PosInfo
.
PosId
.
Equals
(
param
.
PosInfo
.
PosId
)
select
m
).
ToList
<
InOutParam
>();
if
(
reviceList
.
Count
==
0
)
{
waitOutStoreList
.
Enqueue
(
param
);
}
}
}
}
private
DateTime
startOutStoreTime
=
DateTime
.
Now
;
public
override
bool
StartOutstore
(
InOutParam
param
)
{
if
(
isInSuddenDown
||
isNoAirpressure_Check
||
!
runStatus
.
Equals
(
RunStatus
.
Runing
)
||
!
MoveInfo
.
MoveType
.
Equals
(
MoveType
.
None
))
{
SetWarnMsg
(
Name
+
" 启动出库【"
+
param
.
PosInfo
.
ToStr
()
+
"】失败,忙碌或报警中 ,storeStatus:"
+
runStatus
+
",MoveType:"
+
MoveInfo
.
MoveType
+
",isInSuddenDown:"
+
isInSuddenDown
+
",isNoAirCheck:"
+
isNoAirpressure_Check
);
return
false
;
}
if
(!
param
.
PosInfo
.
CheckPosition
())
{
SetWarnMsg
(
Name
+
" 启动出库【"
+
param
.
PosInfo
.
ToStr
()
+
"】出错,找不到库位信息"
);
return
false
;
}
startOutStoreTime
=
DateTime
.
Now
;
param
.
MoveP
=
new
LineMoveP
(
Config
,
param
.
PosInfo
.
PosId
);
SetBoxStatus
(
DeviceStatus
.
OutStoreExecute
,
RunStatus
.
Busy
);
MoveInfo
.
NewMove
(
MoveType
.
OutStore
,
param
);
LogInfo
(
"启动出库【"
+
param
.
PosInfo
.
ToStr
()
+
"】 "
);
LogInfo
(
"LoadInoutParam:"
+
JsonHelper
.
SerializeObject
(
param
.
MoveP
));
MoveInfo
.
NextMoveStep
(
StepEnum
.
SI_01_PullAxis_Ready
);
return
true
;
}
protected
override
void
OutstoreProcess
()
{
...
...
@@ -59,6 +383,7 @@ namespace OnlineStore.DeviceLibrary
{
return
;
}
OutstoreExecute
();
}
#
endregion
...
...
source/LoadCVSLibrary/position/BoxPosition.cs
查看文件 @
93b2086
...
...
@@ -16,6 +16,11 @@ namespace OnlineStore.LoadCSVLibrary
public
int
StoreId
{
get
;
set
;
}
/// <summary>
/// PRO,0,行走机构_存储库位取放点位P3,MoveAxis_P3,100,,,,,,,,,,,,
/// </summary>
[
CSVAttribute
(
"存储库位取放点位P3"
)]
public
int
MoveAxis_P3
{
get
;
set
;
}
/// <summary>
/// 料斗进出轴料屉提取点
/// P2 对应 A面
/// P4 对应 B面
...
...
@@ -72,7 +77,7 @@ namespace OnlineStore.LoadCSVLibrary
[
CSVAttribute
(
"AB移栽压紧轴压紧点P3"
)]
public
int
ComAxis_AB_P3
{
get
;
set
;
}
public
static
bool
CheckPosition
(
XLR
Position
position
,
BoxEquip_Config
Config
)
public
static
bool
CheckPosition
(
Box
Position
position
,
BoxEquip_Config
Config
)
{
try
{
...
...
source/LoadCVSLibrary/storeConfig/config/BoxEquip_Config.cs
查看文件 @
93b2086
...
...
@@ -92,39 +92,10 @@ namespace OnlineStore.LoadCSVLibrary
public
int
MoveAxis_P2
{
get
;
set
;
}
/// <summary>
/// PRO,0,行走机构_存储库位取放点位P3,MoveAxis_P3,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MoveAxis_P3"
)]
public
int
MoveAxis_P3
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取进出轴_待机点P1,PullAxis_Inout_P1,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Inout_P1"
)]
public
int
PullAxis_Inout_P1
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取进出轴_A面料屉提取点P2,PullAxis_Inout_P2,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Inout_P2"
)]
public
int
PullAxis_Inout_P2
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取进出轴_A面料屉库位点P3,PullAxis_Inout_P3,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Inout_P3"
)]
public
int
PullAxis_Inout_P3
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取进出轴_B面料屉提取点P4,PullAxis_Inout_P4,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Inout_P4"
)]
public
int
PullAxis_Inout_P4
{
get
;
set
;
}
/// <summary>
///PRO,0,料斗拉取进出轴_B面料屉库位点P5,PullAxis_Inout_P5,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Inout_P5"
)]
public
int
PullAxis_Inout_P5
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_待机点P1,Updown_P1,100,,,,,,,,,,,,
...
...
@@ -157,18 +128,6 @@ namespace OnlineStore.LoadCSVLibrary
public
int
Updown_P5
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_A面料屉上方过渡点P6,Updown_P6,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P6"
)]
public
int
Updown_P6
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_A面料屉取放点P7,Updown_P7,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P7"
)]
public
int
Updown_P7
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_B上暂存区取料高点P8,Updown_P8,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P8"
)]
...
...
@@ -193,18 +152,6 @@ namespace OnlineStore.LoadCSVLibrary
public
int
Updown_P11
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_B面料屉上方过渡点P12,Updown_P12,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P12"
)]
public
int
Updown_P12
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_B面料屉取放点P13,Updown_P13,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P13"
)]
public
int
Updown_P13
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取升降轴_待机点P1,PullAxis_Updown_P1,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Updown_P1"
)]
...
...
@@ -217,18 +164,6 @@ namespace OnlineStore.LoadCSVLibrary
public
int
PullAxis_Updown_P2
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取升降轴_料屉提取高点P3,PullAxis_Updown_P3,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Updown_P3"
)]
public
int
PullAxis_Updown_P3
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取升降轴_料屉提取低点P4,PullAxis_Updown_P4,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Updown_P4"
)]
public
int
PullAxis_Updown_P4
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽X轴_待机点P1,XAxis_A_P1,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"XAxis_A_P1"
)]
...
...
@@ -241,12 +176,6 @@ namespace OnlineStore.LoadCSVLibrary
public
int
XAxis_A_P2
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽X轴_A面料屉库位取放料点P3,XAxis_A_P3,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"XAxis_A_P3"
)]
public
int
XAxis_A_P3
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽旋转轴_待机点P1,MiddleAxis_A_P1,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_A_P1"
)]
...
...
@@ -269,19 +198,6 @@ namespace OnlineStore.LoadCSVLibrary
/// </summary>
[
ConfigProAttribute
(
"ComAxis_A_P1"
)]
public
int
ComAxis_A_P1
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽压紧轴_压紧前点P2,ComAxis_A_P2,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"ComAxis_A_P2"
)]
public
int
ComAxis_A_P2
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽压紧轴_压紧点P3,ComAxis_A_P3,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"ComAxis_A_P3"
)]
public
int
ComAxis_A_P3
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽X轴_待机点P1,XAxis_B_P1,100,,,,,,,,,,,,
/// </summary>
...
...
@@ -295,12 +211,6 @@ namespace OnlineStore.LoadCSVLibrary
public
int
XAxis_B_P2
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽X轴_B面料屉库位取放料点P3,XAxis_B_P3,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"XAxis_B_P3"
)]
public
int
XAxis_B_P3
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽旋转轴_待机点P1,MiddleAxis_B_P1,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_B_P1"
)]
...
...
@@ -324,18 +234,6 @@ namespace OnlineStore.LoadCSVLibrary
[
ConfigProAttribute
(
"ComAxis_B_P1"
)]
public
int
ComAxis_B_P1
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽压紧轴_压紧前点P2,ComAxis_B_P2,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"ComAxis_B_P2"
)]
public
int
ComAxis_B_P2
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽压紧轴_压紧点P3,ComAxis_B_P3,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"ComAxis_B_P3"
)]
public
int
ComAxComAxis_B_P3is_B_P1
{
get
;
set
;
}
#
endregion
#
region
轴移动速度信息
...
...
source/XLRStoreClient/App.config
查看文件 @
93b2086
...
...
@@ -19,7 +19,7 @@
<
add
key
=
"ConfigPath_XLRStore"
value
=
"\Config\Config_Store.csv"
/>
<
add
key
=
"ConfigPath_Input"
value
=
"\Config\Config_InputEquip.csv"
/>
<
add
key
=
"ConfigPath_Box"
value
=
"\Config\Config_BoxEquip.csv"
/>
<
add
key
=
"ConfigPath_BoxPosition"
value
=
"\Config\linePositions.csv"
/>
<
add
key
=
"ConfigPath_TrayList"
value
=
"\LineConfig\TrayList.data"
/>
<
add
key
=
"Line_CID"
value
=
"so827"
/>
<!--
end
one
store
config
-->
...
...
source/XLRStoreClient/FrmBase.Designer.cs
查看文件 @
93b2086
namespace
OnlineStore.XLRStore
{
partial
class
FrmBase
internal
partial
class
FrmBase
{
/// <summary>
/// Required designer variable.
...
...
@@ -26,7 +26,7 @@
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private
void
InitializeComponent
()
internal
void
InitializeComponent
()
{
System
.
ComponentModel
.
ComponentResourceManager
resources
=
new
System
.
ComponentModel
.
ComponentResourceManager
(
typeof
(
FrmBase
));
this
.
SuspendLayout
();
...
...
source/XLRStoreClient/FrmXLRStore.Designer.cs
查看文件 @
93b2086
...
...
@@ -449,7 +449,7 @@
this
.
MainMenuStrip
=
this
.
menuStrip1
;
this
.
Name
=
"FrmXLRStore"
;
this
.
Opacity
=
0.1D
;
this
.
Text
=
"
流水线
系统"
;
this
.
Text
=
"
方仓
系统"
;
this
.
WindowState
=
System
.
Windows
.
Forms
.
FormWindowState
.
Maximized
;
this
.
FormClosing
+=
new
System
.
Windows
.
Forms
.
FormClosingEventHandler
(
this
.
FrmMain_FormClosing
);
this
.
FormClosed
+=
new
System
.
Windows
.
Forms
.
FormClosedEventHandler
(
this
.
FrmLineStore_FormClosed
);
...
...
source/XLRStoreClient/Properties/AssemblyInfo.cs
查看文件 @
93b2086
...
...
@@ -5,11 +5,11 @@ using System.Runtime.InteropServices;
// 有关程序集的常规信息通过以下
// 特性集控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("
AssemblyLin
e")]
[assembly: AssemblyTitle("
XLRStor
e")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("
AssemblyLin
e")]
[assembly: AssemblyProduct("
XLRStor
e")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
...
...
source/XLRStoreClient/XLRStore.csproj
查看文件 @
93b2086
...
...
@@ -88,6 +88,12 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="boxForm\FrmAxisMove.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="boxForm\FrmAxisMove.Designer.cs">
<DependentUpon>FrmAxisMove.cs</DependentUpon>
</Compile>
<Compile Include="FrmBase.cs">
<SubType>Form</SubType>
</Compile>
...
...
@@ -169,6 +175,9 @@
<Compile Include="useControl\EquipControl.Designer.cs">
<DependentUpon>EquipControl.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="boxForm\FrmAxisMove.resx">
<DependentUpon>FrmAxisMove.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmBase.resx">
<DependentUpon>FrmBase.cs</DependentUpon>
</EmbeddedResource>
...
...
source/XLRStoreClient/boxForm/FrmAxisDebug.Designer.cs
0 → 100644
查看文件 @
93b2086
namespace
OnlineStore.XLRStore
{
partial
class
FrmAxisDebug
{
/// <summary>
/// Required designer variable.
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected
override
void
Dispose
(
bool
disposing
)
{
if
(
disposing
&&
(
components
!=
null
))
{
components
.
Dispose
();
}
base
.
Dispose
(
disposing
);
}
#
region
Windows
Form
Designer
generated
code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private
void
InitializeComponent
()
{
this
.
components
=
new
System
.
ComponentModel
.
Container
();
System
.
ComponentModel
.
ComponentResourceManager
resources
=
new
System
.
ComponentModel
.
ComponentResourceManager
(
typeof
(
FrmAxisDebug
));
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label3
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnMiddleMove
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtMiddleSpeed
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtUpDownSpeed
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtInOutSpeed
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnUpDownMove
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnInOutMove
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnInOutMovej
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnUpDownMovej
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnMiddleMovej
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
button1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtInOutPosition
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtUpdownPosition
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtMiddlePosition
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label5
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label6
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
timer1
=
new
System
.
Windows
.
Forms
.
Timer
(
this
.
components
);
this
.
txtComPosition
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnComMovej
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnComMove
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtComSpeed
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label4
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
lblSpeed
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
trackBar1
=
new
System
.
Windows
.
Forms
.
TrackBar
();
this
.
btnMCopy
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnUCopy
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnICopy
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnCCopy
=
new
System
.
Windows
.
Forms
.
Button
();
((
System
.
ComponentModel
.
ISupportInitialize
)(
this
.
trackBar1
)).
BeginInit
();
this
.
SuspendLayout
();
//
// label1
//
this
.
label1
.
AutoSize
=
true
;
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
39
,
79
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
92
,
17
);
this
.
label1
.
TabIndex
=
0
;
this
.
label1
.
Text
=
"(轴一)旋转轴"
;
//
// label2
//
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
39
,
136
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
92
,
17
);
this
.
label2
.
TabIndex
=
1
;
this
.
label2
.
Text
=
"(轴二)升降轴"
;
//
// label3
//
this
.
label3
.
AutoSize
=
true
;
this
.
label3
.
Location
=
new
System
.
Drawing
.
Point
(
39
,
194
);
this
.
label3
.
Name
=
"label3"
;
this
.
label3
.
Size
=
new
System
.
Drawing
.
Size
(
92
,
17
);
this
.
label3
.
TabIndex
=
2
;
this
.
label3
.
Text
=
"(轴三)进出轴"
;
//
// btnMiddleMove
//
this
.
btnMiddleMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnMiddleMove
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnMiddleMove
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnMiddleMove
.
Location
=
new
System
.
Drawing
.
Point
(
246
,
65
);
this
.
btnMiddleMove
.
Name
=
"btnMiddleMove"
;
this
.
btnMiddleMove
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
45
);
this
.
btnMiddleMove
.
TabIndex
=
4
;
this
.
btnMiddleMove
.
Text
=
"旋转轴+(顺时针)"
;
this
.
btnMiddleMove
.
UseVisualStyleBackColor
=
false
;
this
.
btnMiddleMove
.
MouseDown
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnMiddleMove_MouseDown
);
this
.
btnMiddleMove
.
MouseUp
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnMiddleMove_MouseUp
);
//
// txtMiddleSpeed
//
this
.
txtMiddleSpeed
.
Enabled
=
false
;
this
.
txtMiddleSpeed
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtMiddleSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
140
,
74
);
this
.
txtMiddleSpeed
.
MaxLength
=
10
;
this
.
txtMiddleSpeed
.
Name
=
"txtMiddleSpeed"
;
this
.
txtMiddleSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
97
,
26
);
this
.
txtMiddleSpeed
.
TabIndex
=
5
;
//
// txtUpDownSpeed
//
this
.
txtUpDownSpeed
.
Enabled
=
false
;
this
.
txtUpDownSpeed
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtUpDownSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
140
,
131
);
this
.
txtUpDownSpeed
.
MaxLength
=
10
;
this
.
txtUpDownSpeed
.
Name
=
"txtUpDownSpeed"
;
this
.
txtUpDownSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
97
,
26
);
this
.
txtUpDownSpeed
.
TabIndex
=
6
;
//
// txtInOutSpeed
//
this
.
txtInOutSpeed
.
Enabled
=
false
;
this
.
txtInOutSpeed
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtInOutSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
140
,
189
);
this
.
txtInOutSpeed
.
MaxLength
=
10
;
this
.
txtInOutSpeed
.
Name
=
"txtInOutSpeed"
;
this
.
txtInOutSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
97
,
26
);
this
.
txtInOutSpeed
.
TabIndex
=
7
;
//
// btnUpDownMove
//
this
.
btnUpDownMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnUpDownMove
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnUpDownMove
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnUpDownMove
.
Location
=
new
System
.
Drawing
.
Point
(
246
,
122
);
this
.
btnUpDownMove
.
Name
=
"btnUpDownMove"
;
this
.
btnUpDownMove
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
45
);
this
.
btnUpDownMove
.
TabIndex
=
9
;
this
.
btnUpDownMove
.
Text
=
"升降轴+(上升)"
;
this
.
btnUpDownMove
.
UseVisualStyleBackColor
=
false
;
this
.
btnUpDownMove
.
MouseDown
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnUpDownMove_MouseDown
);
this
.
btnUpDownMove
.
MouseUp
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnUpDownMove_MouseUp
);
//
// btnInOutMove
//
this
.
btnInOutMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnInOutMove
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnInOutMove
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnInOutMove
.
Location
=
new
System
.
Drawing
.
Point
(
246
,
180
);
this
.
btnInOutMove
.
Name
=
"btnInOutMove"
;
this
.
btnInOutMove
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
45
);
this
.
btnInOutMove
.
TabIndex
=
10
;
this
.
btnInOutMove
.
Text
=
"进出轴+(前进)"
;
this
.
btnInOutMove
.
UseVisualStyleBackColor
=
false
;
this
.
btnInOutMove
.
MouseDown
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnInOutMove_MouseDown
);
this
.
btnInOutMove
.
MouseUp
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnInOutMove_MouseUp
);
//
// btnInOutMovej
//
this
.
btnInOutMovej
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnInOutMovej
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnInOutMovej
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnInOutMovej
.
Location
=
new
System
.
Drawing
.
Point
(
395
,
180
);
this
.
btnInOutMovej
.
Name
=
"btnInOutMovej"
;
this
.
btnInOutMovej
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
45
);
this
.
btnInOutMovej
.
TabIndex
=
14
;
this
.
btnInOutMovej
.
Text
=
"进出轴-(后退)"
;
this
.
btnInOutMovej
.
UseVisualStyleBackColor
=
false
;
this
.
btnInOutMovej
.
MouseDown
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnInOutMovej_MouseDown
);
this
.
btnInOutMovej
.
MouseUp
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnInOutMovej_MouseUp
);
//
// btnUpDownMovej
//
this
.
btnUpDownMovej
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnUpDownMovej
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnUpDownMovej
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnUpDownMovej
.
Location
=
new
System
.
Drawing
.
Point
(
395
,
122
);
this
.
btnUpDownMovej
.
Name
=
"btnUpDownMovej"
;
this
.
btnUpDownMovej
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
45
);
this
.
btnUpDownMovej
.
TabIndex
=
13
;
this
.
btnUpDownMovej
.
Text
=
"升降轴-(下降)"
;
this
.
btnUpDownMovej
.
UseVisualStyleBackColor
=
false
;
this
.
btnUpDownMovej
.
MouseDown
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnUpDownMovej_MouseDown
);
this
.
btnUpDownMovej
.
MouseUp
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnUpDownMovej_MouseUp
);
//
// btnMiddleMovej
//
this
.
btnMiddleMovej
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnMiddleMovej
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnMiddleMovej
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnMiddleMovej
.
Location
=
new
System
.
Drawing
.
Point
(
395
,
65
);
this
.
btnMiddleMovej
.
Name
=
"btnMiddleMovej"
;
this
.
btnMiddleMovej
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
45
);
this
.
btnMiddleMovej
.
TabIndex
=
12
;
this
.
btnMiddleMovej
.
Text
=
"旋转轴-(逆时针)"
;
this
.
btnMiddleMovej
.
UseVisualStyleBackColor
=
false
;
this
.
btnMiddleMovej
.
MouseDown
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnMiddleMovej_MouseDown
);
this
.
btnMiddleMovej
.
MouseUp
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnMiddleMovej_MouseUp
);
//
// button1
//
this
.
button1
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
button1
.
Location
=
new
System
.
Drawing
.
Point
(
569
,
347
);
this
.
button1
.
Name
=
"button1"
;
this
.
button1
.
Size
=
new
System
.
Drawing
.
Size
(
126
,
37
);
this
.
button1
.
TabIndex
=
16
;
this
.
button1
.
Text
=
"关闭"
;
this
.
button1
.
UseVisualStyleBackColor
=
true
;
this
.
button1
.
Click
+=
new
System
.
EventHandler
(
this
.
button1_Click
);
//
// txtInOutPosition
//
this
.
txtInOutPosition
.
Enabled
=
false
;
this
.
txtInOutPosition
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtInOutPosition
.
Location
=
new
System
.
Drawing
.
Point
(
544
,
189
);
this
.
txtInOutPosition
.
MaxLength
=
20
;
this
.
txtInOutPosition
.
Name
=
"txtInOutPosition"
;
this
.
txtInOutPosition
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
26
);
this
.
txtInOutPosition
.
TabIndex
=
19
;
//
// txtUpdownPosition
//
this
.
txtUpdownPosition
.
Enabled
=
false
;
this
.
txtUpdownPosition
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtUpdownPosition
.
Location
=
new
System
.
Drawing
.
Point
(
544
,
131
);
this
.
txtUpdownPosition
.
MaxLength
=
20
;
this
.
txtUpdownPosition
.
Name
=
"txtUpdownPosition"
;
this
.
txtUpdownPosition
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
26
);
this
.
txtUpdownPosition
.
TabIndex
=
18
;
//
// txtMiddlePosition
//
this
.
txtMiddlePosition
.
Enabled
=
false
;
this
.
txtMiddlePosition
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtMiddlePosition
.
Location
=
new
System
.
Drawing
.
Point
(
544
,
74
);
this
.
txtMiddlePosition
.
MaxLength
=
20
;
this
.
txtMiddlePosition
.
Name
=
"txtMiddlePosition"
;
this
.
txtMiddlePosition
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
26
);
this
.
txtMiddlePosition
.
TabIndex
=
17
;
//
// label5
//
this
.
label5
.
AutoSize
=
true
;
this
.
label5
.
Location
=
new
System
.
Drawing
.
Point
(
172
,
31
);
this
.
label5
.
Name
=
"label5"
;
this
.
label5
.
Size
=
new
System
.
Drawing
.
Size
(
56
,
17
);
this
.
label5
.
TabIndex
=
20
;
this
.
label5
.
Text
=
"点动速度"
;
//
// label6
//
this
.
label6
.
AutoSize
=
true
;
this
.
label6
.
Location
=
new
System
.
Drawing
.
Point
(
566
,
31
);
this
.
label6
.
Name
=
"label6"
;
this
.
label6
.
Size
=
new
System
.
Drawing
.
Size
(
56
,
17
);
this
.
label6
.
TabIndex
=
21
;
this
.
label6
.
Text
=
"实时坐标"
;
//
// timer1
//
this
.
timer1
.
Interval
=
2000
;
this
.
timer1
.
Tick
+=
new
System
.
EventHandler
(
this
.
timer1_Tick
);
//
// txtComPosition
//
this
.
txtComPosition
.
Enabled
=
false
;
this
.
txtComPosition
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtComPosition
.
Location
=
new
System
.
Drawing
.
Point
(
544
,
249
);
this
.
txtComPosition
.
MaxLength
=
20
;
this
.
txtComPosition
.
Name
=
"txtComPosition"
;
this
.
txtComPosition
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
26
);
this
.
txtComPosition
.
TabIndex
=
26
;
//
// btnComMovej
//
this
.
btnComMovej
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnComMovej
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnComMovej
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnComMovej
.
Location
=
new
System
.
Drawing
.
Point
(
395
,
240
);
this
.
btnComMovej
.
Name
=
"btnComMovej"
;
this
.
btnComMovej
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
45
);
this
.
btnComMovej
.
TabIndex
=
25
;
this
.
btnComMovej
.
Text
=
"压紧轴-(向上)"
;
this
.
btnComMovej
.
UseVisualStyleBackColor
=
false
;
this
.
btnComMovej
.
MouseDown
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnComMovej_MouseDown
);
this
.
btnComMovej
.
MouseUp
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnComMovej_MouseUp
);
//
// btnComMove
//
this
.
btnComMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
this
.
btnComMove
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnComMove
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnComMove
.
Location
=
new
System
.
Drawing
.
Point
(
246
,
240
);
this
.
btnComMove
.
Name
=
"btnComMove"
;
this
.
btnComMove
.
Size
=
new
System
.
Drawing
.
Size
(
140
,
45
);
this
.
btnComMove
.
TabIndex
=
24
;
this
.
btnComMove
.
Text
=
"压紧轴+(向下)"
;
this
.
btnComMove
.
UseVisualStyleBackColor
=
false
;
this
.
btnComMove
.
MouseDown
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnComMove_MouseDown
);
this
.
btnComMove
.
MouseUp
+=
new
System
.
Windows
.
Forms
.
MouseEventHandler
(
this
.
btnComMove_MouseUp
);
//
// txtComSpeed
//
this
.
txtComSpeed
.
Enabled
=
false
;
this
.
txtComSpeed
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtComSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
140
,
249
);
this
.
txtComSpeed
.
MaxLength
=
10
;
this
.
txtComSpeed
.
Name
=
"txtComSpeed"
;
this
.
txtComSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
97
,
26
);
this
.
txtComSpeed
.
TabIndex
=
23
;
//
// label4
//
this
.
label4
.
AutoSize
=
true
;
this
.
label4
.
Location
=
new
System
.
Drawing
.
Point
(
39
,
254
);
this
.
label4
.
Name
=
"label4"
;
this
.
label4
.
Size
=
new
System
.
Drawing
.
Size
(
92
,
17
);
this
.
label4
.
TabIndex
=
22
;
this
.
label4
.
Text
=
"(轴四)压紧轴"
;
//
// lblSpeed
//
this
.
lblSpeed
.
AutoSize
=
true
;
this
.
lblSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
313
,
377
);
this
.
lblSpeed
.
Name
=
"lblSpeed"
;
this
.
lblSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
142
,
17
);
this
.
lblSpeed
.
TabIndex
=
30
;
this
.
lblSpeed
.
Text
=
"点动速度=0.2倍目标速度"
;
//
// trackBar1
//
this
.
trackBar1
.
LargeChange
=
2
;
this
.
trackBar1
.
Location
=
new
System
.
Drawing
.
Point
(
42
,
328
);
this
.
trackBar1
.
Minimum
=
1
;
this
.
trackBar1
.
Name
=
"trackBar1"
;
this
.
trackBar1
.
Size
=
new
System
.
Drawing
.
Size
(
366
,
45
);
this
.
trackBar1
.
TabIndex
=
29
;
this
.
trackBar1
.
Value
=
2
;
this
.
trackBar1
.
ValueChanged
+=
new
System
.
EventHandler
(
this
.
trackBar1_ValueChanged
);
//
// btnMCopy
//
this
.
btnMCopy
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnMCopy
.
Location
=
new
System
.
Drawing
.
Point
(
661
,
73
);
this
.
btnMCopy
.
Name
=
"btnMCopy"
;
this
.
btnMCopy
.
Size
=
new
System
.
Drawing
.
Size
(
69
,
28
);
this
.
btnMCopy
.
TabIndex
=
31
;
this
.
btnMCopy
.
Text
=
"复制"
;
this
.
btnMCopy
.
UseVisualStyleBackColor
=
true
;
this
.
btnMCopy
.
Click
+=
new
System
.
EventHandler
(
this
.
btnMCopy_Click
);
//
// btnUCopy
//
this
.
btnUCopy
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnUCopy
.
Location
=
new
System
.
Drawing
.
Point
(
661
,
130
);
this
.
btnUCopy
.
Name
=
"btnUCopy"
;
this
.
btnUCopy
.
Size
=
new
System
.
Drawing
.
Size
(
69
,
28
);
this
.
btnUCopy
.
TabIndex
=
32
;
this
.
btnUCopy
.
Text
=
"复制"
;
this
.
btnUCopy
.
UseVisualStyleBackColor
=
true
;
this
.
btnUCopy
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUCopy_Click
);
//
// btnICopy
//
this
.
btnICopy
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnICopy
.
Location
=
new
System
.
Drawing
.
Point
(
661
,
188
);
this
.
btnICopy
.
Name
=
"btnICopy"
;
this
.
btnICopy
.
Size
=
new
System
.
Drawing
.
Size
(
69
,
28
);
this
.
btnICopy
.
TabIndex
=
33
;
this
.
btnICopy
.
Text
=
"复制"
;
this
.
btnICopy
.
UseVisualStyleBackColor
=
true
;
this
.
btnICopy
.
Click
+=
new
System
.
EventHandler
(
this
.
btnICopy_Click
);
//
// btnCCopy
//
this
.
btnCCopy
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnCCopy
.
Location
=
new
System
.
Drawing
.
Point
(
661
,
248
);
this
.
btnCCopy
.
Name
=
"btnCCopy"
;
this
.
btnCCopy
.
Size
=
new
System
.
Drawing
.
Size
(
69
,
28
);
this
.
btnCCopy
.
TabIndex
=
34
;
this
.
btnCCopy
.
Text
=
"复制"
;
this
.
btnCCopy
.
UseVisualStyleBackColor
=
true
;
this
.
btnCCopy
.
Click
+=
new
System
.
EventHandler
(
this
.
btnCCopy_Click
);
//
// FrmAxisDebug
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
7F
,
17F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
805
,
442
);
this
.
Controls
.
Add
(
this
.
btnCCopy
);
this
.
Controls
.
Add
(
this
.
btnICopy
);
this
.
Controls
.
Add
(
this
.
btnUCopy
);
this
.
Controls
.
Add
(
this
.
btnMCopy
);
this
.
Controls
.
Add
(
this
.
lblSpeed
);
this
.
Controls
.
Add
(
this
.
trackBar1
);
this
.
Controls
.
Add
(
this
.
txtComPosition
);
this
.
Controls
.
Add
(
this
.
btnComMovej
);
this
.
Controls
.
Add
(
this
.
btnComMove
);
this
.
Controls
.
Add
(
this
.
txtComSpeed
);
this
.
Controls
.
Add
(
this
.
label4
);
this
.
Controls
.
Add
(
this
.
label6
);
this
.
Controls
.
Add
(
this
.
label5
);
this
.
Controls
.
Add
(
this
.
txtInOutPosition
);
this
.
Controls
.
Add
(
this
.
txtUpdownPosition
);
this
.
Controls
.
Add
(
this
.
txtMiddlePosition
);
this
.
Controls
.
Add
(
this
.
button1
);
this
.
Controls
.
Add
(
this
.
btnInOutMovej
);
this
.
Controls
.
Add
(
this
.
btnUpDownMovej
);
this
.
Controls
.
Add
(
this
.
btnMiddleMovej
);
this
.
Controls
.
Add
(
this
.
btnInOutMove
);
this
.
Controls
.
Add
(
this
.
btnUpDownMove
);
this
.
Controls
.
Add
(
this
.
txtInOutSpeed
);
this
.
Controls
.
Add
(
this
.
txtUpDownSpeed
);
this
.
Controls
.
Add
(
this
.
txtMiddleSpeed
);
this
.
Controls
.
Add
(
this
.
btnMiddleMove
);
this
.
Controls
.
Add
(
this
.
label3
);
this
.
Controls
.
Add
(
this
.
label2
);
this
.
Controls
.
Add
(
this
.
label1
);
this
.
Icon
=
((
System
.
Drawing
.
Icon
)(
resources
.
GetObject
(
"$this.Icon"
)));
this
.
MaximizeBox
=
false
;
this
.
MinimizeBox
=
false
;
this
.
Name
=
"FrmAxisDebug"
;
this
.
Text
=
"运动轴调试"
;
this
.
Load
+=
new
System
.
EventHandler
(
this
.
FrmAxisDebug_Load
);
this
.
Shown
+=
new
System
.
EventHandler
(
this
.
FrmAxisDebug_Shown
);
((
System
.
ComponentModel
.
ISupportInitialize
)(
this
.
trackBar1
)).
EndInit
();
this
.
ResumeLayout
(
false
);
this
.
PerformLayout
();
}
#
endregion
private
System
.
Windows
.
Forms
.
Label
label1
;
private
System
.
Windows
.
Forms
.
Label
label2
;
private
System
.
Windows
.
Forms
.
Label
label3
;
private
System
.
Windows
.
Forms
.
Button
btnMiddleMove
;
private
System
.
Windows
.
Forms
.
TextBox
txtMiddleSpeed
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpDownSpeed
;
private
System
.
Windows
.
Forms
.
TextBox
txtInOutSpeed
;
private
System
.
Windows
.
Forms
.
Button
btnUpDownMove
;
private
System
.
Windows
.
Forms
.
Button
btnInOutMove
;
private
System
.
Windows
.
Forms
.
Button
btnInOutMovej
;
private
System
.
Windows
.
Forms
.
Button
btnUpDownMovej
;
private
System
.
Windows
.
Forms
.
Button
btnMiddleMovej
;
private
System
.
Windows
.
Forms
.
Button
button1
;
private
System
.
Windows
.
Forms
.
TextBox
txtInOutPosition
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpdownPosition
;
private
System
.
Windows
.
Forms
.
TextBox
txtMiddlePosition
;
private
System
.
Windows
.
Forms
.
Label
label5
;
private
System
.
Windows
.
Forms
.
Label
label6
;
private
System
.
Windows
.
Forms
.
Timer
timer1
;
private
System
.
Windows
.
Forms
.
TextBox
txtComPosition
;
private
System
.
Windows
.
Forms
.
Button
btnComMovej
;
private
System
.
Windows
.
Forms
.
Button
btnComMove
;
private
System
.
Windows
.
Forms
.
TextBox
txtComSpeed
;
private
System
.
Windows
.
Forms
.
Label
label4
;
private
System
.
Windows
.
Forms
.
Label
lblSpeed
;
private
System
.
Windows
.
Forms
.
TrackBar
trackBar1
;
private
System
.
Windows
.
Forms
.
Button
btnMCopy
;
private
System
.
Windows
.
Forms
.
Button
btnUCopy
;
private
System
.
Windows
.
Forms
.
Button
btnICopy
;
private
System
.
Windows
.
Forms
.
Button
btnCCopy
;
}
}
\ No newline at end of file
source/XLRStoreClient/boxForm/FrmAxisDebug.cs
0 → 100644
查看文件 @
93b2086
using
log4net
;
using
OnlineStore.Common
;
using
OnlineStore.DeviceLibrary
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Drawing
;
using
System.Linq
;
using
System.Reflection
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
namespace
OnlineStore.XLRStore
{
internal
partial
class
FrmAxisDebug
:
FrmBase
{
/// <summary>
/// 行走机构
/// </summary>
private
ConfigMoveAxis
MoveAxis
=
null
;
/// <summary>
/// 料屉拉取进出轴
/// </summary>
private
ConfigMoveAxis
PullAxis_Inout
=
null
;
/// <summary>
/// 移栽升降轴
/// </summary>
private
ConfigMoveAxis
UpdownAxis
=
null
;
/// <summary>
/// A面移栽X轴
/// </summary>
private
ConfigMoveAxis
XAxis_A
=
null
;
/// <summary>
/// A面移栽旋转轴
/// </summary>
private
ConfigMoveAxis
MiddleAxis_A
=
null
;
/// <summary>
/// A面移栽压紧轴
/// </summary>
private
ConfigMoveAxis
ComAxis_A
=
null
;
/// <summary>
/// 料屉拉取升降轴
/// </summary>
private
ConfigMoveAxis
PullAxis_Updown
=
null
;
/// <summary>
/// B面移栽X轴
/// </summary>
private
ConfigMoveAxis
XAxis_B
=
null
;
/// <summary>
/// B面移栽旋转轴
/// </summary>
private
ConfigMoveAxis
MiddleAxis_B
=
null
;
/// <summary>
/// B面移栽压紧轴
/// </summary>
private
ConfigMoveAxis
ComAxis_B
=
null
;
private
BoxEquip
boxBean
=
null
;
public
FrmAxisDebug
(
BoxEquip
boxBean
)
{
MoveAxis
=
boxBean
.
Config
.
MoveAxis
;
PullAxis_Inout
=
boxBean
.
Config
.
PullAxis_Inout
;
UpdownAxis
=
boxBean
.
Config
.
UpdownAxis
;
XAxis_A
=
boxBean
.
Config
.
XAxis_A
;
MiddleAxis_A
=
boxBean
.
Config
.
MiddleAxis_A
;
ComAxis_A
=
boxBean
.
Config
.
ComAxis_A
;
PullAxis_Updown
=
boxBean
.
Config
.
PullAxis_Updown
;
XAxis_B
=
boxBean
.
Config
.
XAxis_B
;
MiddleAxis_B
=
boxBean
.
Config
.
MiddleAxis_B
;
ComAxis_B
=
boxBean
.
Config
.
ComAxis_B
;
this
.
boxBean
=
boxBean
;
InitializeComponent
();
this
.
Text
=
boxBean
.
Name
+
"_轴点动调试"
;
}
private
void
AxisMove
(
ConfigMoveAxis
axis
,
int
speed
)
{
LogUtil
.
debug
(
"点动:deviceName="
+
axis
.
DeviceName
+
",axis="
+
axis
.
GetAxisValue
()
+
",speed="
+
speed
);
AxisManager
.
instance
.
SpeedMove
(
axis
.
DeviceName
,
axis
.
GetAxisValue
(),
speed
);
}
private
void
FrmAxisDebug_Load
(
object
sender
,
EventArgs
e
)
{
txtMiddleSpeed
.
Text
=
(
middle
.
TargetSpeed
/
5
).
ToString
();
txtInOutSpeed
.
Text
=
(
inout
.
TargetSpeed
/
5
).
ToString
();
txtUpDownSpeed
.
Text
=
(
updown
.
TargetSpeed
/
5
).
ToString
();
txtComSpeed
.
Text
=
(
comp
.
TargetSpeed
/
5
).
ToString
();
timer1
.
Start
();
}
private
bool
InOutIsIsP1
()
{
int
InOutDefaultPosition
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
InOutDefaultPosition
);
int
currValue
=
AxisManager
.
instance
.
GetActualtPosition
(
inout
.
DeviceName
,
inout
.
GetAxisValue
());
if
(
currValue
<=
InOutDefaultPosition
)
{
return
true
;
}
MessageBox
.
Show
(
"叉子不在待机位,请先将叉子退回待机位("
+
InOutDefaultPosition
+
")"
,
"警告(叉子在待机位时,才能移动升降轴和旋转轴) "
,
MessageBoxButtons
.
OK
,
MessageBoxIcon
.
Exclamation
);
return
false
;
}
private
void
btnMiddleMove_MouseDown
(
object
sender
,
MouseEventArgs
e
)
{
if
(!
InOutIsIsP1
())
{
return
;
}
if
(
btnMiddleMove
.
BackColor
.
Equals
(
System
.
Drawing
.
SystemColors
.
Control
))
{
int
speed
=
FormUtil
.
GetIntValue
(
txtMiddleSpeed
);
if
(
speed
<=
0
)
{
MessageBox
.
Show
(
"提示"
,
"请先输入正确的速度"
);
return
;
}
btnMiddleMove
.
BackColor
=
Color
.
Green
;
AxisMove
(
middle
,
speed
);
}
}
private
void
btnMiddleMove_MouseUp
(
object
sender
,
MouseEventArgs
e
)
{
if
(
btnMiddleMove
.
BackColor
==
Color
.
Green
)
{
btnMiddleMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
AxisManager
.
instance
.
SuddenStop
(
middle
.
DeviceName
,
middle
.
GetAxisValue
());
UpdateMiddlePosition
();
}
}
private
void
btnUpDownMove_MouseDown
(
object
sender
,
MouseEventArgs
e
)
{
if
(!
InOutIsIsP1
())
{
return
;
}
if
(
btnUpDownMove
.
BackColor
.
Equals
(
System
.
Drawing
.
SystemColors
.
Control
))
{
int
speed
=
FormUtil
.
GetIntValue
(
txtUpDownSpeed
);
if
(
speed
<=
0
)
{
MessageBox
.
Show
(
"提示"
,
"请先输入正确的速度"
);
return
;
}
btnUpDownMove
.
BackColor
=
Color
.
Green
;
AxisMove
(
updown
,
speed
);
}
}
private
void
btnUpDownMove_MouseUp
(
object
sender
,
MouseEventArgs
e
)
{
if
(
btnUpDownMove
.
BackColor
==
Color
.
Green
)
{
btnUpDownMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
AxisManager
.
instance
.
SuddenStop
(
updown
.
DeviceName
,
updown
.
GetAxisValue
());
UpdateUpdownPosition
();
}
}
private
void
btnInOutMove_MouseDown
(
object
sender
,
MouseEventArgs
e
)
{
if
(
this
.
btnInOutMove
.
BackColor
.
Equals
(
System
.
Drawing
.
SystemColors
.
Control
))
{
int
speed
=
FormUtil
.
GetIntValue
(
txtInOutSpeed
);
if
(
speed
<=
0
)
{
MessageBox
.
Show
(
"提示"
,
"请先输入正确的速度"
);
return
;
}
this
.
btnInOutMove
.
BackColor
=
Color
.
Green
;
AxisMove
(
inout
,
speed
);
}
}
private
void
btnInOutMove_MouseUp
(
object
sender
,
MouseEventArgs
e
)
{
if
(
this
.
btnInOutMove
.
BackColor
==
Color
.
Green
)
{
btnInOutMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
AxisManager
.
instance
.
SuddenStop
(
inout
.
DeviceName
,
inout
.
GetAxisValue
());
UpdateInOutPosition
();
}
}
private
void
btnMiddleMovej_MouseDown
(
object
sender
,
MouseEventArgs
e
)
{
if
(!
InOutIsIsP1
())
{
return
;
}
if
(
btnMiddleMovej
.
BackColor
.
Equals
(
System
.
Drawing
.
SystemColors
.
Control
))
{
int
speed
=
FormUtil
.
GetIntValue
(
txtMiddleSpeed
);
if
(
speed
<=
0
)
{
MessageBox
.
Show
(
"提示"
,
"请先输入正确的速度"
);
return
;
}
this
.
btnMiddleMovej
.
BackColor
=
Color
.
Green
;
AxisMove
(
middle
,
-
speed
);
}
}
private
void
btnMiddleMovej_MouseUp
(
object
sender
,
MouseEventArgs
e
)
{
if
(
btnMiddleMovej
.
BackColor
==
Color
.
Green
)
{
btnMiddleMovej
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
AxisManager
.
instance
.
SuddenStop
(
middle
.
DeviceName
,
middle
.
GetAxisValue
());
UpdateMiddlePosition
();
}
}
private
void
btnUpDownMovej_MouseDown
(
object
sender
,
MouseEventArgs
e
)
{
if
(!
InOutIsIsP1
())
{
return
;
}
if
(
btnUpDownMovej
.
BackColor
.
Equals
(
System
.
Drawing
.
SystemColors
.
Control
))
{
int
speed
=
FormUtil
.
GetIntValue
(
txtUpDownSpeed
);
if
(
speed
<=
0
)
{
MessageBox
.
Show
(
"提示"
,
"请先输入正确的速度"
);
return
;
}
btnUpDownMovej
.
BackColor
=
Color
.
Green
;
AxisMove
(
updown
,
-
speed
);
}
}
private
void
btnUpDownMovej_MouseUp
(
object
sender
,
MouseEventArgs
e
)
{
if
(
btnUpDownMovej
.
BackColor
==
Color
.
Green
)
{
btnUpDownMovej
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
AxisManager
.
instance
.
SuddenStop
(
updown
.
DeviceName
,
updown
.
GetAxisValue
());
UpdateUpdownPosition
();
}
}
private
void
btnInOutMovej_MouseDown
(
object
sender
,
MouseEventArgs
e
)
{
if
(
btnInOutMovej
.
BackColor
.
Equals
(
System
.
Drawing
.
SystemColors
.
Control
))
{
int
speed
=
FormUtil
.
GetIntValue
(
txtInOutSpeed
);
if
(
speed
<=
0
)
{
MessageBox
.
Show
(
"提示"
,
"请先输入正确的速度"
);
return
;
}
this
.
btnInOutMovej
.
BackColor
=
Color
.
Green
;
AxisMove
(
inout
,
-
speed
);
}
}
private
void
btnInOutMovej_MouseUp
(
object
sender
,
MouseEventArgs
e
)
{
if
(
btnInOutMovej
.
BackColor
.
Equals
(
Color
.
Green
))
{
btnInOutMovej
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
AxisManager
.
instance
.
SuddenStop
(
inout
.
DeviceName
,
inout
.
GetAxisValue
());
UpdateInOutPosition
();
}
}
private
void
btnComMove_MouseDown
(
object
sender
,
MouseEventArgs
e
)
{
if
(
btnComMove
.
BackColor
.
Equals
(
System
.
Drawing
.
SystemColors
.
Control
))
{
int
speed
=
FormUtil
.
GetIntValue
(
txtComSpeed
);
if
(
speed
<=
0
)
{
MessageBox
.
Show
(
"提示"
,
"请先输入正确的速度"
);
return
;
}
this
.
btnComMove
.
BackColor
=
Color
.
Green
;
AxisMove
(
comp
,
speed
);
}
}
private
void
btnComMove_MouseUp
(
object
sender
,
MouseEventArgs
e
)
{
if
(
this
.
btnComMove
.
BackColor
==
Color
.
Green
)
{
btnComMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
AxisManager
.
instance
.
SuddenStop
(
comp
.
DeviceName
,
comp
.
GetAxisValue
());
UpdateCompPosition
();
}
}
private
void
btnComMovej_MouseDown
(
object
sender
,
MouseEventArgs
e
)
{
int
speed
=
FormUtil
.
GetIntValue
(
txtComSpeed
);
if
(
speed
<=
0
)
{
MessageBox
.
Show
(
"提示"
,
"请先输入正确的速度"
);
return
;
}
this
.
btnComMovej
.
BackColor
=
Color
.
Green
;
AxisMove
(
comp
,
-
speed
);
}
private
void
btnComMovej_MouseUp
(
object
sender
,
MouseEventArgs
e
)
{
if
(
btnComMovej
.
BackColor
.
Equals
(
Color
.
Green
))
{
btnComMovej
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
AxisManager
.
instance
.
SuddenStop
(
comp
.
DeviceName
,
comp
.
GetAxisValue
());
UpdateCompPosition
();
}
}
private
void
button1_Click
(
object
sender
,
EventArgs
e
)
{
this
.
Close
();
}
private
void
FrmAxisDebug_Shown
(
object
sender
,
EventArgs
e
)
{
}
private
void
timer1_Tick
(
object
sender
,
EventArgs
e
)
{
if
(
this
.
Visible
)
{
UpdateMiddlePosition
();
UpdateInOutPosition
();
UpdateUpdownPosition
();
UpdateCompPosition
();
// txtComPosition.Text = ShuoKeControls.GetLastPosition(compress_Slv).ToString();
}
}
private
void
UpdateCompPosition
()
{
int
compPosition
=
AxisManager
.
instance
.
GetTargetPosition
(
comp
.
DeviceName
,
comp
.
GetAxisValue
());
if
(!
txtComPosition
.
Text
.
Equals
(
compPosition
.
ToString
()))
{
txtComPosition
.
Text
=
compPosition
.
ToString
();
}
}
private
void
UpdateUpdownPosition
()
{
int
updownPosition
=
AxisManager
.
instance
.
GetTargetPosition
(
updown
.
DeviceName
,
updown
.
GetAxisValue
());
if
(!
txtUpdownPosition
.
Text
.
Equals
(
updownPosition
.
ToString
()))
{
txtUpdownPosition
.
Text
=
updownPosition
.
ToString
();
}
}
private
void
UpdateMiddlePosition
()
{
int
middlePosition
=
AxisManager
.
instance
.
GetTargetPosition
(
middle
.
DeviceName
,
middle
.
GetAxisValue
());
if
(!
txtMiddlePosition
.
Text
.
Equals
(
middlePosition
.
ToString
()))
{
txtMiddlePosition
.
Text
=
middlePosition
.
ToString
();
}
}
private
void
UpdateInOutPosition
()
{
int
inoutPosition
=
AxisManager
.
instance
.
GetTargetPosition
(
inout
.
DeviceName
,
inout
.
GetAxisValue
());
if
(!
txtInOutPosition
.
Text
.
Equals
(
inoutPosition
.
ToString
()))
{
txtInOutPosition
.
Text
=
inoutPosition
.
ToString
();
}
}
private
void
trackBar1_ValueChanged
(
object
sender
,
EventArgs
e
)
{
int
value
=
trackBar1
.
Value
;
lblSpeed
.
Text
=
"点动速度="
+
(
value
/
10f
)
+
"倍目标速度"
;
txtMiddleSpeed
.
Text
=
(
middle
.
TargetSpeed
*
value
/
10
).
ToString
();
txtInOutSpeed
.
Text
=
(
inout
.
TargetSpeed
*
value
/
10
).
ToString
();
txtUpDownSpeed
.
Text
=
(
updown
.
TargetSpeed
*
value
/
10
).
ToString
();
txtComSpeed
.
Text
=
(
comp
.
TargetSpeed
*
value
/
10
).
ToString
();
}
private
void
trackBar1_Scroll
(
object
sender
,
EventArgs
e
)
{
}
private
void
btnMCopy_Click
(
object
sender
,
EventArgs
e
)
{
Clipboard
.
SetDataObject
(
txtMiddlePosition
.
Text
,
true
);
}
private
void
btnUCopy_Click
(
object
sender
,
EventArgs
e
)
{
Clipboard
.
SetDataObject
(
txtUpdownPosition
.
Text
,
true
);
}
private
void
btnICopy_Click
(
object
sender
,
EventArgs
e
)
{
Clipboard
.
SetDataObject
(
txtInOutPosition
.
Text
,
true
);
}
private
void
btnCCopy_Click
(
object
sender
,
EventArgs
e
)
{
Clipboard
.
SetDataObject
(
txtComPosition
.
Text
,
true
);
}
}
}
source/XLRStoreClient/boxForm/FrmAxisDebug.resx
0 → 100644
查看文件 @
93b2086
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAA8AMDAQAAEABABoBgAA9gAAACgoEAABAAQAyAQAAF4HAAAgIBAAAQAEAOgCAAAmDAAAGBgQAAEA
BADoAQAADg8AABAQEAABAAQAKAEAAPYQAAAwMAAAAQAIAKgOAAAeEgAAKCgAAAEACACoCwAAxiAAACAg
AAABAAgAqAgAAG4sAAAYGAAAAQAIAMgGAAAWNQAAEBAAAAEACABoBQAA3jsAADAwAAABACAAqCUAAEZB
AAAoKAAAAQAgAGgaAADuZgAAICAAAAEAIACoEAAAVoEAABgYAAABACAAiAkAAP6RAAAQEAAAAQAgAGgE
AACGmwAAKAAAADAAAABgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA
gACAAAAAgACAAICAAACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAAwMDAAP///wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAA/lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAA
D///8AAAAAAAAAAAAAAAAAAAAAAAAAAE7////0AAAAAAAAAAAAAAAAAEZHZGBABP/////+AAQkJWZkAA
AAAAAAAG6+t3YAD///////8AB7brd2AAAAAAAAAHvtt0AA/////////kAEd77UAAAAAAAAAGt3ZgBO//
////////ACRnvlAAAAAAAAAHd0QAT///////////8EBHdmAAAAAAAAAEZ2QA////7uvb7v///kAkR0AA
AAAAAAAEdAAf///r69e+vb7///AAZ0AAAAAAAAAGUATv//vtvr2+t72+//9AB0AAAAAAAAAEAC///r6+
t76+vbe+7//gBCAAAAAAAAAABO//7t6+fX2+vre3vv//AAAAAAAAAAAAD///3r69t76+vb69vv//5AAA
AAAAAAAA///+vt5+3r7b69t723///wAAAAAAAAAP///3576+vre+vXvr23////AAAAAAAAD////73n19
7t6+vNvrdr7///8AAAAAAA7////t7r7ne+vtd9vr237////wAAAABP/////r7evt536+vr6+t7f////+
cAAAb//////r7r7evt7X1769vr3/////8AABD/////99fu5+7r7r7X6+t7f/////8AAAAP/////n7t7u
7Xfr6+vX233/////AAAAAA/////t7u7e7u3n7evr577////wAAAAAAD////+7u7u7t6+2+vr69////8A
AAAAAAAP///+3u7+7ufud33tt7////AAAAAAAAAA///+7u/u7e7evt6+vu///wAAAAAAAAAAD///7u7u
7u7N7r7evf//8AAAAAAAAAAEBP///u7u7ud9576+v//+QEAAAAAAAAAGcE7//u7u7t7r7efe7//wR0AA
AAAAAAAGe0D///7u7n5+fr6///8AfVAAAAAAAAALfXAP///u3n19vt7///BOt2AAAAAAAAAHd75A////
/u7u7v///kB3vrAAAAAAAAAE3rdwD///////////8ke+3kAAAAAAAAAE6+17ZP//////////AHvte3AA
AAAAAAAE6+vrcA/////////wRd63fVAAAAAAAAAG7XfXdgH///////8Aduvtd2AAAAAAAAAAVkdGVkAP
//////AGVkdGVgAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAA
AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///////8AAP///n///wAA///8P///AAD///gf//8AAP//8A///wAA///gB///AAD8AAAAAD8AAPwA
AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/
AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPgAAAAAHwAA8AAAAAAPAADgAAAAAAcAAMAA
AAAAAwAAgAAAAAABAACAAAAAAAEAAMAAAAAAAwAA4AAAAAAHAADwAAAAAA8AAPgAAAAAHwAA/AAAAAA/
AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwA
AAAAPwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD//+AH//8AAP//8A///wAA///4H///
AAD///w///8AAP///n///wAA////////AAAoAAAAKAAAAFAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AADAwMAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF
cAAAAAAAAAAAAAAAAAAAAAAAAH/3AAAAAAAAAAAAAAAAAAAAAAAH//9wAAAAAAAAAAAAAAAAQAAAAH//
//cAAAAABAAAAAAABHt2VkAH/////3AFa3t2AAAAAAAAfXt2AH//////9wBGd9VAAAAAAAC3dkQH////
////cAR7dgAAAAAAAGezAH/////////3BGZ2AAAAAAAAdkQH///uvr3u//9wBWcAAAAAAABkAH//++2+
vVvu//cERgAAAAAAAAQH//7et9vr29vv/3AEAAAAAAAAAH//6+e+t7e+t77/9wAAAAAAAAAH//7r1313
fb69tu//cAAAAAAAAH///m53e+t7e3vr7//3AAAAAAAH///uvtftfX3r22u+//9wAAAAAH///+vte+vr
6+vr6+7///cAAAAH////3nfu3u3r3r69tv///nAAAH/////r7evr6+vre9e+////9wAAf////75+7u3u
fn3rfbf////3AAAH////7e7t7uvtvrvr6////3AAAAB////u3u7t7ud+3r2+///3AAAAAAf//+7u7u7u
ve2+d37//3AAAAAAAH///u7v7u7r7evbf//3AAAAAAAAB///7u/t7Xfuvn7v/3AAAAAAAABAf//u7u7u
frd9vv/3BAAAAAAAAHdH//7u7n5+3tfv/3C3QAAAAAAAvVB//+7u1+vr7v/3C3cAAAAAAAB9e0f//+7n
7e7//3B96wAAAAAAALfeYH/////////3C+vmAAAAAAAAfr63R////////3B9e+ZAAAAAAAC3fXdwf///
///3C3fetwAAAAAAAGdnt2QH/////3BHZ7dnAAAAAAAAAAAAAAB////3AAAAAAAAAAAAAAAAAAAAAAf/
/3AAAAAAAAAAAAAAAAAAAAAAAH/3AAAAAAAAAAAAAAAAAAAAAAAAB3AAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAD//+f//wAAAP//w///AAAA//+B//8A
AAD//wD//wAAAPgAAAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgA
AAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8AAADwAAAADwAAAOAAAAAHAAAAwAAAAAMA
AACAAAAAAQAAAIAAAAABAAAAwAAAAAMAAADgAAAABwAAAPAAAAAPAAAA+AAAAB8AAAD4AAAAHwAAAPgA
AAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8AAAD4AAAAHwAAAPgAAAAfAAAA+AAAAB8A
AAD4AAAAHwAAAP//AP//AAAA//+B//8AAAD//8P//wAAAP//5///AAAA//////8AAAAoAAAAIAAAAEAA
AAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICA
gAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AADAwMAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAG7gAAAAAAAAAAAAAAAAAADv/kAAAAAAAAAAAABARABO///gBARAAAAAAABH63tg
7////kZ3vrQAAAAAC+13Tv/////mt9dwAAAAAAfbdO///////gbr5AAAAABL5k7/7ut37v/iXXAAAAAA
DnDv/td729vv/kZ0AAAAAAZO/+vr6+vr6//lYAAAAAAA7/7r69t7e7v//gAAAAAATv/77efn13fbfv/k
AAAAAO//7ee+vbe9vr7//gAAAE7//+vt537uvr23///hAADv//933r7Xvbe3t////gAA7///5+7n7n7X
fXb///4AAA///+3u3u2+vr6+///mAAAA7//u7u7u7t69vv/+AAAAAA7//u/u7Xvr7c7/4AAAAAAA7/7u
7u7tfr3v/gAAAAAAB27/7+7ufuvu7+R0AAAAAEtw7/7u3r197/5GcAAAAAAO1U7//u7u7//gfrQAAAAA
S31w7//////+e11wAAAAAAfr607/////4WvtdAAAAABGd9dw7////kbm63AAAAAAAAQAAA7//+AABAAA
AAAAAAAAAAAA7/4AAAAAAAAAAAAAAAAAAA7nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA///////+f////D////gf//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AA
AAfAAAADgAAAAYAAAAHAAAAD4AAAB/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD//4
H////D////5///////8oAAAAGAAAADAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gAAAgAAAAICAAIAAAACAAIAAgIAAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AADAwMAA////AAAA
AAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAf+cAAAAAAAAAQkYF7/9gBgYAAAAGvrdv///3vr5AAAAA
7mX/////R31AAAAAtl/+7r7v87cAAAAEd//b69vb/2dAAAAAT/7r6+vrf+cAAAAC/+vr7be3vv9wAAB/
/+3r5969vv/wAAf//33N6+t76///YAD//+3u5+3rt///cAB//+7u3te+3v/xAAAE//7u7u6+vv8gAAAA
f/7u7r197vYAAAAEZP/u7u6+/1ZAAAAA53/+7t7v925AAAAEt2H/////R74AAAAE7eZ////wft5AAAAA
BAQA//9wBAQAAAAAAAAAf/QAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAP//////5////8P//+AA
B//gAAf/4AAH/+AAB//gAAf/4AAH/+AAB//AAAP/gAAB/4AAAf/AAAP/4AAH/+AAB//gAAf/4AAH/+AA
B//gAAf/4AAH///D////5////////ygAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAMDA
wAD///8AAAAADnAAAAAAAADufgAAAAAFZH/+RkQAAG6+///k5AAARu/ut/d2AABO+9vr3+QAB+7u7b6+
9+Du/+2+vrf/537/7u7Xe/9+Dn/u7uvt/uAAR/7t6+/gAABn7u7u97YAAE5u///m5gAABlDv9wZQAAAA
AH7uAAAAAAAADnAAAAD+f////D///8AD///AA///wAP//8AD//+AAf//AAD//wAA//+AAf//wAP//8AD
///AA///wAP///w////+f///KAAAADAAAABgAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAEAgEABAQEAAgICAANDQ0AEQkGABISEgAUFBQAGRkZAB0dHQAnFg4AKBYOAC4aEQA9IhYAJSUlACws
LAAxMTEAODg4AD4+PgBFJxkAUy8fAFozIQBlOSUAcD8qAHJAKgB2QywAeUQtAEBAQABFRUUASEhIAFNT
UwBXV1cAXV1dAGFhYQBlZWUAampqAG5ubgBycnIAeHh4AH5+fgCHTDIAiEwyAMlTLgDLVTAAzVkzAMxZ
NADMXDoA0Fw2ANNgOADUYjoA1WQ8ANhnPgDYaD8AsWRCANVnQgDaaUAA3GxDANhrRADdbUQA3nBGANF2
TgDXclAA3ntXAOBxRgDhc0kA4XRKAON2TADkd00A5HhNAOh8TwDme1AA5nxSAOh9UQDpf1QA5IFVAOuA
UwDoglYA7IJVAOmCWADthlkA7IdcAO2IXQDwh1kA8ohZAPGKXADyjF8A9IxeAN2LbwDdi3AA3ZJ6AO6L
YADvjGIA8Y1hAPSOYQDxj2QA9JBiAPGRZgD0kmYA8pNoAPOWawD0lWoA9JZsAPSYbgDml3kA9ZpxAPWd
dQD2n3gA9aB5APaifQD2poEA9qeEAPeohAD3q4gA962LAPCqjgD3ro0A97CPAPexkAD3tZYA+LCQAPiz
lAD4tJYA+LaZAPi5nQDotKMA6LWmAPi7oAD4vaIA+b6kAPG/rAD5wKYA+cKqAPnFrQDsxbkA+cawAPnJ
tAD5zLcA+s25APrPvAD60L0A2traANzc2wDc3NwA+tTDAPrWxgD72McA+tfIAPvZyQD7280A+93PAPzd
zwD73dAA/OTZAP3p4AD46+cA++/pAPzw6wD98uwA/fbyAP39/QAAAAAALwMAAFAEAABwBgAAkAkAALAK
AADPDAAA8A4AAP8gEgD/PjEA/1xRAP96cQD/l5EA/7axAP/U0QD///8AAAAAAC8ADgBQABcAcAAhAJAA
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
AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvgA
AAAAHwAO8AAAAAAPAA7gAAAAAAcADsAAAAAAAwAOgAAAAAABAA6AAAAAAAEADsAAAAAAAwAO4AAAAAAH
AA7wAAAAAA8ADvgAAAAAHwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvwA
AAAAPwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/AA78AAAAAD8ADvwAAAAAPwAO/AAAAAA/
AA7//+AH//8ADv//8A///wAO///4H///AA7///w///8ADv///n///wAO////////AA4oAAAAKAAAAFAA
AAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQAMBwQACgoKAA4ODgAcDwoAHBAKABAQ
EAAeHh4ALRkQACkpKQAuLi4AMDAwADY2NgA6OjoAPT09AEUnGQBjNyQAYzgkAGQ4JABtPSgAcT8pAHJA
KgBCQkIARkZGAElJSQBOTk4AV1dXAFlZWQBdXV0AYWFhAGVlZQBoaGgAbGxsAHl5eQB+fn4AiU0zAJBR
NQCYVjgAp14+AKlfPgCqYD8AyVMuAMlULwDMVzEAz1s1ANJfOADTYDkA1WQ8ANloPwCuYkAAsmRCALVm
QwC2ZkQAxW9JANVnQQDZaUAA3GxCANhrRADdbkQA0GlJAN9wRQDXc1IA335aAOBxRwDgckkA4nRJAON3
TADjeE4A5XlNAOF/UwDnfVIA4X9UAOd+VADpflEA6YFWAOyCVQDphFcA6oNYAOmEWQDthlgA7YleAPKI
WgD0ilsA8IpdAPKMXgDeknkA6YpjAO2LYADyjmEA9I5hAPCPZAD0kGMA8pFmAPSSZQDxkmgA9JNoAPOU
aQD0lWoA9JZsAPSYbgD0mnEA9ZxzAPWddQD2n3gA9aF7APWifAD2pH4A6Z+EAOCdiQD2pYEA9qmGAPar
iAD3ro0A97GRAPe0lgD4tpgA97ibAPi5ngD3u6EA97yiAPi7oAD4vaIA+b6kAPnApwD4w6sA+cStAO3G
uQD5xrAA+ciyAPnJtAD5zbgA+tC+APTOwAD608EA+dXFAPvZyQD72swA+9zNAPzi1gD86N8A/Pn3APr6
+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
AAAsAC8ASwBQAGkAcACHAJAApQCwAMQAzwDhAPAA8BH/APIx/wD0Uf8A9nH/APeR/wD5sf8A+9H/AP//
/wAAAAAAGwAvAC0AUAA/AHAAUgCQAGMAsAB2AM8AiADwAJkR/wCmMf8AtFH/AMJx/wDPkf8A3LH/AOvR
/wD///8AAAAAAAgALwAOAFAAFQBwABsAkAAhALAAJgDPACwA8AA+Ef8AWDH/AHFR/wCMcf8AppH/AL+x
/wDa0f8A////AAAAAAAAAAAXFwAAAAAAAAAAAAAAAAAXFxcXAAAAAAAAAAACAwMBFyQkFwEDAwIAAAAA
AxAFFyQkJCQXBRADAAAAAAMFFyIYCwgRIRcFAwAAAAABFyITDQwJBwYhFwEAAAAXFyQbExIPDAoHESQX
FwAXFyQkFRYWFA8MCggkJBcXFxckJBodHBkUDgwLJCQXFwAXFyQeIB8dFhINGCQXFwAAAAEXIyAgHRYT
EyIXAQAAAAADBBcjHhoVGyIXBQMAAAAAAxAEFyQkJCQXBRADAAAAAAIDAwEXJCQXAQMDAgAAAAAAAAAA
FxcXFwAAAAAAAAAAAAAAAAAXFwAAAAAAAAD+fwAA/D8AAMADAADAAwAAwAMAAMADAACAAQAAAAAAAAAA
AACAAQAAwAMAAMADAADAAwAAwAMAAPw/AAD+fwAAKAAAADAAAABgAAAAAQAgAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABAAAAAlAAAARgAAAHEAAACaAAAAvgAAAL4AAACaAAAAcAAA
AEYAAAAlAAAAEAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAA
AAUAAAAFAAAABgAAAAYAAAAGAAAABgAAAAYAAAALAAAAFQAAACoAAABKAAAAdAAAAKIAAADNAAAA+gAA
APoAAADNAAAAogAAAHQAAABKAAAAKQAAABUAAAAKAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAA
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
Qf+HTDL/WzMh/y4aEf8DAgH/HR0d/9ra2f/9/f3//v79//39/f/+/v3//v79//7+/f/9/f3//f39//7+
/f/+/v3//f39//7+/v/+/v3//f39//39/f/9/f3/2NjY/xwcG/8EAgH/LhoR/1szIf+ITDL/sWRB/9F2
Tv9wPyn/AAAA/wAAAL4AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAHAAA
AP9lOSX/sGRB/4ZLMf9aMiH/LhoR/wMCAf8fHx//2tra//7+/f/+/v7//v79//7+/f/77ej/8L+r/+aW
ef/ee1f/2GtE/9VnQf/XcU//3Ipv/+i0o//46eX//f39//7+/f/9/f3//v7+/9jY2P8dHR3/AwIB/y4Z
EP9aMiH/hkwx/7FkQf9lOSX/AAAA/wAAAL8AAACAAAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAAALAAAAJgAAAP9TLx7/h0wx/1oyIf8uGhD/BAIB/x8fH//Z2dn//v7+//7+/v/+/v7//O/q/++q
jv/keE7/4HFG/91tQ//aakD/2GY+/9VjO//SXzj/0Fw1/81ZMv/MWjX/3ZF6//jq5v/+/v3//v7+//7+
/v/Y2Nf/HR0d/wMCAf8uGRD/WjIh/4dMMv9TLx//AAAA/wAAAMEAAACCAAAAQgAAABgAAAAGAAAAAAAA
AAAAAAAAAAAAAQAAAAUAAAAVAAAAOAAAAP89Ihb/WjMh/y4aEf8EAgH/HR0d/9ra2v/+/v7//v79//7+
/f/51sb/7Ihd/+h8T//leUz/4nVJ/+BxR//dbkT/2mtB/9hnP//VYzz/0l85/9BcNf/NWTL/ylUw/8xd
O//sxLj//v7+//7+/v/+/v7/2NjY/xwcG/8DAgH/LhkQ/1ozIf89Ihb/AAAA/wAAAMYAAACHAAAARQAA
ABkAAAAGAAAAAAAAAAAAAAABAAAABQAAABAAAAAqAAAAVwAAAP8nFg7/LhoR/wMCAf8fHx//2tra//7+
/v/+/v7//v79//rNuf/wh1n/7YNV/+qAU//ofVD/5XlO/+N2S//hckj/3m9F/9trQv/YZz//1WQ8/9Jf
Of/QXDb/zVkz/8pVL//JUy//57Sk//7+/v/+/v7//v7+/9jY2P8eHh3/AwIB/y4aEf8nFg7/AAAA/wAA
AM8AAACRAAAATAAAABwAAAAGAAAAAAAAAAEAAAAFAAAADwAAACUAAABJAAAAfgAAAP8QCQX/BAIB/x8f
H//Z2dn//f39//39/f/+/v3/+9jI//SMXf/yilv/74dZ/+2FV//rglX/6H5S/+Z7T//jd0z/4XNJ/95w
Rv/ba0P/2Gc//9VkPP/TYDn/0Fw2/81ZM//KVTD/yVMv/+zEuP/+/v3//v79//39/f/X19f/Hh4d/wQC
Af8QCQX/AAAA/wAAANoAAAChAAAAXAAAACYAAAAKAAAAAQAAAAUAAAAPAAAAJAAAAEYAAAB0AAAAqAAA
AP8AAAD/HR0d/9ra2v/+/v7//v79//7+/f/98ev/9JNo//OMXv/zjV7/8o1f//GKXf/uhlr/64NX/+l/
VP/me1D/5HhN/+FzSv/ecEb/22xD/9hnP//WZDz/02A5/9BcNv/NWTP/ylUw/8xdO//46ub//v7+//39
/f/+/v3/2NjY/xwcHP8AAAD/AAAA/wAAAOYAAAC3AAAAdAAAADgAAAAVAAAABQAAAA8AAAAkAAAARgAA
AHIAAACiAAAA0gAAAP8fHx//2trZ//39/f/9/f3//f39//7+/f/4t5n/841f//SOYP/0j2L/9I9i//OP
Yv/xjF//7ohc/+yEWf/pgFX/5nxS/+R4Tv/hdEr/3nBG/9tsQ//ZaED/1mQ8/9NgOf/QXDb/zVkz/8tV
MP/dkXr//v39//39/f/9/f3//v79/9jY2P8eHh7/AAAA/wAAAPEAAADPAAAAlQAAAFYAAAApAAAADwAA
ACAAAABCAAAAbwAAAKAAAADPAAAA+x8fH//Z2dn//v79//7+/f/+/v3//v79//3x6//0kWT/849h//SR
ZP/0kmX/9JJm//STZv/zkWX/8Y1i/+6JXv/shlr/6YFW/+Z9Uv/jeU7/4XRK/95wR//bbEP/2WhA/9Zk
PP/TYDn/0Fw2/81ZMv/MWTX/+Orl//39/f/+/v3//v79//39/f/X19f/Hh4e/wAAAP4AAADlAAAAtwAA
AHwAAABGAAAAIAAAADQAAABjAAAAmAAAAMwAAAD6HR0d/9ra2v/+/v7//v79//7+/v/+/v7//v7+//rN
uP/0kGL/9JJl//SUaP/0lWr/9JVr//SWa//0lWr/85No//GPZP/ui2D/64dc/+mCV//mfVP/43lO/+B0
Sv/ecEf/22xD/9loQP/WZDz/0mA5/9BcNf/NWTL/6LSj//7+/v/+/v7//v7+//7+/v/+/v7/2NjY/xwc
HP8AAAD8AAAA2AAAAKAAAABmAAAANQAAAEMAAAB5AAAAugAAAPofHx/+2tra//7+/v/+/v7//v7+//7+
/v/+/v7//v7+//ixkf/0k2f/9JZr//WYb//1mnH/9Zpx//Wacf/1mXD/9Jhv//SWbP/xkWf/74xi/+yH
Xf/pglj/5n1T/+N5T//hdEr/3nBH/9xsQ//ZaD//1WQ8/9JfOf/QXDX/3Ypv//7+/f/+/v7//v7+//7+
/v/+/v7//f39/9jY2P8dHR3/AAAA+wAAAL8AAAB7AAAAQwAAAEEAAACNAAAA9h8fH//Z2dn//v7+//39
/f/9/f3//v7+//7+/f/+/v7//v7+//ahe//0lmz/9Ztx//Wedv/1n3j/9aB5//Wgef/1n3j/9Z11//Wb
cv/0mG7/8pJp/++NY//siF3/6YJY/+Z9U//jeU7/4XRK/95wRv/bbEP/2Gc//9VjPP/SXzj/13JQ//7+
/f/+/v7//v7+//7+/v/+/v7//f39//39/f/X19f/HR0d/wAAAPYAAACOAAAAQQAAAFQAAADvHR0d/9ra
2v/9/f3//v7+//39/f/9/f3//f39//39/f/+/v3//f39//Wbcv/1m3L/9aB5//akf//2poL/9qeD//an
g//2pYH/9aN9//Wgef/1nXX/9Jlw//KTaf/vjWL/64dc/+iBV//mfVL/43hO/+FzSf/eb0b/22tC/9dn
Pv/VYzv/1WdB//39/f/+/v3//v79//39/f/9/f3//f39//39/f/9/f3/2NjY/xwcHP8AAADvAAAAVAAA
AEMAAADrHh4e/tvb2//+/v7//v7+//7+/v/+/v3//v7+//7+/v/+/v7//v79//aed//1oHn/9qeD//es
iv/3r47/97CQ//ewkP/3roz/9qqI//angv/2onz/9Z52//SZcP/ykmj/7oxh/+uHXP/pgVb/5nxS/+R4
Tf/hc0n/3m9G/9prQf/YZj7/2GtE//7+/f/+/v3//v79//7+/v/+/v7//f39//7+/v/9/f3/2tra/x0d
Hf4AAADqAAAAQQAAAAwAAABGAAAA6yAgIP7a2tr//v7+//39/f/9/f3//v79//7+/f/+/v7//f39//eq
iP/2pYH/966N//i1l//4uJz/+Lqe//i6nf/4t5n/97KT//etjP/2p4T/9aJ8//Wddf/0l27/8ZFm/+6L
YP/rhVr/6YBV/+Z7UP/kd0z/4XJI/91uRP/aakD/3ntX//39/f/+/v3//v79//7+/f/+/v3//f39//39
/f/Z2dn/Hx8f/gAAAOsAAABIAAAADAAAAAMAAAAMAAAARQAAAO0gICD+29vb//39/f/9/f3//v79//7+
/f/+/v3//v79//i9ov/2qoj/97WX//i+o//4wqr/+cSt//nEq//4wKf/+Luf//e0lv/3rYz/9qaC//Wg
ef/1m3L/85Vr//CPZP/uiV7/64RY/+l/U//me0//43ZL/99xRv/dbUP/5pZ5//7+/f/+/v3//v79//7+
/f/+/v3//f39/9nZ2f8fHx//AAAA7wAAAFQAAAASAAAABAAAAAAAAAADAAAADAAAAEUAAADrHh4e/tvb
2//+/v7//v7+//7+/v/+/v7//v79//vXx//3r47/+Lyg//nGr//5zLj/+s+7//nNuf/5ybP/+MOr//i7
oP/3s5T/9qqI//ajfv/1nXX/9Jhu//OTaP/wjWL/7ohc/+uDV//pflL/5XlO/+J1Sf/gcUb/8b+r//7+
/f/+/v3//v79//7+/v/+/v7/2tra/x0dHf8AAADzAAAAcQAAACMAAAAJAAAAAQAAAAAAAAAAAAAAAwAA
AA0AAABJAAAA7CAgIP/a2tr//v79//7+/f/+/v3//v79//308P/4tJb/+MCm//nMuP/61MP/+tfH//rW
xf/60b7/+cm0//jAp//4t5r/966N//amgf/1n3j/9Zlw//SVav/zkWX/8Yxf/+6HWv/rglX/6H1Q/+V4
TP/keE7/++3o//39/f/+/v3//v7+//7+/f/Z2dn/Hx8f/wAAAPgAAACeAAAASgAAABsAAAAGAAAAAAAA
AAAAAAAAAAAAAAAAAAQAAAASAAAAVQAAAP8gICD/29vb//7+/f/+/v3//f39//7+/f/60L3/+MCn//rO
u//62Mn/+9zP//vbzf/61sX/+c25//nErP/4up7/97CQ//eng//2oHn/9Zpx//WWa//0k2b/9I9i//GK
Xf/uhVj/64BT/+h8T//vqo3//v79//39/f/9/f3//v7+/9ra2v8fHx//AAAA/wAAAMwAAACFAAAARAAA
ABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAJAAAAIwAAAP8AAAD/Hh4e/9vb2//+/v7//v79//7+
/v/99vL/+cOq//nLt//618f/+93P//vcz//618f/+s+7//nFrf/4up7/97CQ//enhP/1oHn/9Zpx//SV
a//0kmb/9JBj//ONX//wiFr/7YNV/+yIXf/87+r//v7+//7+/f/+/v3/2tra/x0dHf8AAAD/AAAA/wAA
AMEAAACBAAAAQgAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGwAAAP9EJhn/EgoG/yAg
IP/a2tr//v7+//7+/v/+/v7//Ong//nFrv/50L3/+tfH//vYyf/61MP/+cy4//nDq//4uZz/96+P//an
g//1oHn/9Zpw//SVav/0kmX/9I9i//ONX//yi1z/8IdZ//nWxv/+/v7//v7+//7+/f/Z2dn/Hx8f/xMK
B/9FJxn/AAAA/wAAAL4AAACAAAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAA
AP9yQCr/sWRB/xEJBv8gICD/29vb//7+/f/+/v7//v7+//zj2P/4xa7/+cu3//nOu//5zLj/+cav//i+
pP/3tZf/9qyK//akf//1nnb/9Zhu//SUaP/0kWP/9I5g//OMXf/zjF7/+s25//7+/f/+/v7//v79/9ra
2f8fHx//EQoG/7JlQv9yQCr/AAAA/wAAAL4AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAGAAAAGAAAAP93Qyz/6INW/7FkQf8SCgb/Hh4e/9vb2//+/v7//v7+//7+/v/86eD/+cKq//jA
p//4v6b/+Lug//e1mP/3ro3/9qeD//Wgev/1mnH/9JVq//SSZf/0j2H/841f//WUaP/72Mj//v7+//7+
/v/+/v7/2tra/x0dHf8TCwf/smVC/+iCVv93Qyz/AAAA/wAAAL4AAAB/AAAAQQAAABgAAAAGAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAAP95RC3/8IdZ/+eCVv+wY0H/EgoG/yAgIP/a2tr//v7+//7+
/f/+/v7//fby//rQvf/3tJX/9q6O//aqiP/2pYH/9aB5//Wbcv/0lmz/9JJm//SPYv/0kWT/+LeZ//3x
6//+/v3//v7+//7+/v/Z2dn/IB8f/xMLB/+yZEL/54JW//CHWf95RC3/AAAA/wAAAL4AAAB/AAAAQQAA
ABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAAP96RS3/84la//CHWf/nglb/sWRB/xEK
Bv8gICD/29vb//7+/f/+/v7//v7+//7+/f/99PD/+9fH//m+o//3q4j/9p53//Wbcv/2oXv/+LGR//rN
uP/98ev//v79//7+/f/9/f3//v7+/9ra2v8gIB//EgoG/7JlQv/nglb/8IdZ//OJWv95RC3/AAAA/wAA
AL4AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAAAP96RS3/84la//OJ
Wv/wh1n/6INW/7FkQf8SCgb/Hh4e/9vb2//+/v7//v79//39/f/+/v3//v79//7+/f/9/f3//v79//39
/f/+/v7//v7+//7+/v/+/v3//f39//7+/f/9/f3/2tra/x0dHf8TCgf/smVC/+iCVv/wh1n/84la//OJ
Wv95RC3/AAAA/wAAAL0AAAB/AAAAQQAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAGAAA
AP96RS3/84la//OJWv/ziVr/8IdZ/+eCVv+wY0H/EgoG/yAgIP/a2tr//v7+//39/f/+/v3//v7+//7+
/f/+/v7//v7+//7+/f/+/v7//v7+//7+/v/+/v3//f39//7+/v/Z2dn/Hx8f/xMKB/+yZEL/54JW//CH
Wf/ziVr/84la//OJWv95RC3/AAAA/wAAALkAAAB9AAAAQAAAABgAAAAGAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAFAAAAFgAAAP96RS3/84la//OJWv/ziVr/84la//CHWf/nglb/sWRB/xEJBv8gICD/29vb//7+
/f/+/v3//v7+//7+/f/+/v3//v7+//39/f/+/v3//v79//7+/v/+/v7//f39/9ra2v8gHx//EQoG/7Jl
Qv/nglb/8IdZ//OJWv/ziVr/84la//OJWv95RC3/AAAA/wAAAKwAAABzAAAAOwAAABYAAAAFAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAEAAAAEgAAAP96RS3/84la//OJWv/ziVr/84la//OJWv/wh1n/6INW/7Fk
Qf8SCgb/Hh4e/9vb2//+/v3//v79//7+/f/+/v3//v79//39/f/+/v7//v79//7+/v/+/v3/2trZ/x0d
Hf8TCwf/smVC/+iCVv/wh1n/84la//OJWv/ziVr/84la//OJWv95RC3/AAAA/wAAAI0AAABfAAAAMQAA
ABIAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADAAAAP89Ihb/ekUt/3pFLf96RS3/ekUt/3pF
Lf95RC3/d0Ms/3JAKv9EJhn/AAAA/yAgIP/a2tr//v7+//39/f/9/f3//v79//39/f/+/v3//v7+//7+
/v/Z2dn/Hx8f/wAAAP9FJxn/ckAq/3dDLP95RC3/eUQt/3lELf95RC3/eUQt/3lELf88Ihb/AAAA/wAA
AF8AAABAAAAAIQAAAAwAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8gICD/29vb//39/f/9/f3//v7+//39
/f/9/f3//v7+/9ra2v8fHx//AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAADEAAAAhAAAAEQAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA
AAYAAAAMAAAAEgAAABYAAAAXAAAAGAAAABgAAAAYAAAAGAAAABgAAAAbAAAAIwAAAFUAAADsHh4e/tvb
2//+/v7//v7+//7+/v/+/v7/2tra/h0dHf8AAADrAAAAVAAAACMAAAAbAAAAGAAAABgAAAAYAAAAGAAA
ABgAAAAYAAAAGAAAABgAAAAXAAAAFgAAABIAAAAMAAAABgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAUAAAAFAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAACQAA
ABIAAABJAAAA6yAgIP7a2tr//v7+//39/f/Z2dn/Hx8f/gAAAOoAAABIAAAAEgAAAAkAAAAGAAAABgAA
AAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAFAAAABQAAAAQAAAADAAAAAQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAQAAAAQAAAANAAAARQAAAO0gICD+29vb/tra2v4fHx/+AAAA7AAAAEQAAAANAAAABAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAADAAAAEIAAADqHh4e/h0dHf4AAADpAAAAQQAA
AAwAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAkAAAA9AAAA6QAA
AOgAAAA7AAAACQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAIAAAAFAAAANAAAADMAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAO/AAAAAAH
AA74AAAAAAMADvAAAAAAAQAO8AAAAAABAA7wAAAAAAEADvAAAAAAAQAO8AAAAAABAA7wAAAAAAEADvAA
AAAAAQAO8AAAAAABAA7wAAAAAAEADvAAAAAAAQAO4AAAAAABAA7AAAAAAAEADoAAAAAAAQAOAAAAAAAA
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
/f/9/f3//f39//39/f/9/f3//f39//7+/f/9/f3//f39//r6+v9lZWX/AgEB/y4aEP9kOCX/mVY4/8Vv
Sf+nXj7/AAAA/wAAALgAAABsAAAAKgAAAAoAAAABAAAAAAAAAAAAAAAAAAAABAAAABoAAAD/kFE1/5hW
OP9jNyT/LRkQ/wIBAf9oaGj/+/v7//7+/v/+/v3//fr4//TOwP/pn4T/335a/9hrRP/VZ0H/13NS/96S
ef/txbj//Pn3//7+/f/9/f3/+/v7/2VlZf8CAQH/LRkQ/2M3JP+YVjj/kFE1/wAAAP8AAAC5AAAAbAAA
ACoAAAAKAAAAAQAAAAAAAAAAAAAAAQAAAAkAAAAnAAAA/209KP9jOCT/LRkQ/wIBAf9oaGj/+/v7//7+
/f/+/v7/+NXG/+qKY//idUn/33BF/9xsQv/ZaD//1mQ8/9JfOP/PWzX/zFcx/9BpSf/tx7v//v79//7+
/v/7+/v/ZWVl/wIBAP8tGRD/Yzgk/209KP8AAAD/AAAAvQAAAG4AAAAqAAAACgAAAAEAAAAAAAAAAQAA
AAUAAAAXAAAAQgAAAP9FJxn/LRkQ/wIBAf9nZ2f//Pz8//7+/v/9/Pz/97uh/+yCVP/pfVD/5XpN/+J1
Sv/gcUf/3W1E/9lpQP/VZDz/0l85/89bNf/MVzH/yVMv/+Cdif/9/Pz//v7+//v7+/9lZWX/AgEB/y0Z
EP9FJxn/AAAA/wAAAMQAAAB2AAAALgAAAAoAAAABAAAAAAAAAAUAAAATAAAAMwAAAGwAAAD/HBAK/wIB
Af9oaGj/+/v7//7+/f/+/v3/+b6k//KKW//vhlj/7INW/+l/U//me0//43dM/+BySP/dbkX/2WlA/9Zl
PP/TYDn/z1s1/8xXMf/JUy7/4J2J//7+/f/+/v3/+/v6/2ZmZf8CAQH/HBAK/wAAAP8AAADRAAAAhwAA
ADkAAAAOAAAAAQAAAAUAAAATAAAAMAAAAGEAAACeAAAA/wAAAP9nZ2f/+/v7//7+/f/+/v3/+9rK//OM
Xv/zjF7/8oxe//CJXP/thVj/6YBV/+d8Uf/keE3/4HNJ/91uRf/aaUH/1mU9/9NgOf/PWzb/zFcx/8lU
L//tx7v//v79//39/f/7+/v/ZWVl/wAAAP8AAAD/AAAA4AAAAKEAAABSAAAAHAAAAAUAAAASAAAAMAAA
AGAAAACZAAAA0gAAAP9oaGj/+/v7//39/f/9/f3//fv5//Wcc//zjmD/9I9h//SPY//zj2L/8Itf/+2H
W//qglf/531S/+R4Tv/gc0r/3W9F/9pqQf/WZT3/02A5/89bNv/MVzH/0GlJ//z59//9/f3//v79//v7
+/9lZWX/AAAA/wAAAPAAAADCAAAAeQAAADgAAAATAAAAKgAAAFoAAACVAAAAzwAAAPxoaGj/+/v7//7+
/v/+/v7//v79//vYyP/0j2H/9JFk//SSZv/0k2f/9JNo//OSZv/wjWL/7Yhd/+qDWP/nflP/43hO/+Bz
Sv/dbkX/2mpB/9ZlPf/TYDn/z1s1/8xXMf/txbj//f39//7+/v/+/v3/+/v6/2VlZf8AAAD+AAAA4QAA
AKUAAABgAAAAKgAAAEIAAACBAAAAxwAAAPxnZ2f/+/v7//7+/v/+/v7//v7+//7+/v/4tpj/9JJl//SV
av/0l23/9Jhu//WYbv/0l23/85Rq//CPZf/til//6oRZ/+d+VP/jeU7/4HNK/91vRf/aaUH/1mU9/9Jf
Of/PWzX/35J5//7+/f/+/v7//v7+//7+/v/7+/v/ZWVl/wAAAP0AAADOAAAAhQAAAEIAAABIAAAAoAAA
APpoaGj/+/v7//7+/v/+/v3//v7+//7+/v/+/v7/9qJ8//SWbP/1m3L/9Z11//Wed//1nnf/9Z11//Wb
cv/0l27/8ZFn/+6LYP/qhFr/535U/+N5T//gc0r/3W5F/9ppQf/WZDz/0l84/9dzUv/9/f3//v7+//7+
/v/+/v7//f39//v7+/9lZWX/AAAA+wAAAKMAAABIAAAAYQAAAPRnZ2f/+/v7//7+/v/9/f3//f39//39
/f/+/v3//f39//Wacv/1nHT/9aJ8//algP/2poL/9qaC//akf//1oXv/9Z12//SZb//xkmj/7Ytg/+mE
Wf/nflP/43hO/+BzSf/dbkX/2WlA/9VkPP/VZ0H//f39//7+/f/9/f3//f39//39/f/9/f3/+vr6/2Vl
Zf8AAAD0AAAAYQAAAEwAAADxaGho/vv7+//+/v7//v7+//7+/f/+/v7//v7+//7+/f/2n3j/9qN9//ar
iP/3r4//97GR//exkf/3roz/9qmG//akf//1n3f/9Jlw//GRZ//til//6oNY/+d9Uv/keE3/4XJJ/91t
RP/ZaD//2GtE//39/f/+/v3//v79//7+/v/9/f3//v7+//v7+/9nZ2f+AAAA8AAAAEsAAAAKAAAATgAA
APFpaWn++/v7//39/f/9/f3//v7+//7+/f/9/f3/962M//aqh//3tJb/+Lqf//i9ov/4vKH/97ib//ey
k//2q4n/9qR+//Wddf/0l23/8I9k/+2IXf/qglf/53xR/+N3TP/fcUf/3GxC/99+Wv/9/f3//v79//7+
/f/+/v3//f39//v7+/9oaGj+AAAA8gAAAFIAAAALAAAAAgAAAAoAAABOAAAA8WhoaP78/Pz//f39//7+
/v/+/v3//v79//nErP/3sJD/+L6j//nGr//5ybT/+ciy//jDq//4u6D/97KT//aphv/1oXv/9Zpx//OU
af/wjWH/7Ydb/+qAVf/ne0//4nVK/99wRf/pn4T//f39//7+/f/+/v3//v7+//v7+/9nZ2f/AAAA9QAA
AGcAAAATAAAAAwAAAAAAAAACAAAACgAAAFAAAADxaWlp//v7+//+/v3//v7+//7+/f/84tb/97WX//nF
rv/60L7/+tXE//rTwf/5zbj/+MOr//i4nP/3ro3/9qR///WddP/0l2z/85Jm//CLX//thVj/6n9T/+Z6
Tv/idEj/9M/A//39/f/+/v7//v79//v7+/9oaGj/AAAA+QAAAJMAAAAyAAAADAAAAAEAAAAAAAAAAAAA
AAIAAAAOAAAAWwAAAP9paWn//Pz8//7+/f/+/v3//fv6//nBp//5x7H/+tbF//vczv/72sz/+tPB//nI
sv/5vaL/97GR//amgv/2nnf/9Zhu//STaP/zj2P/8Ilc/+yDVv/pflH/6Ypj//36+P/9/f3//v79//v7
+/9oaGj/AAAA/wAAAMkAAABxAAAAKwAAAAoAAAABAAAAAAAAAAAAAAAAAAAABQAAAB8AAAD/AQAA/2ho
aP/7+/v//v79//7+/v/86N//+cSt//rTwv/73M7/+9zO//rVxP/5yrT/+L2j//exkf/2p4P/9Z53//WY
bv/0k2f/9JBj//KNXv/vh1n/7IJU//jVx//+/v3//v79//v7+/9nZ2f/AQEA/wAAAP8AAAC6AAAAbQAA
ACoAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAXAAAA/3E/Kf8MBwT/aWlp//v7+//+/v7//v7+//vc
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
AEsAAAAKAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAACAAAACQAAAEgAAADwAAAA7wAAAEYAAAAJAAAAAgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAAAFAAAAPwAAAD0AAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/gAAAA//AA7wAAAAA/8ADvAAAAAB/wAO4AAAAAH/
AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAD/AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAD/AA7gAAAAAP8ADsAA
AAAA/wAOgAAAAAD/AA6AAAAAAP8ADgAAAAAA/wAOAAAAAAD/AA4AAAAAAP8ADgAAAAAA/wAOAAAAAAD/
AA4AAAAAAP8ADgAAAAAA/wAOAAAAAAD/AA4AAAAAAP8ADoAAAAAA/wAOwAAAAAD/AA7gAAAAAP8ADuAA
AAAA/wAO4AAAAAD/AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAD/AA7gAAAAAP8ADuAAAAAA/wAO4AAAAAH/
AA7gAAAAAf8ADvAAAAAB/wAO+AAAAAf/AA7//gB///8ADv//AP///wAO//+B////AA4oAAAAIAAAAEAA
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAA
AAEAAAABAAAAAQAAAAIAAAAHAAAAGwAAAEgAAACIAAAAxQAAAMUAAACHAAAARwAAABsAAAAHAAAAAgAA
AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABgAA
AA0AAAARAAAAEwAAABMAAAATAAAAGAAAACoAAABUAAAAkQAAANINDQ39DAwM/QAAANIAAACQAAAAUwAA
ACoAAAAYAAAAEwAAABMAAAATAAAAEwAAABMAAAARAAAADQAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAYAAAAZAAAANwAAAEoAAABQAAAAUAAAAFQAAABhAAAAfwAAAKwAAADcDQ0N/cLCwv/BwcH/DAwM/QAA
ANwAAACsAAAAfwAAAGEAAABUAAAAUAAAAFAAAABQAAAAUAAAAEoAAAA3AAAAGQAAAAYAAAAAAAAAAAAA
AAAAAAABAAAADQAAADcAAAB4AAAAogAAAK4AAACwAAAAtgAAAMMAAADYAAAA7g0NDf7CwsL//f39//39
/f/BwcH/DAwM/gAAAO4AAADYAAAAwwAAALYAAACwAAAArwAAAK8AAACuAAAAogAAAHgAAAA3AAAADQAA
AAEAAAAAAAAAAAAAAAEAAAARAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8NDQ3/wsLC//39
/f/9/f3//f39//39/f/BwcH/DAwM/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAogAA
AEoAAAARAAAAAQAAAAAAAAAAAAAAAQAAABMAAAD/84la/+6GWP/be1H/r2NB/3A/Kf8tGRD/Dg4N/8PD
wv/+/v3//v79//7+/f/9/f3//v7+//7+/v/BwcH/Dg0N/y0ZEP9wPyn/sGNB/9t8Uf/uhlj/84la/wAA
AP8AAACuAAAAUAAAABMAAAABAAAAAAAAAAAAAAABAAAAEwAAAP/uhlj/23tR/7BjQf9wPyn/LRkQ/w4O
Df/Dw8P//v7+//7+/f/+/v3//v79//39/f/+/v7//v7+//39/f/BwcH/Dg0M/y0ZEP9xPyn/sGNB/9t8
Uf/uhlj/AAAA/wAAAK8AAABQAAAAEwAAAAEAAAAAAAAAAAAAAAEAAAATAAAA/9t8Uf+wY0H/cUAp/y0Z
EP8ODg3/w8PC//7+/f/9/f3//v79//7+/f/9/f3//f39//7+/f/+/v3//f39//39/f/BwcH/Dg0N/y0Z
EP9xQCr/sGNB/9t8Uf8AAAD/AAAArwAAAFAAAAATAAAAAQAAAAAAAAAAAAAAAgAAABgAAAD/r2NB/3A/
Kf8tGRD/Dg4N/8PDw//+/v7//v79//nm3v/trZT/4YNh/9lrRP/VZkD/13ZW/+GeiP/14Nn//v79//7+
/f/BwcH/Dg0N/y0ZEP9wPyn/sGNB/wAAAP8AAACwAAAAUAAAABMAAAABAAAAAAAAAAAAAAAHAAAAKgAA
AP9wPyn/LRkQ/w4ODf/Dw8P//v7+//36+P/ztZr/53tO/+J1Sf/ecEX/22tB/9ZlPf/SXzn/zlo0/8tW
Mf/fmYT//Pn3//7+/v/BwcH/Dg0M/y0ZEP9wPyn/AAAA/wAAALYAAABUAAAAEwAAAAEAAAAAAAAABQAA
ABsAAABUAAAA/y0ZEP8ODg3/w8PC//7+/v/9+vn/9qiG/+6FV//qgFP/53tQ/+N2S//fcUf/22tC/9dm
Pf/SYDn/zlo0/8pVL//Xf2T//Pn3//7+/f/BwcH/Dg0M/y0ZEP8AAAD/AAAAwwAAAGEAAAAYAAAAAgAA
AAUAAAAZAAAARwAAAJAAAAD/Dg4N/8PDw//+/v7//v79//i7oP/zjF3/8oxe/++IWv/rg1b/531S/+R3
Tf/fcUj/22xD/9dmPv/TYDn/zlo0/8pVMP/fmYT//v79//39/f/BwcH/Dg0N/wAAAP8AAADYAAAAfwAA
ACoAAAAGAAAAGAAAAEYAAACKAAAA0g0NDf/Dw8L//f39//39/f/86uL/9I5g//SPYv/0kGP/849j/++K
Xv/shVn/6H9U/+R4Tv/fckj/22xD/9dmPv/TYDn/z1s1/8tWMf/14Nn//f39//7+/f/BwcH/DAwM/wAA
AO4AAACsAAAAUwAAABkAAAA6AAAAgQAAAM4NDQ39w8PD//7+/v/+/v7//v7+//i+pP/0kWT/9JNo//SV
af/0lWr/85Nn/++NYv/shlv/6H9V/+N5Tv/fckj/22xD/9dmPv/TYDn/zlo0/+GeiP/+/v3//v7+//7+
/v/BwcH/DAwM/gAAANsAAACJAAAAOgAAAFAAAAC1DQ0N/cPDw//+/v7//v7+//7+/v/+/v7/9qR///SW
a//1mnH/9Ztz//Wbc//1mnH/9JZs//CPZf/sh13/54BV/+N5T//fckj/22xD/9dmPv/SXzj/13dW//7+
/f/+/v7//v7+//39/f/BwcH/DAwM/QAAALkAAABRAAAAcA0NDfrDw8P//v7+//39/f/+/v3//v79//39
/f/1mnH/9Z52//ajfv/2pYH/9qWA//aifP/1nnb/9Jhv//CQZv/rh13/539V/+N4Tv/fckj/22tC/9Zl
Pf/VZkD//f39//39/f/+/v3//f39//39/f/BwcH/DAwM+gAAAHAAAABVDQ0N9sPDw//+/v7//f39//7+
/v/+/v7//v79//agev/2p4P/96+P//eyk//3spL/962M//ang//2oHn/9Jlv//CPZP/rhlv/6H5U/+R3
Tf/gcUf/2mpB/9lsRf/+/v3//v79//7+/v/9/f3//f39/8PDw/8NDQ32AAAAVAAAAAgAAABWDQ0N9sPD
w//9/f3//v79//7+/f/+/v3/97KT//exkf/4vaL/+cGo//jAp//4up7/97GR//ang//1nnb/85Zs/++N
Yf/rhFn/531S/+N2S//eb0X/4YNh//7+/f/+/v3//v79//39/f/CwsL/DQ0N+AAAAF8AAAAJAAAAAQAA
AAgAAABXDQ0N98PDw//+/v3//v79//7+/f/6zrr/+Lqd//nKtP/60L7/+c67//nGr//4up7/962M//ai
fP/1mXD/85Jn/++KXv/rg1b/53xQ/+J1Sf/trZT//v79//7+/v/+/v3/wsLC/w0NDfsAAACFAAAAGgAA
AAIAAAAAAAAAAQAAAAkAAABgDQ0N/8TEw//+/v3//v79//3w6v/4vaP/+tG+//vazP/72cr/+s+7//nB
p//3spL/9qWA//Wbc//0lWr/849j/++IW//rgVT/53tP//nm3v/9/f3//v7+/8PDwv8NDQ3/AAAAxAAA
AFUAAAATAAAAAQAAAAAAAAAAAAAAAgAAABoAAAD/FREQ/8TEw//+/v7//v7+//vZyf/5zbn/+9rM//vb
zP/60L7/+cKp//ezk//2pYH/9Ztz//SVaf/0kGP/8oxe/+6FV//ztZr//v7+//7+/f/Dw8P/FREQ/wAA
AP8AAACxAAAAUQAAABMAAAABAAAAAAAAAAAAAAABAAAAEwAAAP+hWjv/FREQ/8TEw//+/v3//vz7//rT
wf/5zbn/+tG+//nKtP/4vaL/96+P//ajfv/1mnH/9JNo//SPYf/zjF3/9qmG//36+f/+/v7/w8PC/xUR
EP+iWzz/AAAA/wAAAK8AAABQAAAAEwAAAAEAAAAAAAAAAAAAAAEAAAATAAAA/+yFWP+hWzv/FREQ/8TE
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
rEGAAKxBgACsQYAArEHAAaxB/D+sQQ==
</value>
</data>
</root>
\ No newline at end of file
source/XLRStoreClient/boxForm/FrmAxisMove.Designer.cs
0 → 100644
查看文件 @
93b2086
namespace
OnlineStore.XLRStore
{
partial
class
FrmAxisMove
{
/// <summary>
/// Required designer variable.
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected
override
void
Dispose
(
bool
disposing
)
{
if
(
disposing
&&
(
components
!=
null
))
{
components
.
Dispose
();
}
base
.
Dispose
(
disposing
);
}
#
region
Windows
Form
Designer
generated
code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private
void
InitializeComponent
()
{
this
.
components
=
new
System
.
ComponentModel
.
Container
();
this
.
groupBox1
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
flowLayoutPanel1
=
new
System
.
Windows
.
Forms
.
FlowLayoutPanel
();
this
.
groupBox4
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtUpdown_P11
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtUpdown_P10
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtUpdown_P9
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtUpdown_P8
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtUpdown_P5
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtUpdown_P4
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtUpdown_P3
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtUpdown_P2
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtUpdown_P1
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnUpdown_P9
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnUpdown_P4
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnUpdown_P3
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnUpdown_P1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnUpdown_P11
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnUpdown_P10
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnUpdown_P8
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnUpdown_P5
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnUpdown_P2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox5
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
btnPullAxis_Updown_P2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnPullAxis_Updown_P1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtPullAxis_Updown_P2
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtPullAxis_Updown_P1
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
groupBox2
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtMoveAxis_P2
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtMoveAxis_P1
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnMoveAxis_P2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnMoveAxis_P1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox3
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtPullAxis_Inout_P1
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnPullAxis_Inout_P1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox6
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
btnXAxis_A_P1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtXAxis_A_P2
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnXAxis_A_P2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtXAxis_A_P1
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
groupBox8
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtComAxis_A_P1
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnComAxis_A_P1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox7
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtMiddleAxis_A_P3
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtMiddleAxis_A_P2
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtMiddleAxis_A_P1
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnMiddleAxis_A_P1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnMiddleAxis_A_P3
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnMiddleAxis_A_P2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox9
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
btnXAxis_B_P1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtXAxis_B_P2
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnXAxis_B_P2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtXAxis_B_P1
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
groupBox10
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtMiddleAxis_B_P3
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtMiddleAxis_B_P2
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtMiddleAxis_B_P1
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnMiddleAxis_B_P1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnMiddleAxis_B_P3
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnMiddleAxis_B_P2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox11
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtComAxis_B_P1
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnComAxis_B_P1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox12
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
label3
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnSavePoints
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox13
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
flowLayoutPanel2
=
new
System
.
Windows
.
Forms
.
FlowLayoutPanel
();
this
.
groupBox18
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
label2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnSavePosIds
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
combBoxPosIds
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
groupBox14
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtUpdown_P7_P13
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtUpdown_P6_P12
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnUpdown_P6_P12
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnUpdown_P7_P13
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox15
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtMoveAxis_P3
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnMoveAxis_P3
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox19
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtXAxis_AB_P3
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnXAxis_AB_P3
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox16
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtPullAxis_Inout_P3_P5
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnPullAxis_Inout_P3_P5
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtPullAxis_Inout_P2_P4
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnPullAxis_Inout_P2_P4
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox17
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
btnPullAxis_Updown_P4
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnPullAxis_Updown_P3
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtPullAxis_Updown_P4
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtPullAxis_Updown_P3
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
groupBox24
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
txtComAxis_AB_P3
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnComAxis_AB_P3
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtComAxis_AB_P2
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnComAxis_AB_P2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
tabControl1
=
new
System
.
Windows
.
Forms
.
TabControl
();
this
.
tabPage1
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
tabPage2
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
tableLayoutPanel1
=
new
System
.
Windows
.
Forms
.
TableLayoutPanel
();
this
.
tableLayoutPanel2
=
new
System
.
Windows
.
Forms
.
TableLayoutPanel
();
this
.
axisMoveControl1
=
new
OnlineStore
.
XLRStore
.
AxisMoveControl
();
this
.
tableLayoutPanel3
=
new
System
.
Windows
.
Forms
.
TableLayoutPanel
();
this
.
groupBox22
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
Row_Check_6
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_5
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_4
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_3
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_13
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_14
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_15
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_11
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_12
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_9
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_10
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_7
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Row_Check_8
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
groupBox21
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
Column_Check_B2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Column_Check_B3
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Column_Check_B4
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Column_Check_B5
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Column_Check_B6
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Column_Check_B1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
BHorizontal_Check
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
groupBox20
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
AHorizontal_Check
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Column_Check_A2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Column_Check_A3
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Column_Check_A4
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Column_Check_A5
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Column_Check_A6
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
Column_Check_A1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
timer1
=
new
System
.
Windows
.
Forms
.
Timer
(
this
.
components
);
this
.
groupBox1
.
SuspendLayout
();
this
.
flowLayoutPanel1
.
SuspendLayout
();
this
.
groupBox4
.
SuspendLayout
();
this
.
groupBox5
.
SuspendLayout
();
this
.
groupBox2
.
SuspendLayout
();
this
.
groupBox3
.
SuspendLayout
();
this
.
groupBox6
.
SuspendLayout
();
this
.
groupBox8
.
SuspendLayout
();
this
.
groupBox7
.
SuspendLayout
();
this
.
groupBox9
.
SuspendLayout
();
this
.
groupBox10
.
SuspendLayout
();
this
.
groupBox11
.
SuspendLayout
();
this
.
groupBox12
.
SuspendLayout
();
this
.
groupBox13
.
SuspendLayout
();
this
.
flowLayoutPanel2
.
SuspendLayout
();
this
.
groupBox18
.
SuspendLayout
();
this
.
groupBox14
.
SuspendLayout
();
this
.
groupBox15
.
SuspendLayout
();
this
.
groupBox19
.
SuspendLayout
();
this
.
groupBox16
.
SuspendLayout
();
this
.
groupBox17
.
SuspendLayout
();
this
.
groupBox24
.
SuspendLayout
();
this
.
tabControl1
.
SuspendLayout
();
this
.
tabPage1
.
SuspendLayout
();
this
.
tabPage2
.
SuspendLayout
();
this
.
tableLayoutPanel1
.
SuspendLayout
();
this
.
tableLayoutPanel2
.
SuspendLayout
();
this
.
tableLayoutPanel3
.
SuspendLayout
();
this
.
groupBox22
.
SuspendLayout
();
this
.
groupBox21
.
SuspendLayout
();
this
.
groupBox20
.
SuspendLayout
();
this
.
SuspendLayout
();
//
// groupBox1
//
this
.
groupBox1
.
Controls
.
Add
(
this
.
flowLayoutPanel1
);
this
.
groupBox1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
6
);
this
.
groupBox1
.
Name
=
"groupBox1"
;
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
1651
,
402
);
this
.
groupBox1
.
TabIndex
=
1
;
this
.
groupBox1
.
TabStop
=
false
;
this
.
groupBox1
.
Text
=
"存储机构位置信息"
;
//
// flowLayoutPanel1
//
this
.
flowLayoutPanel1
.
Controls
.
Add
(
this
.
groupBox4
);
this
.
flowLayoutPanel1
.
Controls
.
Add
(
this
.
groupBox5
);
this
.
flowLayoutPanel1
.
Controls
.
Add
(
this
.
groupBox2
);
this
.
flowLayoutPanel1
.
Controls
.
Add
(
this
.
groupBox3
);
this
.
flowLayoutPanel1
.
Controls
.
Add
(
this
.
groupBox6
);
this
.
flowLayoutPanel1
.
Controls
.
Add
(
this
.
groupBox8
);
this
.
flowLayoutPanel1
.
Controls
.
Add
(
this
.
groupBox7
);
this
.
flowLayoutPanel1
.
Controls
.
Add
(
this
.
groupBox9
);
this
.
flowLayoutPanel1
.
Controls
.
Add
(
this
.
groupBox10
);
this
.
flowLayoutPanel1
.
Controls
.
Add
(
this
.
groupBox11
);
this
.
flowLayoutPanel1
.
Controls
.
Add
(
this
.
groupBox12
);
this
.
flowLayoutPanel1
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
flowLayoutPanel1
.
FlowDirection
=
System
.
Windows
.
Forms
.
FlowDirection
.
TopDown
;
this
.
flowLayoutPanel1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
19
);
this
.
flowLayoutPanel1
.
Name
=
"flowLayoutPanel1"
;
this
.
flowLayoutPanel1
.
Size
=
new
System
.
Drawing
.
Size
(
1645
,
380
);
this
.
flowLayoutPanel1
.
TabIndex
=
0
;
//
// groupBox4
//
this
.
groupBox4
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
192
)))),
((
int
)(((
byte
)(
192
)))));
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtUpdown_P11
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtUpdown_P10
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtUpdown_P9
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtUpdown_P8
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtUpdown_P5
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtUpdown_P4
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtUpdown_P3
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtUpdown_P2
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
txtUpdown_P1
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnUpdown_P9
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnUpdown_P4
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnUpdown_P3
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnUpdown_P1
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnUpdown_P11
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnUpdown_P10
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnUpdown_P8
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnUpdown_P5
);
this
.
groupBox4
.
Controls
.
Add
(
this
.
btnUpdown_P2
);
this
.
groupBox4
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
3
);
this
.
groupBox4
.
Name
=
"groupBox4"
;
this
.
groupBox4
.
Size
=
new
System
.
Drawing
.
Size
(
298
,
355
);
this
.
groupBox4
.
TabIndex
=
2
;
this
.
groupBox4
.
TabStop
=
false
;
this
.
groupBox4
.
Text
=
"移栽升降轴"
;
//
// txtUpdown_P11
//
this
.
txtUpdown_P11
.
Location
=
new
System
.
Drawing
.
Point
(
154
,
316
);
this
.
txtUpdown_P11
.
Name
=
"txtUpdown_P11"
;
this
.
txtUpdown_P11
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtUpdown_P11
.
TabIndex
=
22
;
//
// txtUpdown_P10
//
this
.
txtUpdown_P10
.
Location
=
new
System
.
Drawing
.
Point
(
154
,
280
);
this
.
txtUpdown_P10
.
Name
=
"txtUpdown_P10"
;
this
.
txtUpdown_P10
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtUpdown_P10
.
TabIndex
=
21
;
//
// txtUpdown_P9
//
this
.
txtUpdown_P9
.
Location
=
new
System
.
Drawing
.
Point
(
154
,
244
);
this
.
txtUpdown_P9
.
Name
=
"txtUpdown_P9"
;
this
.
txtUpdown_P9
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtUpdown_P9
.
TabIndex
=
20
;
//
// txtUpdown_P8
//
this
.
txtUpdown_P8
.
Location
=
new
System
.
Drawing
.
Point
(
154
,
208
);
this
.
txtUpdown_P8
.
Name
=
"txtUpdown_P8"
;
this
.
txtUpdown_P8
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtUpdown_P8
.
TabIndex
=
19
;
//
// txtUpdown_P5
//
this
.
txtUpdown_P5
.
Location
=
new
System
.
Drawing
.
Point
(
154
,
172
);
this
.
txtUpdown_P5
.
Name
=
"txtUpdown_P5"
;
this
.
txtUpdown_P5
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtUpdown_P5
.
TabIndex
=
18
;
//
// txtUpdown_P4
//
this
.
txtUpdown_P4
.
Location
=
new
System
.
Drawing
.
Point
(
154
,
136
);
this
.
txtUpdown_P4
.
Name
=
"txtUpdown_P4"
;
this
.
txtUpdown_P4
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtUpdown_P4
.
TabIndex
=
17
;
//
// txtUpdown_P3
//
this
.
txtUpdown_P3
.
Location
=
new
System
.
Drawing
.
Point
(
154
,
100
);
this
.
txtUpdown_P3
.
Name
=
"txtUpdown_P3"
;
this
.
txtUpdown_P3
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtUpdown_P3
.
TabIndex
=
16
;
//
// txtUpdown_P2
//
this
.
txtUpdown_P2
.
Location
=
new
System
.
Drawing
.
Point
(
154
,
64
);
this
.
txtUpdown_P2
.
Name
=
"txtUpdown_P2"
;
this
.
txtUpdown_P2
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtUpdown_P2
.
TabIndex
=
15
;
//
// txtUpdown_P1
//
this
.
txtUpdown_P1
.
Location
=
new
System
.
Drawing
.
Point
(
154
,
28
);
this
.
txtUpdown_P1
.
Name
=
"txtUpdown_P1"
;
this
.
txtUpdown_P1
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtUpdown_P1
.
TabIndex
=
14
;
//
// btnUpdown_P9
//
this
.
btnUpdown_P9
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
239
);
this
.
btnUpdown_P9
.
Name
=
"btnUpdown_P9"
;
this
.
btnUpdown_P9
.
Size
=
new
System
.
Drawing
.
Size
(
146
,
32
);
this
.
btnUpdown_P9
.
TabIndex
=
13
;
this
.
btnUpdown_P9
.
Text
=
"B上暂存区取料低点P9"
;
this
.
btnUpdown_P9
.
UseVisualStyleBackColor
=
true
;
this
.
btnUpdown_P9
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdown_P9_Click
);
//
// btnUpdown_P4
//
this
.
btnUpdown_P4
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
131
);
this
.
btnUpdown_P4
.
Name
=
"btnUpdown_P4"
;
this
.
btnUpdown_P4
.
Size
=
new
System
.
Drawing
.
Size
(
146
,
32
);
this
.
btnUpdown_P4
.
TabIndex
=
12
;
this
.
btnUpdown_P4
.
Text
=
"A下暂存区放料高点P4"
;
this
.
btnUpdown_P4
.
UseVisualStyleBackColor
=
true
;
this
.
btnUpdown_P4
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdown_P4_Click
);
//
// btnUpdown_P3
//
this
.
btnUpdown_P3
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
95
);
this
.
btnUpdown_P3
.
Name
=
"btnUpdown_P3"
;
this
.
btnUpdown_P3
.
Size
=
new
System
.
Drawing
.
Size
(
146
,
32
);
this
.
btnUpdown_P3
.
TabIndex
=
11
;
this
.
btnUpdown_P3
.
Text
=
"A上暂存区取料低点P3"
;
this
.
btnUpdown_P3
.
UseVisualStyleBackColor
=
true
;
this
.
btnUpdown_P3
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdown_P3_Click
);
//
// btnUpdown_P1
//
this
.
btnUpdown_P1
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
23
);
this
.
btnUpdown_P1
.
Name
=
"btnUpdown_P1"
;
this
.
btnUpdown_P1
.
Size
=
new
System
.
Drawing
.
Size
(
146
,
32
);
this
.
btnUpdown_P1
.
TabIndex
=
10
;
this
.
btnUpdown_P1
.
Text
=
"待机点P1"
;
this
.
btnUpdown_P1
.
UseVisualStyleBackColor
=
true
;
this
.
btnUpdown_P1
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdown_P1_Click
);
//
// btnUpdown_P11
//
this
.
btnUpdown_P11
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
311
);
this
.
btnUpdown_P11
.
Name
=
"btnUpdown_P11"
;
this
.
btnUpdown_P11
.
Size
=
new
System
.
Drawing
.
Size
(
146
,
32
);
this
.
btnUpdown_P11
.
TabIndex
=
6
;
this
.
btnUpdown_P11
.
Text
=
"B下暂存区取料低点P11"
;
this
.
btnUpdown_P11
.
UseVisualStyleBackColor
=
true
;
this
.
btnUpdown_P11
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdown_P11_Click
);
//
// btnUpdown_P10
//
this
.
btnUpdown_P10
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
275
);
this
.
btnUpdown_P10
.
Name
=
"btnUpdown_P10"
;
this
.
btnUpdown_P10
.
Size
=
new
System
.
Drawing
.
Size
(
146
,
32
);
this
.
btnUpdown_P10
.
TabIndex
=
5
;
this
.
btnUpdown_P10
.
Text
=
"B下暂存区取料高点P10"
;
this
.
btnUpdown_P10
.
UseVisualStyleBackColor
=
true
;
this
.
btnUpdown_P10
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdown_P10_Click
);
//
// btnUpdown_P8
//
this
.
btnUpdown_P8
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
203
);
this
.
btnUpdown_P8
.
Name
=
"btnUpdown_P8"
;
this
.
btnUpdown_P8
.
Size
=
new
System
.
Drawing
.
Size
(
146
,
32
);
this
.
btnUpdown_P8
.
TabIndex
=
4
;
this
.
btnUpdown_P8
.
Text
=
"B上暂存区取料高点P8"
;
this
.
btnUpdown_P8
.
UseVisualStyleBackColor
=
true
;
this
.
btnUpdown_P8
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdown_P8_Click
);
//
// btnUpdown_P5
//
this
.
btnUpdown_P5
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
167
);
this
.
btnUpdown_P5
.
Name
=
"btnUpdown_P5"
;
this
.
btnUpdown_P5
.
Size
=
new
System
.
Drawing
.
Size
(
146
,
32
);
this
.
btnUpdown_P5
.
TabIndex
=
3
;
this
.
btnUpdown_P5
.
Text
=
"A下暂存区放料低点P5"
;
this
.
btnUpdown_P5
.
UseVisualStyleBackColor
=
true
;
this
.
btnUpdown_P5
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdown_P5_Click
);
//
// btnUpdown_P2
//
this
.
btnUpdown_P2
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
59
);
this
.
btnUpdown_P2
.
Name
=
"btnUpdown_P2"
;
this
.
btnUpdown_P2
.
Size
=
new
System
.
Drawing
.
Size
(
146
,
32
);
this
.
btnUpdown_P2
.
TabIndex
=
2
;
this
.
btnUpdown_P2
.
Text
=
"A上暂存区取料高点P2"
;
this
.
btnUpdown_P2
.
UseVisualStyleBackColor
=
true
;
this
.
btnUpdown_P2
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdown_P2_Click
);
//
// groupBox5
//
this
.
groupBox5
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
192
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
192
)))));
this
.
groupBox5
.
Controls
.
Add
(
this
.
btnPullAxis_Updown_P2
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
btnPullAxis_Updown_P1
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
txtPullAxis_Updown_P2
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
txtPullAxis_Updown_P1
);
this
.
groupBox5
.
Location
=
new
System
.
Drawing
.
Point
(
307
,
3
);
this
.
groupBox5
.
Name
=
"groupBox5"
;
this
.
groupBox5
.
Size
=
new
System
.
Drawing
.
Size
(
294
,
100
);
this
.
groupBox5
.
TabIndex
=
3
;
this
.
groupBox5
.
TabStop
=
false
;
this
.
groupBox5
.
Text
=
"料斗拉取升降轴"
;
//
// btnPullAxis_Updown_P2
//
this
.
btnPullAxis_Updown_P2
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
55
);
this
.
btnPullAxis_Updown_P2
.
Name
=
"btnPullAxis_Updown_P2"
;
this
.
btnPullAxis_Updown_P2
.
Size
=
new
System
.
Drawing
.
Size
(
132
,
32
);
this
.
btnPullAxis_Updown_P2
.
TabIndex
=
3
;
this
.
btnPullAxis_Updown_P2
.
Text
=
"料屉提取水平点P2"
;
this
.
btnPullAxis_Updown_P2
.
UseVisualStyleBackColor
=
true
;
this
.
btnPullAxis_Updown_P2
.
Click
+=
new
System
.
EventHandler
(
this
.
btnPullAxis_Updown_P2_Click
);
//
// btnPullAxis_Updown_P1
//
this
.
btnPullAxis_Updown_P1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
17
);
this
.
btnPullAxis_Updown_P1
.
Name
=
"btnPullAxis_Updown_P1"
;
this
.
btnPullAxis_Updown_P1
.
Size
=
new
System
.
Drawing
.
Size
(
132
,
32
);
this
.
btnPullAxis_Updown_P1
.
TabIndex
=
2
;
this
.
btnPullAxis_Updown_P1
.
Text
=
"待机点P1"
;
this
.
btnPullAxis_Updown_P1
.
UseVisualStyleBackColor
=
true
;
this
.
btnPullAxis_Updown_P1
.
Click
+=
new
System
.
EventHandler
(
this
.
btnPullAxis_Updown_P1_Click
);
//
// txtPullAxis_Updown_P2
//
this
.
txtPullAxis_Updown_P2
.
Location
=
new
System
.
Drawing
.
Point
(
144
,
60
);
this
.
txtPullAxis_Updown_P2
.
Name
=
"txtPullAxis_Updown_P2"
;
this
.
txtPullAxis_Updown_P2
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtPullAxis_Updown_P2
.
TabIndex
=
8
;
//
// txtPullAxis_Updown_P1
//
this
.
txtPullAxis_Updown_P1
.
Location
=
new
System
.
Drawing
.
Point
(
144
,
22
);
this
.
txtPullAxis_Updown_P1
.
Name
=
"txtPullAxis_Updown_P1"
;
this
.
txtPullAxis_Updown_P1
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtPullAxis_Updown_P1
.
TabIndex
=
9
;
//
// groupBox2
//
this
.
groupBox2
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
224
)))),
((
int
)(((
byte
)(
192
)))));
this
.
groupBox2
.
Controls
.
Add
(
this
.
txtMoveAxis_P2
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
txtMoveAxis_P1
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
btnMoveAxis_P2
);
this
.
groupBox2
.
Controls
.
Add
(
this
.
btnMoveAxis_P1
);
this
.
groupBox2
.
Location
=
new
System
.
Drawing
.
Point
(
307
,
109
);
this
.
groupBox2
.
Name
=
"groupBox2"
;
this
.
groupBox2
.
Size
=
new
System
.
Drawing
.
Size
(
298
,
100
);
this
.
groupBox2
.
TabIndex
=
0
;
this
.
groupBox2
.
TabStop
=
false
;
this
.
groupBox2
.
Text
=
"行走机构"
;
//
// txtMoveAxis_P2
//
this
.
txtMoveAxis_P2
.
Location
=
new
System
.
Drawing
.
Point
(
154
,
66
);
this
.
txtMoveAxis_P2
.
Name
=
"txtMoveAxis_P2"
;
this
.
txtMoveAxis_P2
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtMoveAxis_P2
.
TabIndex
=
4
;
//
// txtMoveAxis_P1
//
this
.
txtMoveAxis_P1
.
Location
=
new
System
.
Drawing
.
Point
(
154
,
27
);
this
.
txtMoveAxis_P1
.
Name
=
"txtMoveAxis_P1"
;
this
.
txtMoveAxis_P1
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtMoveAxis_P1
.
TabIndex
=
3
;
//
// btnMoveAxis_P2
//
this
.
btnMoveAxis_P2
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
60
);
this
.
btnMoveAxis_P2
.
Name
=
"btnMoveAxis_P2"
;
this
.
btnMoveAxis_P2
.
Size
=
new
System
.
Drawing
.
Size
(
142
,
32
);
this
.
btnMoveAxis_P2
.
TabIndex
=
1
;
this
.
btnMoveAxis_P2
.
Text
=
"进出料机构取放点位P2"
;
this
.
btnMoveAxis_P2
.
UseVisualStyleBackColor
=
true
;
this
.
btnMoveAxis_P2
.
Click
+=
new
System
.
EventHandler
(
this
.
btnMoveAxis_P2_Click
);
//
// btnMoveAxis_P1
//
this
.
btnMoveAxis_P1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
22
);
this
.
btnMoveAxis_P1
.
Name
=
"btnMoveAxis_P1"
;
this
.
btnMoveAxis_P1
.
Size
=
new
System
.
Drawing
.
Size
(
142
,
32
);
this
.
btnMoveAxis_P1
.
TabIndex
=
0
;
this
.
btnMoveAxis_P1
.
Text
=
"待机点P1"
;
this
.
btnMoveAxis_P1
.
UseVisualStyleBackColor
=
true
;
this
.
btnMoveAxis_P1
.
Click
+=
new
System
.
EventHandler
(
this
.
btnMoveAxis_P1_Click
);
//
// groupBox3
//
this
.
groupBox3
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
192
)))));
this
.
groupBox3
.
Controls
.
Add
(
this
.
txtPullAxis_Inout_P1
);
this
.
groupBox3
.
Controls
.
Add
(
this
.
btnPullAxis_Inout_P1
);
this
.
groupBox3
.
Location
=
new
System
.
Drawing
.
Point
(
307
,
215
);
this
.
groupBox3
.
Name
=
"groupBox3"
;
this
.
groupBox3
.
Size
=
new
System
.
Drawing
.
Size
(
298
,
66
);
this
.
groupBox3
.
TabIndex
=
1
;
this
.
groupBox3
.
TabStop
=
false
;
this
.
groupBox3
.
Text
=
"料斗拉取进出轴"
;
//
// txtPullAxis_Inout_P1
//
this
.
txtPullAxis_Inout_P1
.
Location
=
new
System
.
Drawing
.
Point
(
144
,
27
);
this
.
txtPullAxis_Inout_P1
.
Name
=
"txtPullAxis_Inout_P1"
;
this
.
txtPullAxis_Inout_P1
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtPullAxis_Inout_P1
.
TabIndex
=
6
;
//
// btnPullAxis_Inout_P1
//
this
.
btnPullAxis_Inout_P1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
22
);
this
.
btnPullAxis_Inout_P1
.
Name
=
"btnPullAxis_Inout_P1"
;
this
.
btnPullAxis_Inout_P1
.
Size
=
new
System
.
Drawing
.
Size
(
132
,
32
);
this
.
btnPullAxis_Inout_P1
.
TabIndex
=
1
;
this
.
btnPullAxis_Inout_P1
.
Text
=
"待机点P1"
;
this
.
btnPullAxis_Inout_P1
.
UseVisualStyleBackColor
=
true
;
this
.
btnPullAxis_Inout_P1
.
Click
+=
new
System
.
EventHandler
(
this
.
btnPullAxis_Inout_P1_Click
);
//
// groupBox6
//
this
.
groupBox6
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
192
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
255
)))));
this
.
groupBox6
.
Controls
.
Add
(
this
.
btnXAxis_A_P1
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
txtXAxis_A_P2
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
btnXAxis_A_P2
);
this
.
groupBox6
.
Controls
.
Add
(
this
.
txtXAxis_A_P1
);
this
.
groupBox6
.
Location
=
new
System
.
Drawing
.
Point
(
611
,
3
);
this
.
groupBox6
.
Name
=
"groupBox6"
;
this
.
groupBox6
.
Size
=
new
System
.
Drawing
.
Size
(
323
,
100
);
this
.
groupBox6
.
TabIndex
=
4
;
this
.
groupBox6
.
TabStop
=
false
;
this
.
groupBox6
.
Text
=
"A面移栽X轴"
;
//
// btnXAxis_A_P1
//
this
.
btnXAxis_A_P1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
22
);
this
.
btnXAxis_A_P1
.
Name
=
"btnXAxis_A_P1"
;
this
.
btnXAxis_A_P1
.
Size
=
new
System
.
Drawing
.
Size
(
164
,
32
);
this
.
btnXAxis_A_P1
.
TabIndex
=
4
;
this
.
btnXAxis_A_P1
.
Text
=
"待机点P1"
;
this
.
btnXAxis_A_P1
.
UseVisualStyleBackColor
=
true
;
this
.
btnXAxis_A_P1
.
Click
+=
new
System
.
EventHandler
(
this
.
btnXAxis_A_P1_Click
);
//
// txtXAxis_A_P2
//
this
.
txtXAxis_A_P2
.
Location
=
new
System
.
Drawing
.
Point
(
176
,
65
);
this
.
txtXAxis_A_P2
.
Name
=
"txtXAxis_A_P2"
;
this
.
txtXAxis_A_P2
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtXAxis_A_P2
.
TabIndex
=
10
;
//
// btnXAxis_A_P2
//
this
.
btnXAxis_A_P2
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
60
);
this
.
btnXAxis_A_P2
.
Name
=
"btnXAxis_A_P2"
;
this
.
btnXAxis_A_P2
.
Size
=
new
System
.
Drawing
.
Size
(
164
,
32
);
this
.
btnXAxis_A_P2
.
TabIndex
=
5
;
this
.
btnXAxis_A_P2
.
Text
=
"A进出料暂存区取放料点P2"
;
this
.
btnXAxis_A_P2
.
UseVisualStyleBackColor
=
true
;
this
.
btnXAxis_A_P2
.
Click
+=
new
System
.
EventHandler
(
this
.
btnXAxis_A_P2_Click
);
//
// txtXAxis_A_P1
//
this
.
txtXAxis_A_P1
.
Location
=
new
System
.
Drawing
.
Point
(
176
,
28
);
this
.
txtXAxis_A_P1
.
Name
=
"txtXAxis_A_P1"
;
this
.
txtXAxis_A_P1
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtXAxis_A_P1
.
TabIndex
=
7
;
//
// groupBox8
//
this
.
groupBox8
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
192
)))),
((
int
)(((
byte
)(
255
)))));
this
.
groupBox8
.
Controls
.
Add
(
this
.
txtComAxis_A_P1
);
this
.
groupBox8
.
Controls
.
Add
(
this
.
btnComAxis_A_P1
);
this
.
groupBox8
.
Location
=
new
System
.
Drawing
.
Point
(
611
,
109
);
this
.
groupBox8
.
Name
=
"groupBox8"
;
this
.
groupBox8
.
Size
=
new
System
.
Drawing
.
Size
(
323
,
63
);
this
.
groupBox8
.
TabIndex
=
6
;
this
.
groupBox8
.
TabStop
=
false
;
this
.
groupBox8
.
Text
=
"A面移栽压紧轴"
;
//
// txtComAxis_A_P1
//
this
.
txtComAxis_A_P1
.
Location
=
new
System
.
Drawing
.
Point
(
144
,
32
);
this
.
txtComAxis_A_P1
.
Name
=
"txtComAxis_A_P1"
;
this
.
txtComAxis_A_P1
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtComAxis_A_P1
.
TabIndex
=
30
;
//
// btnComAxis_A_P1
//
this
.
btnComAxis_A_P1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
27
);
this
.
btnComAxis_A_P1
.
Name
=
"btnComAxis_A_P1"
;
this
.
btnComAxis_A_P1
.
Size
=
new
System
.
Drawing
.
Size
(
132
,
32
);
this
.
btnComAxis_A_P1
.
TabIndex
=
29
;
this
.
btnComAxis_A_P1
.
Text
=
"待机点P1"
;
this
.
btnComAxis_A_P1
.
UseVisualStyleBackColor
=
true
;
this
.
btnComAxis_A_P1
.
Click
+=
new
System
.
EventHandler
(
this
.
btnComAxis_A_P1_Click
);
//
// groupBox7
//
this
.
groupBox7
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
192
)))),
((
int
)(((
byte
)(
192
)))),
((
int
)(((
byte
)(
255
)))));
this
.
groupBox7
.
Controls
.
Add
(
this
.
txtMiddleAxis_A_P3
);
this
.
groupBox7
.
Controls
.
Add
(
this
.
txtMiddleAxis_A_P2
);
this
.
groupBox7
.
Controls
.
Add
(
this
.
txtMiddleAxis_A_P1
);
this
.
groupBox7
.
Controls
.
Add
(
this
.
btnMiddleAxis_A_P1
);
this
.
groupBox7
.
Controls
.
Add
(
this
.
btnMiddleAxis_A_P3
);
this
.
groupBox7
.
Controls
.
Add
(
this
.
btnMiddleAxis_A_P2
);
this
.
groupBox7
.
Location
=
new
System
.
Drawing
.
Point
(
611
,
178
);
this
.
groupBox7
.
Name
=
"groupBox7"
;
this
.
groupBox7
.
Size
=
new
System
.
Drawing
.
Size
(
335
,
132
);
this
.
groupBox7
.
TabIndex
=
5
;
this
.
groupBox7
.
TabStop
=
false
;
this
.
groupBox7
.
Text
=
"A面移栽旋转轴"
;
//
// txtMiddleAxis_A_P3
//
this
.
txtMiddleAxis_A_P3
.
Location
=
new
System
.
Drawing
.
Point
(
195
,
93
);
this
.
txtMiddleAxis_A_P3
.
Name
=
"txtMiddleAxis_A_P3"
;
this
.
txtMiddleAxis_A_P3
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtMiddleAxis_A_P3
.
TabIndex
=
28
;
//
// txtMiddleAxis_A_P2
//
this
.
txtMiddleAxis_A_P2
.
Location
=
new
System
.
Drawing
.
Point
(
195
,
57
);
this
.
txtMiddleAxis_A_P2
.
Name
=
"txtMiddleAxis_A_P2"
;
this
.
txtMiddleAxis_A_P2
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtMiddleAxis_A_P2
.
TabIndex
=
27
;
//
// txtMiddleAxis_A_P1
//
this
.
txtMiddleAxis_A_P1
.
Location
=
new
System
.
Drawing
.
Point
(
195
,
21
);
this
.
txtMiddleAxis_A_P1
.
Name
=
"txtMiddleAxis_A_P1"
;
this
.
txtMiddleAxis_A_P1
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtMiddleAxis_A_P1
.
TabIndex
=
26
;
//
// btnMiddleAxis_A_P1
//
this
.
btnMiddleAxis_A_P1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
16
);
this
.
btnMiddleAxis_A_P1
.
Name
=
"btnMiddleAxis_A_P1"
;
this
.
btnMiddleAxis_A_P1
.
Size
=
new
System
.
Drawing
.
Size
(
184
,
32
);
this
.
btnMiddleAxis_A_P1
.
TabIndex
=
25
;
this
.
btnMiddleAxis_A_P1
.
Text
=
"待机点P1"
;
this
.
btnMiddleAxis_A_P1
.
UseVisualStyleBackColor
=
true
;
this
.
btnMiddleAxis_A_P1
.
Click
+=
new
System
.
EventHandler
(
this
.
btnMiddleAxis_A_P1_Click
);
//
// btnMiddleAxis_A_P3
//
this
.
btnMiddleAxis_A_P3
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
88
);
this
.
btnMiddleAxis_A_P3
.
Name
=
"btnMiddleAxis_A_P3"
;
this
.
btnMiddleAxis_A_P3
.
Size
=
new
System
.
Drawing
.
Size
(
184
,
32
);
this
.
btnMiddleAxis_A_P3
.
TabIndex
=
24
;
this
.
btnMiddleAxis_A_P3
.
Text
=
"A面料屉库位垂直取放料点P3"
;
this
.
btnMiddleAxis_A_P3
.
UseVisualStyleBackColor
=
true
;
this
.
btnMiddleAxis_A_P3
.
Click
+=
new
System
.
EventHandler
(
this
.
btnMiddleAxis_A_P3_Click
);
//
// btnMiddleAxis_A_P2
//
this
.
btnMiddleAxis_A_P2
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
52
);
this
.
btnMiddleAxis_A_P2
.
Name
=
"btnMiddleAxis_A_P2"
;
this
.
btnMiddleAxis_A_P2
.
Size
=
new
System
.
Drawing
.
Size
(
184
,
32
);
this
.
btnMiddleAxis_A_P2
.
TabIndex
=
23
;
this
.
btnMiddleAxis_A_P2
.
Text
=
"A进出料暂存区取放料水平点P2"
;
this
.
btnMiddleAxis_A_P2
.
UseVisualStyleBackColor
=
true
;
this
.
btnMiddleAxis_A_P2
.
Click
+=
new
System
.
EventHandler
(
this
.
btnMiddleAxis_A_P2_Click
);
//
// groupBox9
//
this
.
groupBox9
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
224
)))),
((
int
)(((
byte
)(
224
)))),
((
int
)(((
byte
)(
224
)))));
this
.
groupBox9
.
Controls
.
Add
(
this
.
btnXAxis_B_P1
);
this
.
groupBox9
.
Controls
.
Add
(
this
.
txtXAxis_B_P2
);
this
.
groupBox9
.
Controls
.
Add
(
this
.
btnXAxis_B_P2
);
this
.
groupBox9
.
Controls
.
Add
(
this
.
txtXAxis_B_P1
);
this
.
groupBox9
.
Location
=
new
System
.
Drawing
.
Point
(
952
,
3
);
this
.
groupBox9
.
Name
=
"groupBox9"
;
this
.
groupBox9
.
Size
=
new
System
.
Drawing
.
Size
(
335
,
100
);
this
.
groupBox9
.
TabIndex
=
7
;
this
.
groupBox9
.
TabStop
=
false
;
this
.
groupBox9
.
Text
=
"B面移栽X轴"
;
//
// btnXAxis_B_P1
//
this
.
btnXAxis_B_P1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
24
);
this
.
btnXAxis_B_P1
.
Name
=
"btnXAxis_B_P1"
;
this
.
btnXAxis_B_P1
.
Size
=
new
System
.
Drawing
.
Size
(
132
,
32
);
this
.
btnXAxis_B_P1
.
TabIndex
=
11
;
this
.
btnXAxis_B_P1
.
Text
=
"待机点P1"
;
this
.
btnXAxis_B_P1
.
UseVisualStyleBackColor
=
true
;
this
.
btnXAxis_B_P1
.
Click
+=
new
System
.
EventHandler
(
this
.
btnXAxis_B_P1_Click
);
//
// txtXAxis_B_P2
//
this
.
txtXAxis_B_P2
.
Location
=
new
System
.
Drawing
.
Point
(
144
,
67
);
this
.
txtXAxis_B_P2
.
Name
=
"txtXAxis_B_P2"
;
this
.
txtXAxis_B_P2
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtXAxis_B_P2
.
TabIndex
=
14
;
//
// btnXAxis_B_P2
//
this
.
btnXAxis_B_P2
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
62
);
this
.
btnXAxis_B_P2
.
Name
=
"btnXAxis_B_P2"
;
this
.
btnXAxis_B_P2
.
Size
=
new
System
.
Drawing
.
Size
(
132
,
32
);
this
.
btnXAxis_B_P2
.
TabIndex
=
12
;
this
.
btnXAxis_B_P2
.
Text
=
"B进出料暂存区取放料点P2"
;
this
.
btnXAxis_B_P2
.
UseVisualStyleBackColor
=
true
;
this
.
btnXAxis_B_P2
.
Click
+=
new
System
.
EventHandler
(
this
.
btnXAxis_B_P2_Click
);
//
// txtXAxis_B_P1
//
this
.
txtXAxis_B_P1
.
Location
=
new
System
.
Drawing
.
Point
(
144
,
33
);
this
.
txtXAxis_B_P1
.
Name
=
"txtXAxis_B_P1"
;
this
.
txtXAxis_B_P1
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtXAxis_B_P1
.
TabIndex
=
13
;
//
// groupBox10
//
this
.
groupBox10
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
128
)))),
((
int
)(((
byte
)(
128
)))));
this
.
groupBox10
.
Controls
.
Add
(
this
.
txtMiddleAxis_B_P3
);
this
.
groupBox10
.
Controls
.
Add
(
this
.
txtMiddleAxis_B_P2
);
this
.
groupBox10
.
Controls
.
Add
(
this
.
txtMiddleAxis_B_P1
);
this
.
groupBox10
.
Controls
.
Add
(
this
.
btnMiddleAxis_B_P1
);
this
.
groupBox10
.
Controls
.
Add
(
this
.
btnMiddleAxis_B_P3
);
this
.
groupBox10
.
Controls
.
Add
(
this
.
btnMiddleAxis_B_P2
);
this
.
groupBox10
.
Location
=
new
System
.
Drawing
.
Point
(
952
,
109
);
this
.
groupBox10
.
Name
=
"groupBox10"
;
this
.
groupBox10
.
Size
=
new
System
.
Drawing
.
Size
(
335
,
143
);
this
.
groupBox10
.
TabIndex
=
8
;
this
.
groupBox10
.
TabStop
=
false
;
this
.
groupBox10
.
Text
=
"B面移栽旋转轴"
;
//
// txtMiddleAxis_B_P3
//
this
.
txtMiddleAxis_B_P3
.
Location
=
new
System
.
Drawing
.
Point
(
195
,
99
);
this
.
txtMiddleAxis_B_P3
.
Name
=
"txtMiddleAxis_B_P3"
;
this
.
txtMiddleAxis_B_P3
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtMiddleAxis_B_P3
.
TabIndex
=
34
;
//
// txtMiddleAxis_B_P2
//
this
.
txtMiddleAxis_B_P2
.
Location
=
new
System
.
Drawing
.
Point
(
195
,
63
);
this
.
txtMiddleAxis_B_P2
.
Name
=
"txtMiddleAxis_B_P2"
;
this
.
txtMiddleAxis_B_P2
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtMiddleAxis_B_P2
.
TabIndex
=
33
;
//
// txtMiddleAxis_B_P1
//
this
.
txtMiddleAxis_B_P1
.
Location
=
new
System
.
Drawing
.
Point
(
195
,
27
);
this
.
txtMiddleAxis_B_P1
.
Name
=
"txtMiddleAxis_B_P1"
;
this
.
txtMiddleAxis_B_P1
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtMiddleAxis_B_P1
.
TabIndex
=
32
;
//
// btnMiddleAxis_B_P1
//
this
.
btnMiddleAxis_B_P1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
22
);
this
.
btnMiddleAxis_B_P1
.
Name
=
"btnMiddleAxis_B_P1"
;
this
.
btnMiddleAxis_B_P1
.
Size
=
new
System
.
Drawing
.
Size
(
183
,
32
);
this
.
btnMiddleAxis_B_P1
.
TabIndex
=
31
;
this
.
btnMiddleAxis_B_P1
.
Text
=
"待机点P1"
;
this
.
btnMiddleAxis_B_P1
.
UseVisualStyleBackColor
=
true
;
this
.
btnMiddleAxis_B_P1
.
Click
+=
new
System
.
EventHandler
(
this
.
btnMiddleAxis_B_P1_Click
);
//
// btnMiddleAxis_B_P3
//
this
.
btnMiddleAxis_B_P3
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
94
);
this
.
btnMiddleAxis_B_P3
.
Name
=
"btnMiddleAxis_B_P3"
;
this
.
btnMiddleAxis_B_P3
.
Size
=
new
System
.
Drawing
.
Size
(
184
,
32
);
this
.
btnMiddleAxis_B_P3
.
TabIndex
=
30
;
this
.
btnMiddleAxis_B_P3
.
Text
=
"B面料屉库位垂直取放料点P3"
;
this
.
btnMiddleAxis_B_P3
.
UseVisualStyleBackColor
=
true
;
this
.
btnMiddleAxis_B_P3
.
Click
+=
new
System
.
EventHandler
(
this
.
btnMiddleAxis_B_P3_Click
);
//
// btnMiddleAxis_B_P2
//
this
.
btnMiddleAxis_B_P2
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
58
);
this
.
btnMiddleAxis_B_P2
.
Name
=
"btnMiddleAxis_B_P2"
;
this
.
btnMiddleAxis_B_P2
.
Size
=
new
System
.
Drawing
.
Size
(
183
,
32
);
this
.
btnMiddleAxis_B_P2
.
TabIndex
=
29
;
this
.
btnMiddleAxis_B_P2
.
Text
=
"B进出料暂存区取放料水平点P2"
;
this
.
btnMiddleAxis_B_P2
.
UseVisualStyleBackColor
=
true
;
this
.
btnMiddleAxis_B_P2
.
Click
+=
new
System
.
EventHandler
(
this
.
btnMiddleAxis_B_P2_Click
);
//
// groupBox11
//
this
.
groupBox11
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
192
)))),
((
int
)(((
byte
)(
128
)))));
this
.
groupBox11
.
Controls
.
Add
(
this
.
txtComAxis_B_P1
);
this
.
groupBox11
.
Controls
.
Add
(
this
.
btnComAxis_B_P1
);
this
.
groupBox11
.
Location
=
new
System
.
Drawing
.
Point
(
952
,
258
);
this
.
groupBox11
.
Name
=
"groupBox11"
;
this
.
groupBox11
.
Size
=
new
System
.
Drawing
.
Size
(
335
,
64
);
this
.
groupBox11
.
TabIndex
=
9
;
this
.
groupBox11
.
TabStop
=
false
;
this
.
groupBox11
.
Text
=
"B面移栽压紧轴"
;
//
// txtComAxis_B_P1
//
this
.
txtComAxis_B_P1
.
Location
=
new
System
.
Drawing
.
Point
(
144
,
27
);
this
.
txtComAxis_B_P1
.
Name
=
"txtComAxis_B_P1"
;
this
.
txtComAxis_B_P1
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtComAxis_B_P1
.
TabIndex
=
32
;
//
// btnComAxis_B_P1
//
this
.
btnComAxis_B_P1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
22
);
this
.
btnComAxis_B_P1
.
Name
=
"btnComAxis_B_P1"
;
this
.
btnComAxis_B_P1
.
Size
=
new
System
.
Drawing
.
Size
(
132
,
32
);
this
.
btnComAxis_B_P1
.
TabIndex
=
31
;
this
.
btnComAxis_B_P1
.
Text
=
"待机点P1"
;
this
.
btnComAxis_B_P1
.
UseVisualStyleBackColor
=
true
;
this
.
btnComAxis_B_P1
.
Click
+=
new
System
.
EventHandler
(
this
.
btnComAxis_B_P1_Click
);
//
// groupBox12
//
this
.
groupBox12
.
Controls
.
Add
(
this
.
label3
);
this
.
groupBox12
.
Controls
.
Add
(
this
.
btnSavePoints
);
this
.
groupBox12
.
Location
=
new
System
.
Drawing
.
Point
(
1293
,
3
);
this
.
groupBox12
.
Name
=
"groupBox12"
;
this
.
groupBox12
.
Size
=
new
System
.
Drawing
.
Size
(
335
,
130
);
this
.
groupBox12
.
TabIndex
=
10
;
this
.
groupBox12
.
TabStop
=
false
;
this
.
groupBox12
.
Text
=
"操作"
;
//
// label3
//
this
.
label3
.
AutoSize
=
true
;
this
.
label3
.
Location
=
new
System
.
Drawing
.
Point
(
92
,
83
);
this
.
label3
.
Name
=
"label3"
;
this
.
label3
.
Size
=
new
System
.
Drawing
.
Size
(
0
,
17
);
this
.
label3
.
TabIndex
=
13
;
//
// btnSavePoints
//
this
.
btnSavePoints
.
Location
=
new
System
.
Drawing
.
Point
(
95
,
33
);
this
.
btnSavePoints
.
Name
=
"btnSavePoints"
;
this
.
btnSavePoints
.
Size
=
new
System
.
Drawing
.
Size
(
136
,
32
);
this
.
btnSavePoints
.
TabIndex
=
12
;
this
.
btnSavePoints
.
Text
=
"保存位置"
;
this
.
btnSavePoints
.
UseVisualStyleBackColor
=
true
;
this
.
btnSavePoints
.
Click
+=
new
System
.
EventHandler
(
this
.
btnSavePoints_Click
);
//
// groupBox13
//
this
.
groupBox13
.
Controls
.
Add
(
this
.
flowLayoutPanel2
);
this
.
groupBox13
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
groupBox13
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
3
);
this
.
groupBox13
.
Name
=
"groupBox13"
;
this
.
groupBox13
.
Size
=
new
System
.
Drawing
.
Size
(
1702
,
382
);
this
.
groupBox13
.
TabIndex
=
2
;
this
.
groupBox13
.
TabStop
=
false
;
this
.
groupBox13
.
Text
=
"库位位置信息"
;
//
// flowLayoutPanel2
//
this
.
flowLayoutPanel2
.
Controls
.
Add
(
this
.
groupBox18
);
this
.
flowLayoutPanel2
.
Controls
.
Add
(
this
.
groupBox14
);
this
.
flowLayoutPanel2
.
Controls
.
Add
(
this
.
groupBox15
);
this
.
flowLayoutPanel2
.
Controls
.
Add
(
this
.
groupBox19
);
this
.
flowLayoutPanel2
.
Controls
.
Add
(
this
.
groupBox16
);
this
.
flowLayoutPanel2
.
Controls
.
Add
(
this
.
groupBox17
);
this
.
flowLayoutPanel2
.
Controls
.
Add
(
this
.
groupBox24
);
this
.
flowLayoutPanel2
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
flowLayoutPanel2
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
19
);
this
.
flowLayoutPanel2
.
Name
=
"flowLayoutPanel2"
;
this
.
flowLayoutPanel2
.
Size
=
new
System
.
Drawing
.
Size
(
1696
,
360
);
this
.
flowLayoutPanel2
.
TabIndex
=
0
;
//
// groupBox18
//
this
.
groupBox18
.
Controls
.
Add
(
this
.
label2
);
this
.
groupBox18
.
Controls
.
Add
(
this
.
btnSavePosIds
);
this
.
groupBox18
.
Controls
.
Add
(
this
.
label1
);
this
.
groupBox18
.
Controls
.
Add
(
this
.
combBoxPosIds
);
this
.
groupBox18
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
3
);
this
.
groupBox18
.
Name
=
"groupBox18"
;
this
.
groupBox18
.
Size
=
new
System
.
Drawing
.
Size
(
499
,
107
);
this
.
groupBox18
.
TabIndex
=
10
;
this
.
groupBox18
.
TabStop
=
false
;
this
.
groupBox18
.
Text
=
"操作"
;
//
// label2
//
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
56
,
66
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
0
,
17
);
this
.
label2
.
TabIndex
=
12
;
//
// btnSavePosIds
//
this
.
btnSavePosIds
.
Location
=
new
System
.
Drawing
.
Point
(
245
,
17
);
this
.
btnSavePosIds
.
Name
=
"btnSavePosIds"
;
this
.
btnSavePosIds
.
Size
=
new
System
.
Drawing
.
Size
(
136
,
32
);
this
.
btnSavePosIds
.
TabIndex
=
11
;
this
.
btnSavePosIds
.
Text
=
"保存位置"
;
this
.
btnSavePosIds
.
UseVisualStyleBackColor
=
true
;
this
.
btnSavePosIds
.
Click
+=
new
System
.
EventHandler
(
this
.
btnSavePosIds_Click
);
//
// label1
//
this
.
label1
.
AutoSize
=
true
;
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
28
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
44
,
17
);
this
.
label1
.
TabIndex
=
1
;
this
.
label1
.
Text
=
"库位:"
;
//
// combBoxPosIds
//
this
.
combBoxPosIds
.
FormattingEnabled
=
true
;
this
.
combBoxPosIds
.
Location
=
new
System
.
Drawing
.
Point
(
56
,
22
);
this
.
combBoxPosIds
.
Name
=
"combBoxPosIds"
;
this
.
combBoxPosIds
.
Size
=
new
System
.
Drawing
.
Size
(
155
,
25
);
this
.
combBoxPosIds
.
TabIndex
=
0
;
this
.
combBoxPosIds
.
SelectedIndexChanged
+=
new
System
.
EventHandler
(
this
.
CombBoxPosIds_SelectedIndexChanged
);
//
// groupBox14
//
this
.
groupBox14
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
192
)))),
((
int
)(((
byte
)(
192
)))));
this
.
groupBox14
.
Controls
.
Add
(
this
.
txtUpdown_P7_P13
);
this
.
groupBox14
.
Controls
.
Add
(
this
.
txtUpdown_P6_P12
);
this
.
groupBox14
.
Controls
.
Add
(
this
.
btnUpdown_P6_P12
);
this
.
groupBox14
.
Controls
.
Add
(
this
.
btnUpdown_P7_P13
);
this
.
groupBox14
.
Location
=
new
System
.
Drawing
.
Point
(
508
,
3
);
this
.
groupBox14
.
Name
=
"groupBox14"
;
this
.
groupBox14
.
Size
=
new
System
.
Drawing
.
Size
(
499
,
107
);
this
.
groupBox14
.
TabIndex
=
2
;
this
.
groupBox14
.
TabStop
=
false
;
this
.
groupBox14
.
Text
=
"移栽升降轴"
;
//
// txtUpdown_P7_P13
//
this
.
txtUpdown_P7_P13
.
Location
=
new
System
.
Drawing
.
Point
(
187
,
66
);
this
.
txtUpdown_P7_P13
.
Name
=
"txtUpdown_P7_P13"
;
this
.
txtUpdown_P7_P13
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtUpdown_P7_P13
.
TabIndex
=
15
;
//
// txtUpdown_P6_P12
//
this
.
txtUpdown_P6_P12
.
Location
=
new
System
.
Drawing
.
Point
(
187
,
28
);
this
.
txtUpdown_P6_P12
.
Name
=
"txtUpdown_P6_P12"
;
this
.
txtUpdown_P6_P12
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtUpdown_P6_P12
.
TabIndex
=
14
;
//
// btnUpdown_P6_P12
//
this
.
btnUpdown_P6_P12
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
23
);
this
.
btnUpdown_P6_P12
.
Name
=
"btnUpdown_P6_P12"
;
this
.
btnUpdown_P6_P12
.
Size
=
new
System
.
Drawing
.
Size
(
156
,
32
);
this
.
btnUpdown_P6_P12
.
TabIndex
=
10
;
this
.
btnUpdown_P6_P12
.
Text
=
"料屉上方过渡点"
;
this
.
btnUpdown_P6_P12
.
UseVisualStyleBackColor
=
true
;
this
.
btnUpdown_P6_P12
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdown_P6_P12_Click
);
//
// btnUpdown_P7_P13
//
this
.
btnUpdown_P7_P13
.
Location
=
new
System
.
Drawing
.
Point
(
2
,
61
);
this
.
btnUpdown_P7_P13
.
Name
=
"btnUpdown_P7_P13"
;
this
.
btnUpdown_P7_P13
.
Size
=
new
System
.
Drawing
.
Size
(
156
,
32
);
this
.
btnUpdown_P7_P13
.
TabIndex
=
2
;
this
.
btnUpdown_P7_P13
.
Text
=
"料屉取放点"
;
this
.
btnUpdown_P7_P13
.
UseVisualStyleBackColor
=
true
;
this
.
btnUpdown_P7_P13
.
Click
+=
new
System
.
EventHandler
(
this
.
btnUpdown_P7_P13_Click
);
//
// groupBox15
//
this
.
groupBox15
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
224
)))),
((
int
)(((
byte
)(
192
)))));
this
.
groupBox15
.
Controls
.
Add
(
this
.
txtMoveAxis_P3
);
this
.
groupBox15
.
Controls
.
Add
(
this
.
btnMoveAxis_P3
);
this
.
groupBox15
.
Location
=
new
System
.
Drawing
.
Point
(
1013
,
3
);
this
.
groupBox15
.
Name
=
"groupBox15"
;
this
.
groupBox15
.
Size
=
new
System
.
Drawing
.
Size
(
499
,
107
);
this
.
groupBox15
.
TabIndex
=
0
;
this
.
groupBox15
.
TabStop
=
false
;
this
.
groupBox15
.
Text
=
"行走机构"
;
//
// txtMoveAxis_P3
//
this
.
txtMoveAxis_P3
.
Location
=
new
System
.
Drawing
.
Point
(
187
,
27
);
this
.
txtMoveAxis_P3
.
Name
=
"txtMoveAxis_P3"
;
this
.
txtMoveAxis_P3
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtMoveAxis_P3
.
TabIndex
=
3
;
//
// btnMoveAxis_P3
//
this
.
btnMoveAxis_P3
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
22
);
this
.
btnMoveAxis_P3
.
Name
=
"btnMoveAxis_P3"
;
this
.
btnMoveAxis_P3
.
Size
=
new
System
.
Drawing
.
Size
(
152
,
32
);
this
.
btnMoveAxis_P3
.
TabIndex
=
0
;
this
.
btnMoveAxis_P3
.
Text
=
"料屉提取点"
;
this
.
btnMoveAxis_P3
.
UseVisualStyleBackColor
=
true
;
this
.
btnMoveAxis_P3
.
Click
+=
new
System
.
EventHandler
(
this
.
btnMoveAxis_P3_Click
);
//
// groupBox19
//
this
.
groupBox19
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
192
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
255
)))));
this
.
groupBox19
.
Controls
.
Add
(
this
.
txtXAxis_AB_P3
);
this
.
groupBox19
.
Controls
.
Add
(
this
.
btnXAxis_AB_P3
);
this
.
groupBox19
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
116
);
this
.
groupBox19
.
Name
=
"groupBox19"
;
this
.
groupBox19
.
Size
=
new
System
.
Drawing
.
Size
(
499
,
107
);
this
.
groupBox19
.
TabIndex
=
4
;
this
.
groupBox19
.
TabStop
=
false
;
this
.
groupBox19
.
Text
=
"A面移栽X轴"
;
//
// txtXAxis_AB_P3
//
this
.
txtXAxis_AB_P3
.
Location
=
new
System
.
Drawing
.
Point
(
176
,
28
);
this
.
txtXAxis_AB_P3
.
Name
=
"txtXAxis_AB_P3"
;
this
.
txtXAxis_AB_P3
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtXAxis_AB_P3
.
TabIndex
=
10
;
//
// btnXAxis_AB_P3
//
this
.
btnXAxis_AB_P3
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
23
);
this
.
btnXAxis_AB_P3
.
Name
=
"btnXAxis_AB_P3"
;
this
.
btnXAxis_AB_P3
.
Size
=
new
System
.
Drawing
.
Size
(
164
,
32
);
this
.
btnXAxis_AB_P3
.
TabIndex
=
5
;
this
.
btnXAxis_AB_P3
.
Text
=
"料屉库位取放料点P3"
;
this
.
btnXAxis_AB_P3
.
UseVisualStyleBackColor
=
true
;
this
.
btnXAxis_AB_P3
.
Click
+=
new
System
.
EventHandler
(
this
.
btnXAxis_AB_P3_Click
);
//
// groupBox16
//
this
.
groupBox16
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
192
)))));
this
.
groupBox16
.
Controls
.
Add
(
this
.
txtPullAxis_Inout_P3_P5
);
this
.
groupBox16
.
Controls
.
Add
(
this
.
btnPullAxis_Inout_P3_P5
);
this
.
groupBox16
.
Controls
.
Add
(
this
.
txtPullAxis_Inout_P2_P4
);
this
.
groupBox16
.
Controls
.
Add
(
this
.
btnPullAxis_Inout_P2_P4
);
this
.
groupBox16
.
Location
=
new
System
.
Drawing
.
Point
(
508
,
116
);
this
.
groupBox16
.
Name
=
"groupBox16"
;
this
.
groupBox16
.
Size
=
new
System
.
Drawing
.
Size
(
499
,
107
);
this
.
groupBox16
.
TabIndex
=
1
;
this
.
groupBox16
.
TabStop
=
false
;
this
.
groupBox16
.
Text
=
"料斗拉取进出轴"
;
//
// txtPullAxis_Inout_P3_P5
//
this
.
txtPullAxis_Inout_P3_P5
.
Location
=
new
System
.
Drawing
.
Point
(
187
,
65
);
this
.
txtPullAxis_Inout_P3_P5
.
Name
=
"txtPullAxis_Inout_P3_P5"
;
this
.
txtPullAxis_Inout_P3_P5
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtPullAxis_Inout_P3_P5
.
TabIndex
=
8
;
//
// btnPullAxis_Inout_P3_P5
//
this
.
btnPullAxis_Inout_P3_P5
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
60
);
this
.
btnPullAxis_Inout_P3_P5
.
Name
=
"btnPullAxis_Inout_P3_P5"
;
this
.
btnPullAxis_Inout_P3_P5
.
Size
=
new
System
.
Drawing
.
Size
(
152
,
32
);
this
.
btnPullAxis_Inout_P3_P5
.
TabIndex
=
7
;
this
.
btnPullAxis_Inout_P3_P5
.
Text
=
"料屉库位点"
;
this
.
btnPullAxis_Inout_P3_P5
.
UseVisualStyleBackColor
=
true
;
this
.
btnPullAxis_Inout_P3_P5
.
Click
+=
new
System
.
EventHandler
(
this
.
btnPullAxis_Inout_P3_P5_Click
);
//
// txtPullAxis_Inout_P2_P4
//
this
.
txtPullAxis_Inout_P2_P4
.
Location
=
new
System
.
Drawing
.
Point
(
187
,
27
);
this
.
txtPullAxis_Inout_P2_P4
.
Name
=
"txtPullAxis_Inout_P2_P4"
;
this
.
txtPullAxis_Inout_P2_P4
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtPullAxis_Inout_P2_P4
.
TabIndex
=
6
;
//
// btnPullAxis_Inout_P2_P4
//
this
.
btnPullAxis_Inout_P2_P4
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
22
);
this
.
btnPullAxis_Inout_P2_P4
.
Name
=
"btnPullAxis_Inout_P2_P4"
;
this
.
btnPullAxis_Inout_P2_P4
.
Size
=
new
System
.
Drawing
.
Size
(
152
,
32
);
this
.
btnPullAxis_Inout_P2_P4
.
TabIndex
=
1
;
this
.
btnPullAxis_Inout_P2_P4
.
Text
=
"料屉提取点"
;
this
.
btnPullAxis_Inout_P2_P4
.
UseVisualStyleBackColor
=
true
;
this
.
btnPullAxis_Inout_P2_P4
.
Click
+=
new
System
.
EventHandler
(
this
.
btnPullAxis_Inout_P2_P4_Click
);
//
// groupBox17
//
this
.
groupBox17
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
192
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
192
)))));
this
.
groupBox17
.
Controls
.
Add
(
this
.
btnPullAxis_Updown_P4
);
this
.
groupBox17
.
Controls
.
Add
(
this
.
btnPullAxis_Updown_P3
);
this
.
groupBox17
.
Controls
.
Add
(
this
.
txtPullAxis_Updown_P4
);
this
.
groupBox17
.
Controls
.
Add
(
this
.
txtPullAxis_Updown_P3
);
this
.
groupBox17
.
Location
=
new
System
.
Drawing
.
Point
(
1013
,
116
);
this
.
groupBox17
.
Name
=
"groupBox17"
;
this
.
groupBox17
.
Size
=
new
System
.
Drawing
.
Size
(
499
,
107
);
this
.
groupBox17
.
TabIndex
=
3
;
this
.
groupBox17
.
TabStop
=
false
;
this
.
groupBox17
.
Text
=
"料斗拉取升降轴"
;
//
// btnPullAxis_Updown_P4
//
this
.
btnPullAxis_Updown_P4
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
55
);
this
.
btnPullAxis_Updown_P4
.
Name
=
"btnPullAxis_Updown_P4"
;
this
.
btnPullAxis_Updown_P4
.
Size
=
new
System
.
Drawing
.
Size
(
132
,
32
);
this
.
btnPullAxis_Updown_P4
.
TabIndex
=
3
;
this
.
btnPullAxis_Updown_P4
.
Text
=
"料屉提取低点P4"
;
this
.
btnPullAxis_Updown_P4
.
UseVisualStyleBackColor
=
true
;
this
.
btnPullAxis_Updown_P4
.
Click
+=
new
System
.
EventHandler
(
this
.
btnPullAxis_Updown_P4_Click
);
//
// btnPullAxis_Updown_P3
//
this
.
btnPullAxis_Updown_P3
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
17
);
this
.
btnPullAxis_Updown_P3
.
Name
=
"btnPullAxis_Updown_P3"
;
this
.
btnPullAxis_Updown_P3
.
Size
=
new
System
.
Drawing
.
Size
(
132
,
32
);
this
.
btnPullAxis_Updown_P3
.
TabIndex
=
2
;
this
.
btnPullAxis_Updown_P3
.
Text
=
"料屉提取高点P3"
;
this
.
btnPullAxis_Updown_P3
.
UseVisualStyleBackColor
=
true
;
this
.
btnPullAxis_Updown_P3
.
Click
+=
new
System
.
EventHandler
(
this
.
btnPullAxis_Updown_P3_Click
);
//
// txtPullAxis_Updown_P4
//
this
.
txtPullAxis_Updown_P4
.
Location
=
new
System
.
Drawing
.
Point
(
144
,
60
);
this
.
txtPullAxis_Updown_P4
.
Name
=
"txtPullAxis_Updown_P4"
;
this
.
txtPullAxis_Updown_P4
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtPullAxis_Updown_P4
.
TabIndex
=
8
;
//
// txtPullAxis_Updown_P3
//
this
.
txtPullAxis_Updown_P3
.
Location
=
new
System
.
Drawing
.
Point
(
144
,
22
);
this
.
txtPullAxis_Updown_P3
.
Name
=
"txtPullAxis_Updown_P3"
;
this
.
txtPullAxis_Updown_P3
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtPullAxis_Updown_P3
.
TabIndex
=
9
;
//
// groupBox24
//
this
.
groupBox24
.
BackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
192
)))),
((
int
)(((
byte
)(
128
)))));
this
.
groupBox24
.
Controls
.
Add
(
this
.
txtComAxis_AB_P3
);
this
.
groupBox24
.
Controls
.
Add
(
this
.
btnComAxis_AB_P3
);
this
.
groupBox24
.
Controls
.
Add
(
this
.
txtComAxis_AB_P2
);
this
.
groupBox24
.
Controls
.
Add
(
this
.
btnComAxis_AB_P2
);
this
.
groupBox24
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
229
);
this
.
groupBox24
.
Name
=
"groupBox24"
;
this
.
groupBox24
.
Size
=
new
System
.
Drawing
.
Size
(
499
,
107
);
this
.
groupBox24
.
TabIndex
=
9
;
this
.
groupBox24
.
TabStop
=
false
;
this
.
groupBox24
.
Text
=
"A面移栽压紧轴"
;
//
// txtComAxis_AB_P3
//
this
.
txtComAxis_AB_P3
.
Location
=
new
System
.
Drawing
.
Point
(
345
,
27
);
this
.
txtComAxis_AB_P3
.
Name
=
"txtComAxis_AB_P3"
;
this
.
txtComAxis_AB_P3
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtComAxis_AB_P3
.
TabIndex
=
34
;
//
// btnComAxis_AB_P3
//
this
.
btnComAxis_AB_P3
.
Location
=
new
System
.
Drawing
.
Point
(
245
,
22
);
this
.
btnComAxis_AB_P3
.
Name
=
"btnComAxis_AB_P3"
;
this
.
btnComAxis_AB_P3
.
Size
=
new
System
.
Drawing
.
Size
(
93
,
32
);
this
.
btnComAxis_AB_P3
.
TabIndex
=
33
;
this
.
btnComAxis_AB_P3
.
Text
=
"压紧点P3"
;
this
.
btnComAxis_AB_P3
.
UseVisualStyleBackColor
=
true
;
this
.
btnComAxis_AB_P3
.
Click
+=
new
System
.
EventHandler
(
this
.
btnComAxis_AB_P3_Click
);
//
// txtComAxis_AB_P2
//
this
.
txtComAxis_AB_P2
.
Location
=
new
System
.
Drawing
.
Point
(
105
,
27
);
this
.
txtComAxis_AB_P2
.
Name
=
"txtComAxis_AB_P2"
;
this
.
txtComAxis_AB_P2
.
Size
=
new
System
.
Drawing
.
Size
(
134
,
23
);
this
.
txtComAxis_AB_P2
.
TabIndex
=
32
;
//
// btnComAxis_AB_P2
//
this
.
btnComAxis_AB_P2
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
22
);
this
.
btnComAxis_AB_P2
.
Name
=
"btnComAxis_AB_P2"
;
this
.
btnComAxis_AB_P2
.
Size
=
new
System
.
Drawing
.
Size
(
93
,
32
);
this
.
btnComAxis_AB_P2
.
TabIndex
=
31
;
this
.
btnComAxis_AB_P2
.
Text
=
"压紧前点P2"
;
this
.
btnComAxis_AB_P2
.
UseVisualStyleBackColor
=
true
;
this
.
btnComAxis_AB_P2
.
Click
+=
new
System
.
EventHandler
(
this
.
btnComAxis_AB_P2_Click
);
//
// tabControl1
//
this
.
tabControl1
.
Controls
.
Add
(
this
.
tabPage1
);
this
.
tabControl1
.
Controls
.
Add
(
this
.
tabPage2
);
this
.
tabControl1
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
tabControl1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
421
);
this
.
tabControl1
.
Name
=
"tabControl1"
;
this
.
tabControl1
.
SelectedIndex
=
0
;
this
.
tabControl1
.
Size
=
new
System
.
Drawing
.
Size
(
1716
,
418
);
this
.
tabControl1
.
TabIndex
=
3
;
//
// tabPage1
//
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupBox1
);
this
.
tabPage1
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
26
);
this
.
tabPage1
.
Name
=
"tabPage1"
;
this
.
tabPage1
.
Padding
=
new
System
.
Windows
.
Forms
.
Padding
(
3
);
this
.
tabPage1
.
Size
=
new
System
.
Drawing
.
Size
(
1708
,
388
);
this
.
tabPage1
.
TabIndex
=
0
;
this
.
tabPage1
.
Text
=
"位置信息"
;
this
.
tabPage1
.
UseVisualStyleBackColor
=
true
;
//
// tabPage2
//
this
.
tabPage2
.
Controls
.
Add
(
this
.
groupBox13
);
this
.
tabPage2
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
26
);
this
.
tabPage2
.
Name
=
"tabPage2"
;
this
.
tabPage2
.
Padding
=
new
System
.
Windows
.
Forms
.
Padding
(
3
);
this
.
tabPage2
.
Size
=
new
System
.
Drawing
.
Size
(
1708
,
388
);
this
.
tabPage2
.
TabIndex
=
1
;
this
.
tabPage2
.
Text
=
"库位信息"
;
this
.
tabPage2
.
UseVisualStyleBackColor
=
true
;
//
// tableLayoutPanel1
//
this
.
tableLayoutPanel1
.
ColumnCount
=
1
;
this
.
tableLayoutPanel1
.
ColumnStyles
.
Add
(
new
System
.
Windows
.
Forms
.
ColumnStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
50F
));
this
.
tableLayoutPanel1
.
Controls
.
Add
(
this
.
tabControl1
,
0
,
1
);
this
.
tableLayoutPanel1
.
Controls
.
Add
(
this
.
tableLayoutPanel2
,
0
,
0
);
this
.
tableLayoutPanel1
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
tableLayoutPanel1
.
Location
=
new
System
.
Drawing
.
Point
(
0
,
0
);
this
.
tableLayoutPanel1
.
Name
=
"tableLayoutPanel1"
;
this
.
tableLayoutPanel1
.
RowCount
=
2
;
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
49.64371F
));
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
50.35629F
));
this
.
tableLayoutPanel1
.
Size
=
new
System
.
Drawing
.
Size
(
1722
,
842
);
this
.
tableLayoutPanel1
.
TabIndex
=
4
;
//
// tableLayoutPanel2
//
this
.
tableLayoutPanel2
.
ColumnCount
=
2
;
this
.
tableLayoutPanel2
.
ColumnStyles
.
Add
(
new
System
.
Windows
.
Forms
.
ColumnStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
29.31236F
));
this
.
tableLayoutPanel2
.
ColumnStyles
.
Add
(
new
System
.
Windows
.
Forms
.
ColumnStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
70.68764F
));
this
.
tableLayoutPanel2
.
Controls
.
Add
(
this
.
axisMoveControl1
,
0
,
0
);
this
.
tableLayoutPanel2
.
Controls
.
Add
(
this
.
tableLayoutPanel3
,
1
,
0
);
this
.
tableLayoutPanel2
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
tableLayoutPanel2
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
3
);
this
.
tableLayoutPanel2
.
Name
=
"tableLayoutPanel2"
;
this
.
tableLayoutPanel2
.
RowCount
=
1
;
this
.
tableLayoutPanel2
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
50F
));
this
.
tableLayoutPanel2
.
Size
=
new
System
.
Drawing
.
Size
(
1716
,
412
);
this
.
tableLayoutPanel2
.
TabIndex
=
4
;
//
// axisMoveControl1
//
this
.
axisMoveControl1
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
3
);
this
.
axisMoveControl1
.
Name
=
"axisMoveControl1"
;
this
.
axisMoveControl1
.
Size
=
new
System
.
Drawing
.
Size
(
495
,
406
);
this
.
axisMoveControl1
.
TabIndex
=
5
;
//
// tableLayoutPanel3
//
this
.
tableLayoutPanel3
.
ColumnCount
=
1
;
this
.
tableLayoutPanel3
.
ColumnStyles
.
Add
(
new
System
.
Windows
.
Forms
.
ColumnStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
100F
));
this
.
tableLayoutPanel3
.
Controls
.
Add
(
this
.
groupBox22
,
0
,
2
);
this
.
tableLayoutPanel3
.
Controls
.
Add
(
this
.
groupBox21
,
0
,
1
);
this
.
tableLayoutPanel3
.
Controls
.
Add
(
this
.
groupBox20
,
0
,
0
);
this
.
tableLayoutPanel3
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
tableLayoutPanel3
.
Location
=
new
System
.
Drawing
.
Point
(
506
,
3
);
this
.
tableLayoutPanel3
.
Name
=
"tableLayoutPanel3"
;
this
.
tableLayoutPanel3
.
RowCount
=
3
;
this
.
tableLayoutPanel3
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
33.33333F
));
this
.
tableLayoutPanel3
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
33.33333F
));
this
.
tableLayoutPanel3
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Percent
,
33.33333F
));
this
.
tableLayoutPanel3
.
Size
=
new
System
.
Drawing
.
Size
(
1207
,
406
);
this
.
tableLayoutPanel3
.
TabIndex
=
6
;
//
// groupBox22
//
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_6
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_5
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_4
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_3
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_2
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_1
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_13
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_14
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_15
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_11
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_12
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_9
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_10
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_7
);
this
.
groupBox22
.
Controls
.
Add
(
this
.
Row_Check_8
);
this
.
groupBox22
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
groupBox22
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
273
);
this
.
groupBox22
.
Name
=
"groupBox22"
;
this
.
groupBox22
.
Size
=
new
System
.
Drawing
.
Size
(
1201
,
130
);
this
.
groupBox22
.
TabIndex
=
2
;
this
.
groupBox22
.
TabStop
=
false
;
this
.
groupBox22
.
Text
=
"层信号"
;
//
// Row_Check_6
//
this
.
Row_Check_6
.
AutoSize
=
true
;
this
.
Row_Check_6
.
Location
=
new
System
.
Drawing
.
Point
(
1081
,
24
);
this
.
Row_Check_6
.
Name
=
"Row_Check_6"
;
this
.
Row_Check_6
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Row_Check_6
.
TabIndex
=
25
;
this
.
Row_Check_6
.
Text
=
"料屉第6层检测信号"
;
//
// Row_Check_5
//
this
.
Row_Check_5
.
AutoSize
=
true
;
this
.
Row_Check_5
.
Location
=
new
System
.
Drawing
.
Point
(
867
,
24
);
this
.
Row_Check_5
.
Name
=
"Row_Check_5"
;
this
.
Row_Check_5
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Row_Check_5
.
TabIndex
=
24
;
this
.
Row_Check_5
.
Text
=
"料屉第5层检测信号"
;
//
// Row_Check_4
//
this
.
Row_Check_4
.
AutoSize
=
true
;
this
.
Row_Check_4
.
Location
=
new
System
.
Drawing
.
Point
(
653
,
24
);
this
.
Row_Check_4
.
Name
=
"Row_Check_4"
;
this
.
Row_Check_4
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Row_Check_4
.
TabIndex
=
23
;
this
.
Row_Check_4
.
Text
=
"料屉第4层检测信号"
;
//
// Row_Check_3
//
this
.
Row_Check_3
.
AutoSize
=
true
;
this
.
Row_Check_3
.
Location
=
new
System
.
Drawing
.
Point
(
439
,
24
);
this
.
Row_Check_3
.
Name
=
"Row_Check_3"
;
this
.
Row_Check_3
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Row_Check_3
.
TabIndex
=
22
;
this
.
Row_Check_3
.
Text
=
"料屉第3层检测信号"
;
//
// Row_Check_2
//
this
.
Row_Check_2
.
AutoSize
=
true
;
this
.
Row_Check_2
.
Location
=
new
System
.
Drawing
.
Point
(
225
,
24
);
this
.
Row_Check_2
.
Name
=
"Row_Check_2"
;
this
.
Row_Check_2
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Row_Check_2
.
TabIndex
=
21
;
this
.
Row_Check_2
.
Text
=
"料屉第2层检测信号"
;
//
// Row_Check_1
//
this
.
Row_Check_1
.
AutoSize
=
true
;
this
.
Row_Check_1
.
Location
=
new
System
.
Drawing
.
Point
(
11
,
24
);
this
.
Row_Check_1
.
Name
=
"Row_Check_1"
;
this
.
Row_Check_1
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Row_Check_1
.
TabIndex
=
20
;
this
.
Row_Check_1
.
Text
=
"料屉第1层检测信号"
;
//
// Row_Check_13
//
this
.
Row_Check_13
.
AutoSize
=
true
;
this
.
Row_Check_13
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
93
);
this
.
Row_Check_13
.
Name
=
"Row_Check_13"
;
this
.
Row_Check_13
.
Size
=
new
System
.
Drawing
.
Size
(
118
,
17
);
this
.
Row_Check_13
.
TabIndex
=
19
;
this
.
Row_Check_13
.
Text
=
"料屉第13层检测信号"
;
//
// Row_Check_14
//
this
.
Row_Check_14
.
AutoSize
=
true
;
this
.
Row_Check_14
.
Location
=
new
System
.
Drawing
.
Point
(
217
,
93
);
this
.
Row_Check_14
.
Name
=
"Row_Check_14"
;
this
.
Row_Check_14
.
Size
=
new
System
.
Drawing
.
Size
(
118
,
17
);
this
.
Row_Check_14
.
TabIndex
=
18
;
this
.
Row_Check_14
.
Text
=
"料屉第14层检测信号"
;
//
// Row_Check_15
//
this
.
Row_Check_15
.
AutoSize
=
true
;
this
.
Row_Check_15
.
Location
=
new
System
.
Drawing
.
Point
(
428
,
93
);
this
.
Row_Check_15
.
Name
=
"Row_Check_15"
;
this
.
Row_Check_15
.
Size
=
new
System
.
Drawing
.
Size
(
118
,
17
);
this
.
Row_Check_15
.
TabIndex
=
17
;
this
.
Row_Check_15
.
Text
=
"料屉第15层检测信号"
;
//
// Row_Check_11
//
this
.
Row_Check_11
.
AutoSize
=
true
;
this
.
Row_Check_11
.
Location
=
new
System
.
Drawing
.
Point
(
858
,
57
);
this
.
Row_Check_11
.
Name
=
"Row_Check_11"
;
this
.
Row_Check_11
.
Size
=
new
System
.
Drawing
.
Size
(
118
,
17
);
this
.
Row_Check_11
.
TabIndex
=
16
;
this
.
Row_Check_11
.
Text
=
"料屉第11层检测信号"
;
//
// Row_Check_12
//
this
.
Row_Check_12
.
AutoSize
=
true
;
this
.
Row_Check_12
.
Location
=
new
System
.
Drawing
.
Point
(
1075
,
57
);
this
.
Row_Check_12
.
Name
=
"Row_Check_12"
;
this
.
Row_Check_12
.
Size
=
new
System
.
Drawing
.
Size
(
118
,
17
);
this
.
Row_Check_12
.
TabIndex
=
15
;
this
.
Row_Check_12
.
Text
=
"料屉第12层检测信号"
;
//
// Row_Check_9
//
this
.
Row_Check_9
.
AutoSize
=
true
;
this
.
Row_Check_9
.
Location
=
new
System
.
Drawing
.
Point
(
431
,
57
);
this
.
Row_Check_9
.
Name
=
"Row_Check_9"
;
this
.
Row_Check_9
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Row_Check_9
.
TabIndex
=
14
;
this
.
Row_Check_9
.
Text
=
"料屉第9层检测信号"
;
//
// Row_Check_10
//
this
.
Row_Check_10
.
AutoSize
=
true
;
this
.
Row_Check_10
.
Location
=
new
System
.
Drawing
.
Point
(
641
,
57
);
this
.
Row_Check_10
.
Name
=
"Row_Check_10"
;
this
.
Row_Check_10
.
Size
=
new
System
.
Drawing
.
Size
(
118
,
17
);
this
.
Row_Check_10
.
TabIndex
=
13
;
this
.
Row_Check_10
.
Text
=
"料屉第10层检测信号"
;
//
// Row_Check_7
//
this
.
Row_Check_7
.
AutoSize
=
true
;
this
.
Row_Check_7
.
Location
=
new
System
.
Drawing
.
Point
(
11
,
57
);
this
.
Row_Check_7
.
Name
=
"Row_Check_7"
;
this
.
Row_Check_7
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Row_Check_7
.
TabIndex
=
12
;
this
.
Row_Check_7
.
Text
=
"料屉第7层检测信号"
;
//
// Row_Check_8
//
this
.
Row_Check_8
.
AutoSize
=
true
;
this
.
Row_Check_8
.
Location
=
new
System
.
Drawing
.
Point
(
221
,
57
);
this
.
Row_Check_8
.
Name
=
"Row_Check_8"
;
this
.
Row_Check_8
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Row_Check_8
.
TabIndex
=
11
;
this
.
Row_Check_8
.
Text
=
"料屉第8层检测信号"
;
//
// groupBox21
//
this
.
groupBox21
.
Controls
.
Add
(
this
.
Column_Check_B2
);
this
.
groupBox21
.
Controls
.
Add
(
this
.
Column_Check_B3
);
this
.
groupBox21
.
Controls
.
Add
(
this
.
Column_Check_B4
);
this
.
groupBox21
.
Controls
.
Add
(
this
.
Column_Check_B5
);
this
.
groupBox21
.
Controls
.
Add
(
this
.
Column_Check_B6
);
this
.
groupBox21
.
Controls
.
Add
(
this
.
Column_Check_B1
);
this
.
groupBox21
.
Controls
.
Add
(
this
.
BHorizontal_Check
);
this
.
groupBox21
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
groupBox21
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
138
);
this
.
groupBox21
.
Name
=
"groupBox21"
;
this
.
groupBox21
.
Size
=
new
System
.
Drawing
.
Size
(
1201
,
129
);
this
.
groupBox21
.
TabIndex
=
1
;
this
.
groupBox21
.
TabStop
=
false
;
this
.
groupBox21
.
Text
=
"B面信号"
;
//
// Column_Check_B2
//
this
.
Column_Check_B2
.
AutoSize
=
true
;
this
.
Column_Check_B2
.
Location
=
new
System
.
Drawing
.
Point
(
221
,
39
);
this
.
Column_Check_B2
.
Name
=
"Column_Check_B2"
;
this
.
Column_Check_B2
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Column_Check_B2
.
TabIndex
=
18
;
this
.
Column_Check_B2
.
Text
=
"第2列料屉检测信号"
;
//
// Column_Check_B3
//
this
.
Column_Check_B3
.
AutoSize
=
true
;
this
.
Column_Check_B3
.
Location
=
new
System
.
Drawing
.
Point
(
436
,
39
);
this
.
Column_Check_B3
.
Name
=
"Column_Check_B3"
;
this
.
Column_Check_B3
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Column_Check_B3
.
TabIndex
=
17
;
this
.
Column_Check_B3
.
Text
=
"第3列料屉检测信号"
;
//
// Column_Check_B4
//
this
.
Column_Check_B4
.
AutoSize
=
true
;
this
.
Column_Check_B4
.
Location
=
new
System
.
Drawing
.
Point
(
651
,
39
);
this
.
Column_Check_B4
.
Name
=
"Column_Check_B4"
;
this
.
Column_Check_B4
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Column_Check_B4
.
TabIndex
=
16
;
this
.
Column_Check_B4
.
Text
=
"第4列料屉检测信号"
;
//
// Column_Check_B5
//
this
.
Column_Check_B5
.
AutoSize
=
true
;
this
.
Column_Check_B5
.
Location
=
new
System
.
Drawing
.
Point
(
866
,
39
);
this
.
Column_Check_B5
.
Name
=
"Column_Check_B5"
;
this
.
Column_Check_B5
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Column_Check_B5
.
TabIndex
=
15
;
this
.
Column_Check_B5
.
Text
=
"第5列料屉检测信号"
;
//
// Column_Check_B6
//
this
.
Column_Check_B6
.
AutoSize
=
true
;
this
.
Column_Check_B6
.
Location
=
new
System
.
Drawing
.
Point
(
1081
,
39
);
this
.
Column_Check_B6
.
Name
=
"Column_Check_B6"
;
this
.
Column_Check_B6
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Column_Check_B6
.
TabIndex
=
14
;
this
.
Column_Check_B6
.
Text
=
"第6列料屉检测信号"
;
//
// Column_Check_B1
//
this
.
Column_Check_B1
.
AutoSize
=
true
;
this
.
Column_Check_B1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
39
);
this
.
Column_Check_B1
.
Name
=
"Column_Check_B1"
;
this
.
Column_Check_B1
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Column_Check_B1
.
TabIndex
=
13
;
this
.
Column_Check_B1
.
Text
=
"第1列料屉检测信号"
;
//
// BHorizontal_Check
//
this
.
BHorizontal_Check
.
AutoSize
=
true
;
this
.
BHorizontal_Check
.
Location
=
new
System
.
Drawing
.
Point
(
452
,
86
);
this
.
BHorizontal_Check
.
Name
=
"BHorizontal_Check"
;
this
.
BHorizontal_Check
.
Size
=
new
System
.
Drawing
.
Size
(
136
,
17
);
this
.
BHorizontal_Check
.
TabIndex
=
12
;
this
.
BHorizontal_Check
.
Text
=
"B面移栽旋转轴水平检测"
;
//
// groupBox20
//
this
.
groupBox20
.
Controls
.
Add
(
this
.
AHorizontal_Check
);
this
.
groupBox20
.
Controls
.
Add
(
this
.
Column_Check_A2
);
this
.
groupBox20
.
Controls
.
Add
(
this
.
Column_Check_A3
);
this
.
groupBox20
.
Controls
.
Add
(
this
.
Column_Check_A4
);
this
.
groupBox20
.
Controls
.
Add
(
this
.
Column_Check_A5
);
this
.
groupBox20
.
Controls
.
Add
(
this
.
Column_Check_A6
);
this
.
groupBox20
.
Controls
.
Add
(
this
.
Column_Check_A1
);
this
.
groupBox20
.
Dock
=
System
.
Windows
.
Forms
.
DockStyle
.
Fill
;
this
.
groupBox20
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
3
);
this
.
groupBox20
.
Name
=
"groupBox20"
;
this
.
groupBox20
.
Size
=
new
System
.
Drawing
.
Size
(
1201
,
129
);
this
.
groupBox20
.
TabIndex
=
0
;
this
.
groupBox20
.
TabStop
=
false
;
this
.
groupBox20
.
Text
=
"A面信号"
;
//
// AHorizontal_Check
//
this
.
AHorizontal_Check
.
AutoSize
=
true
;
this
.
AHorizontal_Check
.
Location
=
new
System
.
Drawing
.
Point
(
458
,
87
);
this
.
AHorizontal_Check
.
Name
=
"AHorizontal_Check"
;
this
.
AHorizontal_Check
.
Size
=
new
System
.
Drawing
.
Size
(
136
,
17
);
this
.
AHorizontal_Check
.
TabIndex
=
11
;
this
.
AHorizontal_Check
.
Text
=
"A面移栽旋转轴水平检测"
;
//
// Column_Check_A2
//
this
.
Column_Check_A2
.
AutoSize
=
true
;
this
.
Column_Check_A2
.
Location
=
new
System
.
Drawing
.
Point
(
221
,
42
);
this
.
Column_Check_A2
.
Name
=
"Column_Check_A2"
;
this
.
Column_Check_A2
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Column_Check_A2
.
TabIndex
=
5
;
this
.
Column_Check_A2
.
Text
=
"第2列料屉检测信号"
;
//
// Column_Check_A3
//
this
.
Column_Check_A3
.
AutoSize
=
true
;
this
.
Column_Check_A3
.
Location
=
new
System
.
Drawing
.
Point
(
436
,
42
);
this
.
Column_Check_A3
.
Name
=
"Column_Check_A3"
;
this
.
Column_Check_A3
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Column_Check_A3
.
TabIndex
=
4
;
this
.
Column_Check_A3
.
Text
=
"第3列料屉检测信号"
;
//
// Column_Check_A4
//
this
.
Column_Check_A4
.
AutoSize
=
true
;
this
.
Column_Check_A4
.
Location
=
new
System
.
Drawing
.
Point
(
651
,
42
);
this
.
Column_Check_A4
.
Name
=
"Column_Check_A4"
;
this
.
Column_Check_A4
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Column_Check_A4
.
TabIndex
=
3
;
this
.
Column_Check_A4
.
Text
=
"第4列料屉检测信号"
;
//
// Column_Check_A5
//
this
.
Column_Check_A5
.
AutoSize
=
true
;
this
.
Column_Check_A5
.
Location
=
new
System
.
Drawing
.
Point
(
866
,
42
);
this
.
Column_Check_A5
.
Name
=
"Column_Check_A5"
;
this
.
Column_Check_A5
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Column_Check_A5
.
TabIndex
=
2
;
this
.
Column_Check_A5
.
Text
=
"第5列料屉检测信号"
;
//
// Column_Check_A6
//
this
.
Column_Check_A6
.
AutoSize
=
true
;
this
.
Column_Check_A6
.
Location
=
new
System
.
Drawing
.
Point
(
1081
,
42
);
this
.
Column_Check_A6
.
Name
=
"Column_Check_A6"
;
this
.
Column_Check_A6
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Column_Check_A6
.
TabIndex
=
1
;
this
.
Column_Check_A6
.
Text
=
"第6列料屉检测信号"
;
//
// Column_Check_A1
//
this
.
Column_Check_A1
.
AutoSize
=
true
;
this
.
Column_Check_A1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
42
);
this
.
Column_Check_A1
.
Name
=
"Column_Check_A1"
;
this
.
Column_Check_A1
.
Size
=
new
System
.
Drawing
.
Size
(
111
,
17
);
this
.
Column_Check_A1
.
TabIndex
=
0
;
this
.
Column_Check_A1
.
Text
=
"第1列料屉检测信号"
;
//
// timer1
//
this
.
timer1
.
Interval
=
1000
;
this
.
timer1
.
Tick
+=
new
System
.
EventHandler
(
this
.
timer1_Tick
);
//
// FrmAxisMove
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
7F
,
17F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
1722
,
842
);
this
.
Controls
.
Add
(
this
.
tableLayoutPanel1
);
this
.
Name
=
"FrmAxisMove"
;
this
.
Text
=
"伺服调试"
;
this
.
Load
+=
new
System
.
EventHandler
(
this
.
FrmAxisMove_Load
);
this
.
Shown
+=
new
System
.
EventHandler
(
this
.
FrmLineIO_Shown
);
this
.
groupBox1
.
ResumeLayout
(
false
);
this
.
flowLayoutPanel1
.
ResumeLayout
(
false
);
this
.
groupBox4
.
ResumeLayout
(
false
);
this
.
groupBox4
.
PerformLayout
();
this
.
groupBox5
.
ResumeLayout
(
false
);
this
.
groupBox5
.
PerformLayout
();
this
.
groupBox2
.
ResumeLayout
(
false
);
this
.
groupBox2
.
PerformLayout
();
this
.
groupBox3
.
ResumeLayout
(
false
);
this
.
groupBox3
.
PerformLayout
();
this
.
groupBox6
.
ResumeLayout
(
false
);
this
.
groupBox6
.
PerformLayout
();
this
.
groupBox8
.
ResumeLayout
(
false
);
this
.
groupBox8
.
PerformLayout
();
this
.
groupBox7
.
ResumeLayout
(
false
);
this
.
groupBox7
.
PerformLayout
();
this
.
groupBox9
.
ResumeLayout
(
false
);
this
.
groupBox9
.
PerformLayout
();
this
.
groupBox10
.
ResumeLayout
(
false
);
this
.
groupBox10
.
PerformLayout
();
this
.
groupBox11
.
ResumeLayout
(
false
);
this
.
groupBox11
.
PerformLayout
();
this
.
groupBox12
.
ResumeLayout
(
false
);
this
.
groupBox12
.
PerformLayout
();
this
.
groupBox13
.
ResumeLayout
(
false
);
this
.
flowLayoutPanel2
.
ResumeLayout
(
false
);
this
.
groupBox18
.
ResumeLayout
(
false
);
this
.
groupBox18
.
PerformLayout
();
this
.
groupBox14
.
ResumeLayout
(
false
);
this
.
groupBox14
.
PerformLayout
();
this
.
groupBox15
.
ResumeLayout
(
false
);
this
.
groupBox15
.
PerformLayout
();
this
.
groupBox19
.
ResumeLayout
(
false
);
this
.
groupBox19
.
PerformLayout
();
this
.
groupBox16
.
ResumeLayout
(
false
);
this
.
groupBox16
.
PerformLayout
();
this
.
groupBox17
.
ResumeLayout
(
false
);
this
.
groupBox17
.
PerformLayout
();
this
.
groupBox24
.
ResumeLayout
(
false
);
this
.
groupBox24
.
PerformLayout
();
this
.
tabControl1
.
ResumeLayout
(
false
);
this
.
tabPage1
.
ResumeLayout
(
false
);
this
.
tabPage2
.
ResumeLayout
(
false
);
this
.
tableLayoutPanel1
.
ResumeLayout
(
false
);
this
.
tableLayoutPanel2
.
ResumeLayout
(
false
);
this
.
tableLayoutPanel3
.
ResumeLayout
(
false
);
this
.
groupBox22
.
ResumeLayout
(
false
);
this
.
groupBox22
.
PerformLayout
();
this
.
groupBox21
.
ResumeLayout
(
false
);
this
.
groupBox21
.
PerformLayout
();
this
.
groupBox20
.
ResumeLayout
(
false
);
this
.
groupBox20
.
PerformLayout
();
this
.
ResumeLayout
(
false
);
}
#
endregion
private
System
.
Windows
.
Forms
.
GroupBox
groupBox1
;
private
System
.
Windows
.
Forms
.
FlowLayoutPanel
flowLayoutPanel1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox4
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpdown_P11
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpdown_P10
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpdown_P9
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpdown_P8
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpdown_P5
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpdown_P4
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpdown_P3
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpdown_P2
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpdown_P1
;
private
System
.
Windows
.
Forms
.
Button
btnUpdown_P9
;
private
System
.
Windows
.
Forms
.
Button
btnUpdown_P4
;
private
System
.
Windows
.
Forms
.
Button
btnUpdown_P3
;
private
System
.
Windows
.
Forms
.
Button
btnUpdown_P1
;
private
System
.
Windows
.
Forms
.
Button
btnUpdown_P11
;
private
System
.
Windows
.
Forms
.
Button
btnUpdown_P10
;
private
System
.
Windows
.
Forms
.
Button
btnUpdown_P8
;
private
System
.
Windows
.
Forms
.
Button
btnUpdown_P5
;
private
System
.
Windows
.
Forms
.
Button
btnUpdown_P2
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox5
;
private
System
.
Windows
.
Forms
.
Button
btnPullAxis_Updown_P2
;
private
System
.
Windows
.
Forms
.
Button
btnPullAxis_Updown_P1
;
private
System
.
Windows
.
Forms
.
TextBox
txtPullAxis_Updown_P2
;
private
System
.
Windows
.
Forms
.
TextBox
txtPullAxis_Updown_P1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox2
;
private
System
.
Windows
.
Forms
.
TextBox
txtMoveAxis_P2
;
private
System
.
Windows
.
Forms
.
TextBox
txtMoveAxis_P1
;
private
System
.
Windows
.
Forms
.
Button
btnMoveAxis_P2
;
private
System
.
Windows
.
Forms
.
Button
btnMoveAxis_P1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox3
;
private
System
.
Windows
.
Forms
.
TextBox
txtPullAxis_Inout_P1
;
private
System
.
Windows
.
Forms
.
Button
btnPullAxis_Inout_P1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox6
;
private
System
.
Windows
.
Forms
.
Button
btnXAxis_A_P1
;
private
System
.
Windows
.
Forms
.
TextBox
txtXAxis_A_P2
;
private
System
.
Windows
.
Forms
.
Button
btnXAxis_A_P2
;
private
System
.
Windows
.
Forms
.
TextBox
txtXAxis_A_P1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox8
;
private
System
.
Windows
.
Forms
.
TextBox
txtComAxis_A_P1
;
private
System
.
Windows
.
Forms
.
Button
btnComAxis_A_P1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox7
;
private
System
.
Windows
.
Forms
.
TextBox
txtMiddleAxis_A_P3
;
private
System
.
Windows
.
Forms
.
TextBox
txtMiddleAxis_A_P2
;
private
System
.
Windows
.
Forms
.
TextBox
txtMiddleAxis_A_P1
;
private
System
.
Windows
.
Forms
.
Button
btnMiddleAxis_A_P1
;
private
System
.
Windows
.
Forms
.
Button
btnMiddleAxis_A_P3
;
private
System
.
Windows
.
Forms
.
Button
btnMiddleAxis_A_P2
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox9
;
private
System
.
Windows
.
Forms
.
Button
btnXAxis_B_P1
;
private
System
.
Windows
.
Forms
.
TextBox
txtXAxis_B_P2
;
private
System
.
Windows
.
Forms
.
Button
btnXAxis_B_P2
;
private
System
.
Windows
.
Forms
.
TextBox
txtXAxis_B_P1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox10
;
private
System
.
Windows
.
Forms
.
TextBox
txtMiddleAxis_B_P3
;
private
System
.
Windows
.
Forms
.
TextBox
txtMiddleAxis_B_P2
;
private
System
.
Windows
.
Forms
.
TextBox
txtMiddleAxis_B_P1
;
private
System
.
Windows
.
Forms
.
Button
btnMiddleAxis_B_P1
;
private
System
.
Windows
.
Forms
.
Button
btnMiddleAxis_B_P3
;
private
System
.
Windows
.
Forms
.
Button
btnMiddleAxis_B_P2
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox11
;
private
System
.
Windows
.
Forms
.
TextBox
txtComAxis_B_P1
;
private
System
.
Windows
.
Forms
.
Button
btnComAxis_B_P1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox12
;
private
System
.
Windows
.
Forms
.
Button
btnSavePoints
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox13
;
private
System
.
Windows
.
Forms
.
FlowLayoutPanel
flowLayoutPanel2
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox14
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpdown_P7_P13
;
private
System
.
Windows
.
Forms
.
TextBox
txtUpdown_P6_P12
;
private
System
.
Windows
.
Forms
.
Button
btnUpdown_P6_P12
;
private
System
.
Windows
.
Forms
.
Button
btnUpdown_P7_P13
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox15
;
private
System
.
Windows
.
Forms
.
TextBox
txtMoveAxis_P3
;
private
System
.
Windows
.
Forms
.
Button
btnMoveAxis_P3
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox19
;
private
System
.
Windows
.
Forms
.
TextBox
txtXAxis_AB_P3
;
private
System
.
Windows
.
Forms
.
Button
btnXAxis_AB_P3
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox16
;
private
System
.
Windows
.
Forms
.
TextBox
txtPullAxis_Inout_P3_P5
;
private
System
.
Windows
.
Forms
.
Button
btnPullAxis_Inout_P3_P5
;
private
System
.
Windows
.
Forms
.
TextBox
txtPullAxis_Inout_P2_P4
;
private
System
.
Windows
.
Forms
.
Button
btnPullAxis_Inout_P2_P4
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox17
;
private
System
.
Windows
.
Forms
.
Button
btnPullAxis_Updown_P4
;
private
System
.
Windows
.
Forms
.
Button
btnPullAxis_Updown_P3
;
private
System
.
Windows
.
Forms
.
TextBox
txtPullAxis_Updown_P4
;
private
System
.
Windows
.
Forms
.
TextBox
txtPullAxis_Updown_P3
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox24
;
private
System
.
Windows
.
Forms
.
TextBox
txtComAxis_AB_P3
;
private
System
.
Windows
.
Forms
.
Button
btnComAxis_AB_P3
;
private
System
.
Windows
.
Forms
.
TextBox
txtComAxis_AB_P2
;
private
System
.
Windows
.
Forms
.
Button
btnComAxis_AB_P2
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox18
;
private
System
.
Windows
.
Forms
.
Button
btnSavePosIds
;
private
System
.
Windows
.
Forms
.
Label
label1
;
private
System
.
Windows
.
Forms
.
ComboBox
combBoxPosIds
;
private
System
.
Windows
.
Forms
.
TabControl
tabControl1
;
private
System
.
Windows
.
Forms
.
TabPage
tabPage1
;
private
System
.
Windows
.
Forms
.
TabPage
tabPage2
;
private
System
.
Windows
.
Forms
.
TableLayoutPanel
tableLayoutPanel1
;
private
System
.
Windows
.
Forms
.
TableLayoutPanel
tableLayoutPanel2
;
private
AxisMoveControl
axisMoveControl1
;
private
System
.
Windows
.
Forms
.
Label
label2
;
private
System
.
Windows
.
Forms
.
Label
label3
;
private
System
.
Windows
.
Forms
.
TableLayoutPanel
tableLayoutPanel3
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox22
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox21
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox20
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_6
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_5
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_4
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_3
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_2
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_1
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_13
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_14
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_15
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_11
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_12
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_9
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_10
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_7
;
private
System
.
Windows
.
Forms
.
Label
Row_Check_8
;
private
System
.
Windows
.
Forms
.
Label
BHorizontal_Check
;
private
System
.
Windows
.
Forms
.
Label
AHorizontal_Check
;
private
System
.
Windows
.
Forms
.
Label
Column_Check_A2
;
private
System
.
Windows
.
Forms
.
Label
Column_Check_A3
;
private
System
.
Windows
.
Forms
.
Label
Column_Check_A4
;
private
System
.
Windows
.
Forms
.
Label
Column_Check_A5
;
private
System
.
Windows
.
Forms
.
Label
Column_Check_A6
;
private
System
.
Windows
.
Forms
.
Label
Column_Check_A1
;
private
System
.
Windows
.
Forms
.
Label
Column_Check_B2
;
private
System
.
Windows
.
Forms
.
Label
Column_Check_B3
;
private
System
.
Windows
.
Forms
.
Label
Column_Check_B4
;
private
System
.
Windows
.
Forms
.
Label
Column_Check_B5
;
private
System
.
Windows
.
Forms
.
Label
Column_Check_B6
;
private
System
.
Windows
.
Forms
.
Label
Column_Check_B1
;
private
System
.
Windows
.
Forms
.
Timer
timer1
;
}
}
\ No newline at end of file
source/XLRStoreClient/boxForm/FrmAxisMove.cs
0 → 100644
查看文件 @
93b2086
using
OnlineStore.Common
;
using
OnlineStore.DeviceLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Drawing
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
using
OnlineStore.LoadCSVLibrary
;
using
System.IO
;
namespace
OnlineStore.XLRStore
{
internal
partial
class
FrmAxisMove
:
FrmBase
{
internal
FrmAxisMove
(
bool
isDebug
)
{
Control
.
CheckForIllegalCrossThreadCalls
=
false
;
InitializeComponent
();
DebugStatus
(
isDebug
);
}
BoxEquip
boxEquip
;
#
region
"初始化界面数据"
private
bool
LoadOk
=
false
;
private
void
FrmAxisMove_Load
(
object
sender
,
EventArgs
e
)
{
boxEquip
=
StoreManager
.
XLRStore
.
boxEquip
;
combBoxPosIds
.
Items
.
AddRange
(
boxEquip
.
PositionNumList
.
ToArray
());
combBoxPosIds
.
SelectedIndexChanged
+=
CombBoxPosIds_SelectedIndexChanged
;
axisMoveControl1
.
LoadData
(
StoreManager
.
XLRStore
.
boxEquip
,
StoreManager
.
XLRStore
.
boxEquip
.
moveAxisArray
);
LoadConfigPosition
();
combBoxPosIds
.
SelectedIndex
=
0
;
LoadOk
=
true
;
}
string
posSide
=
""
;
string
posId
=
""
;
private
void
CombBoxPosIds_SelectedIndexChanged
(
object
sender
,
EventArgs
e
)
{
this
.
Invoke
(
new
Action
(()
=>
{
ComboBox
comboBox
=
(
ComboBox
)
sender
;
posId
=
comboBox
.
SelectedItem
.
ToString
();
BoxPosition
ktkPosition
=
CSVPositionReader
<
BoxPosition
>.
GetPositon
(
posId
);
LoadBoxPostion
(
ktkPosition
);
InOutPosInfo
posInfo
=
new
InOutPosInfo
();
posInfo
.
PosId
=
posId
;
string
posSide
=
posInfo
.
PosSide
;
groupBox19
.
Text
=
posSide
+
"面移栽X轴"
;
groupBox24
.
Text
=
posSide
+
"面移栽压紧轴"
;
if
(
posSide
.
Equals
(
"A"
))
{
btnUpdown_P6_P12
.
Text
=
"A面料屉上方过渡点P6"
;
btnUpdown_P7_P13
.
Text
=
"A面料屉取放点P7"
;
btnPullAxis_Inout_P2_P4
.
Text
=
"A面料屉提取点P2"
;
btnPullAxis_Inout_P3_P5
.
Text
=
"A面料屉库位点P3"
;
btnComAxis_AB_P2
.
Text
=
"A面压紧轴前点P2"
;
btnComAxis_AB_P3
.
Text
=
"A面压紧轴点P3"
;
btnXAxis_AB_P3
.
Text
=
"A面料屉库位取放料点P3"
;
}
else
if
(
posSide
.
Equals
(
"B"
))
{
btnUpdown_P6_P12
.
Text
=
"B面料屉上方过渡点P12"
;
btnUpdown_P7_P13
.
Text
=
"B面料屉取放点P13"
;
btnPullAxis_Inout_P2_P4
.
Text
=
"B面料屉提取点P2"
;
btnPullAxis_Inout_P3_P5
.
Text
=
"B面料屉库位点P3"
;
btnComAxis_AB_P2
.
Text
=
"B面压紧轴前点P2"
;
btnComAxis_AB_P3
.
Text
=
"B面压紧轴点P3"
;
btnXAxis_AB_P3
.
Text
=
"B面料屉库位取放料点P3"
;
}
}));
}
private
void
LoadConfigPosition
()
{
txtComAxis_A_P1
.
Text
=
boxEquip
.
Config
.
ComAxis_A_P1
.
ToString
();
txtComAxis_B_P1
.
Text
=
boxEquip
.
Config
.
ComAxis_B_P1
.
ToString
();
txtMiddleAxis_A_P1
.
Text
=
boxEquip
.
Config
.
MiddleAxis_A_P1
.
ToString
();
txtMiddleAxis_A_P2
.
Text
=
boxEquip
.
Config
.
MiddleAxis_A_P2
.
ToString
();
txtMiddleAxis_A_P3
.
Text
=
boxEquip
.
Config
.
MiddleAxis_A_P3
.
ToString
();
txtMiddleAxis_B_P1
.
Text
=
boxEquip
.
Config
.
MiddleAxis_B_P1
.
ToString
();
txtMiddleAxis_B_P2
.
Text
=
boxEquip
.
Config
.
MiddleAxis_B_P2
.
ToString
();
txtMiddleAxis_B_P3
.
Text
=
boxEquip
.
Config
.
MiddleAxis_B_P3
.
ToString
();
txtMoveAxis_P2
.
Text
=
boxEquip
.
Config
.
MoveAxis_P2
.
ToString
();
txtMoveAxis_P1
.
Text
=
boxEquip
.
Config
.
MoveAxis_P1
.
ToString
();
txtPullAxis_Inout_P1
.
Text
=
boxEquip
.
Config
.
PullAxis_Inout_P1
.
ToString
();
txtPullAxis_Updown_P1
.
Text
=
boxEquip
.
Config
.
PullAxis_Updown_P1
.
ToString
();
txtPullAxis_Updown_P2
.
Text
=
boxEquip
.
Config
.
PullAxis_Updown_P2
.
ToString
();
txtUpdown_P1
.
Text
=
boxEquip
.
Config
.
Updown_P1
.
ToString
();
txtUpdown_P10
.
Text
=
boxEquip
.
Config
.
Updown_P10
.
ToString
();
txtUpdown_P11
.
Text
=
boxEquip
.
Config
.
Updown_P11
.
ToString
();
txtUpdown_P2
.
Text
=
boxEquip
.
Config
.
Updown_P2
.
ToString
();
txtUpdown_P3
.
Text
=
boxEquip
.
Config
.
Updown_P3
.
ToString
();
txtUpdown_P4
.
Text
=
boxEquip
.
Config
.
Updown_P4
.
ToString
();
txtUpdown_P5
.
Text
=
boxEquip
.
Config
.
Updown_P5
.
ToString
();
txtUpdown_P8
.
Text
=
boxEquip
.
Config
.
Updown_P8
.
ToString
();
txtUpdown_P9
.
Text
=
boxEquip
.
Config
.
Updown_P9
.
ToString
();
txtXAxis_A_P1
.
Text
=
boxEquip
.
Config
.
XAxis_A_P1
.
ToString
();
txtXAxis_A_P2
.
Text
=
boxEquip
.
Config
.
XAxis_A_P2
.
ToString
();
txtXAxis_B_P1
.
Text
=
boxEquip
.
Config
.
XAxis_B_P1
.
ToString
();
txtXAxis_B_P2
.
Text
=
boxEquip
.
Config
.
XAxis_B_P2
.
ToString
();
}
private
void
LoadBoxPostion
(
BoxPosition
boxPosition
)
{
txtComAxis_AB_P2
.
Text
=
boxPosition
.
ComAxis_AB_P2
.
ToString
();
txtComAxis_AB_P3
.
Text
=
boxPosition
.
ComAxis_AB_P3
.
ToString
();
txtMoveAxis_P3
.
Text
=
boxPosition
.
MoveAxis_P3
.
ToString
();
txtPullAxis_Inout_P2_P4
.
Text
=
boxPosition
.
PullAxis_Inout_P2_P4
.
ToString
();
txtPullAxis_Inout_P3_P5
.
Text
=
boxPosition
.
PullAxis_Inout_P3_P5
.
ToString
();
txtPullAxis_Updown_P3
.
Text
=
boxPosition
.
PullAxis_Updown_P3
.
ToString
();
txtPullAxis_Updown_P4
.
Text
=
boxPosition
.
PullAxis_Updown_P4
.
ToString
();
txtUpdown_P6_P12
.
Text
=
boxPosition
.
Updown_P6_P12
.
ToString
();
txtUpdown_P7_P13
.
Text
=
boxPosition
.
Updown_P7_P13
.
ToString
();
txtXAxis_AB_P3
.
Text
=
boxPosition
.
XAxis_AB_P3
.
ToString
();
}
internal
void
DebugStatus
(
bool
isDebug
)
{
axisMoveControl1
.
Enabled
=
isDebug
;
tabControl1
.
Enabled
=
isDebug
;
}
#
endregion
/// <summary>
/// 判断料屉拉取进出轴是否在P1点
/// </summary>
private
bool
PullAxisInOutIsInP1
()
{
bool
res
=
boxEquip
.
PullAxis_Inout
.
IsInPosition
(
StoreManager
.
XLRStore
.
boxEquip
.
Config
.
PullAxis_Inout_P1
);
if
(
res
)
{
return
true
;
}
MessageBox
.
Show
(
"拉取进出轴不在待机位,请先将拉取轴退回待机位("
+
StoreManager
.
XLRStore
.
boxEquip
.
Config
.
PullAxis_Inout_P1
+
")"
,
"警告(拉取轴在待机位时,才能移动移栽升降轴和行走机构) "
,
MessageBoxButtons
.
OK
,
MessageBoxIcon
.
Exclamation
);
return
false
;
}
private
void
AxisABSMove
(
AxisBean
moveAxis
,
TextBox
txtValue
,
int
targetSpeed
)
{
int
targetPosition
=
FormUtil
.
GetIntValue
(
txtValue
);
moveAxis
.
Config
.
TargetPosition
=
targetPosition
;
moveAxis
.
AbsMove
(
null
,
targetPosition
,
targetSpeed
);
}
#
region
手动移动轴
private
void
btnUpdown_P1_Click
(
object
sender
,
EventArgs
e
)
{
if
(
PullAxisInOutIsInP1
())
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P1
,
boxEquip
.
Config
.
Updown_P1_Speed
);
}
}
private
void
btnUpdown_P2_Click
(
object
sender
,
EventArgs
e
)
{
if
(
PullAxisInOutIsInP1
())
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P2
,
boxEquip
.
Config
.
Updown_P2_Speed
);
}
}
private
void
btnUpdown_P3_Click
(
object
sender
,
EventArgs
e
)
{
if
(
PullAxisInOutIsInP1
())
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P3
,
boxEquip
.
Config
.
Updown_P3_Speed
);
}
}
private
void
btnUpdown_P4_Click
(
object
sender
,
EventArgs
e
)
{
if
(
PullAxisInOutIsInP1
())
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P4
,
boxEquip
.
Config
.
Updown_P4_Speed
);
}
}
private
void
btnUpdown_P5_Click
(
object
sender
,
EventArgs
e
)
{
if
(
PullAxisInOutIsInP1
())
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P5
,
boxEquip
.
Config
.
Updown_P5_Speed
);
}
}
private
void
btnUpdown_P8_Click
(
object
sender
,
EventArgs
e
)
{
if
(
PullAxisInOutIsInP1
())
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P8
,
boxEquip
.
Config
.
Updown_P8_Speed
);
}
}
private
void
btnUpdown_P9_Click
(
object
sender
,
EventArgs
e
)
{
if
(
PullAxisInOutIsInP1
())
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P9
,
boxEquip
.
Config
.
Updown_P9_Speed
);
}
}
private
void
btnUpdown_P10_Click
(
object
sender
,
EventArgs
e
)
{
if
(
PullAxisInOutIsInP1
())
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P10
,
boxEquip
.
Config
.
Updown_P10_Speed
);
}
}
private
void
btnUpdown_P11_Click
(
object
sender
,
EventArgs
e
)
{
if
(
PullAxisInOutIsInP1
())
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P11
,
boxEquip
.
Config
.
Updown_P11_Speed
);
}
}
private
void
btnPullAxis_Updown_P1_Click
(
object
sender
,
EventArgs
e
)
{
if
(
PullAxisInOutIsInP1
())
{
AxisABSMove
(
boxEquip
.
PullAxis_Updown
,
txtPullAxis_Updown_P1
,
boxEquip
.
Config
.
PullAxis_Updown_P1_Speed
);
}
}
private
void
btnPullAxis_Updown_P2_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
PullAxis_Updown
,
txtPullAxis_Updown_P2
,
boxEquip
.
Config
.
PullAxis_Updown_P2_Speed
);
}
private
void
btnMoveAxis_P1_Click
(
object
sender
,
EventArgs
e
)
{
if
(
PullAxisInOutIsInP1
())
{
AxisABSMove
(
boxEquip
.
MoveAxis
,
txtMoveAxis_P1
,
boxEquip
.
Config
.
MoveAxis_P1_Speed
);
}
}
private
void
btnMoveAxis_P2_Click
(
object
sender
,
EventArgs
e
)
{
if
(
PullAxisInOutIsInP1
())
{
AxisABSMove
(
boxEquip
.
MoveAxis
,
txtMoveAxis_P2
,
boxEquip
.
Config
.
MoveAxis_P2_Speed
);
}
}
private
void
btnPullAxis_Inout_P1_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
PullAxis_Inout
,
txtPullAxis_Inout_P1
,
boxEquip
.
Config
.
PullAxis_Inout_P1_Speed
);
}
private
void
btnXAxis_A_P1_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
XAxis_A
,
txtXAxis_A_P1
,
boxEquip
.
Config
.
XAxis_A_P1_Speed
);
}
private
void
btnXAxis_A_P2_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
XAxis_A
,
txtXAxis_A_P2
,
boxEquip
.
Config
.
XAxis_A_P2_Speed
);
}
private
void
btnComAxis_A_P1_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
ComAxis_A
,
txtComAxis_A_P1
,
boxEquip
.
Config
.
ComAxis_A_P1_Speed
);
}
private
void
btnMiddleAxis_A_P1_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
MiddleAxis_A
,
txtMiddleAxis_A_P1
,
boxEquip
.
Config
.
MiddleAxis_A_P1_Speed
);
}
private
void
btnMiddleAxis_A_P2_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
MiddleAxis_A
,
txtMiddleAxis_A_P2
,
boxEquip
.
Config
.
MiddleAxis_A_P2_Speed
);
}
private
void
btnMiddleAxis_A_P3_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
MiddleAxis_A
,
txtMiddleAxis_A_P3
,
boxEquip
.
Config
.
MiddleAxis_A_P3_Speed
);
}
private
void
btnXAxis_B_P1_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
XAxis_B
,
txtXAxis_B_P1
,
boxEquip
.
Config
.
XAxis_B_P1_Speed
);
}
private
void
btnXAxis_B_P2_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
XAxis_B
,
txtXAxis_B_P2
,
boxEquip
.
Config
.
XAxis_B_P2_Speed
);
}
private
void
btnMiddleAxis_B_P1_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
MiddleAxis_B
,
txtMiddleAxis_B_P1
,
boxEquip
.
Config
.
MiddleAxis_B_P1_Speed
);
}
private
void
btnMiddleAxis_B_P2_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
MiddleAxis_B
,
txtMiddleAxis_B_P2
,
boxEquip
.
Config
.
MiddleAxis_B_P2_Speed
);
}
private
void
btnMiddleAxis_B_P3_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
MiddleAxis_B
,
txtMiddleAxis_B_P3
,
boxEquip
.
Config
.
MiddleAxis_B_P3_Speed
);
}
private
void
btnComAxis_B_P1_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
ComAxis_B
,
txtComAxis_B_P1
,
boxEquip
.
Config
.
ComAxis_B_P1_Speed
);
}
private
void
btnXAxis_AB_P3_Click
(
object
sender
,
EventArgs
e
)
{
if
(
posSide
.
Equals
(
"A"
))
{
AxisABSMove
(
boxEquip
.
XAxis_A
,
txtXAxis_AB_P3
,
boxEquip
.
Config
.
XAxis_A_P3_Speed
);
}
else
if
(
posSide
.
Equals
(
"B"
))
{
AxisABSMove
(
boxEquip
.
XAxis_B
,
txtXAxis_AB_P3
,
boxEquip
.
Config
.
XAxis_B_P3_Speed
);
}
}
private
void
btnComAxis_AB_P2_Click
(
object
sender
,
EventArgs
e
)
{
if
(
posSide
.
Equals
(
"A"
))
{
AxisABSMove
(
boxEquip
.
ComAxis_A
,
txtComAxis_AB_P2
,
boxEquip
.
Config
.
ComAxis_A_P2_Speed
);
}
else
if
(
posSide
.
Equals
(
"B"
))
{
AxisABSMove
(
boxEquip
.
ComAxis_B
,
txtComAxis_AB_P2
,
boxEquip
.
Config
.
ComAxis_B_P2_Speed
);
}
}
private
void
btnComAxis_AB_P3_Click
(
object
sender
,
EventArgs
e
)
{
if
(
posSide
.
Equals
(
"A"
))
{
AxisABSMove
(
boxEquip
.
ComAxis_A
,
txtComAxis_AB_P3
,
boxEquip
.
Config
.
ComAxis_A_P3_Speed
);
}
else
if
(
posSide
.
Equals
(
"B"
))
{
AxisABSMove
(
boxEquip
.
ComAxis_B
,
txtComAxis_AB_P3
,
boxEquip
.
Config
.
ComAxis_B_P3_Speed
);
}
}
private
void
btnUpdown_P6_P12_Click
(
object
sender
,
EventArgs
e
)
{
if
(
posSide
.
Equals
(
"A"
))
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P6_P12
,
boxEquip
.
Config
.
Updown_P6_Speed
);
}
else
if
(
posSide
.
Equals
(
"B"
))
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P6_P12
,
boxEquip
.
Config
.
Updown_P12_Speed
);
}
}
private
void
btnUpdown_P7_P13_Click
(
object
sender
,
EventArgs
e
)
{
if
(
posSide
.
Equals
(
"A"
))
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P7_P13
,
boxEquip
.
Config
.
Updown_P7_Speed
);
}
else
if
(
posSide
.
Equals
(
"B"
))
{
AxisABSMove
(
boxEquip
.
UpdownAxis
,
txtUpdown_P7_P13
,
boxEquip
.
Config
.
Updown_P13_Speed
);
}
}
private
void
btnPullAxis_Inout_P2_P4_Click
(
object
sender
,
EventArgs
e
)
{
if
(
posSide
.
Equals
(
"A"
))
{
AxisABSMove
(
boxEquip
.
PullAxis_Inout
,
txtPullAxis_Inout_P2_P4
,
boxEquip
.
Config
.
PullAxis_Inout_P2_Speed
);
}
else
if
(
posSide
.
Equals
(
"B"
))
{
AxisABSMove
(
boxEquip
.
PullAxis_Inout
,
txtPullAxis_Inout_P2_P4
,
boxEquip
.
Config
.
PullAxis_Inout_P4_Speed
);
}
}
private
void
btnPullAxis_Inout_P3_P5_Click
(
object
sender
,
EventArgs
e
)
{
if
(
posSide
.
Equals
(
"A"
))
{
AxisABSMove
(
boxEquip
.
PullAxis_Inout
,
txtPullAxis_Inout_P3_P5
,
boxEquip
.
Config
.
PullAxis_Inout_P3_Speed
);
}
else
if
(
posSide
.
Equals
(
"B"
))
{
AxisABSMove
(
boxEquip
.
PullAxis_Inout
,
txtPullAxis_Inout_P3_P5
,
boxEquip
.
Config
.
PullAxis_Inout_P5_Speed
);
}
}
private
void
btnMoveAxis_P3_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
MoveAxis
,
txtMoveAxis_P3
,
boxEquip
.
Config
.
MoveAxis_P3_Speed
);
}
private
void
btnPullAxis_Updown_P3_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
PullAxis_Updown
,
txtPullAxis_Updown_P3
,
boxEquip
.
Config
.
PullAxis_Updown_P3_Speed
);
}
private
void
btnPullAxis_Updown_P4_Click
(
object
sender
,
EventArgs
e
)
{
AxisABSMove
(
boxEquip
.
PullAxis_Updown
,
txtPullAxis_Updown_P4
,
boxEquip
.
Config
.
PullAxis_Updown_P4_Speed
);
}
#
endregion
/// <summary>
/// 保存点位
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private
void
btnSavePoints_Click
(
object
sender
,
EventArgs
e
)
{
bool
needUpdate
=
false
;
if
(
boxEquip
.
Config
.
ComAxis_B_P1
!=
FormUtil
.
GetIntValue
(
txtComAxis_B_P1
))
{
boxEquip
.
Config
.
ComAxis_B_P1
=
FormUtil
.
GetIntValue
(
txtComAxis_B_P1
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
MiddleAxis_A_P1
!=
FormUtil
.
GetIntValue
(
txtMiddleAxis_A_P1
))
{
boxEquip
.
Config
.
MiddleAxis_A_P1
=
FormUtil
.
GetIntValue
(
txtMiddleAxis_A_P1
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
MiddleAxis_A_P2
!=
FormUtil
.
GetIntValue
(
txtMiddleAxis_A_P2
))
{
boxEquip
.
Config
.
MiddleAxis_A_P2
=
FormUtil
.
GetIntValue
(
txtMiddleAxis_A_P2
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
MiddleAxis_A_P3
!=
FormUtil
.
GetIntValue
(
txtMiddleAxis_A_P3
))
{
boxEquip
.
Config
.
MiddleAxis_A_P3
=
FormUtil
.
GetIntValue
(
txtMiddleAxis_A_P3
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
MiddleAxis_B_P1
!=
FormUtil
.
GetIntValue
(
txtMiddleAxis_B_P1
))
{
boxEquip
.
Config
.
MiddleAxis_B_P1
=
FormUtil
.
GetIntValue
(
txtMiddleAxis_B_P1
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
MiddleAxis_B_P2
!=
FormUtil
.
GetIntValue
(
txtMiddleAxis_B_P2
))
{
boxEquip
.
Config
.
MiddleAxis_B_P2
=
FormUtil
.
GetIntValue
(
txtMiddleAxis_B_P2
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
MiddleAxis_B_P3
!=
FormUtil
.
GetIntValue
(
txtMiddleAxis_B_P3
))
{
boxEquip
.
Config
.
MiddleAxis_B_P3
=
FormUtil
.
GetIntValue
(
txtMiddleAxis_B_P3
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
MoveAxis_P2
!=
FormUtil
.
GetIntValue
(
txtMoveAxis_P2
))
{
boxEquip
.
Config
.
MoveAxis_P2
=
FormUtil
.
GetIntValue
(
txtMoveAxis_P2
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
MoveAxis_P1
!=
FormUtil
.
GetIntValue
(
txtMoveAxis_P1
))
{
boxEquip
.
Config
.
MoveAxis_P1
=
FormUtil
.
GetIntValue
(
txtMoveAxis_P1
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
PullAxis_Inout_P1
!=
FormUtil
.
GetIntValue
(
txtPullAxis_Inout_P1
))
{
boxEquip
.
Config
.
PullAxis_Inout_P1
=
FormUtil
.
GetIntValue
(
txtPullAxis_Inout_P1
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
PullAxis_Updown_P1
!=
FormUtil
.
GetIntValue
(
txtPullAxis_Updown_P1
))
{
boxEquip
.
Config
.
PullAxis_Updown_P1
=
FormUtil
.
GetIntValue
(
txtPullAxis_Updown_P1
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
PullAxis_Updown_P2
!=
FormUtil
.
GetIntValue
(
txtPullAxis_Updown_P2
))
{
boxEquip
.
Config
.
PullAxis_Updown_P2
=
FormUtil
.
GetIntValue
(
txtPullAxis_Updown_P2
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
Updown_P1
!=
FormUtil
.
GetIntValue
(
txtUpdown_P1
))
{
boxEquip
.
Config
.
Updown_P1
=
FormUtil
.
GetIntValue
(
txtUpdown_P1
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
Updown_P10
!=
FormUtil
.
GetIntValue
(
txtUpdown_P10
))
{
boxEquip
.
Config
.
Updown_P10
=
FormUtil
.
GetIntValue
(
txtUpdown_P10
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
Updown_P11
!=
FormUtil
.
GetIntValue
(
txtUpdown_P11
))
{
boxEquip
.
Config
.
Updown_P11
=
FormUtil
.
GetIntValue
(
txtUpdown_P11
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
Updown_P2
!=
FormUtil
.
GetIntValue
(
txtUpdown_P2
))
{
boxEquip
.
Config
.
Updown_P2
=
FormUtil
.
GetIntValue
(
txtUpdown_P2
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
Updown_P3
!=
FormUtil
.
GetIntValue
(
txtUpdown_P3
))
{
boxEquip
.
Config
.
Updown_P3
=
FormUtil
.
GetIntValue
(
txtUpdown_P3
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
Updown_P4
!=
FormUtil
.
GetIntValue
(
txtUpdown_P4
))
{
boxEquip
.
Config
.
Updown_P4
=
FormUtil
.
GetIntValue
(
txtUpdown_P4
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
Updown_P5
!=
FormUtil
.
GetIntValue
(
txtUpdown_P5
))
{
boxEquip
.
Config
.
Updown_P5
=
FormUtil
.
GetIntValue
(
txtUpdown_P5
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
Updown_P8
!=
FormUtil
.
GetIntValue
(
txtUpdown_P8
))
{
boxEquip
.
Config
.
Updown_P8
=
FormUtil
.
GetIntValue
(
txtUpdown_P8
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
Updown_P9
!=
FormUtil
.
GetIntValue
(
txtUpdown_P9
))
{
boxEquip
.
Config
.
Updown_P9
=
FormUtil
.
GetIntValue
(
txtUpdown_P9
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
XAxis_A_P1
!=
FormUtil
.
GetIntValue
(
txtXAxis_A_P1
))
{
boxEquip
.
Config
.
XAxis_A_P1
=
FormUtil
.
GetIntValue
(
txtXAxis_A_P1
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
ComAxis_A_P1
!=
FormUtil
.
GetIntValue
(
txtComAxis_A_P1
))
{
boxEquip
.
Config
.
ComAxis_A_P1
=
FormUtil
.
GetIntValue
(
txtComAxis_A_P1
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
XAxis_B_P2
!=
FormUtil
.
GetIntValue
(
txtXAxis_B_P2
))
{
boxEquip
.
Config
.
XAxis_B_P2
=
FormUtil
.
GetIntValue
(
txtXAxis_B_P2
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
XAxis_B_P1
!=
FormUtil
.
GetIntValue
(
txtXAxis_B_P1
))
{
boxEquip
.
Config
.
XAxis_B_P1
=
FormUtil
.
GetIntValue
(
txtXAxis_B_P1
);
needUpdate
=
true
;
}
if
(
boxEquip
.
Config
.
XAxis_A_P2
!=
FormUtil
.
GetIntValue
(
txtXAxis_A_P2
))
{
boxEquip
.
Config
.
XAxis_A_P2
=
FormUtil
.
GetIntValue
(
txtXAxis_A_P2
);
needUpdate
=
true
;
}
if
(
needUpdate
)
{
//更新配置
bool
res
=
StoreManager
.
SaveBoxConfig
(
boxEquip
.
Config
);
if
(
res
)
label3
.
Text
=
"保存点位成功"
;
}
}
/// <summary>
/// 保存库位位置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private
void
btnSavePosIds_Click
(
object
sender
,
EventArgs
e
)
{
if
(
posId
.
Equals
(
""
))
return
;
BoxPosition
ktkPosition
=
CSVPositionReader
<
BoxPosition
>.
GetPositon
(
posId
);
if
(
ktkPosition
!=
null
)
{
ktkPosition
.
ComAxis_AB_P2
=
FormUtil
.
GetIntValue
(
txtComAxis_AB_P2
);
ktkPosition
.
ComAxis_AB_P3
=
FormUtil
.
GetIntValue
(
txtComAxis_AB_P3
);
ktkPosition
.
MoveAxis_P3
=
FormUtil
.
GetIntValue
(
txtMoveAxis_P3
);
ktkPosition
.
PullAxis_Inout_P2_P4
=
FormUtil
.
GetIntValue
(
txtPullAxis_Inout_P2_P4
);
ktkPosition
.
PullAxis_Inout_P3_P5
=
FormUtil
.
GetIntValue
(
txtPullAxis_Inout_P3_P5
);
ktkPosition
.
PullAxis_Updown_P3
=
FormUtil
.
GetIntValue
(
txtPullAxis_Updown_P3
);
ktkPosition
.
PullAxis_Updown_P4
=
FormUtil
.
GetIntValue
(
txtPullAxis_Updown_P4
);
ktkPosition
.
Updown_P6_P12
=
FormUtil
.
GetIntValue
(
txtUpdown_P6_P12
);
ktkPosition
.
Updown_P7_P13
=
FormUtil
.
GetIntValue
(
txtUpdown_P7_P13
);
ktkPosition
.
XAxis_AB_P3
=
FormUtil
.
GetIntValue
(
txtXAxis_AB_P3
);
}
//位置配置
string
appPath
=
Application
.
StartupPath
;
//如果总配置文件存在,保存到总的配置文件
string
positionConfigFile
=
appPath
+
ConfigAppSettings
.
GetValue
(
Setting_Init
.
ConfigPath_BoxPosition
);
if
(!
File
.
Exists
(
positionConfigFile
))
{
string
nameStr
=
boxEquip
.
DeviceID
.
ToString
();
positionConfigFile
=
positionConfigFile
.
Replace
(
".csv"
,
"_"
+
nameStr
+
".csv"
);
}
bool
result
=
CSVPositionReader
<
BoxPosition
>.
SavePostion
(
positionConfigFile
,
ktkPosition
);
if
(!
result
)
{
MessageBox
.
Show
(
"库位【"
+
posId
+
"】保存失败!"
);
}
else
{
label2
.
Text
=
"库位【"
+
posId
+
"】保存成功!"
;
}
}
List
<
Control
>
DILabel
=
new
List
<
Control
>();
private
void
FrmLineIO_Shown
(
object
sender
,
EventArgs
e
)
{
if
(
DILabel
.
Count
<=
0
)
{
DILabel
=
new
List
<
Control
>();
foreach
(
Control
con
in
this
.
tableLayoutPanel3
.
Controls
)
{
if
(
con
is
GroupBox
)
{
foreach
(
Control
c
in
con
.
Controls
)
{
if
(
c
is
Label
)
{
if
(
boxEquip
.
Config
.
DIList
.
ContainsKey
(
c
.
Name
))
{
DILabel
.
Add
(
c
);
}
}
}
}
}
}
timer1
.
Start
();
}
private
void
timer1_Tick
(
object
sender
,
EventArgs
e
)
{
if
(!
this
.
Visible
)
{
return
;
}
foreach
(
Control
labl
in
DILabel
)
{
IO_VALUE
value
=
boxEquip
.
IOValue
(
labl
.
Name
);
if
(
value
.
Equals
(
IO_VALUE
.
HIGH
))
{
labl
.
BackColor
=
Color
.
LawnGreen
;
}
else
if
(
value
.
Equals
(
IO_VALUE
.
LOW
))
{
labl
.
BackColor
=
Color
.
LightGray
;
}
}
}
}
}
source/XLRStoreClient/boxForm/FrmAxisMove.resx
0 → 100644
查看文件 @
93b2086
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
\ No newline at end of file
source/XLRStoreClient/boxForm/FrmBoxEquip.Designer.cs
查看文件 @
93b2086
...
...
@@ -36,13 +36,12 @@
this
.
groupDO
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
lblThisSta
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
tabControl1
=
new
System
.
Windows
.
Forms
.
TabControl
();
this
.
tabPage
1
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
tabPage
3
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
groupBox6
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
lblInoutInfo
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
lblMoveInfo
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
lblInstoreList
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
tabPage2
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
axisMoveControl1
=
new
OnlineStore
.
XLRStore
.
AxisMoveControl
();
this
.
tabPage1
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
panBase
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
chbMoveStop
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
lblName
=
new
System
.
Windows
.
Forms
.
Label
();
...
...
@@ -50,16 +49,15 @@
this
.
lblStoreStatus
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnStart
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnStop
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
tabPage3
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
btnDebugAxis
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox1
.
SuspendLayout
();
this
.
groupBox4
.
SuspendLayout
();
this
.
groupBox3
.
SuspendLayout
();
this
.
tabControl1
.
SuspendLayout
();
this
.
tabPage
1
.
SuspendLayout
();
this
.
tabPage
3
.
SuspendLayout
();
this
.
groupBox6
.
SuspendLayout
();
this
.
tabPage
2
.
SuspendLayout
();
this
.
tabPage
1
.
SuspendLayout
();
this
.
panBase
.
SuspendLayout
();
this
.
tabPage3
.
SuspendLayout
();
this
.
SuspendLayout
();
//
// timer1
...
...
@@ -298,26 +296,21 @@
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
tabControl1
.
Controls
.
Add
(
this
.
tabPage3
);
this
.
tabControl1
.
Controls
.
Add
(
this
.
tabPage1
);
this
.
tabControl1
.
Controls
.
Add
(
this
.
tabPage2
);
this
.
tabControl1
.
Location
=
new
System
.
Drawing
.
Point
(
5
,
56
);
this
.
tabControl1
.
Name
=
"tabControl1"
;
this
.
tabControl1
.
SelectedIndex
=
0
;
this
.
tabControl1
.
Size
=
new
System
.
Drawing
.
Size
(
993
,
551
);
this
.
tabControl1
.
TabIndex
=
257
;
//
// tabPage
1
// tabPage
3
//
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupBox1
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupDO
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupBox3
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupBox4
);
this
.
tabPage1
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
26
);
this
.
tabPage1
.
Name
=
"tabPage1"
;
this
.
tabPage1
.
Padding
=
new
System
.
Windows
.
Forms
.
Padding
(
3
);
this
.
tabPage1
.
Size
=
new
System
.
Drawing
.
Size
(
985
,
521
);
this
.
tabPage1
.
TabIndex
=
0
;
this
.
tabPage1
.
Text
=
" IO列表 "
;
this
.
tabPage1
.
UseVisualStyleBackColor
=
true
;
this
.
tabPage3
.
Controls
.
Add
(
this
.
groupBox6
);
this
.
tabPage3
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
26
);
this
.
tabPage3
.
Name
=
"tabPage3"
;
this
.
tabPage3
.
Size
=
new
System
.
Drawing
.
Size
(
985
,
521
);
this
.
tabPage3
.
TabIndex
=
2
;
this
.
tabPage3
.
Text
=
" 设备状态 "
;
this
.
tabPage3
.
UseVisualStyleBackColor
=
true
;
//
// groupBox6
//
...
...
@@ -369,29 +362,26 @@
this
.
lblInstoreList
.
Size
=
new
System
.
Drawing
.
Size
(
724
,
74
);
this
.
lblInstoreList
.
TabIndex
=
277
;
//
// tabPage2
//
this
.
tabPage2
.
Controls
.
Add
(
this
.
axisMoveControl1
);
this
.
tabPage2
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
26
);
this
.
tabPage2
.
Name
=
"tabPage2"
;
this
.
tabPage2
.
Padding
=
new
System
.
Windows
.
Forms
.
Padding
(
3
);
this
.
tabPage2
.
Size
=
new
System
.
Drawing
.
Size
(
985
,
521
);
this
.
tabPage2
.
TabIndex
=
1
;
this
.
tabPage2
.
Text
=
" 伺服信息 "
;
this
.
tabPage2
.
UseVisualStyleBackColor
=
true
;
//
// axisMoveControl1
// tabPage1
//
this
.
axisMoveControl1
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
7
);
this
.
axisMoveControl1
.
Name
=
"axisMoveControl1"
;
this
.
axisMoveControl1
.
Size
=
new
System
.
Drawing
.
Size
(
490
,
403
);
this
.
axisMoveControl1
.
TabIndex
=
219
;
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupBox1
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupDO
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupBox3
);
this
.
tabPage1
.
Controls
.
Add
(
this
.
groupBox4
);
this
.
tabPage1
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
26
);
this
.
tabPage1
.
Name
=
"tabPage1"
;
this
.
tabPage1
.
Padding
=
new
System
.
Windows
.
Forms
.
Padding
(
3
);
this
.
tabPage1
.
Size
=
new
System
.
Drawing
.
Size
(
985
,
521
);
this
.
tabPage1
.
TabIndex
=
0
;
this
.
tabPage1
.
Text
=
" IO列表 "
;
this
.
tabPage1
.
UseVisualStyleBackColor
=
true
;
//
// panBase
//
this
.
panBase
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
panBase
.
BorderStyle
=
System
.
Windows
.
Forms
.
BorderStyle
.
FixedSingle
;
this
.
panBase
.
Controls
.
Add
(
this
.
btnDebugAxis
);
this
.
panBase
.
Controls
.
Add
(
this
.
chbMoveStop
);
this
.
panBase
.
Controls
.
Add
(
this
.
lblName
);
this
.
panBase
.
Controls
.
Add
(
this
.
chbDebug
);
...
...
@@ -424,7 +414,7 @@
this
.
lblName
.
Name
=
"lblName"
;
this
.
lblName
.
Size
=
new
System
.
Drawing
.
Size
(
120
,
40
);
this
.
lblName
.
TabIndex
=
250
;
this
.
lblName
.
Text
=
"
进仓移栽
"
;
this
.
lblName
.
Text
=
"
存储机构
"
;
this
.
lblName
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleCenter
;
//
// chbDebug
...
...
@@ -470,7 +460,7 @@
this
.
btnStop
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnStop
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnStop
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnStop
.
Location
=
new
System
.
Drawing
.
Point
(
238
,
4
);
this
.
btnStop
.
Location
=
new
System
.
Drawing
.
Point
(
351
,
4
);
this
.
btnStop
.
Name
=
"btnStop"
;
this
.
btnStop
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
40
);
this
.
btnStop
.
TabIndex
=
87
;
...
...
@@ -478,15 +468,18 @@
this
.
btnStop
.
UseVisualStyleBackColor
=
false
;
this
.
btnStop
.
Click
+=
new
System
.
EventHandler
(
this
.
btnStop_Click
);
//
//
tabPage3
//
btnDebugAxis
//
this
.
tabPage3
.
Controls
.
Add
(
this
.
groupBox6
);
this
.
tabPage3
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
26
);
this
.
tabPage3
.
Name
=
"tabPage3"
;
this
.
tabPage3
.
Size
=
new
System
.
Drawing
.
Size
(
985
,
521
);
this
.
tabPage3
.
TabIndex
=
2
;
this
.
tabPage3
.
Text
=
" 设备状态 "
;
this
.
tabPage3
.
UseVisualStyleBackColor
=
true
;
this
.
btnDebugAxis
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnDebugAxis
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnDebugAxis
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnDebugAxis
.
Location
=
new
System
.
Drawing
.
Point
(
240
,
3
);
this
.
btnDebugAxis
.
Name
=
"btnDebugAxis"
;
this
.
btnDebugAxis
.
Size
=
new
System
.
Drawing
.
Size
(
105
,
40
);
this
.
btnDebugAxis
.
TabIndex
=
263
;
this
.
btnDebugAxis
.
Text
=
"点位调试"
;
this
.
btnDebugAxis
.
UseVisualStyleBackColor
=
false
;
this
.
btnDebugAxis
.
Click
+=
new
System
.
EventHandler
(
this
.
btnDebugAxis_Click
);
//
// FrmBoxEquip
//
...
...
@@ -508,13 +501,12 @@
this
.
groupBox4
.
ResumeLayout
(
false
);
this
.
groupBox3
.
ResumeLayout
(
false
);
this
.
tabControl1
.
ResumeLayout
(
false
);
this
.
tabPage
1
.
ResumeLayout
(
false
);
this
.
tabPage
3
.
ResumeLayout
(
false
);
this
.
groupBox6
.
ResumeLayout
(
false
);
this
.
groupBox6
.
PerformLayout
();
this
.
tabPage
2
.
ResumeLayout
(
false
);
this
.
tabPage
1
.
ResumeLayout
(
false
);
this
.
panBase
.
ResumeLayout
(
false
);
this
.
panBase
.
PerformLayout
();
this
.
tabPage3
.
ResumeLayout
(
false
);
this
.
ResumeLayout
(
false
);
}
...
...
@@ -532,7 +524,6 @@
private
System
.
Windows
.
Forms
.
Label
lblThisSta
;
private
System
.
Windows
.
Forms
.
TabControl
tabControl1
;
private
System
.
Windows
.
Forms
.
TabPage
tabPage1
;
private
System
.
Windows
.
Forms
.
TabPage
tabPage2
;
private
System
.
Windows
.
Forms
.
Button
btnCloseAll
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox6
;
private
System
.
Windows
.
Forms
.
Label
lblInstoreList
;
...
...
@@ -543,7 +534,6 @@
private
System
.
Windows
.
Forms
.
Button
btnWriteSingleDO
;
private
System
.
Windows
.
Forms
.
TextBox
txtWriteTime
;
private
System
.
Windows
.
Forms
.
Label
label5
;
private
AxisMoveControl
axisMoveControl1
;
private
System
.
Windows
.
Forms
.
Label
lblMoveInfo
;
private
System
.
Windows
.
Forms
.
Label
lblInoutInfo
;
private
System
.
Windows
.
Forms
.
TextBox
txtSlaveId
;
...
...
@@ -555,6 +545,7 @@
protected
System
.
Windows
.
Forms
.
Button
btnStart
;
protected
System
.
Windows
.
Forms
.
Button
btnStop
;
private
System
.
Windows
.
Forms
.
TabPage
tabPage3
;
protected
System
.
Windows
.
Forms
.
Button
btnDebugAxis
;
}
}
source/XLRStoreClient/boxForm/FrmBoxEquip.cs
查看文件 @
93b2086
...
...
@@ -23,7 +23,7 @@ namespace OnlineStore.XLRStore
internal
partial
class
FrmBoxEquip
:
FrmBase
{
private
bool
IsLoad
=
false
;
FrmAxisMove
frmAxisMove
=
null
;
private
BoxEquip
boxBean
;
internal
FrmBoxEquip
(
BoxEquip
moveEquip
)
{
...
...
@@ -40,8 +40,6 @@ namespace OnlineStore.XLRStore
lblName
.
Text
=
boxBean
.
Name
;
this
.
Text
=
boxBean
.
Name
;
IsLoad
=
true
;
}
protected
Dictionary
<
string
,
IOTextControl
>
DIControlList
=
new
Dictionary
<
string
,
IOTextControl
>();
...
...
@@ -432,7 +430,26 @@ namespace OnlineStore.XLRStore
}
}
protected
void
AddForm
(
TabControl
tabcon
,
string
text
,
Form
form
)
{
//text = text.PadRight(10, ' ');
TabPage
lineTabPage
=
new
TabPage
(
text
);
// lineTabPage.AutoScroll = true;
// lineTabPage.Tag = StoreBean;
Panel
linePan
=
new
Panel
();
linePan
.
Dock
=
DockStyle
.
Fill
;
linePan
.
AutoScroll
=
true
;
lineTabPage
.
Controls
.
Add
(
linePan
);
form
.
FormBorderStyle
=
FormBorderStyle
.
None
;
form
.
TopLevel
=
false
;
linePan
.
Controls
.
Add
(
form
);
form
.
Dock
=
DockStyle
.
Fill
;
linePan
.
Anchor
=
((
AnchorStyles
)((
AnchorStyles
.
Top
|
AnchorStyles
.
Right
|
AnchorStyles
.
Bottom
|
AnchorStyles
.
Left
)));
form
.
Anchor
=
((
AnchorStyles
)((
AnchorStyles
.
Top
|
AnchorStyles
.
Right
|
AnchorStyles
.
Bottom
|
AnchorStyles
.
Left
)));
form
.
Show
();
//tabPageList.Add(lineTabPage);
tabcon
.
Controls
.
Add
(
lineTabPage
);
}
private
void
chbMoveStop_CheckedChanged
(
object
sender
,
EventArgs
e
)
{
...
...
@@ -444,7 +461,27 @@ namespace OnlineStore.XLRStore
boxBean
.
MoveStop
=
chbMoveStop
.
Checked
;
LogUtil
.
info
(
boxBean
.
Name
+
"用户切换是否暂停: "
+
boxBean
.
MoveStop
);
}
private
void
btnDebugAxis_Click
(
object
sender
,
EventArgs
e
)
{
if
(
frmAxisMove
==
null
)
{
frmAxisMove
=
new
FrmAxisMove
(
boxBean
.
IsDebug
);
frmAxisMove
.
Show
();
}
else
{
if
(
frmAxisMove
.
IsDisposed
)
{
frmAxisMove
=
new
FrmAxisMove
(
boxBean
.
IsDebug
);
frmAxisMove
.
Show
();
}
else
{
frmAxisMove
.
Activate
();
}
}
}
}
}
...
...
source/XLRStoreClient/boxForm/FrmIOStatus.Designer.cs
0 → 100644
查看文件 @
93b2086
namespace
OnlineStore.DUOStore
{
partial
class
FrmIOStatus
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
#
region
Windows
窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private
void
InitializeComponent
()
{
this
.
components
=
new
System
.
ComponentModel
.
Container
();
this
.
timer1
=
new
System
.
Windows
.
Forms
.
Timer
(
this
.
components
);
this
.
groupBox1
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
btnCloseGate
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnOpenGate
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnCloseAll
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnRelax
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnClamp
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnLineStop
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnLineRun
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnDeviceLed
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnCamerLed
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnTopDown
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnTopUp
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnOpenDo
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnCloseDO
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
txtDOIndex
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
txtDoName
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label17
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label14
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
txtWriteTime
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
btnBack
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
label5
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btn_Stop
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btn_Down
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btn_Up
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnFoward
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
cmbWriteIO
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
groupBox4
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
tableLayoutPanel2
=
new
System
.
Windows
.
Forms
.
TableLayoutPanel
();
this
.
groupBox3
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
tableLayoutPanel1
=
new
System
.
Windows
.
Forms
.
TableLayoutPanel
();
this
.
groupBox1
.
SuspendLayout
();
this
.
groupBox4
.
SuspendLayout
();
this
.
groupBox3
.
SuspendLayout
();
this
.
SuspendLayout
();
//
// timer1
//
this
.
timer1
.
Interval
=
1000
;
this
.
timer1
.
Tick
+=
new
System
.
EventHandler
(
this
.
timer1_Tick
);
//
// groupBox1
//
this
.
groupBox1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnCloseGate
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnOpenGate
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnCloseAll
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnRelax
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnClamp
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnLineStop
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnLineRun
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnDeviceLed
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnCamerLed
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnTopDown
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnTopUp
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnOpenDo
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnCloseDO
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
txtDOIndex
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
txtDoName
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
label17
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
label14
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
txtWriteTime
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnBack
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
label5
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btn_Stop
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btn_Down
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btn_Up
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
btnFoward
);
this
.
groupBox1
.
Controls
.
Add
(
this
.
cmbWriteIO
);
this
.
groupBox1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupBox1
.
Location
=
new
System
.
Drawing
.
Point
(
524
,
3
);
this
.
groupBox1
.
Name
=
"groupBox1"
;
this
.
groupBox1
.
Size
=
new
System
.
Drawing
.
Size
(
577
,
536
);
this
.
groupBox1
.
TabIndex
=
105
;
this
.
groupBox1
.
TabStop
=
false
;
this
.
groupBox1
.
Text
=
"DO写入"
;
this
.
groupBox1
.
Enter
+=
new
System
.
EventHandler
(
this
.
groupBox1_Enter
);
//
// btnCloseGate
//
this
.
btnCloseGate
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnCloseGate
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnCloseGate
.
Location
=
new
System
.
Drawing
.
Point
(
307
,
206
);
this
.
btnCloseGate
.
Name
=
"btnCloseGate"
;
this
.
btnCloseGate
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnCloseGate
.
TabIndex
=
304
;
this
.
btnCloseGate
.
Text
=
"大门关闭"
;
this
.
btnCloseGate
.
UseVisualStyleBackColor
=
false
;
this
.
btnCloseGate
.
Click
+=
new
System
.
EventHandler
(
this
.
btnCloseGate_Click
);
//
// btnOpenGate
//
this
.
btnOpenGate
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnOpenGate
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnOpenGate
.
Location
=
new
System
.
Drawing
.
Point
(
307
,
169
);
this
.
btnOpenGate
.
Name
=
"btnOpenGate"
;
this
.
btnOpenGate
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnOpenGate
.
TabIndex
=
303
;
this
.
btnOpenGate
.
Text
=
"大门打开"
;
this
.
btnOpenGate
.
UseVisualStyleBackColor
=
false
;
this
.
btnOpenGate
.
Click
+=
new
System
.
EventHandler
(
this
.
btnOpenGate_Click
);
//
// btnCloseAll
//
this
.
btnCloseAll
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnCloseAll
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnCloseAll
.
Location
=
new
System
.
Drawing
.
Point
(
167
,
421
);
this
.
btnCloseAll
.
Name
=
"btnCloseAll"
;
this
.
btnCloseAll
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnCloseAll
.
TabIndex
=
302
;
this
.
btnCloseAll
.
Text
=
"关闭所有DO"
;
this
.
btnCloseAll
.
UseVisualStyleBackColor
=
false
;
this
.
btnCloseAll
.
Click
+=
new
System
.
EventHandler
(
this
.
btnCloseCyDo_Click
);
//
// btnRelax
//
this
.
btnRelax
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnRelax
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnRelax
.
Location
=
new
System
.
Drawing
.
Point
(
167
,
363
);
this
.
btnRelax
.
Name
=
"btnRelax"
;
this
.
btnRelax
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnRelax
.
TabIndex
=
297
;
this
.
btnRelax
.
Text
=
"取料气缸放松"
;
this
.
btnRelax
.
UseVisualStyleBackColor
=
false
;
this
.
btnRelax
.
Click
+=
new
System
.
EventHandler
(
this
.
btnRelax_Click
);
//
// btnClamp
//
this
.
btnClamp
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnClamp
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnClamp
.
Location
=
new
System
.
Drawing
.
Point
(
167
,
326
);
this
.
btnClamp
.
Name
=
"btnClamp"
;
this
.
btnClamp
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnClamp
.
TabIndex
=
296
;
this
.
btnClamp
.
Text
=
"取料气缸夹紧"
;
this
.
btnClamp
.
UseVisualStyleBackColor
=
false
;
this
.
btnClamp
.
Click
+=
new
System
.
EventHandler
(
this
.
btnClamp_Click
);
//
// btnLineStop
//
this
.
btnLineStop
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnLineStop
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnLineStop
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
363
);
this
.
btnLineStop
.
Name
=
"btnLineStop"
;
this
.
btnLineStop
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnLineStop
.
TabIndex
=
295
;
this
.
btnLineStop
.
Text
=
"线体停止"
;
this
.
btnLineStop
.
UseVisualStyleBackColor
=
false
;
this
.
btnLineStop
.
Click
+=
new
System
.
EventHandler
(
this
.
btnLineStop_Click
);
//
// btnLineRun
//
this
.
btnLineRun
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnLineRun
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnLineRun
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
326
);
this
.
btnLineRun
.
Name
=
"btnLineRun"
;
this
.
btnLineRun
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnLineRun
.
TabIndex
=
294
;
this
.
btnLineRun
.
Text
=
"线体正转"
;
this
.
btnLineRun
.
UseVisualStyleBackColor
=
false
;
this
.
btnLineRun
.
Click
+=
new
System
.
EventHandler
(
this
.
btnLineRun_Click
);
//
// btnDeviceLed
//
this
.
btnDeviceLed
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnDeviceLed
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnDeviceLed
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
461
);
this
.
btnDeviceLed
.
Name
=
"btnDeviceLed"
;
this
.
btnDeviceLed
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnDeviceLed
.
TabIndex
=
293
;
this
.
btnDeviceLed
.
Text
=
"打开设备光源"
;
this
.
btnDeviceLed
.
UseVisualStyleBackColor
=
false
;
this
.
btnDeviceLed
.
Click
+=
new
System
.
EventHandler
(
this
.
btnStoreOn_Click
);
//
// btnCamerLed
//
this
.
btnCamerLed
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnCamerLed
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnCamerLed
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
421
);
this
.
btnCamerLed
.
Name
=
"btnCamerLed"
;
this
.
btnCamerLed
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnCamerLed
.
TabIndex
=
290
;
this
.
btnCamerLed
.
Text
=
"打开相机光源"
;
this
.
btnCamerLed
.
UseVisualStyleBackColor
=
false
;
this
.
btnCamerLed
.
Click
+=
new
System
.
EventHandler
(
this
.
btnCamerLed_Click
);
//
// btnTopDown
//
this
.
btnTopDown
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnTopDown
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnTopDown
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
206
);
this
.
btnTopDown
.
Name
=
"btnTopDown"
;
this
.
btnTopDown
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnTopDown
.
TabIndex
=
289
;
this
.
btnTopDown
.
Text
=
"横移顶升气缸下降"
;
this
.
btnTopDown
.
UseVisualStyleBackColor
=
false
;
this
.
btnTopDown
.
Click
+=
new
System
.
EventHandler
(
this
.
btnTopDown_Click
);
//
// btnTopUp
//
this
.
btnTopUp
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnTopUp
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnTopUp
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
169
);
this
.
btnTopUp
.
Name
=
"btnTopUp"
;
this
.
btnTopUp
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnTopUp
.
TabIndex
=
288
;
this
.
btnTopUp
.
Text
=
"横移顶升气缸上升"
;
this
.
btnTopUp
.
UseVisualStyleBackColor
=
false
;
this
.
btnTopUp
.
Click
+=
new
System
.
EventHandler
(
this
.
btnTopUp_Click
);
//
// btnOpenDo
//
this
.
btnOpenDo
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnOpenDo
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnOpenDo
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnOpenDo
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
111
);
this
.
btnOpenDo
.
Name
=
"btnOpenDo"
;
this
.
btnOpenDo
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnOpenDo
.
TabIndex
=
282
;
this
.
btnOpenDo
.
Text
=
"打开"
;
this
.
btnOpenDo
.
UseVisualStyleBackColor
=
false
;
this
.
btnOpenDo
.
Click
+=
new
System
.
EventHandler
(
this
.
btnOpenDo_Click
);
//
// btnCloseDO
//
this
.
btnCloseDO
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnCloseDO
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnCloseDO
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnCloseDO
.
Location
=
new
System
.
Drawing
.
Point
(
167
,
111
);
this
.
btnCloseDO
.
Name
=
"btnCloseDO"
;
this
.
btnCloseDO
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnCloseDO
.
TabIndex
=
281
;
this
.
btnCloseDO
.
Text
=
"关闭"
;
this
.
btnCloseDO
.
UseVisualStyleBackColor
=
false
;
this
.
btnCloseDO
.
Click
+=
new
System
.
EventHandler
(
this
.
btnCloseDO_Click
);
//
// txtDOIndex
//
this
.
txtDOIndex
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtDOIndex
.
Location
=
new
System
.
Drawing
.
Point
(
69
,
80
);
this
.
txtDOIndex
.
MaxLength
=
10
;
this
.
txtDOIndex
.
Name
=
"txtDOIndex"
;
this
.
txtDOIndex
.
Size
=
new
System
.
Drawing
.
Size
(
70
,
23
);
this
.
txtDOIndex
.
TabIndex
=
242
;
this
.
txtDOIndex
.
Text
=
"0"
;
//
// txtDoName
//
this
.
txtDoName
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtDoName
.
Location
=
new
System
.
Drawing
.
Point
(
69
,
51
);
this
.
txtDoName
.
MaxLength
=
10
;
this
.
txtDoName
.
Name
=
"txtDoName"
;
this
.
txtDoName
.
Size
=
new
System
.
Drawing
.
Size
(
233
,
23
);
this
.
txtDoName
.
TabIndex
=
241
;
this
.
txtDoName
.
Text
=
"0"
;
//
// label17
//
this
.
label17
.
AutoSize
=
true
;
this
.
label17
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label17
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label17
.
Location
=
new
System
.
Drawing
.
Point
(
20
,
54
);
this
.
label17
.
Name
=
"label17"
;
this
.
label17
.
Size
=
new
System
.
Drawing
.
Size
(
46
,
17
);
this
.
label17
.
TabIndex
=
240
;
this
.
label17
.
Text
=
"设备IP:"
;
this
.
label17
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// label14
//
this
.
label14
.
AutoSize
=
true
;
this
.
label14
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label14
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label14
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
83
);
this
.
label14
.
Name
=
"label14"
;
this
.
label14
.
Size
=
new
System
.
Drawing
.
Size
(
35
,
17
);
this
.
label14
.
TabIndex
=
239
;
this
.
label14
.
Text
=
"地址:"
;
this
.
label14
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// txtWriteTime
//
this
.
txtWriteTime
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
txtWriteTime
.
Location
=
new
System
.
Drawing
.
Point
(
230
,
80
);
this
.
txtWriteTime
.
MaxLength
=
10
;
this
.
txtWriteTime
.
Name
=
"txtWriteTime"
;
this
.
txtWriteTime
.
Size
=
new
System
.
Drawing
.
Size
(
72
,
23
);
this
.
txtWriteTime
.
TabIndex
=
238
;
this
.
txtWriteTime
.
Text
=
"0"
;
//
// btnBack
//
this
.
btnBack
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnBack
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnBack
.
Location
=
new
System
.
Drawing
.
Point
(
167
,
206
);
this
.
btnBack
.
Name
=
"btnBack"
;
this
.
btnBack
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnBack
.
TabIndex
=
251
;
this
.
btnBack
.
Text
=
"提升线体后退"
;
this
.
btnBack
.
UseVisualStyleBackColor
=
false
;
this
.
btnBack
.
Click
+=
new
System
.
EventHandler
(
this
.
btnBack_Click
);
//
// label5
//
this
.
label5
.
AutoSize
=
true
;
this
.
label5
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
label5
.
ImageAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
this
.
label5
.
Location
=
new
System
.
Drawing
.
Point
(
164
,
83
);
this
.
label5
.
Name
=
"label5"
;
this
.
label5
.
Size
=
new
System
.
Drawing
.
Size
(
60
,
17
);
this
.
label5
.
TabIndex
=
237
;
this
.
label5
.
Text
=
"定时(ms):"
;
this
.
label5
.
TextAlign
=
System
.
Drawing
.
ContentAlignment
.
MiddleRight
;
//
// btn_Stop
//
this
.
btn_Stop
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btn_Stop
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btn_Stop
.
Location
=
new
System
.
Drawing
.
Point
(
167
,
246
);
this
.
btn_Stop
.
Name
=
"btn_Stop"
;
this
.
btn_Stop
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btn_Stop
.
TabIndex
=
250
;
this
.
btn_Stop
.
Text
=
"提升线体停止"
;
this
.
btn_Stop
.
UseVisualStyleBackColor
=
false
;
this
.
btn_Stop
.
Click
+=
new
System
.
EventHandler
(
this
.
btn_Stop_Click
);
//
// btn_Down
//
this
.
btn_Down
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btn_Down
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btn_Down
.
Location
=
new
System
.
Drawing
.
Point
(
167
,
286
);
this
.
btn_Down
.
Name
=
"btn_Down"
;
this
.
btn_Down
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btn_Down
.
TabIndex
=
250
;
this
.
btn_Down
.
Text
=
"定位销下降"
;
this
.
btn_Down
.
UseVisualStyleBackColor
=
false
;
this
.
btn_Down
.
Click
+=
new
System
.
EventHandler
(
this
.
btnLocationDown_Click
);
//
// btn_Up
//
this
.
btn_Up
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btn_Up
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btn_Up
.
Location
=
new
System
.
Drawing
.
Point
(
31
,
286
);
this
.
btn_Up
.
Name
=
"btn_Up"
;
this
.
btn_Up
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btn_Up
.
TabIndex
=
250
;
this
.
btn_Up
.
Text
=
"定位销上升"
;
this
.
btn_Up
.
UseVisualStyleBackColor
=
false
;
this
.
btn_Up
.
Click
+=
new
System
.
EventHandler
(
this
.
btnLocationUp_Click
);
//
// btnFoward
//
this
.
btnFoward
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnFoward
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnFoward
.
Location
=
new
System
.
Drawing
.
Point
(
167
,
169
);
this
.
btnFoward
.
Name
=
"btnFoward"
;
this
.
btnFoward
.
Size
=
new
System
.
Drawing
.
Size
(
125
,
34
);
this
.
btnFoward
.
TabIndex
=
250
;
this
.
btnFoward
.
Text
=
"提升线体前进"
;
this
.
btnFoward
.
UseVisualStyleBackColor
=
false
;
this
.
btnFoward
.
Click
+=
new
System
.
EventHandler
(
this
.
btnFoward_Click
);
//
// cmbWriteIO
//
this
.
cmbWriteIO
.
DisplayMember
=
"ProName"
;
this
.
cmbWriteIO
.
DrawMode
=
System
.
Windows
.
Forms
.
DrawMode
.
OwnerDrawVariable
;
this
.
cmbWriteIO
.
DropDownStyle
=
System
.
Windows
.
Forms
.
ComboBoxStyle
.
DropDownList
;
this
.
cmbWriteIO
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
cmbWriteIO
.
FormattingEnabled
=
true
;
this
.
cmbWriteIO
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
18
);
this
.
cmbWriteIO
.
Name
=
"cmbWriteIO"
;
this
.
cmbWriteIO
.
Size
=
new
System
.
Drawing
.
Size
(
296
,
27
);
this
.
cmbWriteIO
.
TabIndex
=
234
;
this
.
cmbWriteIO
.
ValueMember
=
"ProName"
;
this
.
cmbWriteIO
.
DrawItem
+=
new
System
.
Windows
.
Forms
.
DrawItemEventHandler
(
this
.
cmbWriteIO_DrawItem
);
this
.
cmbWriteIO
.
SelectedIndexChanged
+=
new
System
.
EventHandler
(
this
.
cmbWriteIO_SelectedIndexChanged
);
//
// groupBox4
//
this
.
groupBox4
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
groupBox4
.
Controls
.
Add
(
this
.
tableLayoutPanel2
);
this
.
groupBox4
.
Location
=
new
System
.
Drawing
.
Point
(
265
,
3
);
this
.
groupBox4
.
Name
=
"groupBox4"
;
this
.
groupBox4
.
Size
=
new
System
.
Drawing
.
Size
(
255
,
614
);
this
.
groupBox4
.
TabIndex
=
104
;
this
.
groupBox4
.
TabStop
=
false
;
this
.
groupBox4
.
Text
=
"DO列表"
;
//
// tableLayoutPanel2
//
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
.
Right
)));
this
.
tableLayoutPanel2
.
AutoScroll
=
true
;
this
.
tableLayoutPanel2
.
ColumnCount
=
1
;
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
.
Name
=
"tableLayoutPanel2"
;
this
.
tableLayoutPanel2
.
RowCount
=
2
;
this
.
tableLayoutPanel2
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Absolute
,
17F
));
this
.
tableLayoutPanel2
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Absolute
,
17F
));
this
.
tableLayoutPanel2
.
Size
=
new
System
.
Drawing
.
Size
(
244
,
594
);
this
.
tableLayoutPanel2
.
TabIndex
=
103
;
//
// groupBox3
//
this
.
groupBox3
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
groupBox3
.
Controls
.
Add
(
this
.
tableLayoutPanel1
);
this
.
groupBox3
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
3
);
this
.
groupBox3
.
Name
=
"groupBox3"
;
this
.
groupBox3
.
Size
=
new
System
.
Drawing
.
Size
(
255
,
614
);
this
.
groupBox3
.
TabIndex
=
103
;
this
.
groupBox3
.
TabStop
=
false
;
this
.
groupBox3
.
Text
=
"DI列表"
;
//
// tableLayoutPanel1
//
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
.
Right
)));
this
.
tableLayoutPanel1
.
AutoScroll
=
true
;
this
.
tableLayoutPanel1
.
ColumnCount
=
1
;
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
.
Name
=
"tableLayoutPanel1"
;
this
.
tableLayoutPanel1
.
RowCount
=
2
;
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Absolute
,
17F
));
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
System
.
Windows
.
Forms
.
RowStyle
(
System
.
Windows
.
Forms
.
SizeType
.
Absolute
,
17F
));
this
.
tableLayoutPanel1
.
Size
=
new
System
.
Drawing
.
Size
(
244
,
594
);
this
.
tableLayoutPanel1
.
TabIndex
=
102
;
//
// FrmIOStatus
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
7F
,
17F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
1132
,
621
);
this
.
Controls
.
Add
(
this
.
groupBox1
);
this
.
Controls
.
Add
(
this
.
groupBox4
);
this
.
Controls
.
Add
(
this
.
groupBox3
);
this
.
MaximizeBox
=
false
;
this
.
MinimizeBox
=
false
;
this
.
Name
=
"FrmIOStatus"
;
this
.
Text
=
"IO查看"
;
this
.
FormClosing
+=
new
System
.
Windows
.
Forms
.
FormClosingEventHandler
(
this
.
FrmTest_FormClosing
);
this
.
Load
+=
new
System
.
EventHandler
(
this
.
FrmStoreIOStatus_Load
);
this
.
Shown
+=
new
System
.
EventHandler
(
this
.
FrmIOStatus_Shown
);
this
.
groupBox1
.
ResumeLayout
(
false
);
this
.
groupBox1
.
PerformLayout
();
this
.
groupBox4
.
ResumeLayout
(
false
);
this
.
groupBox3
.
ResumeLayout
(
false
);
this
.
ResumeLayout
(
false
);
}
#
endregion
private
System
.
Windows
.
Forms
.
Timer
timer1
;
private
System
.
Windows
.
Forms
.
TableLayoutPanel
tableLayoutPanel1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox3
;
private
System
.
Windows
.
Forms
.
TableLayoutPanel
tableLayoutPanel2
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox4
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox1
;
private
System
.
Windows
.
Forms
.
TextBox
txtDOIndex
;
private
System
.
Windows
.
Forms
.
Label
label17
;
private
System
.
Windows
.
Forms
.
Label
label14
;
private
System
.
Windows
.
Forms
.
TextBox
txtWriteTime
;
private
System
.
Windows
.
Forms
.
Label
label5
;
private
System
.
Windows
.
Forms
.
ComboBox
cmbWriteIO
;
private
System
.
Windows
.
Forms
.
TextBox
txtDoName
;
private
System
.
Windows
.
Forms
.
Button
btnBack
;
private
System
.
Windows
.
Forms
.
Button
btnFoward
;
private
System
.
Windows
.
Forms
.
Button
btnOpenDo
;
private
System
.
Windows
.
Forms
.
Button
btnCloseDO
;
private
System
.
Windows
.
Forms
.
Button
btnTopDown
;
private
System
.
Windows
.
Forms
.
Button
btnTopUp
;
private
System
.
Windows
.
Forms
.
Button
btnCamerLed
;
private
System
.
Windows
.
Forms
.
Button
btnDeviceLed
;
private
System
.
Windows
.
Forms
.
Button
btnLineStop
;
private
System
.
Windows
.
Forms
.
Button
btnLineRun
;
private
System
.
Windows
.
Forms
.
Button
btnRelax
;
private
System
.
Windows
.
Forms
.
Button
btnClamp
;
private
System
.
Windows
.
Forms
.
Button
btnCloseAll
;
private
System
.
Windows
.
Forms
.
Button
btn_Stop
;
private
System
.
Windows
.
Forms
.
Button
btn_Down
;
private
System
.
Windows
.
Forms
.
Button
btn_Up
;
private
System
.
Windows
.
Forms
.
Button
btnCloseGate
;
private
System
.
Windows
.
Forms
.
Button
btnOpenGate
;
}
}
source/XLRStoreClient/boxForm/FrmIOStatus.cs
0 → 100644
查看文件 @
93b2086
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Drawing
;
using
System.Linq
;
using
System.Text
;
using
System.Windows.Forms
;
using
System.Runtime.CompilerServices
;
using
System.Threading
;
using
System.IO
;
using
System.Runtime.InteropServices
;
using
OnlineStore.DeviceLibrary
;
using
log4net
;
using
System.Reflection
;
using
UserFromControl
;
using
OnlineStore.LoadCSVLibrary
;
using
OnlineStore.Common
;
namespace
OnlineStore.XLRStore
{
internal
partial
class
FrmIOStatus
:
FrmBase
{
private
int
StoreId
=
1
;
internal
FrmIOStatus
(
)
{
Control
.
CheckForIllegalCrossThreadCalls
=
false
;
InitializeComponent
();
LoadIOList
();
}
private
void
FrmStoreIOStatus_Load
(
object
sender
,
EventArgs
e
)
{
}
Dictionary
<
string
,
IOTextControl
>
DIControlList
=
new
Dictionary
<
string
,
IOTextControl
>();
Dictionary
<
string
,
IOTextControl
>
DOControlList
=
new
Dictionary
<
string
,
IOTextControl
>();
private
void
LoadIOList
()
{
int
roleindex
=
0
;
this
.
tableLayoutPanel1
.
RowStyles
.
Clear
();
this
.
tableLayoutPanel1
.
RowCount
=
StoreManager
.
Config
.
DIList
.
Count
;
foreach
(
ConfigIO
ioValue
in
StoreManager
.
Config
.
DIList
.
Values
)
{
//if (ioValue.SubType.Equals(0))
{
this
.
tableLayoutPanel1
.
RowStyles
.
Add
(
new
RowStyle
(
SizeType
.
Absolute
,
26
));
IOTextControl
control
=
new
IOTextControl
(
ioValue
.
ElectricalDefinition
+
"_"
+
ioValue
.
Explain
,
ioValue
.
ProName
);
this
.
tableLayoutPanel1
.
Controls
.
Add
(
control
,
0
,
roleindex
);
roleindex
++;
DIControlList
.
Add
(
ioValue
.
ProName
,
control
);
}
}
tableLayoutPanel2
.
RowStyles
.
Clear
();
this
.
tableLayoutPanel2
.
RowCount
=
StoreManager
.
Config
.
DOList
.
Count
;
roleindex
=
0
;
foreach
(
ConfigIO
ioValue
in
StoreManager
.
Config
.
DOList
.
Values
)
{
//if (ioValue.SubType.Equals(0))
{
this
.
tableLayoutPanel2
.
RowStyles
.
Add
(
new
RowStyle
(
SizeType
.
Absolute
,
28
));
IOTextControl
control
=
new
IOTextControl
(
ioValue
.
ElectricalDefinition
+
"_"
+
ioValue
.
Explain
,
ioValue
.
ProName
);
control
.
Click
+=
Control_Click
;
this
.
tableLayoutPanel2
.
Controls
.
Add
(
control
,
0
,
roleindex
);
roleindex
++;
DOControlList
.
Add
(
ioValue
.
ProName
,
control
);
}
}
this
.
SuspendLayout
();
//此处为不闪屏,一定要有的!
cmbWriteIO
.
DataSource
=
new
List
<
ConfigIO
>(
StoreManager
.
Config
.
DOList
.
Values
);
cmbWriteIO
.
ValueMember
=
"ProName"
;
cmbWriteIO
.
DisplayMember
=
"DisplayStr"
;
}
private
void
Control_Click
(
object
sender
,
EventArgs
e
)
{
IOTextControl
control
=
(
IOTextControl
)
sender
;
string
name
=
control
.
Name
.
Substring
(
3
,
control
.
Name
.
Length
-
3
);
List
<
string
>
keyList
=
new
List
<
string
>(
DOControlList
.
Keys
);
int
index
=
keyList
.
IndexOf
(
name
);
if
(
index
>=
0
)
{
cmbWriteIO
.
SelectedIndex
=
index
;
}
}
private
void
timer1_Tick
(
object
sender
,
EventArgs
e
)
{
if
(
this
.
Visible
)
{
ReadIOList
();
}
}
private
void
FrmTest_FormClosing
(
object
sender
,
FormClosingEventArgs
e
)
{
//KNDAIManager.NeedShow = false;
try
{
if
(
this
.
timer1
.
Enabled
)
{
this
.
timer1
.
Enabled
=
false
;
}
}
catch
(
Exception
ex
)
{
MessageBox
.
Show
(
ex
.
StackTrace
,
"Exception(异常)"
,
MessageBoxButtons
.
OK
,
MessageBoxIcon
.
Error
);
LogUtil
.
error
(
ex
.
StackTrace
);
}
}
private
ConfigIO
GetSelectDO
()
{
string
text
=
cmbWriteIO
.
SelectedValue
.
ToString
();
if
(
StoreManager
.
Config
.
DOList
.
ContainsKey
(
text
))
{
ConfigIO
io
=
StoreManager
.
Config
.
DOList
[
text
];
return
io
;
}
return
null
;
}
IOTextControl
selectControl
=
null
;
private
void
cmbWriteIO_SelectedIndexChanged
(
object
sender
,
EventArgs
e
)
{
if
(
cmbWriteIO
.
SelectedIndex
>=
0
)
{
ConfigIO
io
=
GetSelectDO
();
if
(
io
!=
null
)
{
// txtIp.Text = io.DeviceName;
txtDOIndex
.
Text
=
io
.
GetIOAddr
().
ToString
();
txtDoName
.
Text
=
io
.
IO_IP
;
IOTextControl
newControl
=
DOControlList
[
io
.
ProName
];
if
(
selectControl
!=
null
)
{
selectControl
.
BackColor
=
Color
.
White
;
}
newControl
.
BackColor
=
Color
.
SkyBlue
;
selectControl
=
newControl
;
}
}
}
private
void
cmbWriteIO_DrawItem
(
object
sender
,
DrawItemEventArgs
e
)
{
if
(
e
.
Index
<
0
)
{
return
;
}
e
.
DrawBackground
();
e
.
DrawFocusRectangle
();
if
(
cmbWriteIO
.
Items
.
Count
>
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
);
}
}
private
void
btnReadIO_Click
(
object
sender
,
EventArgs
e
)
{
ReadIOList
();
}
private
void
ReadIOList
()
{
foreach
(
string
key
in
DIControlList
.
Keys
)
{
IOTextControl
control
=
DIControlList
[
key
];
ConfigIO
io
=
StoreManager
.
Config
.
DIList
[
key
];
int
iov
=
(
int
)
IOManager
.
instance
.
GetDIValue
(
io
.
IO_IP
,
0
,
io
.
GetIOAddr
());
if
(
iov
!=
control
.
IOValue
)
{
control
.
IOValue
=
iov
;
control
.
ShowData
();
}
}
foreach
(
string
key
in
this
.
DOControlList
.
Keys
)
{
IOTextControl
control
=
DOControlList
[
key
];
ConfigIO
io
=
StoreManager
.
Config
.
DOList
[
key
];
int
iov
=
(
int
)
IOManager
.
instance
.
GetDOValue
(
io
.
IO_IP
,
0
,
io
.
GetIOAddr
());
if
(
iov
!=
control
.
IOValue
)
{
control
.
IOValue
=
iov
;
control
.
ShowData
();
}
}
}
protected
void
BtnMove
(
Button
btn
,
string
defaultText
,
string
targetText
,
string
ioHighType
)
{
LogUtil
.
info
(
"点击【"
+
btn
.
Text
+
"】 "
);
if
(
btn
.
Text
.
Equals
(
defaultText
))
{
StoreManager
.
Store
.
IOMove
(
ioHighType
,
IO_VALUE
.
HIGH
);
btn
.
Text
=
targetText
;
btn
.
BackColor
=
Color
.
Aqua
;
}
else
{
StoreManager
.
Store
.
IOMove
(
ioHighType
,
IO_VALUE
.
LOW
);
btn
.
Text
=
defaultText
;
btn
.
BackColor
=
Color
.
White
;
}
}
protected
void
BtnMove
(
Button
btn
,
string
defaultText
,
string
targetText
,
string
ioLowType
,
string
ioHighType
)
{
LogUtil
.
info
(
"点击【"
+
btn
.
Text
+
"】 "
);
if
(
btn
.
Text
.
Equals
(
defaultText
))
{
StoreManager
.
Store
.
CylinderMove
(
null
,
ioLowType
,
ioHighType
);
btn
.
Text
=
targetText
;
btn
.
BackColor
=
Color
.
Aqua
;
}
else
{
StoreManager
.
Store
.
CylinderMove
(
null
,
ioHighType
,
ioLowType
);
btn
.
Text
=
defaultText
;
btn
.
BackColor
=
Color
.
SkyBlue
;
}
}
private
void
btnLocationUp_Click
(
object
sender
,
EventArgs
e
)
{
//StoreManager.Store.hoisterCylinder.StartForward(null);
StoreManager
.
Store
.
InOutStation_LocationUp
();
}
private
void
btnLocationDown_Click
(
object
sender
,
EventArgs
e
)
{
//StoreManager.Store.hoisterCylinder.StartBack(null);
StoreManager
.
Store
.
InOutStation_LocationDown
();
}
private
void
FrmIOStatus_Shown
(
object
sender
,
EventArgs
e
)
{
timer1
.
Start
();
}
private
void
btnOpenDo_Click
(
object
sender
,
EventArgs
e
)
{
WriteDO
(
IO_VALUE
.
HIGH
);
}
private
void
btnWriteSingleDO_Click
(
object
sender
,
EventArgs
e
)
{
WriteDO
(
IO_VALUE
.
LOW
);
}
private
void
WriteDO
(
IO_VALUE
value
)
{
string
deviceName
=
txtDoName
.
Text
;
int
index
=
FormUtil
.
GetIntValue
(
txtDOIndex
);
// IO_VALUE value = checkBox1.Checked ? IO_VALUE.HIGH : IO_VALUE.LOW;
int
time
=
FormUtil
.
GetIntValue
(
txtWriteTime
);
int
slaveId
=
0
;
if
(
time
>
0
)
{
IOManager
.
instance
.
WriteSingleDO
(
deviceName
,
(
byte
)
slaveId
,
(
ushort
)
index
,
(
IO_VALUE
)
value
,
time
);
}
else
{
IOManager
.
instance
.
WriteSingleDO
(
deviceName
,
(
byte
)
slaveId
,
(
ushort
)
index
,
(
IO_VALUE
)
value
);
}
}
private
void
btnTopUp_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
CylinderMove
(
null
,
IO_Type
.
TopCylinder_Down
,
IO_Type
.
TopCylinder_Up
);
}
private
void
btnTopDown_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
CylinderMove
(
null
,
IO_Type
.
TopCylinder_Up
,
IO_Type
.
TopCylinder_Down
);
}
private
void
btnCamerLed_Click
(
object
sender
,
EventArgs
e
)
{
BtnMove
(
btnCamerLed
,
"打开相机光源"
,
"关闭相机光源"
,
IO_Type
.
Camera_Led
);
}
private
void
btnStoreOn_Click
(
object
sender
,
EventArgs
e
)
{
BtnMove
(
btnDeviceLed
,
"打开设备照明"
,
"关闭设备照明"
,
IO_Type
.
Device_Led
);
}
private
void
btnCloseCyDo_Click
(
object
sender
,
EventArgs
e
)
{
foreach
(
ConfigIO
io
in
StoreManager
.
Store
.
Config
.
DOList
.
Values
)
{
if
(
io
.
SubType
.
Equals
(
0
))
{
IOManager
.
instance
.
WriteSingleDO
(
io
.
IO_IP
,
(
byte
)
0
,
(
ushort
)
io
.
GetIOAddr
(),
IO_VALUE
.
LOW
);
}
}
}
private
void
btnClamp_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
electricClamp
.
Clamp
();
}
private
void
btnRelax_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
electricClamp
.
Release
();
}
private
void
btnLDoorUp_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
BoxMap
[
1
].
CylinderMove
(
null
,
IO_Type
.
OutDoor_Down
,
IO_Type
.
OutDoor_Up
);
}
private
void
btnLDoorDown_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
BoxMap
[
1
].
CylinderMove
(
null
,
IO_Type
.
OutDoor_Up
,
IO_Type
.
OutDoor_Down
);
}
private
void
btnRDoorUp_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
BoxMap
[
2
].
CylinderMove
(
null
,
IO_Type
.
OutDoor_Down
,
IO_Type
.
OutDoor_Up
);
}
private
void
btnRDoorDown_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
BoxMap
[
2
].
CylinderMove
(
null
,
IO_Type
.
OutDoor_Up
,
IO_Type
.
OutDoor_Down
);
}
private
void
btnCloseDO_Click
(
object
sender
,
EventArgs
e
)
{
WriteDO
(
IO_VALUE
.
LOW
);
}
private
void
btnLineRun_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
LineRun
(
null
);
}
private
void
btnLineStop_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
LineStop
(
null
);
}
private
void
groupBox1_Enter
(
object
sender
,
EventArgs
e
)
{
}
private
void
btn_Stop_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
InOutStation_Stop
();
}
private
void
btnFoward_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
InOutStation_GoIn
();
}
private
void
btnBack_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
InOutStation_GoOut
();
}
private
void
btnOpenGate_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
OpenGate
();
}
private
void
btnCloseGate_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
CloseGate
();
}
}
}
source/XLRStoreClient/boxForm/FrmIOStatus.resx
0 → 100644
查看文件 @
93b2086
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 11</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>87</value>
</metadata>
</root>
\ No newline at end of file
source/XLRStoreClient/inputForm/FrmInputEquip.Designer.cs
查看文件 @
93b2086
...
...
@@ -22,18 +22,20 @@ namespace OnlineStore.XLRStore
this
.
timer1
=
new
System
.
Windows
.
Forms
.
Timer
(
this
.
components
);
this
.
btnScan
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
tabPage2
=
new
System
.
Windows
.
Forms
.
TabPage
();
this
.
btnSave
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox11
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
panel1
=
new
System
.
Windows
.
Forms
.
Panel
();
this
.
mideleAxisP3
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
mideleAxisP2
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
updownAxisP2
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
updownAxisP3
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
groupBox10
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
mideleAxisP1
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
updownAxisP1
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
groupBox9
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
updownAxisP8
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
updownAxisP9
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
mideleAxisP6
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
mideleAxisP2
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
mideleAxisP1
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
updownAxisP1
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
updownAxisP2
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
updownAxisP3
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
btnSave
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox8
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
updownAxisP13
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
this
.
mideleAxisP8
=
new
OnlineStore
.
XLRStore
.
useControl
.
AxisPointControl
();
...
...
@@ -94,10 +96,10 @@ namespace OnlineStore.XLRStore
this
.
lblStoreStatus
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnStart
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnStop
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupBox10
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
groupBox11
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
tabPage2
.
SuspendLayout
();
this
.
groupBox11
.
SuspendLayout
();
this
.
panel1
.
SuspendLayout
();
this
.
groupBox10
.
SuspendLayout
();
this
.
groupBox9
.
SuspendLayout
();
this
.
groupBox8
.
SuspendLayout
();
this
.
groupBox7
.
SuspendLayout
();
...
...
@@ -112,8 +114,6 @@ namespace OnlineStore.XLRStore
this
.
groupBox6
.
SuspendLayout
();
this
.
tabControl1
.
SuspendLayout
();
this
.
panBase
.
SuspendLayout
();
this
.
groupBox10
.
SuspendLayout
();
this
.
groupBox11
.
SuspendLayout
();
this
.
SuspendLayout
();
//
// timer1
...
...
@@ -152,18 +152,15 @@ namespace OnlineStore.XLRStore
this
.
tabPage2
.
Text
=
" 伺服信息 "
;
this
.
tabPage2
.
UseVisualStyleBackColor
=
true
;
//
//
btnSave
//
groupBox11
//
this
.
btnSave
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnSave
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnSave
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnSave
.
Location
=
new
System
.
Drawing
.
Point
(
735
,
278
);
this
.
btnSave
.
Name
=
"btnSave"
;
this
.
btnSave
.
Size
=
new
System
.
Drawing
.
Size
(
163
,
40
);
this
.
btnSave
.
TabIndex
=
226
;
this
.
btnSave
.
Text
=
"保存点位信息"
;
this
.
btnSave
.
UseVisualStyleBackColor
=
false
;
this
.
btnSave
.
Click
+=
new
System
.
EventHandler
(
this
.
btnSave_Click
);
this
.
groupBox11
.
Controls
.
Add
(
this
.
panel1
);
this
.
groupBox11
.
Location
=
new
System
.
Drawing
.
Point
(
729
,
338
);
this
.
groupBox11
.
Name
=
"groupBox11"
;
this
.
groupBox11
.
Size
=
new
System
.
Drawing
.
Size
(
247
,
232
);
this
.
groupBox11
.
TabIndex
=
228
;
this
.
groupBox11
.
TabStop
=
false
;
this
.
groupBox11
.
Text
=
"料串取放料点位"
;
//
// panel1
//
...
...
@@ -190,6 +187,77 @@ namespace OnlineStore.XLRStore
this
.
mideleAxisP3
.
Size
=
new
System
.
Drawing
.
Size
(
223
,
41
);
this
.
mideleAxisP3
.
TabIndex
=
2
;
//
// mideleAxisP2
//
this
.
mideleAxisP2
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
mideleAxisP2
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
9
);
this
.
mideleAxisP2
.
Name
=
"mideleAxisP2"
;
this
.
mideleAxisP2
.
PointBackColor
=
System
.
Drawing
.
Color
.
SkyBlue
;
this
.
mideleAxisP2
.
PointForeColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
mideleAxisP2
.
PointText
=
"旋转轴-A料口取料点P2:"
;
this
.
mideleAxisP2
.
PointValue
=
0
;
this
.
mideleAxisP2
.
Size
=
new
System
.
Drawing
.
Size
(
223
,
41
);
this
.
mideleAxisP2
.
TabIndex
=
1
;
//
// updownAxisP2
//
this
.
updownAxisP2
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
updownAxisP2
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
103
);
this
.
updownAxisP2
.
Name
=
"updownAxisP2"
;
this
.
updownAxisP2
.
PointBackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
128
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
128
)))));
this
.
updownAxisP2
.
PointForeColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
updownAxisP2
.
PointText
=
"升降轴-A料口取料点P2:"
;
this
.
updownAxisP2
.
PointValue
=
0
;
this
.
updownAxisP2
.
Size
=
new
System
.
Drawing
.
Size
(
223
,
41
);
this
.
updownAxisP2
.
TabIndex
=
1
;
//
// updownAxisP3
//
this
.
updownAxisP3
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
updownAxisP3
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
150
);
this
.
updownAxisP3
.
Name
=
"updownAxisP3"
;
this
.
updownAxisP3
.
PointBackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
128
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
128
)))));
this
.
updownAxisP3
.
PointForeColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
updownAxisP3
.
PointText
=
"升降轴-B料口取料点P3:"
;
this
.
updownAxisP3
.
PointValue
=
0
;
this
.
updownAxisP3
.
Size
=
new
System
.
Drawing
.
Size
(
223
,
41
);
this
.
updownAxisP3
.
TabIndex
=
2
;
//
// groupBox10
//
this
.
groupBox10
.
Controls
.
Add
(
this
.
mideleAxisP1
);
this
.
groupBox10
.
Controls
.
Add
(
this
.
updownAxisP1
);
this
.
groupBox10
.
Location
=
new
System
.
Drawing
.
Point
(
600
,
6
);
this
.
groupBox10
.
Name
=
"groupBox10"
;
this
.
groupBox10
.
Size
=
new
System
.
Drawing
.
Size
(
286
,
104
);
this
.
groupBox10
.
TabIndex
=
227
;
this
.
groupBox10
.
TabStop
=
false
;
this
.
groupBox10
.
Text
=
"待机点点位"
;
//
// mideleAxisP1
//
this
.
mideleAxisP1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
mideleAxisP1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
20
);
this
.
mideleAxisP1
.
Name
=
"mideleAxisP1"
;
this
.
mideleAxisP1
.
PointBackColor
=
System
.
Drawing
.
Color
.
SkyBlue
;
this
.
mideleAxisP1
.
PointForeColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
mideleAxisP1
.
PointText
=
"旋转轴待机点P1:"
;
this
.
mideleAxisP1
.
PointValue
=
0
;
this
.
mideleAxisP1
.
Size
=
new
System
.
Drawing
.
Size
(
247
,
41
);
this
.
mideleAxisP1
.
TabIndex
=
0
;
//
// updownAxisP1
//
this
.
updownAxisP1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
updownAxisP1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
59
);
this
.
updownAxisP1
.
Name
=
"updownAxisP1"
;
this
.
updownAxisP1
.
PointBackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
128
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
128
)))));
this
.
updownAxisP1
.
PointForeColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
updownAxisP1
.
PointText
=
"升降轴-待机点P1:"
;
this
.
updownAxisP1
.
PointValue
=
0
;
this
.
updownAxisP1
.
Size
=
new
System
.
Drawing
.
Size
(
247
,
41
);
this
.
updownAxisP1
.
TabIndex
=
0
;
//
// groupBox9
//
this
.
groupBox9
.
Controls
.
Add
(
this
.
updownAxisP8
);
...
...
@@ -238,65 +306,18 @@ namespace OnlineStore.XLRStore
this
.
mideleAxisP6
.
Size
=
new
System
.
Drawing
.
Size
(
247
,
41
);
this
.
mideleAxisP6
.
TabIndex
=
5
;
//
// mideleAxisP2
//
this
.
mideleAxisP2
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
mideleAxisP2
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
9
);
this
.
mideleAxisP2
.
Name
=
"mideleAxisP2"
;
this
.
mideleAxisP2
.
PointBackColor
=
System
.
Drawing
.
Color
.
SkyBlue
;
this
.
mideleAxisP2
.
PointForeColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
mideleAxisP2
.
PointText
=
"旋转轴-A料口取料点P2:"
;
this
.
mideleAxisP2
.
PointValue
=
0
;
this
.
mideleAxisP2
.
Size
=
new
System
.
Drawing
.
Size
(
223
,
41
);
this
.
mideleAxisP2
.
TabIndex
=
1
;
//
// mideleAxisP1
//
this
.
mideleAxisP1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
mideleAxisP1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
20
);
this
.
mideleAxisP1
.
Name
=
"mideleAxisP1"
;
this
.
mideleAxisP1
.
PointBackColor
=
System
.
Drawing
.
Color
.
SkyBlue
;
this
.
mideleAxisP1
.
PointForeColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
mideleAxisP1
.
PointText
=
"旋转轴待机点P1:"
;
this
.
mideleAxisP1
.
PointValue
=
0
;
this
.
mideleAxisP1
.
Size
=
new
System
.
Drawing
.
Size
(
247
,
41
);
this
.
mideleAxisP1
.
TabIndex
=
0
;
//
// updownAxisP1
//
this
.
updownAxisP1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
updownAxisP1
.
Location
=
new
System
.
Drawing
.
Point
(
6
,
59
);
this
.
updownAxisP1
.
Name
=
"updownAxisP1"
;
this
.
updownAxisP1
.
PointBackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
128
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
128
)))));
this
.
updownAxisP1
.
PointForeColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
updownAxisP1
.
PointText
=
"升降轴-待机点P1:"
;
this
.
updownAxisP1
.
PointValue
=
0
;
this
.
updownAxisP1
.
Size
=
new
System
.
Drawing
.
Size
(
247
,
41
);
this
.
updownAxisP1
.
TabIndex
=
0
;
//
// updownAxisP2
//
this
.
updownAxisP2
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
updownAxisP2
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
103
);
this
.
updownAxisP2
.
Name
=
"updownAxisP2"
;
this
.
updownAxisP2
.
PointBackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
128
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
128
)))));
this
.
updownAxisP2
.
PointForeColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
updownAxisP2
.
PointText
=
"升降轴-A料口取料点P2:"
;
this
.
updownAxisP2
.
PointValue
=
0
;
this
.
updownAxisP2
.
Size
=
new
System
.
Drawing
.
Size
(
223
,
41
);
this
.
updownAxisP2
.
TabIndex
=
1
;
//
// updownAxisP3
// btnSave
//
this
.
updownAxisP3
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
updownAxisP3
.
Location
=
new
System
.
Drawing
.
Point
(
3
,
150
);
this
.
updownAxisP3
.
Name
=
"updownAxisP3"
;
this
.
updownAxisP3
.
PointBackColor
=
System
.
Drawing
.
Color
.
FromArgb
(((
int
)(((
byte
)(
128
)))),
((
int
)(((
byte
)(
255
)))),
((
int
)(((
byte
)(
128
)))));
this
.
updownAxisP3
.
PointForeColor
=
System
.
Drawing
.
Color
.
Black
;
this
.
updownAxisP3
.
PointText
=
"升降轴-B料口取料点P3:"
;
this
.
updownAxisP3
.
PointValue
=
0
;
this
.
updownAxisP3
.
Size
=
new
System
.
Drawing
.
Size
(
223
,
41
);
this
.
updownAxisP3
.
TabIndex
=
2
;
this
.
btnSave
.
BackColor
=
System
.
Drawing
.
Color
.
White
;
this
.
btnSave
.
FlatStyle
=
System
.
Windows
.
Forms
.
FlatStyle
.
Flat
;
this
.
btnSave
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnSave
.
Location
=
new
System
.
Drawing
.
Point
(
735
,
278
);
this
.
btnSave
.
Name
=
"btnSave"
;
this
.
btnSave
.
Size
=
new
System
.
Drawing
.
Size
(
163
,
40
);
this
.
btnSave
.
TabIndex
=
226
;
this
.
btnSave
.
Text
=
"保存点位信息"
;
this
.
btnSave
.
UseVisualStyleBackColor
=
false
;
this
.
btnSave
.
Click
+=
new
System
.
EventHandler
(
this
.
btnSave_Click
);
//
// groupBox8
//
...
...
@@ -507,7 +528,7 @@ namespace OnlineStore.XLRStore
this
.
tabPage1
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
26
);
this
.
tabPage1
.
Name
=
"tabPage1"
;
this
.
tabPage1
.
Padding
=
new
System
.
Windows
.
Forms
.
Padding
(
3
);
this
.
tabPage1
.
Size
=
new
System
.
Drawing
.
Size
(
985
,
61
5
);
this
.
tabPage1
.
Size
=
new
System
.
Drawing
.
Size
(
985
,
61
7
);
this
.
tabPage1
.
TabIndex
=
0
;
this
.
tabPage1
.
Text
=
" IO列表 "
;
this
.
tabPage1
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -877,7 +898,7 @@ namespace OnlineStore.XLRStore
this
.
tabPage3
.
Controls
.
Add
(
this
.
groupBox6
);
this
.
tabPage3
.
Location
=
new
System
.
Drawing
.
Point
(
4
,
26
);
this
.
tabPage3
.
Name
=
"tabPage3"
;
this
.
tabPage3
.
Size
=
new
System
.
Drawing
.
Size
(
985
,
61
5
);
this
.
tabPage3
.
Size
=
new
System
.
Drawing
.
Size
(
985
,
61
7
);
this
.
tabPage3
.
TabIndex
=
2
;
this
.
tabPage3
.
Text
=
"状态信息"
;
this
.
tabPage3
.
UseVisualStyleBackColor
=
true
;
...
...
@@ -1066,27 +1087,6 @@ namespace OnlineStore.XLRStore
this
.
btnStop
.
UseVisualStyleBackColor
=
false
;
this
.
btnStop
.
Click
+=
new
System
.
EventHandler
(
this
.
btnStop_Click
);
//
// groupBox10
//
this
.
groupBox10
.
Controls
.
Add
(
this
.
mideleAxisP1
);
this
.
groupBox10
.
Controls
.
Add
(
this
.
updownAxisP1
);
this
.
groupBox10
.
Location
=
new
System
.
Drawing
.
Point
(
600
,
6
);
this
.
groupBox10
.
Name
=
"groupBox10"
;
this
.
groupBox10
.
Size
=
new
System
.
Drawing
.
Size
(
286
,
104
);
this
.
groupBox10
.
TabIndex
=
227
;
this
.
groupBox10
.
TabStop
=
false
;
this
.
groupBox10
.
Text
=
"待机点点位"
;
//
// groupBox11
//
this
.
groupBox11
.
Controls
.
Add
(
this
.
panel1
);
this
.
groupBox11
.
Location
=
new
System
.
Drawing
.
Point
(
729
,
338
);
this
.
groupBox11
.
Name
=
"groupBox11"
;
this
.
groupBox11
.
Size
=
new
System
.
Drawing
.
Size
(
247
,
232
);
this
.
groupBox11
.
TabIndex
=
228
;
this
.
groupBox11
.
TabStop
=
false
;
this
.
groupBox11
.
Text
=
"料串取放料点位"
;
//
// FrmInputEquip
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
7F
,
17F
);
...
...
@@ -1103,7 +1103,9 @@ namespace OnlineStore.XLRStore
this
.
Load
+=
new
System
.
EventHandler
(
this
.
FrmInputEquip_Load
);
this
.
Shown
+=
new
System
.
EventHandler
(
this
.
FrmIOStatus_Shown
);
this
.
tabPage2
.
ResumeLayout
(
false
);
this
.
groupBox11
.
ResumeLayout
(
false
);
this
.
panel1
.
ResumeLayout
(
false
);
this
.
groupBox10
.
ResumeLayout
(
false
);
this
.
groupBox9
.
ResumeLayout
(
false
);
this
.
groupBox8
.
ResumeLayout
(
false
);
this
.
groupBox7
.
ResumeLayout
(
false
);
...
...
@@ -1121,8 +1123,6 @@ namespace OnlineStore.XLRStore
this
.
tabControl1
.
ResumeLayout
(
false
);
this
.
panBase
.
ResumeLayout
(
false
);
this
.
panBase
.
PerformLayout
();
this
.
groupBox10
.
ResumeLayout
(
false
);
this
.
groupBox11
.
ResumeLayout
(
false
);
this
.
ResumeLayout
(
false
);
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论