8 Commits

Author SHA1 Message Date
Thermo_SIM 3de5bfd339 Fix Historysheets 2021-03-24 14:25:19 +01:00
Samuele E. Locatelli 0d47c1c9f5 fix lettura dataora x hist cyclelog 2021-03-22 16:48:21 +01:00
Thermo_SIM f0f2d415f6 Added Type to History 2021-03-22 16:16:31 +01:00
Thermo_SIM f4f0c95ad4 Fix Real Val 2021-03-19 22:24:54 +01:00
Thermo_SIM 0a718cd38d Merge remote-tracking branch 'origin/feature/S7Net' into feature/S7Net 2021-03-19 22:22:48 +01:00
Thermo_SIM a5ada18ced Added HistorySheets values 2021-03-19 22:22:16 +01:00
Samuele E. Locatelli d43f8752f3 typo 2021-03-19 10:12:33 +01:00
Samuele E. Locatelli 47a36ebd5d fix S7Net package a 0.4.0 + fix type (Real/Single) 2021-03-17 18:43:31 +01:00
5 changed files with 107 additions and 23 deletions
+2 -2
View File
@@ -103,8 +103,8 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>libs\CndexLinkDotNet.dll</HintPath>
</Reference>
<Reference Include="S7.Net, Version=0.8.1.0, Culture=neutral, PublicKeyToken=d5812d469e84c693, processorArchitecture=MSIL">
<HintPath>..\packages\S7netplus.0.8.1\lib\net452\S7.Net.dll</HintPath>
<Reference Include="S7.Net, Version=0.4.0.0, Culture=neutral, PublicKeyToken=d5812d469e84c693, processorArchitecture=MSIL">
<HintPath>..\..\cms_thermo_active\packages\S7netplus.0.4.0\lib\net452\S7.Net.dll</HintPath>
</Reference>
<Reference Include="Siemens.Sinumerik.Operate.Services, Version=4.7.3.2, Culture=neutral, PublicKeyToken=bdd90fa02fd1c4ee, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
+30 -7
View File
@@ -379,7 +379,7 @@ namespace CMS_CORE_Library.Models
DateTime answ = DateTime.Now;
try
{
new DateTime(year, month, day);
answ = new DateTime(year, month, day);
answ = answ.AddHours(hour).AddMinutes(min).AddMilliseconds(msec);
}
catch
@@ -556,12 +556,12 @@ namespace CMS_CORE_Library.Models
Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeVacuum), 0, answ, 14, 4);
Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeCycleGross), 0, answ, 18, 4);
Buffer.BlockCopy(S7.Net.Types.DInt.ToByteArray(TimeCycleNet), 0, answ, 22, 4);
Buffer.BlockCopy(S7.Net.Types.Real.ToByteArray(MaterialTempEndWarm), 0, answ, 26, 4);
Buffer.BlockCopy(S7.Net.Types.Real.ToByteArray(MaterialTempEndVent), 0, answ, 30, 4);
Buffer.BlockCopy(S7.Net.Types.Real.ToByteArray(MoldTemp), 0, answ, 34, 4);
Buffer.BlockCopy(S7.Net.Types.Real.ToByteArray(VacuumReadVal), 0, answ, 38, 4);
Buffer.BlockCopy(S7.Net.Types.Real.ToByteArray(MouldEnergyOUT), 0, answ, 42, 4);
Buffer.BlockCopy(S7.Net.Types.Real.ToByteArray(MouldEnergyIN), 0, answ, 46, 4);
Buffer.BlockCopy(S7.Net.Types.Single.ToByteArray(MaterialTempEndWarm), 0, answ, 26, 4);
Buffer.BlockCopy(S7.Net.Types.Single.ToByteArray(MaterialTempEndVent), 0, answ, 30, 4);
Buffer.BlockCopy(S7.Net.Types.Single.ToByteArray(MoldTemp), 0, answ, 34, 4);
Buffer.BlockCopy(S7.Net.Types.Single.ToByteArray(VacuumReadVal), 0, answ, 38, 4);
Buffer.BlockCopy(S7.Net.Types.Single.ToByteArray(MouldEnergyOUT), 0, answ, 42, 4);
Buffer.BlockCopy(S7.Net.Types.Single.ToByteArray(MouldEnergyIN), 0, answ, 46, 4);
return answ;
}
@@ -817,6 +817,29 @@ namespace CMS_CORE_Library.Models
#endregion Public Methods
}
/// <summary>
/// Recipe Parameters
/// </summary>
public class HistorySheet
{
#region Public Properties
public bool newData { get; set; } = false;
public double Value1 { get; set; } = 0;
public double Value2 { get; set; } = 0;
public double Value3 { get; set; } = 0;
public ushort TypeVal { get; set; } = 0;
public short IdPiece { get; set; } = 0;
#endregion Public Properties
#region Public Methods
#endregion Public Methods
}
#endregion Public Classes
}
+11
View File
@@ -823,6 +823,17 @@ namespace CMS_CORE_Library
/// <returns></returns>
public abstract CmsError PLC_RProdCycle(ref ThermoModels.ProdCycleModel currProdCycle);
/// <summary>
/// Get current HistorySheets
/// </summary>
/// <param name="historySheet"></param>
/// <returns></returns>
public abstract CmsError PLC_RHistorySheets(ref ThermoModels.HistorySheet historySheet);
/// <summary>
/// Write ack
/// </summary>
/// <returns></returns>
public abstract CmsError PLC_WAckHistorySheets();
/// <summary>
/// Request for mode selection via strobe
/// </summary>
/// <param name="mode">1: MAN, 2: AUTO, 3: SETUP</param>
+63 -13
View File
@@ -183,6 +183,9 @@ namespace CMS_CORE_Library.S7Net
internal static MEMORY_CELL PROCESS_STATUS = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 605, 0, 2);
internal static MEMORY_CELL HISTORY_SHEETS = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 143, 2, 18);
internal static MEMORY_CELL HISTORY_ACK_SHEETS = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, 143, 0, 2);
// Prod strobe/ack
internal static MEMORY_CELL PROD_ACK = new MEMORY_CELL(MEMORY_TYPE.Siemens_DB, TABLE, 0, 2);
@@ -3731,18 +3734,65 @@ namespace CMS_CORE_Library.S7Net
TimeVacuum = S7.Net.Types.DInt.FromByteArray(currMem.Skip(14).Take(4).ToArray()),
TimeCycleGross = S7.Net.Types.DInt.FromByteArray(currMem.Skip(18).Take(4).ToArray()),
TimeCycleNet = S7.Net.Types.DInt.FromByteArray(currMem.Skip(22).Take(4).ToArray()),
MaterialTempEndWarm = S7.Net.Types.Real.FromByteArray(currMem.Skip(26).Take(4).ToArray()),
MaterialTempEndVent = S7.Net.Types.Real.FromByteArray(currMem.Skip(30).Take(4).ToArray()),
MoldTemp = S7.Net.Types.Real.FromByteArray(currMem.Skip(34).Take(4).ToArray()),
VacuumReadVal = S7.Net.Types.Real.FromByteArray(currMem.Skip(38).Take(4).ToArray()),
MouldEnergyOUT = S7.Net.Types.Real.FromByteArray(currMem.Skip(42).Take(4).ToArray()),
MouldEnergyIN = S7.Net.Types.Real.FromByteArray(currMem.Skip(46).Take(4).ToArray()),
MaterialTempEndWarm = S7.Net.Types.Single.FromByteArray(currMem.Skip(26).Take(4).ToArray()),
MaterialTempEndVent = S7.Net.Types.Single.FromByteArray(currMem.Skip(30).Take(4).ToArray()),
MoldTemp = S7.Net.Types.Single.FromByteArray(currMem.Skip(34).Take(4).ToArray()),
VacuumReadVal = S7.Net.Types.Single.FromByteArray(currMem.Skip(38).Take(4).ToArray()),
MouldEnergyOUT = S7.Net.Types.Single.FromByteArray(currMem.Skip(42).Take(4).ToArray()),
MouldEnergyIN = S7.Net.Types.Single.FromByteArray(currMem.Skip(46).Take(4).ToArray()),
NumPreHot = S7.Net.Types.Int.FromByteArray(currMem.Skip(50).Take(2).ToArray())
};
return NO_ERROR;
}
/// <summary>
/// Get current HistorySheets
/// </summary>
/// <param name="historySheet"></param>
/// <returns></returns>
///
public override CmsError PLC_RHistorySheets(ref ThermoModels.HistorySheet historySheet)
{
List<byte> currMem = new List<byte>();
CmsError libraryError = MEM_RWByteList(R, 0, HISTORY_SHEETS.MemType, HISTORY_SHEETS.Address, HISTORY_SHEETS.SubAddress, 0, HISTORY_SHEETS.Size, ref currMem);
if (libraryError.IsError())
return libraryError;
// converto!
historySheet = new ThermoModels.HistorySheet()
{
newData = (S7.Net.Types.Int.FromByteArray(currMem.Skip(0).Take(2).ToArray()) & 1) == 1,
Value1 = S7.Net.Types.Single.FromByteArray(currMem.Skip(2).Take(4).ToArray()),
Value2 = S7.Net.Types.Single.FromByteArray(currMem.Skip(6).Take(4).ToArray()),
Value3 = S7.Net.Types.Single.FromByteArray(currMem.Skip(10).Take(4).ToArray()),
TypeVal = S7.Net.Types.Word.FromByteArray(currMem.Skip(14).Take(2).ToArray()),
IdPiece = S7.Net.Types.Int.FromByteArray(currMem.Skip(16).Take(2).ToArray()),
};
return NO_ERROR;
}
/// <summary>
/// WriteAck HistorySheets
/// </summary>
/// <returns></returns>
///
public override CmsError PLC_WAckHistorySheets()
{
CmsError libraryError = NO_ERROR;
// Call ack for config request RISK
libraryError = PLC_WAck(true,HISTORY_ACK_SHEETS, HISTORY_SHEETS, 1);
if (libraryError.IsError())
return libraryError;
return libraryError;
}
/// <summary>
/// read current recipe parameter list
/// </summary>
@@ -4493,12 +4543,12 @@ namespace CMS_CORE_Library.S7Net
TimeVacuum = S7.Net.Types.DInt.FromByteArray(currMem.Skip(14).Take(4).ToArray()),
TimeCycleGross = S7.Net.Types.DInt.FromByteArray(currMem.Skip(18).Take(4).ToArray()),
TimeCycleNet = S7.Net.Types.DInt.FromByteArray(currMem.Skip(22).Take(4).ToArray()),
MaterialTempEndWarm = S7.Net.Types.Real.FromByteArray(currMem.Skip(26).Take(4).ToArray()),
MaterialTempEndVent = S7.Net.Types.Real.FromByteArray(currMem.Skip(30).Take(4).ToArray()),
MoldTemp = S7.Net.Types.Real.FromByteArray(currMem.Skip(34).Take(4).ToArray()),
VacuumReadVal = S7.Net.Types.Real.FromByteArray(currMem.Skip(38).Take(4).ToArray()),
MouldEnergyOUT = S7.Net.Types.Real.FromByteArray(currMem.Skip(42).Take(4).ToArray()),
MouldEnergyIN = S7.Net.Types.Real.FromByteArray(currMem.Skip(46).Take(4).ToArray()),
MaterialTempEndWarm = S7.Net.Types.Single.FromByteArray(currMem.Skip(26).Take(4).ToArray()),
MaterialTempEndVent = S7.Net.Types.Single.FromByteArray(currMem.Skip(30).Take(4).ToArray()),
MoldTemp = S7.Net.Types.Single.FromByteArray(currMem.Skip(34).Take(4).ToArray()),
VacuumReadVal = S7.Net.Types.Single.FromByteArray(currMem.Skip(38).Take(4).ToArray()),
MouldEnergyOUT = S7.Net.Types.Single.FromByteArray(currMem.Skip(42).Take(4).ToArray()),
MouldEnergyIN = S7.Net.Types.Single.FromByteArray(currMem.Skip(46).Take(4).ToArray()),
NumPreHot = S7.Net.Types.Int.FromByteArray(currMem.Skip(50).Take(2).ToArray())
};
@@ -4566,7 +4616,7 @@ namespace CMS_CORE_Library.S7Net
int memIndex = 0;
int packSize = 20;
// 2020.09.03: ricevuto da chiamata, dovrebbe essere 5 parametri x scrivere tutto (era 30 prima di 2008.08.07)
// 2020.09.03: ricevuto da chiamata, dovrebbe essere 5 parametri x scrivere tutto (era 30 prima di 2018.08.07)
bool writeSingle = newParameters.Count < nMaxParamWrite;
// leggo da PLC a array di byte di appoggio...
+1 -1
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="S7netplus" version="0.8.1" targetFramework="net462" />
<package id="S7netplus" version="0.4.0" targetFramework="net462" />
</packages>