Merge branch 'release/AddRedisQueueOnSim'

This commit is contained in:
Samuele Locatelli
2023-07-05 14:10:42 +02:00
27 changed files with 840 additions and 539 deletions
+135
View File
@@ -0,0 +1,135 @@
using StackExchange.Redis;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
namespace IOB_UT_NEXT
{
/// <summary>
/// Classe gestione code, a seconda della conf come LIST redis o come concurrent queue in memoria
/// </summary>
public class DataQueue
{
#region Public Constructors
public DataQueue(string codIOB, string qName, bool useRedis)
{
UseRedis = useRedis;
CodIOB = codIOB;
QueueName = qName;
//redisMan = new RedisIobCache();
KeyName = redisMan.redHash($"IOB:QUEUE:{CodIOB}:{QueueName}");
}
#endregion Public Constructors
#region Public Methods
public int Count
{
get
{
int answ = 0;
if (UseRedis)
{
answ = (int)redisMan.redQueueCount(KeyName);
}
else
{
answ = MemQueue.Count;
}
return answ;
}
}
/// <summary>
/// Accodamento elemento
/// </summary>
/// <param name="item"></param>
public void Enqueue(string item)
{
if (UseRedis)
{
redisMan.redQueuePush(KeyName, item);
}
else
{
MemQueue.Enqueue(item);
}
}
/// <summary>
/// Lista string degli elementi in coda
/// </summary>
/// <returns></returns>
public List<string> ToList()
{
List<string> answ = new List<string>();
if (UseRedis)
{
// ciclo x prendere tutti...
while (redisMan.redQueueCount(KeyName) > 0)
{
answ.Add(redisMan.redQueuePop(KeyName));
}
}
else
{
answ = MemQueue.ToList();
}
return answ;
}
/// <summary>
/// Recupera 1 record dalla coda...
/// </summary>
/// <param name="result"></param>
/// <returns></returns>
public bool TryDequeue(out string result)
{
bool fatto = false;
if (UseRedis)
{
result = redisMan.redQueuePop(KeyName);
fatto = true;
}
else
{
fatto = MemQueue.TryDequeue(out result);
}
return fatto;
}
#endregion Public Methods
#region Private Fields
private string CodIOB = "NA";
private RedisKey KeyName = "NA";
/// <summary>
/// Coda modalità memoria locale
/// </summary>
private ConcurrentQueue<string> MemQueue = new ConcurrentQueue<string>();
private string QueueName = "NA";
/// <summary>
/// Indica se usare redis come datastore vs memoria
/// </summary>
private bool UseRedis = false;
#endregion Private Fields
#region Private Properties
/// <summary>
/// Oggetto connessione REDIS
/// </summary>
private RedisIobCache redisMan { get; set; } = new RedisIobCache();
#endregion Private Properties
}
}
+1
View File
@@ -143,6 +143,7 @@
<ItemGroup>
<Compile Include="BitUtils.cs" />
<Compile Include="DataModel\Fimat.cs" />
<Compile Include="DataQueue.cs" />
<Compile Include="FileProcMan.cs" />
<Compile Include="IntConditionCheck.cs" />
<Compile Include="BitConditionCheck.cs" />
+84 -23
View File
@@ -629,29 +629,6 @@ namespace IOB_UT_NEXT
}
return answ;
}
/// <summary>
/// RIMUOVE un singolo valore (riga) dalla hash
/// </summary>
/// <param name="hashKey"></param>
/// <param name="hashField"></param>
/// <returns></returns>
public string redRemoveHashField(string hashKey, string hashField)
{
string answ = "";
// cerco se ci sia valore in redis...
try
{
RedisKey chiave = hashKey;
RedisValue campo = hashField;
RedisValue valOut = cache.HashDelete(chiave, campo);
answ = valOut.ToString();
}
catch (Exception exc)
{
Logging.Instance.Error($"redRemoveHashField{Environment.NewLine}{exc}");
}
return answ;
}
/// <summary>
/// Nome della variabile HASH da utilizzare (dato CodModulo / Server / DB impiegato da
@@ -752,6 +729,60 @@ namespace IOB_UT_NEXT
return answ;
}
/// <summary>
/// Conteggio elementi in QUEUE (FIFO)
/// </summary>
/// <param name="queueName"></param>
/// <param name="value"></param>
public long redQueueCount(RedisKey queueName)
{
return cache.ListLength(queueName);
}
/// <summary>
/// Recupero valore in QUEUE (FIFO)
/// </summary>
/// <param name="queueName"></param>
/// <param name="value"></param>
public RedisValue redQueuePop(RedisKey queueName)
{
return cache.ListLeftPop(queueName);
}
/// <summary>
/// Scrittura valore in QUEUE (FIFO)
/// </summary>
/// <param name="queueName"></param>
/// <param name="value"></param>
public void redQueuePush(RedisKey queueName, RedisValue value)
{
cache.ListRightPush(queueName, value);
}
/// <summary>
/// RIMUOVE un singolo valore (riga) dalla hash
/// </summary>
/// <param name="hashKey"></param>
/// <param name="hashField"></param>
/// <returns></returns>
public string redRemoveHashField(string hashKey, string hashField)
{
string answ = "";
// cerco se ci sia valore in redis...
try
{
RedisKey chiave = hashKey;
RedisValue campo = hashField;
RedisValue valOut = cache.HashDelete(chiave, campo);
answ = valOut.ToString();
}
catch (Exception exc)
{
Logging.Instance.Error($"redRemoveHashField{Environment.NewLine}{exc}");
}
return answ;
}
/// <summary>
/// Salvataggio di una hash di valori
/// </summary>
@@ -930,6 +961,36 @@ namespace IOB_UT_NEXT
return answ;
}
/// <summary>
/// Conteggio elementi in QUEUE (LIFO)
/// </summary>
/// <param name="queueName"></param>
/// <param name="value"></param>
public long redStackCount(RedisKey queueName)
{
return cache.ListLength(queueName);
}
/// <summary>
/// Recupero valore in STACK (LIFO)
/// </summary>
/// <param name="stackName"></param>
/// <returns></returns>
public RedisValue redStackPop(RedisKey stackName)
{
return cache.ListRightPop(stackName);
}
/// <summary>
/// Scrittura valore in STACK (LIFO)
/// </summary>
/// <param name="stackName"></param>
/// <param name="value"></param>
public void redStackPush(RedisKey stackName, RedisValue value)
{
cache.ListRightPush(stackName, value);
}
/// <summary>
/// Resetta (elimina) un contatore in Redis
/// </summary>
+1
View File
@@ -1576,6 +1576,7 @@ namespace IOB_WIN_NEXT
optPar = optParRead,
versIOB = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(),
codIOB = fIni.ReadString("IOB", "IOB_NAME", CurrIOB),
EnableRedisQueue = bool.Parse(fIni.ReadString("IOB", "EnableRedisQueue", "false")),
disableExeTask = bool.Parse(fIni.ReadString("IOB", "DIS_EXE_TASK", "false")),
disableStateCh = bool.Parse(fIni.ReadString("IOB", "DIS_STATE_CH", "false")),
filenameIOB = CurrIOB,
+1 -1
View File
@@ -57,6 +57,6 @@ CLI_INST=SteamWareSim
;STARTLIST=SIMUL_02
;NB: mettere copy always ai file di conf x fare test...
STARTLIST=BAGLIETTO_CIMOLAI_01
STARTLIST=SIMUL_01
MAXCNC=10
+9 -6
View File
@@ -3,6 +3,7 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -91,10 +92,12 @@ FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
CSV_ADD_HEADER=true
; conf file import
FILE_IMPORT_FOLDER=c:\temp\import
FILE_IMPORT_TYPE=*.xlsx
FILE_ARCHIVE_FOLDER=c:\temp\import\archive
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+83 -95
View File
@@ -1,99 +1,87 @@
{
"mMapWrite": {
"setArt": {
"name": "setArt",
"description": "Articolo",
"memAddr": "DB150.DBB12",
"tipoMem": "String",
"index": 12,
"size": 20
"mMapWrite": {
"setArt": {
"name": "setArt",
"description": "Articolo",
"memAddr": "DB150.DBB12",
"tipoMem": "String",
"index": 12,
"size": 20
},
"setComm": {
"name": "setComm",
"description": "Commessa",
"memAddr": "DB150.DBB32",
"tipoMem": "String",
"index": 32,
"size": 20
},
"setPzComm": {
"name": "setPzComm",
"description": "Qta Richiesta",
"memAddr": "DB150.DBB8",
"tipoMem": "Int",
"index": 8,
"size": 4
},
"forceSetPzCount": {
"name": "forceSetPzCount",
"description": "Imposta Qta",
"memAddr": "DB150.DBB8",
"tipoMem": "Int",
"index": 8,
"size": 4
}
},
"setComm": {
"name": "setComm",
"description": "Commessa",
"memAddr": "DB150.DBB32",
"tipoMem": "String",
"index": 32,
"size": 20
},
"setPzComm": {
"name": "setPzComm",
"description": "Qta Richiesta",
"memAddr": "DB150.DBB8",
"tipoMem": "Int",
"index": 8,
"size": 4
},
"forceSetPzCount": {
"name": "forceSetPzCount",
"description": "Imposta Qta",
"memAddr": "DB150.DBB8",
"tipoMem": "Int",
"index": 8,
"size": 4
"mMapRead": {
"TEMP_01": {
"name": "TEMP_01",
"description": "Temperatura 01",
"tipoMem": "Real",
"minVal": 18,
"maxVal": 24
},
"POWER_01": {
"name": "POWER_01",
"description": "Potenza impianto",
"tipoMem": "Int",
"minVal": 40,
"maxVal": 80
},
"FEED_OVER": {
"name": "FEED_OVER",
"description": "FEED override",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 100
},
"RAPID_OVER": {
"name": "RAPID_OVER",
"description": "RAPID override",
"tipoMem": "Int",
"minVal": 50,
"maxVal": 120
},
"POS_X": {
"name": "POS_X",
"description": "Asse X",
"tipoMem": "Int",
"minVal": -2000,
"maxVal": 2000
},
"POS_Y": {
"name": "POS_Y",
"description": "Asse Y",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 2000
},
"POS_Z": {
"name": "POS_Z",
"description": "Asse Z",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 1500
}
}
},
"mMapRead": {
"TEMP_01": {
"name": "TEMP_01",
"description": "Temperatura 01",
"tipoMem": "Real",
"minVal": 18,
"maxVal": 24
},
"POWER_01": {
"name": "POWER_01",
"description": "Potenza impianto",
"tipoMem": "Int",
"minVal": 40,
"maxVal": 80
},
"FEED_OVER": {
"name": "FEED_OVER",
"description": "FEED override",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 100
},
"RAPID_OVER": {
"name": "RAPID_OVER",
"description": "RAPID override",
"tipoMem": "Int",
"minVal": 50,
"maxVal": 120
},
"POS_X": {
"name": "POS_X",
"description": "Asse X",
"tipoMem": "Int",
"minVal": -2000,
"maxVal": 2000
},
"POS_Y": {
"name": "POS_Y",
"description": "Asse Y",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 2000
},
"POS_Z": {
"name": "POS_Z",
"description": "Asse Z",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 1500
}
},
"fileDecod": {
"Product": 3,
"Variety": 9,
"Supplier": 8,
"ExtDoc": 2,
"DateRif": 14,
"QtyTot": 22,
"NumPack": 21,
"NumPed": 17,
"PackPed": 18,
"PesoPack": 20
}
}
+10 -1
View File
@@ -3,6 +3,7 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -80,6 +81,7 @@ TC_MAX_INCR=5
MAX_PZ_INCR_PERC=1000
; conf parametri memoria READ/WRITE
PARAM_CONF=SIMUL_02.json
;conf test FTP
FTP_SERVER=ftp.steamware.net
FTP_USER=testftpuser
@@ -90,4 +92,11 @@ FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
-30
View File
@@ -83,35 +83,5 @@
"minVal": 0,
"maxVal": 1500
}
},
"fileDecod": {
"Product": 2,
"Variety": 3,
"Supplier": 4,
"ExtDoc": 0,
"DateRif": 1,
"QtyTot": 15,
"NumPack": 14,
"NumPed": 11,
"PackPed": 12,
"PesoPack": 13
},
"optKVP": {
"hasRecipe": true,
"maxPodlQty": 530,
"useLocalRecipe": true,
"path-locBase": "C:\\MesData\\Local",
"path-remBase": "C:\\MesData\\Remote",
"path-00-Arch": "ArchivioRicette\\FIMAT",
"path-01-Temp": "01-Temp\\FIMAT",
"path-02-Sent": "02-Inviate\\FIMAT",
"path-03-Recv": "03-Ricevute\\FIMAT",
"path-04-remReq": "C:\\MesData\\Remote\\Queue2",
"path-05-remExe": "C:\\MesData\\Remote\\Dosed",
"path-06-remRec": "C:\\MesData\\Remote\\Recipes",
"path-outReport": "C:\\MesData\\Report",
"path-confSetup": "C:\\MesData\\Setup\\setupConsumi.json",
"replace-<Variant>": "<Variant>{{PODL}}",
"replace-<Info1>": "<Info1>Kg{{Qty}} | {{Note}}"
}
}
+10 -2
View File
@@ -3,6 +3,7 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -34,7 +35,7 @@ BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=true
AUTO_SNAPSHOT_DOSSIER=true
AUTO_SNAPSHOT_DOSSIER=false
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=0
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
@@ -92,4 +93,11 @@ FTP_REM_DIR=
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+10 -2
View File
@@ -3,6 +3,7 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -33,7 +34,7 @@ BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=true
AUTO_SNAPSHOT_DOSSIER=true
AUTO_SNAPSHOT_DOSSIER=false
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=0
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
@@ -90,4 +91,11 @@ FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+10 -2
View File
@@ -3,6 +3,7 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -33,7 +34,7 @@ BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=true
AUTO_SNAPSHOT_DOSSIER=true
AUTO_SNAPSHOT_DOSSIER=false
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=0
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
@@ -90,4 +91,11 @@ FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+10 -2
View File
@@ -3,6 +3,7 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -33,7 +34,7 @@ BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=true
AUTO_SNAPSHOT_DOSSIER=true
AUTO_SNAPSHOT_DOSSIER=false
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=0
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
@@ -90,4 +91,11 @@ FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+10 -2
View File
@@ -3,6 +3,7 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -33,7 +34,7 @@ BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=true
AUTO_SNAPSHOT_DOSSIER=true
AUTO_SNAPSHOT_DOSSIER=false
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=0
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
@@ -91,4 +92,11 @@ FTP_REM_DIR=
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+10 -2
View File
@@ -3,6 +3,7 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -33,7 +34,7 @@ BLINK_FILT=0
[OPTPAR]
AUTO_CHANGE_ODL=false
AUTO_SNAPSHOT_DOSSIER=true
AUTO_SNAPSHOT_DOSSIER=false
CHANGE_ODL_HOURS=48
CHANGE_ODL_IDLE_MIN=10
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
@@ -90,4 +91,11 @@ FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+21 -3
View File
@@ -3,6 +3,7 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -50,7 +51,7 @@ PER_BASE=10500
SIM_PZCNT=10|3
SIM_ALARM=1000|20
SIM_MANU=50|6
; 1 = indica che la macchina è multi --> allo scadere del contapezzo gestisce ANCHE il giro tavola sui bit relativi
; 1 = indica che la macchina è multi --> allo scadere del contapezzo gestisce ANCHE il giro tavola sui bit relativi
IS_MULTI=1
; indica gestione e simulazione bit 5 --> slow/emergenza
SIM_SLOW=3500|20
@@ -58,7 +59,7 @@ SIM_SLOW=3500|20
SIM_WUCD=8000|20
; indica gestione e simulazione bit 7 --> emergenza
SIM_EMRG=4000|10
; indica simulazione delle funzionalità power ON/ OFF
; indica simulazione delle funzionalità power ON/ OFF
SIM_POW_ON_OFF=true
T_ON=6
T_OFF=22
@@ -74,5 +75,22 @@ SIM_MATR_OPR=1
; conf parametri memoria READ/WRITE
PARAM_CONF=SIM_DP_01.json
;conf test FTP
FTP_SERVER=ftp.steamware.net
FTP_USER=testftpuser
FTP_PWD=we4reFromB3rghem!
FTP_CERT=
FTP_SKIP=TRUE
FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
CSV_ADD_HEADER=true
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+83 -95
View File
@@ -1,99 +1,87 @@
{
"mMapWrite": {
"setArt": {
"name": "setArt",
"description": "Articolo",
"memAddr": "DB150.DBB12",
"tipoMem": "String",
"index": 12,
"size": 20
"mMapWrite": {
"setArt": {
"name": "setArt",
"description": "Articolo",
"memAddr": "DB150.DBB12",
"tipoMem": "String",
"index": 12,
"size": 20
},
"setComm": {
"name": "setComm",
"description": "Commessa",
"memAddr": "DB150.DBB32",
"tipoMem": "String",
"index": 32,
"size": 20
},
"setPzComm": {
"name": "setPzComm",
"description": "Qta Richiesta",
"memAddr": "DB150.DBB8",
"tipoMem": "Int",
"index": 8,
"size": 4
},
"forceSetPzCount": {
"name": "forceSetPzCount",
"description": "Imposta Qta",
"memAddr": "DB150.DBB8",
"tipoMem": "Int",
"index": 8,
"size": 4
}
},
"setComm": {
"name": "setComm",
"description": "Commessa",
"memAddr": "DB150.DBB32",
"tipoMem": "String",
"index": 32,
"size": 20
},
"setPzComm": {
"name": "setPzComm",
"description": "Qta Richiesta",
"memAddr": "DB150.DBB8",
"tipoMem": "Int",
"index": 8,
"size": 4
},
"forceSetPzCount": {
"name": "forceSetPzCount",
"description": "Imposta Qta",
"memAddr": "DB150.DBB8",
"tipoMem": "Int",
"index": 8,
"size": 4
"mMapRead": {
"TEMP_01": {
"name": "TEMP_01",
"description": "Temperatura 01",
"tipoMem": "Real",
"minVal": 18,
"maxVal": 24
},
"POWER_01": {
"name": "POWER_01",
"description": "Potenza impianto",
"tipoMem": "Int",
"minVal": 40,
"maxVal": 80
},
"FEED_OVER": {
"name": "FEED_OVER",
"description": "FEED override",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 100
},
"RAPID_OVER": {
"name": "RAPID_OVER",
"description": "RAPID override",
"tipoMem": "Int",
"minVal": 50,
"maxVal": 120
},
"POS_X": {
"name": "POS_X",
"description": "Asse X",
"tipoMem": "Int",
"minVal": -2000,
"maxVal": 2000
},
"POS_Y": {
"name": "POS_Y",
"description": "Asse Y",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 2000
},
"POS_Z": {
"name": "POS_Z",
"description": "Asse Z",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 1500
}
}
},
"mMapRead": {
"TEMP_01": {
"name": "TEMP_01",
"description": "Temperatura 01",
"tipoMem": "Real",
"minVal": 18,
"maxVal": 24
},
"POWER_01": {
"name": "POWER_01",
"description": "Potenza impianto",
"tipoMem": "Int",
"minVal": 40,
"maxVal": 80
},
"FEED_OVER": {
"name": "FEED_OVER",
"description": "FEED override",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 100
},
"RAPID_OVER": {
"name": "RAPID_OVER",
"description": "RAPID override",
"tipoMem": "Int",
"minVal": 50,
"maxVal": 120
},
"POS_X": {
"name": "POS_X",
"description": "Asse X",
"tipoMem": "Int",
"minVal": -2000,
"maxVal": 2000
},
"POS_Y": {
"name": "POS_Y",
"description": "Asse Y",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 2000
},
"POS_Z": {
"name": "POS_Z",
"description": "Asse Z",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 1500
}
},
"fileDecod": {
"Product": 2,
"Variety": 3,
"Supplier": 4,
"ExtDoc": 0,
"DateRif": 1,
"QtyTot": 15,
"NumPack": 14,
"NumPed": 11,
"PackPed": 12,
"PesoPack": 13
}
}
+22 -4
View File
@@ -3,6 +3,7 @@
CNCTYPE=SIMULA
PING_MS_TIMEOUT=500
MinDeltaSec=5
EnableRedisQueue=true
[MACHINE]
VENDOR=STEAMWARE
@@ -50,7 +51,7 @@ PER_BASE=10400
SIM_PZCNT=10|2
SIM_ALARM=1000|20
SIM_MANU=50|6
; 1 = indica che la macchina è multi --> allo scadere del contapezzo gestisce ANCHE il giro tavola sui bit relativi
; 1 = indica che la macchina multi --> allo scadere del contapezzo gestisce ANCHE il giro tavola sui bit relativi
IS_MULTI=1
; indica gestione e simulazione bit 5 --> slow/emergenza
SIM_SLOW=6500|20
@@ -58,7 +59,7 @@ SIM_SLOW=6500|20
SIM_WUCD=8000|20
; indica gestione e simulazione bit 7 --> emergenza
SIM_EMRG=4000|10
; indica simulazione delle funzionalità power ON/ OFF
; indica simulazione delle funzionalit power ON/ OFF
SIM_POW_ON_OFF=false
T_ON=6
T_OFF=22
@@ -72,7 +73,24 @@ SIM_DICH=262|1
SIM_MATR_OPR=1
; conf parametri memoria READ/WRITE
PARAM_CONF=SIM_DP_01.json
PARAM_CONF=SIM_DP_02.json
;conf test FTP
FTP_SERVER=ftp.steamware.net
FTP_USER=testftpuser
FTP_PWD=we4reFromB3rghem!
FTP_CERT=
FTP_SKIP=TRUE
FTP_LOC_DIR=temp\csv
FTP_REM_DIR=
CSV_ADD_HEADER=true
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+83 -95
View File
@@ -1,99 +1,87 @@
{
"mMapWrite": {
"setArt": {
"name": "setArt",
"description": "Articolo",
"memAddr": "DB150.DBB12",
"tipoMem": "String",
"index": 12,
"size": 20
"mMapWrite": {
"setArt": {
"name": "setArt",
"description": "Articolo",
"memAddr": "DB150.DBB12",
"tipoMem": "String",
"index": 12,
"size": 20
},
"setComm": {
"name": "setComm",
"description": "Commessa",
"memAddr": "DB150.DBB32",
"tipoMem": "String",
"index": 32,
"size": 20
},
"setPzComm": {
"name": "setPzComm",
"description": "Qta Richiesta",
"memAddr": "DB150.DBB8",
"tipoMem": "Int",
"index": 8,
"size": 4
},
"forceSetPzCount": {
"name": "forceSetPzCount",
"description": "Imposta Qta",
"memAddr": "DB150.DBB8",
"tipoMem": "Int",
"index": 8,
"size": 4
}
},
"setComm": {
"name": "setComm",
"description": "Commessa",
"memAddr": "DB150.DBB32",
"tipoMem": "String",
"index": 32,
"size": 20
},
"setPzComm": {
"name": "setPzComm",
"description": "Qta Richiesta",
"memAddr": "DB150.DBB8",
"tipoMem": "Int",
"index": 8,
"size": 4
},
"forceSetPzCount": {
"name": "forceSetPzCount",
"description": "Imposta Qta",
"memAddr": "DB150.DBB8",
"tipoMem": "Int",
"index": 8,
"size": 4
"mMapRead": {
"TEMP_01": {
"name": "TEMP_01",
"description": "Temperatura 01",
"tipoMem": "Real",
"minVal": 18,
"maxVal": 24
},
"POWER_01": {
"name": "POWER_01",
"description": "Potenza impianto",
"tipoMem": "Int",
"minVal": 40,
"maxVal": 80
},
"FEED_OVER": {
"name": "FEED_OVER",
"description": "FEED override",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 100
},
"RAPID_OVER": {
"name": "RAPID_OVER",
"description": "RAPID override",
"tipoMem": "Int",
"minVal": 50,
"maxVal": 120
},
"POS_X": {
"name": "POS_X",
"description": "Asse X",
"tipoMem": "Int",
"minVal": -2000,
"maxVal": 2000
},
"POS_Y": {
"name": "POS_Y",
"description": "Asse Y",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 2000
},
"POS_Z": {
"name": "POS_Z",
"description": "Asse Z",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 1500
}
}
},
"mMapRead": {
"TEMP_01": {
"name": "TEMP_01",
"description": "Temperatura 01",
"tipoMem": "Real",
"minVal": 18,
"maxVal": 24
},
"POWER_01": {
"name": "POWER_01",
"description": "Potenza impianto",
"tipoMem": "Int",
"minVal": 40,
"maxVal": 80
},
"FEED_OVER": {
"name": "FEED_OVER",
"description": "FEED override",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 100
},
"RAPID_OVER": {
"name": "RAPID_OVER",
"description": "RAPID override",
"tipoMem": "Int",
"minVal": 50,
"maxVal": 120
},
"POS_X": {
"name": "POS_X",
"description": "Asse X",
"tipoMem": "Int",
"minVal": -2000,
"maxVal": 2000
},
"POS_Y": {
"name": "POS_Y",
"description": "Asse Y",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 2000
},
"POS_Z": {
"name": "POS_Z",
"description": "Asse Z",
"tipoMem": "Int",
"minVal": 0,
"maxVal": 1500
}
},
"fileDecod": {
"Product": 2,
"Variety": 3,
"Supplier": 4,
"ExtDoc": 0,
"DateRif": 1,
"QtyTot": 15,
"NumPack": 14,
"NumPed": 11,
"PackPed": 12,
"PesoPack": 13
}
}
+8 -1
View File
@@ -72,4 +72,11 @@ MAX_PZ_INCR_PERC=1000
PARAM_CONF=SIM_PIZ00.json
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+8 -1
View File
@@ -72,4 +72,11 @@ MAX_PZ_INCR_PERC=1000
PARAM_CONF=SIM_PIZ00.json
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+8 -1
View File
@@ -72,4 +72,11 @@ MAX_PZ_INCR_PERC=1000
PARAM_CONF=SIM_PIZ00.json
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+8 -1
View File
@@ -72,4 +72,11 @@ MAX_PZ_INCR_PERC=1000
PARAM_CONF=SIM_PIZ00.json
[BRANCH]
NAME=master
NAME=master
; Tags manuali
[TAGS]
Customer=Steamware
HostOS=WIN
HostName=IOB-WIN-SIMULA
HostAddr=10.74.82.76
+165 -150
View File
@@ -1,153 +1,168 @@
{
"BrowseFullVal": "ns=4;i=5001",
"BrowseNSIndex": 4,
"BrowseValue": 5001,
"keyPartCount": "tomes_17_partial_prod",
"keyPartReq": "tomach_6_quantity",
"keyPartId": "",
"keyProgName": "",
"keyRunMode": "",
"pingAsPowerOn": false,
"condWork": [{
"keyName": "tomes_5_autom",
"targetValue": "True"
}],
"condPowerOn": {
"checkMode": "AND",
"checkList": [{
"keyName": "tomes_2_mach_on",
"targetValue": "True"
}]
},
"condReady": {
"checkMode": "AND",
"checkList": []
},
"condManual": {
"checkMode": "AND",
"checkList": [{
"keyName": "tomes_6_manual",
"targetValue": "True"
}]
},
"condEStop": {
"checkMode": "AND",
"checkList": []
},
"condError": {
"checkMode": "AND",
"checkList": [{
"keyName": "tomes_7_alarm",
"targetValue": "True"
}]
},
"condCountEnabled": {
"checkMode": "AND",
"checkList": []
},
"condWarmUpCoolDown": {
"checkMode": "OR",
"checkList": []
},
"condWarning": {
"checkMode": "AND",
"checkList": [{
"keyName": "tomes_8_warning",
"targetValue": "True"
}]
},
"condSetup": {
"checkMode": "AND",
"checkList": [{
"keyName": "tomes_3_setup",
"targetValue": "True"
}]
},
"fluxLogVeto": [
"tomes_1_Watchdog"
],
"itemTranslation": {
"avail": "Machine Available",
"rstat": "Execution Mode",
"mode": "Controller Mode",
"ncprog": "Program Name",
"tomes_13_good_prod": "Pezzi Prodotta",
"tomach_6_quantity": "Qta Richiesta",
"fdovrd": "PATH FEED OVERRIDE",
"rovrd": "PATH RAPID OVERRIDE"
},
"paramsEndThresh": {
"InvDDone": 50
},
"mMapWrite": {
"setPzComm": {
"name": "setPzComm",
"description": "Qty",
"tipoMem": "Int",
"memAddr": "ns=4;s=tomach_6_quantity",
"index": 0,
"size": 4
},
"setComm": {
"name": "setComm",
"description": "Commessa",
"tipoMem": "String",
"memAddr": "ns=4;s=tomach_4_prod_order",
"index": 0,
"size": 24
},
"setArt": {
"name": "setArt",
"description": "Articolo",
"tipoMem": "String",
"memAddr": "ns=4;s=tomach_3_code_die",
"index": 0,
"size": 24
}
},
"subscribedItems": [
"ns=4;s=tomes_1_Watchdog",
"ns=4;s=tomes_2_mach_on",
"ns=4;s=tomes_3_setup",
"ns=4;s=tomes_4_impulse",
"ns=4;s=tomes_5_autom",
"ns=4;s=tomes_6_manual",
"ns=4;s=tomes_7_alarm",
"ns=4;s=tomes_8_warning",
"ns=4;s=tomes_10_cycle_life",
"ns=4;s=tomes_11_ack_new_order",
"ns=4;s=tomes_13_good_prod",
"ns=4;s=tomes_14_bad_prod_calipso",
"ns=4;s=tomes_15_bad_prod_startup",
"ns=4;s=tomes_16_bad_prod_stop",
"ns=4;s=tomes_17_partial_prod",
"ns=4;s=tomes_18_total_prod",
"ns=4;s=tomes_20_code_die",
"ns=4;s=tomes_21_order",
"ns=4;s=tomach_1_watchdog",
"ns=4;s=tomach_2_new_prod",
"ns=4;s=tomach_3_code_die",
"ns=4;s=tomach_4_prod_order",
"ns=4;s=tomach_6_quantity"
],
"WatchDog": {
"IsEnabled": true,
"MemConfRead": "ns=4;s=tomes_1_Watchdog",
"MemConfWrite": "ns=4;s=tomach_1_watchdog",
"MaxVal": 9999
},
"SetupConf": {
"SetupMode": "MECOLPRESS",
"EnableAdvSetup": false,
"checkParList": {
"tomach_3_code_die": "tomes_20_code_die",
"tomach_4_prod_order": "tomes_21_order"
},
"writeParAction": [{
"TargetParam": "ns=4;s=tomach_2_new_prod",
"TargetValEqual": 0,
"TargetValNotEqual": 1,
"DisablePzCountNotEqual": true
}]
"BrowseFullVal": "ns=4;i=5001",
"BrowseNSIndex": 4,
"BrowseValue": 5001,
"keyPartCount": "tomes_17_partial_prod",
"keyPartReq": "tomach_6_quantity",
"keyPartId": "",
"keyProgName": "",
"keyRunMode": "",
"pingAsPowerOn": false,
"condWork": [
{
"keyName": "tomes_5_autom",
"targetValue": "True"
}
],
"condPowerOn": {
"checkMode": "AND",
"checkList": [
{
"keyName": "tomes_2_mach_on",
"targetValue": "True"
}
]
},
"condReady": {
"checkMode": "AND",
"checkList": []
},
"condManual": {
"checkMode": "AND",
"checkList": [
{
"keyName": "tomes_6_manual",
"targetValue": "True"
}
]
},
"condEStop": {
"checkMode": "AND",
"checkList": []
},
"condError": {
"checkMode": "AND",
"checkList": [
{
"keyName": "tomes_7_alarm",
"targetValue": "True"
}
]
},
"condCountEnabled": {
"checkMode": "AND",
"checkList": []
},
"condWarmUpCoolDown": {
"checkMode": "OR",
"checkList": [],
"negateValue": true
},
"condWarning": {
"checkMode": "AND",
"checkList": [
{
"keyName": "tomes_8_warning",
"targetValue": "True"
}
]
},
"condSetup": {
"checkMode": "AND",
"checkList": [
{
"keyName": "tomes_3_setup",
"targetValue": "True"
}
]
},
"fluxLogVeto": [
"tomes_1_Watchdog"
],
"itemTranslation": {
"avail": "Machine Available",
"rstat": "Execution Mode",
"mode": "Controller Mode",
"ncprog": "Program Name",
"tomes_13_good_prod": "Pezzi Prodotta",
"tomach_6_quantity": "Qta Richiesta",
"fdovrd": "PATH FEED OVERRIDE",
"rovrd": "PATH RAPID OVERRIDE"
},
"paramsEndThresh": {
"InvDDone": 50
},
"mMapWrite": {
"setPzComm": {
"name": "setPzComm",
"description": "Qty",
"tipoMem": "Int",
"memAddr": "ns=4;s=tomach_6_quantity",
"index": 0,
"size": 4
},
"setComm": {
"name": "setComm",
"description": "Commessa",
"tipoMem": "String",
"memAddr": "ns=4;s=tomach_4_prod_order",
"index": 0,
"size": 24
},
"setArt": {
"name": "setArt",
"description": "Articolo",
"tipoMem": "String",
"memAddr": "ns=4;s=tomach_3_code_die",
"index": 0,
"size": 24
}
},
"subscribedItems": [
"ns=4;s=tomes_1_Watchdog",
"ns=4;s=tomes_2_mach_on",
"ns=4;s=tomes_3_setup",
"ns=4;s=tomes_4_impulse",
"ns=4;s=tomes_5_autom",
"ns=4;s=tomes_6_manual",
"ns=4;s=tomes_7_alarm",
"ns=4;s=tomes_8_warning",
"ns=4;s=tomes_10_cycle_life",
"ns=4;s=tomes_11_ack_new_order",
"ns=4;s=tomes_13_good_prod",
"ns=4;s=tomes_14_bad_prod_calipso",
"ns=4;s=tomes_15_bad_prod_startup",
"ns=4;s=tomes_16_bad_prod_stop",
"ns=4;s=tomes_17_partial_prod",
"ns=4;s=tomes_18_total_prod",
"ns=4;s=tomes_20_code_die",
"ns=4;s=tomes_21_order",
"ns=4;s=tomach_1_watchdog",
"ns=4;s=tomach_2_new_prod",
"ns=4;s=tomach_3_code_die",
"ns=4;s=tomach_4_prod_order",
"ns=4;s=tomach_6_quantity"
],
"WatchDog": {
"IsEnabled": true,
"MemConfRead": "ns=4;s=tomes_1_Watchdog",
"MemConfWrite": "ns=4;s=tomach_1_watchdog",
"MaxVal": 9999
},
"SetupConf": {
"SetupMode": "MECOLPRESS",
"EnableAdvSetup": false,
"checkParList": {
"tomach_3_code_die": "tomes_20_code_die",
"tomach_4_prod_order": "tomes_21_order"
},
"writeParAction": [
{
"TargetParam": "ns=4;s=tomach_2_new_prod",
"TargetValEqual": 0,
"TargetValNotEqual": 1,
"DisablePzCountNotEqual": true
}
]
}
}
+6 -2
View File
@@ -588,7 +588,9 @@
<None Include="DATA\CONF\SIMUL_04.json" />
<None Include="DATA\CONF\SIMUL_03.json" />
<None Include="DATA\CONF\SIMUL_02.json" />
<None Include="DATA\CONF\SIMUL_01.json" />
<None Include="DATA\CONF\SIMUL_01.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\INTERCL_02.json" />
<None Include="DATA\CONF\INTERCL_01.json" />
<None Include="DATA\CONF\3019.json" />
@@ -612,7 +614,9 @@
<None Include="DATA\CONF\SIMUL_05.ini" />
<None Include="DATA\CONF\SIM_DP_02.ini" />
<None Include="DATA\CONF\SIM_DP_01.ini" />
<None Include="DATA\CONF\SIMUL_01.ini" />
<None Include="DATA\CONF\SIMUL_01.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\SIMUL_02.ini" />
<None Include="DATA\CONF\3006.ini" />
<None Include="DATA\CONF\3007.ini" />
+39 -18
View File
@@ -209,33 +209,39 @@ namespace IOB_WIN_NEXT.Iob
/// <summary>
/// Coda valori ALLARMI ove gestiti...
/// </summary>
public ConcurrentQueue<string> QueueAlarm = new ConcurrentQueue<string>();
public DataQueue QueueAlarm = new DataQueue("000", "QueueAlarm", false);
//public ConcurrentQueue<string> QueueAlarm = new ConcurrentQueue<string>();
/// <summary>
/// Oggetto della coda degli elementi letti di tipo FluxLog (e non ancora trasmessi)
/// </summary>
public ConcurrentQueue<string> QueueFLog = new ConcurrentQueue<string>();
public DataQueue QueueFLog = new DataQueue("000", "QueueFLog", false);
//public ConcurrentQueue<string> QueueFLog = new ConcurrentQueue<string>();
/// <summary>
/// Oggetto della coda degli elementi letti (e non ancora trasmessi)
/// </summary>
public ConcurrentQueue<string> QueueIN = new ConcurrentQueue<string>();
public DataQueue QueueIN = new DataQueue("000", "QueueIN", false);
//public ConcurrentQueue<string> QueueIN = new ConcurrentQueue<string>();
/// <summary>
/// Coda valori MESSAGGI/EVENTI (da non sottocampionare come samples)...
/// </summary>
public ConcurrentQueue<string> QueueMessages = new ConcurrentQueue<string>();
public DataQueue QueueMessages = new DataQueue("000", "QueueMessages", false);
//public ConcurrentQueue<string> QueueMessages = new ConcurrentQueue<string>();
/// <summary>
/// Oggetto della coda degli elementi di tipo RawTransf (e non ancora trasmessi)
/// NB: sono salvati serializzati come stringhe
/// </summary>
public ConcurrentQueue<string> QueueRawTransf = new ConcurrentQueue<string>();
public DataQueue QueueRawTransf = new DataQueue("000", "QueueRawTransf", false);
//public ConcurrentQueue<string> QueueRawTransf = new ConcurrentQueue<string>();
/// <summary>
/// Coda valori LOG UTENTE (da non sottocampionare come samples)...
/// </summary>
public ConcurrentQueue<string> QueueULog = new ConcurrentQueue<string>();
public DataQueue QueueULog = new DataQueue("000", "QueueULog", false);
//public ConcurrentQueue<string> QueueULog = new ConcurrentQueue<string>();
/// <summary>
/// alias booleano false = R
@@ -312,6 +318,9 @@ namespace IOB_WIN_NEXT.Iob
// configurazione...
cIobConf = IOBConf;
// imposto le code!
QueueIN= new DataQueue(cIobConf.codIOB, "QueueIN", cIobConf.EnableRedisQueue);
lastConnectTry = DateTime.Now;
// aggiungo nel logger IDX Macchina
@@ -3887,7 +3896,8 @@ namespace IOB_WIN_NEXT.Iob
// invio
sendDataBlock(urlType.FLog, listaValori);
// svuoto!
QueueFLog = new ConcurrentQueue<string>();
QueueFLog = new DataQueue(cIobConf.codIOB, "QueueFLog", cIobConf.EnableRedisQueue);
//QueueFLog = new ConcurrentQueue<string>();
}
}
// HO FINITO invio di FLog...
@@ -3926,7 +3936,8 @@ namespace IOB_WIN_NEXT.Iob
// invio
sendDataBlock(urlType.ULog, listaValori);
// svuoto!
QueueULog = new ConcurrentQueue<string>();
QueueULog = new DataQueue(cIobConf.codIOB, "QueueULog", cIobConf.EnableRedisQueue);
//QueueULog = new ConcurrentQueue<string>();
}
}
}
@@ -3989,7 +4000,8 @@ namespace IOB_WIN_NEXT.Iob
// invio
sendDataBlock(urlType.SignIN, listaValori);
// svuoto!
QueueIN = new ConcurrentQueue<string>();
QueueIN = new DataQueue(cIobConf.codIOB, "QueueIN", cIobConf.EnableRedisQueue);
//QueueIN = new ConcurrentQueue<string>();
}
}
else
@@ -8102,12 +8114,18 @@ namespace IOB_WIN_NEXT.Iob
// svuoto code se richiesto
if (resetQueue)
{
QueueAlarm = new ConcurrentQueue<string>();
QueueIN = new ConcurrentQueue<string>();
QueueFLog = new ConcurrentQueue<string>();
QueueMessages = new ConcurrentQueue<string>();
QueueRawTransf = new ConcurrentQueue<string>();
QueueULog = new ConcurrentQueue<string>();
QueueAlarm = new DataQueue(cIobConf.codIOB, "QueueAlarm", cIobConf.EnableRedisQueue);
//QueueAlarm = new ConcurrentQueue<string>();
QueueIN = new DataQueue(cIobConf.codIOB, "QueueIN", cIobConf.EnableRedisQueue);
//QueueIN = new ConcurrentQueue<string>();
QueueFLog = new DataQueue(cIobConf.codIOB, "QueueFLog", cIobConf.EnableRedisQueue);
//QueueFLog = new ConcurrentQueue<string>();
QueueMessages = new DataQueue(cIobConf.codIOB, "QueueMessages", cIobConf.EnableRedisQueue);
//QueueMessages = new ConcurrentQueue<string>();
QueueRawTransf = new DataQueue(cIobConf.codIOB, "QueueRawTransf", cIobConf.EnableRedisQueue);
//QueueRawTransf = new ConcurrentQueue<string>();
QueueULog = new DataQueue(cIobConf.codIOB, "QueueULog", cIobConf.EnableRedisQueue);
//QueueULog = new ConcurrentQueue<string>();
}
// imposto contatori blink a zero...
i_counters = new int[32];
@@ -8205,7 +8223,8 @@ namespace IOB_WIN_NEXT.Iob
// invio
sendDataBlock(urlType.FLog, listaValori);
// svuoto!
QueueFLog = new ConcurrentQueue<string>();
QueueFLog = new DataQueue(cIobConf.codIOB, "QueueFLog", cIobConf.EnableRedisQueue);
//QueueFLog = new ConcurrentQueue<string>();
lastWatchDog = DateTime.Now;
}
}
@@ -8276,7 +8295,8 @@ namespace IOB_WIN_NEXT.Iob
if (fatto)
{
// svuoto se ha okReport!
QueueRawTransf = new ConcurrentQueue<string>();
QueueRawTransf = new DataQueue(cIobConf.codIOB, "QueueRawTransf", cIobConf.EnableRedisQueue);
//QueueRawTransf = new ConcurrentQueue<string>();
}
}
}
@@ -8337,7 +8357,8 @@ namespace IOB_WIN_NEXT.Iob
// invio
sendDataBlock(urlType.ULog, listaValori);
// svuoto!
QueueULog = new ConcurrentQueue<string>();
QueueULog = new DataQueue(cIobConf.codIOB, "QueueULog", cIobConf.EnableRedisQueue);
//QueueULog = new ConcurrentQueue<string>();
}
}
else
+5
View File
@@ -60,6 +60,11 @@ namespace IOB_WIN_NEXT
/// </summary>
public bool disableExeTask { get; set; } = false;
/// <summary>
/// Indica se le code vadano gestite su redis o meno
/// </summary>
public bool EnableRedisQueue { get; set; } = false;
/// <summary>
/// Indica che sono disabilitate le fasi controllo stato/semafori (tipicamente x impianti
/// con PLC "suddivisi", PLC + HMI)