Commit 16b5fd11 顾剑亮

upload

1 个父辈 1eef9f92
正在显示 36 个修改的文件 包含 516 行增加344 行删除
......@@ -35,7 +35,13 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="ClassFormParent">
<HintPath>..\..\ClassFormParent\ClassFormParent\bin\Debug\ClassFormParent.dll</HintPath>
</Reference>
<Reference Include="log4net">
<HintPath>..\..\..\..\DLL\log4net.dll</HintPath>
</Reference>
......@@ -86,6 +92,7 @@
<Compile Include="BLL\SteelManage.cs" />
<EmbeddedResource Include="UI\FrmMain.resx">
<DependentUpon>FrmMain.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
......@@ -96,6 +103,9 @@
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="bin\Debug\AGVControl_Steel.exe.config" />
<None Include="bin\Debug\Config\AgvMission.csv" />
<None Include="bin\Debug\Config\AgvName.csv" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
......@@ -110,5 +120,18 @@
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include="bin\Debug\AGVControl_Steel.exe" />
<Content Include="bin\Debug\AGVControl_Steel.pdb" />
<Content Include="bin\Debug\AGVControl_Steel.xml" />
<Content Include="bin\Debug\log4net.dll" />
<Content Include="bin\Debug\RestSharp.dll" />
<Content Include="bin\Debug\RestSharp.xml" />
<Content Include="Icon.ico" />
</ItemGroup>
<ItemGroup>
<Folder Include="bin\Debug\Logs\" />
<Folder Include="bin\Release\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
</Project>
\ No newline at end of file
......@@ -43,8 +43,8 @@
<add key="AGV_BATTERY_MIN" value="60"/>
<add key="4D_Line" value="D1,D2,D3,D4,D5,D6,D8,D9,D10,D11,D12,D14,D15,D16"/>
<add key="4C_Line" value="C1,C2,C3,C4,C5,C6,C7,C8,C9,C10"/>
<add key="Store" value="wash,storage"/>
<add key="4D_AGV" value="25"/>
<add key="Store" value="4cwash,4dwash,storage"/>
<add key="4D_AGV" value="6"/>
<add key="4C_AGV" value="32"/>
</appSettings>
</configuration>
\ No newline at end of file
......@@ -10,6 +10,7 @@ namespace AGVControl_Steel
/// </summary>
public static class Common
{
public static System.Windows.Forms.TextBox txtLog;
public static List<AgvInfo> agvInfos;
public static Dictionary<string, string> agvMissions;
public static MiR_API mir;
......@@ -23,6 +24,8 @@ namespace AGVControl_Steel
public static string[] STORE_NAME;
public const string WORKSHOP_4D = "4D";
public const string WORKSHOP_4C = "4C";
public const string MISSION_TAKE_OFF_SHELF = "Placeqisdashelf";
public const string MISSION_TAKE_ON_SHELF = "Pickupqisdashelf";
public const string MISSION_MOVE_4C_4D = "MoveDoor-4C-4D";
public const string MISSION_MOVE_4D_4C = "MoveDoor-4D-4C";
public const string MISSION_CHARGE_4D = "AutoCharge4D";
......@@ -32,7 +35,6 @@ namespace AGVControl_Steel
public const string MISSION_MOVE_WASH_4D = "Move4DWash";
public const string MISSION_MOVE_WASH_4C = "Move4CWash";
public const string MISSION_MOVE_STORAGE = "MoveStorage";
public const string MISSION_MOVE_D1 = "MoveSteelD1";
public const string MISSION_MOVE_D2 = "MoveSteelD2";
public const string MISSION_MOVE_D3 = "MoveSteelD3";
......
......@@ -32,7 +32,7 @@ namespace BLL
/// </summary>
public void Start()
{
timerCall = new Timer(CallProcess, null, 0, 3000);
timerCall = new Timer(CallProcess, null, 0, 2000);
}
/// <summary>
......@@ -84,7 +84,7 @@ namespace BLL
{
if (!info.IsOnline) return;
bool rtn = Common.mir.Get_State(info.IP, info.Authorization, out int stateID, out string stateText, out int battery, out string missionText, out System.Drawing.PointF position);
Common.log.Debug(string.Format("{1} GetAgvState[return={0}] stateID={2}, stateText={3}, battery={4}, missionText={5}, position={6}", rtn, info.FullName, stateID, stateText, battery, missionText, position));
//Common.log.Debug(string.Format("{1} GetAgvState[return={0}] stateID={2}, stateText={3}, battery={4}, missionText={5}, position={6}", rtn, info.FullName, stateID, stateText, battery, missionText, position));
if (rtn)
{
......@@ -97,6 +97,11 @@ namespace BLL
string ip = info.IP;
int idx = Common.agvInfos.FindIndex(s => s.IP == ip);
if (idx > -1) AgvChanged?.Invoke(idx);
if (info.StateID == 4) //Pause
{
Common.mir.State_Ready(info.IP, info.Authorization);
}
}
}
......@@ -119,7 +124,7 @@ namespace BLL
rtn = Common.mir.Get_IO_Modules(info.IP, info.Authorization, out string[] guid);
if (rtn) info.IOGuid = guid[0];
}
Common.log.Debug(string.Format("{0}[{1}] 在线", info.Name, info.IP));
//Common.log.Debug(string.Format("{0}[{1}] 在线", info.Name, info.IP));
}
else
{
......
......@@ -34,33 +34,33 @@ namespace BLL
public void OldSteelWorkAdd(string from)
public void OldSteelWorkAdd(string place)
{
int index = oldSteelWork.FindIndex(sw => sw.From == from);
int index = oldSteelWork.FindIndex(sw => sw.Place == place);
if (index == -1)
{
SteelWork sw = new SteelWork() { From = from };
SteelWork sw = new SteelWork() { Place = place };
oldSteelWork.Add(sw);
string[] content = new string[oldSteelWork.Count];
for (int i = 0; i < content.Length; i++)
content[i] = oldSteelWork[i].From + "," + oldSteelWork[i].DateTime.ToString();
content[i] = oldSteelWork[i].Place + "," + oldSteelWork[i].DateTime.ToString();
System.IO.File.WriteAllLines(Common.PATH_OLD_STEEL_WORK, content, System.Text.Encoding.UTF8);
}
Common.log.Debug("OldSteelWorkAdd(" + from + ") 添加旧钢板任务,保存到" + Common.PATH_OLD_STEEL_WORK);
Common.log.Debug("添加(" + place + ")旧钢板任务,保存到" + Common.PATH_OLD_STEEL_WORK);
}
public void OldSteelWorkDel(string from)
public void OldSteelWorkDel(string place)
{
int index = oldSteelWork.FindIndex(sw => sw.From == from);
int index = oldSteelWork.FindIndex(sw => sw.Place == place);
if (index > -1)
{
oldSteelWork.RemoveAt(index);
string[] content = new string[oldSteelWork.Count];
for (int i = 0; i < content.Length; i++)
content[i] = oldSteelWork[i].From + "," + oldSteelWork[i].DateTime.ToString();
content[i] = oldSteelWork[i].Place + "," + oldSteelWork[i].DateTime.ToString();
System.IO.File.WriteAllLines(Common.PATH_OLD_STEEL_WORK, content, System.Text.Encoding.UTF8);
}
Common.log.Debug("OldSteelWorkDel(" + from + ") 旧钢板任务,保存到" + Common.PATH_OLD_STEEL_WORK);
Common.log.Debug("删除(" + place + ")旧钢板任务,保存到" + Common.PATH_OLD_STEEL_WORK);
}
public void OldSteelWorkLoad()
......@@ -71,20 +71,18 @@ namespace BLL
for (int i = 0; i < lines.Length; i++)
{
string[] arr = lines[i].Split(',');
SteelWork sw = new SteelWork() { From = arr[0], DateTime = Convert.ToDateTime(arr[1]) };
SteelWork sw = new SteelWork() { Place = arr[0], DateTime = Convert.ToDateTime(arr[1]) };
oldSteelWork.Add(sw);
}
Common.log.Debug("OldSteelWorkLoad() 旧钢板任务加载,来自" + Common.PATH_OLD_STEEL_WORK);
Common.log.Debug("加载旧钢板任务,来自" + Common.PATH_OLD_STEEL_WORK);
}
public bool FindOldSteelWork(string lineName)
public bool FindOldSteelWork(string place)
{
int idx = oldSteelWork.FindIndex(s => s.From == lineName);
int idx = oldSteelWork.FindIndex(s => s.Place == place);
return idx > -1;
}
public void NewSteelWorkAdd(string from, string place)
{
int index = newSteelWork.FindIndex(sw => sw.From == from && sw.Place == place);
......@@ -97,8 +95,22 @@ namespace BLL
content[i] = newSteelWork[i].From + "," + newSteelWork[i].Place + "," + newSteelWork[i].DateTime.ToString();
System.IO.File.WriteAllLines(Common.PATH_NEW_STEEL_WORK, content, System.Text.Encoding.UTF8);
}
Common.log.Debug("NewSteelWorkAdd(" + from + "," + place + ") 添加新钢板任务,保存到" + Common.PATH_NEW_STEEL_WORK);
Common.log.Debug("添加(" + from + "," + place + ")新钢板任务,保存到" + Common.PATH_NEW_STEEL_WORK);
}
public void NewSteelWorkDel(string from, string place)
{
int index = newSteelWork.FindIndex(sw => sw.From == from && sw.Place == place);
if (index > -1)
{
newSteelWork.RemoveAt(index);
string[] content = new string[newSteelWork.Count];
for (int i = 0; i < content.Length; i++)
content[i] = newSteelWork[i].From + "," + newSteelWork[i].Place + "," + newSteelWork[i].DateTime.ToString();
System.IO.File.WriteAllLines(Common.PATH_NEW_STEEL_WORK, content, System.Text.Encoding.UTF8);
}
Common.log.Debug("删除(" + from + "," + place + ")新钢板任务,保存到" + Common.PATH_NEW_STEEL_WORK);
}
public void NewSteelWorkLoad()
......@@ -112,9 +124,14 @@ namespace BLL
SteelWork sw = new SteelWork() { From = arr[0], Place = arr[1], DateTime = Convert.ToDateTime(arr[2]) };
newSteelWork.Add(sw);
}
Common.log.Debug("NewSteelWorkLoad() 新钢板任务加载,来自" + Common.PATH_NEW_STEEL_WORK);
Common.log.Debug("加载新钢板任务,来自" + Common.PATH_NEW_STEEL_WORK);
}
public bool FindNewSteelWork(string from, string place)
{
int idx = newSteelWork.FindIndex(s => s.From == from && s.Place == place);
return idx > -1;
}
......@@ -122,20 +139,26 @@ namespace BLL
public Job GetSteelJob()
public Job GetSteelJob(AgvInfo info)
{
if (oldSteelWork.Count > 0)
{
return new TakeOldJob();
}
//else if (newSteelWork.Count > 0)
//{
// return new WashPointJob();
// return new StorageJob();
//}
else
string name = info.Workshop.Substring(1, 1);
int index = oldSteelWork.FindIndex(s => s.Place.StartsWith(name));
//TEST
string s = "";
for (int i = 0; i < oldSteelWork.Count; i++)
s += oldSteelWork[i].Place + ";";
Common.log.Debug("name=" + name + " oldSteelWork=" + s);
if (index == -1)
return null;
else
return new TakeOldJob();
}
}
......
......@@ -12,12 +12,12 @@ namespace Webs
internal interface IWeb
{
[OperationContract]
[WebGet(UriTemplate = "StealAgv/takeOld?from={from}", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
Result TakeOldGet(string from);
[WebGet(UriTemplate = "StealAgv/takeOld?place={place}", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
Result TakeOldGet(string place);
[OperationContract]
[WebGet(UriTemplate = "StealAgv/sendNew?from={from}&placeList={list}", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
Result SendNewGet(string from, string list);
[WebGet(UriTemplate = "StealAgv/sendNew?from={from}&place={place}", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
Result SendNewGet(string from, string place);
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "StealAgv/takeOld", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
......@@ -47,16 +47,16 @@ namespace Webs
{
}
public Result TakeOldGet(string from)
public Result TakeOldGet(string place)
{
Common.log.Info("takeOld[GET] from=" + from);
return TakeOld(from);
Common.log.Info("takeOld[GET] place=" + place);
return TakeOld(place);
}
public Result SendNewGet(string from, string list)
public Result SendNewGet(string from, string place)
{
Common.log.Info("sendNew[GET] from=" + from + " placeList=" + list);
return SendNew(from, list);
Common.log.Info("sendNew[GET] from=" + from + " place=" + place);
return SendNew(from, place);
}
public Result TakeOldPost(Stream info)
......@@ -64,7 +64,7 @@ namespace Webs
StreamReader sr = new StreamReader(info);
string s = sr.ReadToEnd();
Common.log.Info("takeOld[POST] " + s);
s = s.ToLower().Replace("from=", "");
s = s.ToLower().Replace("place=", "");
return TakeOld(s);
}
......@@ -77,69 +77,98 @@ namespace Webs
s = s.ToLower();
string[] arr = s.Split('&');
arr[0] = arr[0].Replace("from=", "");
arr[1] = arr[1].Replace("placelist=", "");
arr[1] = arr[1].Replace("place=", "");
return SendNew(arr[0], arr[1]);
}
private Result TakeOld(string from)
private Result TakeOld(string place)
{
Result res;
from = from.ToUpper();
int index1 = Array.FindIndex(Common.LINE_NAME_4D, match => match == from);
int index2 = Array.FindIndex(Common.LINE_NAME_4C, match => match == from);
if (index1 == -1 && index2 == -1)
try
{
res = new Result { Code = -1, Msg = "Not find " + from };
place = place.ToUpper();
int index1 = Array.FindIndex(Common.LINE_NAME_4D, s => s == place);
int index2 = Array.FindIndex(Common.LINE_NAME_4C, s => s == place);
if (index1 == -1 && index2 == -1)
{
res = new Result { Code = -2, Msg = "Not find place=" + place };
}
else
{
Common.steelManage.OldSteelWorkAdd(place);
res = new Result { Code = 0, Msg = "OK" };
}
}
else
catch (Exception ex)
{
Common.steelManage.OldSteelWorkAdd(from);
res = new Result { Code = 0, Msg = "OK" };
res = new Result { Code = -100, Msg = ex.Message };
}
return res;
}
private Result SendNew(string from, string list)
private Result SendNew(string from, string place)
{
from = from.ToLower();
int index = Array.FindIndex(Common.STORE_NAME, match => match == from);
if (index == -1)
{
return new Result { Code = -1, Msg = "Not find " + from };
}
else
Result res = new Result();
try
{
list = list.ToUpper();
if (list == "EMPTYSHELFIN")
{
Common.steelManage.NewSteelWorkAdd(from, list);
return new Result { Code = 0, Msg = "OK" };
}
else if (list == "EMPTYSHELFLEAVE")
from = from.ToLower();
int index = Array.FindIndex(Common.STORE_NAME, s => s == from);
if (index == -1)
{
Common.steelManage.NewSteelWorkAdd(from, list);
return new Result { Code = 0, Msg = "OK" };
res = new Result { Code = -1, Msg = "Not find from=" + from };
}
else
{
string[] arr = list.Split(',');
for (int i = 0; i < arr.Length; i++)
place = place.ToUpper();
if (place == "EMPTYSHELFIN")
{
int index1 = Array.FindIndex(Common.LINE_NAME_4D, match => match == arr[i]);
int index2 = Array.FindIndex(Common.LINE_NAME_4C, match => match == arr[i]);
if (index1 == -1 && index2 == -1)
return new Result { Code = -2, Msg = "Not find " + arr[i] };
else
Common.steelManage.NewSteelWorkAdd(from, arr[i]);
Common.steelManage.NewSteelWorkAdd(from, place);
res = new Result { Code = 0, Msg = "OK" };
}
else if (place == "EMPTYSHELFLEAVE")
{
Common.steelManage.NewSteelWorkAdd(from, place);
res = new Result { Code = 0, Msg = "OK" };
}
else
{
bool find = true;
string[] arr = place.Split(',');
for (int i = 0; i < arr.Length; i++)
{
int index1 = Array.FindIndex(Common.LINE_NAME_4D, s => s == arr[i]);
int index2 = Array.FindIndex(Common.LINE_NAME_4C, s => s == arr[i]);
if (index1 == -1 && index2 == -1)
{
res = new Result { Code = -2, Msg = "Not find place=" + arr[i] };
find = false;
break;
}
else
{
Common.steelManage.NewSteelWorkAdd(from, arr[i]);
find = true;
}
}
if (find)
res = new Result { Code = 0, Msg = "OK" };
}
return new Result { Code = 0, Msg = "OK" };
}
}
catch (Exception ex)
{
res = new Result { Code = -100, Msg = ex.Message };
}
return res;
}
}
......
此文件类型无法预览
......@@ -27,134 +27,107 @@ namespace Model
{
if (chargeStep.IsEqual(ChargeStep.None))
{
None(info);
if (info.IsSelfWorkshop())
MoveCharge(info);
else
MoveDoor(info);
}
else if (chargeStep.IsEqual(ChargeStep.WaitWorkshopDoor))
{
WaitWorkshopDoor(info);
rtn = Common.mir.Get_MissionState_Fleet(info.Authorization, id, out string state);
if (rtn)
{
if (state == MissionState.Done.ToString())
MoveCharge(info);
else if (state == MissionState.Aborted.ToString())
chargeStep.Msg = info.FullName + "任务状态" + MissionState.Aborted.ToString();
}
else
{
chargeStep.Msg = info.FullName + "获取任务状态id[" + id + "]失败";
}
}
else if (chargeStep.IsEqual(ChargeStep.WaitChargeStation))
{
WaitChargeStation(info);
rtn = Common.mir.Get_Register(info.IP, info.Authorization, 20, out int value);
if (rtn)
{
if (value == 1)
{
chargeStep.Msg = info.FullName + "到达充电位,准备充电";
chargeStep.NextStep(ChargeStep.Charging);
}
}
else
{
chargeStep.Msg = info.FullName + "获取PLC20失败";
}
}
else if (chargeStep.IsEqual(ChargeStep.Charging))
{
if (info.Battery == info.BatteryMax)
{
chargeStep.NextStep(ChargeStep.End);
chargeStep.Msg = info.FullName + "电量达到" + info.BatteryMax + ",充电工作结束";
chargeStep.NextStep(ChargeStep.End);
}
else if (info.Battery > info.BatteryMin)
{
Job job = Common.steelManage.GetSteelJob();
if (job != null) return job;
Job job = Common.steelManage.GetSteelJob(info);
if (job != null)
{
Common.mir.Del_Mission(info.IP, info.Authorization);
return job;
}
}
}
else if (chargeStep.IsEqual(ChargeStep.End))
{
Common.mir.Del_Mission(info.IP, info.Authorization);
Common.log.Info(info.FullName + "ChargeJob结束,切换StandbyJob");
return new StandbyJob();
}
return this;
}
private void None(AgvInfo info)
private void MoveDoor(AgvInfo info)
{
if (info.IsSelfWorkshop())
{
if (info.Workshop == Common.WORKSHOP_4D)
mission = Common.MISSION_CHARGE_4D;
else if (info.Workshop == Common.WORKSHOP_4C)
mission = Common.MISSION_CHARGE_4C;
if (info.Workshop == Common.WORKSHOP_4D)
mission = Common.MISSION_MOVE_4C_4D;
else if (info.Workshop == Common.WORKSHOP_4C)
mission = Common.MISSION_MOVE_4D_4C;
rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
if (rtn)
{
chargeStep.NextStep(ChargeStep.WaitChargeStation);
chargeStep.Msg = info.FullName + "在" + info.Workshop + "车间,去充电位";
}
else
{
chargeStep.Msg = info.FullName + "发送" + mission + "任务失败";
}
}
else
{
if (info.Workshop == Common.WORKSHOP_4D)
mission = Common.MISSION_MOVE_4C_4D;
else if (info.Workshop == Common.WORKSHOP_4C)
mission = Common.MISSION_MOVE_4D_4C;
rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
if (rtn)
{
chargeStep.NextStep(ChargeStep.WaitWorkshopDoor);
chargeStep.Msg = info.FullName + "在" + info.Workshop + "车间,先过车间门";
}
else
{
chargeStep.Msg = info.FullName + "发送" + mission + "任务失败";
}
}
}
private void WaitWorkshopDoor(AgvInfo info)
{
rtn = Common.mir.Get_MissionState_Fleet(info.Authorization, id, out string state);
rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
if (rtn)
{
if (state == MissionState.Done.ToString())
{
if (info.Workshop == Common.WORKSHOP_4D)
mission = Common.MISSION_CHARGE_4D;
else if (info.Workshop == Common.WORKSHOP_4C)
mission = Common.MISSION_CHARGE_4C;
rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
if (rtn)
{
chargeStep.NextStep(ChargeStep.WaitChargeStation);
chargeStep.Msg = info.FullName + "在" + info.Workshop + "车间,去充电位";
}
else
{
chargeStep.Msg = info.FullName + "发送" + mission + "任务失败";
}
}
else if (state == MissionState.Aborted.ToString())
{
chargeStep.Msg = info.FullName + "任务状态" + MissionState.Aborted.ToString();
}
chargeStep.Msg = info.FullName + "在" + info.Workshop + "车间,先过车间门";
chargeStep.NextStep(ChargeStep.WaitWorkshopDoor);
}
else
{
chargeStep.Msg = info.FullName + "获取任务状态id[" + id + "]失败";
chargeStep.Msg = info.FullName + "发送" + mission + "任务失败";
}
}
private void WaitChargeStation(AgvInfo info)
private void MoveCharge(AgvInfo info)
{
rtn = Common.mir.Get_Register(info.IP, info.Authorization, 20, out int value);
if (info.Workshop == Common.WORKSHOP_4D)
mission = Common.MISSION_CHARGE_4D;
else if (info.Workshop == Common.WORKSHOP_4C)
mission = Common.MISSION_CHARGE_4C;
rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
if (rtn)
{
if (value == 1)
{
chargeStep.NextStep(ChargeStep.Charging);
chargeStep.Msg = info.FullName + "到达充电位,准备充电";
}
chargeStep.Msg = info.FullName + "在" + info.Workshop + "车间,去充电位";
chargeStep.NextStep(ChargeStep.WaitChargeStation);
}
else
{
chargeStep.Msg = info.FullName + "获取PLC20失败";
chargeStep.Msg = info.FullName + "发送" + mission + "任务失败";
}
}
/// <summary>
/// 充电步骤
/// </summary>
......
......@@ -16,11 +16,25 @@ namespace Model
{
if (standbyStep.IsEqual(StandbyStep.None))
{
None(info);
if (info.IsSelfWorkshop())
MoveStandby(info);
else
MoveDoor(info);
}
else if (standbyStep.IsEqual(StandbyStep.WaitWorkshopDoor))
{
WaitWorkshopDoor(info);
rtn = Common.mir.Get_MissionState_Fleet(info.Authorization, id, out string state);
if (rtn)
{
if (state == MissionState.Done.ToString())
MoveStandby(info);
else if (state == MissionState.Aborted.ToString())
standbyStep.Msg = info.FullName + "任务状态" + MissionState.Aborted.ToString();
}
else
{
standbyStep.Msg = info.FullName + "获取任务状态id[" + id + "]失败";
}
}
else if (standbyStep.IsEqual(StandbyStep.WaitStandby))
{
......@@ -29,8 +43,8 @@ namespace Model
{
if (state == MissionState.Done.ToString())
{
standbyStep.NextStep(StandbyStep.End);
standbyStep.Msg = info.FullName + "已在待机位";
standbyStep.NextStep(StandbyStep.End);
}
else if (state == MissionState.Aborted.ToString())
{
......@@ -50,92 +64,51 @@ namespace Model
}
else
{
Job job = Common.steelManage.GetSteelJob();
Job job = Common.steelManage.GetSteelJob(info);
if (job != null) return job;
}
}
return this;
}
private void None(AgvInfo info)
private void MoveDoor(AgvInfo info)
{
if (info.Workshop == Common.WORKSHOP_4D)
mission = Common.MISSION_MOVE_4C_4D;
else if (info.Workshop == Common.WORKSHOP_4C)
mission = Common.MISSION_MOVE_4D_4C;
if (info.IsSelfWorkshop())
rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
if (rtn)
{
if (info.Workshop == Common.WORKSHOP_4D)
mission = Common.MISSION_STANDBY_4D;
else if (info.Workshop == Common.WORKSHOP_4C)
mission = Common.MISSION_STANDBY_4C;
rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
if (rtn)
{
standbyStep.NextStep(StandbyStep.WaitStandby);
standbyStep.Msg = info.FullName + "回待机位";
}
else
{
standbyStep.Msg = info.FullName + "发送" + Common.MISSION_STANDBY_4D + "任务失败";
}
standbyStep.Msg = info.FullName + "在" + info.Workshop + "车间,先过车间门";
standbyStep.NextStep(StandbyStep.WaitWorkshopDoor);
}
else
{
if (info.Workshop == Common.WORKSHOP_4D)
mission = Common.MISSION_MOVE_4C_4D;
else if (info.Workshop == Common.WORKSHOP_4C)
mission = Common.MISSION_MOVE_4D_4C;
rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
if (rtn)
{
standbyStep.NextStep(StandbyStep.WaitWorkshopDoor);
standbyStep.Msg = info.FullName + "在" + info.Workshop + "车间,先过车间门";
}
else
{
standbyStep.Msg = info.FullName + "发送" + mission + "任务失败";
}
standbyStep.Msg = info.FullName + "发送" + mission + "任务失败";
}
}
private void WaitWorkshopDoor(AgvInfo info)
private void MoveStandby(AgvInfo info)
{
rtn = Common.mir.Get_MissionState_Fleet(info.Authorization, id, out string state);
if (info.Workshop == Common.WORKSHOP_4D)
mission = Common.MISSION_STANDBY_4D;
else if (info.Workshop == Common.WORKSHOP_4C)
mission = Common.MISSION_STANDBY_4C;
rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
if (rtn)
{
if (state == MissionState.Done.ToString())
{
if (info.Workshop == Common.WORKSHOP_4D)
mission = Common.MISSION_STANDBY_4D;
else if (info.Workshop == Common.WORKSHOP_4C)
mission = Common.MISSION_STANDBY_4C;
rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
if (rtn)
{
standbyStep.NextStep(StandbyStep.WaitStandby);
standbyStep.Msg = info.FullName + "回待机位";
}
else
{
standbyStep.Msg = info.FullName + "发送" + Common.MISSION_STANDBY_4D + "任务失败";
}
}
else if (state == MissionState.Aborted.ToString())
{
standbyStep.Msg = info.FullName + "任务状态" + MissionState.Aborted.ToString();
}
standbyStep.Msg = info.FullName + "回待机位" + mission;
standbyStep.NextStep(StandbyStep.WaitStandby);
}
else
{
standbyStep.Msg = info.FullName + "获取任务状态id[" + id + "]失败";
standbyStep.Msg = info.FullName + "发送" + mission + "任务失败";
}
}
private enum StandbyStep
{
None,
......
......@@ -5,6 +5,7 @@ namespace Model
public class TakeOldJob : Job
{
private string id;
private string name = null;
private JobStep<TakeOldStep> takeOldStep;
public TakeOldJob()
......@@ -23,13 +24,17 @@ namespace Model
{
if (info.IsSteelFull())
{
return new WashPointJob();
takeOldStep.Msg = info.FullName + "钢板已满";
takeOldStep.NextStep(TakeOldStep.GoWashPoint);
}
else
{
rtn = FindLine(info);
if (!rtn)
return new WashPointJob();
{
takeOldStep.Msg = info.FullName + "没有后续旧钢板任务";
takeOldStep.NextStep(TakeOldStep.GoWashPoint);
}
}
}
else if (takeOldStep.IsEqual(TakeOldStep.MoveLine))
......@@ -39,8 +44,47 @@ namespace Model
{
if (state == MissionState.Done.ToString())
{
takeOldStep.Msg = info.FullName + "完成" + mission;
takeOldStep.NextStep(TakeOldStep.FindLine);
takeOldStep.Msg = info.FullName + "当前任务完成";
Common.steelManage.OldSteelWorkDel(name);
}
else if (state == MissionState.Aborted.ToString())
{
takeOldStep.Msg = info.FullName + "任务状态" + MissionState.Aborted.ToString();
}
}
else
{
takeOldStep.Msg = info.FullName + "获取任务状态id[" + id + "]失败";
}
}
else if (takeOldStep.IsEqual(TakeOldStep.GoWashPoint))
{
if (info.Workshop == Common.WORKSHOP_4D)
mission = Common.MISSION_MOVE_WASH_4D;
else if (info.Workshop == Common.WORKSHOP_4C)
mission = Common.MISSION_MOVE_WASH_4C;
rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
if (rtn)
{
takeOldStep.Msg = info.FullName + "去" + info.Workshop + "清洗点";
takeOldStep.NextStep(TakeOldStep.WaitWashPoint);
}
else
{
takeOldStep.Msg = info.FullName + "发送" + mission + "任务失败";
}
}
else if (takeOldStep.IsEqual(TakeOldStep.WaitWashPoint))
{
rtn = Common.mir.Get_MissionState_Fleet(info.Authorization, id, out string state);
if (rtn)
{
if (state == MissionState.Done.ToString())
{
takeOldStep.Msg = info.FullName + "已在清洗点";
takeOldStep.NextStep(TakeOldStep.End);
}
else if (state == MissionState.Aborted.ToString())
{
......@@ -52,20 +96,28 @@ namespace Model
takeOldStep.Msg = info.FullName + "获取任务状态id[" + id + "]失败";
}
}
else if (takeOldStep.IsEqual(TakeOldStep.End))
{
return new StandbyJob();
}
return this;
}
private bool FindLine(AgvInfo info)
{
string name = null;
bool find = false;
if (info.Workshop == Common.WORKSHOP_4D)
{
for (int i = 0; i < Common.LINE_NAME_4D.Length; i++)
{
name = Common.LINE_NAME_4D[i];
if (Common.steelManage.FindOldSteelWork(name))
{
find = true;
break;
}
}
}
else if (info.Workshop == Common.WORKSHOP_4C)
......@@ -74,24 +126,24 @@ namespace Model
{
name = Common.LINE_NAME_4C[i];
if (Common.steelManage.FindOldSteelWork(name))
{
find = true;
break;
}
}
}
if (name == null)
{
return false;
}
else
if (find)
{
info.Place = name;
name = "MoveSteel" + name;
Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, name, out id);
mission = "MoveSteel" + name;
Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
takeOldStep.Msg = info.FullName + "发送任务" + mission;
takeOldStep.NextStep(TakeOldStep.MoveLine);
takeOldStep.Msg = info.FullName + "发送任务" + name;
info.SteelCountAdd();
return true;
}
return find;
}
private enum TakeOldStep
......@@ -99,7 +151,8 @@ namespace Model
None,
FindLine,
MoveLine,
MoveWash,
GoWashPoint,
WaitWashPoint,
End
}
}
......
......@@ -16,42 +16,42 @@ namespace Model
{
if (washPointStep.IsEqual(WashPointStep.None))
{
if (info.Workshop == Common.WORKSHOP_4D)
mission = Common.MISSION_MOVE_WASH_4D;
else if (info.Workshop == Common.WORKSHOP_4C)
mission = Common.MISSION_MOVE_WASH_4C;
//if (info.Workshop == Common.WORKSHOP_4D)
// mission = Common.MISSION_MOVE_WASH_4D;
//else if (info.Workshop == Common.WORKSHOP_4C)
// mission = Common.MISSION_MOVE_WASH_4C;
rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
if (rtn)
{
washPointStep.NextStep(WashPointStep.MoveWash);
washPointStep.Msg = info.FullName + "去"+ info.Workshop + "清洗点";
}
else
{
washPointStep.Msg = info.FullName + "发送" + mission + "任务失败";
}
//rtn = Common.mir.Add_Mission_Fleet(info.FleetID, info.Authorization, mission, out id);
//if (rtn)
//{
// washPointStep.Msg = info.FullName + "去"+ info.Workshop + "清洗点";
// washPointStep.NextStep(WashPointStep.MoveWash);
//}
//else
//{
// washPointStep.Msg = info.FullName + "发送" + mission + "任务失败";
//}
}
else if (washPointStep.IsEqual(WashPointStep.MoveWash))
{
rtn = Common.mir.Get_MissionState_Fleet(info.Authorization, id, out string state);
if (rtn)
{
if (state == MissionState.Done.ToString())
{
washPointStep.NextStep(WashPointStep.End);
washPointStep.Msg = info.FullName + "已在清洗点";
}
else if (state == MissionState.Aborted.ToString())
{
washPointStep.Msg = info.FullName + "任务状态" + MissionState.Aborted.ToString();
}
}
else
{
washPointStep.Msg = info.FullName + "获取任务状态id[" + id + "]失败";
}
//rtn = Common.mir.Get_MissionState_Fleet(info.Authorization, id, out string state);
//if (rtn)
//{
// if (state == MissionState.Done.ToString())
// {
// washPointStep.Msg = info.FullName + "已在清洗点";
// washPointStep.NextStep(WashPointStep.End);
// }
// else if (state == MissionState.Aborted.ToString())
// {
// washPointStep.Msg = info.FullName + "任务状态" + MissionState.Aborted.ToString();
// }
//}
//else
//{
// washPointStep.Msg = info.FullName + "获取任务状态id[" + id + "]失败";
//}
}
else if (washPointStep.IsEqual(WashPointStep.End))
{
......
using System;
using AGVControl_Steel;
namespace Model
{
......@@ -72,7 +73,9 @@ namespace Model
//与上一个消息不一样才打印
if (!value.Equals(_msg))
{
AGVControl_Steel.Common.log.Info(_step.ToString() + ":" + value);
Common.log.Info(_step.ToString() + ":" + value);
Common.txtLog.AppendText(value + "\r\n");
Common.txtLog.ScrollToCaret();
}
}
_msg = value;
......
......@@ -15,6 +15,18 @@ namespace AGVControl_Steel
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (Asa.WindowsForm.IsRun())
{
MessageBox.Show("IsRun");
return;
}
if (!Asa.WindowsForm.IsAdmin())
{
Asa.WindowsForm.AdminRun();
return;
}
Common.appConfig = System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.None);
Common.log = log4net.LogManager.GetLogger("AGVControl_Steel");
Common.log.Info("=====程序开始=====");
......
......@@ -28,11 +28,8 @@
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain));
this.DgvName = new System.Windows.Forms.DataGridView();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.button1 = new System.Windows.Forms.Button();
this.LblWeb = new System.Windows.Forms.Label();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column5 = new System.Windows.Forms.DataGridViewTextBoxColumn();
......@@ -40,6 +37,11 @@
this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column4 = new System.Windows.Forms.DataGridViewButtonColumn();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.button1 = new System.Windows.Forms.Button();
this.LblWeb = new System.Windows.Forms.Label();
this.TxtLog = new System.Windows.Forms.TextBox();
((System.ComponentModel.ISupportInitialize)(this.DgvName)).BeginInit();
this.tabControl1.SuspendLayout();
this.tabPage2.SuspendLayout();
......@@ -68,52 +70,6 @@
this.DgvName.TabIndex = 0;
this.DgvName.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DgvName_CellContentClick);
//
// tabControl1
//
this.tabControl1.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.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Location = new System.Drawing.Point(12, 98);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(722, 340);
this.tabControl1.TabIndex = 1;
//
// tabPage2
//
this.tabPage2.Controls.Add(this.button1);
this.tabPage2.Controls.Add(this.LblWeb);
this.tabPage2.Location = new System.Drawing.Point(4, 22);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(714, 314);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "状态";
this.tabPage2.UseVisualStyleBackColor = true;
//
// button1
//
this.button1.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button1.Location = new System.Drawing.Point(502, 211);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(170, 55);
this.button1.TabIndex = 1;
this.button1.Text = "TEST";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// LblWeb
//
this.LblWeb.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.LblWeb.Location = new System.Drawing.Point(9, 9);
this.LblWeb.Margin = new System.Windows.Forms.Padding(6);
this.LblWeb.Name = "LblWeb";
this.LblWeb.Size = new System.Drawing.Size(150, 30);
this.LblWeb.TabIndex = 0;
this.LblWeb.Text = "WebService Close";
this.LblWeb.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// Column1
//
this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
......@@ -174,13 +130,73 @@
this.Column4.Name = "Column4";
this.Column4.ReadOnly = true;
//
// tabControl1
//
this.tabControl1.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.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Location = new System.Drawing.Point(12, 98);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(722, 462);
this.tabControl1.TabIndex = 1;
//
// tabPage2
//
this.tabPage2.Controls.Add(this.TxtLog);
this.tabPage2.Controls.Add(this.button1);
this.tabPage2.Controls.Add(this.LblWeb);
this.tabPage2.Location = new System.Drawing.Point(4, 22);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(714, 436);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "状态";
this.tabPage2.UseVisualStyleBackColor = true;
//
// button1
//
this.button1.Font = new System.Drawing.Font("宋体", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.button1.Location = new System.Drawing.Point(348, 375);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(170, 55);
this.button1.TabIndex = 1;
this.button1.Text = "TEST";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// LblWeb
//
this.LblWeb.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.LblWeb.Location = new System.Drawing.Point(351, 9);
this.LblWeb.Margin = new System.Windows.Forms.Padding(6);
this.LblWeb.Name = "LblWeb";
this.LblWeb.Size = new System.Drawing.Size(150, 30);
this.LblWeb.TabIndex = 0;
this.LblWeb.Text = "WebService Close";
this.LblWeb.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// TxtLog
//
this.TxtLog.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.TxtLog.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.TxtLog.Location = new System.Drawing.Point(6, 6);
this.TxtLog.Multiline = true;
this.TxtLog.Name = "TxtLog";
this.TxtLog.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.TxtLog.Size = new System.Drawing.Size(336, 424);
this.TxtLog.TabIndex = 2;
//
// FrmMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(746, 450);
this.ClientSize = new System.Drawing.Size(746, 572);
this.Controls.Add(this.tabControl1);
this.Controls.Add(this.DgvName);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmMain";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "钢网AGV调度";
......@@ -189,6 +205,7 @@
((System.ComponentModel.ISupportInitialize)(this.DgvName)).EndInit();
this.tabControl1.ResumeLayout(false);
this.tabPage2.ResumeLayout(false);
this.tabPage2.PerformLayout();
this.ResumeLayout(false);
}
......@@ -207,6 +224,7 @@
private System.Windows.Forms.DataGridViewTextBoxColumn Column3;
private System.Windows.Forms.DataGridViewTextBoxColumn Column7;
private System.Windows.Forms.DataGridViewButtonColumn Column4;
private System.Windows.Forms.TextBox TxtLog;
}
}
......@@ -33,6 +33,8 @@ namespace AGVControl_Steel
private void FrmMain_Load(object sender, EventArgs e)
{
Common.txtLog = TxtLog;
Asa.WindowsForm.Load(this);
webService = new Webs.WebService();
webService.Open(Common.appConfig.AppSettings.Settings["WebService"].Value);
LblWeb.BackColor = webService.IsOpen ? Color.Lime : Color.Red;
......@@ -52,7 +54,8 @@ namespace AGVControl_Steel
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
{
webService.Close();
if (Asa.WindowsForm.Close(e))
webService.Close();
}
private void DgvName_CellContentClick(object sender, DataGridViewCellEventArgs e)
......
......@@ -44,5 +44,7 @@
<add key="4D_Line" value="D1,D2,D3,D4,D5,D6,D8,D9,D10,D11,D12,D14,D15,D16"/>
<add key="4C_Line" value="C1,C2,C3,C4,C5,C6,C7,C8,C9,C10"/>
<add key="Store" value="wash,storage"/>
<add key="4D_AGV" value="6"/>
<add key="4C_AGV" value="32"/>
</appSettings>
</configuration>
\ No newline at end of file
......@@ -331,7 +331,12 @@
</member>
<member name="P:Model.AgvInfo.Place">
<summary>
当前车间位置,4C/4D
当前位置
</summary>
</member>
<member name="P:Model.AgvInfo.Workshop">
<summary>
车间
</summary>
</member>
<member name="P:Model.AgvInfo.IsAuto">
......@@ -359,6 +364,11 @@
AGV最低电量,小于此值必须充电
</summary>
</member>
<member name="P:Model.AgvInfo.Position">
<summary>
小车坐标位置
</summary>
</member>
<member name="P:Model.AgvInfo.TaskSend">
<summary>
任务发送
......@@ -400,6 +410,28 @@
</summary>
<returns></returns>
</member>
<member name="M:Model.AgvInfo.IsSelfWorkshop">
<summary>
是否在自己的车间里面
</summary>
<returns></returns>
</member>
<member name="M:Model.AgvInfo.IsSteelFull">
<summary>
钢板是否已放满
</summary>
<returns></returns>
</member>
<member name="M:Model.AgvInfo.SteelCountAdd">
<summary>
钢板数量增加
</summary>
</member>
<member name="M:Model.AgvInfo.ClearSteelCount">
<summary>
钢板数量清零
</summary>
</member>
<member name="T:Model.JobStep`1">
<summary>
小车工作步骤
......
MoveSteelC1,
MoveSteelC2,
MoveSteelC3,
MoveSteelC4,
MoveSteelC5,
MoveSteelC6,
MoveSteelC7,
MoveSteelC8,
MoveSteelC9,
MoveSteelC10,
MoveSteelC1,77a02463-f387-11ea-8452-94c691a7387d
MoveSteelC2,b2dc4ed9-f387-11ea-8452-94c691a7387d
MoveSteelC3,c7f598c1-f387-11ea-8452-94c691a7387d
MoveSteelC4,ddfd5992-f387-11ea-8452-94c691a7387d
MoveSteelC5,f0a4498e-f387-11ea-8452-94c691a7387d
MoveSteelC6,037a7f67-f388-11ea-8452-94c691a7387d
MoveSteelC7,1b361828-f388-11ea-8452-94c691a7387d
MoveSteelC8,2aec8e6c-f388-11ea-8452-94c691a7387d
MoveSteelC9,3cad8c7d-f388-11ea-8452-94c691a7387d
MoveSteelC10,4cc3d656-f388-11ea-8452-94c691a7387d
MoveSteelD1,e9ed94bf-f2ac-11ea-8452-94c691a7387d
MoveSteelD2,04e5690f-f2ad-11ea-8452-94c691a7387d
MoveSteelD3,1d3f9b5a-f2ad-11ea-8452-94c691a7387d
......@@ -30,4 +30,6 @@ AutoCharge4C,8ed7b459-f2b0-11ea-8452-94c691a7387d
AutoCharge4D,2f0a31b1-f2ab-11ea-8452-94c691a7387d
MoveDoor-4C-4D,d67f31c8-ca7e-11ea-9a66-94c691a7387d
MoveDoor-4D-4C,fd6e26ac-c1bf-11ea-9a66-94c691a7387d
MoveStorage,418c9064-f2ac-11ea-8452-94c691a7387d
\ No newline at end of file
MoveStorage,418c9064-f2ac-11ea-8452-94c691a7387d
Pickupqisdashelf,f2acdcae-e524-11ea-b003-0001299a3f0e
Placeqisdashelf,4001120d-e525-11ea-b003-0001299a3f0e
\ No newline at end of file
32,11号_1762,10.85.199.82,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==
25,13号_1766,10.85.199.84,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==
\ No newline at end of file
25,13号_1766,10.85.199.84,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==
6,4号_1470,10.85.199.70,Basic ZGlzdHJpYnV0b3I6NjJmMmYwZjFlZmYxMGQzMTUyYzk1ZjZmMDU5NjU3NmU0ODJiYjhlNDQ4MDY0MzNmNGNmOTI5NzkyODM0YjAxNA==
\ No newline at end of file
[2020-09-10 14:29:58,242][1][AGVControl_Steel:32]INFO =====程序开始=====
[2020-09-10 14:29:58,379][1][AGVControl_Steel:80]INFO 读取配置文件 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl_Steel\AGVControl_Steel\bin\Debug\Config\AgvName.csv
[2020-09-10 14:29:58,380][1][AGVControl_Steel:91]INFO 读取配置文件 D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl_Steel\AGVControl_Steel\bin\Debug\Config\AgvMission.csv
[2020-09-10 14:29:59,366][1][AGVControl_Steel:172]INFO Web服务已开启
[2020-09-10 14:30:05,682][1][AGVControl_Steel:73]INFO 手动修改 4号_1470 IsUse=True
[2020-09-10 14:30:11,916][8][AGVControl_Steel:76]INFO None:4号_1470[10.85.199.70]回待机位Move4DStandby
[2020-09-10 14:30:14,539][8][AGVControl_Steel:76]INFO WaitStandby:4号_1470[10.85.199.70]已在待机位
[2020-09-10 14:31:43,325][1][AGVControl_Steel:189]INFO Web服务已关闭
[2020-09-10 14:31:43,388][1][AGVControl_Steel:43]INFO =====程序结束=====
f5d387375c56a96c8e6b88a603ea5a9491ae11c5
41508a38d8edbbc58c27e72e45c82c9ba74fa2bf
......@@ -12,3 +12,5 @@ D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl_Steel\AGVControl_Ste
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl_Steel\AGVControl_Steel\bin\Debug\RestSharp.dll
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl_Steel\AGVControl_Steel\bin\Debug\RestSharp.xml
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl_Steel\AGVControl_Steel\obj\Debug\AGVControl_Steel.csproj.CopyComplete
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl_Steel\AGVControl_Steel\bin\Debug\ClassFormParent.dll
D:\OneDrive - 上海挚锦科技有限公司\SMD\AGVControl_Steel\AGVControl_Steel\bin\Debug\ClassFormParent.pdb
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!