Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
ACSingleStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 3aae39eb
由
LN
编写于
2019-07-19 11:59:48 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
伺服波特率改为可配置
1 个父辈
46106a0a
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
180 行增加
和
170 行删除
source/ACSingleStore/App.config
source/ACSingleStore/FrmAxisDebug.cs
source/Common/Setting_Init.cs
source/DeviceLibrary/PanasonicServo/ACCMDManager.cs
source/DeviceLibrary/PanasonicServo/ACServerManager.cs
source/DeviceLibrary/PanasonicServo/ACServerManager_Partial.cs
source/DeviceLibrary/acSingleStore/AC_SA_BoxBean.cs
source/ACSingleStore/App.config
查看文件 @
3aae39e
...
@@ -22,8 +22,8 @@
...
@@ -22,8 +22,8 @@
<
add
key
=
"Store_Type"
value
=
"RC_AC_SA"
/>
<
add
key
=
"Store_Type"
value
=
"RC_AC_SA"
/>
<
add
key
=
"Store_CID"
value
=
"rc1246ac-1"
/>
<
add
key
=
"Store_CID"
value
=
"rc1246ac-1"
/>
<
add
key
=
"Store_ID"
value
=
"1"
/>
<
add
key
=
"Store_ID"
value
=
"1"
/>
<!--
end
one
store
config
-->
<!--
end
one
store
config
-->
<
add
key
=
"ACBaudRate"
value
=
"115200"
/>
<
add
key
=
"InOutDefaultPosition"
value
=
"8000"
/>
<
add
key
=
"InOutDefaultPosition"
value
=
"8000"
/>
<
add
key
=
"Config_Pwd"
value
=
"123456"
/>
<
add
key
=
"Config_Pwd"
value
=
"123456"
/>
<!--出库等待料盘拿走的时间,秒-->
<!--出库等待料盘拿走的时间,秒-->
...
...
source/ACSingleStore/FrmAxisDebug.cs
查看文件 @
3aae39e
...
@@ -257,10 +257,7 @@ namespace OnlineStore.ACSingleStore
...
@@ -257,10 +257,7 @@ namespace OnlineStore.ACSingleStore
return
;
return
;
}
}
this
.
btnComMove
.
BackColor
=
Color
.
Green
;
this
.
btnComMove
.
BackColor
=
Color
.
Green
;
AxisMove
(
comp
,
speed
);
AxisMove
(
comp
,
speed
);
//ShuoKeControls.SetSpeed(compress_Slv, ShuoKeCMD.SetEndSpeed, speed);
//ShuoKeControls.SetSpeed(compress_Slv, ShuoKeCMD.SetMaxSpeed, speed);
//ShuoKeControls.VolMove(compress_Slv, speed);
}
}
}
}
...
@@ -268,11 +265,8 @@ namespace OnlineStore.ACSingleStore
...
@@ -268,11 +265,8 @@ namespace OnlineStore.ACSingleStore
{
{
if
(
this
.
btnComMove
.
BackColor
==
Color
.
Green
)
if
(
this
.
btnComMove
.
BackColor
==
Color
.
Green
)
{
{
btnComMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
btnComMove
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
//ShuoKeControls.SuddownStop(compress_Slv);
ACServerManager
.
SuddenStop
(
comp
.
DeviceName
,
comp
.
GetAxisValue
());
//ShuoKeControls.GetABSPosition(compress_Slv);
ACServerManager
.
SuddenStop
(
comp
);
UpdateCompPosition
();
UpdateCompPosition
();
}
}
}
}
...
@@ -284,10 +278,7 @@ namespace OnlineStore.ACSingleStore
...
@@ -284,10 +278,7 @@ namespace OnlineStore.ACSingleStore
MessageBox
.
Show
(
"提示"
,
"请先输入正确的速度"
);
MessageBox
.
Show
(
"提示"
,
"请先输入正确的速度"
);
return
;
return
;
}
}
this
.
btnComMovej
.
BackColor
=
Color
.
Green
;
this
.
btnComMovej
.
BackColor
=
Color
.
Green
;
//ShuoKeControls.SetSpeed(compress_Slv, ShuoKeCMD.SetEndSpeed, speed);
//ShuoKeControls.SetSpeed(compress_Slv, ShuoKeCMD.SetMaxSpeed, speed);
//ShuoKeControls.VolMove(compress_Slv,-speed);
AxisMove
(
comp
,
-
speed
);
AxisMove
(
comp
,
-
speed
);
}
}
...
@@ -295,11 +286,8 @@ namespace OnlineStore.ACSingleStore
...
@@ -295,11 +286,8 @@ namespace OnlineStore.ACSingleStore
{
{
if
(
btnComMovej
.
BackColor
.
Equals
(
Color
.
Green
))
if
(
btnComMovej
.
BackColor
.
Equals
(
Color
.
Green
))
{
{
btnComMovej
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
btnComMovej
.
BackColor
=
System
.
Drawing
.
SystemColors
.
Control
;
//ShuoKeControls.SuddownStop(compress_Slv);
ACServerManager
.
SuddenStop
(
comp
.
DeviceName
,
comp
.
GetAxisValue
());
//txtComPosition.Text = ShuoKeControls.GetABSPosition(compress_Slv).ToString();
ACServerManager
.
SuddenStop
(
comp
);
UpdateCompPosition
();
UpdateCompPosition
();
}
}
}
}
...
...
source/Common/Setting_Init.cs
查看文件 @
3aae39e
...
@@ -88,5 +88,7 @@ namespace OnlineStore.Common
...
@@ -88,5 +88,7 @@ namespace OnlineStore.Common
/// 是否调试状态
/// 是否调试状态
/// </summary>
/// </summary>
public
static
string
IsInDebug
=
"IsInDebug"
;
public
static
string
IsInDebug
=
"IsInDebug"
;
public
static
string
ACBaudRate
=
"ACBaudRate"
;
}
}
}
}
source/DeviceLibrary/PanasonicServo/ACCMDManager.cs
查看文件 @
3aae39e
...
@@ -11,8 +11,17 @@ namespace OnlineStore.DeviceLibrary
...
@@ -11,8 +11,17 @@ namespace OnlineStore.DeviceLibrary
/// 0132h 原点接近传感器输入 (HOME) 状态 ReadOnly 0: 输入 OFF 1: 输入 ON
/// 0132h 原点接近传感器输入 (HOME) 状态 ReadOnly 0: 输入 OFF 1: 输入 ON
/// </summary>
/// </summary>
public
static
string
Home_Single
=
"0132"
;
public
static
string
Home_Single
=
"0132"
;
// 0022h 负方向驱动禁止输入(NOT) ReadOnly 0: 输入 OFF、 1: 输入 ON
//
// 0023h 正方向驱动禁止输入(POT) ReadOnly 0: 输入 OFF、 1: 输入 ON
//
/// <summary>
/// 0022h 负方向驱动禁止输入(NOT) ReadOnly 0: 输入 OFF、 1: 输入 ON
/// </summary>
public
static
string
Limit_Negative_Single
=
"0022"
;
/// <summary>
/// 0023h 正方向驱动禁止输入(POT) ReadOnly 0: 输入 OFF、 1: 输入 ON
/// </summary>
public
static
string
Limit_Positive_Single
=
"0023"
;
/// <summary>
/// <summary>
///速度 4601
///速度 4601
/// </summary>
/// </summary>
...
@@ -320,6 +329,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -320,6 +329,7 @@ namespace OnlineStore.DeviceLibrary
//sendData[4] = dataByte[1];
//sendData[4] = dataByte[1];
//sendData[5] = dataByte[0];
//sendData[5] = dataByte[0];
}
}
sendData
=
buildCheckData
(
sendData
,
sendData
.
Length
-
2
);
sendData
=
buildCheckData
(
sendData
,
sendData
.
Length
-
2
);
...
...
source/DeviceLibrary/PanasonicServo/ACServerManager.cs
查看文件 @
3aae39e
using
OnlineStore.Common
;
using
OnlineStore.Common
;
using
OnlineStore.LoadCSVLibrary
;
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.IO.Ports
;
using
System.IO.Ports
;
using
System.Linq
;
using
System.Linq
;
using
System.Text
;
using
System.Text
;
using
System.Threading
;
using
System.Threading
;
namespace
OnlineStore.DeviceLibrary
namespace
OnlineStore.DeviceLibrary
{
{
...
@@ -14,8 +15,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -14,8 +15,8 @@ namespace OnlineStore.DeviceLibrary
public
partial
class
ACServerManager
public
partial
class
ACServerManager
{
{
public
static
bool
IsShowMsg
=
false
;
public
static
bool
IsShowMsg
=
false
;
private
static
int
SleepMSendons
=
10
0
;
private
static
int
SleepMSendons
=
2
0
;
private
static
int
ReviceOutTimeMS
=
100
;
private
static
Dictionary
<
string
,
Dictionary
<
string
,
int
>>
ComAddrValue
=
new
Dictionary
<
string
,
Dictionary
<
string
,
int
>>();
private
static
Dictionary
<
string
,
Dictionary
<
string
,
int
>>
ComAddrValue
=
new
Dictionary
<
string
,
Dictionary
<
string
,
int
>>();
private
static
string
mapObj
=
""
;
private
static
string
mapObj
=
""
;
...
@@ -77,16 +78,21 @@ namespace OnlineStore.DeviceLibrary
...
@@ -77,16 +78,21 @@ namespace OnlineStore.DeviceLibrary
{
{
if
(
serialBeanMap
.
ContainsKey
(
portName
))
if
(
serialBeanMap
.
ContainsKey
(
portName
))
{
{
return
true
;
return
true
;
}
}
AcSerialBean
bean
=
new
AcSerialBean
(
portName
,
9600
,
Parity
.
Even
,
8
,
StopBits
.
One
);
int
ACBaudRate
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
ACBaudRate
);
if
(
ACBaudRate
<=
0
)
{
ACBaudRate
=
9600
;
}
AcSerialBean
bean
=
new
AcSerialBean
(
portName
,
ACBaudRate
,
Parity
.
Even
,
8
,
StopBits
.
One
);
bool
result
=
bean
.
openPort
();
bool
result
=
bean
.
openPort
();
if
(!
result
)
if
(!
result
)
{
{
LogUtil
.
info
(
"打开串口【"
+
portName
+
"】失败"
);
LogUtil
.
info
(
"打开串口【"
+
portName
+
"】
【"
+
ACBaudRate
+
"】
失败"
);
return
false
;
return
false
;
}
}
LogUtil
.
info
(
"打开串口【"
+
portName
+
"】成功"
);
LogUtil
.
info
(
"打开串口【"
+
portName
+
"】
【"
+
ACBaudRate
+
"】
成功"
);
//bean.DataReceived += DataReceived;
//bean.DataReceived += DataReceived;
if
(
serialBeanMap
.
ContainsKey
(
portName
))
if
(
serialBeanMap
.
ContainsKey
(
portName
))
...
@@ -114,8 +120,19 @@ namespace OnlineStore.DeviceLibrary
...
@@ -114,8 +120,19 @@ namespace OnlineStore.DeviceLibrary
{
{
serialBeanMap
.
Remove
(
portName
);
serialBeanMap
.
Remove
(
portName
);
}
}
LogUtil
.
info
(
"ACServerManager 关闭串口【"
+
portName
+
"】 "
);
}
}
public
static
void
CloseAllPort
()
{
List
<
string
>
kes
=
new
List
<
string
>(
serialBeanMap
.
Keys
);
foreach
(
string
key
in
kes
)
{
ColsePort
(
key
);
}
}
/// <summary>
/// <summary>
/// 是否成功打开伺服
/// 是否成功打开伺服
/// </summary>
/// </summary>
...
@@ -128,7 +145,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -128,7 +145,7 @@ namespace OnlineStore.DeviceLibrary
PreReadCoilAddr
=
ACCMDManager
.
ServerOn_Addr
;
PreReadCoilAddr
=
ACCMDManager
.
ServerOn_Addr
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
PreReadCoilAddr
,
"0000"
,
1
);
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
PreReadCoilAddr
,
"0000"
,
1
);
//SendData(portName,dataArray);
//SendData(portName,dataArray);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
100
,
6
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
6
);
int
result
=
GetCoilData
(
portName
,
reviceData
,
PreReadCoilAddr
);
int
result
=
GetCoilData
(
portName
,
reviceData
,
PreReadCoilAddr
);
//TODO
//TODO
return
result
>=
1
;
return
result
>=
1
;
...
@@ -152,7 +169,6 @@ namespace OnlineStore.DeviceLibrary
...
@@ -152,7 +169,6 @@ namespace OnlineStore.DeviceLibrary
//把数字转换为四位的字符串
//把数字转换为四位的字符串
public
static
string
SpeedToStr
(
int
speed
,
int
length
)
public
static
string
SpeedToStr
(
int
speed
,
int
length
)
{
{
speed
=
Math
.
Abs
(
speed
);
string
str
=
String
.
Format
(
"{0:X}"
,
speed
);
string
str
=
String
.
Format
(
"{0:X}"
,
speed
);
return
str
.
PadLeft
(
length
,
'0'
);
return
str
.
PadLeft
(
length
,
'0'
);
}
}
...
@@ -206,7 +222,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -206,7 +222,7 @@ namespace OnlineStore.DeviceLibrary
//SendStrAndSleep(portName, slvAddrStr + "06 4638 " + SpeedToStr(homeLowSpeed, 4) + " ffff", sleep);
//SendStrAndSleep(portName, slvAddrStr + "06 4638 " + SpeedToStr(homeLowSpeed, 4) + " ffff", sleep);
////原点返回加速度=30
////原点返回加速度=30
//SendStrAndSleep(portName, slvAddrStr + "06 4639 " + SpeedToStr(homeAddSpeed, 4) + " ffff", sleep);
//SendStrAndSleep(portName, slvAddrStr + "06 4639 " + SpeedToStr(homeAddSpeed, 4) + " ffff", sleep);
UpdateEEPROM
(
portName
,
slvAddr
);
//
UpdateEEPROM(portName, slvAddr);
}
}
public
static
void
UpdateEEPROM
(
string
portName
,
int
slvAddr
)
public
static
void
UpdateEEPROM
(
string
portName
,
int
slvAddr
)
{
{
...
@@ -286,8 +302,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -286,8 +302,7 @@ namespace OnlineStore.DeviceLibrary
data
=
ACCMDManager
.
buildCheckData
(
data
,
data
.
Length
-
2
);
data
=
ACCMDManager
.
buildCheckData
(
data
,
data
.
Length
-
2
);
SendData
(
portName
,
data
);
SendData
(
portName
,
data
);
System
.
Threading
.
Thread
.
Sleep
(
SleepMSendons
);
System
.
Threading
.
Thread
.
Sleep
(
SleepMSendons
);
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_RelMove
);
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_RelMove
);
OpenAndCloseSTB
(
portName
,
slvAddr
);
OpenAndCloseSTB
(
portName
,
slvAddr
);
}
}
...
@@ -302,8 +317,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -302,8 +317,8 @@ namespace OnlineStore.DeviceLibrary
int
isHomeEnd
=
GetHomeEndStatus
(
portName
,
slvAddr
);
int
isHomeEnd
=
GetHomeEndStatus
(
portName
,
slvAddr
);
if
(
isHomeEnd
.
Equals
(
1
))
if
(
isHomeEnd
.
Equals
(
1
))
{
{
int
value
=
2000
;
int
value
=
2000
;
LogUtil
.
info
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】原点返回时发现原点已亮且回过原点,需要先相对走"
+
value
);
LogUtil
.
info
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】原点返回时发现原点已亮且回过原点,需要先相对走"
+
value
);
RelMove
(
portName
,
slvAddr
,
value
);
RelMove
(
portName
,
slvAddr
,
value
);
bool
isStop
=
false
;
bool
isStop
=
false
;
for
(
int
i
=
0
;
i
<=
10
;
i
++)
for
(
int
i
=
0
;
i
<=
10
;
i
++)
...
@@ -312,53 +327,55 @@ namespace OnlineStore.DeviceLibrary
...
@@ -312,53 +327,55 @@ namespace OnlineStore.DeviceLibrary
if
(
GetBusyStatus
(
portName
,
slvAddr
).
Equals
(
0
))
if
(
GetBusyStatus
(
portName
,
slvAddr
).
Equals
(
0
))
{
{
isStop
=
true
;
isStop
=
true
;
LogUtil
.
info
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】相对走"
+
value
+
"已结束"
);
LogUtil
.
info
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】
相对走"
+
value
+
"已结束"
);
break
;
break
;
}
}
}
}
if
(!
isStop
)
if
(!
isStop
)
{
{
LogUtil
.
info
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】相对走"
+
value
+
"已等待2分钟,直接停止"
);
LogUtil
.
info
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】
相对走"
+
value
+
"已等待2分钟,直接停止"
);
SuddenStop
(
portName
,
slvAddr
);
SuddenStop
(
portName
,
slvAddr
);
}
}
}
}
else
else
{
{
int
volSpeed
=
Math
.
Abs
(
speed
/
5
);
int
volSpeed
=
Math
.
Abs
(
speed
/
5
);
int
time
=
1500
;
int
time
=
1500
;
LogUtil
.
info
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】原点返回时发现原点已亮但未回过原点,先匀速向上走"
+
time
+
",速度["
+
volSpeed
+
"]"
);
LogUtil
.
info
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】原点返回时发现原点已亮但未回过原点,先匀速向上走"
+
time
+
",速度["
+
volSpeed
+
"]"
);
//需要匀速向上走
//需要匀速向上走
ACServerManager
.
SpeedMove
(
portName
,
slvAddr
,
volSpeed
);
ACServerManager
.
SpeedMove
(
portName
,
slvAddr
,
volSpeed
);
Thread
.
Sleep
(
time
);
Thread
.
Sleep
(
time
);
LogUtil
.
info
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】匀速 已等待"
+
time
+
",直接停止"
);
LogUtil
.
info
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】匀速 已等待"
+
time
+
",直接停止"
);
SuddenStop
(
portName
,
slvAddr
);
SuddenStop
(
portName
,
slvAddr
);
Thread
.
Sleep
(
100
);
Thread
.
Sleep
(
SleepMSendons
);
}
}
}
}
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
LogUtil
.
error
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】原点返回前验证是否在原点出错:"
+
ex
.
StackTrace
);
LogUtil
.
error
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】原点返回前验证是否在原点出错:"
+
ex
.
StackTrace
);
}
}
//默认负方向原点返回
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_HomeMove1
);
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_HomeMove1
);
LogUtil
.
debug
(
"回原点:反方向"
);
//}
Thread
.
Sleep
(
SleepMSendons
);
Thread
.
Sleep
(
SleepMSendons
);
OpenAndCloseSTB
(
portName
,
slvAddr
);
OpenAndCloseSTB
(
portName
,
slvAddr
);
}
}
public
static
void
SetSpeed
(
string
portName
,
int
slvAddr
,
int
speed
)
public
static
void
SpeedMove
(
string
portName
,
int
slvAddr
,
int
speed
)
{
{
int
preSpeed
=
GetAddrValue
(
portName
,
slvAddr
,
ACCMDManager
.
Speed_Addr
);
int
preSpeed
=
GetAddrValue
(
portName
,
slvAddr
,
ACCMDManager
.
Speed_Addr
);
if
((
preSpeed
.
Equals
(-
1
))
||
(!
preSpeed
.
Equals
(
Math
.
Abs
(
speed
))))
if
((
preSpeed
.
Equals
(-
1
))
||
(!
preSpeed
.
Equals
(
Math
.
Abs
(
speed
))))
{
{
string
v1
=
slvAddr
+
"064601 "
+
ACServerManager
.
SpeedToStr
(
speed
,
4
)
+
" ffff"
;
string
v1
=
slvAddr
+
"064601 "
+
ACServerManager
.
SpeedToStr
(
speed
,
4
)
+
" ffff"
;
LogUtil
.
debug
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】更新速度为【"
+
speed
+
"】,发送数据【"
+
v1
+
"】"
);
LogUtil
.
debug
(
"轴【"
+
portName
+
"_"
+
slvAddr
+
"】更新速度为【"
+
speed
+
"】,发送数据【"
+
v1
+
"】"
);
SendStrAndSleep
(
portName
,
v1
,
SleepMSendons
);
SendStrAndSleep
(
portName
,
v1
,
SleepMSendons
);
UpdateAddrValue
(
portName
,
slvAddr
,
ACCMDManager
.
Speed_Addr
,
Math
.
Abs
(
speed
));
UpdateAddrValue
(
portName
,
slvAddr
,
ACCMDManager
.
Speed_Addr
,
Math
.
Abs
(
speed
));
Thread
.
Sleep
(
SleepMSendons
);
Thread
.
Sleep
(
SleepMSendons
);
}
}
}
public
static
void
SpeedMove
(
string
portName
,
int
slvAddr
,
int
speed
)
{
SetSpeed
(
portName
,
slvAddr
,
speed
);
if
(
speed
>
0
)
if
(
speed
>
0
)
{
{
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_VolMove0
);
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_VolMove0
);
...
@@ -370,6 +387,21 @@ namespace OnlineStore.DeviceLibrary
...
@@ -370,6 +387,21 @@ namespace OnlineStore.DeviceLibrary
//Thread.Sleep(SleepMSendons);
//Thread.Sleep(SleepMSendons);
OpenAndCloseSTB
(
portName
,
slvAddr
);
OpenAndCloseSTB
(
portName
,
slvAddr
);
}
}
public
static
bool
isInPosition
(
ConfigMoveAxis
Axis
,
int
PPosition
)
{
int
outCount
=
ACServerManager
.
GetActualtPosition
(
Axis
.
DeviceName
,
Axis
.
GetAxisValue
());
int
errorCount
=
Math
.
Abs
(
outCount
-
PPosition
);
if
(
errorCount
<=
Axis
.
CanErrorCountMin
)
{
return
true
;
}
else
{
return
false
;
}
}
public
static
void
AbsMove
(
string
portName
,
int
slvAddr
,
int
targetPosition
,
int
targetSpeed
)
public
static
void
AbsMove
(
string
portName
,
int
slvAddr
,
int
targetPosition
,
int
targetSpeed
)
{
{
//先更新速度
//先更新速度
...
@@ -381,7 +413,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -381,7 +413,7 @@ namespace OnlineStore.DeviceLibrary
//速度 V1 =100
//速度 V1 =100
string
v1
=
slvAddrStr
+
"064601 "
+
SpeedToStr
(
targetSpeed
,
4
)
+
" ffff"
;
string
v1
=
slvAddrStr
+
"064601 "
+
SpeedToStr
(
targetSpeed
,
4
)
+
" ffff"
;
SendStrAndSleep
(
portName
,
v1
,
SleepMSendons
);
SendStrAndSleep
(
portName
,
v1
,
SleepMSendons
);
UpdateAddrValue
(
portName
,
slvAddr
,
ACCMDManager
.
Speed_Addr
,
targetSpeed
);
UpdateAddrValue
(
portName
,
slvAddr
,
ACCMDManager
.
Speed_Addr
,
targetSpeed
);
}
}
//绝对运动
//绝对运动
AbsMove
(
portName
,
slvAddr
,
targetPosition
);
AbsMove
(
portName
,
slvAddr
,
targetPosition
);
...
@@ -426,7 +458,10 @@ namespace OnlineStore.DeviceLibrary
...
@@ -426,7 +458,10 @@ namespace OnlineStore.DeviceLibrary
data
=
ACCMDManager
.
buildCheckData
(
data
,
data
.
Length
-
2
);
data
=
ACCMDManager
.
buildCheckData
(
data
,
data
.
Length
-
2
);
SendData
(
portName
,
data
);
SendData
(
portName
,
data
);
Thread
.
Sleep
(
SleepMSendons
);
Thread
.
Sleep
(
SleepMSendons
);
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_AbsMove
);
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_AbsMove
);
//data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, ACCMDManager.BlockNo, ACCMDManager.Block_AbsMove, 2);
//SendData(portName, data);
//Thread.Sleep(SleepMSendons);
OpenAndCloseSTB
(
portName
,
slvAddr
);
OpenAndCloseSTB
(
portName
,
slvAddr
);
}
}
}
}
...
...
source/DeviceLibrary/PanasonicServo/ACServerManager_Partial.cs
查看文件 @
3aae39e
...
@@ -77,7 +77,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -77,7 +77,7 @@ namespace OnlineStore.DeviceLibrary
return
;
return
;
}
}
byte
[]
returnData
=
SendCommand
(
portName
,
data
,
50
,
reviceLength
);
byte
[]
returnData
=
SendCommand
(
portName
,
data
,
ReviceOutTimeMS
,
reviceLength
);
string
strSend
=
""
;
string
strSend
=
""
;
for
(
int
i
=
0
;
i
<
returnData
.
Length
;
i
++)
for
(
int
i
=
0
;
i
<
returnData
.
Length
;
i
++)
{
{
...
@@ -94,7 +94,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -94,7 +94,7 @@ namespace OnlineStore.DeviceLibrary
{
{
return
;
return
;
}
}
byte
[]
returnData
=
SendCommand
(
portName
,
data
,
50
,
8
);
byte
[]
returnData
=
SendCommand
(
portName
,
data
,
ReviceOutTimeMS
,
8
);
if
(
returnData
!=
null
)
if
(
returnData
!=
null
)
{
{
string
strSend
=
""
;
string
strSend
=
""
;
...
@@ -116,9 +116,9 @@ namespace OnlineStore.DeviceLibrary
...
@@ -116,9 +116,9 @@ namespace OnlineStore.DeviceLibrary
/// <returns>返回值的长度</returns>
/// <returns>返回值的长度</returns>
public
static
byte
[]
SendCommand
(
string
portName
,
byte
[]
data
,
int
outTime
,
int
reviceLength
)
public
static
byte
[]
SendCommand
(
string
portName
,
byte
[]
data
,
int
outTime
,
int
reviceLength
)
{
{
if
(
outTime
>
8
0
)
if
(
outTime
<
10
0
)
{
{
outTime
=
8
0
;
outTime
=
10
0
;
}
}
byte
[]
returnData
=
null
;
byte
[]
returnData
=
null
;
...
@@ -148,7 +148,11 @@ namespace OnlineStore.DeviceLibrary
...
@@ -148,7 +148,11 @@ namespace OnlineStore.DeviceLibrary
}
}
else
else
{
{
bean
.
SendCommand
(
data
,
ref
returnData
,
outTime
,
reviceLength
);
int
ret
=
bean
.
SendCommand
(
data
,
ref
returnData
,
outTime
,
reviceLength
);
if
(!
ret
.
Equals
(
reviceLength
))
{
LogUtil
.
error
(
"串口"
+
portName
+
" 写入数据:"
+
strSend
+
",预计返回字节数【"
+
reviceLength
+
"】实际返回【"
+
ret
+
"】"
);
}
System
.
Threading
.
Thread
.
Sleep
(
2
);
System
.
Threading
.
Thread
.
Sleep
(
2
);
}
}
}
}
...
@@ -190,9 +194,12 @@ namespace OnlineStore.DeviceLibrary
...
@@ -190,9 +194,12 @@ namespace OnlineStore.DeviceLibrary
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteCoil
,
addr
,
data
,
length
);
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteCoil
,
addr
,
data
,
length
);
SendData
(
portName
,
dataArray
);
SendData
(
portName
,
dataArray
);
}
}
public
static
void
SuddenStop
(
ConfigMoveAxis
moveA
xis
)
public
static
void
SuddenStop
(
ConfigMoveAxis
a
xis
)
{
{
SuddenStop
(
moveAxis
.
DeviceName
,
moveAxis
.
GetAxisValue
());
if
(
GetBusyStatus
(
axis
.
DeviceName
,
axis
.
GetAxisValue
()).
Equals
(
1
))
{
SuddenStop
(
axis
.
DeviceName
,
axis
.
GetAxisValue
());
}
}
}
public
static
void
SuddenStop
(
string
portName
,
int
slvAddr
)
public
static
void
SuddenStop
(
string
portName
,
int
slvAddr
)
{
{
...
@@ -204,19 +211,18 @@ namespace OnlineStore.DeviceLibrary
...
@@ -204,19 +211,18 @@ namespace OnlineStore.DeviceLibrary
int
length
=
2
;
int
length
=
2
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteCoil
,
addr
,
data
,
length
);
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteCoil
,
addr
,
data
,
length
);
SendData
(
portName
,
dataArray
);
SendData
(
portName
,
dataArray
);
System
.
Threading
.
Thread
.
Sleep
(
10
00
);
System
.
Threading
.
Thread
.
Sleep
(
5
00
);
data
=
"0000"
;
data
=
"0000"
;
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteCoil
,
addr
,
data
,
length
);
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteCoil
,
addr
,
data
,
length
);
SendData
(
portName
,
dataArray
);
SendData
(
portName
,
dataArray
);
}
}
public
static
void
OpenAndCloseSTB
(
string
portName
,
int
slvAddr
)
public
static
void
OpenAndCloseSTB
(
string
portName
,
int
slvAddr
)
{
{
OnlyOpenSTB
(
portName
,
slvAddr
);
OnlyOpenSTB
(
portName
,
slvAddr
);
System
.
Threading
.
Thread
.
Sleep
(
1
00
);
System
.
Threading
.
Thread
.
Sleep
(
2
00
);
CloseSTB
(
portName
,
slvAddr
);
CloseSTB
(
portName
,
slvAddr
);
System
.
Threading
.
Thread
.
Sleep
(
100
);
System
.
Threading
.
Thread
.
Sleep
(
SleepMSendons
);
}
}
public
static
void
OnlyOpenSTB
(
string
portName
,
int
slvAddr
)
public
static
void
OnlyOpenSTB
(
string
portName
,
int
slvAddr
)
...
@@ -238,13 +244,13 @@ namespace OnlineStore.DeviceLibrary
...
@@ -238,13 +244,13 @@ namespace OnlineStore.DeviceLibrary
public
static
void
UpdateBlock
(
string
portName
,
int
slvAddr
,
string
blockNum
)
public
static
void
UpdateBlock
(
string
portName
,
int
slvAddr
,
string
blockNum
)
{
{
int
preNum
=
GetAddrValue
(
portName
,
slvAddr
,
ACCMDManager
.
BlockNo
);
int
preNum
=
GetAddrValue
(
portName
,
slvAddr
,
ACCMDManager
.
BlockNo
);
if
(
preNum
.
Equals
(-
1
)
||
(!
preNum
.
ToString
().
Equals
(
blockNum
)))
if
(
preNum
.
Equals
(-
1
)
||
(!
preNum
.
ToString
().
Equals
(
blockNum
)))
{
{
byte
[]
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
ACCMDManager
.
BlockNo
,
blockNum
,
2
);
byte
[]
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
ACCMDManager
.
BlockNo
,
blockNum
,
2
);
SendData
(
portName
,
data
);
SendData
(
portName
,
data
);
int
value
=
Convert
.
ToInt16
(
blockNum
);
int
value
=
Convert
.
ToInt16
(
blockNum
);
UpdateAddrValue
(
portName
,
slvAddr
,
ACCMDManager
.
BlockNo
,
value
);
UpdateAddrValue
(
portName
,
slvAddr
,
ACCMDManager
.
BlockNo
,
value
);
Thread
.
Sleep
(
SleepMSendons
);
Thread
.
Sleep
(
SleepMSendons
);
}
}
}
}
...
@@ -257,7 +263,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -257,7 +263,7 @@ namespace OnlineStore.DeviceLibrary
int
length
=
2
;
int
length
=
2
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteCoil
,
addr
,
data
,
length
);
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteCoil
,
addr
,
data
,
length
);
SendData
(
portName
,
dataArray
);
SendData
(
portName
,
dataArray
);
System
.
Threading
.
Thread
.
Sleep
(
1
00
);
System
.
Threading
.
Thread
.
Sleep
(
2
00
);
data
=
"0000"
;
data
=
"0000"
;
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteCoil
,
addr
,
data
,
length
);
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteCoil
,
addr
,
data
,
length
);
SendData
(
portName
,
dataArray
);
SendData
(
portName
,
dataArray
);
...
@@ -308,18 +314,35 @@ namespace OnlineStore.DeviceLibrary
...
@@ -308,18 +314,35 @@ namespace OnlineStore.DeviceLibrary
PreReadAddr
=
ACCMDManager
.
TargetPostion
;
PreReadAddr
=
ACCMDManager
.
TargetPostion
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadRegisters
,
ACCMDManager
.
TargetPostion
,
"0000"
,
2
);
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadRegisters
,
ACCMDManager
.
TargetPostion
,
"0000"
,
2
);
// SendData(portName,dataArray);
// SendData(portName,dataArray);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
100
,
9
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
9
);
return
GetRegisterData
(
portName
,
reviceData
,
ACCMDManager
.
TargetPostion
);
return
GetRegisterData
(
portName
,
reviceData
,
ACCMDManager
.
TargetPostion
);
}
}
public
static
int
GetActualtPosition
(
ConfigMoveAxis
axis
)
{
return
GetActualtPosition
(
axis
.
DeviceName
,
axis
.
GetAxisValue
());
}
public
static
int
GetActualtPosition
(
string
portName
,
int
slvAddr
)
public
static
int
GetActualtPosition
(
string
portName
,
int
slvAddr
)
{
{
PreReadAddr
=
ACCMDManager
.
ActualPosition
;
PreReadAddr
=
ACCMDManager
.
ActualPosition
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadRegisters
,
ACCMDManager
.
ActualPosition
,
"0000"
,
2
);
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadRegisters
,
ACCMDManager
.
ActualPosition
,
"0000"
,
2
);
// SendData(portName,dataArray);
// SendData(portName,dataArray);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
100
,
9
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
9
);
return
GetRegisterData
(
portName
,
reviceData
,
ACCMDManager
.
ActualPosition
);
int
result
=
-
1
;
for
(
int
i
=
1
;
i
<=
3
;
i
++)
{
result
=
GetRegisterData
(
portName
,
reviceData
,
ACCMDManager
.
ActualPosition
);
if
(!
result
.
Equals
(-
1
))
{
break
;
}
else
{
LogUtil
.
error
(
"第"
+
i
+
"次获取"
+
portName
+
"_"
+
slvAddr
+
"的实时位置"
+
result
);
}
}
return
result
;
}
}
public
static
int
GetCoilData
(
string
portName
,
byte
[]
reviceData
,
string
Address
)
public
static
int
GetCoilData
(
string
portName
,
byte
[]
reviceData
,
string
Address
)
...
@@ -356,7 +379,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -356,7 +379,7 @@ namespace OnlineStore.DeviceLibrary
PreReadCoilAddr
=
ACCMDManager
.
Alarm_Status
;
PreReadCoilAddr
=
ACCMDManager
.
Alarm_Status
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
PreReadCoilAddr
,
"0000"
,
1
);
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
PreReadCoilAddr
,
"0000"
,
1
);
//SendData(portName,dataArray);
//SendData(portName,dataArray);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
100
,
6
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
6
);
return
GetCoilData
(
portName
,
reviceData
,
PreReadCoilAddr
);
return
GetCoilData
(
portName
,
reviceData
,
PreReadCoilAddr
);
}
}
...
@@ -365,7 +388,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -365,7 +388,7 @@ namespace OnlineStore.DeviceLibrary
PreReadCoilAddr
=
ACCMDManager
.
BUSYStatus
;
PreReadCoilAddr
=
ACCMDManager
.
BUSYStatus
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
BUSYStatus
,
"0000"
,
1
);
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
BUSYStatus
,
"0000"
,
1
);
//SendData(portName,dataArray);
//SendData(portName,dataArray);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
100
,
6
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
6
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
BUSYStatus
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
BUSYStatus
);
}
}
...
@@ -374,7 +397,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -374,7 +397,7 @@ namespace OnlineStore.DeviceLibrary
PreReadCoilAddr
=
ACCMDManager
.
HOME_CMP_Status
;
PreReadCoilAddr
=
ACCMDManager
.
HOME_CMP_Status
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
HOME_CMP_Status
,
"0000"
,
1
);
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
HOME_CMP_Status
,
"0000"
,
1
);
//SendData(portName,dataArray);
//SendData(portName,dataArray);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
100
,
6
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
6
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
HOME_CMP_Status
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
HOME_CMP_Status
);
}
}
...
@@ -382,10 +405,43 @@ namespace OnlineStore.DeviceLibrary
...
@@ -382,10 +405,43 @@ namespace OnlineStore.DeviceLibrary
{
{
PreReadCoilAddr
=
ACCMDManager
.
Home_Single
;
PreReadCoilAddr
=
ACCMDManager
.
Home_Single
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
Home_Single
,
"0000"
,
1
);
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
Home_Single
,
"0000"
,
1
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
100
,
6
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
6
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
Home_Single
);
}
/// <summary>
/// 负极限
/// </summary>
public
static
int
GetLimitNegativeSingle
(
string
portName
,
int
slvAddr
)
{
PreReadCoilAddr
=
ACCMDManager
.
Home_Single
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
Limit_Negative_Single
,
"0000"
,
1
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
6
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
Home_Single
);
}
/// <summary>
/// 负极限
/// </summary>
public
static
int
GetLimitNegativeSingle
(
ConfigMoveAxis
axis
)
{
return
GetLimitNegativeSingle
(
axis
.
DeviceName
,
axis
.
GetAxisValue
());
}
/// <summary>
/// 正极限
/// </summary>
public
static
int
GetLimitPositiveSingle
(
ConfigMoveAxis
axis
)
{
return
GetLimitPositiveSingle
(
axis
.
DeviceName
,
axis
.
GetAxisValue
());
}
/// <summary>
/// 正极限
/// </summary>
public
static
int
GetLimitPositiveSingle
(
string
portName
,
int
slvAddr
)
{
PreReadCoilAddr
=
ACCMDManager
.
Home_Single
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
Limit_Positive_Single
,
"0000"
,
1
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
6
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
Home_Single
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
Home_Single
);
}
}
}
}
/// <summary>
/// <summary>
/// 记录最后一次获得的寄存器的值
/// 记录最后一次获得的寄存器的值
...
...
source/DeviceLibrary/acSingleStore/AC_SA_BoxBean.cs
查看文件 @
3aae39e
...
@@ -1178,83 +1178,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -1178,83 +1178,8 @@ namespace OnlineStore.DeviceLibrary
}
}
#
region
datalogic
扫码枪代码
#
region
入库命令处理
private
bool
isWaitScan
=
false
;
private
DateTime
StartWaitScanTime
=
DateTime
.
Now
;
private
bool
IsNotScanCode
=
false
;
private
bool
IsScanCode
=
false
;
/// <summary>
/// 扫码枪数据接收
/// </summary>
/// <param name="message"></param>
private
void
onCodeReceived
(
string
message
)
{
try
{
message
=
ScanCodeManager
.
ReplaceCode
(
message
);
if
(
message
.
Equals
(
""
)
||
string
.
IsNullOrEmpty
(
message
))
{
IsNotScanCode
=
true
;
IsScanCode
=
false
;
CodeMsg
=
"没有收到二维码信息,请重新放入料盘"
;
LogUtil
.
info
(
LOGGER
,
StoreName
+
"没有收到二维码信息,请重新放入料盘"
);
return
;
}
IsNotScanCode
=
false
;
if
(
storeRunStatus
.
Equals
(
StoreRunStatus
.
Wait
))
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
"收到二维码【 "
+
message
+
"】,设备未启动,不需要发送服务器"
);
IsScanCode
=
false
;
return
;
}
// CodeMsg = "收到二维码【 " + message + "】,发送给服务器获取入库PosID";
LogUtil
.
info
(
LOGGER
,
StoreName
+
"收到二维码【 "
+
message
+
"】,发送给服务器获取入库PosID"
);
//发送扫码内容到服务器进行入库操作
Operation
operation
=
getLineBoxStatus
();
operation
.
op
=
1
;
operation
.
data
=
new
Dictionary
<
string
,
string
>()
{
{
"code"
,
message
},
{
"boxId"
,
StoreID
.
ToString
()
}
};
string
server
=
ConfigAppSettings
.
GetValue
(
Setting_Init
.
http_server
);
Operation
resultOperation
=
HttpHelper
.
Post
(
StoreManager
.
GetPostApi
(
server
),
operation
,
false
);
if
(
resultOperation
==
null
)
{
// CodeMsg = "二维码【" + message + "】没有收到服务器反馈";
LogUtil
.
info
(
LOGGER
,
StoreName
+
"二维码【"
+
message
+
"】没有收到服务器反馈!"
);
IsScanCode
=
false
;
return
;
}
else
if
(!
string
.
IsNullOrEmpty
(
resultOperation
.
msg
))
{
//如果有提示消息,直接显示提示
LogUtil
.
info
(
LOGGER
,
StoreName
+
"服务器反馈 二维码【"
+
message
+
"】 :"
+
resultOperation
.
msg
);
IsScanCode
=
false
;
return
;
}
IsScanCode
=
false
;
if
(
resultOperation
.
op
.
Equals
(
1
))
{
ReviceInStoreProcess
(
message
,
resultOperation
);
}
else
if
(
resultOperation
.
op
.
Equals
(
2
))
{
ReviceOutStoreProcess
(
resultOperation
);
}
else
if
(
resultOperation
.
op
.
Equals
(
5
))
{
ProcessHumidityCMD
(
resultOperation
);
}
else
{
LogUtil
.
error
(
"收到服务器命令:op="
+
resultOperation
.
op
+
",未找到对应处理"
);
}
}
catch
(
Exception
ex
)
{
IsScanCode
=
false
;
LOGGER
.
Error
(
StoreName
+
ex
.
StackTrace
);
}
}
private
void
ReviceInStoreProcess
(
string
message
,
Operation
resultOperation
)
private
void
ReviceInStoreProcess
(
string
message
,
Operation
resultOperation
)
{
{
Dictionary
<
string
,
string
>
data
=
resultOperation
.
data
;
Dictionary
<
string
,
string
>
data
=
resultOperation
.
data
;
...
@@ -1286,10 +1211,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -1286,10 +1211,8 @@ namespace OnlineStore.DeviceLibrary
}
}
//TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器;
//TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器;
if
(
CanStarInOut
())
if
(
CanStarInOut
())
{
{
IsScanCode
=
false
;
InOutStoreParam
param
=
new
InOutStoreParam
(
message
,
posId
,
plateH
,
plateW
,
0
);
InOutStoreParam
param
=
new
InOutStoreParam
(
message
,
posId
,
plateH
,
plateW
,
0
);
StartInStoreMove
(
param
);
StartInStoreMove
(
param
);
//如果当前正在出入库中,需要记录下来,等待空闲时执行
//如果当前正在出入库中,需要记录下来,等待空闲时执行
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 收到服务器入库命令:库位号【"
+
posId
+
"】二维码【"
+
message
+
"】 开始入库!"
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 收到服务器入库命令:库位号【"
+
posId
+
"】二维码【"
+
message
+
"】 开始入库!"
);
...
@@ -1297,10 +1220,9 @@ namespace OnlineStore.DeviceLibrary
...
@@ -1297,10 +1220,9 @@ namespace OnlineStore.DeviceLibrary
else
else
{
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 收到服务器入库命令:库位号【"
+
posId
+
"】二维码【"
+
message
+
"】 正在忙碌中,无法入库!"
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 收到服务器入库命令:库位号【"
+
posId
+
"】二维码【"
+
message
+
"】 正在忙碌中,无法入库!"
);
IsScanCode
=
false
;
}
}
}
}
}
}
public
void
ReviceLineInStoreCMD
(
string
posId
,
string
plateH
,
string
plateW
,
string
message
)
public
void
ReviceLineInStoreCMD
(
string
posId
,
string
plateH
,
string
plateW
,
string
message
)
...
@@ -1310,24 +1232,21 @@ namespace OnlineStore.DeviceLibrary
...
@@ -1310,24 +1232,21 @@ namespace OnlineStore.DeviceLibrary
if
(
position
==
null
)
if
(
position
==
null
)
{
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因
{
//出入库没有找到服务器发送的库位,需要打印日志方便查询原因
WarnMsg
=
"入库未找到库位:二维码【"
+
message
+
"】库位【"
+
posId
+
"】 "
;
WarnMsg
=
"入库未找到库位:二维码【"
+
message
+
"】库位【"
+
posId
+
"】 "
;
LogUtil
.
error
(
LOGGER
,
"收到
服务器入库命令
:入库未找到库位:二维码【"
+
message
+
"】库位【"
+
posId
+
"】"
);
LogUtil
.
error
(
LOGGER
,
"收到
流水线入库
:入库未找到库位:二维码【"
+
message
+
"】库位【"
+
posId
+
"】"
);
LogUtil
.
info
(
LOGGER
,
"收到
服务器入库命令
:入库未找到库位:二维码【"
+
message
+
"】库位【"
+
posId
+
"】"
);
LogUtil
.
info
(
LOGGER
,
"收到
流水线入库
:入库未找到库位:二维码【"
+
message
+
"】库位【"
+
posId
+
"】"
);
return
;
return
;
}
}
//TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器;
//TODO:判断BOX是否处于可以入库状态,如果调试或急停中,需要返回给服务器;
if
(
CanStarInOut
())
if
(
CanStarInOut
())
{
{
IsScanCode
=
false
;
InOutStoreParam
param
=
new
InOutStoreParam
(
message
,
posId
,
plateH
,
plateW
,
0
);
InOutStoreParam
param
=
new
InOutStoreParam
(
message
,
posId
,
plateH
,
plateW
,
0
);
StartInStoreMove
(
param
);
StartInStoreMove
(
param
);
//如果当前正在出入库中,需要记录下来,等待空闲时执行
//如果当前正在出入库中,需要记录下来,等待空闲时执行
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 收到
服务器入库命令
:库位号【"
+
posId
+
"】二维码【"
+
message
+
"】 开始入库!"
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 收到
流水线入库
:库位号【"
+
posId
+
"】二维码【"
+
message
+
"】 开始入库!"
);
}
}
else
else
{
{
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 收到服务器入库命令:库位号【"
+
posId
+
"】二维码【"
+
message
+
"】 正在忙碌中,无法入库!"
);
LogUtil
.
info
(
LOGGER
,
StoreName
+
" 收到流水线入库:库位号【"
+
posId
+
"】二维码【"
+
message
+
"】 正在忙碌中,无法入库!"
);
IsScanCode
=
false
;
}
}
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论