+ Added functions access
* Change db and added PLC_ID
This commit is contained in:
Binary file not shown.
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Step.Model.DatabaseModels;
|
||||
using Step.Model.DTOModels;
|
||||
using static CMS_CORE_Library.DataStructures;
|
||||
|
||||
namespace Step.Database.Controllers
|
||||
{
|
||||
@@ -43,7 +44,31 @@ namespace Step.Database.Controllers
|
||||
CanRead = f.ReadLevelMin < roleLevel,
|
||||
CanWrite = f.WriteLevelMin < roleLevel
|
||||
})
|
||||
.ToList() ;
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public List<DTORuntimeFunctionAccessModel> GetFunctionsMappedWithPlc(List<FunctionalityModel> functionalityList)
|
||||
{
|
||||
return dbCtx
|
||||
.FunctionsAccess
|
||||
.ToList() // Find all function access
|
||||
.Select(f => new DTORuntimeFunctionAccessModel()
|
||||
{
|
||||
Id = f.FunctionAccessId,
|
||||
Name = f.Name,
|
||||
Area = f.Area,
|
||||
Enabled = GetIfFunctionalityIsActive(functionalityList, f.PlcId, f.Enabled) // Get new enabled data
|
||||
})
|
||||
.ToList();
|
||||
}
|
||||
|
||||
private bool GetIfFunctionalityIsActive(List<FunctionalityModel> functionalityList, int id, bool functionAccessIsEnabled)
|
||||
{
|
||||
// If id is not mapped or function is false by database config return
|
||||
if (id == 0 || !functionAccessIsEnabled)
|
||||
return functionAccessIsEnabled;
|
||||
// Return PLC data
|
||||
return functionalityList[id - 1].isActive;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Step.Database.Controllers
|
||||
dbCtx.Dispose();
|
||||
}
|
||||
|
||||
public MachineModel GetMachineById(int id)
|
||||
public MachineModel FindById(int id)
|
||||
{
|
||||
return dbCtx
|
||||
.Machines
|
||||
@@ -29,7 +29,7 @@ namespace Step.Database.Controllers
|
||||
.SingleOrDefault();
|
||||
}
|
||||
|
||||
public MachineModel GetMachineByUniqueId(string uniqueId)
|
||||
public MachineModel FindMachineByUniqueId(string uniqueId)
|
||||
{
|
||||
return dbCtx
|
||||
.Machines
|
||||
|
||||
@@ -116,7 +116,7 @@ namespace Step.Database
|
||||
// Set machine info into static server config
|
||||
using (MachinesController machinesController = new MachinesController())
|
||||
{
|
||||
MachineConfig = machinesController.GetMachineByUniqueId(uniqueId);
|
||||
MachineConfig = machinesController.FindMachineByUniqueId(uniqueId);
|
||||
if (MachineConfig == null)
|
||||
{
|
||||
MachineConfig = machinesController.Create(uniqueId);
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ namespace Step.Database.Migrations
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "201801291142206_InitCreate"; }
|
||||
get { return "201802051555548_InitCreate"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
+1
@@ -17,6 +17,7 @@ namespace Step.Database.Migrations
|
||||
read_level_min = c.Int(nullable: false),
|
||||
area = c.String(unicode: false),
|
||||
enabled = c.Boolean(nullable: false),
|
||||
plc_id = c.Int(nullable: false),
|
||||
})
|
||||
.PrimaryKey(t => t.id);
|
||||
|
||||
+1
-1
@@ -118,7 +118,7 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Target" xml:space="preserve">
|
||||
<value>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</value>
|
||||
<value>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</value>
|
||||
</data>
|
||||
<data name="DefaultSchema" xml:space="preserve">
|
||||
<value>dbo</value>
|
||||
@@ -34,6 +34,9 @@
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="CMS_CORE_Library">
|
||||
<HintPath>..\Libs\CMS_CORE_Library.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll</HintPath>
|
||||
</Reference>
|
||||
@@ -73,9 +76,9 @@
|
||||
<Compile Include="Controllers\UsersController.cs" />
|
||||
<Compile Include="Controllers\MachinesUsersController.cs" />
|
||||
<Compile Include="DatabaseContext.cs" />
|
||||
<Compile Include="Migrations\201801291142206_InitCreate.cs" />
|
||||
<Compile Include="Migrations\201801291142206_InitCreate.Designer.cs">
|
||||
<DependentUpon>201801291142206_InitCreate.cs</DependentUpon>
|
||||
<Compile Include="Migrations\201802051555548_InitCreate.cs" />
|
||||
<Compile Include="Migrations\201802051555548_InitCreate.Designer.cs">
|
||||
<DependentUpon>201802051555548_InitCreate.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\Configuration.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
@@ -111,8 +114,8 @@
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Migrations\201801291142206_InitCreate.resx">
|
||||
<DependentUpon>201801291142206_InitCreate.cs</DependentUpon>
|
||||
<EmbeddedResource Include="Migrations\201802051555548_InitCreate.resx">
|
||||
<DependentUpon>201802051555548_InitCreate.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
||||
@@ -10,12 +10,12 @@ namespace Step.Model.DTOModels
|
||||
public class DTOProcessDataModel
|
||||
{
|
||||
public bool isRunning;
|
||||
public List<ProcessData> processes;
|
||||
public List<ProcessDataModel> processes;
|
||||
|
||||
public DTOProcessDataModel()
|
||||
{
|
||||
isRunning = false;
|
||||
processes = new List<ProcessData>();
|
||||
processes = new List<ProcessDataModel>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Step.Model.DTOModels
|
||||
{
|
||||
public class DTORuntimeFunctionAccessModel
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public string Area { get; set; }
|
||||
|
||||
public bool Enabled { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -26,5 +26,7 @@ namespace Step.Model.DatabaseModels
|
||||
public string Area { get; set; }
|
||||
[Column("enabled")]
|
||||
public bool Enabled { get; set; }
|
||||
[Column("plc_id")]
|
||||
public int PlcId { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,6 +82,7 @@
|
||||
<Compile Include="DTOModels\DTONcGenericDataModel.cs" />
|
||||
<Compile Include="DTOModels\DTOProcessDataModel.cs" />
|
||||
<Compile Include="DTOModels\DTORoleModel.cs" />
|
||||
<Compile Include="DTOModels\DTORuntimeFunctionAccessModel.cs" />
|
||||
<Compile Include="DTOModels\DTOStartupConfigurationModel.cs" />
|
||||
<Compile Include="DTOModels\DTOUserModel.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
|
||||
+46
-9
@@ -13,6 +13,8 @@ using static Step.Utils.ExceptionManager;
|
||||
using static CMS_CORE.Nc;
|
||||
using static CMS_CORE_Library.DataStructures;
|
||||
using System.Reflection;
|
||||
using Step.Database.Controllers;
|
||||
using Step.Model.DatabaseModels;
|
||||
|
||||
namespace Step.NC
|
||||
{
|
||||
@@ -248,10 +250,12 @@ namespace Step.NC
|
||||
|
||||
public CmsError GetPowerOnData(out PreAndPostPowerOnModel powerOnData)
|
||||
{
|
||||
powerOnData = new PreAndPostPowerOnModel();
|
||||
powerOnData.postPowerOn = new PostPowerOnModel();
|
||||
powerOnData.prePowerOn = new PrePowerOnModel();
|
||||
CmsError cmsError = numericalControl.Nc_RPowerOnData(ref powerOnData);
|
||||
powerOnData = new PreAndPostPowerOnModel
|
||||
{
|
||||
postPowerOn = new PostPowerOnModel(),
|
||||
prePowerOn = new PrePowerOnModel()
|
||||
};
|
||||
CmsError cmsError = numericalControl.PLC_RPowerOnData(ref powerOnData);
|
||||
|
||||
return cmsError;
|
||||
}
|
||||
@@ -269,11 +273,23 @@ namespace Step.NC
|
||||
// For each process get info
|
||||
for (ushort i = 1; i <= maxProcNumber; i++)
|
||||
{
|
||||
ProcessData tmpProcPP = new ProcessData();
|
||||
cmsError = numericalControl.PROC_RStatus(i, ref tmpProcPP);
|
||||
if (tmpProcPP.Status == "RUN")
|
||||
processesData.isRunning = true;
|
||||
ProcessDataModel tmpProcPP = new ProcessDataModel();
|
||||
// Get process status
|
||||
cmsError = numericalControl.PROC_RStatusAndData(i, ref tmpProcPP);
|
||||
// if at least one process is in run, NC is running
|
||||
|
||||
// Add to list
|
||||
processesData.processes.Add(tmpProcPP);
|
||||
|
||||
// Check if there are running process
|
||||
if (!processesData.isRunning)
|
||||
{
|
||||
PROC_STATUS status = PROC_STATUS.IDLE;
|
||||
// Get process status
|
||||
cmsError = numericalControl.PROC_RStatus(i, ref status);
|
||||
if (status == PROC_STATUS.RUN)
|
||||
processesData.isRunning = true;
|
||||
}
|
||||
}
|
||||
|
||||
return cmsError;
|
||||
@@ -281,7 +297,28 @@ namespace Step.NC
|
||||
|
||||
public CmsError PutPowerOnData(uint id)
|
||||
{
|
||||
CmsError cmsError = numericalControl.Nc_WPowerOnData(id, true);
|
||||
// Set to true power on data by id
|
||||
CmsError cmsError = numericalControl.PLC_WPowerOnData(id, true);
|
||||
|
||||
return cmsError;
|
||||
}
|
||||
|
||||
public CmsError GetFunctionsMappedWithNC(out List<DTORuntimeFunctionAccessModel> functionsAccessList)
|
||||
{
|
||||
functionsAccessList = new List<DTORuntimeFunctionAccessModel>();
|
||||
// Read plc functionality
|
||||
List<FunctionalityModel> functionalityList = null;
|
||||
CmsError cmsError = numericalControl.PLC_RFunctionAccess(ref functionalityList);
|
||||
|
||||
// If empty return
|
||||
if (functionalityList == null || functionalityList.Count == 0)
|
||||
return cmsError;
|
||||
|
||||
using (FunctionsAccessController functionsAccessController = new FunctionsAccessController())
|
||||
{
|
||||
// Map plc and database data
|
||||
functionsAccessList = functionsAccessController.GetFunctionsMappedWithPlc(functionalityList);
|
||||
}
|
||||
|
||||
return cmsError;
|
||||
}
|
||||
|
||||
@@ -71,6 +71,10 @@
|
||||
<Project>{3f5c2483-fc87-43ef-92a8-66ff7d0e440f}</Project>
|
||||
<Name>Step.Config</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.Database\Step.Database.csproj">
|
||||
<Project>{357D5EE1-FFC8-489B-9232-22CF474D9A6F}</Project>
|
||||
<Name>Step.Database</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Step.Model\Step.Model.csproj">
|
||||
<Project>{631375DD-06D3-49BB-8130-D9DDB34C429D}</Project>
|
||||
<Name>Step.Model</Name>
|
||||
|
||||
@@ -18,6 +18,7 @@ public static class ThreadsFunctions
|
||||
private static long ReadAxesTimer = 0, ReadAxesTimes = 0;
|
||||
private static long ReadPowerOnTimer = 0, ReadPowerOnTimes = 0;
|
||||
private static long ReadProcPPTimer = 0, ReadProcPPTimes = 0;
|
||||
private static long ReadFunctionTimer = 0, ReadFunctionTimes = 0;
|
||||
|
||||
private static Thread ConnThread;
|
||||
|
||||
@@ -238,6 +239,51 @@ public static class ThreadsFunctions
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void ReadRuntimeFunctionAccess()
|
||||
{
|
||||
NcHandler ncHandler = new NcHandler();
|
||||
Stopwatch sw = new Stopwatch();
|
||||
|
||||
try
|
||||
{
|
||||
// Try connection
|
||||
CmsError libraryError = ncHandler.Connect();
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
|
||||
while (true)
|
||||
{
|
||||
sw.Restart();
|
||||
|
||||
if (ncHandler.numericalControl.NC_IsConnected())
|
||||
{
|
||||
// Get Data from NC
|
||||
libraryError = ncHandler.GetFunctionsMappedWithNC(out List<DTORuntimeFunctionAccessModel> functionsAccessList);
|
||||
if (libraryError.errorCode != 0)
|
||||
ManageLibraryError(libraryError);
|
||||
else
|
||||
// Send through signalR
|
||||
MessageServices.Current.Publish(SEND_FUNCTIONALITY_DATA, null, functionsAccessList);
|
||||
}
|
||||
else
|
||||
TryNcConnection();
|
||||
|
||||
sw.Stop();
|
||||
//Send to the UI the time
|
||||
ReadFunctionTimer += sw.ElapsedMilliseconds;
|
||||
ReadFunctionTimes++;
|
||||
|
||||
// Wait
|
||||
Thread.Sleep(200);
|
||||
}
|
||||
}
|
||||
catch (ThreadAbortException)
|
||||
{
|
||||
ncHandler.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region SupportFunctions
|
||||
@@ -364,6 +410,12 @@ public static class ThreadsFunctions
|
||||
ReadProcPPTimer = 0;
|
||||
ReadProcPPTimes = 0;
|
||||
}
|
||||
if (ThreadsHandler.RunningThreadStatus.ContainsKey("ReadRuntimeFunctionAccess") && ReadFunctionTimes != 0)
|
||||
{
|
||||
ThreadsHandler.RunningThreadStatus["ReadRuntimeFunctionAccess"] = (ReadFunctionTimer / ReadFunctionTimes) + " mS";
|
||||
ReadFunctionTimer = 0;
|
||||
ReadFunctionTimes = 0;
|
||||
}
|
||||
|
||||
MessageServices.Current.Publish(SEND_THREADS_STATUS, null, ThreadsHandler.RunningThreadStatus);
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ namespace Step.Core
|
||||
ThreadsFunctions.ReadPowerOnData,
|
||||
ThreadsFunctions.StatThread,
|
||||
ThreadsFunctions.ReadProcessesPPStatus,
|
||||
ThreadsFunctions.ReadRuntimeFunctionAccess
|
||||
};
|
||||
private volatile static List<Thread> RunningThreadsList = new List<Thread>();
|
||||
internal volatile static Dictionary<String, String> RunningThreadStatus = new Dictionary<String, String>();
|
||||
|
||||
@@ -74,5 +74,7 @@ namespace Step.Utils
|
||||
public const string SEND_GENERIC_DATA = "SEND_GENERIC_DATA";
|
||||
public const string SEND_AXES = "SEND_AXES";
|
||||
public const string SEND_PROCESSES_DATA = "SEND_PROCESSES_STATUS";
|
||||
public const string SEND_FUNCTIONALITY_DATA = "SEND_FUNCTION_DATA";
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,6 +52,11 @@ namespace Step.Listeners
|
||||
{
|
||||
SignalRListener.SendProcessesData(a);
|
||||
}));
|
||||
|
||||
infos.Add(MessageServices.Current.Subscribe(SEND_FUNCTIONALITY_DATA, async (a, b) =>
|
||||
{
|
||||
SignalRListener.SendProcessesData(a);
|
||||
}));
|
||||
}
|
||||
|
||||
public static void Stop()
|
||||
|
||||
@@ -53,5 +53,11 @@ namespace Step.Listeners.SignalR
|
||||
var context = GlobalHost.ConnectionManager.GetHubContext<NcHub>();
|
||||
context.Clients.Group("ncData").processesData(processesStatus);
|
||||
}
|
||||
|
||||
public static void SendFunctionalityData(object functionalityData)
|
||||
{
|
||||
var context = GlobalHost.ConnectionManager.GetHubContext<NcHub>();
|
||||
context.Clients.Group("ncData").functionalityData(functionalityData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user