Completato giro con scrittura REAL
This commit is contained in:
@@ -56,7 +56,7 @@ namespace MHT_Siemens
|
||||
/// <summary>
|
||||
/// Ultimi valori registrati da file
|
||||
/// </summary>
|
||||
protected Dictionary<string, string> lastValues;
|
||||
protected Dictionary<string, string> prevValues;
|
||||
/// <summary>
|
||||
/// valori correntemente letti dal file
|
||||
/// </summary>
|
||||
@@ -75,7 +75,7 @@ namespace MHT_Siemens
|
||||
{
|
||||
lg = LogManager.GetCurrentClassLogger();
|
||||
tsslApp.Text = $"{utils.CRS("appName")}";
|
||||
lastValues = new Dictionary<string, string>();
|
||||
prevValues = new Dictionary<string, string>();
|
||||
currValues = new Dictionary<string, string>();
|
||||
loadMemConf();
|
||||
loadPlc();
|
||||
@@ -260,7 +260,21 @@ namespace MHT_Siemens
|
||||
private void saveToPLC()
|
||||
{
|
||||
// invio TUTTI i dati al PLC secondo configurazione...
|
||||
|
||||
if (testCncConn())
|
||||
{
|
||||
// decodifico memoria...
|
||||
memAddress memoria = null;
|
||||
double valore = -999;
|
||||
foreach (var item in currValues)
|
||||
{
|
||||
memoria = new memAddress(item.Key);
|
||||
double.TryParse(item.Value, out valore);
|
||||
// hard coded REAL!!!
|
||||
byte[] DB_Byte = new byte[4];
|
||||
S7.Net.Types.Double.ToByteArray(valore).CopyTo(DB_Byte, 0);
|
||||
currPLC.WriteBytes(DataType.DataBlock, memoria.DbNum, memoria.indiceMem, DB_Byte);
|
||||
}
|
||||
}
|
||||
// loggo invio al PLC!
|
||||
lg.Info("New Value sent to PLC");
|
||||
}
|
||||
@@ -272,20 +286,19 @@ namespace MHT_Siemens
|
||||
{
|
||||
bool answ = false;
|
||||
// se i 2 vettori sono diversi
|
||||
if (currValues.Count != lastValues.Count)
|
||||
if (currValues.Count != prevValues.Count)
|
||||
{
|
||||
// salvo ed esco subito
|
||||
lastValues = currValues;
|
||||
resetPrevVal();
|
||||
return true;
|
||||
}
|
||||
// verifico ogni singolo valore...
|
||||
foreach (var item in currValues)
|
||||
{
|
||||
// cerco...
|
||||
if (lastValues.ContainsKey(item.Key))
|
||||
if (prevValues.ContainsKey(item.Key))
|
||||
{
|
||||
// verifico se diversi --> trovato cambio!
|
||||
answ = currValues[item.Key] != lastValues[item.Key];
|
||||
answ = currValues[item.Key] != prevValues[item.Key];
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -295,12 +308,24 @@ namespace MHT_Siemens
|
||||
if (answ)
|
||||
{
|
||||
// salvo ed esco subito
|
||||
lastValues = currValues;
|
||||
resetPrevVal();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Refresh oggetto valori precedenti
|
||||
/// </summary>
|
||||
private void resetPrevVal()
|
||||
{
|
||||
// salvo ed esco subito
|
||||
prevValues = new Dictionary<string, string>();
|
||||
foreach (var item in currValues)
|
||||
{
|
||||
prevValues.Add(item.Key, item.Value);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua rilettura da file
|
||||
@@ -389,6 +414,33 @@ namespace MHT_Siemens
|
||||
answ = reply.Status;
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Test connessione CNC
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private bool testCncConn()
|
||||
{
|
||||
bool answ = false;
|
||||
IPStatus pingStatus = testPing();
|
||||
// se passa il ping faccio il resto...
|
||||
if (pingStatus != IPStatus.Success)
|
||||
{
|
||||
lg.Error("Errore ping");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!currPLC.IsConnected) currPLC.Open();
|
||||
if (!currPLC.IsConnected)
|
||||
{
|
||||
lg.Error( "Errore connessione");
|
||||
}
|
||||
else
|
||||
{
|
||||
answ = true;
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
"slot": 1
|
||||
},
|
||||
"parametersList": {
|
||||
"DB701.DBD142": {
|
||||
"DB999.DBD32": {
|
||||
"Column": "Valore assoluto",
|
||||
"Index": 7,
|
||||
"MemConf": "DB701.DBD142",
|
||||
"MemConf": "DB999.DBD32",
|
||||
"DataType": "real"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,10 +9,10 @@
|
||||
"slot": 1
|
||||
},
|
||||
"parametersList": {
|
||||
"DB701.DBD142": {
|
||||
"DB999.DBD32": {
|
||||
"Column": "Valore assoluto",
|
||||
"Index": 7,
|
||||
"MemConf": "DB701.DBD142",
|
||||
"MemConf": "DB999.DBD32",
|
||||
"DataType": "real"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user