Commit ad32f0da LN

1

1 个父辈 0fbc88eb
...@@ -14,6 +14,11 @@ namespace ABBRobotTest ...@@ -14,6 +14,11 @@ namespace ABBRobotTest
internal class ABBRobotManager internal class ABBRobotManager
{ {
internal static string DI_Start = "di_start";
internal static string DI_Stop = "di_stop";
internal static string DO_ES = "do_ES";
internal static string DO_IsRun= "do_IsRun";
private static NetworkScanner scanner = null; private static NetworkScanner scanner = null;
// private Controller controller = null; // private Controller controller = null;
private static Task[] tasks = null; private static Task[] tasks = null;
...@@ -24,6 +29,8 @@ namespace ABBRobotTest ...@@ -24,6 +29,8 @@ namespace ABBRobotTest
internal delegate void ControllerAddDelegate(ControllerInfo controller); internal delegate void ControllerAddDelegate(ControllerInfo controller);
internal static event ControllerAddDelegate ControllerAddEvent; internal static event ControllerAddDelegate ControllerAddEvent;
internal static void LoadController() internal static void LoadController()
{ {
controllerMap = new Dictionary<string, Controller>(); controllerMap = new Dictionary<string, Controller>();
...@@ -45,12 +52,31 @@ namespace ABBRobotTest ...@@ -45,12 +52,31 @@ namespace ABBRobotTest
} }
private static void AddControllerInfo(ControllerInfo controllerInfo) private static void AddControllerInfo(ControllerInfo controllerInfo)
{ {
try
{
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); string ip = con.IPAddress.ToString();
RemoveController(ip);
controllerMap.Add(ip, con);
// controller = con; // controller = con;
controllerInfoMap.Add(controllerInfo.IPAddress.ToString(), controllerInfo); controllerInfoMap.Add(ip, controllerInfo);
}catch(Exception ex)
{
LogUtil.error("添加机器人【" + controllerInfo.IPAddress.ToString() + "】失败:" + ex.ToString());
}
}
private static void RemoveController(string ip)
{
if (controllerInfoMap.ContainsKey(ip))
{
controllerInfoMap.Remove(ip);
}
if (controllerMap.ContainsKey(ip))
{
controllerMap.Remove(ip);
}
} }
private static void HandleLostEvent(object sender, NetworkWatcherEventArgs e) private static void HandleLostEvent(object sender, NetworkWatcherEventArgs e)
{ {
...@@ -58,14 +84,14 @@ namespace ABBRobotTest ...@@ -58,14 +84,14 @@ namespace ABBRobotTest
private static void HandleFoundEvent(object sender, NetworkWatcherEventArgs e) private static void HandleFoundEvent(object sender, NetworkWatcherEventArgs e)
{ {
Invoke(new //Invoke(new
EventHandler<NetworkWatcherEventArgs>(AddControllerToListView), //EventHandler<NetworkWatcherEventArgs>(AddControllerToListView),
new Object[] { null, e }); //new Object[] { null, e });
AddControllerToListView(null, e);
} }
private static void Invoke(EventHandler<NetworkWatcherEventArgs> eventHandler, object[] v) private static void Invoke(EventHandler<NetworkWatcherEventArgs> eventHandler, object[] v)
{ {
throw new NotImplementedException();
} }
private static void AddControllerToListView(object sender, NetworkWatcherEventArgs e) private static void AddControllerToListView(object sender, NetworkWatcherEventArgs e)
...@@ -217,7 +243,33 @@ namespace ABBRobotTest ...@@ -217,7 +243,33 @@ namespace ABBRobotTest
LogUtil.error("ABBRobot[" + ip + "] ResetRobotSignal [" + name + "] Error:" + ex.ToString()); LogUtil.error("ABBRobot[" + ip + "] ResetRobotSignal [" + name + "] Error:" + ex.ToString());
} }
} }
internal static int GetSingalState(string ip, string name = "do_ES")
{
try
{
Controller controller = GetControllerByIP(ip);
if (controller != null)
{
//string name = comboBox1.Text;
Signal singalValue = controller.IOSystem.GetSignal(name);
if (singalValue == null)
{
LogUtil.error("ABBRobot[" + ip + "] GetSingal [" + name + "]= null");
}
else
{
DigitalSignal digitalSig = (DigitalSignal)singalValue;
return (int)digitalSig.Value;
}
}
}
catch (Exception ex)
{
LogUtil.error("ABBRobot[" + ip + "] GetSingalState [" + name + "] Error:" + ex.ToString());
}
return 0;
}
internal static string GetRobotState(string ip) internal static string GetRobotState(string ip)
{ {
try try
......
...@@ -84,7 +84,7 @@ namespace ABBRobotTest ...@@ -84,7 +84,7 @@ namespace ABBRobotTest
AddHealder("SystemName", 100); AddHealder("SystemName", 100);
AddHealder("Version", 100); AddHealder("Version", 100);
AddHealder("ControllerName", 180); AddHealder("ControllerName", 180);
AddHealder("Statue", 100); AddHealder("Statue", 180);
} }
...@@ -115,6 +115,23 @@ namespace ABBRobotTest ...@@ -115,6 +115,23 @@ namespace ABBRobotTest
{ {
groupMove.Enabled = false; groupMove.Enabled = false;
} }
int esValue = ABBRobotManager.GetSingalState(SelConIp);
if (esValue.Equals(1))
{
lblState.Text = "机器人["+SelConIp+"]急停中";
lblState.ForeColor = Color.Red;
}
else
{
lblState.Text = "";
int isRun = ABBRobotManager.GetSingalState(SelConIp, ABBRobotManager.DO_IsRun);
if (isRun.Equals(1))
{
lblState.Text = "机器人程序正常运行中";
lblState.ForeColor = Color.Green;
}
}
} }
private void btnStart_Click(object sender, EventArgs e) private void btnStart_Click(object sender, EventArgs e)
...@@ -140,7 +157,7 @@ namespace ABBRobotTest ...@@ -140,7 +157,7 @@ namespace ABBRobotTest
if (listView1.SelectedItems != null && listView1.SelectedItems.Count > 0) if (listView1.SelectedItems != null && listView1.SelectedItems.Count > 0)
{ {
int index = listView1.SelectedItems[0].Index; int index = listView1.SelectedItems[0].Index;
string ip = listView1.Items[index].SubItems[0].ToString(); string ip = listView1.Items[index].SubItems[0].Text.ToString();
if (!String.IsNullOrEmpty(ip)) if (!String.IsNullOrEmpty(ip))
{ {
SelConIp = ip; SelConIp = ip;
...@@ -188,5 +205,11 @@ namespace ABBRobotTest ...@@ -188,5 +205,11 @@ namespace ABBRobotTest
{ {
LogUtil.info("机器人运动完成:" + msg); LogUtil.info("机器人运动完成:" + msg);
} }
private void btnClearLog_Click(object sender, EventArgs e)
{
this.richTextBox1.Clear();
LogUtil.ClearLog();
}
} }
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!