Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
李娜
/
SO908-XLRStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit c4361089
由
张东亮
编写于
2021-05-26 10:42:14 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
0526-存储机构-1
1 个父辈
df7955bc
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
2025 行增加
和
47 行删除
source/Common/Setting_Init.cs
source/Common/util/AcSerialBean.cs
source/DeviceLibrary/Config/Config_BoxEquip.csv
source/DeviceLibrary/Config/linePositions.csv
source/DeviceLibrary/DeviceLibrary.csproj
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_Partial.cs
source/DeviceLibrary/storeBean/boxBean/BoxEquip_RequestServer.cs
source/DeviceLibrary/storeBean/boxBean/Humiture/HumitureBean.cs
source/DeviceLibrary/storeBean/boxBean/Humiture/HumitureController.cs
source/LoadCVSLibrary/LoadCSVLibrary.csproj
source/LoadCVSLibrary/position/BoxPosition.cs
source/LoadCVSLibrary/storeConfig/config/BoxEquip_Config.cs
source/XLRStoreClient/App.config
source/Common/Setting_Init.cs
查看文件 @
c436108
...
...
@@ -53,7 +53,14 @@ namespace OnlineStore.Common
/// 温控器类型,0=壁挂王字壳温湿度变送器,1=妙昕温湿度记录仪
/// </summary>
public
static
string
HumitureControllerType
=
"HumitureControllerType"
;
/// <summary>
/// 开始吹气的判断值(配置值=服务器发送的湿度值-开始吹气值)
/// </summary>
public
static
string
StartBlowValue
=
"StartBlowValue"
;
/// <summary>
/// 停止吹气的判断值(配置值=服务器发送的湿度值-停止吹气值)
/// </summary>
public
static
string
StopBlowValue
=
"StopBlowValue"
;
/// <summary>
/// 流水线监听端口
/// </summary>
...
...
source/Common/util/AcSerialBean.cs
查看文件 @
c436108
...
...
@@ -504,7 +504,26 @@ namespace OnlineStore.Common
return
putout
;
}
#
endregion
#
region
字节型转十六进制字符串
/// <summary>
/// 字节数组转16进制字符串
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public
static
string
byteToHexStr
(
byte
[]
bytes
)
{
string
returnStr
=
""
;
if
(
bytes
!=
null
)
{
for
(
int
i
=
0
;
i
<
bytes
.
Length
;
i
++)
{
returnStr
+=
bytes
[
i
].
ToString
(
"X2"
);
}
}
return
returnStr
;
}
#
endregion
#
region
计算校验码
...
...
source/DeviceLibrary/Config/Config_BoxEquip.csv
查看文件 @
c436108
...
...
@@ -13,31 +13,92 @@ AXIS,0,B面移栽压紧轴,ComAxis_B,9,HC,,35000,60000,60000,1000,5000,20000,10,100,0,
PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,0,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,行走机构_待机点P1,MoveAxis_P1,100,,,,,,,,,,,,
PRO,0,行走机构_P1速度,MoveAxis_P1_Speed,108,,,,,,,,,,,,
PRO,0,行走机构_进出料机构取放点P2,MoveAxis_P2,100,,,,,,,,,,,,
PRO,0,行走机构_存储库位取放点位P3,MoveAxis_P3,100,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,料斗拉取进出轴_待机点P1,PullAxis_Inout_P1,100,,,,,,,,,,,,
PRO,0,料斗拉取进出轴_P1速度,PullAxis_Inout_P1_Speed,108,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,移栽升降轴_待机点P1,Updown_P1,100,,,,,,,,,,,,
PRO,0,移栽升降轴_P1速度,Updown_P1_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_A上暂存区取料高点P2,Updown_P2,100,,,,,,,,,,,,
PRO,0,移栽升降轴_A上暂存区取料低点P3,Updown_P3,100,,,,,,,,,,,,
PRO,0,移栽升降轴_A下暂存区放料高点P4,Updown_P4,100,,,,,,,,,,,,
PRO,0,移栽升降轴_A下暂存区放料低点P5,Updown_P5,100,,,,,,,,,,,,
PRO,0,移栽升降轴_B上暂存区取料高点P8,Updown_P8,100,,,,,,,,,,,,
PRO,0,移栽升降轴_B上暂存区取料低点P9,Updown_P9,100,,,,,,,,,,,,
PRO,0,移栽升降轴_B下暂存区取料高点P10,Updown_P10,100,,,,,,,,,,,,
PRO,0,移栽升降轴_B下暂存区取料低点P11,Updown_P11,100,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,料斗拉取升降轴_待机点P1,PullAxis_Updown_P1,100,,,,,,,,,,,,
PRO,0,料斗拉取升降轴_
P1速度,PullAxis_Updown_P1_Speed,108
,,,,,,,,,,,,
PRO,0,料斗拉取升降轴_
料屉提取水平点P2,PullAxis_Updown_P2,100
,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,A面移栽X轴_待机点P1,XAxis_A_P1,100,,,,,,,,,,,,
PRO,0,A面移栽X轴_
P1速度,XAxis_A_P1_Speed,108
,,,,,,,,,,,,
PRO,0,A面移栽X轴_
A进出料暂存区取放料点P2,XAxis_A_P2,100
,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,A面移栽旋转轴_待机点P1,MiddleAxis_A_P1,100,,,,,,,,,,,,
PRO,0,A面移栽旋转轴_P1速度,MiddleAxis_A_P1_Speed,108,,,,,,,,,,,,
PRO,0,A面移栽旋转轴_A进出料暂存区取放料水平点P2,MiddleAxis_A_P2,100,,,,,,,,,,,,
PRO,0,A面移栽旋转轴_A面料屉库位垂直取放料点P3,MiddleAxis_A_P3,100,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,A面移栽压紧轴_待机点P1,ComAxis_A_P1,100,,,,,,,,,,,,
PRO,0,A面移栽压紧轴_P1速度,ComAxis_A_P1_Speed,108,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,B面移栽X轴_待机点P1,XAxis_B_P1,100,,,,,,,,,,,,
PRO,0,B面移栽X轴_
P1速度,XAxis_B_P1_Speed,108
,,,,,,,,,,,,
PRO,0,B面移栽X轴_
B进出料暂存区取放料点P2,XAxis_B_P2,100
,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,B面移栽旋转轴_待机点P1,MiddleAxis_B_P1,100,,,,,,,,,,,,
PRO,0,B面移栽旋转轴_P1速度,MiddleAxis_B_P1_Speed,108,,,,,,,,,,,,
PRO,0,B面移栽旋转轴_B进出料暂存区取放料水平点P2,MiddleAxis_B_P2,100,,,,,,,,,,,,
PRO,0,B面移栽旋转轴_B面料屉库位垂直取放料点P3,MiddleAxis_B_P3,100,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,B面移栽压紧轴_待机点P1,ComAxis_B_P1,100,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,行走机构_P1速度,MoveAxis_P1_Speed,108,,,,,,,,,,,,
PRO,0,行走机构_P2速度,MoveAxis_P2_Speed,108,,,,,,,,,,,,
PRO,0,行走机构_P3速度,MoveAxis_P3_Speed,108,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,料斗拉取进出轴_P1速度,PullAxis_Inout_P1_Speed,108,,,,,,,,,,,,
PRO,0,料斗拉取进出轴_P2速度,PullAxis_Inout_P2_Speed,108,,,,,,,,,,,,
PRO,0,料斗拉取进出轴_P3速度,PullAxis_Inout_P3_Speed,108,,,,,,,,,,,,
PRO,0,料斗拉取进出轴_P4速度,PullAxis_Inout_P4_Speed,108,,,,,,,,,,,,
PRO,0,料斗拉取进出轴_P5速度,PullAxis_Inout_P5_Speed,108,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,移栽升降轴_P1速度,Updown_P1_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_P2速度,Updown_P2_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_P3速度,Updown_P3_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_P4速度,Updown_P4_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_P5速度,Updown_P5_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_P6速度,Updown_P6_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_P7速度,Updown_P7_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_P8速度,Updown_P8_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_P9速度,Updown_P9_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_P10速度,Updown_P10_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_P11速度,Updown_P11_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_P12速度,Updown_P12_Speed,108,,,,,,,,,,,,
PRO,0,移栽升降轴_P13速度,Updown_P13_Speed,108,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,料斗拉取升降轴_P1速度,PullAxis_Updown_P1_Speed,108,,,,,,,,,,,,
PRO,0,料斗拉取升降轴_P2速度,PullAxis_Updown_P2_Speed,108,,,,,,,,,,,,
PRO,0,料斗拉取升降轴_P3速度,PullAxis_Updown_P3_Speed,108,,,,,,,,,,,,
PRO,0,料斗拉取升降轴_P4速度,PullAxis_Updown_P4_Speed,108,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,A面移栽X轴_P1速度,XAxis_A_P1_Speed,108,,,,,,,,,,,,
PRO,0,A面移栽X轴_P2速度,XAxis_A_P2_Speed,108,,,,,,,,,,,,
PRO,0,A面移栽X轴_P3速度,XAxis_A_P3_Speed,108,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,A面移栽旋转轴_P1速度,MiddleAxis_A_P1_Speed,108,,,,,,,,,,,,
PRO,0,A面移栽旋转轴_P2速度,MiddleAxis_A_P2_Speed,108,,,,,,,,,,,,
PRO,0,A面移栽旋转轴_P3速度,MiddleAxis_A_P3_Speed,108,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,A面移栽压紧轴_P1速度,ComAxis_A_P1_Speed,108,,,,,,,,,,,,
PRO,0,A面移栽压紧轴_P2速度,ComAxis_A_P2_Speed,108,,,,,,,,,,,,
PRO,0,A面移栽压紧轴_P3速度,ComAxis_A_P3_Speed,108,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,B面移栽X轴_P1速度,XAxis_B_P1_Speed,108,,,,,,,,,,,,
PRO,0,B面移栽X轴_P2速度,XAxis_B_P2_Speed,108,,,,,,,,,,,,
PRO,0,B面移栽X轴_P3速度,XAxis_B_P3_Speed,108,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,B面移栽旋转轴_P1速度,MiddleAxis_B_P1_Speed,108,,,,,,,,,,,,
PRO,0,B面移栽旋转轴_P2速度,MiddleAxis_B_P2_Speed,108,,,,,,,,,,,,
PRO,0,B面移栽旋转轴_P3速度,MiddleAxis_B_P3_Speed,108,,,,,,,,,,,,
,,,,,,,,,,,,,,,,
PRO,0,B面移栽压紧轴_P1速度,ComAxis_B_P1_Speed,108,,,,,,,,,,,,
PRO,0,B面移栽压紧轴_P2速度,ComAxis_B_P2_Speed,108,,,,,,,,,,,,
PRO,0,B面移栽压紧轴_P3速度,ComAxis_B_P3_Speed,108,,,,,,,,,,,,
source/DeviceLibrary/Config/linePositions.csv
0 → 100644
查看文件 @
c436108
位置,优先级,高度,宽度,料仓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
source/DeviceLibrary/DeviceLibrary.csproj
查看文件 @
c436108
...
...
@@ -79,6 +79,10 @@
<Compile Include="manager\StoreManager.cs" />
<Compile Include="deviceLibrary\RFID\RFIDManagercs.cs" />
<Compile Include="manager\SServerManager.cs" />
<Compile Include="storeBean\boxBean\BoxEquip_RequestServer.cs" />
<Compile Include="storeBean\boxBean\AutoInoutInfo.cs" />
<Compile Include="storeBean\boxBean\Humiture\HumitureBean.cs" />
<Compile Include="storeBean\boxBean\Humiture\HumitureController.cs" />
<Compile Include="storeBean\inputBean\BatchMoveBean.cs" />
<Compile Include="storeBean\inputBean\BatchMoveBean_Partial.cs" />
<Compile Include="storeBean\EquipBase.cs" />
...
...
@@ -197,6 +201,7 @@
<Content Include="huichuan_x86\IMC_API_x86.lib">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Include="Config\linePositions.csv" />
<None Include="packages.config" />
<Content Include="SDK\MotorMaster.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
...
...
source/DeviceLibrary/manager/model/DeviceStep.cs
查看文件 @
c436108
...
...
@@ -362,7 +362,269 @@ namespace OnlineStore.DeviceLibrary
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
{
/// <summary>
...
...
source/DeviceLibrary/manager/model/InOutParam.cs
查看文件 @
c436108
...
...
@@ -22,7 +22,7 @@ namespace OnlineStore.DeviceLibrary
MoveP
=
null
;
}
public
InOutParam
(
InOutPosInfo
inoutInfo
,
LineMoveP
linePosition
=
null
)
public
InOutParam
(
InOutPosInfo
inoutInfo
,
BoxMovePosition
linePosition
=
null
)
{
ACStoreP
=
null
;
;
MoveP
=
linePosition
;
...
...
@@ -48,7 +48,7 @@ namespace OnlineStore.DeviceLibrary
}
public
InOutPosInfo
PosInfo
{
get
;
set
;
}
public
LineMoveP
MoveP
{
get
;
set
;
}
public
BoxMovePosition
MoveP
{
get
;
set
;
}
}
/// <summary>
/// 出入库料盘信息
...
...
@@ -130,8 +130,17 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 出入库位置信息
/// </summary>
public
class
LineMoveP
public
class
BoxMovePosition
{
public
BoxMovePosition
()
{
}
public
BoxMovePosition
(
BoxEquip_Config
Config
)
{
}
}
}
source/DeviceLibrary/storeBean/boxBean/AutoInoutInfo.cs
0 → 100644
查看文件 @
c436108
using
OnlineStore.Common
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
OnlineStore.DeviceLibrary
{
public
class
AutoInoutInfo
{
/// <summary>
/// 入库完成后自动出库,出库完成后自动入库
/// </summary>
public
bool
autoNext
=
false
;
/// <summary>
/// 自动出入库间隔
/// </summary>
private
int
Jiange
=
3
;
private
int
positionIndex
=
0
;
public
string
autoMsg
=
""
;
private
int
startIndex
=
-
1
;
private
string
shelfPosId
=
""
;
#
region
出入库参数
/// <summary>
/// 当前出入库的次数,超过配置的数量时,需要自动重置一下,再进行出入库
/// </summary>
internal
int
CurrInOutCount
=
0
;
internal
int
CurrInOutACount
=
0
;
#
endregion
public
void
StartAuto
(
int
jiange
,
int
currIndex
,
string
shelfPosId
)
{
autoNext
=
true
;
Jiange
=
jiange
;
positionIndex
=
currIndex
;
startIndex
=
currIndex
;
this
.
shelfPosId
=
shelfPosId
;
}
public
void
StopAuto
()
{
autoNext
=
false
;
}
internal
void
InOutEndProcess
(
AC_BOX_Bean
boxBean
,
StoreMoveType
storeMoveType
)
{
try
{
CurrInOutCount
++;
CurrInOutACount
++;
//是否自动进入出库状态
if
(!
autoNext
)
{
return
;
}
if
(
storeMoveType
.
Equals
(
StoreMoveType
.
InStore
))
{
int
newIndex
=
positionIndex
-
1
;
if
(
newIndex
<
0
)
{
if
(
startIndex
>=
0
&&
startIndex
<
boxBean
.
PositionNumList
.
Count
)
{
newIndex
=
startIndex
;
boxBean
.
LogInfo
(
"下一个索引不存在,重新开始自动出入库,索引【"
+
startIndex
+
"】"
);
}
else
{
autoNext
=
false
;
autoMsg
=
"自动出入库结束!"
;
boxBean
.
LogInfo
(
"下一个索引不存在,自动 出入库结束!"
);
}
}
else
{
positionIndex
=
newIndex
;
string
posid
=
boxBean
.
PositionNumList
[
positionIndex
];
InOutParam
param
=
new
InOutParam
(
"AAAA"
,
posid
,
shelfPosId
);
//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
{
boxBean
.
LogInfo
(
"自动进入下一个出库:posid="
+
posid
);
autoMsg
=
"自动出库:"
+
posid
;
boxBean
.
StartOutStoreMove
(
param
);
}
}
}
else
if
(
storeMoveType
.
Equals
(
StoreMoveType
.
OutStore
))
{
int
newIndex
=
positionIndex
-
Jiange
;
if
(
newIndex
<
0
)
{
if
(
startIndex
>=
0
&&
startIndex
<
boxBean
.
PositionNumList
.
Count
)
{
newIndex
=
startIndex
;
boxBean
.
LogInfo
(
"下一个索引不存在,重新开始自动出入库,索引【"
+
startIndex
+
"】"
);
}
else
{
autoNext
=
false
;
autoMsg
=
"自动出入库结束!"
;
boxBean
.
LogInfo
(
"下一个索引不存在,自动 出入库结束!"
);
}
}
else
{
string
posid
=
boxBean
.
PositionNumList
[
newIndex
];
InOutParam
param
=
new
InOutParam
(
"AAAA"
,
posid
,
shelfPosId
);
// 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
{
boxBean
.
LogInfo
(
"自动进入下一个入库:posid="
+
posid
);
autoMsg
=
"自动入库:"
+
posid
;
boxBean
.
StartInStoreMove
(
param
);
}
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
boxBean
.
Name
+
"InOutEndProcess ERROR:"
+
ex
.
ToString
());
}
}
internal
void
ClearCount
()
{
CurrInOutACount
=
0
;
CurrInOutCount
=
0
;
}
}
}
source/DeviceLibrary/storeBean/boxBean/BoxEquip.cs
查看文件 @
c436108
...
...
@@ -13,9 +13,13 @@ namespace OnlineStore.DeviceLibrary
{
public
partial
class
BoxEquip
:
EquipBase
{
/// <summary>
/// 配置文件
/// </summary>
public
BoxEquip_Config
Config
;
/// <summary>
/// 轴
/// </summary>
public
AxisBean
MoveAxis
=
null
;
public
AxisBean
PullAxis_Inout
=
null
;
public
AxisBean
UpdownAxis
=
null
;
...
...
@@ -27,7 +31,14 @@ namespace OnlineStore.DeviceLibrary
public
AxisBean
MiddleAxis_B
=
null
;
public
AxisBean
ComAxis_B
=
null
;
private
AxisBean
[]
moveAxisArray
;
/// <summary>
/// A面等待出库的队列
/// </summary>
public
ConcurrentQueue
<
InOutParam
>
waitAOutStoreList
=
new
ConcurrentQueue
<
InOutParam
>();
/// <summary>
/// B面等待出库的队列
/// </summary>
public
ConcurrentQueue
<
InOutParam
>
waitBOutStoreList
=
new
ConcurrentQueue
<
InOutParam
>();
public
BoxEquip
(
string
cid
,
BoxEquip_Config
config
)
{
baseConfig
=
config
;
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip_Partial.cs
查看文件 @
c436108
...
...
@@ -20,11 +20,11 @@ namespace OnlineStore.DeviceLibrary
return
false
;
}
#
region
出
入库
#
region
入库
public
override
bool
StartInstore
(
InOutParam
param
)
{
return
false
;
}
...
...
@@ -40,6 +40,10 @@ namespace OnlineStore.DeviceLibrary
return
;
}
}
#
endregion
#
region
出库
public
override
bool
StartOutstore
(
InOutParam
param
)
{
return
false
;
...
...
@@ -47,6 +51,14 @@ namespace OnlineStore.DeviceLibrary
protected
override
void
OutstoreProcess
()
{
if
(
MoveInfo
.
IsInWait
)
{
CheckWait
(
MoveInfo
);
}
if
(
MoveInfo
.
IsInWait
)
{
return
;
}
}
#
endregion
...
...
source/DeviceLibrary/storeBean/boxBean/BoxEquip_RequestServer.cs
0 → 100644
查看文件 @
c436108
using
Asa
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Concurrent
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.Linq
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
namespace
OnlineStore.DeviceLibrary
{
public
partial
class
BoxEquip
{
#
region
与服务器通信定时器,每
1
秒向服务器通知一次状态
,
同时执行出库操作
private
string
CodeMsg
=
""
;
private
bool
isInProcess
=
false
;
private
DateTime
lastConTime
=
DateTime
.
Now
;
public
void
server_connect_timer_Tick
(
object
sender
,
EventArgs
e
)
{
if
(
isInProcess
)
{
TimeSpan
span
=
DateTime
.
Now
-
lastConTime
;
if
(
span
.
TotalSeconds
<
60
)
{
return
;
}
}
isInProcess
=
true
;
lastConTime
=
DateTime
.
Now
;
try
{
//HumitureController.QueryData();
humBean
.
HumidityProcess
(
this
);
if
(
StoreManager
.
IsConnectServer
)
{
SendLineStatus
();
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
"定时SendLineStatus出错:"
+
ex
.
ToString
());
}
finally
{
isInProcess
=
false
;
}
}
/// <summary>
/// 获取整个料仓的状态
/// </summary>
public
Operation
getLineBoxStatus
()
{
//构建发送给服务器的对象
Operation
lineOperation
=
new
Operation
();
lineOperation
.
msg
=
""
;
lineOperation
.
alarmList
=
new
List
<
AlarmInfo
>();
lineOperation
.
cid
=
CID
;
lineOperation
.
seq
=
ConfigAppSettings
.
nextSeq
();
lineOperation
.
status
=
1
;
if
(
WarnMsg
!=
""
)
{
lineOperation
.
status
=
(
int
)
StoreStatus
.
Warning
;
lineOperation
.
msg
=
WarnMsg
;
}
lineOperation
.
status
=
(
int
)
StoreStatus
.
StoreOnline
;
BoxStatus
boxStatus
=
new
BoxStatus
();
boxStatus
.
boxId
=
1
;
boxStatus
.
msg
=
WarnMsg
;
lineOperation
.
msg
=
WarnMsg
;
if
(
WarnMsg
.
Equals
(
""
))
{
boxStatus
.
msg
=
CodeMsg
;
lineOperation
.
msg
=
CodeMsg
;
}
CodeMsg
=
""
;
//WarnMsg = "";
//状态
boxStatus
.
status
=
(
int
)
storeStatus
;
if
(
IsDebug
)
{
boxStatus
.
status
=
(
int
)
StoreStatus
.
Debugging
;
}
else
if
(
storeStatus
.
Equals
(
StoreStatus
.
OutStoreBoxEnd
)
||
storeStatus
.
Equals
(
StoreStatus
.
InStoreEnd
))
{
boxStatus
.
data
.
Add
(
ParamDefine
.
posId
,
lastPosId
);
}
else
if
(!
lastPosId
.
Equals
(
""
))
{
boxStatus
.
data
.
Add
(
ParamDefine
.
posId
,
lastPosId
);
boxStatus
.
status
=
(
int
)
lastPosIdStatus
;
if
(
lastPosId
!=
""
)
{
LogUtil
.
info
(
"给服务器发送出入库完成消息:"
+
Name
+
",status【"
+
lastPosIdStatus
+
"】posId【"
+
lastPosId
+
"】"
);
}
lastPosId
=
""
;
}
//温湿度
//ASTemperateParam param = HumitureServer.GetTemperateParam(Config.Temperate_Serveraddress);
HumitureParam
param
=
humBean
.
LastData
;
if
(
param
!=
null
)
{
boxStatus
.
humidity
=
param
.
Humidity
.
ToString
();
boxStatus
.
temperature
=
param
.
Temperate
.
ToString
();
}
lineOperation
.
boxStatus
.
Add
(
1
,
boxStatus
);
if
(!
alarmType
.
Equals
(
StoreAlarmType
.
None
))
{
lineOperation
.
alarmList
.
Add
(
alarmInfo
);
}
return
lineOperation
;
}
public
void
SendLineStatus
()
{
DateTime
time
=
DateTime
.
Now
;
//构建发送给服务器的对象
Operation
lineOperation
=
getLineBoxStatus
();
//如果还没湿度范围,先获取
if
(
humBean
.
NeedGetTem
())
{
lineOperation
.
op
=
5
;
LogUtil
.
error
(
Name
+
"没有湿度预警范围,需要从服务器获取,发送OP="
+
lineOperation
.
op
,
DeviceID
+
105
);
}
string
server
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
http_server
);
Operation
resultOperation
=
HttpHelper
.
PostJson
(
StoreManager
.
GetPostApi
(
server
),
lineOperation
,
false
);
//发送状态信息到服务器
if
(
resultOperation
==
null
||
(
resultOperation
.
op
<=
0
))
{
//判断服务端是否返回出库操作
return
;
}
if
(
resultOperation
.
op
.
Equals
(
1
))
{
// ReviceInStoreProcess("", resultOperation);
}
else
if
(
resultOperation
.
op
.
Equals
(
2
))
{
ReviceOutStoreProcess
(
resultOperation
);
}
else
if
(
resultOperation
.
op
.
Equals
(
5
))
{
humBean
.
ProcessHumidityCMD
(
resultOperation
);
}
else
{
LogUtil
.
error
(
"收到服务器命令:op="
+
resultOperation
.
op
+
",未找到对应处理"
);
}
TimeSpan
span
=
DateTime
.
Now
-
time
;
if
(
span
.
TotalMilliseconds
>
10
)
{
LogUtil
.
info
(
Name
+
"执行TimerProcess 共处理了【"
+
span
.
TotalMilliseconds
+
"】毫秒"
);
}
}
private
void
ReviceOutStoreProcess
(
Operation
resultOperation
)
{
DateTime
time
=
DateTime
.
Now
;
Dictionary
<
string
,
string
>
data
=
resultOperation
.
data
;
if
(
data
!=
null
&&
data
.
ContainsKey
(
ParamDefine
.
posId
)
&&
data
.
ContainsKey
(
ParamDefine
.
plateH
)
&&
data
.
ContainsKey
(
ParamDefine
.
plateW
))
{
char
splitChar
=
'|'
;
string
[]
posIdArray
=
data
[
ParamDefine
.
posId
].
Split
(
splitChar
);
string
[]
plateWArray
=
data
[
ParamDefine
.
plateW
].
Split
(
splitChar
);
string
[]
plateHArray
=
data
[
ParamDefine
.
plateH
].
Split
(
splitChar
);
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
);
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
);
//urgentReel: true 表示紧急料,需要出到料串上
//cutReel: true 表示分盘料,需要出到料串上
//smallReel: true 小料(7x8),放置到小料架上
//rfid: 分配的料架RFID
//rfidLoc: 料架的架位,值为 - 1时,可以自由分配皮带线, 小料时,架位为1 - 46优先走1 / 2号皮带线,47 - 92优先走3 / 4号皮带线, 70,71,72时只能分配到3 / 4号皮带线; 大料时,架位1 - 6优先走1 / 2号皮带线, 7 - 12优先走3 / 4号皮带线
string
dataStr
=
JsonHelper
.
SerializeObject
(
data
);
LogUtil
.
info
(
"收到服务器出库消息:【"
+
dataStr
+
"】"
);
int
index
=
-
1
;
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
);
//根据发送的posId获取位置列表
ACBoxPosition
position
=
CSVPositionReader
<
ACBoxPosition
>.
GetPositon
(
posId
);
if
(
position
==
null
)
{
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg
=
Name
+
"未找到库位:【"
+
inoutParam
.
ToStr
()
+
"】"
;
LogUtil
.
error
(
WarnMsg
);
continue
;
}
try
{
//判断是否接收过此库位的出库信息
if
(
MoveInfo
.
MoveType
.
Equals
(
StoreMoveType
.
OutStore
)
&&
MoveInfo
.
MoveParam
.
PosID
.
Equals
(
posId
))
{
LogUtil
.
error
(
Name
+
" 出库命令【"
+
inoutParam
.
ToStr
()
+
"】重复,正在【"
+
posId
+
"】出库中"
);
continue
;
}
//判断排队列表中是否已存在
List
<
InOutParam
>
reviceList
=
new
List
<
InOutParam
>(
waitOutStoreList
);
reviceList
=
(
from
m
in
reviceList
where
m
.
PosID
.
Equals
(
posId
)
select
m
).
ToList
<
InOutParam
>();
if
(
reviceList
.
Count
>
0
)
{
LogUtil
.
error
(
Name
+
" 出库命令【"
+
inoutParam
.
ToStr
()
+
"】重复,排队列表中已存在【"
+
reviceList
[
0
].
ToStr
()
+
"】"
);
continue
;
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
"验证出库【"
+
inoutParam
.
ToStr
()
+
"】是否重复出错:"
+
ex
.
ToString
());
}
StartExecuctOut
(
inoutParam
);
}
TimeSpan
span
=
DateTime
.
Now
-
time
;
if
(
span
.
TotalMilliseconds
>
10
)
{
LogInfo
(
Name
+
"执行 ReviceOutStoreProcess 共处理了【"
+
span
.
TotalMilliseconds
+
"】毫秒"
);
}
}
}
#
endregion
}
}
source/DeviceLibrary/storeBean/boxBean/Humiture/HumitureBean.cs
0 → 100644
查看文件 @
c436108
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
namespace
OnlineStore.DeviceLibrary
{
public
class
HumitureBean
{
private
string
PortName
=
""
;
private
string
Name
=
""
;
public
HumitureParam
LastData
=
new
HumitureParam
(
0
,
0
);
internal
HumitureBean
(
string
port
,
string
deviceName
)
{
this
.
Name
=
deviceName
;
this
.
PortName
=
port
;
}
public
HumitureParam
QueryData
()
{
HumitureParam
param
=
HumitureController
.
QueryData
(
PortName
);
LastData
=
param
;
return
LastData
;
}
internal
void
ProcessHumidityCMD
(
Operation
resultOperation
)
{
Dictionary
<
string
,
string
>
data
=
resultOperation
.
data
;
if
(
data
!=
null
&&
data
.
ContainsKey
(
ParamDefine
.
maxHumidity
)
&&
data
.
ContainsKey
(
ParamDefine
.
maxTemperature
))
{
string
maxHumidity
=
data
[
ParamDefine
.
maxHumidity
];
string
maxTemp
=
data
[
ParamDefine
.
maxTemperature
];
LogUtil
.
info
(
Name
+
"收到服务器温湿度预警值:maxHumidity="
+
maxHumidity
+
",maxTemperature="
+
maxTemp
);
try
{
this
.
Max_Humidity
=
(
float
)
Convert
.
ToDouble
(
maxHumidity
);
this
.
Max_Temperature
=
(
float
)
Convert
.
ToDouble
(
maxTemp
);
LogUtil
.
info
(
Name
+
"保存温湿度预警值:Max_Humidity="
+
Max_Humidity
+
",Max_Temperature="
+
Max_Temperature
);
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
"转换温湿度失败:"
+
ex
.
ToString
());
}
}
}
#
region
温湿度处理
/// <summary>
/// 湿度标准,超过后需要报警
/// </summary>
private
float
Max_Humidity
=
0
;
/// <summary>
/// 温度标准,超过后需要报警
/// </summary>
private
float
Max_Temperature
=
0
;
private
bool
IsInBlowing
=
false
;
private
DateTime
LastBeginBlowTime
=
DateTime
.
Now
;
private
DateTime
LastEndBlowTime
=
new
DateTime
(
1997
,
1
,
1
);
private
DateTime
preLogTime
=
DateTime
.
Now
;
public
bool
TempOrHumidityIsAlarm
=
false
;
public
DateTime
TempAlarmTime
=
DateTime
.
Now
;
private
float
StartBlowValue
=
(
float
)
ConfigAppSettings
.
GetNumValue
(
Setting_Init
.
StartBlowValue
);
private
float
StopBlowValue
=
(
float
)
ConfigAppSettings
.
GetNumValue
(
Setting_Init
.
StopBlowValue
);
public
string
currTempStr
=
""
;
internal
void
HumidityProcess
(
BoxEquip
box
)
{
try
{
if
((
DateTime
.
Now
-
preLogTime
).
TotalSeconds
>
(
8
+
box
.
DeviceID
))
{
preLogTime
=
DateTime
.
Now
;
//用最大的湿度判断是否需要吹气,开始吹气的值=发过来的值-4
//温湿度
//ASTemperateParam param = HumitureServer.GetTemperateParam(Config.GetTempAddrList());
HumitureParam
param
=
QueryData
();
double
humidity
=
0
;
double
temp
=
0
;
if
(
param
!=
null
)
{
humidity
=
param
.
Humidity
;
temp
=
param
.
Temperate
;
currTempStr
=
Name
+
(
"湿度:"
+
humidity
.
ToString
()
+
",温度:"
+
temp
);
}
//double currMaxHumidity = HumitureServer.GetMaxHumidity(Config.GetTempAddrList());
double
currMaxHumidity
=
param
.
Humidity
;
float
startBlowHumidity
=
Max_Humidity
-
StartBlowValue
;
float
stopBlowHumidity
=
Max_Humidity
-
StopBlowValue
;
//判断是否需要吹气
if
(
startBlowHumidity
>
0
&&
startBlowHumidity
<
currMaxHumidity
&&
IsInBlowing
.
Equals
(
false
))
{
//判断是否距离上次结束指定的时间
TimeSpan
span
=
DateTime
.
Now
-
LastEndBlowTime
;
if
(
span
.
TotalMinutes
>
box
.
Config
.
BlowAir_Interval
)
{
LogUtil
.
info
(
Name
+
"当前最大湿度:"
+
currMaxHumidity
.
ToString
()
+
",开始吹气湿度:"
+
startBlowHumidity
+
",当前不在吹气中,且间隔超过"
+
box
.
Config
.
BlowAir_Interval
+
"分钟,开始吹气!"
);
IsInBlowing
=
true
;
//Thread.Sleep(100);
//box.IOMove(IO_Type.StartOrStopBlow, IO_VALUE.HIGH);
LastBeginBlowTime
=
DateTime
.
Now
;
LastEndBlowTime
=
DateTime
.
Now
;
}
}
if
(
IsInBlowing
&&
stopBlowHumidity
>
currMaxHumidity
)
{
LogUtil
.
info
(
Name
+
"当前最大湿度:"
+
currMaxHumidity
.
ToString
()
+
",停止吹气湿度:"
+
stopBlowHumidity
+
",停止吹气!"
);
IsInBlowing
=
false
;
// box.IOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW);
LastEndBlowTime
=
DateTime
.
Now
;
}
if
(
IsInBlowing
)
{
//判断是否需要结束吹气
TimeSpan
span
=
DateTime
.
Now
-
LastBeginBlowTime
;
if
(
span
.
TotalMinutes
>
box
.
Config
.
BlowAir_Time
)
{
LogUtil
.
info
(
Name
+
"已经吹气"
+
span
.
TotalMinutes
+
"分钟,超过配置的吹气时间"
+
box
.
Config
.
BlowAir_Time
+
"分钟,停止吹气!"
);
IsInBlowing
=
false
;
//Thread.Sleep(100);
// box.IOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW);
LastEndBlowTime
=
DateTime
.
Now
;
}
}
bool
needAlarm
=
false
;
//如果开始吹气并且当前达到报警值
if
(
IsInBlowing
&&
humidity
>
Max_Humidity
)
{
needAlarm
=
true
;
}
else
if
(
temp
>
Max_Temperature
&&
Max_Temperature
>
0
)
{
LogUtil
.
info
(
Name
+
"当前温度【"
+
param
.
Temperate
+
"】超过最高温度【"
+
Max_Temperature
+
"】,开始报警!"
);
needAlarm
=
true
;
//Thread.Sleep(100);
//box.IOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW);
}
else
if
(
temp
<
Max_Temperature
)
{
if
(
IsInBlowing
.
Equals
(
false
)
&&
TempOrHumidityIsAlarm
)
{
LogUtil
.
info
(
Name
+
"不在吹气中,且当前温度【"
+
param
.
Temperate
+
"】低于【"
+
Max_Temperature
+
"】,关闭报警!"
);
TempOrHumidityIsAlarm
=
false
;
//Thread.Sleep(100);
//box.IOMove(IO_Type.StartOrStopBlow, IO_VALUE.LOW);
}
}
else
{
TempOrHumidityIsAlarm
=
false
;
}
if
(
needAlarm
)
{
HTAlarm
();
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
Name
+
"HumidityProcess出错:"
+
ex
.
ToString
());
}
}
private
void
HTAlarm
()
{
if
(
TempOrHumidityIsAlarm
)
{
return
;
}
TempAlarmTime
=
DateTime
.
Now
;
TempOrHumidityIsAlarm
=
true
;
}
internal
bool
NeedGetTem
()
{
if
(
Max_Humidity
<=
0
||
(
Max_Temperature
<=
0
))
{
return
true
;
}
return
false
;
}
#
endregion
}
public
class
HumitureParam
{
public
HumitureParam
(
string
clientipe
,
string
add
,
string
pwd
,
double
wendu
,
double
shidu
,
DateTime
updateTime
)
{
this
.
IpAddress
=
clientipe
;
this
.
DeviceAddress
=
add
;
this
.
Password
=
pwd
;
this
.
Temperate
=
wendu
;
this
.
Humidity
=
shidu
;
this
.
UpdateTime
=
updateTime
;
}
//获取平均值时使用此 参数,只做显示用
public
HumitureParam
(
double
wendu
,
double
shidu
)
{
this
.
IpAddress
=
""
;
this
.
DeviceAddress
=
""
;
this
.
Password
=
""
;
this
.
Temperate
=
wendu
;
this
.
Humidity
=
shidu
;
this
.
UpdateTime
=
DateTime
.
Now
;
}
/// <summary>
/// 判断值是否在有效期内。默认有效期是一分钟
/// </summary>
/// <returns></returns>
public
bool
IsValid
()
{
TimeSpan
span
=
DateTime
.
Now
-
UpdateTime
;
if
(
span
.
TotalMinutes
>
3
)
{
return
false
;
}
return
true
;
}
/// <summary>
/// 更新时间
/// </summary>
public
DateTime
UpdateTime
{
get
;
set
;
}
/// <summary>
/// IP地址
/// </summary>
public
string
IpAddress
{
get
;
set
;
}
/// <summary>
/// 设备地址
/// </summary>
public
string
DeviceAddress
{
get
;
set
;
}
/// <summary>
/// 访问密码
/// </summary>
public
string
Password
{
get
;
set
;
}
/// <summary>
/// 温度
/// </summary>
public
double
Temperate
{
get
;
set
;
}
/// <summary>
/// 湿度
/// </summary>
public
double
Humidity
{
get
;
set
;
}
}
}
source/DeviceLibrary/storeBean/boxBean/Humiture/HumitureController.cs
0 → 100644
查看文件 @
c436108
using
OnlineStore.Common
;
using
log4net
;
using
System
;
using
System.Collections.Generic
;
using
System.IO.Ports
;
using
System.Linq
;
using
System.Reflection
;
using
System.Text
;
namespace
OnlineStore.DeviceLibrary
{
/// <summary>
/// 壁挂王字壳温湿度变送器(485型)
/// </summary>
public
class
HumitureController
{
//public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private
static
int
bautRate
=
4800
;
//波特率
private
static
Parity
parity
=
Parity
.
None
;
//校验位
private
static
int
dataBits
=
8
;
//数据位
private
static
StopBits
stopBits
=
StopBits
.
One
;
//停止位
private
static
string
LogName
=
""
;
private
static
Dictionary
<
string
,
AcSerialBean
>
serialBeanMap
=
new
Dictionary
<
string
,
AcSerialBean
>();
public
static
int
HumitureControllerType
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
HumitureControllerType
);
public
static
bool
Init
(
string
port
)
{
if
(
serialBeanMap
.
ContainsKey
(
port
))
{
return
true
;
}
LogName
=
"温湿度传感器["
+
port
+
"]"
;
AcSerialBean
sb
=
null
;
if
(
HumitureControllerType
.
Equals
(
1
))
{
bautRate
=
9600
;
//波特率
}
sb
=
new
AcSerialBean
(
port
,
bautRate
,
parity
,
dataBits
,
stopBits
);
try
{
if
(
sb
.
openPort
())
{
serialBeanMap
.
Add
(
port
,
sb
);
return
true
;
}
else
{
LogUtil
.
error
(
LogName
+
"串口"
+
port
+
"打开失败!"
);
return
false
;
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"串口"
+
port
+
"打开失败:"
+
ex
.
ToString
());
}
return
true
;
}
/// <summary>
/// 释放资源
/// </summary>
public
static
void
CloseAllPort
()
{
List
<
string
>
kes
=
new
List
<
string
>(
serialBeanMap
.
Keys
);
foreach
(
string
key
in
kes
)
{
ClosePort
(
key
);
}
}
private
static
void
ClosePort
(
string
portName
)
{
AcSerialBean
bean
=
GetSerialBean
(
portName
);
if
(
bean
==
null
)
{
LogUtil
.
info
(
"串口【"
+
portName
+
"】未打开,不需要关闭"
);
return
;
}
//清理缓存
bean
.
clearInBuffer
();
bean
.
clearOutBuffer
();
bean
.
closePort
();
if
(
serialBeanMap
.
ContainsKey
(
portName
))
{
serialBeanMap
.
Remove
(
portName
);
}
LogUtil
.
info
(
"温湿度控制器 关闭串口【"
+
portName
+
"】 "
);
}
private
static
AcSerialBean
GetSerialBean
(
string
portName
)
{
if
(
serialBeanMap
.
ContainsKey
(
portName
))
{
return
serialBeanMap
[
portName
];
}
return
null
;
}
// public static ASTemperateParam LastData = new ASTemperateParam(0, 0);
public
static
HumitureParam
QueryData
(
string
port
)
{
HumitureParam
param
=
new
HumitureParam
(
0
,
0
);
List
<
double
>
data
=
queryData
(
port
);
if
(
data
.
Count
.
Equals
(
2
))
{
param
=
new
HumitureParam
(
data
[
1
],
data
[
0
]);
}
return
param
;
}
/// <summary>
/// 返回温度和湿度
/// </summary>
/// <returns></returns>
private
static
List
<
double
>
queryData
(
string
port
)
{
// 温度计算:
//当温度低于 0 ℃ 时温度数据以补码的形式上传。
//温度:FF9B H(十六进制)= -101 => 温度 = -10.1℃
//湿度计算:
//湿度:292 H(十六进制) = 658 => 湿度 = 65.8 % RH
AcSerialBean
sb
=
GetSerialBean
(
port
);
if
(
sb
==
null
)
{
return
new
List
<
double
>();
}
byte
[]
sendData
=
new
byte
[
8
];
sendData
[
0
]
=
0x01
;
if
(
HumitureControllerType
.
Equals
(
1
))
{
sendData
[
1
]
=
0x04
;
}
else
{
sendData
[
1
]
=
0x03
;
}
sendData
[
2
]
=
0x00
;
sendData
[
3
]
=
0x00
;
sendData
[
4
]
=
0x00
;
sendData
[
5
]
=
0x02
;
sendData
[
6
]
=
0x00
;
sendData
[
7
]
=
0x00
;
sendData
=
buildCheckData
(
sendData
,
sendData
.
Length
-
2
);
string
str
=
AcSerialBean
.
byteToHexStr
(
sendData
);
LogUtil
.
debug
(
"温湿度控制器发送数据:"
+
str
);
byte
[]
reviceData
=
new
byte
[
9
];
bool
isOk
=
false
;
sb
.
SendCommand
(
sendData
,
ref
reviceData
,
100
,
out
isOk
);
return
getReviceData
(
reviceData
);
}
public
static
int
QueryHistoryCount
(
string
port
)
{
AcSerialBean
sb
=
GetSerialBean
(
port
);
if
(
sb
==
null
||
HumitureControllerType
.
Equals
(
2
).
Equals
(
false
))
{
return
-
1
;
}
byte
[]
sendData
=
new
byte
[
8
];
sendData
[
0
]
=
0x01
;
sendData
[
1
]
=
0x04
;
sendData
[
2
]
=
0x20
;
sendData
[
3
]
=
0x00
;
byte
[]
addrByte
=
AcSerialBean
.
StringToByte
(
"2000"
);
if
(
addrByte
.
Length
==
1
)
{
sendData
[
2
]
=
0x00
;
sendData
[
3
]
=
addrByte
[
0
];
}
else
if
(
addrByte
.
Length
==
2
)
{
sendData
[
3
]
=
addrByte
[
1
];
sendData
[
2
]
=
addrByte
[
0
];
}
sendData
[
4
]
=
0x00
;
sendData
[
5
]
=
0x02
;
sendData
[
6
]
=
0x00
;
sendData
[
7
]
=
0x00
;
sendData
=
buildCheckData
(
sendData
,
sendData
.
Length
-
2
);
string
str
=
AcSerialBean
.
byteToHexStr
(
sendData
);
LogUtil
.
debug
(
"温湿度控制器发送数据:"
+
str
);
byte
[]
reviceData
=
new
byte
[
9
];
bool
isOk
=
false
;
sb
.
SendCommand
(
sendData
,
ref
reviceData
,
100
,
out
isOk
);
return
getReviceIntData
(
reviceData
);
}
public
static
int
QueryCurrCount
(
string
port
)
{
AcSerialBean
sb
=
GetSerialBean
(
port
);
if
(
sb
==
null
||
HumitureControllerType
.
Equals
(
2
).
Equals
(
false
))
{
return
-
1
;
}
byte
[]
sendData
=
new
byte
[
8
];
sendData
[
0
]
=
0x01
;
sendData
[
1
]
=
0x04
;
sendData
[
2
]
=
0x20
;
sendData
[
3
]
=
0x02
;
sendData
[
4
]
=
0x00
;
sendData
[
5
]
=
0x02
;
sendData
[
6
]
=
0x00
;
sendData
[
7
]
=
0x00
;
sendData
=
buildCheckData
(
sendData
,
sendData
.
Length
-
2
);
string
str
=
AcSerialBean
.
byteToHexStr
(
sendData
);
LogUtil
.
debug
(
"温湿度控制器发送数据:"
+
str
);
byte
[]
reviceData
=
new
byte
[
9
];
bool
isOk
=
false
;
sb
.
SendCommand
(
sendData
,
ref
reviceData
,
100
,
out
isOk
);
return
getReviceIntData
(
reviceData
);
}
public
static
List
<
object
>
QueryHistory
(
string
port
)
{
List
<
object
>
list
=
new
List
<
object
>();
AcSerialBean
sb
=
GetSerialBean
(
port
);
if
(
sb
==
null
||
HumitureControllerType
.
Equals
(
2
).
Equals
(
false
))
{
return
list
;
}
byte
[]
sendData
=
new
byte
[
8
];
sendData
[
0
]
=
0x01
;
sendData
[
1
]
=
0x04
;
sendData
[
2
]
=
0x20
;
sendData
[
3
]
=
0x04
;
sendData
[
4
]
=
0x00
;
sendData
[
5
]
=
0x05
;
sendData
[
6
]
=
0x00
;
sendData
[
7
]
=
0x00
;
sendData
=
buildCheckData
(
sendData
,
sendData
.
Length
-
2
);
string
str
=
AcSerialBean
.
byteToHexStr
(
sendData
);
LogUtil
.
debug
(
"温湿度控制器发送数据:"
+
str
);
byte
[]
reviceData
=
new
byte
[
15
];
bool
isOk
=
false
;
sb
.
SendCommand
(
sendData
,
ref
reviceData
,
100
,
out
isOk
);
try
{
if
(
reviceData
!=
null
&&
reviceData
.
Length
>=
9
)
{
string
temp
=
String
.
Format
(
"{0:X2}"
,
reviceData
[
3
])
+
String
.
Format
(
"{0:X2}"
,
reviceData
[
4
]);
string
hum
=
String
.
Format
(
"{0:X2}"
,
reviceData
[
5
])
+
String
.
Format
(
"{0:X2}"
,
reviceData
[
6
]);
double
tempV
=
(
double
)
Convert
.
ToInt32
(
temp
,
16
)
/
10
;
double
humV
=
(
double
)
Convert
.
ToInt32
(
hum
,
16
)
/
10
;
int
year
=
Convert
.
ToInt32
(
String
.
Format
(
"{0:X2}"
,
reviceData
[
7
]),
16
);
int
mouth
=
Convert
.
ToInt32
(
String
.
Format
(
"{0:X2}"
,
reviceData
[
8
]),
16
);
int
day
=
Convert
.
ToInt32
(
String
.
Format
(
"{0:X2}"
,
reviceData
[
9
]),
16
);
int
hour
=
Convert
.
ToInt32
(
String
.
Format
(
"{0:X2}"
,
reviceData
[
10
]),
16
);
int
minute
=
Convert
.
ToInt32
(
String
.
Format
(
"{0:X2}"
,
reviceData
[
11
]),
16
);
int
second
=
Convert
.
ToInt32
(
String
.
Format
(
"{0:X2}"
,
reviceData
[
12
]),
16
);
DateTime
time
=
new
DateTime
(
year
,
mouth
,
day
,
hour
,
minute
,
second
);
list
.
Add
(
tempV
);
list
.
Add
(
humV
);
list
.
Add
(
time
);
}
}
catch
(
Exception
ex
)
{
LogUtil
.
info
(
LogName
+
"转换出错:"
+
ex
.
ToString
());
}
return
list
;
}
private
static
byte
[]
buildCheckData
(
byte
[]
sendData
,
int
length
)
{
ushort
pChecksum
=
0
;
AcSerialBean
.
CalculateCRC
(
sendData
,
length
,
out
pChecksum
);
string
checkStr
=
Convert
.
ToString
(
pChecksum
,
16
);
byte
[]
checkByte
=
AcSerialBean
.
StringToByte
(
checkStr
);
if
(
checkByte
.
Length
==
1
)
{
sendData
[
length
]
=
checkByte
[
0
];
sendData
[
length
+
1
]
=
0x00
;
}
else
{
sendData
[
length
+
1
]
=
checkByte
[
0
];
sendData
[
length
]
=
checkByte
[
1
];
}
return
sendData
;
}
private
static
int
getReviceIntData
(
byte
[]
dataArray
)
{
List
<
double
>
list
=
new
List
<
double
>();
try
{
if
(
dataArray
==
null
)
{
return
-
1
;
}
if
(
dataArray
.
Length
>=
9
)
{
string
data
=
String
.
Format
(
"{0:X2}"
,
dataArray
[
5
])
+
String
.
Format
(
"{0:X2}"
,
dataArray
[
6
]+
String
.
Format
(
"{0:X2}"
,
dataArray
[
3
])
+
String
.
Format
(
"{0:X2}"
,
dataArray
[
4
])
);
int
tempV
=
Convert
.
ToInt32
(
data
,
16
);
return
tempV
;
}
}
catch
(
Exception
ex
)
{
LogUtil
.
info
(
LogName
+
"转换出错:"
+
ex
.
ToString
());
}
return
-
1
;
}
private
static
List
<
double
>
getReviceData
(
byte
[]
dataArray
)
{
List
<
double
>
list
=
new
List
<
double
>();
try
{
if
(
dataArray
==
null
)
{
return
list
;
}
if
(
dataArray
.
Length
>=
9
)
{
string
temp
=
String
.
Format
(
"{0:X2}"
,
dataArray
[
3
])+
String
.
Format
(
"{0:X2}"
,
dataArray
[
4
]);
string
hum
=
String
.
Format
(
"{0:X2}"
,
dataArray
[
5
])
+
String
.
Format
(
"{0:X2}"
,
dataArray
[
6
]);
double
tempV
=
(
double
)
Convert
.
ToInt32
(
temp
,
16
)/
10
;
double
humV
=(
double
)
Convert
.
ToInt32
(
hum
,
16
)/
10
;
list
.
Add
(
tempV
);
list
.
Add
(
humV
);
}
}
catch
(
Exception
ex
)
{
LogUtil
.
info
(
LogName
+
"转换出错:"
+
ex
.
ToString
());
}
return
list
;
}
}
}
source/LoadCVSLibrary/LoadCSVLibrary.csproj
查看文件 @
c436108
...
...
@@ -49,6 +49,7 @@
<ItemGroup>
<Compile Include="CSVExection.cs" />
<Compile Include="FileEncoding.cs" />
<Compile Include="position\BoxPosition.cs" />
<Compile Include="position\XLRPosition.cs" />
<Compile Include="position\CSVPositionReader.cs" />
<Compile Include="position\PositionBase.cs" />
...
...
source/LoadCVSLibrary/position/BoxPosition.cs
0 → 100644
查看文件 @
c436108
using
OnlineStore.Common
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
namespace
OnlineStore.LoadCSVLibrary
{
public
class
BoxPosition
:
PositionBase
{
/// <summary>
/// 对应的料仓ID(流水线料仓需要用此字段区分哪个BOX)
/// </summary>
[
CSVAttribute
(
"料仓ID"
)]
public
int
StoreId
{
get
;
set
;
}
/// <summary>
/// 料斗进出轴料屉提取点
/// P2 对应 A面
/// P4 对应 B面
/// </summary>
[
CSVAttribute
(
"料斗进出轴料屉提取点P2P4"
)]
public
int
PullAxis_Inout_P2_P4
{
get
;
set
;
}
/// <summary>
/// 料斗进出轴料屉库位点
/// P3 对应 A面
/// P5 对应 B面
/// </summary>
[
CSVAttribute
(
"料斗进出轴料屉库位点P3P5"
)]
public
int
PullAxis_Inout_P3_P5
{
get
;
set
;
}
/// <summary>
/// 料斗升降轴料屉提取高点P3
/// </summary>
[
CSVAttribute
(
"料斗升降轴料屉提取高点P3"
)]
public
int
PullAxis_Updown_P3
{
get
;
set
;
}
/// <summary>
/// 料斗升降轴料屉提取低点P4
/// </summary>
[
CSVAttribute
(
"料斗升降轴料屉提取低点P4"
)]
public
int
PullAxis_Updown_P4
{
get
;
set
;
}
/// <summary>
/// 移栽升降轴料屉上方过渡点
/// P6 对应 A面
/// P12 对应 B面
/// </summary>
[
CSVAttribute
(
"移栽升降轴料屉上方过渡点P6P12"
)]
public
int
Updown_P6_P12
{
get
;
set
;
}
/// <summary>
/// 移栽升降轴料屉取放点
/// P7 对应 A面
/// P13 对应 B面
/// </summary>
[
CSVAttribute
(
"移栽升降轴料屉取放点P7P13"
)]
public
int
Updown_P7_P13
{
get
;
set
;
}
/// <summary>
/// AB移栽X轴料屉库位取放料点P3
/// </summary>
[
CSVAttribute
(
"AB移栽X轴料屉库位取放料点P3"
)]
public
int
XAxis_AB_P3
{
get
;
set
;
}
/// <summary>
/// AB移栽压紧轴压紧前点P2
/// </summary>
[
CSVAttribute
(
"AB移栽压紧轴压紧前点P2"
)]
public
int
ComAxis_AB_P2
{
get
;
set
;
}
/// <summary>
/// AB移栽压紧轴压紧点P3
/// </summary>
[
CSVAttribute
(
"AB移栽压紧轴压紧点P3"
)]
public
int
ComAxis_AB_P3
{
get
;
set
;
}
public
static
bool
CheckPosition
(
XLRPosition
position
,
BoxEquip_Config
Config
)
{
try
{
//if (Config.Middle_Axis.PositionIsHasLimit())
//{
// int mMin = Config.Middle_Axis.PositionMin;
// int mMax = Config.Middle_Axis.PositionMax;
// if (mMin > position.MiddleAxis_Position_P2 || mMax < position.MiddleAxis_Position_P2)
// {
// LogUtil.error(position.PositionNum + " MiddleAxis_Position_P2位置超出" + Config.Middle_Axis.Explain + "上下限(" + mMin + "-" + mMax + ")");
// return false;
// }
//}
//if (Config.InOut_Axis.PositionIsHasLimit())
//{
// int iMin = Config.InOut_Axis.PositionMin;
// int iMax = Config.InOut_Axis.PositionMax;
// if (iMin > position.InOutAxis_DoorPosition_P2 || iMax < position.InOutAxis_DoorPosition_P2)
// {
// LogUtil.error(position.PositionNum + " InOutAxis_DoorPosition_P2位置超出" + Config.InOut_Axis.Explain + "上下限(" + iMin + "-" + iMax + ")");
// return false;
// }
// if (iMin > position.InOutAxis_Position_P3 || iMax < position.InOutAxis_Position_P3)
// {
// LogUtil.error(position.PositionNum + " InOutAxis_Position_P3位置超出" + Config.InOut_Axis.Explain + "上下限(" + iMin + "-" + iMax + ")");
// return false;
// }
//}
//if (Config.UpDown_Axis.PositionIsHasLimit())
//{
// int uMin = Config.UpDown_Axis.PositionMin;
// int uMax = Config.UpDown_Axis.PositionMax;
// if (uMin > position.UpDownAxis_IHPosition_P3 || uMax < position.UpDownAxis_IHPosition_P3)
// {
// LogUtil.error(position.PositionNum + " UpDownAxis_IHPosition_P3位置超出" + Config.UpDown_Axis.Explain + "上下限(" + uMin + "-" + uMax + ")");
// return false;
// }
// if (uMin > position.UpDownAxis_ILPosition_P4 || uMax < position.UpDownAxis_ILPosition_P4)
// {
// LogUtil.error(position.PositionNum + " UpDownAxis_ILPosition_P4位置超出" + Config.UpDown_Axis.Explain + "上下限(" + uMin + "-" + uMax + ")");
// return false;
// }
// if (uMin > position.UpDownAxis_OHPosition_P5 || uMax < position.UpDownAxis_OHPosition_P5)
// {
// LogUtil.error(position.PositionNum + " UpDownAxis_OHPosition_P5位置超出" + Config.UpDown_Axis.Explain + "上下限(" + uMin + "-" + uMax + ")");
// return false;
// }
// if (uMin > position.UpDownAxis_OLPosition_P6 || uMax < position.UpDownAxis_OLPosition_P6)
// {
// LogUtil.error(position.PositionNum + " UpDownAxis_OLPosition_P6位置超出" + Config.UpDown_Axis.Explain + "上下限(" + uMin + "-" + uMax + ")");
// return false;
// }
//}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"验证"
+
position
.
PositionNum
+
"的位置范围出错:"
+
ex
.
ToString
());
}
return
true
;
}
}
}
source/LoadCVSLibrary/storeConfig/config/BoxEquip_Config.cs
查看文件 @
c436108
...
...
@@ -19,6 +19,7 @@ namespace OnlineStore.LoadCSVLibrary
:
base
(
id
,
cid
,
LoadCSVLibrary
.
DeviceType
.
BoxEquip
,
filepath
)
{
}
#
region
轴
/// <summary>
/// AXIS,0,行走机构,MoveAxis,0,HC,,35000,60000,60000,1000,5000,20000,10,100,0,0
/// </summary>
...
...
@@ -69,110 +70,563 @@ namespace OnlineStore.LoadCSVLibrary
/// </summary>
[
ConfigProAttribute
(
"ComAxis_B"
)]
public
ConfigMoveAxis
ComAxis_B
{
get
;
set
;
}
#
endregion
/// <summary>
/// PRO,0,设备是否处于调试状态(1=调试,0=正常),IsDebug,0,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"IsDebug"
)]
public
int
IsDebug
{
get
;
set
;
}
#
region
轴移动点位信息
/// <summary>
/// PRO,0,行走机构_待机点P1,MoveAxis_P1,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MoveAxis_P1"
)]
public
int
MoveAxis_P1
{
get
;
set
;
}
/// <summary>
/// PRO,0,行走机构_
P1速度,MoveAxis_P1_Speed,108
,,,,,,,,,,,,
/// PRO,0,行走机构_
进出料机构取放点位P2,MoveAxis_P2,100
,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MoveAxis_P1_Speed"
)]
public
int
MoveAxis_P1_Speed
{
get
;
set
;
}
[
ConfigProAttribute
(
"MoveAxis_P2"
)]
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,料斗拉取进出轴_
P1速度,PullAxis_Inout_P1_Speed,108
,,,,,,,,,,,,
/// PRO,0,料斗拉取进出轴_
A面料屉提取点P2,PullAxis_Inout_P2,100
,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Inout_P1_Speed"
)]
public
int
PullAxis_Inout_P1_Speed
{
get
;
set
;
}
[
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,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P1"
)]
public
int
Updown_P1
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_
P1速度,Updown_P1_Speed,108
,,,,,,,,,,,,
/// PRO,0,移栽升降轴_
A上暂存区取料高点P2,Updown_P2,100
,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P1_Speed"
)]
public
int
Updown_P1_Speed
{
get
;
set
;
}
[
ConfigProAttribute
(
"Updown_P2"
)]
public
int
Updown_P2
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_A上暂存区取料低点P3,Updown_P3,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P3"
)]
public
int
Updown_P3
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_A下暂存区放料高点P4,Updown_P4,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P4"
)]
public
int
Updown_P4
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_A下暂存区放料低点P5,Updown_P5,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P5"
)]
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"
)]
public
int
Updown_P8
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_B上暂存区取料低点P9,Updown_P9,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P9"
)]
public
int
Updown_P9
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_B下暂存区取料高点P10,Updown_P10,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P10"
)]
public
int
Updown_P10
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_B下暂存区取料低点P11,Updown_P11,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P11"
)]
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"
)]
public
int
PullAxis_Updown_P1
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取升降轴_
P1速度,PullAxis_Updown_P1_Speed,108
,,,,,,,,,,,,
/// PRO,0,料斗拉取升降轴_
料屉提取水平点P2,PullAxis_Updown_P2,100
,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Updown_P1_Speed"
)]
public
int
PullAxis_Updown_P1_Speed
{
get
;
set
;
}
[
ConfigProAttribute
(
"PullAxis_Updown_P2"
)]
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"
)]
public
int
XAxis_A_P1
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽X轴_
P1速度,XAxis_A_P1_Speed,108
,,,,,,,,,,,,
/// PRO,0,A面移栽X轴_
A进出料暂存区取放料点P2,XAxis_A_P2,100
,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"XAxis_A_P1_Speed"
)]
public
int
XAxis_A_P1_Speed
{
get
;
set
;
}
[
ConfigProAttribute
(
"XAxis_A_P2"
)]
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"
)]
public
int
MiddleAxis_A_P1
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽旋转轴_
P1速度,MiddleAxis_A_P1_Speed,108
,,,,,,,,,,,,
/// PRO,0,A面移栽旋转轴_
A进出料暂存区取放料水平点P2,MiddleAxis_A_P2,100
,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_A_P1_Speed"
)]
public
int
MiddleAxis_A_P1_Speed
{
get
;
set
;
}
[
ConfigProAttribute
(
"MiddleAxis_A_P2"
)]
public
int
MiddleAxis_A_P2
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽旋转轴_A面料屉库位垂直取放料点P3,MiddleAxis_A_P3,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_A_P3"
)]
public
int
MiddleAxis_A_P3
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽压紧轴_待机点P1,ComAxis_A_P1,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"ComAxis_A_P1"
)]
public
int
ComAxis_A_P1
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽压紧轴_
P1速度,ComAxis_A_P1_Speed,108
,,,,,,,,,,,,
/// PRO,0,A面移栽压紧轴_
压紧前点P2,ComAxis_A_P2,100
,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"ComAxis_A_P1_Speed"
)]
public
int
ComAxis_A_P1_Speed
{
get
;
set
;
}
[
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>
[
ConfigProAttribute
(
"XAxis_B_P1"
)]
public
int
XAxis_B_P1
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽X轴_
P1速度,XAxis_B_P1_Speed,108
,,,,,,,,,,,,
/// PRO,0,B面移栽X轴_
B进出料暂存区取放料点P2,XAxis_B_P2,100
,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"XAxis_B_P1_Speed"
)]
public
int
XAxis_B_P1_Speed
{
get
;
set
;
}
[
ConfigProAttribute
(
"XAxis_B_P2"
)]
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"
)]
public
int
MiddleAxis_B_P1
{
get
;
set
;
}
/// <summary>
///
PRO,0,B面移栽旋转轴_P1速度,MiddleAxis_B_P1_Speed,108
,,,,,,,,,,,,
///
PRO,0,B面移栽旋转轴_B进出料暂存区取放料水平点P2,MiddleAxis_B_P2,100
,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_B_P1_Speed"
)]
public
int
MiddleAxis_B_P1_Speed
{
get
;
set
;
}
[
ConfigProAttribute
(
"MiddleAxis_B_P2"
)]
public
int
MiddleAxis_B_P2
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽旋转轴_B面料屉库位垂直取放料点P3,MiddleAxis_B_P3,100,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_B_P3"
)]
public
int
MiddleAxis_B_P3
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽压紧轴_待机点P1,ComAxis_B_P1,100,,,,,,,,,,,,
/// </summary>
[
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
轴移动速度信息
/// <summary>
/// PRO,0,行走机构_P1速度,MoveAxis_P1_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MoveAxis_P1_Speed"
)]
public
int
MoveAxis_P1_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,行走机构_P2速度,MoveAxis_P2_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MoveAxis_P2_Speed"
)]
public
int
MoveAxis_P2_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,行走机构_P3速度,MoveAxis_P3_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MoveAxis_P3_Speed"
)]
public
int
MoveAxis_P3_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取进出轴_P1速度,PullAxis_Inout_P1_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Inout_P1_Speed"
)]
public
int
PullAxis_Inout_P1_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取进出轴_P2速度,PullAxis_Inout_P2_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Inout_P2_Speed"
)]
public
int
PullAxis_Inout_P2_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取进出轴_P3速度,PullAxis_Inout_P3_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Inout_P3_Speed"
)]
public
int
PullAxis_Inout_P3_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取进出轴_P4速度,PullAxis_Inout_P4_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Inout_P4_Speed"
)]
public
int
PullAxis_Inout_P4_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取进出轴_P5速度,PullAxis_Inout_P5_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Inout_P5_Speed"
)]
public
int
PullAxis_Inout_P5_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P1速度,Updown_P1_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P1_Speed"
)]
public
int
Updown_P1_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P2速度,Updown_P2_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P2_Speed"
)]
public
int
Updown_P2_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P3速度,Updown_P3_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P3_Speed"
)]
public
int
Updown_P3_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P4速度,Updown_P4_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P4_Speed"
)]
public
int
Updown_P4_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P5速度,Updown_P5_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P5_Speed"
)]
public
int
Updown_P5_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P6速度,Updown_P6_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P6_Speed"
)]
public
int
Updown_P6_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P7速度,Updown_P7_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P7_Speed"
)]
public
int
Updown_P7_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P8速度,Updown_P8_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P8_Speed"
)]
public
int
Updown_P8_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P9速度,Updown_P9_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P9_Speed"
)]
public
int
Updown_P9_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P10速度,Updown_P10_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P10_Speed"
)]
public
int
Updown_P10_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P11速度,Updown_P11_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P11_Speed"
)]
public
int
Updown_P11_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P12速度,Updown_P12_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P12_Speed"
)]
public
int
Updown_P12_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,移栽升降轴_P13速度,Updown_P13_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Updown_P13_Speed"
)]
public
int
Updown_P13_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取升降轴_P1速度,PullAxis_Updown_P1_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Updown_P1_Speed"
)]
public
int
PullAxis_Updown_P1_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取升降轴_P2速度,PullAxis_Updown_P2_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Updown_P2_Speed"
)]
public
int
PullAxis_Updown_P2_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取升降轴_P3速度,PullAxis_Updown_P3_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Updown_P3_Speed"
)]
public
int
PullAxis_Updown_P3_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,料斗拉取升降轴_P4速度,PullAxis_Updown_P4_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"PullAxis_Updown_P4_Speed"
)]
public
int
PullAxis_Updown_P4_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽X轴_P1速度,XAxis_A_P1_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"XAxis_A_P1_Speed"
)]
public
int
XAxis_A_P1_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽X轴_P2速度,XAxis_A_P2_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"XAxis_A_P2_Speed"
)]
public
int
XAxis_A_P2_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽X轴_P3速度,XAxis_A_P3_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"XAxis_A_P3_Speed"
)]
public
int
XAxis_A_P3_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽旋转轴_P1速度,MiddleAxis_A_P1_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_A_P1_Speed"
)]
public
int
MiddleAxis_A_P1_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽旋转轴_P2速度,MiddleAxis_A_P2_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_A_P2_Speed"
)]
public
int
MiddleAxis_A_P2_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽旋转轴_P3速度,MiddleAxis_A_P3_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_A_P3_Speed"
)]
public
int
MiddleAxis_A_P3_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽压紧轴_P1速度,ComAxis_A_P1_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"ComAxis_A_P1_Speed"
)]
public
int
ComAxis_A_P1_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽压紧轴_P2速度,ComAxis_A_P2_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"ComAxis_A_P2_Speed"
)]
public
int
ComAxis_A_P2_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,A面移栽压紧轴_P3速度,ComAxis_A_P3_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"ComAxis_A_P3_Speed"
)]
public
int
ComAxis_A_P3_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽X轴_P1速度,XAxis_B_P1_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"XAxis_B_P1_Speed"
)]
public
int
XAxis_B_P1_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽X轴_P2速度,XAxis_B_P2_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"XAxis_B_P2_Speed"
)]
public
int
XAxis_B_P2_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽X轴_P3速度,XAxis_B_P3_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"XAxis_B_P3_Speed"
)]
public
int
XAxis_B_P3_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽旋转轴_P1速度,MiddleAxis_B_P1_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_B_P1_Speed"
)]
public
int
MiddleAxis_B_P1_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽旋转轴_P2速度,MiddleAxis_B_P2_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_B_P2_Speed"
)]
public
int
MiddleAxis_B_P2_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽旋转轴_P3速度,MiddleAxis_B_P3_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"MiddleAxis_B_P3_Speed"
)]
public
int
MiddleAxis_B_P3_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽压紧轴_P1速度,ComAxis_B_P1_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"ComAxis_B_P1_Speed"
)]
public
int
ComAxis_B_P1_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽压紧轴_P2速度,ComAxis_B_P2_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"ComAxis_B_P2_Speed"
)]
public
int
ComAxis_B_P2_Speed
{
get
;
set
;
}
/// <summary>
/// PRO,0,B面移栽压紧轴_P3速度,ComAxis_B_P3_Speed,108,,,,,,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"ComAxis_B_P3_Speed"
)]
public
int
ComAxis_B_P3_Speed
{
get
;
set
;
}
#
endregion
#
region
温湿度
/// <summary>
/// PRO 需要吹气的温度(温度标准) Max_Temperature 10
/// </summary>
[
ConfigProAttribute
(
"Max_Temperature"
,
false
)]
public
int
Max_Temperature
{
get
;
set
;
}
/// <summary>
/// PRO 需要吹气的湿度(湿度标准) Max_Humidity 10
/// </summary>
[
ConfigProAttribute
(
"Max_Humidity"
,
false
)]
public
int
Max_Humidity
{
get
;
set
;
}
/// <summary>
/// PRO 每次吹气的时间(分钟) BlowAir_Time 10
/// </summary>
[
ConfigProAttribute
(
"BlowAir_Time"
,
false
)]
public
int
BlowAir_Time
{
get
;
set
;
}
/// <summary>
/// PRO 两次吹气间隔(分钟) BlowAir_Interval 10
/// </summary>
[
ConfigProAttribute
(
"BlowAir_Interval"
,
false
)]
public
int
BlowAir_Interval
{
get
;
set
;
}
/// <summary>
/// PRO,温湿度端口号,Humiture_Port,COM1,,,,,,,
/// </summary>
[
ConfigProAttribute
(
"Humiture_Port"
,
true
)]
public
string
Humiture_Port
{
get
;
set
;
}
#
endregion
}
}
source/XLRStoreClient/App.config
查看文件 @
c436108
...
...
@@ -9,7 +9,12 @@
<
add
key
=
"App_Title"
value
=
"流水线客户端"
/>
<!--
Server
address
-->
<
add
key
=
"http.server"
value
=
"http://192.168.100.14/myproject/"
/>
<!-- 开始吹气的判断值(配置值=服务器发送的湿度值-开始吹气值)-->
<
add
key
=
"StartBlowValue"
value
=
"4"
/>
<!-- 停止吹气的判断值(配置值=服务器发送的湿度值-停止吹气值)-->
<
add
key
=
"StopBlowValue"
value
=
"4"
/>
<!--温控器类型,
0
=壁挂王字壳温湿度变送器,
1
=妙昕温湿度记录仪-->
<
add
key
=
"HumitureControllerType"
value
=
"0"
/>
<!--
start
one
store
config
-->
<
add
key
=
"ConfigPath_XLRStore"
value
=
"\Config\Config_Store.csv"
/>
<
add
key
=
"ConfigPath_Input"
value
=
"\Config\Config_InputEquip.csv"
/>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论