Prima vers da testare x Aprochim
This commit is contained in:
+43
-150
@@ -45,17 +45,18 @@ namespace IOB_WIN
|
||||
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());
|
||||
double pressCamFilt = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(6).Take(4).ToArray());
|
||||
double pressLinUt = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(10).Take(4).ToArray());
|
||||
double tempH2O = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(14).Take(4).ToArray());
|
||||
|
||||
byte status = S7.Net.Types.Byte.FromByteArray(memByteRead.Skip(3).Take(1).ToArray());
|
||||
byte statusByte = S7.Net.Types.Byte.FromByteArray(memByteRead.Skip(3).Take(1).ToArray());
|
||||
|
||||
//// scrivo 1 byte
|
||||
//byte[] test = new byte[1];
|
||||
//test[0] = 64;
|
||||
//currPLC.WriteBytes(DataType.DataBlock, 550, 1, test);
|
||||
// log!
|
||||
lgInfo($"pressCamFilt: {pressCamFilt:N6}");
|
||||
lgInfo($"pressLinUt: {pressLinUt:N6}");
|
||||
lgInfo($"tempH2O: {tempH2O:N3}");
|
||||
|
||||
lgInfo($"statusByte: {statusByte}");
|
||||
|
||||
/* ----------------------------------------------------------
|
||||
* DB60.DBD6: pressione camera filtrante (salvataggio del MAX ogni minuto) | var testVal = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(0).Take(4).ToArray());
|
||||
@@ -96,16 +97,15 @@ namespace IOB_WIN
|
||||
* 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
|
||||
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());
|
||||
outVal.Add("CURR_B3", RawInput.Skip(3).Take(1).ToArray().ToString());
|
||||
|
||||
Byte[] memByteRead = currPLC.ReadBytes(DataType.DataBlock, 60, 0, 18);
|
||||
double pressCamFilt = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(6).Take(4).ToArray());
|
||||
double pressLinUt = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(10).Take(4).ToArray());
|
||||
double tempH2O = S7.Net.Types.Double.FromByteArray(memByteRead.Skip(14).Take(4).ToArray());
|
||||
|
||||
outVal.Add("pressCamFilt", pressCamFilt.ToString("{0:N6}"));
|
||||
outVal.Add("pressLinUt", pressCamFilt.ToString("{0:N6}"));
|
||||
outVal.Add("tempH2O", tempH2O.ToString("{0:N3}"));
|
||||
return outVal;
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ namespace IOB_WIN
|
||||
{
|
||||
// init a zero...
|
||||
B_input = 0;
|
||||
|
||||
|
||||
//Byte[] memByteRead = currPLC.ReadBytes(DataType.DataBlock, 60, 0, 5);
|
||||
//var testVal = S7.Net.Types.Word.FromByteArray(memByteRead.Skip(0).Take(2).ToArray());
|
||||
|
||||
@@ -126,17 +126,16 @@ namespace IOB_WIN
|
||||
* 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.1: MACCHINA (Filtro) 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
|
||||
* bitmap MAPO STANDARD
|
||||
* B0: POWER_ON
|
||||
* B1: RUN
|
||||
* B2: pzCount
|
||||
@@ -145,145 +144,39 @@ namespace IOB_WIN
|
||||
* B5: emergenza
|
||||
----------------------------------------------------- */
|
||||
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* bitmap MAPO FILTRO Aprochim
|
||||
* B0: POWER_ON
|
||||
* B1: NOT emergenza
|
||||
* B2: RUN
|
||||
* B3: Automatico
|
||||
* B4: WARN_MIN_VASCA
|
||||
* B5: WARN_MIN_CELL
|
||||
* B6: ALARM
|
||||
----------------------------------------------------- */
|
||||
|
||||
// bit 0 (poweron) imposto a 1 SE connected...
|
||||
B_input = currPLC.IsConnected ? 1 : 0;
|
||||
|
||||
// controllo bit preliminare...
|
||||
int byteSem = RawInput[0];
|
||||
|
||||
// azzero powerOn...
|
||||
byteSem &= ~(1 << 0);
|
||||
// bit 0 (powerOn) imposto a 1 SE connected...
|
||||
// recupero byte segnali...
|
||||
int byteSignals = RawInput[3];
|
||||
// faccio uno shift a sx di 1...
|
||||
byteSignals = byteSignals << 1;
|
||||
// bit 0 (poweron) imposto a 1 SE connected...
|
||||
if (currPLC.IsConnected)
|
||||
{
|
||||
byteSem += (1 << 0);
|
||||
}
|
||||
byteSignals += (1 << 0);
|
||||
}
|
||||
// salvo!
|
||||
B_input = byteSignals;
|
||||
|
||||
// salvo infine variabile bit x invio
|
||||
B_input = byteSem;
|
||||
|
||||
#if false
|
||||
// controllo stato macchina x impostare altri bit...
|
||||
switch (_stMacch)
|
||||
{
|
||||
case statoMacchina.EMERGENZA_INSERITA:
|
||||
B_input += (1 << 5);
|
||||
break;
|
||||
case statoMacchina.AVARIA_ARIA:
|
||||
case statoMacchina.AVARIA_PRESSIONE_OLIO:
|
||||
case statoMacchina.AVARIA_LIVELLO_OLIO:
|
||||
case statoMacchina.AVARIA_TEMPERATURA_OLIO:
|
||||
B_input += (1 << 3);
|
||||
B_input += (1 << 6);
|
||||
break;
|
||||
case statoMacchina.AVARIA_MOTORE_POMPA_IDRAULICA:
|
||||
case statoMacchina.AVARIA_MOTORE_RAFFREDDO_IDRAULICA:
|
||||
case statoMacchina.COMUNICAZIONE_ASSENTE:
|
||||
case statoMacchina.AVARIA_SINCRONISMO_PORTE:
|
||||
case statoMacchina.AVARIA_LIBERA:
|
||||
case statoMacchina.ATTIVAZIONE_IN_CORSO:
|
||||
B_input += (1 << 3);
|
||||
break;
|
||||
case statoMacchina.MODO_MANUALE_ATTREZZAGGIO:
|
||||
B_input += (1 << 4);
|
||||
break;
|
||||
case statoMacchina.CICLO_IN_CORSO:
|
||||
B_input += (1 << 1);
|
||||
break;
|
||||
case statoMacchina.MODO_AUTOMATICO_LOCALE:
|
||||
case statoMacchina.MODO_AUTOMATICO_ROBOT:
|
||||
B_input += (1 << 7);
|
||||
break;
|
||||
case statoMacchina.LIBERO:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if false
|
||||
string currODL = "";
|
||||
try
|
||||
{
|
||||
currODL = utils.callUrl(urlGetCurrODL);
|
||||
// solo SE HO un ODL...
|
||||
if (currODL == "" || currODL == "0")
|
||||
{
|
||||
if (periodicLog)
|
||||
{
|
||||
lgInfo(string.Format("SiemensFape | Lettura ODL andata a vuoto: currODL: {0}", currODL));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// se variato o scaduto timeout log...
|
||||
if (periodicLog || (currIdxODL.ToString() != currODL))
|
||||
{
|
||||
lgInfo(string.Format("SiemensFape | Lettura ODL, currODL: {0} --> currIdxODL prec: {1}", currODL, currIdxODL));
|
||||
}
|
||||
// provo a salvare nuovo ODL
|
||||
int.TryParse(currODL, out currIdxODL);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
if (DateTime.Now.Subtract(lastWarnODL).TotalSeconds > 15)
|
||||
{
|
||||
lgError(exc, "Errore in fase di chiamata URL x ODL corrente | URL chiamato: {0}", urlGetCurrODL);
|
||||
lastWarnODL = DateTime.Now;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if false
|
||||
if (currODL != null && currODL != "" && currODL != "0")
|
||||
{
|
||||
// ora processo il contapezzi...
|
||||
// controllo se è passato intervallo minimo tra 2 controlli/elaborazioni x distanziare invio e ridurre letture
|
||||
if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay))
|
||||
{
|
||||
// se sono differenti MOSTRO...
|
||||
if (lastCountCNC != contapezzi)
|
||||
{
|
||||
// registro contapezzi
|
||||
lgInfo(string.Format("Differenza Contapezzi: READ: {0} | Interno {1}", lastCountCNC, contapezzi));
|
||||
}
|
||||
// verifico se variato contapezzi... e se passato ritardo minimo...
|
||||
if (lastCountCNC > contapezzi)
|
||||
{
|
||||
// salvo nuovo contapezzi (incremento di 1...)
|
||||
contapezzi++;
|
||||
// salvo in semaforo!
|
||||
B_input += (1 << 2);
|
||||
// registro contapezzi
|
||||
lgInfo(string.Format("Contapezzi SIEMENS: {0} | Contapezzi interno {1}", lastCountCNC, contapezzi));
|
||||
}
|
||||
|
||||
// invio a server contapezzi (aggiornato)
|
||||
string retVal = utils.callUrl(urlSetPzCount + contapezzi.ToString());
|
||||
// verifica se tutto OK
|
||||
if (retVal != "OK")
|
||||
{
|
||||
// errore salvataggio contapezzi
|
||||
lgInfo(string.Format("Errore salvataggio Contapezzi SIEMENS {0} | Contapezzi interno {1} | Errore salvataggio: {2}", lastCountCNC, contapezzi, retVal));
|
||||
}
|
||||
// resetto timer...
|
||||
lastPzCountSend = DateTime.Now;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (DateTime.Now >= lastPzCountSend.AddMilliseconds(pzCountDelay))
|
||||
{
|
||||
lgInfo(string.Format("Attenzione: mancanza ODL non procedo con gestione contapezzi. Contapezzi SIEMENS {0} | Contapezzi interno {1}", lastCountCNC, contapezzi));
|
||||
// resetto timer...
|
||||
lastPzCountSend = DateTime.Now;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// log opzionale!
|
||||
if (verboseLog)
|
||||
{
|
||||
lgInfo(string.Format("Trasformazione B_input: {0}", B_input));
|
||||
lgInfo(string.Format($"Trasformazione dati: RawInput:{RawInput[3]} --> B_input: {B_input}"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -16,7 +16,7 @@ pipeline {
|
||||
|
||||
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
|
||||
script {
|
||||
withEnv(['NEXT_BUILD_NUMBER=387']) {
|
||||
withEnv(['NEXT_BUILD_NUMBER=388']) {
|
||||
// env.versionNumber = VersionNumber(versionNumberString : '2.3.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
|
||||
env.versionNumber = VersionNumber(versionNumberString : '2.3.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
|
||||
env.APP_NAME = 'MAPO-IOB-WIN'
|
||||
|
||||
Reference in New Issue
Block a user