Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
GeneralClassLibrary
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit e0de60c8
由
LN
编写于
2020-05-26 13:03:11 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
增加stb状态读取
1 个父辈
27b90029
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
51 行增加
和
10 行删除
DeviceLibrary/PanasonicServo/ACCMDManager.cs
DeviceLibrary/PanasonicServo/ACServerManager.cs
DeviceLibrary/PanasonicServo/ACServerManager_Partial.cs
DeviceLibrary/PanasonicServo/ACCMDManager.cs
查看文件 @
e0de60c
...
@@ -8,6 +8,10 @@ namespace DeviceLib
...
@@ -8,6 +8,10 @@ namespace DeviceLib
public
class
ACCMDManager
public
class
ACCMDManager
{
{
/// <summary>
/// <summary>
/// 0130h 选通输入(STB) 状态 ReadOnly 0: 输入 OFF 1: 输入 ON
/// </summary>
internal
static
string
STB_State
=
"0130"
;
/// <summary>
/// 0132h 原点接近传感器输入 (HOME) 状态 ReadOnly 0: 输入 OFF 1: 输入 ON
/// 0132h 原点接近传感器输入 (HOME) 状态 ReadOnly 0: 输入 OFF 1: 输入 ON
/// </summary>
/// </summary>
internal
static
string
Home_Single
=
"0132"
;
internal
static
string
Home_Single
=
"0132"
;
...
...
DeviceLibrary/PanasonicServo/ACServerManager.cs
查看文件 @
e0de60c
...
@@ -13,6 +13,7 @@ namespace DeviceLib
...
@@ -13,6 +13,7 @@ namespace DeviceLib
/// </summary>
/// </summary>
public
partial
class
ACServerManager
public
partial
class
ACServerManager
{
{
public
static
bool
NeedCloseSTB
=
true
;
public
static
bool
IsShowMsg
=
false
;
public
static
bool
IsShowMsg
=
false
;
private
static
int
SleepMSendons
=
20
;
private
static
int
SleepMSendons
=
20
;
private
static
int
ReviceOutTimeMS
=
100
;
private
static
int
ReviceOutTimeMS
=
100
;
...
...
DeviceLibrary/PanasonicServo/ACServerManager_Partial.cs
查看文件 @
e0de60c
...
@@ -264,14 +264,37 @@ namespace DeviceLib
...
@@ -264,14 +264,37 @@ namespace DeviceLib
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
);
}
}
private
static
void
OpenAndCloseSTB
(
string
portName
,
int
slvAddr
)
private
static
void
OpenAndCloseSTB
(
string
portName
,
int
slvAddr
)
{
{
OnlyOpenSTB
(
portName
,
slvAddr
);
System
.
Threading
.
Thread
.
Sleep
(
200
);
if
(
GetBusyStatus
(
portName
,
slvAddr
).
Equals
(
1
))
CloseSTB
(
portName
,
slvAddr
);
{
Log
(
InfoType
.
Error
,
"伺服【"
+
portName
+
"_"
+
slvAddr
+
"】OpenSTB时发现 busy=1,直接返回"
);
return
;
}
System
.
Threading
.
Thread
.
Sleep
(
SleepMSendons
);
System
.
Threading
.
Thread
.
Sleep
(
SleepMSendons
);
if
(
GetSTBState
(
portName
,
slvAddr
).
Equals
(
1
))
{
Log
(
InfoType
.
Error
,
"伺服【"
+
portName
+
"_"
+
slvAddr
+
"】OpenSTB时发现 STB=ON,先关闭STB"
);
CloseSTB
(
portName
,
slvAddr
);
System
.
Threading
.
Thread
.
Sleep
(
SleepMSendons
);
if
(
GetSTBState
(
portName
,
slvAddr
).
Equals
(
1
))
{
Log
(
InfoType
.
Error
,
"伺服【"
+
portName
+
"_"
+
slvAddr
+
"】OpenSTB时发现 STB=ON,先关闭STB 后发现STB仍为ON,直接返回"
);
return
;
}
}
System
.
Threading
.
Thread
.
Sleep
(
SleepMSendons
);
OnlyOpenSTB
(
portName
,
slvAddr
);
if
(
NeedCloseSTB
)
{
System
.
Threading
.
Thread
.
Sleep
(
200
);
CloseSTB
(
portName
,
slvAddr
);
System
.
Threading
.
Thread
.
Sleep
(
SleepMSendons
);
}
}
}
private
static
void
OnlyOpenSTB
(
string
portName
,
int
slvAddr
)
private
static
void
OnlyOpenSTB
(
string
portName
,
int
slvAddr
)
...
@@ -391,7 +414,7 @@ namespace DeviceLib
...
@@ -391,7 +414,7 @@ namespace DeviceLib
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
);
bool
result
=
SendData
(
portName
,
dataArray
);
System
.
Threading
.
Thread
.
Sleep
(
500
);
System
.
Threading
.
Thread
.
Sleep
(
500
);
data
=
"0000"
;
data
=
"0000"
;
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteCoil
,
addr
,
data
,
length
);
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_WriteCoil
,
addr
,
data
,
length
);
...
@@ -409,11 +432,11 @@ namespace DeviceLib
...
@@ -409,11 +432,11 @@ namespace DeviceLib
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
,
ReviceOutTimeMS
,
9
);
int
result
=
-
1
;
int
result
=
-
1
;
for
(
int
i
=
1
;
i
<=
rGetCount
;
i
++)
for
(
int
i
=
1
;
i
<=
rGetCount
;
i
++)
{
{
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
9
);
result
=
GetRegisterData
(
portName
,
reviceData
,
ACCMDManager
.
ActualPosition
);
result
=
GetRegisterData
(
portName
,
reviceData
,
ACCMDManager
.
ActualPosition
);
if
(!
result
.
Equals
(-
1
))
if
(!
result
.
Equals
(-
1
))
{
{
...
@@ -504,6 +527,19 @@ namespace DeviceLib
...
@@ -504,6 +527,19 @@ namespace DeviceLib
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
HOME_CMP_Status
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
HOME_CMP_Status
);
}
}
/// <summary>
/// <summary>
/// 获取STB信号值,1=On,0=OFF
/// </summary>
/// <param name="portName"></param>
/// <param name="slvAddr"></param>
/// <returns></returns>
public
static
int
GetSTBState
(
string
portName
,
int
slvAddr
)
{
PreReadCoilAddr
=
ACCMDManager
.
STB_State
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
STB_State
,
"0000"
,
1
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
6
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
STB_State
);
}
/// <summary>
/// 获取原点信号值,1=原点亮
/// 获取原点信号值,1=原点亮
/// </summary>
/// </summary>
/// <param name="portName"></param>
/// <param name="portName"></param>
...
@@ -524,10 +560,10 @@ namespace DeviceLib
...
@@ -524,10 +560,10 @@ namespace DeviceLib
/// <returns></returns>
/// <returns></returns>
public
static
int
GetLimitNegativeSingle
(
string
portName
,
int
slvAddr
)
public
static
int
GetLimitNegativeSingle
(
string
portName
,
int
slvAddr
)
{
{
PreReadCoilAddr
=
ACCMDManager
.
Hom
e_Single
;
PreReadCoilAddr
=
ACCMDManager
.
Limit_Negativ
e_Single
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
Limit_Negative_Single
,
"0000"
,
1
);
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
Limit_Negative_Single
,
"0000"
,
1
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
6
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
6
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
Hom
e_Single
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
Limit_Negativ
e_Single
);
}
}
/// <summary>
/// <summary>
...
@@ -538,10 +574,10 @@ namespace DeviceLib
...
@@ -538,10 +574,10 @@ namespace DeviceLib
/// <returns></returns>
/// <returns></returns>
public
static
int
GetLimitPositiveSingle
(
string
portName
,
int
slvAddr
)
public
static
int
GetLimitPositiveSingle
(
string
portName
,
int
slvAddr
)
{
{
PreReadCoilAddr
=
ACCMDManager
.
Hom
e_Single
;
PreReadCoilAddr
=
ACCMDManager
.
Limit_Positiv
e_Single
;
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
Limit_Positive_Single
,
"0000"
,
1
);
byte
[]
dataArray
=
ACCMDManager
.
GetWriteData
(
slvAddr
,
ACCMDManager
.
CMD_ReadCoil
,
ACCMDManager
.
Limit_Positive_Single
,
"0000"
,
1
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
6
);
byte
[]
reviceData
=
SendCommand
(
portName
,
dataArray
,
ReviceOutTimeMS
,
6
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
Hom
e_Single
);
return
GetCoilData
(
portName
,
reviceData
,
ACCMDManager
.
Limit_Positiv
e_Single
);
}
}
private
static
int
GetAddrValue
(
string
portName
,
int
slvAddr
,
string
addr
)
private
static
int
GetAddrValue
(
string
portName
,
int
slvAddr
,
string
addr
)
{
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论