Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3de5bfd339 | |||
| 0d47c1c9f5 | |||
| f0f2d415f6 | |||
| f4f0c95ad4 | |||
| 0a718cd38d | |||
| a5ada18ced | |||
| d43f8752f3 | |||
| 47a36ebd5d |
@@ -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>
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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,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>
|
||||
Reference in New Issue
Block a user