Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
ACSingleStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 400de8f5
由
几米阳光
编写于
2018-05-29 16:15:13 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
自动出入库改为先入库。485通信添加缓存节省写入时间。
1 个父辈
2e110c3e
显示空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
165 行增加
和
77 行删除
source/ACServoDriveTest/FrmACTest.cs
source/ACSingleStore/FrmStoreBox.Designer.cs
source/ACSingleStore/FrmStoreBox.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/DeviceLibrary/store/KTK_Store.cs
source/ACServoDriveTest/FrmACTest.cs
查看文件 @
400de8f
...
@@ -224,7 +224,7 @@ namespace ACServoDriveTest
...
@@ -224,7 +224,7 @@ namespace ACServoDriveTest
private
void
btnUpdateBlock_Click
(
object
sender
,
EventArgs
e
)
private
void
btnUpdateBlock_Click
(
object
sender
,
EventArgs
e
)
{
{
int
num
=
Convert
.
ToInt32
(
txtNo
.
Text
);
int
num
=
Convert
.
ToInt32
(
txtNo
.
Text
);
ACServerManager
.
UpdateBlock
(
GetPortName
(),
GetSlaveAddr
(),
num
);
ACServerManager
.
UpdateBlock
(
GetPortName
(),
GetSlaveAddr
(),
num
.
ToString
()
);
}
}
private
void
button4_Click
(
object
sender
,
EventArgs
e
)
private
void
button4_Click
(
object
sender
,
EventArgs
e
)
...
...
source/ACSingleStore/FrmStoreBox.Designer.cs
查看文件 @
400de8f
...
@@ -153,6 +153,7 @@
...
@@ -153,6 +153,7 @@
this
.
groupBox6
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
groupBox6
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
btnOpenWCF
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnOpenWCF
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnCloseWCF
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnCloseWCF
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
chbAutoRead
=
new
System
.
Windows
.
Forms
.
CheckBox
();
this
.
groupBox5
.
SuspendLayout
();
this
.
groupBox5
.
SuspendLayout
();
this
.
groupBox1
.
SuspendLayout
();
this
.
groupBox1
.
SuspendLayout
();
this
.
groupBox2
.
SuspendLayout
();
this
.
groupBox2
.
SuspendLayout
();
...
@@ -180,6 +181,7 @@
...
@@ -180,6 +181,7 @@
//
//
this
.
groupBox5
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
this
.
groupBox5
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
groupBox5
.
Controls
.
Add
(
this
.
chbAutoRead
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
label16
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
label16
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
label15
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
label15
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
label14
);
this
.
groupBox5
.
Controls
.
Add
(
this
.
label14
);
...
@@ -1768,6 +1770,16 @@
...
@@ -1768,6 +1770,16 @@
this
.
btnCloseWCF
.
UseVisualStyleBackColor
=
true
;
this
.
btnCloseWCF
.
UseVisualStyleBackColor
=
true
;
this
.
btnCloseWCF
.
Click
+=
new
System
.
EventHandler
(
this
.
btnCloseWCF_Click
);
this
.
btnCloseWCF
.
Click
+=
new
System
.
EventHandler
(
this
.
btnCloseWCF_Click
);
//
//
// chbAutoRead
//
this
.
chbAutoRead
.
AutoSize
=
true
;
this
.
chbAutoRead
.
Location
=
new
System
.
Drawing
.
Point
(
47
,
165
);
this
.
chbAutoRead
.
Name
=
"chbAutoRead"
;
this
.
chbAutoRead
.
Size
=
new
System
.
Drawing
.
Size
(
99
,
21
);
this
.
chbAutoRead
.
TabIndex
=
296
;
this
.
chbAutoRead
.
Text
=
"自动读取位置"
;
this
.
chbAutoRead
.
UseVisualStyleBackColor
=
true
;
//
// FrmStoreBox
// FrmStoreBox
//
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
96F
,
96F
);
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
96F
,
96F
);
...
@@ -1935,6 +1947,7 @@
...
@@ -1935,6 +1947,7 @@
private
System
.
Windows
.
Forms
.
GroupBox
groupBox6
;
private
System
.
Windows
.
Forms
.
GroupBox
groupBox6
;
private
System
.
Windows
.
Forms
.
Button
btnOpenWCF
;
private
System
.
Windows
.
Forms
.
Button
btnOpenWCF
;
private
System
.
Windows
.
Forms
.
Button
btnCloseWCF
;
private
System
.
Windows
.
Forms
.
Button
btnCloseWCF
;
private
System
.
Windows
.
Forms
.
CheckBox
chbAutoRead
;
}
}
}
}
source/ACSingleStore/FrmStoreBox.cs
查看文件 @
400de8f
...
@@ -113,8 +113,15 @@ namespace OnlineStore.ACSingleStore
...
@@ -113,8 +113,15 @@ namespace OnlineStore.ACSingleStore
LogUtil
.
error
(
LOGGER
,
"出错:"
+
ex
.
StackTrace
);
LogUtil
.
error
(
LOGGER
,
"出错:"
+
ex
.
StackTrace
);
}
}
}
}
private
bool
preOpen
=
false
;
public
void
StoreOpenStatus
(
bool
isOpen
)
public
void
StoreOpenStatus
(
bool
isOpen
)
{
{
if
(
preOpen
.
Equals
(
isOpen
))
{
return
;
}
preOpen
=
isOpen
;
btnOutStore
.
Enabled
=
isOpen
;
btnOutStore
.
Enabled
=
isOpen
;
btnInStore
.
Enabled
=
isOpen
;
btnInStore
.
Enabled
=
isOpen
;
...
@@ -127,6 +134,7 @@ namespace OnlineStore.ACSingleStore
...
@@ -127,6 +134,7 @@ namespace OnlineStore.ACSingleStore
启动
ToolStripMenuItem
.
Enabled
=
!
isOpen
;
启动
ToolStripMenuItem
.
Enabled
=
!
isOpen
;
停止
ToolStripMenuItem
.
Enabled
=
isOpen
;
停止
ToolStripMenuItem
.
Enabled
=
isOpen
;
复位
ToolStripMenuItem
.
Enabled
=
isOpen
;
复位
ToolStripMenuItem
.
Enabled
=
isOpen
;
}
}
private
void
FrmTest_Load
(
object
sender
,
EventArgs
e
)
private
void
FrmTest_Load
(
object
sender
,
EventArgs
e
)
{
{
...
@@ -143,6 +151,8 @@ namespace OnlineStore.ACSingleStore
...
@@ -143,6 +151,8 @@ namespace OnlineStore.ACSingleStore
//忙碌状态不读取状态
//忙碌状态不读取状态
if
(!
store
.
storeRunStatus
.
Equals
(
StoreRunStatus
.
Busy
))
if
(!
store
.
storeRunStatus
.
Equals
(
StoreRunStatus
.
Busy
))
{
{
if
(
chbAutoRead
.
Checked
)
{
string
portName
=
GetPortName
();
string
portName
=
GetPortName
();
int
SlvAddr
=
GetSlaveAddr
();
int
SlvAddr
=
GetSlaveAddr
();
...
@@ -160,6 +170,7 @@ namespace OnlineStore.ACSingleStore
...
@@ -160,6 +170,7 @@ namespace OnlineStore.ACSingleStore
lblServerOn
.
Text
=
"伺服OFF"
;
lblServerOn
.
Text
=
"伺服OFF"
;
}
}
}
}
}
//ReadPosistion();
//ReadPosistion();
if
(
store
.
storeRunStatus
>
StoreRunStatus
.
Wait
)
if
(
store
.
storeRunStatus
>
StoreRunStatus
.
Wait
)
...
@@ -180,18 +191,24 @@ namespace OnlineStore.ACSingleStore
...
@@ -180,18 +191,24 @@ namespace OnlineStore.ACSingleStore
}
}
else
else
{
{
if
(
复位
ToolStripMenuItem
.
Enabled
.
Equals
(
false
))
{
复位
ToolStripMenuItem
.
Enabled
=
true
;
复位
ToolStripMenuItem
.
Enabled
=
true
;
}
}
}
}
}
else
else
{
{
if
((
store
.
storeRunStatus
.
Equals
(
StoreRunStatus
.
HomeMoving
)
||
store
.
storeRunStatus
.
Equals
(
StoreRunStatus
.
Reset
))
if
((
store
.
storeRunStatus
.
Equals
(
StoreRunStatus
.
HomeMoving
)
||
store
.
storeRunStatus
.
Equals
(
StoreRunStatus
.
Reset
))
&&
store
.
alarmType
.
Equals
(
StoreAlarmType
.
None
))
&&
store
.
alarmType
.
Equals
(
StoreAlarmType
.
None
))
{
{
if
(
启动
ToolStripMenuItem
.
Enabled
)
{
启动
ToolStripMenuItem
.
Enabled
=
false
;
启动
ToolStripMenuItem
.
Enabled
=
false
;
复位
ToolStripMenuItem
.
Enabled
=
false
;
复位
ToolStripMenuItem
.
Enabled
=
false
;
}
}
}
}
}
lblWarnMsg
.
Text
=
store
.
WarnMsg
;
lblWarnMsg
.
Text
=
store
.
WarnMsg
;
if
(
store
.
KNDIOValue
(
IO_Type
.
Left_Door_LimitSingle
).
Equals
(
IO_VALUE
.
LOW
))
if
(
store
.
KNDIOValue
(
IO_Type
.
Left_Door_LimitSingle
).
Equals
(
IO_VALUE
.
LOW
))
...
@@ -783,8 +800,9 @@ namespace OnlineStore.ACSingleStore
...
@@ -783,8 +800,9 @@ namespace OnlineStore.ACSingleStore
store
.
autoPositionIndex
=
currIndex
;
store
.
autoPositionIndex
=
currIndex
;
string
poText
=
cmbPosition
.
Text
;
string
poText
=
cmbPosition
.
Text
;
store
.
autoMsg
=
"自动出库:"
+
poText
;
store
.
autoMsg
=
"自动出库:"
+
poText
;
LogUtil
.
info
(
LOGGER
,
store
.
StoreName
+
"开启自动出入库模式,开始位置【"
+
poText
+
"】(索引="
+
currIndex
+
"),出入库间隔="
+
jiange
+
",出库开始!"
);
LogUtil
.
info
(
LOGGER
,
store
.
StoreName
+
"开启自动出入库模式,开始位置【"
+
poText
+
"】(索引="
+
currIndex
+
"),间隔="
+
jiange
+
",入库开始!"
);
store
.
StartOutStoreMove
(
new
InOutStoreParam
(
""
,
poText
));
//store.StartOutStoreMove(new InOutStoreParam("", poText));
store
.
StartInStoreMove
(
new
InOutStoreParam
(
""
,
poText
));
}
}
btnStartAuTo
.
Text
=
"停止自动出入库"
;
btnStartAuTo
.
Text
=
"停止自动出入库"
;
}
}
...
...
source/DeviceLibrary/PanasonicServo/ACCMDManager.cs
查看文件 @
400de8f
...
@@ -8,6 +8,10 @@ namespace OnlineStore.DeviceLibrary
...
@@ -8,6 +8,10 @@ namespace OnlineStore.DeviceLibrary
public
class
ACCMDManager
public
class
ACCMDManager
{
{
/// <summary>
/// <summary>
///速度 4601
/// </summary>
public
static
string
Speed_Addr
=
"4601"
;
/// <summary>
/// 0060h 伺服 On 输入 (SRV-ON) 操作 R/W 0000h:输入 OFF、FF00h:输入 ON
/// 0060h 伺服 On 输入 (SRV-ON) 操作 R/W 0000h:输入 OFF、FF00h:输入 ON
/// </summary>
/// </summary>
public
static
string
ServerOn_Addr
=
"0060"
;
public
static
string
ServerOn_Addr
=
"0060"
;
...
...
source/DeviceLibrary/PanasonicServo/ACServerManager.cs
查看文件 @
400de8f
...
@@ -15,6 +15,62 @@ namespace OnlineStore.DeviceLibrary
...
@@ -15,6 +15,62 @@ namespace OnlineStore.DeviceLibrary
{
{
private
static
bool
IsShowMsg
=
false
;
private
static
bool
IsShowMsg
=
false
;
private
static
int
SleepMSendons
=
100
;
private
static
int
SleepMSendons
=
100
;
private
static
Dictionary
<
string
,
Dictionary
<
string
,
int
>>
ComAddrValue
=
new
Dictionary
<
string
,
Dictionary
<
string
,
int
>>();
private
static
string
mapObj
=
""
;
private
static
int
GetAddrValue
(
string
portName
,
string
addr
)
{
int
value
=
-
1
;
try
{
Dictionary
<
string
,
int
>
map
=
null
;
ComAddrValue
.
TryGetValue
(
portName
,
out
map
);
if
(
map
==
null
)
{
return
-
1
;
}
if
(
map
.
ContainsKey
(
addr
))
{
return
map
[
addr
];
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"UpdateAddrValue出错:"
+
ex
.
ToString
());
}
return
value
;
}
private
static
void
UpdateAddrValue
(
string
portName
,
string
addr
,
int
value
)
{
try
{
lock
(
mapObj
)
{
Dictionary
<
string
,
int
>
map
=
null
;
ComAddrValue
.
TryGetValue
(
portName
,
out
map
);
if
(
map
==
null
)
{
map
=
new
Dictionary
<
string
,
int
>();
ComAddrValue
.
Add
(
portName
,
map
);
}
if
(
map
.
ContainsKey
(
addr
))
{
ComAddrValue
[
portName
][
addr
]
=
value
;
}
else
{
ComAddrValue
[
portName
].
Add
(
addr
,
value
);
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"UpdateAddrValue出错:"
+
ex
.
ToString
());
}
}
public
static
bool
OpenPort
(
string
portName
)
public
static
bool
OpenPort
(
string
portName
)
{
{
if
(
serialBeanMap
.
ContainsKey
(
portName
))
if
(
serialBeanMap
.
ContainsKey
(
portName
))
...
@@ -228,49 +284,63 @@ namespace OnlineStore.DeviceLibrary
...
@@ -228,49 +284,63 @@ namespace OnlineStore.DeviceLibrary
SendData
(
portName
,
data
);
SendData
(
portName
,
data
);
System
.
Threading
.
Thread
.
Sleep
(
SleepMSendons
);
System
.
Threading
.
Thread
.
Sleep
(
SleepMSendons
);
//运动
//运动
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
06
,
ACCMDManager
.
BlockNo
,
ACCMDManager
.
Block_RelMove
,
2
);
//data = ACCMDManager.GetWriteData(slvAddr, 06, ACCMDManager.BlockNo, ACCMDManager.Block_RelMove, 2);
SendData
(
portName
,
data
);
//SendData(portName, data);
//Thread.Sleep(SleepMSendons);
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_RelMove
);
Thread
.
Sleep
(
SleepMSendons
);
OpenAndCloseSTB
(
portName
,
slvAddr
);
OpenAndCloseSTB
(
portName
,
slvAddr
);
}
}
public
static
void
HomeMove
(
string
portName
,
int
slvAddr
,
int
speed
)
public
static
void
HomeMove
(
string
portName
,
int
slvAddr
,
int
speed
)
{
{
//默认负方向原点返回
//默认负方向原点返回
byte
[]
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
ACCMDManager
.
BlockNo
,
ACCMDManager
.
Block_HomeMove1
,
2
);
//byte[] data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, ACCMDManager.BlockNo, ACCMDManager.Block_HomeMove1, 2);
SendData
(
portName
,
data
);
//SendData(portName, data);
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_HomeMove1
);
Thread
.
Sleep
(
SleepMSendons
);
Thread
.
Sleep
(
SleepMSendons
);
OpenAndCloseSTB
(
portName
,
slvAddr
);
OpenAndCloseSTB
(
portName
,
slvAddr
);
}
}
public
static
void
SpeedMove
(
string
portName
,
int
slvAddr
,
int
speed
)
public
static
void
SpeedMove
(
string
portName
,
int
slvAddr
,
int
speed
)
{
{
int
preSpeed
=
GetAddrValue
(
portName
,
ACCMDManager
.
Speed_Addr
);
if
((
preSpeed
.
Equals
(-
1
))
||
(!
preSpeed
.
Equals
(
Math
.
Abs
(
speed
))))
{
byte
[]
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
"4601"
,
string
.
Format
(
"{0:X2}"
,
Math
.
Abs
(
speed
)),
2
);
byte
[]
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
"4601"
,
string
.
Format
(
"{0:X2}"
,
Math
.
Abs
(
speed
)),
2
);
SendData
(
portName
,
data
);
SendData
(
portName
,
data
);
UpdateAddrValue
(
portName
,
ACCMDManager
.
Speed_Addr
,
Math
.
Abs
(
speed
));
Thread
.
Sleep
(
SleepMSendons
);
Thread
.
Sleep
(
SleepMSendons
);
}
if
(
speed
>
0
)
if
(
speed
>
0
)
{
{
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
ACCMDManager
.
BlockNo
,
ACCMDManager
.
Block_VolMove0
,
2
);
//byte[] data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, ACCMDManager.BlockNo, ACCMDManager.Block_VolMove0, 2);
SendData
(
portName
,
data
);
//SendData(portName, data);
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_VolMove0
);
}
}
else
else
{
{
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
ACCMDManager
.
BlockNo
,
ACCMDManager
.
Block_VolMove1
,
2
);
//byte[] data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, ACCMDManager.BlockNo, ACCMDManager.Block_VolMove1, 2);
SendData
(
portName
,
data
);
//SendData(portName, data);
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_VolMove1
);
}
}
Thread
.
Sleep
(
SleepMSendons
);
//
Thread.Sleep(SleepMSendons);
OpenAndCloseSTB
(
portName
,
slvAddr
);
OpenAndCloseSTB
(
portName
,
slvAddr
);
}
}
public
static
void
AbsMove
(
string
portName
,
int
slvAddr
,
int
targetPosition
,
int
targetSpeed
)
public
static
void
AbsMove
(
string
portName
,
int
slvAddr
,
int
targetPosition
,
int
targetSpeed
)
{
{
//先更新速度
//先更新速度
string
slvAddrStr
=
string
.
Format
(
strFromat
,
slvAddr
);
string
slvAddrStr
=
string
.
Format
(
strFromat
,
slvAddr
);
//0106460001009D12
int
preSpeed
=
GetAddrValue
(
portName
,
ACCMDManager
.
Speed_Addr
);
if
((
preSpeed
.
Equals
(-
1
))
||
(!
preSpeed
.
Equals
(
targetSpeed
)))
{
//速度 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
,
ACCMDManager
.
Speed_Addr
,
targetSpeed
);
}
//绝对运动
//绝对运动
AbsMove
(
portName
,
slvAddr
,
targetPosition
);
AbsMove
(
portName
,
slvAddr
,
targetPosition
);
}
}
...
@@ -314,9 +384,10 @@ namespace OnlineStore.DeviceLibrary
...
@@ -314,9 +384,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
);
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
ACCMDManager
.
BlockNo
,
ACCMDManager
.
Block_AbsMove
,
2
);
UpdateBlock
(
portName
,
slvAddr
,
ACCMDManager
.
Block_AbsMove
);
SendData
(
portName
,
data
);
//data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, ACCMDManager.BlockNo, ACCMDManager.Block_AbsMove, 2);
Thread
.
Sleep
(
SleepMSendons
);
//SendData(portName, data);
//Thread.Sleep(SleepMSendons);
OpenAndCloseSTB
(
portName
,
slvAddr
);
OpenAndCloseSTB
(
portName
,
slvAddr
);
}
}
}
}
...
...
source/DeviceLibrary/PanasonicServo/ACServerManager_Partial.cs
查看文件 @
400de8f
...
@@ -28,16 +28,16 @@ namespace OnlineStore.DeviceLibrary
...
@@ -28,16 +28,16 @@ namespace OnlineStore.DeviceLibrary
}
}
public
static
void
RunBlock
(
string
portName
,
int
slvAddr
,
int
index
)
//
public static void RunBlock(string portName, int slvAddr, int index)
{
//
{
//运动
//
//运动
byte
[]
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
ACCMDManager
.
BlockNo
,
index
.
ToString
(),
2
);
//
byte[] data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, ACCMDManager.BlockNo, index.ToString(), 2);
SendData
(
portName
,
data
);
//
SendData(portName, data);
Thread
.
Sleep
(
100
);
//
Thread.Sleep(100);
CloseSTB
(
portName
,
slvAddr
);
//
CloseSTB(portName, slvAddr);
Thread
.
Sleep
(
100
);
//
Thread.Sleep(100);
OnlyOpenSTB
(
portName
,
slvAddr
);
//
OnlyOpenSTB(portName, slvAddr);
}
//
}
public
static
void
SendStrAndSleep
(
string
portName
,
string
str
,
int
sleepS
)
public
static
void
SendStrAndSleep
(
string
portName
,
string
str
,
int
sleepS
)
{
{
byte
[]
data
=
SerialBean
.
StringToByte
(
str
);
byte
[]
data
=
SerialBean
.
StringToByte
(
str
);
...
@@ -342,10 +342,17 @@ namespace OnlineStore.DeviceLibrary
...
@@ -342,10 +342,17 @@ namespace OnlineStore.DeviceLibrary
SendData
(
portName
,
dataArray
);
SendData
(
portName
,
dataArray
);
}
}
public
static
void
UpdateBlock
(
string
portName
,
int
slvAddr
,
int
blockNum
)
public
static
void
UpdateBlock
(
string
portName
,
int
slvAddr
,
string
blockNum
)
{
int
preNum
=
GetAddrValue
(
portName
,
ACCMDManager
.
BlockNo
);
if
(
preNum
.
Equals
(-
1
)
||
(!
preNum
.
ToString
().
Equals
(
blockNum
)))
{
{
byte
[]
data
=
ACCMDManager
.
GetWriteData
(
01
,
06
,
ACCMDManager
.
BlockNo
,
blockNum
.
ToString
()
,
2
);
byte
[]
data
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteRegisters
,
ACCMDManager
.
BlockNo
,
blockNum
,
2
);
SendData
(
portName
,
data
);
SendData
(
portName
,
data
);
int
value
=
Convert
.
ToInt16
(
blockNum
);
UpdateAddrValue
(
portName
,
ACCMDManager
.
BlockNo
,
value
);
Thread
.
Sleep
(
SleepMSendons
);
}
}
}
public
static
void
AlarmClear
(
string
portName
,
int
slvAddr
)
public
static
void
AlarmClear
(
string
portName
,
int
slvAddr
)
...
...
source/DeviceLibrary/acSingleStore/AC_SA_BoxBean.cs
查看文件 @
400de8f
...
@@ -758,15 +758,25 @@ namespace OnlineStore.DeviceLibrary
...
@@ -758,15 +758,25 @@ namespace OnlineStore.DeviceLibrary
}
}
}
}
private
bool
InProcess
=
false
;
private
bool
InProcess
=
false
;
private
DateTime
preProcessTime
=
DateTime
.
Now
;
protected
override
void
timersTimer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
protected
override
void
timersTimer_Elapsed
(
object
sender
,
System
.
Timers
.
ElapsedEventArgs
e
)
{
{
if
(
InProcess
)
if
(
InProcess
)
{
{
TimeSpan
span
=
DateTime
.
Now
-
preProcessTime
;
if
(
span
.
TotalMinutes
<
1
)
{
return
;
return
;
}
}
else
{
LogUtil
.
error
(
"主定时器:InProcess已等待"
+
span
.
ToString
()+
"重新处理"
);
}
}
try
try
{
{
InProcess
=
true
;
InProcess
=
true
;
preProcessTime
=
DateTime
.
Now
;
IoCheckProcess
();
IoCheckProcess
();
TimerProcess
();
TimerProcess
();
}
}
...
@@ -883,15 +893,6 @@ namespace OnlineStore.DeviceLibrary
...
@@ -883,15 +893,6 @@ namespace OnlineStore.DeviceLibrary
//急停按钮
//急停按钮
if
(
suddenBtn
.
Equals
(
IO_VALUE
.
LOW
))
if
(
suddenBtn
.
Equals
(
IO_VALUE
.
LOW
))
{
{
//if (isInSuddenDown.Equals(false))
//{
// isInSuddenDown = true;
// LogUtil.error(LOGGER, StoreName + "收到急停信号,报警急停");
// WarnMsg = StoreName + "收到急停信号,报警急停";
// //报警时会关闭所有轴
// Alarm(StoreAlarmType.SuddenStop, "1", WarnMsg, StoreMoveType.None);
//}
}
}
else
if
(
resetBtn
.
Equals
(
IO_VALUE
.
HIGH
))
else
if
(
resetBtn
.
Equals
(
IO_VALUE
.
HIGH
))
{
{
...
@@ -918,39 +919,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -918,39 +919,7 @@ namespace OnlineStore.DeviceLibrary
}
}
}
}
}
}
//IO_VALUE airCheck = KNDIOValue(IO_Type.Airpressure_Check);
////气压检测按钮灭三秒以上才算关闭
//if (airCheck == IO_VALUE.LOW && (!isInSuddenDown))
//{
// int checkSenconds = Config.AirCheckSeconds;
// LogUtil.info(LOGGER, StoreName + "未检测到气压信号,判断未检测到信号持续的时间是否" + checkSenconds + "以上!");
// //判断是否持续
// if (lastAirValue == IO_VALUE.LOW)
// {
// if ((!isNoAirCheck) && (DateTime.Now - lastAirCloseTime).TotalSeconds > checkSenconds)
// {
// isNoAirCheck = true;
// //没有了气压检测信号
// LogUtil.error(LOGGER, StoreName + " 未检测到气压信号!");
// WarnMsg = StoreName + " 未检测到气压信号";
// //报警时会关闭所有轴
// Alarm(StoreAlarmType.NoAirCheck, "2", WarnMsg, StoreMoveType.None);
// }
// }
// else
// {
// lastAirValue = airCheck;
// lastAirCloseTime = DateTime.Now;
// isNoAirCheck = false;
// }
//}
//else
//{
// lastAirValue = airCheck;
// lastAirCloseTime = DateTime.Now;
// isNoAirCheck = false;
//}
//检查运动轴报警
//检查运动轴报警
if
(
storeRunStatus
>
StoreRunStatus
.
Wait
&&
(!
isInSuddenDown
))
if
(
storeRunStatus
>
StoreRunStatus
.
Wait
&&
(!
isInSuddenDown
))
{
{
...
...
source/DeviceLibrary/store/KTK_Store.cs
查看文件 @
400de8f
...
@@ -138,11 +138,13 @@ namespace OnlineStore.DeviceLibrary
...
@@ -138,11 +138,13 @@ namespace OnlineStore.DeviceLibrary
protected
bool
isInPro
=
false
;
protected
bool
isInPro
=
false
;
protected
virtual
void
BusyMoveProcess
()
protected
virtual
void
BusyMoveProcess
()
{
{
if
(
isInPro
)
//
if (isInPro)
{
//
{
return
;
//
return;
}
//
}
isInPro
=
true
;
isInPro
=
true
;
try
{
switch
(
StoreMove
.
MoveType
)
switch
(
StoreMove
.
MoveType
)
{
{
case
StoreMoveType
.
InStore
:
case
StoreMoveType
.
InStore
:
...
@@ -163,6 +165,10 @@ namespace OnlineStore.DeviceLibrary
...
@@ -163,6 +165,10 @@ namespace OnlineStore.DeviceLibrary
break
;
break
;
default
:
break
;
default
:
break
;
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"BusyMoveProcess出错:"
+
ex
.
ToString
());
}
isInPro
=
false
;
isInPro
=
false
;
}
}
protected
void
SaveAlarmInfo
(
StoreAlarmType
alarmType
,
string
alarmDetial
,
string
alarmMsg
,
StoreMoveType
storeMoveType
)
protected
void
SaveAlarmInfo
(
StoreAlarmType
alarmType
,
string
alarmDetial
,
string
alarmMsg
,
StoreMoveType
storeMoveType
)
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论