Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
RC1250-AssemblyLine
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 0fbc88eb
由
LN
编写于
2019-10-22 17:24:14 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
机器人测试程序
1 个父辈
501ba9eb
显示空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
1235 行增加
和
511 行删除
ABBRobotTest/ABBRobotManager.cs
ABBRobotTest/ABBRobotServer.cs
ABBRobotTest/ABBRobotTest.csproj
ABBRobotTest/App.config
ABBRobotTest/FrmRobotMain.Designer.cs
ABBRobotTest/FrmRobotMain.cs
ABBRobotTest/FrmRobotMain.resx
ABBRobotTest/FrmRobotTest.Designer.cs
ABBRobotTest/FrmRobotTest.cs
ABBRobotTest/Program.cs
doc/机器人程序.txt → doc/ABB机器人程序.txt
source/AssemblyLineClient/App.config
source/Common/Setting_Init.cs
source/DeviceLibrary/LineConfig/Config_FeedingEquip_1.csv
source/DeviceLibrary/assemblyLine/FeedingEquip.cs
source/DeviceLibrary/model/StoreStep.cs
source/LoadCVSLibrary/storeConfig/config/FeedingEquip_Config.cs
ABBRobotTest/ABBRobotManager.cs
查看文件 @
0fbc88e
...
@@ -2,68 +2,82 @@
...
@@ -2,68 +2,82 @@
using
ABB.Robotics.Controllers.Discovery
;
using
ABB.Robotics.Controllers.Discovery
;
using
ABB.Robotics.Controllers.IOSystemDomain
;
using
ABB.Robotics.Controllers.IOSystemDomain
;
using
ABB.Robotics.Controllers.RapidDomain
;
using
ABB.Robotics.Controllers.RapidDomain
;
using
OnlineStore.Common
;
using
System
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Linq
;
using
System.Text
;
using
System.Text
;
using
System.Threading
;
namespace
ABBRobotTest
namespace
ABBRobotTest
{
{
public
class
ABBRobotManager
internal
class
ABBRobotManager
{
{
private
NetworkScanner
scanner
=
null
;
private
static
NetworkScanner
scanner
=
null
;
// private Controller controller = null;
// private Controller controller = null;
private
Task
[]
tasks
=
null
;
private
static
Task
[]
tasks
=
null
;
private
NetworkWatcher
networkwatcher
=
null
;
private
static
NetworkWatcher
networkwatcher
=
null
;
private
Dictionary
<
string
,
Controller
>
controllerMap
=
new
Dictionary
<
string
,
Controller
>();
internal
static
Dictionary
<
string
,
Controller
>
controllerMap
=
new
Dictionary
<
string
,
Controller
>();
internal
static
Dictionary
<
string
,
ControllerInfo
>
controllerInfoMap
=
new
Dictionary
<
string
,
ControllerInfo
>();
public
void
LoadController
()
internal
delegate
void
ControllerAddDelegate
(
ControllerInfo
controller
);
internal
static
event
ControllerAddDelegate
ControllerAddEvent
;
internal
static
void
LoadController
()
{
{
this
.
scanner
=
new
NetworkScanner
();
controllerMap
=
new
Dictionary
<
string
,
Controller
>();
this
.
scanner
.
Scan
();
controllerInfoMap
=
new
Dictionary
<
string
,
ControllerInfo
>();
scanner
=
new
NetworkScanner
();
scanner
.
Scan
();
ControllerInfoCollection
controllers
=
scanner
.
Controllers
;
ControllerInfoCollection
controllers
=
scanner
.
Controllers
;
int
i
=
0
;
int
i
=
0
;
foreach
(
ControllerInfo
controllerInfo
in
controllers
)
foreach
(
ControllerInfo
controllerInfo
in
controllers
)
{
{
AddControllerInfo
(
controllerInfo
);
i
++;
}
networkwatcher
=
new
NetworkWatcher
(
scanner
.
Controllers
);
networkwatcher
.
Found
+=
new
EventHandler
<
NetworkWatcherEventArgs
>(
HandleFoundEvent
);
networkwatcher
.
Lost
+=
new
EventHandler
<
NetworkWatcherEventArgs
>(
HandleLostEvent
);
networkwatcher
.
EnableRaisingEvents
=
true
;
}
private
static
void
AddControllerInfo
(
ControllerInfo
controllerInfo
)
{
Controller
con
=
ControllerFactory
.
CreateFrom
(
controllerInfo
);
Controller
con
=
ControllerFactory
.
CreateFrom
(
controllerInfo
);
con
.
Logon
(
UserInfo
.
DefaultUser
);
con
.
Logon
(
UserInfo
.
DefaultUser
);
ControllerState
state
=
con
.
State
;
ControllerState
state
=
con
.
State
;
controllerMap
.
Add
(
con
.
IPAddress
.
ToString
(),
con
);
controllerMap
.
Add
(
con
.
IPAddress
.
ToString
(),
con
);
// controller = con;
// controller = con;
i
++;
controllerInfoMap
.
Add
(
controllerInfo
.
IPAddress
.
ToString
(),
controllerInfo
);
}
this
.
networkwatcher
=
new
NetworkWatcher
(
scanner
.
Controllers
);
this
.
networkwatcher
.
Found
+=
new
EventHandler
<
NetworkWatcherEventArgs
>(
HandleFoundEvent
);
this
.
networkwatcher
.
Lost
+=
new
EventHandler
<
NetworkWatcherEventArgs
>(
HandleLostEvent
);
this
.
networkwatcher
.
EnableRaisingEvents
=
true
;
}
}
private
static
void
HandleLostEvent
(
object
sender
,
NetworkWatcherEventArgs
e
)
private
void
HandleLostEvent
(
object
sender
,
NetworkWatcherEventArgs
e
)
{
{
}
}
private
void
HandleFoundEvent
(
object
sender
,
NetworkWatcherEventArgs
e
)
private
static
void
HandleFoundEvent
(
object
sender
,
NetworkWatcherEventArgs
e
)
{
{
this
.
Invoke
(
new
Invoke
(
new
EventHandler
<
NetworkWatcherEventArgs
>(
AddControllerToListView
),
EventHandler
<
NetworkWatcherEventArgs
>(
AddControllerToListView
),
new
Object
[]
{
this
,
e
});
new
Object
[]
{
null
,
e
});
}
}
private
void
Invoke
(
EventHandler
<
NetworkWatcherEventArgs
>
eventHandler
,
object
[]
v
)
private
static
void
Invoke
(
EventHandler
<
NetworkWatcherEventArgs
>
eventHandler
,
object
[]
v
)
{
{
throw
new
NotImplementedException
();
throw
new
NotImplementedException
();
}
}
private
void
AddControllerToListView
(
object
sender
,
NetworkWatcherEventArgs
e
)
private
static
void
AddControllerToListView
(
object
sender
,
NetworkWatcherEventArgs
e
)
{
ControllerInfo
controllerInfo
=
e
.
Controller
;
if
(
controllerInfo
!=
null
)
{
{
//ControllerInfo controllerInfo = e.Controller; ListViewItem item
AddControllerInfo
(
controllerInfo
);
// = new ListViewItem(controllerInfo.IPAddress.ToString());
ControllerAddEvent
?.
Invoke
(
controllerInfo
);
//item.SubItems.Add(controllerInfo.Id); item.SubItems.Add(controllerInfo.Availability.ToString()); item.SubItems.Add(controllerInfo.IsVirtual.ToString()); item.SubItems.Add(controllerInfo.SystemName); item.SubItems.Add(controllerInfo.Version.ToString()); item.SubItems.Add(controllerInfo.ControllerName); this.listView1.Items.Add(item); item.Tag
}
// = controllerInfo;
}
}
private
void
StartRobot
(
string
ip
)
private
void
StartRobot
ByTask
(
string
ip
)
{
{
try
try
{
{
...
@@ -96,7 +110,7 @@ namespace ABBRobotTest
...
@@ -96,7 +110,7 @@ namespace ABBRobotTest
Console
.
WriteLine
(
"Unexpected error occurred: "
+
ex
.
Message
);
Console
.
WriteLine
(
"Unexpected error occurred: "
+
ex
.
Message
);
}
}
}
}
private
void
StopRobot
(
string
ip
)
private
void
StopRobot
ByTask
(
string
ip
)
{
{
try
try
{
{
...
@@ -131,33 +145,82 @@ namespace ABBRobotTest
...
@@ -131,33 +145,82 @@ namespace ABBRobotTest
}
}
}
}
private
void
SetRobotSignal
(
string
ip
,
string
name
)
internal
static
void
StartRobotBySingle
(
string
ip
,
string
signalName
=
"di_start"
,
bool
isReset
=
true
)
{
if
(
isReset
)
{
StopRobotBySingle
(
ip
);
}
SetRobotSignal
(
ip
,
signalName
);
Thread
.
Sleep
(
100
);
ResetRobotSignal
(
ip
,
signalName
);
}
internal
static
void
StopRobotBySingle
(
string
ip
,
string
signalName
=
"di_stop"
)
{
SetRobotSignal
(
ip
,
signalName
);
Thread
.
Sleep
(
100
);
ResetRobotSignal
(
ip
,
signalName
);
}
internal
static
void
SetRobotSignal
(
string
ip
,
string
name
)
{
try
{
{
Controller
controller
=
GetControllerByIP
(
ip
);
Controller
controller
=
GetControllerByIP
(
ip
);
if
(
controller
!=
null
)
if
(
controller
!=
null
)
{
{
// string name = comboBox1.Text;
// string name = comboBox1.Text;
Signal
singalValue
=
controller
.
IOSystem
.
GetSignal
(
name
);
Signal
singalValue
=
controller
.
IOSystem
.
GetSignal
(
name
);
if
(
singalValue
==
null
)
{
LogUtil
.
error
(
"ABBRobot["
+
ip
+
"] GetSignal ["
+
name
+
"] =null"
);
}
else
{
DigitalSignal
digitalSig
=
(
DigitalSignal
)
singalValue
;
DigitalSignal
digitalSig
=
(
DigitalSignal
)
singalValue
;
digitalSig
.
Set
();
digitalSig
.
Set
();
}
}
}
}
private
void
ResetRobotSignal
(
string
ip
,
string
name
)
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"ABBRobot["
+
ip
+
"] SetRobotSignal ["
+
name
+
"] Error:"
+
ex
.
ToString
());
}
}
internal
static
void
ResetRobotSignal
(
string
ip
,
string
name
)
{
try
{
{
Controller
controller
=
GetControllerByIP
(
ip
);
Controller
controller
=
GetControllerByIP
(
ip
);
if
(
controller
!=
null
)
if
(
controller
!=
null
)
{
{
//string name = comboBox1.Text;
//string name = comboBox1.Text;
Signal
singalValue
=
controller
.
IOSystem
.
GetSignal
(
name
);
Signal
singalValue
=
controller
.
IOSystem
.
GetSignal
(
name
);
if
(
singalValue
==
null
)
{
LogUtil
.
error
(
"ABBRobot["
+
ip
+
"] GetSignal ["
+
name
+
"]= null"
);
}
else
{
DigitalSignal
digitalSig
=
(
DigitalSignal
)
singalValue
;
DigitalSignal
digitalSig
=
(
DigitalSignal
)
singalValue
;
digitalSig
.
Reset
();
digitalSig
.
Reset
();
}
}
}
}
public
string
GetRobotState
(
string
ip
)
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"ABBRobot["
+
ip
+
"] ResetRobotSignal ["
+
name
+
"] Error:"
+
ex
.
ToString
());
}
}
internal
static
string
GetRobotState
(
string
ip
)
{
try
{
{
Controller
controller
=
GetControllerByIP
(
ip
);
Controller
controller
=
GetControllerByIP
(
ip
);
if
(
controller
!=
null
)
if
(
controller
!=
null
)
...
@@ -165,20 +228,25 @@ namespace ABBRobotTest
...
@@ -165,20 +228,25 @@ namespace ABBRobotTest
ControllerState
state
=
controller
.
State
;
ControllerState
state
=
controller
.
State
;
return
state
.
ToString
();
return
state
.
ToString
();
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"ABBRobot["
+
ip
+
"] GetRobotState"
+
"error:"
+
ex
.
ToString
());
}
return
""
;
return
""
;
}
}
private
Controller
GetControllerByIP
(
string
ip
)
internal
static
Controller
GetControllerByIP
(
string
ip
)
{
{
if
(
controllerMap
.
ContainsKey
(
ip
))
if
(
controllerMap
.
ContainsKey
(
ip
))
{
{
return
controllerMap
[
ip
];
return
controllerMap
[
ip
];
}
}
LogUtil
.
error
(
"ABBRobot ["
+
ip
+
"] GetControllerByIP= null"
);
return
null
;
return
null
;
}
}
private
void
DisposeControllers
()
internal
static
void
DisposeControllers
()
{
{
foreach
(
Controller
con
in
controllerMap
.
Values
)
foreach
(
Controller
con
in
controllerMap
.
Values
)
{
{
...
...
ABBRobotTest/ABBRobotServer.cs
查看文件 @
0fbc88e
...
@@ -16,14 +16,12 @@ namespace ABBRobotTest
...
@@ -16,14 +16,12 @@ namespace ABBRobotTest
public
static
bool
IsStart
=
false
;
public
static
bool
IsStart
=
false
;
private
static
int
ClientKeepSecond
=
10
;
private
static
int
ClientKeepSecond
=
10
;
private
static
int
ServerPort
=
21
;
private
static
int
ABBServerPort
=
ConfigAppSettings
.
GetIntValue
(
Setting_Init
.
ABBServerPort
)
;
public
static
string
ErrorInfo
=
""
;
public
static
string
ErrorInfo
=
""
;
private
static
string
MoveOK
=
"point ok"
;
private
static
string
FreeOK
=
"free ok"
;
private
static
string
LockOK
=
"lock ok"
;
private
static
string
MoveCMD_1
=
"move"
;
internal
static
string
Cmd_movep
=
"movep"
;
private
static
string
MoveCMD_2
=
"move2"
;
internal
static
string
Cmd_moveget
=
"moveget"
;
internal
static
string
Cmd_moveput
=
"moveput"
;
public
static
Dictionary
<
string
,
Client
>
ClientMap
=
new
Dictionary
<
string
,
Client
>();
public
static
Dictionary
<
string
,
Client
>
ClientMap
=
new
Dictionary
<
string
,
Client
>();
...
@@ -35,8 +33,14 @@ namespace ABBRobotTest
...
@@ -35,8 +33,14 @@ namespace ABBRobotTest
private
static
object
LockObj
=
new
object
();
private
static
object
LockObj
=
new
object
();
public
static
void
StartServer
(
int
port
)
public
static
void
StartServer
(
)
{
{
try
{
if
(
ABBServerPort
<=
0
)
{
ABBServerPort
=
21
;
}
if
(!
IsStart
)
if
(!
IsStart
)
{
{
ClientMap
=
new
Dictionary
<
string
,
Client
>();
ClientMap
=
new
Dictionary
<
string
,
Client
>();
...
@@ -45,13 +49,35 @@ namespace ABBRobotTest
...
@@ -45,13 +49,35 @@ namespace ABBRobotTest
tcpserver
=
new
TcpServer
();
tcpserver
=
new
TcpServer
();
}
}
IsStart
=
true
;
IsStart
=
true
;
tcpserver
.
Start
(
port
);
tcpserver
.
Start
(
ABBServerPort
);
LogUtil
.
info
(
"ABBRobotServer在端口["
+
port
+
"]监听!"
);
tcpserver
.
AcceptClientEvent
+=
Tcpserver_AcceptClientEvent
;
LogUtil
.
info
(
"ABBRobotServer在端口["
+
ABBServerPort
+
"]监听!"
);
tcpserver
.
ReviceMsgEvent
+=
tcp_ReviceMsgEvent
;
tcpserver
.
ReviceMsgEvent
+=
tcp_ReviceMsgEvent
;
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"ABBRobotServer启动["
+
ABBServerPort
+
"]监听错误:"
+
ex
.
ToString
());
}
}
}
private
static
void
Tcpserver_AcceptClientEvent
(
Client
client
)
{
SaveRobotClient
(
client
);
}
private
static
object
MapLock
=
""
;
private
static
void
SaveRobotClient
(
Client
client
)
{
lock
(
MapLock
)
{
IPEndPoint
clientipe
=
(
IPEndPoint
)
client
.
ClientSocket
.
RemoteEndPoint
;
string
ip
=
clientipe
.
Address
.
ToString
();
if
(
ClientMap
.
ContainsKey
(
ip
))
{
ClientMap
.
Remove
(
ip
);
}
ClientMap
.
Add
(
ip
,
client
);
}
}
public
static
void
StopServer
()
public
static
void
StopServer
()
{
{
try
try
...
@@ -80,7 +106,7 @@ namespace ABBRobotTest
...
@@ -80,7 +106,7 @@ namespace ABBRobotTest
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
LogUtil
.
error
(
"处理
料仓
消息【"
+
msg
+
"】出错:"
+
ex
.
ToString
());
LogUtil
.
error
(
"处理
ABB
消息【"
+
msg
+
"】出错:"
+
ex
.
ToString
());
}
}
}
}
...
@@ -89,34 +115,52 @@ namespace ABBRobotTest
...
@@ -89,34 +115,52 @@ namespace ABBRobotTest
IPEndPoint
clientipe
=
(
IPEndPoint
)
client
.
ClientSocket
.
RemoteEndPoint
;
IPEndPoint
clientipe
=
(
IPEndPoint
)
client
.
ClientSocket
.
RemoteEndPoint
;
string
add
=
clientipe
.
Address
.
ToString
();
string
add
=
clientipe
.
Address
.
ToString
();
// string[] msgArray = msg.Split(cmd_spilt);
// string[] msgArray = msg.Split(cmd_spilt);
msg
=
msg
.
Replace
(
"\r"
,
""
);
msg
=
msg
.
Replace
(
"\r"
,
""
).
ToLower
();
LogUtil
.
debug
(
"收到【"
+
add
+
"】的消息【"
+
msg
+
"】"
);
LogUtil
.
info
(
"Revice["
+
add
+
"]:["
+
msg
+
"]"
);
if
(
msg
.
ToUpper
().
Contains
(
"ERROR"
))
{
}
else
if
(
msg
.
ToUpper
().
Contains
(
"MOVE"
)&&
msg
.
ToUpper
().
Contains
(
"OK"
))
if
(
msg
.
ToLower
().
Contains
(
"error"
))
{
ErrorInfo
=
msg
;
}
else
if
(
msg
.
Contains
(
Cmd_movep
)&&
msg
.
Contains
(
"OK"
))
{
{
OnMoveEnd
?.
Invoke
(
msg
);
OnMoveEnd
?.
Invoke
(
msg
);
}
}
else
if
(
msg
.
ToUpper
().
Contains
(
"MOVE2"
)
&&
msg
.
ToUpper
().
Contains
(
"OK"
))
else
if
(
msg
.
Contains
(
Cmd_moveput
)
&&
msg
.
Contains
(
"OK"
))
{
OnMoveEnd
?.
Invoke
(
msg
);
}
else
if
(
msg
.
Contains
(
Cmd_moveget
)
&&
msg
.
Contains
(
"ok"
))
{
{
OnMoveEnd
?.
Invoke
(
msg
);
OnMoveEnd
?.
Invoke
(
msg
);
}
}
return
false
;
return
false
;
}
}
public
static
void
MoveTo
(
string
robotIp
,
string
PointName
,
string
moveType
=
"L"
,
double
targetSpeed
=
100
,
OpEnd
AfterMove
=
null
)
public
static
void
MoveTo
P
(
string
robotIp
,
string
PointName
,
string
moveType
=
"L"
,
double
targetSpeed
=
100
,
OpEnd
AfterMove
=
null
)
{
{
ABBRobotServer
.
OnMoveEnd
=
AfterMove
;
ABBRobotServer
.
OnMoveEnd
=
AfterMove
;
SendMovePoint
(
robotIp
,
MoveCMD_1
,
PointName
,
moveType
,
targetSpeed
.
ToString
());
SendMovePoint
(
robotIp
,
Cmd_movep
,
PointName
,
moveType
,
targetSpeed
.
ToString
());
}
}
public
static
void
Move
2To
(
string
robotIp
,
string
PointName
,
string
moveType
=
"L"
,
double
targetSpeed
=
100
,
OpEnd
AfterMove
=
null
)
public
static
void
Move
ToPut
(
string
robotIp
,
string
PointName
,
string
moveType
=
"L"
,
double
targetSpeed
=
100
,
OpEnd
AfterMove
=
null
)
{
{
ABBRobotServer
.
OnMoveEnd
=
AfterMove
;
ABBRobotServer
.
OnMoveEnd
=
AfterMove
;
SendMovePoint
(
robotIp
,
MoveCMD_2
,
PointName
,
moveType
,
targetSpeed
.
ToString
());
SendMovePoint
(
robotIp
,
Cmd_moveput
,
PointName
,
moveType
,
targetSpeed
.
ToString
());
}
public
static
void
MoveToGet
(
string
robotIp
,
string
PointName
,
string
moveType
=
"L"
,
double
targetSpeed
=
100
,
OpEnd
AfterMove
=
null
)
{
ABBRobotServer
.
OnMoveEnd
=
AfterMove
;
SendMovePoint
(
robotIp
,
Cmd_moveget
,
PointName
,
moveType
,
targetSpeed
.
ToString
());
}
public
static
void
Move
(
string
robotIp
,
string
moveCmd
,
string
PointName
,
string
moveType
=
"L"
,
double
targetSpeed
=
100
,
OpEnd
AfterMove
=
null
)
{
ABBRobotServer
.
OnMoveEnd
=
AfterMove
;
if
(
moveCmd
.
Equals
(
Cmd_moveget
)
||
moveCmd
.
Equals
(
Cmd_movep
)
||
moveCmd
.
Equals
(
Cmd_moveput
))
{
SendMovePoint
(
robotIp
,
moveCmd
,
PointName
,
moveType
,
targetSpeed
.
ToString
());
}
}
}
private
static
void
SendMovePoint
(
string
robotIp
,
string
param1
,
string
param2
,
string
param3
,
string
param4
)
private
static
void
SendMovePoint
(
string
robotIp
,
string
param1
,
string
param2
,
string
param3
,
string
param4
)
{
{
lock
(
LockObj
)
lock
(
LockObj
)
...
@@ -124,9 +168,9 @@ namespace ABBRobotTest
...
@@ -124,9 +168,9 @@ namespace ABBRobotTest
if
(
ClientMap
.
ContainsKey
(
robotIp
))
if
(
ClientMap
.
ContainsKey
(
robotIp
))
{
{
Client
client
=
ClientMap
[
robotIp
];
Client
client
=
ClientMap
[
robotIp
];
string
str
=
param1
+
","
+
param2
+
","
+
param3
+
","
+
param4
+
"
\r\n
"
;
string
str
=
param1
+
","
+
param2
+
","
+
param3
+
","
+
param4
+
""
;
LastSendPoint
=
param2
;
LastSendPoint
=
param2
;
LogUtil
.
info
(
"Send ["
+
robotIp
+
"] : ["
+
str
+
"]"
);
SendStrToClient
(
client
,
str
);
SendStrToClient
(
client
,
str
);
}
}
}
}
...
@@ -143,7 +187,13 @@ namespace ABBRobotTest
...
@@ -143,7 +187,13 @@ namespace ABBRobotTest
return
false
;
return
false
;
}
}
internal
static
bool
RobotIsConnect
(
string
ip
)
{
if
(
ClientMap
.
ContainsKey
(
ip
))
{
return
true
;
}
return
false
;
}
}
}
}
}
ABBRobotTest/ABBRobotTest.csproj
查看文件 @
0fbc88e
...
@@ -36,6 +36,10 @@
...
@@ -36,6 +36,10 @@
<Reference Include="ABB.Robotics.Controllers.PC">
<Reference Include="ABB.Robotics.Controllers.PC">
<HintPath>..\dll\ABB\ABB.Robotics.Controllers.PC.dll</HintPath>
<HintPath>..\dll\ABB\ABB.Robotics.Controllers.PC.dll</HintPath>
</Reference>
</Reference>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\dll\log4net.dll</HintPath>
</Reference>
<Reference Include="RobotStudio.Services.RobApi">
<Reference Include="RobotStudio.Services.RobApi">
<HintPath>..\dll\ABB\RobotStudio.Services.RobApi.dll</HintPath>
<HintPath>..\dll\ABB\RobotStudio.Services.RobApi.dll</HintPath>
</Reference>
</Reference>
...
@@ -57,6 +61,12 @@
...
@@ -57,6 +61,12 @@
<ItemGroup>
<ItemGroup>
<Compile Include="ABBRobotServer.cs" />
<Compile Include="ABBRobotServer.cs" />
<Compile Include="ABBRobotManager.cs" />
<Compile Include="ABBRobotManager.cs" />
<Compile Include="FrmRobotMain.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmRobotMain.Designer.cs">
<DependentUpon>FrmRobotMain.cs</DependentUpon>
</Compile>
<Compile Include="FrmRobotTest.cs">
<Compile Include="FrmRobotTest.cs">
<SubType>Form</SubType>
<SubType>Form</SubType>
</Compile>
</Compile>
...
@@ -65,6 +75,9 @@
...
@@ -65,6 +75,9 @@
</Compile>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="FrmRobotMain.resx">
<DependentUpon>FrmRobotMain.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmRobotTest.resx">
<EmbeddedResource Include="FrmRobotTest.resx">
<DependentUpon>FrmRobotTest.cs</DependentUpon>
<DependentUpon>FrmRobotTest.cs</DependentUpon>
</EmbeddedResource>
</EmbeddedResource>
...
...
ABBRobotTest/App.config
查看文件 @
0fbc88e
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
configuration
>
<
configuration
>
<
configSections
>
<
section
name
=
"log4net"
type
=
"log4net.Config.Log4NetConfigurationSectionHandler,log4net"
/>
</
configSections
>
<
appSettings
>
<!--是否开机自动启动料仓-->
<
add
key
=
"App_AutoRun"
value
=
"1"
/>
<
add
key
=
"App_Title"
value
=
"流水线客户端"
/>
<!--
Server
address
-->
<
add
key
=
"http.server"
value
=
"http://localhost/myproject/service/store/emptyPosForPutin"
/>
<!--
storeType
-->
<
add
key
=
"Line_moveEquip_count"
value
=
"18"
/>
<
add
key
=
"Line_feedingEquip_count"
value
=
"4"
/>
<
add
key
=
"Line_providingEquip_count"
value
=
"4"
/>
<
add
key
=
"Line_dischargeLine_count"
value
=
"2"
/>
<!--
start
one
store
config
-->
<
add
key
=
"ConfigPath_Line"
value
=
"\LineConfig\Config_Line.csv"
/>
<
add
key
=
"ConfigPath_MoveEquip"
value
=
"\LineConfig\MoveEquip\Config_MoveEquip.csv"
/>
<
add
key
=
"ConfigPath_FeedingEquip"
value
=
"\LineConfig\Config_FeedingEquip.csv"
/>
<
add
key
=
"ConfigPath_ProvidingEquip"
value
=
"\LineConfig\Config_ProvidingEquip.csv"
/>
<
add
key
=
"ConfigPath_DischargeLine"
value
=
"\LineConfig\Config_DischargeLine.csv"
/>
<
add
key
=
"Line_Type"
value
=
"RC_LINE"
/>
<
add
key
=
"Line_CID"
value
=
"rc1250"
/>
<!--
end
one
store
config
-->
<!--摄像机名称列表配置,用
#分割-->
<
add
key
=
"CameraName"
value
=
"GigE:MV-CE100-30GC (00C69898519)#GigE:MV-CE100-30GC (00C95305929)"
/>
<!--二维码类型列表配置,用
#分割,一维码=Barcode 二维码: QR Code#Data Matrix ECC 200#Micro QR Code-->
<
add
key
=
"CodeType"
value
=
"QR Code"
/>
<!--<
add
key
=
"CodeType"
value
=
"Data Matrix ECC 200"
/>-->
<
add
key
=
"ACBaudRate"
value
=
"115200"
/>
<!--二维码参数文件所在路径,文件名与二维码类型名一样-->
<
add
key
=
"CodeParamPath"
value
=
"\CodeParam\"
/>
<
add
key
=
"Config_Pwd"
value
=
"123456"
/>
<!--出库等待料盘拿走的时间,秒-->
<
add
key
=
"OutStoreWaitSeconds"
value
=
"10"
/>
<
add
key
=
"UseAIOBOX"
value
=
"1"
/>
<!--流水线监听端口-->
<
add
key
=
"TCPServerPort"
value
=
"5246"
/>
<
add
key
=
"ClientSettingsProvider.ServiceUri"
value
=
""
/>
<
add
key
=
"DIMS"
value
=
"120"
/>
<
add
key
=
"DOMS"
value
=
"300"
/>
<
add
key
=
"LineRunTest"
value
=
"1"
/>
<!--
ABB
机器人服务器-->
<
add
key
=
"ABBServerPort"
value
=
"21"
/>
</
appSettings
>
<
log4net
>
<
appender
name
=
"RollingLogFileAppender"
type
=
"log4net.Appender.RollingFileAppender"
>
<
file
value
=
"logs/Line-RC1250.log"
/>
<
param
name
=
"Encoding"
value
=
"UTF-8"
/>
<
appendToFile
value
=
"true"
/>
<
rollingStyle
value
=
"Date"
/>
<
datePattern
value
=
"yyyy-MM-dd"
/>
<
layout
type
=
"log4net.Layout.PatternLayout"
>
<
conversionPattern
value
=
"[%date][%t]%-5p %m%n"
/>
</
layout
>
</
appender
>
<
root
>
<
level
value
=
"Info"
/>
<
appender
-
ref
ref
=
"RollingLogFileAppender"
/>
</
root
>
</
log4net
>
<
startup
>
<
startup
>
<
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.6.1"
/>
<
supportedRuntime
version
=
"v4.0"
sku
=
".NETFramework,Version=v4.6.1"
/>
</
startup
>
</
startup
>
...
...
ABBRobotTest/FrmRobotMain.Designer.cs
0 → 100644
查看文件 @
0fbc88e
namespace
ABBRobotTest
{
partial
class
FrmRobotMain
{
/// <summary>
/// Required designer variable.
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected
override
void
Dispose
(
bool
disposing
)
{
if
(
disposing
&&
(
components
!=
null
))
{
components
.
Dispose
();
}
base
.
Dispose
(
disposing
);
}
#
region
Windows
Form
Designer
generated
code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private
void
InitializeComponent
()
{
this
.
components
=
new
System
.
ComponentModel
.
Container
();
this
.
listView1
=
new
System
.
Windows
.
Forms
.
ListView
();
this
.
timer1
=
new
System
.
Windows
.
Forms
.
Timer
(
this
.
components
);
this
.
btnStop
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
btnStart
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
richTextBox1
=
new
System
.
Windows
.
Forms
.
RichTextBox
();
this
.
groupMove
=
new
System
.
Windows
.
Forms
.
GroupBox
();
this
.
btnExit
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
comMoveCmd
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
label2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
comMoveP
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
label3
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
numSpeed
=
new
System
.
Windows
.
Forms
.
NumericUpDown
();
this
.
radioButton1
=
new
System
.
Windows
.
Forms
.
RadioButton
();
this
.
radioButton2
=
new
System
.
Windows
.
Forms
.
RadioButton
();
this
.
btnMove
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
groupMove
.
SuspendLayout
();
((
System
.
ComponentModel
.
ISupportInitialize
)(
this
.
numSpeed
)).
BeginInit
();
this
.
SuspendLayout
();
//
// listView1
//
this
.
listView1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
listView1
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
9F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
listView1
.
FullRowSelect
=
true
;
this
.
listView1
.
GridLines
=
true
;
this
.
listView1
.
HideSelection
=
false
;
this
.
listView1
.
Location
=
new
System
.
Drawing
.
Point
(
12
,
12
);
this
.
listView1
.
MultiSelect
=
false
;
this
.
listView1
.
Name
=
"listView1"
;
this
.
listView1
.
Size
=
new
System
.
Drawing
.
Size
(
1308
,
143
);
this
.
listView1
.
TabIndex
=
193
;
this
.
listView1
.
UseCompatibleStateImageBehavior
=
false
;
this
.
listView1
.
View
=
System
.
Windows
.
Forms
.
View
.
Details
;
this
.
listView1
.
SelectedIndexChanged
+=
new
System
.
EventHandler
(
this
.
listView1_SelectedIndexChanged
);
//
// timer1
//
this
.
timer1
.
Interval
=
1000
;
this
.
timer1
.
Tick
+=
new
System
.
EventHandler
(
this
.
timer1_Tick
);
//
// btnStop
//
this
.
btnStop
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnStop
.
Location
=
new
System
.
Drawing
.
Point
(
171
,
176
);
this
.
btnStop
.
Name
=
"btnStop"
;
this
.
btnStop
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
btnStop
.
TabIndex
=
195
;
this
.
btnStop
.
Text
=
"停止"
;
this
.
btnStop
.
UseVisualStyleBackColor
=
true
;
this
.
btnStop
.
Click
+=
new
System
.
EventHandler
(
this
.
btnStop_Click
);
//
// btnStart
//
this
.
btnStart
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnStart
.
Location
=
new
System
.
Drawing
.
Point
(
34
,
176
);
this
.
btnStart
.
Name
=
"btnStart"
;
this
.
btnStart
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
btnStart
.
TabIndex
=
194
;
this
.
btnStart
.
Text
=
"启动"
;
this
.
btnStart
.
UseVisualStyleBackColor
=
true
;
this
.
btnStart
.
Click
+=
new
System
.
EventHandler
(
this
.
btnStart_Click
);
//
// richTextBox1
//
this
.
richTextBox1
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)((((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Right
)));
this
.
richTextBox1
.
Location
=
new
System
.
Drawing
.
Point
(
444
,
161
);
this
.
richTextBox1
.
Name
=
"richTextBox1"
;
this
.
richTextBox1
.
Size
=
new
System
.
Drawing
.
Size
(
876
,
553
);
this
.
richTextBox1
.
TabIndex
=
196
;
this
.
richTextBox1
.
Text
=
""
;
//
// groupMove
//
this
.
groupMove
.
Anchor
=
((
System
.
Windows
.
Forms
.
AnchorStyles
)(((
System
.
Windows
.
Forms
.
AnchorStyles
.
Top
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Bottom
)
|
System
.
Windows
.
Forms
.
AnchorStyles
.
Left
)));
this
.
groupMove
.
Controls
.
Add
(
this
.
btnMove
);
this
.
groupMove
.
Controls
.
Add
(
this
.
radioButton2
);
this
.
groupMove
.
Controls
.
Add
(
this
.
radioButton1
);
this
.
groupMove
.
Controls
.
Add
(
this
.
numSpeed
);
this
.
groupMove
.
Controls
.
Add
(
this
.
label3
);
this
.
groupMove
.
Controls
.
Add
(
this
.
label2
);
this
.
groupMove
.
Controls
.
Add
(
this
.
comMoveP
);
this
.
groupMove
.
Controls
.
Add
(
this
.
label1
);
this
.
groupMove
.
Controls
.
Add
(
this
.
comMoveCmd
);
this
.
groupMove
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
groupMove
.
Location
=
new
System
.
Drawing
.
Point
(
12
,
243
);
this
.
groupMove
.
Name
=
"groupMove"
;
this
.
groupMove
.
Size
=
new
System
.
Drawing
.
Size
(
426
,
471
);
this
.
groupMove
.
TabIndex
=
197
;
this
.
groupMove
.
TabStop
=
false
;
this
.
groupMove
.
Text
=
"运动测试"
;
//
// btnExit
//
this
.
btnExit
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnExit
.
Location
=
new
System
.
Drawing
.
Point
(
309
,
176
);
this
.
btnExit
.
Name
=
"btnExit"
;
this
.
btnExit
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
btnExit
.
TabIndex
=
198
;
this
.
btnExit
.
Text
=
"退出"
;
this
.
btnExit
.
UseVisualStyleBackColor
=
true
;
this
.
btnExit
.
Click
+=
new
System
.
EventHandler
(
this
.
btnExit_Click
);
//
// comMoveCmd
//
this
.
comMoveCmd
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
12F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
comMoveCmd
.
FormattingEnabled
=
true
;
this
.
comMoveCmd
.
Location
=
new
System
.
Drawing
.
Point
(
136
,
41
);
this
.
comMoveCmd
.
Name
=
"comMoveCmd"
;
this
.
comMoveCmd
.
Size
=
new
System
.
Drawing
.
Size
(
171
,
29
);
this
.
comMoveCmd
.
TabIndex
=
0
;
//
// label1
//
this
.
label1
.
AutoSize
=
true
;
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
37
,
45
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
79
,
20
);
this
.
label1
.
TabIndex
=
2
;
this
.
label1
.
Text
=
"运动方式:"
;
//
// label2
//
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
37
,
100
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
93
,
20
);
this
.
label2
.
TabIndex
=
4
;
this
.
label2
.
Text
=
"坐标点名称:"
;
//
// comMoveP
//
this
.
comMoveP
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
12F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
comMoveP
.
FormattingEnabled
=
true
;
this
.
comMoveP
.
Location
=
new
System
.
Drawing
.
Point
(
136
,
96
);
this
.
comMoveP
.
Name
=
"comMoveP"
;
this
.
comMoveP
.
Size
=
new
System
.
Drawing
.
Size
(
171
,
29
);
this
.
comMoveP
.
TabIndex
=
3
;
//
// label3
//
this
.
label3
.
AutoSize
=
true
;
this
.
label3
.
Location
=
new
System
.
Drawing
.
Point
(
37
,
155
);
this
.
label3
.
Name
=
"label3"
;
this
.
label3
.
Size
=
new
System
.
Drawing
.
Size
(
51
,
20
);
this
.
label3
.
TabIndex
=
6
;
this
.
label3
.
Text
=
"速度:"
;
//
// numSpeed
//
this
.
numSpeed
.
Increment
=
new
decimal
(
new
int
[]
{
10
,
0
,
0
,
0
});
this
.
numSpeed
.
Location
=
new
System
.
Drawing
.
Point
(
137
,
153
);
this
.
numSpeed
.
Maximum
=
new
decimal
(
new
int
[]
{
500
,
0
,
0
,
0
});
this
.
numSpeed
.
Minimum
=
new
decimal
(
new
int
[]
{
10
,
0
,
0
,
0
});
this
.
numSpeed
.
Name
=
"numSpeed"
;
this
.
numSpeed
.
Size
=
new
System
.
Drawing
.
Size
(
170
,
26
);
this
.
numSpeed
.
TabIndex
=
7
;
this
.
numSpeed
.
Value
=
new
decimal
(
new
int
[]
{
50
,
0
,
0
,
0
});
//
// radioButton1
//
this
.
radioButton1
.
AutoSize
=
true
;
this
.
radioButton1
.
Location
=
new
System
.
Drawing
.
Point
(
63
,
216
);
this
.
radioButton1
.
Name
=
"radioButton1"
;
this
.
radioButton1
.
Size
=
new
System
.
Drawing
.
Size
(
83
,
24
);
this
.
radioButton1
.
TabIndex
=
8
;
this
.
radioButton1
.
TabStop
=
true
;
this
.
radioButton1
.
Text
=
"直线运动"
;
this
.
radioButton1
.
UseVisualStyleBackColor
=
true
;
//
// radioButton2
//
this
.
radioButton2
.
AutoSize
=
true
;
this
.
radioButton2
.
Location
=
new
System
.
Drawing
.
Point
(
200
,
216
);
this
.
radioButton2
.
Name
=
"radioButton2"
;
this
.
radioButton2
.
Size
=
new
System
.
Drawing
.
Size
(
83
,
24
);
this
.
radioButton2
.
TabIndex
=
9
;
this
.
radioButton2
.
TabStop
=
true
;
this
.
radioButton2
.
Text
=
"圆弧运动"
;
this
.
radioButton2
.
UseVisualStyleBackColor
=
true
;
//
// btnMove
//
this
.
btnMove
.
Font
=
new
System
.
Drawing
.
Font
(
"微软雅黑"
,
10.5F
,
System
.
Drawing
.
FontStyle
.
Regular
,
System
.
Drawing
.
GraphicsUnit
.
Point
,
((
byte
)(
134
)));
this
.
btnMove
.
Location
=
new
System
.
Drawing
.
Point
(
159
,
283
);
this
.
btnMove
.
Name
=
"btnMove"
;
this
.
btnMove
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
btnMove
.
TabIndex
=
195
;
this
.
btnMove
.
Text
=
"运动测试"
;
this
.
btnMove
.
UseVisualStyleBackColor
=
true
;
this
.
btnMove
.
Click
+=
new
System
.
EventHandler
(
this
.
btnMove_Click
);
//
// FrmRobotMain
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
6F
,
12F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
1335
,
726
);
this
.
Controls
.
Add
(
this
.
btnExit
);
this
.
Controls
.
Add
(
this
.
groupMove
);
this
.
Controls
.
Add
(
this
.
richTextBox1
);
this
.
Controls
.
Add
(
this
.
btnStop
);
this
.
Controls
.
Add
(
this
.
btnStart
);
this
.
Controls
.
Add
(
this
.
listView1
);
this
.
Name
=
"FrmRobotMain"
;
this
.
Text
=
"FrmRobotMain"
;
this
.
FormClosing
+=
new
System
.
Windows
.
Forms
.
FormClosingEventHandler
(
this
.
FrmRobotMain_FormClosing
);
this
.
Load
+=
new
System
.
EventHandler
(
this
.
FrmRobotMain_Load
);
this
.
groupMove
.
ResumeLayout
(
false
);
this
.
groupMove
.
PerformLayout
();
((
System
.
ComponentModel
.
ISupportInitialize
)(
this
.
numSpeed
)).
EndInit
();
this
.
ResumeLayout
(
false
);
}
#
endregion
private
System
.
Windows
.
Forms
.
ListView
listView1
;
private
System
.
Windows
.
Forms
.
Timer
timer1
;
private
System
.
Windows
.
Forms
.
Button
btnStop
;
private
System
.
Windows
.
Forms
.
Button
btnStart
;
private
System
.
Windows
.
Forms
.
RichTextBox
richTextBox1
;
private
System
.
Windows
.
Forms
.
GroupBox
groupMove
;
private
System
.
Windows
.
Forms
.
Button
btnExit
;
private
System
.
Windows
.
Forms
.
Label
label3
;
private
System
.
Windows
.
Forms
.
Label
label2
;
private
System
.
Windows
.
Forms
.
ComboBox
comMoveP
;
private
System
.
Windows
.
Forms
.
Label
label1
;
private
System
.
Windows
.
Forms
.
ComboBox
comMoveCmd
;
private
System
.
Windows
.
Forms
.
RadioButton
radioButton2
;
private
System
.
Windows
.
Forms
.
RadioButton
radioButton1
;
private
System
.
Windows
.
Forms
.
NumericUpDown
numSpeed
;
private
System
.
Windows
.
Forms
.
Button
btnMove
;
}
}
\ No newline at end of file
\ No newline at end of file
ABBRobotTest/FrmRobotMain.cs
0 → 100644
查看文件 @
0fbc88e
using
ABB.Robotics.Controllers
;
using
OnlineStore.Common
;
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Drawing
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
namespace
ABBRobotTest
{
public
partial
class
FrmRobotMain
:
Form
{
public
FrmRobotMain
()
{
InitializeComponent
();
}
private
string
SelConIp
=
""
;
private
void
FrmRobotMain_Load
(
object
sender
,
EventArgs
e
)
{
CheckForIllegalCrossThreadCalls
=
false
;
LoadCom
();
LoadListView
();
LoadController
();
timer1
.
Start
();
ABBRobotServer
.
StartServer
();
LogUtil
.
logBox
=
this
.
richTextBox1
;
}
private
void
LoadCom
()
{
comMoveCmd
.
Items
.
Clear
();
comMoveCmd
.
Items
.
Add
(
ABBRobotServer
.
Cmd_movep
);
comMoveCmd
.
Items
.
Add
(
ABBRobotServer
.
Cmd_moveget
);
comMoveCmd
.
Items
.
Add
(
ABBRobotServer
.
Cmd_moveput
);
comMoveP
.
Items
.
Clear
();
for
(
int
i
=
0
;
i
<
30
;
i
++)
{
comMoveP
.
Items
.
Add
(
"p"
+
i
);
}
comMoveP
.
SelectedIndex
=
0
;
comMoveCmd
.
SelectedIndex
=
1
;
radioButton1
.
Checked
=
true
;
}
private
void
LoadController
()
{
ABBRobotManager
.
LoadController
();
int
i
=
0
;
foreach
(
ControllerInfo
con
in
ABBRobotManager
.
controllerInfoMap
.
Values
)
{
ListViewItem
item
=
new
ListViewItem
(
con
.
IPAddress
.
ToString
());
item
.
SubItems
.
Add
(
con
.
Id
.
ToString
());
item
.
SubItems
.
Add
(
con
.
Availability
.
ToString
());
item
.
SubItems
.
Add
(
con
.
IsVirtual
.
ToString
());
item
.
SubItems
.
Add
(
con
.
SystemName
);
item
.
SubItems
.
Add
(
con
.
Version
.
ToString
());
item
.
SubItems
.
Add
(
con
.
ControllerName
);
item
.
Tag
=
con
.
IPAddress
;
string
state
=
ABBRobotManager
.
GetRobotState
(
con
.
IPAddress
.
ToString
());
item
.
SubItems
.
Add
(
state
);
this
.
listView1
.
Items
.
Add
(
item
);
this
.
listView1
.
Items
[
i
].
Selected
=
true
;
SelConIp
=
con
.
IPAddress
.
ToString
();
i
++;
}
}
private
void
LoadListView
()
{
this
.
listView1
.
Columns
.
Clear
();
AddHealder
(
"IPAddress"
,
100
);
AddHealder
(
"ID"
,
80
);
// AddHealder("设备状态", 100);
AddHealder
(
"Availability"
,
100
);
AddHealder
(
"IsVirtual"
,
100
);
AddHealder
(
"SystemName"
,
100
);
AddHealder
(
"Version"
,
100
);
AddHealder
(
"ControllerName"
,
180
);
AddHealder
(
"Statue"
,
100
);
}
private
void
AddHealder
(
string
name
,
int
widht
)
{
ColumnHeader
preSendwire
=
new
ColumnHeader
();
preSendwire
.
Text
=
name
;
//设置列标题
preSendwire
.
Width
=
widht
;
//设置列宽度
preSendwire
.
TextAlign
=
HorizontalAlignment
.
Left
;
//设置列的对齐方式
this
.
listView1
.
Columns
.
Add
(
preSendwire
);
//将列头添加到ListView控件。
}
private
void
timer1_Tick
(
object
sender
,
EventArgs
e
)
{
int
i
=
0
;
List
<
string
>
conList
=
new
List
<
string
>(
ABBRobotManager
.
controllerMap
.
Keys
);
foreach
(
string
con
in
conList
)
{
string
result
=
ABBRobotManager
.
GetRobotState
(
con
);
listView1
.
Items
[
i
].
SubItems
[
7
].
Text
=
result
;
i
++;
}
if
(
ABBRobotServer
.
RobotIsConnect
(
SelConIp
))
{
groupMove
.
Enabled
=
true
;
}
else
{
groupMove
.
Enabled
=
false
;
}
}
private
void
btnStart_Click
(
object
sender
,
EventArgs
e
)
{
if
(
String
.
IsNullOrEmpty
(
SelConIp
))
{
return
;
}
ABBRobotManager
.
StartRobotBySingle
(
SelConIp
);
}
private
void
btnStop_Click
(
object
sender
,
EventArgs
e
)
{
if
(
String
.
IsNullOrEmpty
(
SelConIp
))
{
return
;
}
ABBRobotManager
.
StopRobotBySingle
(
SelConIp
);
}
private
void
listView1_SelectedIndexChanged
(
object
sender
,
EventArgs
e
)
{
if
(
listView1
.
SelectedItems
!=
null
&&
listView1
.
SelectedItems
.
Count
>
0
)
{
int
index
=
listView1
.
SelectedItems
[
0
].
Index
;
string
ip
=
listView1
.
Items
[
index
].
SubItems
[
0
].
ToString
();
if
(!
String
.
IsNullOrEmpty
(
ip
))
{
SelConIp
=
ip
;
if
(
ABBRobotServer
.
RobotIsConnect
(
SelConIp
))
{
groupMove
.
Enabled
=
true
;
}
else
{
groupMove
.
Enabled
=
false
;
}
}
}
}
private
void
btnExit_Click
(
object
sender
,
EventArgs
e
)
{
this
.
Close
();
}
private
void
FrmRobotMain_FormClosing
(
object
sender
,
FormClosingEventArgs
e
)
{
ABBRobotManager
.
DisposeControllers
();
ABBRobotServer
.
StopServer
();
LogUtil
.
logBox
=
null
;
}
private
void
btnMove_Click
(
object
sender
,
EventArgs
e
)
{
string
moveCmd
=
comMoveCmd
.
Text
;
string
PPoint
=
comMoveP
.
Text
;
string
MType
=
"L"
;
if
(
radioButton2
.
Checked
)
{
MType
=
"J"
;
}
int
speed
=(
int
)
numSpeed
.
Value
;
if
(
speed
>
500
)
{
speed
=
100
;
}
ABBRobotServer
.
Move
(
SelConIp
,
moveCmd
,
PPoint
,
MType
,
speed
,
MoveEnd
);
}
private
void
MoveEnd
(
string
msg
)
{
LogUtil
.
info
(
"机器人运动完成:"
+
msg
);
}
}
}
ABBRobotTest/FrmRobotMain.resx
0 → 100644
查看文件 @
0fbc88e
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
\ No newline at end of file
\ No newline at end of file
ABBRobotTest/FrmRobotTest.Designer.cs
查看文件 @
0fbc88e
...
@@ -29,30 +29,31 @@
...
@@ -29,30 +29,31 @@
private
void
InitializeComponent
()
private
void
InitializeComponent
()
{
{
this
.
components
=
new
System
.
ComponentModel
.
Container
();
this
.
components
=
new
System
.
ComponentModel
.
Container
();
this
.
b
utton1
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
b
tnStart
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
button2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
button2
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
button3
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
button3
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
timer1
=
new
System
.
Windows
.
Forms
.
Timer
(
this
.
components
);
this
.
timer1
=
new
System
.
Windows
.
Forms
.
Timer
(
this
.
components
);
this
.
button4
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
button4
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
comboBox1
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
comboBox1
=
new
System
.
Windows
.
Forms
.
ComboBox
();
this
.
b
utton5
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
b
tnStop
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
listView1
=
new
System
.
Windows
.
Forms
.
ListView
();
this
.
listView1
=
new
System
.
Windows
.
Forms
.
ListView
();
this
.
richTextBox1
=
new
System
.
Windows
.
Forms
.
RichTextBox
();
this
.
richTextBox1
=
new
System
.
Windows
.
Forms
.
RichTextBox
();
this
.
SuspendLayout
();
this
.
SuspendLayout
();
//
//
// b
utton1
// b
tnStart
//
//
this
.
button1
.
Location
=
new
System
.
Drawing
.
Point
(
11
,
195
);
this
.
btnStart
.
Location
=
new
System
.
Drawing
.
Point
(
27
,
486
);
this
.
button1
.
Name
=
"button1"
;
this
.
btnStart
.
Name
=
"btnStart"
;
this
.
button1
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
btnStart
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
button1
.
TabIndex
=
0
;
this
.
btnStart
.
TabIndex
=
0
;
this
.
button1
.
Text
=
"启动"
;
this
.
btnStart
.
Text
=
"启动"
;
this
.
button1
.
UseVisualStyleBackColor
=
true
;
this
.
btnStart
.
UseVisualStyleBackColor
=
true
;
this
.
button1
.
Click
+=
new
System
.
EventHandler
(
this
.
button1_Click
);
this
.
btnStart
.
Visible
=
false
;
this
.
btnStart
.
Click
+=
new
System
.
EventHandler
(
this
.
btnStart_Click
);
//
//
// button2
// button2
//
//
this
.
button2
.
Location
=
new
System
.
Drawing
.
Point
(
23
,
383
);
this
.
button2
.
Location
=
new
System
.
Drawing
.
Point
(
160
,
155
);
this
.
button2
.
Name
=
"button2"
;
this
.
button2
.
Name
=
"button2"
;
this
.
button2
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
button2
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
button2
.
TabIndex
=
2
;
this
.
button2
.
TabIndex
=
2
;
...
@@ -62,7 +63,7 @@
...
@@ -62,7 +63,7 @@
//
//
// button3
// button3
//
//
this
.
button3
.
Location
=
new
System
.
Drawing
.
Point
(
148
,
383
);
this
.
button3
.
Location
=
new
System
.
Drawing
.
Point
(
272
,
155
);
this
.
button3
.
Name
=
"button3"
;
this
.
button3
.
Name
=
"button3"
;
this
.
button3
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
button3
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
button3
.
TabIndex
=
3
;
this
.
button3
.
TabIndex
=
3
;
...
@@ -77,7 +78,7 @@
...
@@ -77,7 +78,7 @@
//
//
// button4
// button4
//
//
this
.
button4
.
Location
=
new
System
.
Drawing
.
Point
(
469
,
19
5
);
this
.
button4
.
Location
=
new
System
.
Drawing
.
Point
(
591
,
15
5
);
this
.
button4
.
Name
=
"button4"
;
this
.
button4
.
Name
=
"button4"
;
this
.
button4
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
button4
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
button4
.
TabIndex
=
5
;
this
.
button4
.
TabIndex
=
5
;
...
@@ -95,20 +96,21 @@
...
@@ -95,20 +96,21 @@
"di_startatmain"
,
"di_startatmain"
,
"di_stop"
,
"di_stop"
,
"aaa"
});
"aaa"
});
this
.
comboBox1
.
Location
=
new
System
.
Drawing
.
Point
(
23
,
330
);
this
.
comboBox1
.
Location
=
new
System
.
Drawing
.
Point
(
16
,
163
);
this
.
comboBox1
.
Name
=
"comboBox1"
;
this
.
comboBox1
.
Name
=
"comboBox1"
;
this
.
comboBox1
.
Size
=
new
System
.
Drawing
.
Size
(
121
,
28
);
this
.
comboBox1
.
Size
=
new
System
.
Drawing
.
Size
(
121
,
28
);
this
.
comboBox1
.
TabIndex
=
6
;
this
.
comboBox1
.
TabIndex
=
6
;
//
//
// b
utton5
// b
tnStop
//
//
this
.
button5
.
Location
=
new
System
.
Drawing
.
Point
(
148
,
195
);
this
.
btnStop
.
Location
=
new
System
.
Drawing
.
Point
(
164
,
486
);
this
.
button5
.
Name
=
"button5"
;
this
.
btnStop
.
Name
=
"btnStop"
;
this
.
button5
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
btnStop
.
Size
=
new
System
.
Drawing
.
Size
(
108
,
46
);
this
.
button5
.
TabIndex
=
7
;
this
.
btnStop
.
TabIndex
=
7
;
this
.
button5
.
Text
=
"停止"
;
this
.
btnStop
.
Text
=
"停止"
;
this
.
button5
.
UseVisualStyleBackColor
=
true
;
this
.
btnStop
.
UseVisualStyleBackColor
=
true
;
this
.
button5
.
Click
+=
new
System
.
EventHandler
(
this
.
button5_Click
);
this
.
btnStop
.
Visible
=
false
;
this
.
btnStop
.
Click
+=
new
System
.
EventHandler
(
this
.
btnStop_Click
);
//
//
// listView1
// listView1
//
//
...
@@ -121,7 +123,7 @@
...
@@ -121,7 +123,7 @@
this
.
listView1
.
Location
=
new
System
.
Drawing
.
Point
(
11
,
12
);
this
.
listView1
.
Location
=
new
System
.
Drawing
.
Point
(
11
,
12
);
this
.
listView1
.
MultiSelect
=
false
;
this
.
listView1
.
MultiSelect
=
false
;
this
.
listView1
.
Name
=
"listView1"
;
this
.
listView1
.
Name
=
"listView1"
;
this
.
listView1
.
Size
=
new
System
.
Drawing
.
Size
(
8
64
,
17
7
);
this
.
listView1
.
Size
=
new
System
.
Drawing
.
Size
(
8
72
,
11
7
);
this
.
listView1
.
TabIndex
=
192
;
this
.
listView1
.
TabIndex
=
192
;
this
.
listView1
.
UseCompatibleStateImageBehavior
=
false
;
this
.
listView1
.
UseCompatibleStateImageBehavior
=
false
;
this
.
listView1
.
View
=
System
.
Windows
.
Forms
.
View
.
Details
;
this
.
listView1
.
View
=
System
.
Windows
.
Forms
.
View
.
Details
;
...
@@ -129,9 +131,9 @@
...
@@ -129,9 +131,9 @@
//
//
// richTextBox1
// richTextBox1
//
//
this
.
richTextBox1
.
Location
=
new
System
.
Drawing
.
Point
(
469
,
271
);
this
.
richTextBox1
.
Location
=
new
System
.
Drawing
.
Point
(
716
,
135
);
this
.
richTextBox1
.
Name
=
"richTextBox1"
;
this
.
richTextBox1
.
Name
=
"richTextBox1"
;
this
.
richTextBox1
.
Size
=
new
System
.
Drawing
.
Size
(
322
,
261
);
this
.
richTextBox1
.
Size
=
new
System
.
Drawing
.
Size
(
159
,
159
);
this
.
richTextBox1
.
TabIndex
=
193
;
this
.
richTextBox1
.
TabIndex
=
193
;
this
.
richTextBox1
.
Text
=
""
;
this
.
richTextBox1
.
Text
=
""
;
//
//
...
@@ -142,12 +144,12 @@
...
@@ -142,12 +144,12 @@
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
887
,
595
);
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
887
,
595
);
this
.
Controls
.
Add
(
this
.
richTextBox1
);
this
.
Controls
.
Add
(
this
.
richTextBox1
);
this
.
Controls
.
Add
(
this
.
listView1
);
this
.
Controls
.
Add
(
this
.
listView1
);
this
.
Controls
.
Add
(
this
.
b
utton5
);
this
.
Controls
.
Add
(
this
.
b
tnStop
);
this
.
Controls
.
Add
(
this
.
comboBox1
);
this
.
Controls
.
Add
(
this
.
comboBox1
);
this
.
Controls
.
Add
(
this
.
button4
);
this
.
Controls
.
Add
(
this
.
button4
);
this
.
Controls
.
Add
(
this
.
button3
);
this
.
Controls
.
Add
(
this
.
button3
);
this
.
Controls
.
Add
(
this
.
button2
);
this
.
Controls
.
Add
(
this
.
button2
);
this
.
Controls
.
Add
(
this
.
b
utton1
);
this
.
Controls
.
Add
(
this
.
b
tnStart
);
this
.
Name
=
"FrmRobotTest"
;
this
.
Name
=
"FrmRobotTest"
;
this
.
Text
=
"network scanning"
;
this
.
Text
=
"network scanning"
;
this
.
FormClosing
+=
new
System
.
Windows
.
Forms
.
FormClosingEventHandler
(
this
.
FrmRobotTest_FormClosing
);
this
.
FormClosing
+=
new
System
.
Windows
.
Forms
.
FormClosingEventHandler
(
this
.
FrmRobotTest_FormClosing
);
...
@@ -158,13 +160,13 @@
...
@@ -158,13 +160,13 @@
#
endregion
#
endregion
private
System
.
Windows
.
Forms
.
Button
b
utton1
;
private
System
.
Windows
.
Forms
.
Button
b
tnStart
;
private
System
.
Windows
.
Forms
.
Button
button2
;
private
System
.
Windows
.
Forms
.
Button
button2
;
private
System
.
Windows
.
Forms
.
Button
button3
;
private
System
.
Windows
.
Forms
.
Button
button3
;
private
System
.
Windows
.
Forms
.
Timer
timer1
;
private
System
.
Windows
.
Forms
.
Timer
timer1
;
private
System
.
Windows
.
Forms
.
Button
button4
;
private
System
.
Windows
.
Forms
.
Button
button4
;
private
System
.
Windows
.
Forms
.
ComboBox
comboBox1
;
private
System
.
Windows
.
Forms
.
ComboBox
comboBox1
;
private
System
.
Windows
.
Forms
.
Button
b
utton5
;
private
System
.
Windows
.
Forms
.
Button
b
tnStop
;
private
System
.
Windows
.
Forms
.
ListView
listView1
;
private
System
.
Windows
.
Forms
.
ListView
listView1
;
private
System
.
Windows
.
Forms
.
RichTextBox
richTextBox1
;
private
System
.
Windows
.
Forms
.
RichTextBox
richTextBox1
;
}
}
...
...
ABBRobotTest/FrmRobotTest.cs
查看文件 @
0fbc88e
...
@@ -109,7 +109,7 @@ namespace ABBRobotTest
...
@@ -109,7 +109,7 @@ namespace ABBRobotTest
item
.
SubItems
.
Add
(
controllerInfo
.
Id
);
item
.
SubItems
.
Add
(
controllerInfo
.
Availability
.
ToString
());
item
.
SubItems
.
Add
(
controllerInfo
.
IsVirtual
.
ToString
());
item
.
SubItems
.
Add
(
controllerInfo
.
SystemName
);
item
.
SubItems
.
Add
(
controllerInfo
.
Version
.
ToString
());
item
.
SubItems
.
Add
(
controllerInfo
.
ControllerName
);
this
.
listView1
.
Items
.
Add
(
item
);
item
.
Tag
item
.
SubItems
.
Add
(
controllerInfo
.
Id
);
item
.
SubItems
.
Add
(
controllerInfo
.
Availability
.
ToString
());
item
.
SubItems
.
Add
(
controllerInfo
.
IsVirtual
.
ToString
());
item
.
SubItems
.
Add
(
controllerInfo
.
SystemName
);
item
.
SubItems
.
Add
(
controllerInfo
.
Version
.
ToString
());
item
.
SubItems
.
Add
(
controllerInfo
.
ControllerName
);
this
.
listView1
.
Items
.
Add
(
item
);
item
.
Tag
=
controllerInfo
;
=
controllerInfo
;
}
}
private
void
b
utton1
_Click
(
object
sender
,
EventArgs
e
)
private
void
b
tnStart
_Click
(
object
sender
,
EventArgs
e
)
{
{
try
try
{
{
...
@@ -224,7 +224,7 @@ namespace ABBRobotTest
...
@@ -224,7 +224,7 @@ namespace ABBRobotTest
}
}
}
}
private
void
b
utton5
_Click
(
object
sender
,
EventArgs
e
)
private
void
b
tnStop
_Click
(
object
sender
,
EventArgs
e
)
{
{
try
try
{
{
...
...
ABBRobotTest/Program.cs
查看文件 @
0fbc88e
using
System
;
using
log4net.Config
;
using
System
;
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Linq
;
using
System.Threading.Tasks
;
using
System.Threading.Tasks
;
...
@@ -14,9 +15,10 @@ namespace ABBRobotTest
...
@@ -14,9 +15,10 @@ namespace ABBRobotTest
[
STAThread
]
[
STAThread
]
static
void
Main
()
static
void
Main
()
{
{
XmlConfigurator
.
Configure
();
Application
.
EnableVisualStyles
();
Application
.
EnableVisualStyles
();
Application
.
SetCompatibleTextRenderingDefault
(
false
);
Application
.
SetCompatibleTextRenderingDefault
(
false
);
Application
.
Run
(
new
FrmRobot
Test
());
Application
.
Run
(
new
FrmRobot
Main
());
}
}
}
}
}
}
doc/机器人程序.txt
→
doc/
ABB
机器人程序.txt
查看文件 @
0fbc88e
MODULE aaa
MODULE aaa
PERS tooldata MyTool:=[TRUE,[[31.792631019,0,229.638935148],[0.945518576,0,0.325568154,0]],[1,[0,0,1],[1,0,0,0],0,0,0]];
PERS tooldata MyTool:=[TRUE,[[31.792631019,0,229.638935148],[0.945518576,0,0.325568154,0]],[1,[0,0,1],[1,0,0,0],0,0,0]];
CONST robtarget p1:=[[
811.5983,-418.1001,718.5829],[0.05370732,1.526351E-08,-0.9985567,2.109476E-08],[-1,0,-1,0
],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p1:=[[
-58.97,-251.82,388.62],[0.718543,-0.63799,0.152339,0.23121],[0,0,-1,1
],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p2:=[[
825.4576,0.000000156,533.4979],[0.03072789,-0.000000002,-0.9995278,-0.000000001],[0,0,0,0
],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p2:=[[
133.92,-253.65,388.62],[0.718545,-0.637985,0.152332,0.231221],[-1,-1,-1,1
],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p3:=[[825.4576,0.000001046,609.3],[0.03072784,-0.000000013,-0.9995278,-0.00000001],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p3:=[[825.4576,0.000001046,609.3],[0.03072784,-0.000000013,-0.9995278,-0.00000001],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p4:=[[825.4576,-0.000000111,675.4476],[0.03072794,0.000000001,-0.9995278,0.000000001],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p4:=[[825.4576,-0.000000111,675.4476],[0.03072794,0.000000001,-0.9995278,0.000000001],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p5:=[[825.4576,0.000000831,745.9818],[0.03072797,-0.000000011,-0.9995278,-0.000000008],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget p5:=[[825.4576,0.000000831,745.9818],[0.03072797,-0.000000011,-0.9995278,-0.000000008],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
...
@@ -34,11 +34,12 @@ MODULE aaa
...
@@ -34,11 +34,12 @@ MODULE aaa
CONST robtarget p30:=[[969.94,296.56,505.18],[0.17191,0.382088,-0.905649,0.0652315],[0,0,-1,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
CONST robtarget p30:=[[969.94,296.56,505.18],[0.17191,0.382088,-0.905649,0.0652315],[0,0,-1,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
PERS speeddata speed1:=[
345
,50,400,100];
PERS speeddata speed1:=[
50
,50,400,100];
VAR socketdev socket_server;
VAR socketdev socket_server;
VAR socketdev socket_client;
VAR socketdev socket_client;
PERS string str_address:="127.0.0.1";
PERS string str_address:="127.0.0.1";
!PERS string str_address:="192.168.201.88";
PERS num n_port:=21;
PERS num n_port:=21;
VAR string strReceive:="p1,L,100";
VAR string strReceive:="p1,L,100";
...
@@ -57,59 +58,65 @@ MODULE aaa
...
@@ -57,59 +58,65 @@ MODULE aaa
VAR num LengBit4:=0;
VAR num LengBit4:=0;
VAR num starBit4:=0;
VAR num starBit4:=0;
PERS string s1_1:="movep";
PERS string s1_1:="movep";
PERS string s1_2:="p2
7
";
PERS string s1_2:="p2";
PERS string s1_3:="
l
";
PERS string s1_3:="
L
";
PERS string s1_4:="
345
";
PERS string s1_4:="
50
";
VAR bool flag1:=false;
VAR bool flag1:=false;
PERS num value_1:=700;
PERS num value_1:=700;
PERS num value_2:=50;
PERS num value_2:=50;
PERS num value_3:=
345
;
PERS num value_3:=
50
;
VAR robtarget pTarget:=[[700,50,700],[0.0258621,-0.000364211,-0.999665,0.000003063],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
VAR robtarget pTarget:=[[700,50,700],[0.0258621,-0.000364211,-0.999665,0.000003063],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
VAR robtarget pTemp:=[[700,50,700],[0.0258621,-0.000364211,-0.999665,3.06266E-6],[0,-1,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
VAR robtarget pTemp:=[[700,50,700],[0.0258621,-0.000364211,-0.999665,3.06266E-6],[0,-1,0,0],[9E+9,9E+9,9E+9,9E+9,9E+9,9E+9]];
PERS bool bLinear:=TRUE;
PERS bool bLinear:=TRUE;
PERS bool dataOk:=TRUE;
PERS bool dataOk:=TRUE;
VAR num len:=0;
VAR num len:=0;
TASK PERS tooldata tool1:=[TRUE,[[-19.2067,-21.2174,16.2824],[1,0,0,0]],[1,[0,0,1],[1,0,0,0],0,0,0]];
TASK PERS wobjdata wobj1:=[FALSE,TRUE,"",[[767.868,61.732,519.513],[0.710458,6.744E-06,-2.16356E-05,-0.703739]],[[0,0,0],[1,0,0,0]]];
PERS zonedata zone1:=[FALSE,5,8,8,0.8,8,0.8];
PERS loaddata load1:=[4,[0,0,0],[1,0,0,0],0,0,0];
PROC modifyPoint()
PROC modifyPoint()
MoveL p1,speed1,z50,MyTool\WObj:=wobj0;
MoveL p2,speed1,z50,MyTool\WObj:=wobj0;
MoveL p1,speed1,z50,tool1\WObj:=wobj1;
MoveL p3,speed1,z50,MyTool\WObj:=wobj0;
MoveL p2,speed1,z50,tool1\WObj:=wobj1;
MoveL p4,speed1,z50,MyTool\WObj:=wobj0;
MoveL p3,speed1,z50,tool1\WObj:=wobj1;
MoveL p5,speed1,z50,MyTool\WObj:=wobj0;
MoveL p4,speed1,z50,tool1\WObj:=wobj1;
MoveL p6,speed1,z50,MyTool\WObj:=wobj0;
MoveL p5,speed1,z50,tool1\WObj:=wobj1;
MoveL p7,speed1,z50,MyTool\WObj:=wobj0;
MoveL p6,speed1,z50,tool1\WObj:=wobj1;
MoveL p8,speed1,z50,MyTool\WObj:=wobj0;
MoveL p7,speed1,z50,tool1\WObj:=wobj1;
MoveL p9,speed1,z50,MyTool\WObj:=wobj0;
MoveL p8,speed1,z50,tool1\WObj:=wobj1;
MoveL p10,speed1,z50,MyTool\WObj:=wobj0;
MoveL p9,speed1,z50,tool1\WObj:=wobj1;
MoveL p10,speed1,z50,tool1\WObj:=wobj1;
MoveL p11,speed1,z50,MyTool\WObj:=wobj0;
MoveL p12,speed1,z50,MyTool\WObj:=wobj0;
MoveL p11,speed1,z50,tool1\WObj:=wobj1;
MoveL p13,speed1,z50,MyTool\WObj:=wobj0;
MoveL p12,speed1,z50,tool1\WObj:=wobj1;
MoveL p14,speed1,z50,MyTool\WObj:=wobj0;
MoveL p13,speed1,z50,tool1\WObj:=wobj1;
MoveL p15,speed1,z50,MyTool\WObj:=wobj0;
MoveL p14,speed1,z50,tool1\WObj:=wobj1;
MoveL p16,speed1,z50,MyTool\WObj:=wobj0;
MoveL p15,speed1,z50,tool1\WObj:=wobj1;
MoveL p17,speed1,z50,MyTool\WObj:=wobj0;
MoveL p16,speed1,z50,tool1\WObj:=wobj1;
MoveL p18,speed1,z50,MyTool\WObj:=wobj0;
MoveL p17,speed1,z50,tool1\WObj:=wobj1;
MoveL p19,speed1,z50,MyTool\WObj:=wobj0;
MoveL p18,speed1,z50,tool1\WObj:=wobj1;
MoveL p20,speed1,z50,MyTool\WObj:=wobj0;
MoveL p19,speed1,z50,tool1\WObj:=wobj1;
MoveL p20,speed1,z50,tool1\WObj:=wobj1;
MoveL p21, speed1, z50, MyTool\WObj:=wobj0;
MoveL p22,speed1,z50,MyTool\WObj:=wobj0;
MoveL p21,speed1,z50,tool1\WObj:=wobj1;
MoveL p23,speed1,z50,MyTool\WObj:=wobj0;
MoveL p22,speed1,z50,tool1\WObj:=wobj1;
MoveL p24,speed1,z50,MyTool\WObj:=wobj0;
MoveL p23,speed1,z50,tool1\WObj:=wobj1;
MoveL p25,speed1,z50,MyTool\WObj:=wobj0;
MoveL p24,speed1,z50,tool1\WObj:=wobj1;
MoveL p26,speed1,z50,MyTool\WObj:=wobj0;
MoveL p25,speed1,z50,tool1\WObj:=wobj1;
MoveL p27,speed1,z50,MyTool\WObj:=wobj0;
MoveL p26,speed1,z50,tool1\WObj:=wobj1;
MoveL p28,speed1,z50,MyTool\WObj:=wobj0;
MoveL p27,speed1,z50,tool1\WObj:=wobj1;
MoveL p29,speed1,z50,MyTool\WObj:=wobj0;
MoveL p28,speed1,z50,tool1\WObj:=wobj1;
MoveL p30,speed1,z50,MyTool\WObj:=wobj0;
MoveL p29,speed1,z50,tool1\WObj:=wobj1;
MoveL p30,speed1,z50,tool1\WObj:=wobj1;
ENDPROC
ENDPROC
PROC main()
PROC main()
zone1:=z5;
SocketPro;
SocketPro;
error
error
...
@@ -131,27 +138,23 @@ MODULE aaa
...
@@ -131,27 +138,23 @@ MODULE aaa
ENDIF
ENDIF
ENDPROC
ENDPROC
! PROC Reconnect()
! TPErase;
PROC loadexample()
! SocketCreate socket_client;
VAR robtarget ptemp:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
! SocketConnect socket_client,str_address,n_port\Time:=2;
VAR robtarget pPlace:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
! WHILE TRUE DO
MoveL Offs(pTemp,0,0,10),speed1,z50,tool1\WObj:=wobj1;
! WaitTime 1;
MoveL pTemp,speed1,fine,tool1\WObj:=wobj1;
! SocketReceive socket_client\Str:=strReceive;
GripLoad load1;
! SocketSend socket_client\Str:=strSend;
MoveL Offs(pTemp,0,0,10),speed1,z50,tool1\WObj:=wobj1;
! strSend:=strSend+"a";
! ENDWHILE
! ERROR
MoveL Offs(pPlace,0,0,10),speed1,z50,tool1\WObj:=wobj1;
! IF ERRNO=ERR_SOCK_TIMEOUT THEN
MoveL pPlace,speed1,fine,tool1\WObj:=wobj1;
! ResetRetryCount;
GripLoad load0;
! RETRY;
MoveL Offs(pPlace,0,0,10),speed1,z50,tool1\WObj:=wobj1;
! ELSEIF ERRNO=ERR_SOCK_CLOSED THEN
! socketRecover;
ENDPROC
! ResetRetryCount;
! RETRY;
! ENDIF
! ENDPROC
PROC socketRecover()
PROC socketRecover()
SocketClose socket_client;
SocketClose socket_client;
...
@@ -172,7 +175,7 @@ MODULE aaa
...
@@ -172,7 +175,7 @@ MODULE aaa
!connect server
!connect server
SocketConnect socket_client,str_address,n_port\Time:=WAIT_MAX;
SocketConnect socket_client,str_address,n_port\Time:=WAIT_MAX;
WHILE TRUE DO
WHILE TRUE DO
pTarget:=CRobT(\Tool:=
MyTool
);
pTarget:=CRobT(\Tool:=
tool1
);
ptemp:=pTarget;
ptemp:=pTarget;
!receive instruction
!receive instruction
label1:
label1:
...
@@ -183,20 +186,32 @@ MODULE aaa
...
@@ -183,20 +186,32 @@ MODULE aaa
! GOTO label1;
! GOTO label1;
IF s1_1="movep" THEN
IF s1_1="movep" THEN
IF bLinear THEN
IF bLinear THEN
MoveL pTarget,speed1,fine,MyTool\WObj:=wobj0;
MoveL pTarget,speed1,fine,tool1\WObj:=wobj1;
ELSE
MoveJ pTarget,speed1,fine,tool1\WObj:=wobj1;
ENDIF
SocketSend socket_client\Str:=strReceive+strSend;
SocketSend socket_client\Str:=s1_1+","+s1_2+","+strSend;
ELSEIF s1_1="moveget" THEN
IF bLinear THEN
! MoveL Offs(pTarget,0,0,10), speed1, zone1, tool1\WObj:=wobj1;
MoveL pTarget,speed1,fine,tool1\WObj:=wobj1;
GripLoad load0;
MoveL Offs(pTarget,0,0,-50),speed1,zone1,tool1\WObj:=wobj1;
MoveL Offs(pTarget,0,-60,0),speed1,zone1,tool1\WObj:=wobj1;
ELSE
ELSE
MoveJ pTarget,speed1,fine,
MyTool\WObj:=wobj0
;
MoveJ pTarget,speed1,fine,
tool1\WObj:=wobj1
;
ENDIF
ENDIF
SocketSend socket_client\Str:=strReceive+strSend;
SocketSend socket_client\Str:=strReceive+strSend;
SocketSend socket_client\Str:=s1_1+","+s1_2+","+strSend;
SocketSend socket_client\Str:=s1_1+","+s1_2+","+strSend;
ELSEIF s1_1="move
2
" THEN
ELSEIF s1_1="move
put
" THEN
IF bLinear THEN
IF bLinear THEN
MoveL
Offs(pTarget,0,0,10),speed1,fine,MyTool\WObj:=wobj0
;
MoveL
pTarget,speed1,fine,tool1\WObj:=wobj1
;
MoveL pTarget,speed1,fine,MyTool\WObj:=wobj0
;
GripLoad load1
;
MoveL Offs(pTarget,
-50,0,0),speed1,fine,MyTool\WObj:=wobj0
;
MoveL Offs(pTarget,
0,0,50),speed1,zone1,tool1\WObj:=wobj1
;
MoveL Offs(pTarget,0,
60,0),speed1,fine,MyTool\WObj:=wobj0
;
MoveL Offs(pTarget,0,
-60,0),speed1,zone1,tool1\WObj:=wobj1
;
ELSE
ELSE
MoveJ pTarget,speed1,fine,
MyTool\WObj:=wobj0
;
MoveJ pTarget,speed1,fine,
tool1\WObj:=wobj1
;
ENDIF
ENDIF
SocketSend socket_client\Str:=strReceive+strSend;
SocketSend socket_client\Str:=strReceive+strSend;
SocketSend socket_client\Str:=s1_1+","+s1_2+","+strSend;
SocketSend socket_client\Str:=s1_1+","+s1_2+","+strSend;
...
@@ -205,8 +220,6 @@ MODULE aaa
...
@@ -205,8 +220,6 @@ MODULE aaa
SocketSend socket_client\Str:=strReceive+" DATA ERROR ";
SocketSend socket_client\Str:=strReceive+" DATA ERROR ";
ENDIF
ENDIF
ENDWHILE
ENDWHILE
ERROR
ERROR
...
@@ -224,15 +237,11 @@ MODULE aaa
...
@@ -224,15 +237,11 @@ MODULE aaa
PROC strParse(string string1)
PROC strParse(string string1)
lable2:
lable2:
len:=StrLen(string1);
len:=StrLen(string1);
starBit1:=1;
starBit1:=1;
endBit1:=StrFind(string1,starBit1,",");
endBit1:=StrFind(string1,starBit1,",");
LengBit1:=endBit1-starBit1;
LengBit1:=endBit1-starBit1;
starBit2:=endBit1+1;
starBit2:=endBit1+1;
IF starBit2>len THEN
IF starBit2>len THEN
...
@@ -276,6 +285,10 @@ MODULE aaa
...
@@ -276,6 +285,10 @@ MODULE aaa
! get speed
! get speed
flag1:=StrToVal(s1_4,value_3);
flag1:=StrToVal(s1_4,value_3);
IF value_3>100 THEN
value_3:=100;
ENDIF
speed1.v_tcp:=value_3;
speed1.v_tcp:=value_3;
dataOk:=TRUE;
dataOk:=TRUE;
ERROR
ERROR
...
@@ -286,8 +299,15 @@ MODULE aaa
...
@@ -286,8 +299,15 @@ MODULE aaa
ENDIF
ENDIF
ENDPROC
ENDPROC
PROC Path_10()
!PROC Path_10()
! MoveL Target_10,v1000,z100,MyTool\WObj:=wobj0;
! MoveL Target_10,v1000,z100,tool1\WObj:=wobj1;
! MoveL Target_20,v1000,z100,MyTool\WObj:=wobj0;
! MoveL Target_20,v1000,z100,tool1\WObj:=wobj1;
!ENDPROC
PROC Routine1()
MoveL [[-59.00,-191.91,358.37],[0.718539,-0.637964,0.152099,0.231451],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v100,z50,tool1\WObj:=wobj1;
MoveL [[117.05,-193.58,358.36],[0.718537,-0.63796,0.1521,0.231467],[-1,-1,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v100,z10,tool1\WObj:=wobj1;
MoveL [[117.05,-193.58,473.42],[0.718538,-0.637961,0.152095,0.231465],[-1,-1,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v100,z10,tool1\WObj:=wobj1;
MoveL [[-16.00,-192.31,473.42],[0.718545,-0.637953,0.152097,0.231464],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v100,z10,tool1\WObj:=wobj1;
ENDPROC
ENDPROC
ENDMODULE
ENDMODULE
\ No newline at end of file
\ No newline at end of file
source/AssemblyLineClient/App.config
查看文件 @
0fbc88e
...
@@ -41,6 +41,8 @@
...
@@ -41,6 +41,8 @@
<
add
key
=
"DIMS"
value
=
"120"
/>
<
add
key
=
"DIMS"
value
=
"120"
/>
<
add
key
=
"DOMS"
value
=
"300"
/>
<
add
key
=
"DOMS"
value
=
"300"
/>
<
add
key
=
"LineRunTest"
value
=
"1"
/>
<
add
key
=
"LineRunTest"
value
=
"1"
/>
<!--
ABB
机器人服务器-->
<
add
key
=
"ABBServerPort"
value
=
"21"
/>
</
appSettings
>
</
appSettings
>
<
log4net
>
<
log4net
>
<
appender
name
=
"RollingLogFileAppender"
type
=
"log4net.Appender.RollingFileAppender"
>
<
appender
name
=
"RollingLogFileAppender"
type
=
"log4net.Appender.RollingFileAppender"
>
...
...
source/Common/Setting_Init.cs
查看文件 @
0fbc88e
...
@@ -72,5 +72,7 @@ namespace OnlineStore.Common
...
@@ -72,5 +72,7 @@ namespace OnlineStore.Common
public
static
string
LineRunTest
=
"LineRunTest"
;
public
static
string
LineRunTest
=
"LineRunTest"
;
public
static
string
Line_dischargeLine_count
=
"Line_dischargeLine_count"
;
public
static
string
Line_dischargeLine_count
=
"Line_dischargeLine_count"
;
public
static
string
ConfigPath_DischargeLine
=
"ConfigPath_DischargeLine"
;
public
static
string
ConfigPath_DischargeLine
=
"ConfigPath_DischargeLine"
;
public
static
string
ABBServerPort
=
"ABBServerPort"
;
}
}
}
}
source/DeviceLibrary/LineConfig/Config_FeedingEquip_1.csv
查看文件 @
0fbc88e
...
@@ -13,6 +13,9 @@ PRO,0,批量上料轴减速度,BatchAxis_DelSpeed,400,,,,,
...
@@ -13,6 +13,9 @@ PRO,0,批量上料轴减速度,BatchAxis_DelSpeed,400,,,,,
PRO,0,批量上料轴原点低速度,BatchAxis_HomeLowSpeed,100,,,,,
PRO,0,批量上料轴原点低速度,BatchAxis_HomeLowSpeed,100,,,,,
PRO,0,批量上料轴原点高速,BatchAxis_HomeHighSpeed,200,,,,,
PRO,0,批量上料轴原点高速,BatchAxis_HomeHighSpeed,200,,,,,
PRO,0,批量上料轴原点加速度,BatchAxis_HomeAddSpeed,200,,,,,
PRO,0,批量上料轴原点加速度,BatchAxis_HomeAddSpeed,200,,,,,
PRO,0,移栽上下轴慢速上升速度,BatchAxis_SlowSpeed,200,,,,,
PRO,0,批量上料轴P1速度,BatchAxis_P1Speed,400,,,,,
,,,,,,,,,
,,,,,,,,,
,,,,,,,,,
PRO,0,移栽上下轴在移栽上下降的位置,UpDownPositions,0=180000;,,,,,
PRO,0,移栽上下轴在移栽上下降的位置,UpDownPositions,0=180000;,,,,,
PRO,0,移栽上下轴在料仓门口下降的位置,UpDownBoxPositions,0=116000;,,,,,
PRO,0,移栽上下轴在料仓门口下降的位置,UpDownBoxPositions,0=116000;,,,,,
...
@@ -25,7 +28,7 @@ PRO,0,移栽上下轴原点低速度,UpdownAxis_HomeLowSpeed,100,,,,,
...
@@ -25,7 +28,7 @@ PRO,0,移栽上下轴原点低速度,UpdownAxis_HomeLowSpeed,100,,,,,
PRO,0,移栽上下轴原点高速,UpdownAxis_HomeHighSpeed,200,,,,,
PRO,0,移栽上下轴原点高速,UpdownAxis_HomeHighSpeed,200,,,,,
PRO,0,移栽上下轴原点加速度,UpdownAxis_HomeAddSpeed,200,,,,,
PRO,0,移栽上下轴原点加速度,UpdownAxis_HomeAddSpeed,200,,,,,
PRO,0,移栽上下轴下降速度,UpdownAxis_DownSpeed,500,,,,,
PRO,0,移栽上下轴下降速度,UpdownAxis_DownSpeed,500,,,,,
PRO,0,移栽上下轴
走到待机点
速度,UpdownAxis_P1Speed,400,,,,,
PRO,0,移栽上下轴
P1
速度,UpdownAxis_P1Speed,400,,,,,
,,,,,,,,,
,,,,,,,,,
,,,,,,,,,
,,,,,,,,,
,,,,,,,,,
,,,,,,,,,
...
@@ -54,8 +57,8 @@ DI,0,SL1上料横移气缸取料端,SL_FeedSideWayCylinder_Take,5,PRO_AOI_IP_12,0,SL1上料
...
@@ -54,8 +57,8 @@ DI,0,SL1上料横移气缸取料端,SL_FeedSideWayCylinder_Take,5,PRO_AOI_IP_12,0,SL1上料
DI,0,SL1上料横移气缸放料端,SL_FeedSideWayCylinder_Emptying,6,PRO_AOI_IP_12,0,SL1上料横移气缸放料端,X127,X127
DI,0,SL1上料横移气缸放料端,SL_FeedSideWayCylinder_Emptying,6,PRO_AOI_IP_12,0,SL1上料横移气缸放料端,X127,X127
DI,0,SL1上料气缸放松端,SL_FeedCylinder_Slack,7,PRO_AOI_IP_12,0,SL1上料气缸放松端,X128,X128
DI,0,SL1上料气缸放松端,SL_FeedCylinder_Slack,7,PRO_AOI_IP_12,0,SL1上料气缸放松端,X128,X128
DI,0,SL1上料气缸夹紧端,SL_FeedCylinder_Tighten,8,PRO_AOI_IP_12,0,SL1上料气缸夹紧端,X129,X129
DI,0,SL1上料气缸夹紧端,SL_FeedCylinder_Tighten,8,PRO_AOI_IP_12,0,SL1上料气缸夹紧端,X129,X129
DI,1000,环形线横移1托盘检测,SW1_
SideWay_
TrayCheck,9,PRO_AOI_IP_12,0,环形线横移1托盘检测,X130,X130
DI,1000,环形线横移1托盘检测,SW1_TrayCheck,9,PRO_AOI_IP_12,0,环形线横移1托盘检测,X130,X130
DI,1000,环形线横移1料盘检测1,SW1_
SideWay_
ReelCheck,10,PRO_AOI_IP_12,0,环形线横移1料盘检测1,X131,X131
DI,1000,环形线横移1料盘检测1,SW1_ReelCheck,10,PRO_AOI_IP_12,0,环形线横移1料盘检测1,X131,X131
DI,1000,环形线横移1顶升上升端,SW1_TopCylinder_Up,11,PRO_AOI_IP_12,0,环形线横移1顶升上升端,X132,X132
DI,1000,环形线横移1顶升上升端,SW1_TopCylinder_Up,11,PRO_AOI_IP_12,0,环形线横移1顶升上升端,X132,X132
DI,1000,环形线横移1顶升下降端,SW1_TopCylinder_Down,12,PRO_AOI_IP_12,0,环形线横移1顶升下降端,X133,X133
DI,1000,环形线横移1顶升下降端,SW1_TopCylinder_Down,12,PRO_AOI_IP_12,0,环形线横移1顶升下降端,X133,X133
DI,1000,环形线横移1定位上升端,SW1_LocationCylinder_Up,13,PRO_AOI_IP_12,0,环形线横移1定位上升端,X134,X134
DI,1000,环形线横移1定位上升端,SW1_LocationCylinder_Up,13,PRO_AOI_IP_12,0,环形线横移1定位上升端,X134,X134
...
...
source/DeviceLibrary/assemblyLine/FeedingEquip.cs
查看文件 @
0fbc88e
...
@@ -78,14 +78,41 @@ namespace OnlineStore.DeviceLibrary
...
@@ -78,14 +78,41 @@ namespace OnlineStore.DeviceLibrary
public
override
void
TimerProcess
()
public
override
void
TimerProcess
()
{
{
if
(
IOValue
(
IO_Type
.
SL_SuddenStop_BTN
).
Equals
(
IO_VALUE
.
LOW
))
{
WarnMsg
=
Name
+
"收到急停信号"
;
LogUtil
.
error
(
WarnMsg
);
Alarm
(
LineAlarmType
.
SuddenStop
);
return
;
}
if
(
IOValue
(
IO_Type
.
SL_Reset_BTN
).
Equals
(
IO_VALUE
.
HIGH
))
{
if
(
alarmType
.
Equals
(
LineAlarmType
.
None
))
{
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
LogUtil
.
error
(
Name
+
"收到复位信号,当前无报警,不需要复位"
);
}
else
{
LogUtil
.
error
(
Name
+
"收到复位信号,当前无报警,正在"
+
MoveInfo
.
MoveType
+
"处理中,不需要复位"
);
}
}
else
{
LogUtil
.
info
(
Name
+
"收到复位信号,开始复位"
);
Reset
();
}
return
;
}
BusyMoveProcess
();
BusyMoveProcess
();
//判断流水线打开了才可以运行
//判断流水线打开了才可以运行
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
None
))
{
{
if
(
LineManager
.
Line
.
CanProcessLine
())
if
(
LineManager
.
Line
.
CanProcessLine
())
{
{
// LogUtil.info("StartCheckFixture");
StartCheckFixture
();
// StartCheckFixture();
}
}
}
}
IOTimeOutProcess
();
IOTimeOutProcess
();
...
@@ -99,6 +126,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -99,6 +126,8 @@ namespace OnlineStore.DeviceLibrary
public
bool
ReturnHome
()
public
bool
ReturnHome
()
{
{
mainTimer
.
Stop
();
mainTimer
.
Stop
();
MoveInfo
.
EndMove
();
SecondMoveInfo
.
EndMove
();
if
(!
RunAxis
(
true
,
Config
.
Batch_Axis
))
if
(!
RunAxis
(
true
,
Config
.
Batch_Axis
))
{
{
return
false
;
return
false
;
...
@@ -110,21 +139,9 @@ namespace OnlineStore.DeviceLibrary
...
@@ -110,21 +139,9 @@ namespace OnlineStore.DeviceLibrary
alarmType
=
LineAlarmType
.
None
;
alarmType
=
LineAlarmType
.
None
;
runStatus
=
LineRunStatus
.
HomeMoving
;
runStatus
=
LineRunStatus
.
HomeMoving
;
LogInfo
(
"开始原点返回: (上下
气缸回原点,阻挡气缸输入=0
)开始"
);
LogInfo
(
"开始原点返回: (上下
伺服原点返回,上料伺服原点返回
)开始"
);
MoveInfo
.
NewMove
(
LineMoveType
.
ReturnHome
);
MoveInfo
.
NewMove
(
LineMoveType
.
ReturnHome
);
//移载装置原点状态:顶升气缸下降端,前后气缸后退端,上下气缸上升端,夹料气缸放松端,阻挡气缸输入=0
UpdownHomeMove
();
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Down, IO_Type.UpDownCylinder_Up);
if
(
IsDebug
)
{
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
StopCylinder_Down2
,
IO_VALUE
.
HIGH
);
}
else
{
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
StopCylinder_Down2
,
IO_VALUE
.
LOW
);
}
return
true
;
return
true
;
}
}
/// <summary>
/// <summary>
...
@@ -143,40 +160,37 @@ namespace OnlineStore.DeviceLibrary
...
@@ -143,40 +160,37 @@ namespace OnlineStore.DeviceLibrary
return
false
;
return
false
;
}
}
alarmType
=
LineAlarmType
.
None
;
alarmType
=
LineAlarmType
.
None
;
//重置时清理盘号,从头开始判断
LogInfo
(
"开始重置: (上下伺服原点返回,上料伺服原点返回)开始;"
);
// preTrayNum = 0;
// currMoveTrayNum = 0;
LogInfo
(
"开始重置:清零上一个托盘号,(上下气缸回原点,阻挡气缸输入=0 )开始;"
);
runStatus
=
LineRunStatus
.
Reset
;
runStatus
=
LineRunStatus
.
Reset
;
MoveInfo
.
NewMove
(
LineMoveType
.
Reset
);
MoveInfo
.
NewMove
(
LineMoveType
.
Reset
);
StartReset
();
UpdownHomeMove
();
return
true
;
// CylinderMove(MoveInfo, IO_Type.UpDownCylinder_Down, IO_Type.UpDownCylinder_Up);
if
(
IsDebug
)
{
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
StopCylinder_Down2
,
IO_VALUE
.
HIGH
);
}
}
else
private
void
StartReset
()
{
{
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
SL_HddLed
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
StopCylinder_Down2
,
IO_VALUE
.
LOW
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
FR_01_StopCylinderMove
);
}
ACAxisHomeMove
(
Config
.
UpDown_Axis
);
ACAxisHomeMove
(
Config
.
Batch_Axis
);
isInPro
=
false
;
isInPro
=
false
;
return
true
;
}
}
/// <summary>
/// <summary>
/// 重置处理
/// 重置处理
/// </summary>
/// </summary>
protected
override
void
ResetProcess
()
protected
override
void
ResetProcess
()
{
{
ReturnHomeProcess
();
}
/// <summary>
/// 原点返回处理
/// </summary>
protected
override
void
ReturnHomeProcess
()
{
if
(
MoveInfo
.
IsInWait
)
if
(
MoveInfo
.
IsInWait
)
{
{
CheckWait
(
MoveInfo
);
CheckWait
(
MoveInfo
);
}
}
if
(!
MoveInfo
.
IsInWait
)
if
(!
MoveInfo
.
IsInWait
)
{
{
//流水线各装置复原位,夹料气缸状态不变
//流水线各装置复原位,夹料气缸状态不变
//阻挡气缸全部=0
//阻挡气缸全部=0
...
@@ -185,22 +199,17 @@ namespace OnlineStore.DeviceLibrary
...
@@ -185,22 +199,17 @@ namespace OnlineStore.DeviceLibrary
//复位时夹紧气缸需要发送,不然后面出入库会有问题
//复位时夹紧气缸需要发送,不然后面出入库会有问题
switch
(
MoveInfo
.
MoveStep
)
switch
(
MoveInfo
.
MoveStep
)
{
{
case
LineMoveStep
.
MH_UpDownHomeMove
:
case
LineMoveStep
.
FR_01_StopCylinderMove
:
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
MH_UpDownCylinder_Up
);
LogInfo
(
"重置: (上下轴原点返回完成,上下轴走到待机点 )开始"
);
UpdownUpMove
();
break
;
case
LineMoveStep
.
MH_UpDownCylinder_Up
:
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
MH_OtherCylinder_Back
);
LogInfo
(
MoveInfo
.
MoveType
+
":开始气缸下降"
);
LogInfo
(
"重置: (上升到位,顶升气缸下降,前后气缸回退 )开始"
);
break
;
CylinderMove
(
MoveInfo
,
IO_Type
.
TopCylinder_UP
,
IO_Type
.
TopCylinder_Down
);
case
LineMoveStep
.
FR_02_LocationCylinderDown
:
CylinderMove
(
MoveInfo
,
IO_Type
.
BeforeAfterCylinder_Before
,
IO_Type
.
BeforeAfterCylinder_After
);
CylinderMove
(
MoveInfo
,
IO_Type
.
ClampCylinder_Slack
,
IO_Type
.
ClampCylinder_Tighten
);
break
;
break
;
case
LineMoveStep
.
FR_03_AxisHomeMove
:
break
;
case
LineMoveStep
.
FR_04_AxisToP1
:
case
LineMoveStep
.
MH_OtherCylinder_Back
:
LogInfo
(
"重置完成!"
);
LogInfo
(
"重置完成!"
);
runStatus
=
LineRunStatus
.
Runing
;
runStatus
=
LineRunStatus
.
Runing
;
MoveInfo
.
EndMove
();
MoveInfo
.
EndMove
();
break
;
break
;
...
@@ -211,53 +220,6 @@ namespace OnlineStore.DeviceLibrary
...
@@ -211,53 +220,6 @@ namespace OnlineStore.DeviceLibrary
}
}
}
}
}
}
/// <summary>
/// 原点返回处理
/// </summary>
protected
override
void
ReturnHomeProcess
()
{
if
(
MoveInfo
.
IsInWait
)
{
CheckWait
(
MoveInfo
);
}
if
(!
MoveInfo
.
IsInWait
)
{
switch
(
MoveInfo
.
MoveStep
)
{
case
LineMoveStep
.
MH_UpDownHomeMove
:
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
MH_UpDownCylinder_Up
);
LogInfo
(
"原点返回: (上下轴原点返回完成,上下轴走到待机点 )开始"
);
UpdownUpMove
();
break
;
case
LineMoveStep
.
MH_UpDownCylinder_Up
:
LogInfo
(
"原点返回:(上升到位,顶升气缸下降,前后气缸回退 )开始"
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
MH_OtherCylinder_Back
);
CylinderMove
(
MoveInfo
,
IO_Type
.
TopCylinder_UP
,
IO_Type
.
TopCylinder_Down
);
CylinderMove
(
MoveInfo
,
IO_Type
.
BeforeAfterCylinder_Before
,
IO_Type
.
BeforeAfterCylinder_After
);
CylinderMove
(
MoveInfo
,
IO_Type
.
ClampCylinder_Slack
,
IO_Type
.
ClampCylinder_Tighten
);
break
;
case
LineMoveStep
.
MH_OtherCylinder_Back
:
MoveInfo
.
EndMove
();
LogInfo
(
"原点返回完成!"
);
runStatus
=
LineRunStatus
.
Runing
;
//如果是调试模式,入料装置两个阻挡气缸落下,并且不再移动
if
(
IsDebug
)
{
lineStatus
=
LineStatus
.
Debugging
;
}
else
{
lineStatus
=
LineStatus
.
StoreOnline
;
}
break
;
default
:
break
;
}
}
}
protected
override
void
StopMoveProcess
()
protected
override
void
StopMoveProcess
()
{
{
...
@@ -266,120 +228,27 @@ namespace OnlineStore.DeviceLibrary
...
@@ -266,120 +228,27 @@ namespace OnlineStore.DeviceLibrary
CheckWait
(
MoveInfo
);
CheckWait
(
MoveInfo
);
}
}
if
(!
MoveInfo
.
IsInWait
)
if
(!
MoveInfo
.
IsInWait
)
{
{
switch
(
MoveInfo
.
MoveStep
)
switch
(
MoveInfo
.
MoveStep
)
{
{
//流水线各装置复原位,夹料气缸状态不变 //阻挡气缸全部=0 //上下气缸上升,、 //上升到位,顶升气缸下降,前后气缸回退
case
LineMoveStep
.
MH_UpDownCylinder_Up
:
case
LineMoveStep
.
MH_UpDownCylinder_Up
:
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
MH_OtherCylinder_Back
);
LogInfo
(
"停止运动: (上升到位,顶升气缸下降,前后气缸回退 )开始"
);
IOMove
(
IO_Type
.
UpDownCylinder_Up
,
IO_VALUE
.
LOW
);
CylinderMove
(
MoveInfo
,
IO_Type
.
TopCylinder_UP
,
IO_Type
.
TopCylinder_Down
);
CylinderMove
(
MoveInfo
,
IO_Type
.
BeforeAfterCylinder_Before
,
IO_Type
.
BeforeAfterCylinder_After
);
break
;
break
;
}
case
LineMoveStep
.
MH_OtherCylinder_Back
:
case
LineMoveStep
.
MH_OtherCylinder_Back
:
{
LogInfo
(
"停止运行完成,停止伺服!"
);
CloseAxis
(
Config
.
UpDown_Axis
);
CloseAxis
(
Config
.
Batch_Axis
);
if
(
UseAxis
)
{
LogInfo
(
"停止运动:停止伺服"
);
ACServerManager
.
SuddenStop
(
Config
.
Batch_Axis
);
}
runStatus
=
LineRunStatus
.
Runing
;
MoveInfo
.
EndMove
();
break
;
break
;
}
default
:
break
;
}
}
}
/// <summary>
/// 停止运动
/// </summary>
public
override
void
StopMove
()
{
//如果正在出库中,需要减去托盘号
if
(
MoveInfo
.
MoveType
.
Equals
(
LineMoveType
.
OutStore
))
{
// LogInfo( "停止运动时出库执行中,减去托盘数;");
//减去需要的盘数
// TrayManager.DelNeedEmptyTrayNum();
MoveInfo
.
EndMove
();
}
runStatus
=
LineRunStatus
.
Busy
;
LogInfo
(
"停止运动:(上下气缸上升端,阻挡气缸输入=0 )开始 "
);
default
:
break
;
MoveInfo
.
NewMove
(
LineMoveType
.
StopMove
);
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
MH_UpDownCylinder_Up
);
UpdownUpMove
();
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
StopCylinder_Down2
,
IO_VALUE
.
LOW
);
}
/// <summary>
/// 上下气缸移动到上升端
/// </summary>
private
void
UpdownUpMove
()
{
if
(
UseAxis
)
{
ACAxisMove
(
Config
.
Batch_Axis
,
Config
.
BatchAxisP1
,
Config
.
BatchAxis_P1Speed
);
}
}
else
{
CylinderMove
(
MoveInfo
,
IO_Type
.
UpDownCylinder_Down
,
IO_Type
.
UpDownCylinder_Up
);
}
}
}
}
private
void
UpdownDownMove
(
int
trayHeight
)
public
override
void
StopMove
()
{
if
(
UseAxis
)
{
int
position
=
Config
.
GetUpdownPosition
(
trayHeight
);
ACAxisMove
(
Config
.
Batch_Axis
,
position
,
Config
.
BatchAxis_DownSpeed
);
}
else
{
CylinderMove
(
MoveInfo
,
IO_Type
.
UpDownCylinder_Up
,
IO_Type
.
UpDownCylinder_Down
);
}
}
private
void
UpdownDownBoxMove
(
int
trayHeight
)
{
if
(
UseAxis
)
{
int
position
=
Config
.
GetUpdownBoxPosition
(
trayHeight
);
ACAxisMove
(
Config
.
Batch_Axis
,
position
,
Config
.
BatchAxis_DownSpeed
);
}
else
{
CylinderMove
(
MoveInfo
,
IO_Type
.
UpDownCylinder_Up
,
IO_Type
.
UpDownCylinder_Down
);
}
}
private
void
UpdownHomeMove
()
{
if
(
UseAxis
)
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
MH_UpDownHomeMove
);
ACAxisHomeMove
(
Config
.
Batch_Axis
);
}
else
{
{
MoveInfo
.
NextMoveStep
(
LineMoveStep
.
MH_UpDownCylinder_Up
);
CylinderMove
(
MoveInfo
,
IO_Type
.
UpDownCylinder_Down
,
IO_Type
.
UpDownCylinder_Up
);
}
}
}
public
override
bool
StartOutStoreMove
(
InOutParam
param
)
public
override
bool
StartOutStoreMove
(
InOutParam
param
)
{
{
return
true
;
return
true
;
...
@@ -388,8 +257,6 @@ namespace OnlineStore.DeviceLibrary
...
@@ -388,8 +257,6 @@ namespace OnlineStore.DeviceLibrary
protected
override
void
OutStoreProcess
()
protected
override
void
OutStoreProcess
()
{
{
}
}
/// <summary>
/// <summary>
/// 是否需要拦截当前托盘进行处理
/// 是否需要拦截当前托盘进行处理
/// </summary>
/// </summary>
...
@@ -413,19 +280,20 @@ namespace OnlineStore.DeviceLibrary
...
@@ -413,19 +280,20 @@ namespace OnlineStore.DeviceLibrary
}
}
}
}
return
false
;
return
false
;
}
/// <summary>
}
/// <summary>
/// 下降所有阻挡气缸
/// 下降所有阻挡气缸
/// </summary>
/// </summary>
internal
override
void
OpenStopCylinder
()
internal
override
void
OpenStopCylinder
()
{
{
if
(
Config
.
SidesWayNum
<=
0
)
if
(
Config
.
SidesWayNum
<=
0
)
{
{
LogInfo
(
"下降阻挡气缸,下降顶升气缸 "
);
LogInfo
(
"下降阻挡气缸,下降顶升气缸 "
);
IOMove
(
IO_Type
.
FL_StopCylinder_Down1
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
FL_StopCylinder_Down1
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
FL_StopCylinder_Down2
,
IO_VALUE
.
HIGH
);
IOMove
(
IO_Type
.
FL_StopCylinder_Down2
,
IO_VALUE
.
HIGH
);
//顶升气缸下降
//顶升气缸下降
IOMove
(
IO_Type
.
FL_TopCylinder_Up
,
IO_VALUE
.
LOW
);
CylinderMove
(
null
,
IO_Type
.
FL_TopCylinder_Up
,
IO_Type
.
FL_TopCylinder_Down
);
IOMove
(
IO_Type
.
FL_TopCylinder_Down
,
IO_VALUE
.
HIGH
);
}
}
}
}
internal
override
void
CloseCylinderStop
()
internal
override
void
CloseCylinderStop
()
...
@@ -433,8 +301,8 @@ namespace OnlineStore.DeviceLibrary
...
@@ -433,8 +301,8 @@ namespace OnlineStore.DeviceLibrary
if
(
Config
.
SidesWayNum
<=
0
)
if
(
Config
.
SidesWayNum
<=
0
)
{
{
LogInfo
(
"上升阻挡气缸,关闭 顶升气缸IO"
);
LogInfo
(
"上升阻挡气缸,关闭 顶升气缸IO"
);
IOMove
(
IO_Type
.
StopCylinder_Down1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
FL_
StopCylinder_Down1
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
StopCylinder_Down2
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
FL_
StopCylinder_Down2
,
IO_VALUE
.
LOW
);
//顶升气缸下降
//顶升气缸下降
IOMove
(
IO_Type
.
FL_TopCylinder_Up
,
IO_VALUE
.
LOW
);
IOMove
(
IO_Type
.
FL_TopCylinder_Up
,
IO_VALUE
.
LOW
);
...
...
source/DeviceLibrary/model/StoreStep.cs
查看文件 @
0fbc88e
...
@@ -118,11 +118,66 @@ namespace OnlineStore.DeviceLibrary
...
@@ -118,11 +118,66 @@ namespace OnlineStore.DeviceLibrary
Wait
=
0
,
Wait
=
0
,
#
region
移栽装置原点返回和重置步骤
#
region
流水线入仓操作
100
开始
/// <summary>
/// 流水线入仓,开始扫码 扫描枪触发,数据处理
/// </summary>
LI_Scannering
=
101
,
/// <summary>
/// 流水线入仓,料仓号及库位号发送, 夹具号编码记忆(X5,X6.X7)数据接收
/// </summary>
LI_WaitServerResult
=
102
,
/// <summary>
/// 等待100毫秒后再放行
/// </summary>
LI_00_Wait100
=
103
,
/// <summary>
/// 阻挡气缸0-2下降
/// </summary>
LI_01_StopCylinder2Down
=
104
,
/// <summary>
/// 检测夹具检测1=0 ) 开始
/// </summary>
LI_02_FixtureCheck
=
105
,
/// <summary>
/// 阻挡气缸0-2上升
/// </summary>
LI_03_StopCylinder2Up
=
106
,
/// <summary>
/// 阻挡气缸0-1下降
/// </summary>
LI_04_StopCylinder1Down
=
107
,
#
endregion
#
region
流水线出库操作
200
开始
/// <summary>
/// 流水线出库,等待100毫秒之后在放行
/// </summary>
LO_00_Wait100
=
200
,
/// <summary>
/// 流水线出库,阻挡气缸0-2下降
/// </summary>
LO_01_StopCylinder2Down
=
201
,
/// <summary>
/// 流水线出库, 检测夹具检测1=0
/// </summary>
LO_02_FixtureCheck
=
202
,
/// <summary>
/// 流水线出库,阻挡气缸0-2上升
/// </summary>
LO_03_StopCylinder2Up
=
203
,
/// <summary>
/// 阻挡气缸0-1下降
/// </summary>
LO_04_StopCylinder1Up
=
204
,
#
endregion
#
region
移栽装置原点返回和重置步骤
2000
开始
/// <summary>
/// <summary>
/// 上下气缸回原点
/// 上下气缸回原点
/// </summary>
/// </summary>
MH_UpDownHomeMove
=
2000
,
MH_UpDownHomeMove
=
2000
,
/// <summary>
/// <summary>
/// 料仓移栽装置,上下气缸上升端
/// 料仓移栽装置,上下气缸上升端
/// </summary>
/// </summary>
...
@@ -135,62 +190,78 @@ namespace OnlineStore.DeviceLibrary
...
@@ -135,62 +190,78 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
endregion
#
region
流水线入仓操作
10000
开始
#
region
移载装置入库处理
3000
-
3050
/// <summary>
/// <summary>
///
流水线入仓,开始扫码 扫描枪触发,数据处理
///
移载装置入库处理,检测 夹具编码
/// </summary>
/// </summary>
LI_Scannering
=
10001
,
MI_05_CodeCheck
=
3005
,
/// <summary>
/// <summary>
///
流水线入仓,料仓号及库位号发送, 夹具号编码记忆(X5,X6.X7)数据接收
///
移载装置入库处理,编码与仓位一致,上下气缸1下降
/// </summary>
/// </summary>
LI_WaitServerResult
=
10002
,
MI_07_UpDownCylinderDown
=
3007
,
/// <summary>
/// <summary>
///
等待100毫秒后再放行
///
移载装置入库处理,编码与仓位一致,上下气缸1下降后,等待0.3秒,防止没有 下降到位就夹紧
/// </summary>
/// </summary>
LI_00_Wait100
=
10003
,
MI_07_UpDownCylinderDownWait
=
3024
,
/// <summary>
/// <summary>
///
阻挡气缸0-2下降
///
移载装置入库处理,夹料气缸1夹紧
/// </summary>
/// </summary>
LI_01_StopCylinder2Down
=
10004
,
MI_08_ClampCylinderSlack
=
3008
,
/// <summary>
/// <summary>
///
检测夹具检测1=0 ) 开始
///
移载装置入库处理,上下气缸1上升
/// </summary>
/// </summary>
LI_02_FixtureCheck
=
10005
,
MI_09_UpDownCylinderUp
=
3009
,
/// <summary>
/// <summary>
///
阻挡气缸0-2上升
///
移载装置入库处理,,前后气缸1前进
/// </summary>
/// </summary>
LI_03_StopCylinder2Up
=
10006
,
MI_10_BeforeAfterCylinderBefore
=
3010
,
/// <summary>
/// <summary>
///
阻挡气缸0-1下降
///
移载装置入库处理,等待box等待状态才能继续操作
/// </summary>
/// </summary>
LI_04_StopCylinder1Down
=
10007
,
MI_10_WaitBox
=
3006
,
#
endregion
#
region
流水线出库操作
/// <summary>
/// <summary>
///
流水线出库,等待100毫秒之后在放行
///
移载装置入库处理,上下气缸1下降
/// </summary>
/// </summary>
LO_00_Wait100
=
11000
,
MI_11_UpDownCylinderDown
=
3011
,
/// <summary>
/// <summary>
///
流水线出库,阻挡气缸0-2下降
///
移载装置入库处理,,夹料气缸1放松
/// </summary>
/// </summary>
LO_01_StopCylinder2Down
=
11001
,
MI_12_ClampCylinderTighten
=
3012
,
/// <summary>
/// <summary>
///
流水线出库, 检测夹具检测1=0
///
移载装置入库处理,上下气缸1上升
/// </summary>
/// </summary>
LO_02_FixtureCheck
=
11002
,
MI_13_UpdownCylinderUp
=
3013
,
/// <summary>
/// <summary>
///
流水线出库,阻挡气缸0-2上升
///
移载装置入库处理,,前后气缸1后退
/// </summary>
/// </summary>
LO_03_StopCylinder2Up
=
11003
,
MI_14_BeforeAfterCylinderAfter
=
3014
,
/// <summary>
/// <summary>
///
阻挡气缸0-1下降
///
移载装置入库处理,检测到X102-1=1送料流程完成
/// </summary>
/// </summary>
LO_04_StopCylinder1Up
=
11004
,
MI_15_SendEnd
=
3015
,
/// <summary>
///移载装置入库处理,编码不一致,顶升气缸1下降
/// </summary>
MI_20_TopCylinderDown
=
3020
,
/// <summary>
///移载装置入库处理,阻挡气缸1-2下降
/// </summary>
MI_21_StopCylinderDown
=
3021
,
/// <summary>
///移载装置入库处理,检测Check4=0,
/// </summary>
MI_22_FixtureCheck_Low
=
3022
,
/// <summary>
///移载装置入库处理,,,阻挡气缸1-2 上升,等待200毫秒
/// </summary>
MI_23_StopCylinderReset
=
3023
,
#
endregion
#
endregion
#
region
移栽装置出入库共同模块
3080
开始
#
region
移栽装置出入库共同模块
3080
-
3100
/// <summary>
/// <summary>
///移载(流水线)装置出入库处理,阻挡气缸1-1下降
///移载(流水线)装置出入库处理,阻挡气缸1-1下降
/// </summary>
/// </summary>
...
@@ -230,7 +301,7 @@ namespace OnlineStore.DeviceLibrary
...
@@ -230,7 +301,7 @@ namespace OnlineStore.DeviceLibrary
MIO_09_WaitLetFixtureGo
=
3089
,
MIO_09_WaitLetFixtureGo
=
3089
,
#
endregion
#
endregion
#
region
移栽装置出库处理
3100
开始
#
region
移栽装置出库处理
3100
-
3200
/// <summary>
/// <summary>
/// 移载(流水线)装置出库处理, 检测夹具编码并记忆,托盘 是空盘,并且BOX在出库等待中,开始移栽料盘
/// 移载(流水线)装置出库处理, 检测夹具编码并记忆,托盘 是空盘,并且BOX在出库等待中,开始移栽料盘
/// </summary>
/// </summary>
...
@@ -305,76 +376,6 @@ namespace OnlineStore.DeviceLibrary
...
@@ -305,76 +376,6 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
endregion
#
region
移载装置入库处理
3000
开始
/// <summary>
///移载装置入库处理,检测 夹具编码
/// </summary>
MI_05_CodeCheck
=
3005
,
/// <summary>
///移载装置入库处理,编码与仓位一致,上下气缸1下降
/// </summary>
MI_07_UpDownCylinderDown
=
3007
,
/// <summary>
///移载装置入库处理,编码与仓位一致,上下气缸1下降后,等待0.3秒,防止没有 下降到位就夹紧
/// </summary>
MI_07_UpDownCylinderDownWait
=
3024
,
/// <summary>
///移载装置入库处理,夹料气缸1夹紧
/// </summary>
MI_08_ClampCylinderSlack
=
3008
,
/// <summary>
///移载装置入库处理,上下气缸1上升
/// </summary>
MI_09_UpDownCylinderUp
=
3009
,
/// <summary>
///移载装置入库处理,,前后气缸1前进
/// </summary>
MI_10_BeforeAfterCylinderBefore
=
3010
,
/// <summary>
/// 移载装置入库处理,等待box等待状态才能继续操作
/// </summary>
MI_10_WaitBox
=
3006
,
/// <summary>
///移载装置入库处理,上下气缸1下降
/// </summary>
MI_11_UpDownCylinderDown
=
3011
,
/// <summary>
///移载装置入库处理,,夹料气缸1放松
/// </summary>
MI_12_ClampCylinderTighten
=
3012
,
/// <summary>
///移载装置入库处理,上下气缸1上升
/// </summary>
MI_13_UpdownCylinderUp
=
3013
,
/// <summary>
///移载装置入库处理,,前后气缸1后退
/// </summary>
MI_14_BeforeAfterCylinderAfter
=
3014
,
/// <summary>
///移载装置入库处理,检测到X102-1=1送料流程完成
/// </summary>
MI_15_SendEnd
=
3015
,
/// <summary>
///移载装置入库处理,编码不一致,顶升气缸1下降
/// </summary>
MI_20_TopCylinderDown
=
3020
,
/// <summary>
///移载装置入库处理,阻挡气缸1-2下降
/// </summary>
MI_21_StopCylinderDown
=
3021
,
/// <summary>
///移载装置入库处理,检测Check4=0,
/// </summary>
MI_22_FixtureCheck_Low
=
3022
,
/// <summary>
///移载装置入库处理,,,阻挡气缸1-2 上升,等待200毫秒
/// </summary>
MI_23_StopCylinderReset
=
3023
,
#
endregion
#
region
横移轨道处理
5000
开始
#
region
横移轨道处理
5000
开始
...
@@ -422,6 +423,33 @@ namespace OnlineStore.DeviceLibrary
...
@@ -422,6 +423,33 @@ namespace OnlineStore.DeviceLibrary
#
endregion
#
endregion
#
region
入料装置原点返回,
10000
开始
/// <summary>
/// 阻挡气缸复位
/// </summary>
FR_01_StopCylinderMove
=
10001
,
/// <summary>
/// 定位气缸下降
/// </summary>
FR_02_LocationCylinderDown
=
10002
,
/// <summary>
/// 伺服原点返回
/// </summary>
FR_03_AxisHomeMove
=
10003
,
/// <summary>
/// 伺服回待机点
/// </summary>
FR_04_AxisToP1
=
10004
,
#
endregion
#
region
入料装置入料处理,
11000
开始
/// <summary>
/// 入口流水线转动
/// </summary>
FI_01_InLineStart
=
11001
,
#
endregion
#
region
出料装置移栽出料,
20000
开始
#
region
出料装置移栽出料,
20000
开始
/// <summary>
/// <summary>
...
@@ -489,6 +517,10 @@ namespace OnlineStore.DeviceLibrary
...
@@ -489,6 +517,10 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
/// </summary>
DL_R_LineCheck
=
30100
,
DL_R_LineCheck
=
30100
,
#
endregion
#
endregion
}
}
public
enum
LineAlarmType
public
enum
LineAlarmType
...
...
source/LoadCVSLibrary/storeConfig/config/FeedingEquip_Config.cs
查看文件 @
0fbc88e
...
@@ -33,7 +33,6 @@ namespace OnlineStore.LoadCSVLibrary
...
@@ -33,7 +33,6 @@ namespace OnlineStore.LoadCSVLibrary
[
ConfigProAttribute
(
"CameraNameList"
)]
[
ConfigProAttribute
(
"CameraNameList"
)]
public
string
CameraNameList
{
get
;
set
;
}
public
string
CameraNameList
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO,0,对应的横移模块,SidesWayNum,3,,,,,
/// PRO,0,对应的横移模块,SidesWayNum,3,,,,,
/// </summary>
/// </summary>
...
@@ -45,121 +44,123 @@ namespace OnlineStore.LoadCSVLibrary
...
@@ -45,121 +44,123 @@ namespace OnlineStore.LoadCSVLibrary
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"UpDownUseAxis"
)]
[
ConfigProAttribute
(
"UpDownUseAxis"
)]
public
int
UpDownUseAxis
{
get
;
set
;
}
public
int
UpDownUseAxis
{
get
;
set
;
}
/// <summary>
/// PRO 0 批量上料轴在移栽上下降的位置 UpDownPositions 0=180000
/// </summary>
[
ConfigProAttribute
(
"UpDownPositions"
,
false
)
]
public
string
UpDownPositions
{
get
;
set
;
}
/// <summary>
/// PRO 0 批量上料轴在料仓门口下降的位置 UpDownBoxPositions 0=116000
/// </summary>
[
ConfigProAttribute
(
"UpDownBoxPositions"
,
false
)]
public
string
UpDownBoxPositions
{
get
;
set
;
}
/// <summary>
/// <summary>
/// AXIS 0 批量上料轴 UpDown_Axis 2
/// AXIS 0 批量上料轴 UpDown_Axis 2
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"Batch_Axis"
,
fals
e
)]
[
ConfigProAttribute
(
"Batch_Axis"
,
tru
e
)]
public
ConfigMoveAxis
Batch_Axis
{
get
;
set
;
}
public
ConfigMoveAxis
Batch_Axis
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 批量上料轴待机点 P1 BatchAxisP1 403000
/// PRO 0 批量上料轴待机点 P1 BatchAxisP1 403000
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"BatchAxisP1"
,
fals
e
)]
[
ConfigProAttribute
(
"BatchAxisP1"
,
tru
e
)]
public
int
BatchAxisP1
{
get
;
set
;
}
public
int
BatchAxisP1
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 批量上料轴目标速度 BatchAxis_TargetSpeed 150
/// PRO 0 批量上料轴目标速度 BatchAxis_TargetSpeed 150
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"BatchAxis_TargetSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"BatchAxis_TargetSpeed"
,
tru
e
)]
public
int
BatchAxis_TargetSpeed
{
get
;
set
;
}
public
int
BatchAxis_TargetSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 批量上料轴加速度 BatchAxis_AddSpeed 400
/// PRO 0 批量上料轴加速度 BatchAxis_AddSpeed 400
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"BatchAxis_AddSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"BatchAxis_AddSpeed"
,
tru
e
)]
public
short
BatchAxis_AddSpeed
{
get
;
set
;
}
public
short
BatchAxis_AddSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 批量上料轴减速度 BatchAxis_DelSpeed 400
/// PRO 0 批量上料轴减速度 BatchAxis_DelSpeed 400
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"BatchAxis_DelSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"BatchAxis_DelSpeed"
,
tru
e
)]
public
short
BatchAxis_DelSpeed
{
get
;
set
;
}
public
short
BatchAxis_DelSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 批量上料轴原点低速度 BatchAxis_HomeLowSpeed 100
/// PRO 0 批量上料轴原点低速度 BatchAxis_HomeLowSpeed 100
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"BatchAxis_HomeLowSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"BatchAxis_HomeLowSpeed"
,
tru
e
)]
public
int
BatchAxis_HomeLowSpeed
{
get
;
set
;
}
public
int
BatchAxis_HomeLowSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 批量上料轴原点高速 BatchAxis_HomeHighSpeed 200
/// PRO 0 批量上料轴原点高速 BatchAxis_HomeHighSpeed 200
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"BatchAxis_HomeHighSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"BatchAxis_HomeHighSpeed"
,
tru
e
)]
public
int
BatchAxis_HomeHighSpeed
{
get
;
set
;
}
public
int
BatchAxis_HomeHighSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 批量上料轴原点加速度 BatchAxis_HomeAddSpeed 200
/// PRO 0 批量上料轴原点加速度 BatchAxis_HomeAddSpeed 200
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"BatchAxis_HomeAddSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"BatchAxis_HomeAddSpeed"
,
tru
e
)]
public
int
BatchAxis_HomeAddSpeed
{
get
;
set
;
}
public
int
BatchAxis_HomeAddSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
///
PRO,0,批量上料轴走到待机点速度,BatchAxis_P1Speed,400,,,,,
///
PRO 0 移栽上下轴慢速上升速度 BatchAxis_SlowSpeed 200
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"BatchAxis_P1Speed"
,
false
)]
[
ConfigProAttribute
(
"BatchAxis_SlowSpeed"
,
true
)]
public
int
BatchAxis_SlowSpeed
{
get
;
set
;
}
/// <summary>
///PRO 0 批量上料轴P1速度 BatchAxis_P1Speed 400
/// </summary>
[
ConfigProAttribute
(
"BatchAxis_P1Speed"
,
true
)]
public
int
BatchAxis_P1Speed
{
get
;
set
;
}
public
int
BatchAxis_P1Speed
{
get
;
set
;
}
/// <summary>
/// <summary>
///
PRO,0,批量上料轴下降速度,BatchAxis_DownSpeed,500,,,,,
///
PRO 0 批量上料轴在移栽上下降的位置 UpDownPositions 0=180000
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"BatchAxis_DownSpeed"
,
false
)]
[
ConfigProAttribute
(
"UpDownPositions"
,
true
)]
public
int
BatchAxis_DownSpeed
{
get
;
set
;
}
public
string
UpDownPositions
{
get
;
set
;
}
/// <summary>
/// PRO 0 批量上料轴在料仓门口下降的位置 UpDownBoxPositions 0=116000
/// </summary>
[
ConfigProAttribute
(
"UpDownBoxPositions"
,
true
)]
public
string
UpDownBoxPositions
{
get
;
set
;
}
/// <summary>
/// <summary>
/// AXIS 0 移栽上下轴 UpDown_Axis 2
/// AXIS 0 移栽上下轴 UpDown_Axis 2
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"UpDown_Axis"
,
fals
e
)]
[
ConfigProAttribute
(
"UpDown_Axis"
,
tru
e
)]
public
ConfigMoveAxis
UpDown_Axis
{
get
;
set
;
}
public
ConfigMoveAxis
UpDown_Axis
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 移栽上下轴待机点 P1 UpDownAxisP1 403000
/// PRO 0 移栽上下轴待机点 P1 UpDownAxisP1 403000
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"UpDownAxisP1"
,
fals
e
)]
[
ConfigProAttribute
(
"UpDownAxisP1"
,
tru
e
)]
public
int
UpDownAxisP1
{
get
;
set
;
}
public
int
UpDownAxisP1
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 移栽上下轴目标速度 UpdownAxis_TargetSpeed 150
/// PRO 0 移栽上下轴目标速度 UpdownAxis_TargetSpeed 150
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_TargetSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"UpdownAxis_TargetSpeed"
,
tru
e
)]
public
int
UpdownAxis_TargetSpeed
{
get
;
set
;
}
public
int
UpdownAxis_TargetSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 移栽上下轴加速度 UpdownAxis_AddSpeed 400
/// PRO 0 移栽上下轴加速度 UpdownAxis_AddSpeed 400
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_AddSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"UpdownAxis_AddSpeed"
,
tru
e
)]
public
short
UpdownAxis_AddSpeed
{
get
;
set
;
}
public
short
UpdownAxis_AddSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 移栽上下轴减速度 UpdownAxis_DelSpeed 400
/// PRO 0 移栽上下轴减速度 UpdownAxis_DelSpeed 400
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_DelSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"UpdownAxis_DelSpeed"
,
tru
e
)]
public
short
UpdownAxis_DelSpeed
{
get
;
set
;
}
public
short
UpdownAxis_DelSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 移栽上下轴原点低速度 UpdownAxis_HomeLowSpeed 100
/// PRO 0 移栽上下轴原点低速度 UpdownAxis_HomeLowSpeed 100
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_HomeLowSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"UpdownAxis_HomeLowSpeed"
,
tru
e
)]
public
int
UpdownAxis_HomeLowSpeed
{
get
;
set
;
}
public
int
UpdownAxis_HomeLowSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 移栽上下轴原点高速 UpdownAxis_HomeHighSpeed 200
/// PRO 0 移栽上下轴原点高速 UpdownAxis_HomeHighSpeed 200
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_HomeHighSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"UpdownAxis_HomeHighSpeed"
,
tru
e
)]
public
int
UpdownAxis_HomeHighSpeed
{
get
;
set
;
}
public
int
UpdownAxis_HomeHighSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO 0 移栽上下轴原点加速度 UpdownAxis_HomeAddSpeed 200
/// PRO 0 移栽上下轴原点加速度 UpdownAxis_HomeAddSpeed 200
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_HomeAddSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"UpdownAxis_HomeAddSpeed"
,
tru
e
)]
public
int
UpdownAxis_HomeAddSpeed
{
get
;
set
;
}
public
int
UpdownAxis_HomeAddSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO,0,移栽上下轴走到待机点速度,UpdownAxis_P1Speed,400,,,,,
/// PRO,0,移栽上下轴走到待机点速度,UpdownAxis_P1Speed,400,,,,,
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_P1Speed"
,
fals
e
)]
[
ConfigProAttribute
(
"UpdownAxis_P1Speed"
,
tru
e
)]
public
int
UpdownAxis_P1Speed
{
get
;
set
;
}
public
int
UpdownAxis_P1Speed
{
get
;
set
;
}
/// <summary>
/// <summary>
/// PRO,0,移栽上下轴下降速度,UpdownAxis_DownSpeed,500,,,,,
/// PRO,0,移栽上下轴下降速度,UpdownAxis_DownSpeed,500,,,,,
/// </summary>
/// </summary>
[
ConfigProAttribute
(
"UpdownAxis_DownSpeed"
,
fals
e
)]
[
ConfigProAttribute
(
"UpdownAxis_DownSpeed"
,
tru
e
)]
public
int
UpdownAxis_DownSpeed
{
get
;
set
;
}
public
int
UpdownAxis_DownSpeed
{
get
;
set
;
}
/// <summary>
/// <summary>
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论