Continuo modifica Adige x gestione allarmi nuovi
This commit is contained in:
@@ -69,6 +69,8 @@ DISABLE_SEND_WDST=TRUE
|
||||
|
||||
; conf parametri memoria READ/WRITE
|
||||
OPC_PARAM_CONF=STEL_210.json
|
||||
; conf aree allarme
|
||||
ALARM_CONF=STEL_210_alarm.json
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
@@ -99,6 +99,7 @@
|
||||
]
|
||||
},
|
||||
"fluxLogVeto": [
|
||||
"AlarmCode(0)",
|
||||
"AlarmCode(1)",
|
||||
"AlarmCode(2)",
|
||||
"AlarmCode(3)",
|
||||
@@ -118,6 +119,7 @@
|
||||
"AlarmCode(17)",
|
||||
"AlarmCode(18)",
|
||||
"AlarmCode(19)",
|
||||
"AlarmText(0)",
|
||||
"AlarmText(1)",
|
||||
"AlarmText(2)",
|
||||
"AlarmText(3)",
|
||||
@@ -202,6 +204,16 @@
|
||||
"ns=4;s=AlarmCode(7)",
|
||||
"ns=4;s=AlarmCode(8)",
|
||||
"ns=4;s=AlarmCode(9)",
|
||||
"ns=4;s=AlarmCode(10)",
|
||||
"ns=4;s=AlarmCode(11)",
|
||||
"ns=4;s=AlarmCode(12)",
|
||||
"ns=4;s=AlarmCode(13)",
|
||||
"ns=4;s=AlarmCode(14)",
|
||||
"ns=4;s=AlarmCode(15)",
|
||||
"ns=4;s=AlarmCode(16)",
|
||||
"ns=4;s=AlarmCode(17)",
|
||||
"ns=4;s=AlarmCode(18)",
|
||||
"ns=4;s=AlarmCode(19)",
|
||||
"ns=4;s=AlarmText(0)",
|
||||
"ns=4;s=AlarmText(1)",
|
||||
"ns=4;s=AlarmText(2)",
|
||||
@@ -212,6 +224,16 @@
|
||||
"ns=4;s=AlarmText(7)",
|
||||
"ns=4;s=AlarmText(8)",
|
||||
"ns=4;s=AlarmText(9)",
|
||||
"ns=4;s=AlarmText(10)",
|
||||
"ns=4;s=AlarmText(11)",
|
||||
"ns=4;s=AlarmText(12)",
|
||||
"ns=4;s=AlarmText(13)",
|
||||
"ns=4;s=AlarmText(14)",
|
||||
"ns=4;s=AlarmText(15)",
|
||||
"ns=4;s=AlarmText(16)",
|
||||
"ns=4;s=AlarmText(17)",
|
||||
"ns=4;s=AlarmText(18)",
|
||||
"ns=4;s=AlarmText(19)",
|
||||
"ns=4;s=MessageCode(0)",
|
||||
"ns=4;s=MessageCode(1)",
|
||||
"ns=4;s=MessageCode(2)",
|
||||
@@ -222,6 +244,16 @@
|
||||
"ns=4;s=MessageCode(7)",
|
||||
"ns=4;s=MessageCode(8)",
|
||||
"ns=4;s=MessageCode(9)",
|
||||
"ns=4;s=MessageCode(10)",
|
||||
"ns=4;s=MessageCode(11)",
|
||||
"ns=4;s=MessageCode(12)",
|
||||
"ns=4;s=MessageCode(13)",
|
||||
"ns=4;s=MessageCode(14)",
|
||||
"ns=4;s=MessageCode(15)",
|
||||
"ns=4;s=MessageCode(16)",
|
||||
"ns=4;s=MessageCode(17)",
|
||||
"ns=4;s=MessageCode(18)",
|
||||
"ns=4;s=MessageCode(19)",
|
||||
"ns=4;s=MessageText(0)",
|
||||
"ns=4;s=MessageText(1)",
|
||||
"ns=4;s=MessageText(2)",
|
||||
@@ -232,6 +264,16 @@
|
||||
"ns=4;s=MessageText(7)",
|
||||
"ns=4;s=MessageText(8)",
|
||||
"ns=4;s=MessageText(9)",
|
||||
"ns=4;s=MessageText(10)",
|
||||
"ns=4;s=MessageText(11)",
|
||||
"ns=4;s=MessageText(12)",
|
||||
"ns=4;s=MessageText(13)",
|
||||
"ns=4;s=MessageText(14)",
|
||||
"ns=4;s=MessageText(15)",
|
||||
"ns=4;s=MessageText(16)",
|
||||
"ns=4;s=MessageText(17)",
|
||||
"ns=4;s=MessageText(18)",
|
||||
"ns=4;s=MessageText(19)",
|
||||
"ns=4;s=BladeName",
|
||||
"ns=4;s=BladeCutSpeed",
|
||||
"ns=4;s=BladeRotSpeed",
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
[
|
||||
{
|
||||
"description": "Messaggi",
|
||||
"tipoMem": "UInt",
|
||||
"memAddr": "Message",
|
||||
"index": 0,
|
||||
"size": 20,
|
||||
"blockType": "ActiveList",
|
||||
"blockLevel": "Message",
|
||||
"activeCountKey": "NumOfMessages",
|
||||
"activeKeys": [
|
||||
"MessageCode(0)",
|
||||
"MessageCode(1)",
|
||||
"MessageCode(2)",
|
||||
"MessageCode(3)",
|
||||
"MessageCode(4)",
|
||||
"MessageCode(5)",
|
||||
"MessageCode(6)",
|
||||
"MessageCode(7)",
|
||||
"MessageCode(8)",
|
||||
"MessageCode(9)",
|
||||
"MessageCode(10)",
|
||||
"MessageCode(11)",
|
||||
"MessageCode(12)",
|
||||
"MessageCode(13)",
|
||||
"MessageCode(14)",
|
||||
"MessageCode(15)",
|
||||
"MessageCode(16)",
|
||||
"MessageCode(17)",
|
||||
"MessageCode(18)",
|
||||
"MessageCode(19)"
|
||||
],
|
||||
"activeValues": [
|
||||
"MessageText(0)",
|
||||
"MessageText(1)",
|
||||
"MessageText(2)",
|
||||
"MessageText(3)",
|
||||
"MessageText(4)",
|
||||
"MessageText(5)",
|
||||
"MessageText(6)",
|
||||
"MessageText(7)",
|
||||
"MessageText(8)",
|
||||
"MessageText(9)",
|
||||
"MessageText(10)",
|
||||
"MessageText(11)",
|
||||
"MessageText(12)",
|
||||
"MessageText(13)",
|
||||
"MessageText(14)",
|
||||
"MessageText(15)",
|
||||
"MessageText(16)",
|
||||
"MessageText(17)",
|
||||
"MessageText(18)",
|
||||
"MessageText(19)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "Allarmi",
|
||||
"tipoMem": "UInt",
|
||||
"memAddr": "Alarm",
|
||||
"index": 0,
|
||||
"size": 20,
|
||||
"blockType": "ActiveList",
|
||||
"blockLevel": "Alarm",
|
||||
"activeCountKey": "NumOfAlarms",
|
||||
"activeKeys": [
|
||||
"AlarmCode(0)",
|
||||
"AlarmCode(1)",
|
||||
"AlarmCode(2)",
|
||||
"AlarmCode(3)",
|
||||
"AlarmCode(4)",
|
||||
"AlarmCode(5)",
|
||||
"AlarmCode(6)",
|
||||
"AlarmCode(7)",
|
||||
"AlarmCode(8)",
|
||||
"AlarmCode(9)",
|
||||
"AlarmCode(10)",
|
||||
"AlarmCode(11)",
|
||||
"AlarmCode(12)",
|
||||
"AlarmCode(13)",
|
||||
"AlarmCode(14)",
|
||||
"AlarmCode(15)",
|
||||
"AlarmCode(16)",
|
||||
"AlarmCode(17)",
|
||||
"AlarmCode(18)",
|
||||
"AlarmCode(19)"
|
||||
],
|
||||
"activeValues": [
|
||||
"AlarmText(0)",
|
||||
"AlarmText(1)",
|
||||
"AlarmText(2)",
|
||||
"AlarmText(3)",
|
||||
"AlarmText(4)",
|
||||
"AlarmText(5)",
|
||||
"AlarmText(6)",
|
||||
"AlarmText(7)",
|
||||
"AlarmText(8)",
|
||||
"AlarmText(9)",
|
||||
"AlarmText(10)",
|
||||
"AlarmText(11)",
|
||||
"AlarmText(12)",
|
||||
"AlarmText(13)",
|
||||
"AlarmText(14)",
|
||||
"AlarmText(15)",
|
||||
"AlarmText(16)",
|
||||
"AlarmText(17)",
|
||||
"AlarmText(18)",
|
||||
"AlarmText(19)"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -59,7 +59,7 @@
|
||||
},
|
||||
"NumAllarmi": {
|
||||
"name": "NumAllarmi",
|
||||
"description": "NUmero Allarmi Presenti",
|
||||
"description": "Numero Allarmi Presenti",
|
||||
"memAddr": "40005",
|
||||
"tipoMem": "Int",
|
||||
"index": 5,
|
||||
|
||||
@@ -503,6 +503,9 @@
|
||||
<None Include="DATA\CONF\TFT_RAMA_001.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="DATA\CONF\STEL_210_alarm.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="DATA\CONF\TFT_RAMA_001_alarm.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
|
||||
@@ -99,5 +99,73 @@ namespace IOB_WIN_NEXT.IobOpc
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
/// <summary>
|
||||
/// Verifica presenza eventuali allarmi in modalità BLM/Adige
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected override bool hasAlarms()
|
||||
{
|
||||
/*----------------------------------------------
|
||||
* verifica lo stato allarmi da
|
||||
* - condizione allarme (key)
|
||||
* - numero allarmi presenti
|
||||
* - lettura relative chiavi OPC-UA dei codici
|
||||
* - lettura relative chiavi OPC-UA del testo allarme
|
||||
* - verifica variazione dell'insieme dei codici attivi (INT)
|
||||
* - costruzione della stringa finale allarmi attivi (unico banco)
|
||||
----------------------------------------------*/
|
||||
bool answ = false;
|
||||
int numErrors = 0;
|
||||
int currStatus = 0;
|
||||
ushort full16 = 65535;
|
||||
int[] listInt = new int[2];
|
||||
if (alarmMaps != null)
|
||||
{
|
||||
// leggo a ciclo le aree degli allarmi CONFIGURATI, se ne trovo --> segnalo allarme...
|
||||
foreach (var item in alarmMaps)
|
||||
{
|
||||
// banchi in array Int16 --> scompongo
|
||||
for (int i = 0; i < item.size / 2; i++)
|
||||
{
|
||||
currStatus = getAlarmStatus(item);
|
||||
// ora filtro x l'i-esimo banco a 16 bit...
|
||||
if (i == 0)
|
||||
{
|
||||
currStatus = (ushort)(currStatus & full16);
|
||||
}
|
||||
else
|
||||
{
|
||||
var temp = currStatus >> 16;
|
||||
currStatus = (ushort)temp;
|
||||
}
|
||||
|
||||
// aggiornamento blink counters dato nuovo valore
|
||||
item.checkBlinkCounter(i, (uint)currStatus);
|
||||
|
||||
// calcolo indice errori
|
||||
if ((uint)(item.alarmsMask[i] & currStatus) > 0)
|
||||
{
|
||||
numErrors++;
|
||||
}
|
||||
// verifico SE sia variato... confronto allarmi filtrato stile blink per bit status:
|
||||
// - allarmi che iniziano per # IGNORATI
|
||||
// - altri allarmi con un countdown da MAX_COUNTER_BLINK a 0 per il fronte
|
||||
// di discesa
|
||||
if (item.isChanged(i, (uint)currStatus))
|
||||
{
|
||||
// registro gli allarmi attivi e trasmetto...
|
||||
if (sendAlarmVariations(item.memAddr, i, item.alarmsState[i], (uint)(item.alarmsMask[i] & currStatus), item.messages))
|
||||
{
|
||||
// se inviato --> salvo stato da current...
|
||||
item.updStatusVal(i, (uint)(item.alarmsMask[i] & currStatus));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
answ = numErrors > 0;
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -148,53 +148,6 @@ namespace IOB_WIN_NEXT.IobSiemens
|
||||
|
||||
#endregion Protected Fields
|
||||
|
||||
#if false
|
||||
protected bool hasAlarms
|
||||
{
|
||||
get
|
||||
{
|
||||
bool answ = false;
|
||||
int numErrors = 0;
|
||||
uint currStatus = 0;
|
||||
if (alarmMaps != null)
|
||||
{
|
||||
// leggo a ciclo le aree degli allarmi CONFIGURATI, se ne trovo --> segnalo allarme...
|
||||
foreach (var item in alarmMaps)
|
||||
{
|
||||
// banchi in WORD (2 byte) --> scompongo
|
||||
for (int i = 0; i < item.size / 2; i++)
|
||||
{
|
||||
currStatus = S7.Net.Types.Counter.FromByteArray(RawInput.Skip(item.index + 2 * i).Take(2).ToArray());
|
||||
// verifica e decremento blink...
|
||||
item.checkBlinkCounter(i, (uint)currStatus);
|
||||
|
||||
// verifico SE sia variato... confronto allarmi filtrato stile blink per
|
||||
// bit status:
|
||||
// - allarmi che iniziano per # IGNORATI
|
||||
// - altri allarmi con un countdown da MAX_COUNTER_BLINK a 0 per il
|
||||
// fronte di discesa
|
||||
if (item.isChanged(i, currStatus))
|
||||
{
|
||||
if (currStatus > 0)
|
||||
{
|
||||
numErrors++;
|
||||
}
|
||||
// registro gli allarmi attivi e trasmetto...
|
||||
if (sendAlarmVariations(item.memAddr, i, item.alarmsState[i], (uint)(item.alarmsMask[i] & currStatus), item.messages))
|
||||
{
|
||||
// se inviato --> salvo stato da current...
|
||||
item.updStatusVal(i, (uint)(item.alarmsMask[i] & currStatus));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
answ = numErrors > 0;
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user