Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
ACSquareStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit a3b477f2
由
LN
编写于
2020-02-15 20:09:02 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1
1 个父辈
f054873b
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
484 行增加
和
211 行删除
doc/IO点位统计表2-14.xlsx
source/ACSquareStore/App.config
source/ACSquareStore/FrmIOStatus.Designer.cs
source/ACSquareStore/FrmIOStatus.cs
source/ACSquareStore/FrmStoreBox.Designer.cs
source/ACSquareStore/FrmStoreBox.cs
source/Common/Setting_Init.cs
source/Common/util/HumitureController.cs
source/DeviceLibrary/StoreConfig/StoreConfig.csv
source/DeviceLibrary/acSquareStore/ShelfDoorBean.cs
source/DeviceLibrary/acSquareStore/Square_BoxBean.cs
source/DeviceLibrary/acSquareStore/Square_BoxBean_Partial.cs
source/DeviceLibrary/store/InOutParam.cs
source/DeviceLibrary/store/StoreStep.cs
source/LoadCVSLibrary/storeConfig/config/Box_Config.cs
doc/IO点位统计表2-14.xlsx
0 → 100644
查看文件 @
a3b477f
此文件类型无法预览
source/ACSquareStore/App.config
查看文件 @
a3b477f
...
...
@@ -36,6 +36,7 @@
<!--是否调试状态-->
<
add
key
=
"IsInDebug"
value
=
"1"
/>
<
add
key
=
"ClientSettingsProvider.ServiceUri"
value
=
""
/>
<
add
key
=
"UseDoor"
value
=
"1"
/>
</
appSettings
>
<
log4net
>
<
appender
name
=
"RollingLogFileAppender"
type
=
"log4net.Appender.RollingFileAppender"
>
...
...
source/ACSquareStore/FrmIOStatus.Designer.cs
查看文件 @
a3b477f
此文件的差异被折叠,
点击展开。
source/ACSquareStore/FrmIOStatus.cs
查看文件 @
a3b477f
...
...
@@ -72,7 +72,7 @@ namespace OnlineStore.ACSingleStore
cmbWriteIO
.
DataSource
=
new
List
<
ConfigIO
>(
boxBean
.
Config
.
StoreDOList
.
Values
);
cmbWriteIO
.
ValueMember
=
"ProName"
;
cmbWriteIO
.
DisplayMember
=
"DisplayStr"
;
cmbWrite
Value
.
SelectedIndex
=
0
;
cmbWrite
IO
.
SelectedIndex
=
0
;
}
private
void
timer1_Tick
(
object
sender
,
EventArgs
e
)
...
...
@@ -99,22 +99,7 @@ namespace OnlineStore.ACSingleStore
LogUtil
.
error
(
LOGGER
,
ex
.
StackTrace
);
}
}
private
void
btnWriteSingleDO_Click
(
object
sender
,
EventArgs
e
)
{
string
deviceName
=
txtDoName
.
Text
;
int
index
=
FormUtil
.
GetIntValue
(
txtDOIndex
);
IO_VALUE
value
=
(
IO_VALUE
)
cmbWriteValue
.
SelectedIndex
;
int
time
=
FormUtil
.
GetIntValue
(
txtWriteTime
);
int
slaveId
=
FormUtil
.
GetIntValue
(
txtSlaveId
);
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
ConfigIO
GetSelectDO
()
{
...
...
@@ -147,37 +132,7 @@ namespace OnlineStore.ACSingleStore
private
void
FrmStoreIOStatus_Load
(
object
sender
,
EventArgs
e
)
{
//KNDAIManager.NeedShow = true;
}
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
cmbWriteValue_DrawItem
(
object
sender
,
DrawItemEventArgs
e
)
{
if
(
e
.
Index
<
0
)
{
return
;
}
e
.
DrawBackground
();
e
.
DrawFocusRectangle
();
if
(
cmbWriteValue
.
Items
.
Count
>
e
.
Index
)
{
e
.
Graphics
.
DrawString
(
cmbWriteValue
.
Items
[
e
.
Index
].
ToString
(),
e
.
Font
,
new
SolidBrush
(
e
.
ForeColor
),
e
.
Bounds
.
X
,
e
.
Bounds
.
Y
+
3
);
}
}
}
private
void
btnReadIO_Click
(
object
sender
,
EventArgs
e
)
{
ReadIOList
();
...
...
@@ -207,34 +162,14 @@ namespace OnlineStore.ACSingleStore
}
private
void
btnReadAllDi_Click
(
object
sender
,
EventArgs
e
)
{
string
deviceName
=
txtDoName
.
Text
;
IO_VALUE
value
=
(
IO_VALUE
)
cmbWriteValue
.
SelectedIndex
;
int
time
=
FormUtil
.
GetIntValue
(
txtWriteTime
);
int
slaveId
=
FormUtil
.
GetIntValue
(
txtSlaveId
);
IOManager
.
instance
.
ReadAllDI
(
deviceName
,
(
byte
)
slaveId
);
}
private
void
btnReadAllDo_Click
(
object
sender
,
EventArgs
e
)
{
string
deviceName
=
txtDoName
.
Text
;
IO_VALUE
value
=
(
IO_VALUE
)
cmbWriteValue
.
SelectedIndex
;
int
time
=
FormUtil
.
GetIntValue
(
txtWriteTime
);
int
slaveId
=
FormUtil
.
GetIntValue
(
txtSlaveId
);
IOManager
.
instance
.
ReadAllDO
(
deviceName
,
(
byte
)
slaveId
);
}
private
void
btnOpenDoor_Click
(
object
sender
,
EventArgs
e
)
{
//IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.HIGH);
//IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.LOW);
StoreManager
.
Store
.
OpenDoor
(
false
);
StoreManager
.
Store
.
OpenDoor
(
1
);
}
private
void
btnCloseDoor_Click
(
object
sender
,
EventArgs
e
)
{
//IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
//IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.LOW);
StoreManager
.
Store
.
CloseDoor
(
false
);
StoreManager
.
Store
.
CloseDoor
(
1
);
}
private
void
FrmIOStatus_Shown
(
object
sender
,
EventArgs
e
)
{
...
...
@@ -243,12 +178,12 @@ namespace OnlineStore.ACSingleStore
private
void
btnOpenAxisBreak_Click
(
object
sender
,
EventArgs
e
)
{
IOManager
.
IOMove
(
IO_Type
.
Axis_Brake
,
IO_VALUE
.
HIGH
);
StoreManager
.
Store
.
ShelfForward
(
2
);
}
private
void
btnCloseAxisBreak_Click
(
object
sender
,
EventArgs
e
)
{
IOManager
.
IOMove
(
IO_Type
.
Axis_Brake
,
IO_VALUE
.
LOW
);
{
StoreManager
.
Store
.
ShelfBack
(
2
);
}
private
void
button1_Click
(
object
sender
,
EventArgs
e
)
...
...
@@ -256,6 +191,73 @@ namespace OnlineStore.ACSingleStore
this
.
Close
();
}
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
=
FormUtil
.
GetIntValue
(
txtSlaveId
);
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
cmbWriteIO_SelectedIndexChanged_1
(
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
;
txtSlaveId
.
Text
=
io
.
SlaveID
.
ToString
();
IOTextControl
newControl
=
DOControlList
[
io
.
ProName
];
if
(
selectControl
!=
null
)
{
selectControl
.
BackColor
=
Color
.
White
;
}
newControl
.
BackColor
=
Color
.
SkyBlue
;
selectControl
=
newControl
;
}
}
}
private
void
btnOpenRDoor_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
OpenDoor
(
2
);
}
private
void
btnCloseRDoor_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
OpenDoor
(
2
);
}
private
void
btnLShelfForward_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
ShelfForward
(
1
);
}
private
void
btnLShelfBack_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
ShelfBack
(
1
);
}
private
void
btnOpenB_Click
(
object
sender
,
EventArgs
e
)
{
IOManager
.
IOMove
(
IO_Type
.
Axis_Brake
,
IO_VALUE
.
HIGH
);
}
private
void
btnCloseB_Click
(
object
sender
,
EventArgs
e
)
{
IOManager
.
IOMove
(
IO_Type
.
Axis_Brake
,
IO_VALUE
.
LOW
);
}
}
}
source/ACSquareStore/FrmStoreBox.Designer.cs
查看文件 @
a3b477f
此文件的差异被折叠,
点击展开。
source/ACSquareStore/FrmStoreBox.cs
查看文件 @
a3b477f
...
...
@@ -52,7 +52,16 @@ namespace OnlineStore.ACSingleStore
//cmbHomeType.SelectedIndex = 1;
HideForm
();
this
.
Opacity
=
1
;
txtTempPort
.
Text
=
store
.
Config
.
Humiture_Port
;
cmbHumpPort
.
Items
.
Clear
();
foreach
(
string
str
in
store
.
Config
.
GetHumpPortList
())
{
cmbHumpPort
.
Items
.
Add
(
str
);
}
if
(
cmbHumpPort
.
Items
.
Count
>
0
)
{
cmbHumpPort
.
SelectedIndex
=
0
;
}
// txtTempPort.Text = store.Config.Humiture_Port;
LoadOk
=
true
;
}
...
...
@@ -161,6 +170,15 @@ namespace OnlineStore.ACSingleStore
LoadOk
=
true
;
}
lblTemp
.
Text
=
store
.
currTempStr
;
if
(
store
.
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
InStore
)
||
store
.
StoreMove
.
MoveType
.
Equals
(
StoreMoveType
.
OutStore
))
{
lblMoveEquipInfo
.
Text
=
store
.
StoreMove
.
MoveParam
.
PosInfo
.
ToStr
()+
""
;
}
else
{
lblMoveEquipInfo
.
Text
=
""
;
}
// lblMoveEquipInfo.Text = "移栽状态:" + (LineConnect.CanStartOut() ? "可出库" : "不可出库") + " " + LineConnect.LastUpdateTime.ToLongTimeString();
//忙碌状态不读取状态
if
(!
store
.
storeRunStatus
.
Equals
(
StoreRunStatus
.
Busy
))
...
...
@@ -343,7 +361,9 @@ namespace OnlineStore.ACSingleStore
{
string
selectPositionNum
=
cmbPosition
.
Text
;
LineMoveP
ktk
=
LoadPostion
();
store
.
StartOutStoreMove
(
new
InOutParam
(
new
InOutPosInfo
(
""
,
selectPositionNum
),
ktk
));
InOutPosInfo
pos
=
new
InOutPosInfo
(
""
,
selectPositionNum
);
pos
.
ShelfType
=
rdbLeft
.
Checked
?
1
:
2
;
store
.
StartOutStoreMove
(
new
InOutParam
(
pos
,
ktk
));
}
else
{
...
...
@@ -357,7 +377,9 @@ namespace OnlineStore.ACSingleStore
{
string
selectPositionNum
=
cmbPosition
.
Text
;
LineMoveP
ktk
=
LoadPostion
();
store
.
StartInStoreMove
(
new
InOutParam
(
new
InOutPosInfo
(
""
,
selectPositionNum
),
ktk
));
InOutPosInfo
pos
=
new
InOutPosInfo
(
""
,
selectPositionNum
);
pos
.
ShelfType
=
rdbLeft
.
Checked
?
1
:
2
;
store
.
StartInStoreMove
(
new
InOutParam
(
pos
,
ktk
));
}
else
{
...
...
@@ -789,11 +811,14 @@ namespace OnlineStore.ACSingleStore
int
currIndex
=
cmbPosition
.
SelectedIndex
;
store
.
autoPositionIndex
=
currIndex
;
store
.
AutoStartIndex
=
currIndex
;
store
.
autoShelfType
=
rdbLeft
.
Checked
?
1
:
2
;
string
poText
=
cmbPosition
.
Text
;
store
.
autoMsg
=
"自动出库:"
+
poText
;
LogUtil
.
info
(
LOGGER
,
store
.
StoreName
+
"开启自动出入库模式,开始位置【"
+
poText
+
"】(索引="
+
currIndex
+
"),间隔="
+
jiange
+
",入库开始!"
);
//store.StartOutStoreMove(new InOutStoreParam("", poText));
store
.
StartInStoreMove
(
new
InOutParam
(
new
InOutPosInfo
(
"AUTOINOUT"
,
poText
)));
InOutPosInfo
pos
=
new
InOutPosInfo
(
"AUTOINOUT"
,
poText
);
pos
.
ShelfType
=
store
.
autoShelfType
;
store
.
StartInStoreMove
(
new
InOutParam
(
pos
));
}
btnStartAuTo
.
Text
=
"停止自动出入库"
;
}
...
...
@@ -867,10 +892,7 @@ namespace OnlineStore.ACSingleStore
LogUtil
.
info
(
"料仓运转ON完成"
);
}
private
void
打开舱门
ToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
OpenDoor
(
false
);
}
private
void
料仓运转
OFFToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
{
...
...
@@ -878,11 +900,7 @@ namespace OnlineStore.ACSingleStore
LogUtil
.
info
(
"料仓运转OFF完成"
);
}
private
void
关闭仓门
ToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
{
StoreManager
.
Store
.
CloseDoor
(
false
);
}
private
void
回待机点
ToolStripMenuItem_Click
(
object
sender
,
EventArgs
e
)
{
if
(
store
.
storeRunStatus
>=
StoreRunStatus
.
HomeMoving
)
...
...
@@ -1070,34 +1088,50 @@ namespace OnlineStore.ACSingleStore
ExitApp
();
}
}
private
void
UpdateBtnEn
(
)
{
string
port
=
cmbHumpPort
.
Text
;
if
(
HumitureController
.
IsRun
(
port
))
{
btnTempInit
.
Enabled
=
false
;
btnTempClose
.
Enabled
=
true
;
}
else
{
btnTempInit
.
Enabled
=
true
;
btnTempClose
.
Enabled
=
false
;
}
}
private
void
btnTempInit_Click
(
object
sender
,
EventArgs
e
)
{
string
port
=
txtTempPort
.
Text
.
ToString
();
if
(
HumitureController
.
IsRun
)
string
port
=
cmbHumpPort
.
Text
.
ToString
();
if
(
HumitureController
.
IsRun
(
port
))
{
HumitureController
.
Release
(
port
);
}
bool
result
=
HumitureController
.
Init
(
port
);
if
(!
result
)
{
HumitureController
.
Release
(
);
MessageBox
.
Show
(
"初始化 "
+
port
+
" 失败"
);
}
HumitureController
.
Init
(
port
);
UpdateBtnEn
(
);
}
private
void
btnTempClose_Click
(
object
sender
,
EventArgs
e
)
{
HumitureController
.
Release
();
string
port
=
cmbHumpPort
.
Text
.
ToString
();
HumitureController
.
Release
(
port
);
UpdateBtnEn
();
}
private
void
btnSelTemp_Click
(
object
sender
,
EventArgs
e
)
{
ASTemperateParam
param
=
HumitureController
.
QueryData
();
ASTemperateParam
param
=
HumitureController
.
QueryData
(
cmbHumpPort
.
Text
);
txtTemp
.
Text
=
param
.
Temperate
.
ToString
();
txtHum
.
Text
=
param
.
Humidity
.
ToString
();
}
private
void
btnOpenDoor_Click
(
object
sender
,
EventArgs
e
)
{
//IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.HIGH);
//IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.LOW);
StoreManager
.
Store
.
OpenDoor
(
false
);
}
private
void
btnClearL_Click
(
object
sender
,
EventArgs
e
)
{
...
...
@@ -1134,16 +1168,7 @@ namespace OnlineStore.ACSingleStore
{
DebugStatus
(
false
);
}
}
private
void
btnCloseDoor_Click
(
object
sender
,
EventArgs
e
)
{
//IOManager.IOMove(IO_Type.Door_Up, IO_VALUE.LOW);
//IOManager.IOMove(IO_Type.Door_Down, IO_VALUE.HIGH);
StoreManager
.
Store
.
CloseDoor
(
false
);
}
}
private
void
chbDebug_CheckedChanged
(
object
sender
,
EventArgs
e
)
{
...
...
@@ -1201,5 +1226,22 @@ namespace OnlineStore.ACSingleStore
{
LogUtil
.
UpdateLogbox
();
}
private
void
cmbHumpPort_SelectedIndexChanged
(
object
sender
,
EventArgs
e
)
{
string
port
=
cmbHumpPort
.
Text
;
if
(
HumitureController
.
IsRun
(
port
))
{
btnTempInit
.
Enabled
=
false
;
btnTempClose
.
Enabled
=
true
;
}
else
{
btnTempInit
.
Enabled
=
true
;
btnTempClose
.
Enabled
=
false
;
}
}
}
}
source/Common/Setting_Init.cs
查看文件 @
a3b477f
...
...
@@ -99,7 +99,7 @@ namespace OnlineStore.Common
public
static
string
Tool_TargetSpeed
=
"Tool_TargetSpeed"
;
public
static
string
Tool_TargetPosition
=
"Tool_TargetPosition"
;
public
static
string
UseDoor
=
"UseDoor"
;
}
}
source/Common/util/HumitureController.cs
查看文件 @
a3b477f
...
...
@@ -15,93 +15,143 @@ namespace OnlineStore.Common
public
class
HumitureController
{
public
static
readonly
ILog
LOGGER
=
LogManager
.
GetLogger
(
MethodBase
.
GetCurrentMethod
().
DeclaringType
);
public
static
bool
IsRun
=
false
;
public
static
string
serialPort
=
""
;
//
public static bool IsRun = false;
//
public static string serialPort = "";
private
static
int
bautRate
=
4800
;
//波特率
private
static
Parity
parity
=
Parity
.
None
;
//校验位
private
static
int
dataBits
=
8
;
//数据位
private
static
StopBits
stopBits
=
StopBits
.
One
;
//停止位
private
static
AcSerialBean
sb
=
null
;
private
static
Dictionary
<
string
,
AcSerialBean
>
SerialMap
=
new
Dictionary
<
string
,
AcSerialBean
>
()
;
private
static
string
LogName
=
""
;
public
static
int
HumitureControllerType
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
HumitureControllerType
);
public
static
bool
Init
(
string
port
)
private
static
AcSerialBean
GetSerialBean
(
string
port
)
{
if
(
IsRun
&&
port
.
Equals
(
serialP
ort
))
if
(
SerialMap
.
ContainsKey
(
p
ort
))
{
return
true
;
return
SerialMap
[
port
]
;
}
else
if
(
IsRun
)
return
null
;
}
public
static
void
OpenAll
(
string
[]
ports
)
{
foreach
(
string
port
in
ports
)
{
Release
(
);
Init
(
port
);
}
}
public
static
bool
Init
(
string
port
)
{
if
(
SerialMap
.
ContainsKey
(
port
))
{
return
true
;
}
LogName
=
"温湿度传感器["
+
port
+
"]"
;
if
(
sb
==
null
)
if
(
HumitureControllerType
.
Equals
(
1
)
)
{
serialPort
=
port
;
if
(
HumitureControllerType
.
Equals
(
1
))
{
bautRate
=
9600
;
//波特率
}
sb
=
new
AcSerialBean
(
serialPort
,
bautRate
,
parity
,
dataBits
,
stopBits
);
bautRate
=
9600
;
//波特率
}
AcSerialBean
sb
=
new
AcSerialBean
(
port
,
bautRate
,
parity
,
dataBits
,
stopBits
);
try
{
if
(
sb
.
openPort
())
{
IsRun
=
true
;
if
(
SerialMap
.
ContainsKey
(
port
))
{
SerialMap
.
Remove
(
port
);
}
SerialMap
.
Add
(
port
,
sb
);
return
true
;
}
else
{
LogUtil
.
error
(
LOGGER
,
LogName
+
"串口打开失败!"
);
IsRun
=
false
;
LogUtil
.
error
(
LOGGER
,
LogName
+
"串口打开失败!"
);
return
false
;
}
}
catch
(
Exception
ex
)
{
IsRun
=
false
;
{
}
return
true
;
}
public
static
bool
IsRun
(
string
port
)
{
if
(
GetSerialBean
(
port
)
!=
null
)
{
return
true
;
}
return
false
;
}
/// <summary>
/// 释放资源
/// </summary>
public
static
void
Release
()
public
static
void
Release
(
params
string
[]
ports
)
{
if
(
sb
!=
null
)
if
(
ports
.
Length
<=
0
)
{
sb
.
closePort
();
ports
=
(
new
List
<
string
>(
SerialMap
.
Keys
)).
ToArray
();
}
foreach
(
string
port
in
ports
)
{
try
{
AcSerialBean
sb
=
GetSerialBean
(
port
);
if
(
sb
!=
null
)
{
sb
.
closePort
();
}
//IsRun = false;
SerialMap
.
Remove
(
port
);
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"Release Humiture port ["
+
port
+
"] error :"
+
ex
.
ToString
());
}
}
IsRun
=
false
;
}
public
static
ASTemperateParam
LastData
=
new
ASTemperateParam
(
0
,
0
);
public
static
ASTemperateParam
QueryData
()
public
static
ASTemperateParam
QueryData
(
params
string
[]
portList
)
{
ASTemperateParam
param
=
new
ASTemperateParam
(
0
,
0
);
List
<
double
>
data
=
queryData
();
if
(
data
.
Count
.
Equals
(
2
))
if
(
portList
.
Length
<=
0
)
{
p
aram
=
new
ASTemperateParam
(
data
[
1
],
data
[
0
]
);
p
ortList
=
(
new
List
<
string
>(
SerialMap
.
Keys
)
).
ToArray
(
);
}
LastData
=
param
;
return
param
;
double
wendu
=
0
;
double
shidu
=
0
;
int
count
=
0
;
foreach
(
string
port
in
portList
)
{
ASTemperateParam
param
=
new
ASTemperateParam
(
0
,
0
);
List
<
double
>
data
=
queryData
(
port
);
if
(
data
.
Count
.
Equals
(
2
))
{
wendu
+=
data
[
1
];
shidu
+=
data
[
0
];
count
++;
param
=
new
ASTemperateParam
(
data
[
1
],
data
[
0
]);
}
}
LastData
=
new
ASTemperateParam
(
wendu
/
count
,
shidu
/
count
);
return
LastData
;
}
/// <summary>
/// 返回温度和湿度
/// </summary>
/// <returns></returns>
private
static
List
<
double
>
queryData
()
private
static
List
<
double
>
queryData
(
string
port
)
{
// 温度计算:
//当温度低于 0 ℃ 时温度数据以补码的形式上传。
//温度:FF9B H(十六进制)= -101 => 温度 = -10.1℃
//湿度计算:
//湿度:292 H(十六进制) = 658 => 湿度 = 65.8 % RH
if
(
IsRun
.
Equals
(
false
))
// if (IsRun.Equals(false))
AcSerialBean
sb
=
GetSerialBean
(
port
);
if
(
sb
==
null
)
{
return
new
List
<
double
>();
}
...
...
@@ -131,9 +181,14 @@ namespace OnlineStore.Common
}
public
static
int
QueryHistoryCount
()
public
static
int
QueryHistoryCount
(
string
port
)
{
if
(
IsRun
.
Equals
(
false
)
||
HumitureControllerType
.
Equals
(
2
).
Equals
(
false
))
AcSerialBean
sb
=
GetSerialBean
(
port
);
if
(
sb
==
null
)
{
return
-
1
;
}
if
(
HumitureControllerType
.
Equals
(
2
).
Equals
(
false
))
{
return
-
1
;
}
...
...
@@ -165,9 +220,14 @@ namespace OnlineStore.Common
sb
.
SendCommand
(
sendData
,
ref
reviceData
,
100
,
out
isOk
);
return
getReviceIntData
(
reviceData
);
}
public
static
int
QueryCurrCount
()
public
static
int
QueryCurrCount
(
string
port
)
{
if
(
IsRun
.
Equals
(
false
)
||
HumitureControllerType
.
Equals
(
2
).
Equals
(
false
))
AcSerialBean
sb
=
GetSerialBean
(
port
);
if
(
sb
==
null
)
{
return
-
1
;
}
if
(
HumitureControllerType
.
Equals
(
2
).
Equals
(
false
))
{
return
-
1
;
}
...
...
@@ -188,10 +248,15 @@ namespace OnlineStore.Common
sb
.
SendCommand
(
sendData
,
ref
reviceData
,
100
,
out
isOk
);
return
getReviceIntData
(
reviceData
);
}
public
static
List
<
object
>
QueryHistory
()
public
static
List
<
object
>
QueryHistory
(
string
port
)
{
List
<
object
>
list
=
new
List
<
object
>();
if
(
IsRun
.
Equals
(
false
)||
HumitureControllerType
.
Equals
(
2
).
Equals
(
false
))
AcSerialBean
sb
=
GetSerialBean
(
port
);
if
(
sb
==
null
)
{
return
list
;
}
if
(
HumitureControllerType
.
Equals
(
2
).
Equals
(
false
))
{
return
list
;
}
...
...
source/DeviceLibrary/StoreConfig/StoreConfig.csv
查看文件 @
a3b477f
...
...
@@ -4,38 +4,38 @@ PRO,模块对应的DO数量,IO_DOLength,192.168.201.21#16,,,,,,,
PRO,是否有仓门,HasDoor,1,,,,,,,
PRO,IO模块IP,PRO_AOI_IP_1,192.168.201.21,,,,,,,
,,,,,,,,,,
DI,急停,SuddenStop_BTN,0,PRO_AOI_IP_1,0,急停,X1-1,A1,0,
DI,
开机,Start_BTN,1,PRO_AOI_IP_1,0,开机,X1-
2,A2,0,
DI,复位,Reset_BTN,2,PRO_AOI_IP_1,0,复位,X1-3,A3,0,
DI,前门门禁信号,DoorLimit_L,3,PRO_AOI_IP_1,0,前门门禁信号,X1-4,A4,0,
DI,后门门禁信号,DoorLimit_B,4,PRO_AOI_IP_1,0,后门门禁信号,X1-5,A5,0,
DI,左取料口门开关信号,LeftDoor_Close,5,PRO_AOI_IP_1,0,左取料口门开关信号,X1-6,A6,0,
DI,右取料口门开关信号,RightDoor_Close,6,PRO_AOI_IP_1,0,右取料口门开关信号,X1-7,A7,0,
DI,
出料下托架前进(左),LeftShelf_Forward,7,PRO_AOI_IP_1,0,出料下托架前进(左),X1-
8,A8,0,
DI,
出料下托架后退(左),LeftShelf_Back,8,PRO_AOI_IP_1,0,出料下托架后退(左),X2-
1,A10,0,
DI,
出料下托架前进(右),RightShelf_Forward,9,PRO_AOI_IP_1,0,出料下托架前进(右),X2-
2,A11,0,
DI,
出料下托架后退(右),RightShelf_Back,10,PRO_AOI_IP_1,0,出料下托架后退(右),X2-
3,A12,0,
DI,货叉物料检测开关,TrayCheck_Fixture,11,PRO_AOI_IP_1,0,货叉物料检测开关,X2-4,A13,0,
DI,空气压力检测信号,Airpressure_Check,12,PRO_AOI_IP_1,0,空气压力检测信号,X2-5,A14,0,
DI,托架物料检测(左),LeftShelf_Check,13,PRO_AOI_IP_1,0,托架物料检测(左),X2-6,A15,0,
DI,托架物料检测(右),RightShelf_Check,14,PRO_AOI_IP_1,0,托架物料检测(右),X2-7,A16,0,
,,,15,PRO_AOI_IP_1,0,,X2-8,A17,0,
DO,
信号灯绿色开机,AutoRun_HddLed,0,PRO_AOI_IP_1,0,信号灯绿色开机,Y1-
1,B1,,
DO,
信号灯红色停止,Alarm_HddLed,1,PRO_AOI_IP_1,0,信号灯红色停止,Y1-
2,B2,,
DO,
信号灯黄色故障,RunSign_HddLed,2,PRO_AOI_IP_1,0,信号灯黄色故障,Y1-
3,B3,,
DO,
翁鸣器,Alarm_Buzzer,3,PRO_AOI_IP_1,0,翁鸣器,Y1-
4,B4,,
DO,
出口电机前进(左),LeftShelf_Forward,4,PRO_AOI_IP_1,0,出口电机前进(左),Y1-
5,B5,,
DO,
出口电机后退(左),LeftShelf_Back,5,PRO_AOI_IP_1,0,出口电机后退(左),Y1-
6,B6,,
DO,
入口电机前进(右),RightShelf_Forward,6,PRO_AOI_IP_1,0,入口电机前进(右),Y1-
7,B7,,
DO,
入口电机后退(右),RightShelf_Back,7,PRO_AOI_IP_1,0,入口电机后退(右),Y1-
8,B8,,
DO,
锁门气缸(左),LeftDoor_Close,8,PRO_AOI_IP_1,0,锁门气缸(左),Y2-
1,B10,,
DO,
锁门气缸(右),RightDoor_Close,9,PRO_AOI_IP_1,0,锁门气缸(右),Y2-
2,B11,,
DO,
使能,Run_Signal,10,PRO_AOI_IP_1,0,使能,Y2-
3,B12,,
DO,
刹车,Axis_Brake,11,PRO_AOI_IP_1,0,刹车,Y2-
4,B13,,
DO,温湿度喷气电磁阀,StartOrStopBlow,12,PRO_AOI_IP_1,0,温湿度喷气电磁阀,Y2-5,B14,,
,,,13,PRO_AOI_IP_1,0,,Y2-6,B15,,
,,,14,PRO_AOI_IP_1,0,,Y2-7,B16,,
,,,15,PRO_AOI_IP_1,0,,Y2-8,B17,,
DI,急停,SuddenStop_BTN,0,PRO_AOI_IP_1,0,急停,X1-
0
1,A1,0,
DI,
启动,Start_BTN,1,PRO_AOI_IP_1,0,启动,X1-0
2,A2,0,
DI,复位,Reset_BTN,2,PRO_AOI_IP_1,0,复位,X1-
0
3,A3,0,
DI,前门门禁信号,DoorLimit_L,3,PRO_AOI_IP_1,0,前门门禁信号,X1-
0
4,A4,0,
DI,后门门禁信号,DoorLimit_B,4,PRO_AOI_IP_1,0,后门门禁信号,X1-
0
5,A5,0,
DI,左取料口门开关信号,LeftDoor_Close,5,PRO_AOI_IP_1,0,左取料口门开关信号,X1-
0
6,A6,0,
DI,右取料口门开关信号,RightDoor_Close,6,PRO_AOI_IP_1,0,右取料口门开关信号,X1-
0
7,A7,0,
DI,
左侧出料下托架前进端,LeftShelf_Forward,7,PRO_AOI_IP_1,0,左侧出料下托架前进端,X1-0
8,A8,0,
DI,
左侧出料下托架后退端,LeftShelf_Back,8,PRO_AOI_IP_1,0,左侧出料下托架后退端,X2-0
1,A10,0,
DI,
右侧出料下托架前进端,RightShelf_Forward,9,PRO_AOI_IP_1,0,右侧出料下托架前进端,X2-0
2,A11,0,
DI,
右侧出料下托架后退端,RightShelf_Back,10,PRO_AOI_IP_1,0,右侧出料下托架后退端,X2-0
3,A12,0,
DI,货叉物料检测开关,TrayCheck_Fixture,11,PRO_AOI_IP_1,0,货叉物料检测开关,X2-
0
4,A13,0,
DI,空气压力检测信号,Airpressure_Check,12,PRO_AOI_IP_1,0,空气压力检测信号,X2-
0
5,A14,0,
DI,托架物料检测(左),LeftShelf_Check,13,PRO_AOI_IP_1,0,托架物料检测(左),X2-
0
6,A15,0,
DI,托架物料检测(右),RightShelf_Check,14,PRO_AOI_IP_1,0,托架物料检测(右),X2-
0
7,A16,0,
,,,15,PRO_AOI_IP_1,0,,X2-
0
8,A17,0,
DO,
运行指示灯,AutoRun_HddLed,0,PRO_AOI_IP_1,0,运行指示灯,Y1-0
1,B1,,
DO,
故障指示灯,Alarm_HddLed,1,PRO_AOI_IP_1,0,故障指示灯,Y1-0
2,B2,,
DO,
待机指示灯,RunSign_HddLed,2,PRO_AOI_IP_1,0,待机指示灯,Y1-0
3,B3,,
DO,
蜂鸣器,Alarm_Buzzer,3,PRO_AOI_IP_1,0,蜂鸣器,Y1-0
4,B4,,
DO,
左侧出料下托架电机前进,LeftShelf_Forward,4,PRO_AOI_IP_1,0,左侧出料下托架电机前进,Y1-0
5,B5,,
DO,
左侧出料下托架电机后退,LeftShelf_Back,5,PRO_AOI_IP_1,0,左侧出料下托架电机后退,Y1-0
6,B6,,
DO,
右侧出料下托架电机前进,RightShelf_Forward,6,PRO_AOI_IP_1,0,右侧出料下托架电机前进,Y1-0
7,B7,,
DO,
右侧出料下托架电机后退,RightShelf_Back,7,PRO_AOI_IP_1,0,右侧出料下托架电机后退,Y1-0
8,B8,,
DO,
左侧门锁气缸,LeftDoor_Close,8,PRO_AOI_IP_1,0,左侧门锁气缸,Y2-0
1,B10,,
DO,
右侧门锁气缸,RightDoor_Close,9,PRO_AOI_IP_1,0,右侧门锁气缸,Y2-0
2,B11,,
DO,
伺服运转ON,Run_Signal,10,PRO_AOI_IP_1,0,伺服运转ON,Y2-0
3,B12,,
DO,
Z轴伺服刹车ON,Axis_Brake,11,PRO_AOI_IP_1,0,Z轴伺服刹车ON,Y2-0
4,B13,,
DO,温湿度喷气电磁阀,StartOrStopBlow,12,PRO_AOI_IP_1,0,温湿度喷气电磁阀,Y2-
0
5,B14,,
,,,13,PRO_AOI_IP_1,0,,Y2-
0
6,B15,,
,,,14,PRO_AOI_IP_1,0,,Y2-
0
7,B16,,
,,,15,PRO_AOI_IP_1,0,,Y2-
0
8,B17,,
AXIS,(Y轴-前后轴) ,Middle_Axis,1,COM3,0,,,,,
AXIS,(Z轴-升降轴),UpDown_Axis,2,COM3,0,,,,,
AXIS,(X轴-进出轴),InOut_Axis,3,COM3,0,,,,,
...
...
@@ -108,6 +108,6 @@ PRO,需要吹气的温度(温度标准),Max_Temperature,0,,,,,,,
PRO,需要吹气的湿度(湿度标准),Max_Humidity,10,,,,,,,
PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,,
PRO,两次吹气间隔(分钟),BlowAir_Interval,10,,,,,,,
PRO,温湿度端口号
,Humiture_Port,COM1
,,,,,,,
PRO,温湿度端口号
(分号分隔),Humiture_Port,COM2;COM3;COM4
,,,,,,,
,,,,,,,,, ,
,,,,,,,,, ,
source/DeviceLibrary/acSquareStore/ShelfDoorBean.cs
0 → 100644
查看文件 @
a3b477f
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
System.Threading
;
using
System.Threading.Tasks
;
namespace
OnlineStore.DeviceLibrary.acSquareStore
{
public
class
ShelfDoorBean
{
public
bool
IsRun
=
false
;
private
string
LastMoveDO
=
""
;
private
string
LastCheckDI
=
""
;
internal
DateTime
LastEndTime
=
DateTime
.
Now
;
public
ShelfDoorBean
(
)
{
}
public
void
Stop
()
{
if
(
IsRun
)
{
IsRun
=
false
;
}
}
private
bool
Start
(
string
moveDO
,
string
checkDI
,
int
timeOutMS
=
30000
)
{
if
(
IsRun
)
{
LogUtil
.
error
(
"启动["
+
moveDO
+
"] ["
+
checkDI
+
"] 失败"
);
return
false
;
}
IsRun
=
true
;
Task
.
Factory
.
StartNew
(
delegate
{
WriteAndWait
(
moveDO
,
checkDI
,
timeOutMS
);
});
return
true
;
}
private
string
WriteAndWait
(
string
moveDO
,
string
checkDI
,
int
timeOutMS
=
30000
)
{
LastMoveDO
=
moveDO
;
LastCheckDI
=
checkDI
;
LogUtil
.
debug
(
"写入信号:"
+
moveDO
+
",等待信号:"
+
checkDI
+
""
);
//if (moveDO.Equals(IO_Type.EntranceDoor_Open))
//{
// IOManager.IOMove(IO_Type.EntranceDoor_Close, IO_VALUE.LOW );
//}
//else
//{
// IOManager.IOMove(IO_Type.EntranceDoor_Open, IO_VALUE.LOW );
//}
IOManager
.
IOMove
(
moveDO
,
IO_VALUE
.
HIGH
);
Thread
.
Sleep
(
50
);
IsRun
=
true
;
DateTime
startTime
=
DateTime
.
Now
;
string
result
=
""
;
bool
isStop
=
false
;
while
(
true
)
{
Thread
.
Sleep
(
50
);
TimeSpan
span
=
DateTime
.
Now
-
startTime
;
if
(!
IsRun
)
{
isStop
=
true
;
result
=
"手动停止"
;
}
else
if
(
span
.
TotalMilliseconds
>
timeOutMS
)
{
isStop
=
true
;
result
=
"转动超时"
;
}
//判断Buzy及位置是否结束
else
if
(
IOManager
.
IOValue
(
checkDI
).
Equals
(
IO_VALUE
.
HIGH
))
{
isStop
=
true
;
}
if
(
isStop
)
{
if
(
result
.
Equals
(
""
))
{
LogUtil
.
info
(
"停止运动:"
+
result
+
" ["
+
moveDO
+
"] ["
+
checkDI
+
"] "
);
}
else
{
LogUtil
.
info
(
"["
+
moveDO
+
"] ["
+
checkDI
+
"] 停止运动:"
+
result
+
" "
+
moveDO
);
}
LastEndTime
=
DateTime
.
Now
;
IOManager
.
IOMove
(
moveDO
,
IO_VALUE
.
LOW
);
IsRun
=
false
;
return
result
;
}
}
}
public
bool
StartOpen
(
StoreMoveInfo
moveInfo
)
{
//bool UseDoor = ConfigAppSettings.GetIntValue(Setting_Init.UseDoor).Equals(1);
//if (!UseDoor)
//{
// return false;
//}
////如果门已打开直接返回
//if (IOManager.IOValue(IO_Type.EntranceDoor_Open ).Equals(IO_VALUE.HIGH) &&
// IOManager.IOValue(IO_Type.EntranceDoor_Close ).Equals(IO_VALUE.LOW))
//{
// return true;
//}
//if (moveInfo != null)
//{
// moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.LeftDoor_Close, IO_VALUE.HIGH));
// moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.EntranceDoor_Close, IO_VALUE.LOW));
//}
//return Start(IO_Type.EntranceDoor_Open, IO_Type.EntranceDoor_Open);
return
false
;
}
public
bool
StartClose
(
StoreMoveInfo
moveInfo
)
{
//bool UseDoor = ConfigAppSettings.GetIntValue(Setting_Init.UseDoor).Equals(1);
//if (!UseDoor)
//{
// return false;
//}
////如果门已关闭直接返回
//if (IOManager.IOValue(IO_Type.EntranceDoor_Close ).Equals(IO_VALUE.HIGH) &&
// IOManager.IOValue(IO_Type.EntranceDoor_Open ).Equals(IO_VALUE.LOW))
//{
// return true;
//}
//if (moveInfo != null)
//{
// moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.EntranceDoor_Close, IO_VALUE.HIGH));
// moveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.EntranceDoor_Open, IO_VALUE.LOW));
//}
//return Start(IO_Type.EntranceDoor_Close, IO_Type.EntranceDoor_Close);
return
false
;
}
}
}
source/DeviceLibrary/acSquareStore/Square_BoxBean.cs
查看文件 @
a3b477f
此文件的差异被折叠,
点击展开。
source/DeviceLibrary/acSquareStore/Square_BoxBean_Partial.cs
查看文件 @
a3b477f
此文件的差异被折叠,
点击展开。
source/DeviceLibrary/store/InOutParam.cs
查看文件 @
a3b477f
...
...
@@ -23,7 +23,7 @@ namespace OnlineStore.DeviceLibrary
MoveP
=
null
;
}
public
InOutParam
(
InOutPosInfo
inoutInfo
,
LineMoveP
linePosition
=
null
)
public
InOutParam
(
InOutPosInfo
inoutInfo
,
LineMoveP
linePosition
=
null
)
{
ACStoreP
=
null
;
;
MoveP
=
linePosition
;
...
...
@@ -90,7 +90,7 @@ namespace OnlineStore.DeviceLibrary
public
string
ToStr
()
{
return
" barcode["
+
barcode
+
"],PosId ["
+
PosId
+
"]
,plateW ["
+
PlateW
+
"],plateH ["
+
PlateH
+
"],ShelfLR
["
+
ShelfType
+
"]"
;
return
" barcode["
+
barcode
+
"],PosId ["
+
PosId
+
"]
["
+
PlateW
+
"X"
+
PlateH
+
"]
["
+
ShelfType
+
"]"
;
}
}
...
...
source/DeviceLibrary/store/StoreStep.cs
查看文件 @
a3b477f
...
...
@@ -179,14 +179,14 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
///料仓出库,,定位气缸下降
/// </summary>
SO_01_LocationCylinderDown
=
101
,
//
SO_01_LocationCylinderDown=101,
/// <summary>
///料仓出库:叉子先运动到P1
/// </summary>
SO_02_DeviceBack
=
102
,
/// <summary>
/// 料仓出库,,
所有轴运行到库位, 轴4( 压紧) 至P3(压紧前点) ,轴1( 转盘) 至P2( 库位点),轴2(上下) 至P5(库位出库前点
)
/// 料仓出库,,
前后轴至P2(库位点),升降轴至P5(库位出库前点) ,托架后退
)
/// </summary>
SO_03_ToBagPosition
=
103
,
/// <summary>
...
...
@@ -207,7 +207,7 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 料仓出库,定位气缸伸出(有压紧轴的不需要此步骤),,定位气缸伸出 Y103-1/PCI5O1-83) Y103-2/PCI5O1-90) Y103-3/PCI5O1-95) 伸出到位
/// </summary>
SO_07_LocationCylinder_Up
=
107
,
//
SO_07_LocationCylinder_Up = 107,
/// <summary>
/// 料仓出库,,所有设备运行到门,,轴1( 转盘) 至P1( 待机点)轴2( 上下) 至P2( 进料口出料前点)
...
...
@@ -217,11 +217,11 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 料仓出库,定位气缸退回(有压紧轴的不需要此步骤),,定位气缸退回(Y104-1/PCI5O1-84) (Y104-2/PCI5O1-91) (Y104-2/PCI5O1-96) 退回到位
/// </summary>
SO_09_LocationCylinder_Down
=
109
,
//
SO_09_LocationCylinder_Down = 109,
/// <summary>
/// 等待门口无料盘
/// </summary>
SO_09
1
_WaitNoTray
=
115
,
SO_09_WaitNoTray
=
115
,
/// <summary>
/// 料仓出库,,叉子进出料口,,轴3( 叉子) 至P2( 进料口取料点)
...
...
@@ -252,28 +252,28 @@ namespace OnlineStore.DeviceLibrary
/// 入库检测
/// </summary>
SI_00_TrayCheck
=
200
,
///// <summary>
///// 入库,。定位气缸下降
///// </summary>
//SI_01_LocationCylinderDown=201,
/// <summary>
/// 入库,。定位气缸下降
/// </summary>
SI_01_LocationCylinderDown
=
201
,
/// <summary>
/// 入库。。进出轴(叉子)先返回P1
/// 入库。。进出轴(叉子)先返回P1,关闭门锁
/// </summary>
SI_02_InOutAxisHome
=
202
,
/// <summary>
/// 入库。。所有轴先回到待机点,轴2、轴1 动作到P1,
,轴4动作至P3
/// 入库。。所有轴先回到待机点,轴2、轴1 动作到P1,
托架后退
/// </summary>
SI_03_ReturnHome
=
203
,
/// <summary>
/// 入库。。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点)
/// </summary>
SI_04_CompressWare
=
204
,
///
//
<summary>
///
//
入库。。压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P3(压紧前点)
///
//
</summary>
//
SI_04_CompressWare = 204,
/// <summary>
/// 入库。。叉子进入入料口,轴3( 叉子) 至P2( 进料口取料点)
/// </summary>
SI_05_DeviceToDoor
=
205
,
/// <summary>
/// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点)
,压紧物品(有压紧轴的才需要此步骤),轴4( 压紧) 至P2(压紧点)
/// 入库。。把物品放入叉子上,轴2( 上下) 至P7( 进料口取料缓冲点)
/// </summary>
SI_06_DoorWarToDevice
=
206
,
...
...
@@ -281,10 +281,10 @@ namespace OnlineStore.DeviceLibrary
/// 入库。。叉子 从入料口抽出,轴3( 叉子) 至P1( 待机点)
/// </summary>
SI_07_DeviceBackFromDoor
=
207
,
/// <summary>
/// 入库。。,定位气缸伸出 (有压紧轴的不需要此步骤)
/// </summary>
SI_08_LocationCylinder_Up
=
208
,
///
//
<summary>
///
//
入库。。,定位气缸伸出 (有压紧轴的不需要此步骤)
///
//
</summary>
//
SI_08_LocationCylinder_Up = 208,
/// <summary>
/// 入库。。移动到库位点,轴1( 转盘) 至P2( 库位点)轴2(上下) 至P3(库位入库前点)
/// </summary>
...
...
@@ -292,13 +292,13 @@ namespace OnlineStore.DeviceLibrary
/// <summary>
/// 入库。。定位气缸退回 (有压紧轴的不需要此步骤)
/// </summary>
SI_10_LocationCylinder_Down
=
210
,
//
SI_10_LocationCylinder_Down = 210,
/// <summary>
/// 入库。。叉子进入库位中,
轴3( 叉子) 至P3
(库位取放料点)
/// 入库。。叉子进入库位中,
进出轴至P4
(库位取放料点)
/// </summary>
SI_11_DeviceToBag
=
211
,
/// <summary>
/// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)
轴4( 压紧) 至P3( 压紧前点)
/// 入库。。放下物品,轴2( 上下) 至P4( 库位入料缓冲点)
/// </summary>
SI_12_PutWareToBag
=
212
,
/// <summary>
...
...
source/LoadCVSLibrary/storeConfig/config/Box_Config.cs
查看文件 @
a3b477f
...
...
@@ -507,7 +507,20 @@ namespace OnlineStore.LoadCSVLibrary
Config
.
UpDown_Axis
.
DefaultPosition
=
Config
.
UpDownAxis_DoorO_P1
;
}
private
List
<
string
>
HumpPortList
=
null
;
public
List
<
string
>
GetHumpPortList
()
{
if
(
HumpPortList
==
null
)
{
HumpPortList
=
new
List
<
string
>();
string
[]
arrayList
=
Humiture_Port
.
Split
(
';'
);
foreach
(
string
str
in
arrayList
)
{
HumpPortList
.
Add
(
str
.
Trim
().
ToUpper
());
}
}
return
HumpPortList
;
}
private
Dictionary
<
string
,
ushort
>
DILengthMap
=
null
;
private
Dictionary
<
string
,
ushort
>
DOLengthMap
=
null
;
public
ushort
GetDILength
(
string
ip
)
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论