modifica metodi x scrittura sul PLC

This commit is contained in:
Samuele E. Locatelli
2021-02-05 12:23:50 +01:00
parent 06cdac822b
commit 9b2e741992
2 changed files with 140 additions and 1 deletions
+37
View File
@@ -808,6 +808,43 @@ namespace CMS_CORE_Library
/// <param name="currThermoIOFor">Indicates if values are forced by UI</param>
/// <param name="currThermoIOValFor">Values forced by UI</param>
public abstract CmsError PLC_RIOChannelsVal(ref ThermoModels.ChanIOVal currThermoIOVal, ref ThermoModels.ChanIOFor currThermoIOFor, ref ThermoModels.ChanIOValFor currThermoIOValFor);
/// <summary>
/// Write MULTIPLE Digital Out values (+ force)
/// </summary>
/// <param name="newValues">Oggetto valori da aggiornare (from HMI)</param>
/// <param name="nMaxParamWrite">num max parametri da scrivere singolarmente</param>
/// <param name="delayParamWrite">delay in scriottura multi parametri singoli</param>
/// <returns></returns>
public abstract CmsError PLC_W_IO_DO_Val(Dictionary<int, bool> newValues, int nMaxParamWrite, int delayParamWrite);
/// <summary>
/// Write MULTIPLE Analog Out values (+ force)
/// </summary>
/// <param name="newValues">Oggetto valori da aggiornare (from HMI)</param>
/// <param name="nMaxParamWrite">num max parametri da scrivere singolarmente</param>
/// <param name="delayParamWrite">delay in scriottura multi parametri singoli</param>
/// <returns></returns>
public abstract CmsError PLC_W_IO_AO_Val(Dictionary<int, int> newValues, int nMaxParamWrite, int delayParamWrite);
/// <summary>
/// Reset MULTIPLE Digital Out FORCED Status (bitmap)
/// </summary>
/// <param name="newValues">Oggetto valori da aggiornare (from HMI)</param>
/// <param name="nMaxParamWrite">num max parametri da scrivere singolarmente</param>
/// <param name="delayParamWrite">delay in scriottura multi parametri singoli</param>
/// <returns></returns>
public abstract CmsError PLC_W_IO_DO_Reset(Dictionary<int, bool> newValues, int nMaxParamWrite, int delayParamWrite);
/// <summary>
/// Reset MULTIPLE Digital Out FORCED Status (bitmap)
/// </summary>
/// <param name="newValues">Oggetto valori da aggiornare (from HMI)</param>
/// <param name="nMaxParamWrite">num max parametri da scrivere singolarmente</param>
/// <param name="delayParamWrite">delay in scriottura multi parametri singoli</param>
/// <returns></returns>
public abstract CmsError PLC_W_IO_AO_Reset(Dictionary<int, bool> newValues, int nMaxParamWrite, int delayParamWrite);
/// <summary>
/// Reset ALL DO / AO forced bitmap
/// </summary>
/// <returns></returns>
public abstract CmsError PLC_W_IO_ResetAll();
#endregion THERMO high level data
+103 -1
View File
@@ -3749,7 +3749,7 @@ namespace CMS_CORE_Library.S7Net
// copio liste in output...
currThermoIOVis = ThermoIOVis;
// esco
return currError;
}
@@ -3899,6 +3899,108 @@ namespace CMS_CORE_Library.S7Net
return libraryError;
}
/// <summary>
/// Write MULTIPLE Digital Out values (+ force)
/// </summary>
/// <param name="newValues">Oggetto valori da aggiornare (from HMI)</param>
/// <param name="nMaxParamWrite">num max parametri da scrivere singolarmente</param>
/// <param name="delayParamWrite">delay in scriottura multi parametri singoli</param>
/// <returns></returns>
public override CmsError PLC_W_IO_DO_Val(Dictionary<int, bool> newValues, int nMaxParamWrite, int delayParamWrite)
{
CmsError libraryError = NO_ERROR;
// leggo valori attuali
// aggiorno valori ricevuti
// scrivo valori
// scrivo forced
return libraryError;
}
/// <summary>
/// Write MULTIPLE Analog Out values (+ force)
/// </summary>
/// <param name="newValues">Oggetto valori da aggiornare (from HMI)</param>
/// <param name="nMaxParamWrite">num max parametri da scrivere singolarmente</param>
/// <param name="delayParamWrite">delay in scriottura multi parametri singoli</param>
/// <returns></returns>
public override CmsError PLC_W_IO_AO_Val(Dictionary<int, int> newValues, int nMaxParamWrite, int delayParamWrite)
{
CmsError libraryError = NO_ERROR;
// leggo valori attuali
// aggiorno valori ricevuti
// scrivo valori
// scrivo forced
return libraryError;
}
/// <summary>
/// Write MULTIPLE Digital Out FORCED Status (bitmap)
/// </summary>
/// <param name="newValues">Oggetto valori da aggiornare (from HMI)</param>
/// <param name="nMaxParamWrite">num max parametri da scrivere singolarmente</param>
/// <param name="delayParamWrite">delay in scriottura multi parametri singoli</param>
/// <returns></returns>
public override CmsError PLC_W_IO_DO_Reset(Dictionary<int, bool> newValues, int nMaxParamWrite, int delayParamWrite)
{
CmsError libraryError = NO_ERROR;
return libraryError;
}
/// <summary>
/// Write MULTIPLE Digital Out FORCED Status (bitmap)
/// </summary>
/// <param name="newValues">Oggetto valori da aggiornare (from HMI)</param>
/// <param name="nMaxParamWrite">num max parametri da scrivere singolarmente</param>
/// <param name="delayParamWrite">delay in scriottura multi parametri singoli</param>
/// <returns></returns>
public override CmsError PLC_W_IO_AO_Reset(Dictionary<int, bool> newValues, int nMaxParamWrite, int delayParamWrite)
{
CmsError libraryError = NO_ERROR;
return libraryError;
}
/// <summary>
/// Reset ALL DO / AO forced bitmap
/// </summary>
/// <returns></returns>
public override CmsError PLC_W_IO_ResetAll()
{
CmsError libraryError = NO_ERROR;
List<ushort> writeValuesDO = new List<ushort>();
List<ushort> writeValuesAO = new List<ushort>();
// imposto a zero...
for (int i = 0; i < IO_DO_FORCE.Size; i++)
{
writeValuesDO.Add(0);
}
for (int i = 0; i < IO_AO_FORCE.Size; i++)
{
writeValuesAO.Add(0);
}
// leggo da PLC a array di byte di appoggio x visibilità DO...
libraryError = MEM_RWWordList(W, 0, IO_DO_FORCE.MemType, IO_DO_FORCE.Address, IO_DO_FORCE.SubAddress, IO_DO_FORCE.Size, ref writeValuesDO);
if (libraryError.IsError())
return libraryError;
// leggo da PLC a array di byte di appoggio x visibilità AO...
libraryError = MEM_RWWordList(W, 0, IO_AO_FORCE.MemType, IO_AO_FORCE.Address, IO_AO_FORCE.SubAddress, IO_AO_FORCE.Size, ref writeValuesAO);
if (libraryError.IsError())
return libraryError;
return libraryError;
}
#endregion
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////