FATTO TEST LETTURA STATI: OK!
This commit is contained in:
@@ -26,14 +26,14 @@ CMDREBO=/sendReboot.aspx?idxMacchina=
|
||||
|
||||
[MEMORY]
|
||||
ADDR_READ=DB60.DBB0
|
||||
ADDR_WRITE=DB550.DBB1
|
||||
SIZE_READ=4
|
||||
SIZE_WRITE=1
|
||||
ADDR_WRITE=DB60.DBB18
|
||||
SIZE_READ=18
|
||||
SIZE_WRITE=0
|
||||
;BIT0=CONN
|
||||
BIT1=DB550.DBB1
|
||||
BIT1=DB60.DBB1
|
||||
;BIT2=PZCOUNT.STD.DB700.DBW22
|
||||
BIT3=DB550.DBB3
|
||||
BIT4=DB550.DBB4
|
||||
BIT3=DB60.DBB3
|
||||
BIT4=DB60.DBB4
|
||||
|
||||
|
||||
[BLINK]
|
||||
|
||||
@@ -42,11 +42,14 @@ namespace IOB_WIN
|
||||
lgInfo("NEW IOB SIEMENS versione APROCHIM");
|
||||
|
||||
// leggo 1 byte
|
||||
while (true)
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
Byte[] memByteRead = currPLC.ReadBytes(DataType.DataBlock, 60, 0, 18);
|
||||
var pressCamFilt = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(6).Take(4).ToArray());
|
||||
var pressLinUt = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(10).Take(4).ToArray());
|
||||
var tempH2O = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(14).Take(4).ToArray());
|
||||
|
||||
Byte[] memByteRead = currPLC.ReadBytes(DataType.DataBlock, 60, 0, 5);
|
||||
var testVal = S7.Net.Types.Word.FromByteArray(memByteRead.Skip(0).Take(2).ToArray());
|
||||
byte status = S7.Net.Types.Byte.FromByteArray(memByteRead.Skip(3).Take(1).ToArray());
|
||||
|
||||
//// scrivo 1 byte
|
||||
//byte[] test = new byte[1];
|
||||
@@ -55,7 +58,7 @@ namespace IOB_WIN
|
||||
|
||||
|
||||
/* ----------------------------------------------------------
|
||||
* DB60.DBD6: pressione camera filtrante (salvataggio del MAX ogni minuto)
|
||||
* DB60.DBD6: pressione camera filtrante (salvataggio del MAX ogni minuto) | var testVal = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(0).Take(4).ToArray());
|
||||
* DB60.DBD10: pressione linea utenze (salvataggio del MAX ogni minuto)
|
||||
* DB60.DBD14: temperatura acqua pulita (salvataggio del MAX ogni minuto)
|
||||
*
|
||||
@@ -72,63 +75,6 @@ namespace IOB_WIN
|
||||
|
||||
}
|
||||
|
||||
#region area principale adapter
|
||||
|
||||
/// <summary>
|
||||
/// Enum degli stati macchina (B0)
|
||||
/// </summary>
|
||||
public enum statoMacchina
|
||||
{
|
||||
COMUNICAZIONE_ASSENTE = 0,
|
||||
EMERGENZA_INSERITA = 1,
|
||||
AVARIA_ARIA = 2,
|
||||
AVARIA_PRESSIONE_OLIO = 3,
|
||||
AVARIA_LIVELLO_OLIO = 4,
|
||||
AVARIA_TEMPERATURA_OLIO = 5,
|
||||
AVARIA_MOTORE_POMPA_IDRAULICA = 6,
|
||||
AVARIA_MOTORE_RAFFREDDO_IDRAULICA = 7,
|
||||
AVARIA_SINCRONISMO_PORTE = 8,
|
||||
AVARIA_LIBERA = 9,
|
||||
ATTIVAZIONE_IN_CORSO = 10,
|
||||
MODO_MANUALE_ATTREZZAGGIO = 11,
|
||||
MODO_AUTOMATICO_LOCALE = 12,
|
||||
MODO_AUTOMATICO_ROBOT = 13,
|
||||
CICLO_IN_CORSO = 14,
|
||||
LIBERO = 15
|
||||
}
|
||||
/// <summary>
|
||||
/// Posizione sequenza ciclo standard punzonatrice
|
||||
/// </summary>
|
||||
public enum posizioneSequenza
|
||||
{
|
||||
CICLO_AUTOMATICO_FERMO = 0,
|
||||
CONTROLLO_MODO_OPERATIVO = 5,
|
||||
MODO_ATTIVO_CON_ROBOT = 8,
|
||||
SBLOCCAGGIO_PEZZO = 10,
|
||||
APERTURA_PORTELLO_ROBOT = 11,
|
||||
CONSENSO_ACCESSO_AL_ROBOT = 12,
|
||||
CARICO_ROBOT_IN_CORSO = 14,
|
||||
CARICO_ROBOT_CONCLUSO = 16,
|
||||
CHIUSURA_PORTELLO_ROBOT = 18,
|
||||
VERIFICA_POSIZIONE_CARRI = 20,
|
||||
BLOCCAGGIO_PEZZO = 22,
|
||||
ATTESA_CARRO_A_DESTRA = 24,
|
||||
DISCESA_RAPIDO_BROCCIATURA = 25,
|
||||
CICLO_DI_BROCCIATURA = 26,
|
||||
RITORNO_BROCCIATRICE = 28,
|
||||
COMANDO_CARRO_A_SINISTRA = 30,
|
||||
CICLO_DI_ALESATURA = 32,
|
||||
RITORNO_CARRO_ALESATURA = 34,
|
||||
COMANDO_CARRO_A_DESTRA = 36,
|
||||
INCREMENTO_CONTAPEZZI = 38,
|
||||
CONTROLLO_TIME_OUT_CICLO = 40,
|
||||
RILANCIO_CICLO_F42 = 42,
|
||||
ATTESA_FINE_CICLO = 45
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region Metodi specifici (da verificare/completare in implementazione)
|
||||
|
||||
/// <summary>
|
||||
@@ -139,18 +85,23 @@ namespace IOB_WIN
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recupero dati override in formato dictionary
|
||||
/// Recupero dati dinamici in formato dictionary
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public override Dictionary<string, string> getDynData()
|
||||
{
|
||||
Dictionary<string, string> outVal = new Dictionary<string, string>();
|
||||
/* ----------------------------------------------------------
|
||||
* DB60.DBD6: pressione camera filtrante (salvataggio del MAX ogni minuto) | var testVal = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(0).Take(4).ToArray());
|
||||
* DB60.DBD10: pressione linea utenze (salvataggio del MAX ogni minuto)
|
||||
* DB60.DBD14: temperatura acqua pulita (salvataggio del MAX ogni minuto)
|
||||
* */
|
||||
#if false
|
||||
ushort valStatus = S7.Net.Types.Word.FromByteArray(RawInput.Skip(0).Take(2).ToArray());
|
||||
ushort valPosit = S7.Net.Types.Word.FromByteArray(RawInput.Skip(2).Take(2).ToArray());
|
||||
outVal.Add("CURR_STATO", ((statoMacchina)valStatus).ToString());
|
||||
outVal.Add("CURR_POSIT", ((posizioneSequenza)valPosit).ToString());
|
||||
#endif
|
||||
ushort valStatus = S7.Net.Types.Word.FromByteArray(RawInput.Skip(0).Take(2).ToArray());
|
||||
ushort valPosit = S7.Net.Types.Word.FromByteArray(RawInput.Skip(2).Take(2).ToArray());
|
||||
outVal.Add("CURR_STATO", ((statoMacchina)valStatus).ToString());
|
||||
outVal.Add("CURR_POSIT", ((posizioneSequenza)valPosit).ToString());
|
||||
#endif
|
||||
outVal.Add("CURR_B0", RawInput.Skip(0).Take(1).ToArray().ToString());
|
||||
outVal.Add("CURR_B1", RawInput.Skip(1).Take(1).ToArray().ToString());
|
||||
outVal.Add("CURR_B2", RawInput.Skip(2).Take(1).ToArray().ToString());
|
||||
@@ -165,13 +116,24 @@ namespace IOB_WIN
|
||||
{
|
||||
// init a zero...
|
||||
B_input = 0;
|
||||
#if false
|
||||
// FAPE: leggo i primi 2 WORD x decodifica stato e posizione...
|
||||
ushort valStatus = S7.Net.Types.Word.FromByteArray(RawInput.Skip(0).Take(2).ToArray());
|
||||
ushort valPosit = S7.Net.Types.Word.FromByteArray(RawInput.Skip(2).Take(2).ToArray());
|
||||
statoMacchina _stMacch = ((statoMacchina)valStatus);
|
||||
posizioneSequenza _posSeq = ((posizioneSequenza)valPosit);
|
||||
#endif
|
||||
|
||||
//Byte[] memByteRead = currPLC.ReadBytes(DataType.DataBlock, 60, 0, 5);
|
||||
//var testVal = S7.Net.Types.Word.FromByteArray(memByteRead.Skip(0).Take(2).ToArray());
|
||||
|
||||
/* ----------------------------------------------------------
|
||||
* DB60.DBD6: pressione camera filtrante (salvataggio del MAX ogni minuto) | var testVal = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(0).Take(4).ToArray());
|
||||
* DB60.DBD10: pressione linea utenze (salvataggio del MAX ogni minuto)
|
||||
* DB60.DBD14: temperatura acqua pulita (salvataggio del MAX ogni minuto)
|
||||
*
|
||||
* DB60.DBX3.0: AUSILIARI INSERITI = NO EMERGENZA
|
||||
* DB60.DBX3.1: Filtro (macchina) in LAVORAZIONE
|
||||
* DB60.DBX3.2: Selettore in AUTOMATICO (sennò GIALLO)
|
||||
* DB60.DBX3.3: WARNING MIN LIV VASCA (arancio)
|
||||
* DB60.DBX3.4: WARNING MIN LIV CELLULOSA (blu)
|
||||
* DB60.DBX3.5: LAMPADA ROSSA (allarmi almeno 1 attivo)
|
||||
*
|
||||
* */
|
||||
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* bitmap MAPO
|
||||
|
||||
Reference in New Issue
Block a user