using IOB_UT_NEXT;
using System;
using System.Collections.Generic;
namespace IOB_UT_NEXT
{
///
/// Classe principale di configurazione di base per IOB, da cui derivano configurazioni + articolate x singoli IOB
///
[Serializable]
public class IobConfiguration
{
#region Public Constructors
///
/// Avvio configurazione DUMMY
///
public IobConfiguration()
{
}
///
/// Avvio configurazione da file di conf
///
/// File di conf json/yaml valido
public IobConfiguration(string pathConfFile)
{
}
#endregion Public Constructors
#region Public Properties
///
/// Valore intero corrispondente ai BIT da filtrare x blinking
///
public int BLINK_FILT { get; set; } = 0;
///
/// Indirizzo Ip del CNC Controllato
///
public string cncIpAddr { get; set; } = "127.0.0.1";
///
/// Indirizzo Ip per PING dell'impianto (se NON valorizzato usa cncIpAddr x ping)
///
public string cncPingAddr { get; set; } = "";
///
/// Porta del CNC Controllato
///
public string cncPort { get; set; } = "0";
///
/// Codice univoco IOB
///
public string codIOB { get; set; } = "ND";
///
/// TipoCPU (es: Siemens)
///
public string cpuType { get; set; } = "";
///
/// Indica che sono disabilitati i Task2Exe (tipicamente gestione scrittura verso PLC)
///
public bool disableExeTask { get; set; } = false;
///
/// Indica che sono disabilitate le fasi controllo stato/semafori (tipicamente x impianti
/// con PLC "suddivisi", PLC + HMI)
///
public bool disableStateCh { get; set; } = false;
///
/// Indica se le code vadano gestite su redis o meno
///
public bool EnableRedisQueue { get; set; } = false;
///
/// Nome del file IOB di avvio (REDIS - MAN)
///
public string filenameIOB { get; set; } = "ND";
///
/// Nome file di INI
///
public string iniFileName { get; set; } = "";
///
/// Array degli elementi di traduzione item
///
public Dictionary itemTranslation { get; set; } = new Dictionary();
///
/// Valore MAX per countdown segnali blinking
///
public int MAX_COUNTER_BLINK { get; set; } = 10;
///
/// Minimo delta in sec x considerare variazioni info
///
public int minDeltaSec { get; set; } = 2;
///
/// Modello della macchina
///
public string model { get; set; } = "ND";
///
/// Dizionario dei parametri opzionali
///
public Dictionary optPar { get; set; } = new Dictionary();
///
/// Timeout test PING
///
public int pingMsTimeout { get; set; } = 500;
///
/// Rack (Siemens S7)
///
public short rack { get; set; } = 0;
#if false
///
/// Dati di conf del server MoonPro cui comunicare
///
public serverMapo serverData { get; set; } = new serverMapo("127.0.0.1", "/", "/IOB/input/", "/IOB/flog/", "/IOB/ulog/", "/IOB", "/IOB/enabled/", "/sendReboot.aspx?idxMacchina=", "/IOB/getCurrOdlStart/", "SteamWare", "/IOB/forceSplitOdlFull", "/IOB/getIdlePeriod", "/IOB/rawTransfJson");
#endif
///
/// Slot (Siemens S7)
///
public short slot { get; set; } = 0;
///
/// Fattore lambda (innovazione) per calcolo EWMA valore TCiclo corrente
///
public double TCLambda { get; set; } = 0.4;
///
/// Fattore massimo ammesso di delay x il TCiclo
///
public double TCMaxDelayFactor { get; set; } = 1.2;
///
/// Incremento amssimo pezzi per cui fare calcolo del tempociclo attuale
///
public double TCMaxIncrPz { get; set; } = 2;
///
/// Tipologia dell'adapter/CNC Controllato
///
public tipoAdapter tipoIob { get; set; } = tipoAdapter.SIMULA;
///
/// Vendor della macchina
///
public string vendor { get; set; } = "ND";
///
/// Versione IOB
///
public string versIOB { get; set; } = "0";
///
/// Attesa riconnessione standard
///
public int waitRecMSec { get; set; } = 59000;
#endregion Public Properties
}
}