Merge branch 'develop' into IobMan
This commit is contained in:
+274
-270
@@ -6,189 +6,193 @@ using System.Text;
|
||||
namespace IOB_UT
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Tipologie di DUMP memoria
|
||||
/// </summary>
|
||||
public enum dumpType
|
||||
{
|
||||
/// <summary>
|
||||
/// Salvataggio all'avvio aree memoria (con sovrascrittura)
|
||||
/// Tipologie di DUMP memoria
|
||||
/// </summary>
|
||||
STARTUP,
|
||||
public enum dumpType
|
||||
{
|
||||
/// <summary>
|
||||
/// Salvataggio all'avvio aree memoria (con sovrascrittura)
|
||||
/// </summary>
|
||||
STARTUP,
|
||||
/// <summary>
|
||||
/// Campionamento periodico
|
||||
/// </summary>
|
||||
SAMPLE
|
||||
}
|
||||
/// <summary>
|
||||
/// Campionamento periodico
|
||||
/// Tipologia di adapters ammessi
|
||||
/// </summary>
|
||||
SAMPLE
|
||||
}
|
||||
/// <summary>
|
||||
/// Tipologia di adapters ammessi
|
||||
/// </summary>
|
||||
public enum tipoAdapter
|
||||
{
|
||||
public enum tipoAdapter
|
||||
{
|
||||
/// <summary>
|
||||
/// Adapter SIMULAZIONE
|
||||
/// </summary>
|
||||
SIMULA,
|
||||
/// <summary>
|
||||
/// adapter FANUC
|
||||
/// </summary>
|
||||
FANUC,
|
||||
/// <summary>
|
||||
/// adapter KAWASAKI e-controller
|
||||
/// </summary>
|
||||
KAWASAKI,
|
||||
/// <summary>
|
||||
/// Adapter non specificato
|
||||
/// </summary>
|
||||
ND,
|
||||
/// <summary>
|
||||
/// Adapter MTConnect
|
||||
/// </summary>
|
||||
MTConnect,
|
||||
/// <summary>
|
||||
/// Adapter OMRON
|
||||
/// </summary>
|
||||
OMRON,
|
||||
/// <summary>
|
||||
/// Adapter OSAI CNDEX (Cndex)
|
||||
/// </summary>
|
||||
OSAI_CNDEX,
|
||||
/// <summary>
|
||||
/// Adapter OSAI OPEN (ws)
|
||||
/// </summary>
|
||||
OSAI_OPEN,
|
||||
/// <summary>
|
||||
/// Adapter OSAI VB6
|
||||
/// </summary>
|
||||
OSAI_VB6,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS
|
||||
/// </summary>
|
||||
SIEMENS,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione APROCHIM (filtro liquidi rettifiche)
|
||||
/// </summary>
|
||||
SIEMENS_APROCHIM,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione VIPA @2001
|
||||
/// </summary>
|
||||
SIEMENS_AT2001,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione FAPE (punzonatrici)
|
||||
/// </summary>
|
||||
SIEMENS_FAPE,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione COMUR (dentatrice)
|
||||
/// </summary>
|
||||
SIEMENS_COMUR,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione INGENIA (Valvital, Automazione)
|
||||
/// </summary>
|
||||
SIEMENS_INGENIA,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione LASCO (Valvital, Pressa Bilancere)
|
||||
/// </summary>
|
||||
SIEMENS_LASCO,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione PRESSOIL + CEI (Valvital, Pressa Idraulica)
|
||||
/// </summary>
|
||||
SIEMENS_PRESSOIL_CEI,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione SAET (Valvital, forni / tempra)
|
||||
/// </summary>
|
||||
SIEMENS_SAET,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione SIMEC (Valvital, taglio)
|
||||
/// </summary>
|
||||
SIEMENS_SIMEC,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione Torri
|
||||
/// </summary>
|
||||
SIEMENS_TORRI,
|
||||
/// <summary>
|
||||
/// Metodi di WPS WebPageScraping (es x compressori Atlas Copco)
|
||||
/// </summary>
|
||||
WPS
|
||||
}
|
||||
/// <summary>
|
||||
/// Adapter SIMULAZIONE
|
||||
/// Tipo di ciclo da processare
|
||||
/// </summary>
|
||||
SIMULA,
|
||||
/// <summary>
|
||||
/// adapter FANUC
|
||||
/// </summary>
|
||||
FANUC,
|
||||
/// <summary>
|
||||
/// adapter KAWASAKI e-controller
|
||||
/// </summary>
|
||||
KAWASAKI,
|
||||
/// <summary>
|
||||
/// Adapter non specificato
|
||||
/// </summary>
|
||||
ND,
|
||||
/// <summary>
|
||||
/// Adapter MTConnect
|
||||
/// </summary>
|
||||
MTConnect,
|
||||
/// <summary>
|
||||
/// Adapter OMRON
|
||||
/// </summary>
|
||||
OMRON,
|
||||
/// <summary>
|
||||
/// Adapter OSAI CNDEX (Cndex)
|
||||
/// </summary>
|
||||
OSAI_CNDEX,
|
||||
/// <summary>
|
||||
/// Adapter OSAI OPEN (ws)
|
||||
/// </summary>
|
||||
OSAI_OPEN,
|
||||
/// <summary>
|
||||
/// Adapter OSAI VB6
|
||||
/// </summary>
|
||||
OSAI_VB6,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS
|
||||
/// </summary>
|
||||
SIEMENS,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione APROCHIM (filtro liquidi rettifiche)
|
||||
/// </summary>
|
||||
SIEMENS_APROCHIM,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione VIPA @2001
|
||||
/// </summary>
|
||||
SIEMENS_AT2001,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione FAPE (punzonatrici)
|
||||
/// </summary>
|
||||
SIEMENS_FAPE,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione COMUR (dentatrice)
|
||||
/// </summary>
|
||||
SIEMENS_COMUR,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione INGENIA (Valvital, Automazione)
|
||||
/// </summary>
|
||||
SIEMENS_INGENIA,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione LASCO (Valvital, Pressa Bilancere)
|
||||
/// </summary>
|
||||
SIEMENS_LASCO,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione PRESSOIL + CEI (Valvital, Pressa Idraulica)
|
||||
/// </summary>
|
||||
SIEMENS_PRESSOIL_CEI,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione SAET (Valvital, forni / tempra)
|
||||
/// </summary>
|
||||
SIEMENS_SAET,
|
||||
/// <summary>
|
||||
/// Adapter SIEMENS, interfaccia versione Torri
|
||||
/// </summary>
|
||||
SIEMENS_TORRI,
|
||||
/// <summary>
|
||||
/// Metodi di WPS WebPageScraping (es x compressori Atlas Copco)
|
||||
/// </summary>
|
||||
WPS
|
||||
}
|
||||
/// <summary>
|
||||
/// Tipo di ciclo da processare
|
||||
/// </summary>
|
||||
public enum gatherCycle
|
||||
{
|
||||
/// <summary>
|
||||
/// Very High Frequency (solo x invii...)
|
||||
/// </summary>
|
||||
VHF,
|
||||
/// <summary>
|
||||
/// lettura dati ad alta frequenza
|
||||
/// </summary>
|
||||
HF,
|
||||
/// <summary>
|
||||
/// lettura dati standard
|
||||
/// </summary>
|
||||
MF,
|
||||
/// <summary>
|
||||
/// lettura dati bassa freq
|
||||
/// </summary>
|
||||
LF,
|
||||
/// <summary>
|
||||
/// lettura dati bassissima priorità (re-sync stato allarmi)
|
||||
/// </summary>
|
||||
VLF
|
||||
}
|
||||
public enum gatherCycle
|
||||
{
|
||||
/// <summary>
|
||||
/// Very High Frequency (solo x invii...)
|
||||
/// </summary>
|
||||
VHF,
|
||||
/// <summary>
|
||||
/// lettura dati ad alta frequenza
|
||||
/// </summary>
|
||||
HF,
|
||||
/// <summary>
|
||||
/// lettura dati standard
|
||||
/// </summary>
|
||||
MF,
|
||||
/// <summary>
|
||||
/// lettura dati bassa freq
|
||||
/// </summary>
|
||||
LF,
|
||||
/// <summary>
|
||||
/// lettura dati bassissima priorità (re-sync stato allarmi)
|
||||
/// </summary>
|
||||
VLF
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// StFlag8: set di 8 bit (1 word) contente semaforo di variabili
|
||||
/// </summary>
|
||||
[Flags]
|
||||
public enum StFlag8 : int
|
||||
{
|
||||
NONE = 0,
|
||||
B0 = 1 << 0,
|
||||
B1 = 1 << 1,
|
||||
B2 = 1 << 2,
|
||||
B3 = 1 << 3,
|
||||
B4 = 1 << 4,
|
||||
B5 = 1 << 5,
|
||||
B6 = 1 << 6,
|
||||
B7 = 1 << 7
|
||||
}
|
||||
/// <summary>
|
||||
/// StFlag32: set di 32 bit (4 word) contente semaforo di variabili
|
||||
/// </summary>
|
||||
[Flags]
|
||||
public enum StFlag32 : int
|
||||
{
|
||||
NONE = 0,
|
||||
B00 = 1 << 0,
|
||||
B01 = 1 << 1,
|
||||
B02 = 1 << 2,
|
||||
B03 = 1 << 3,
|
||||
B04 = 1 << 4,
|
||||
B05 = 1 << 5,
|
||||
B06 = 1 << 6,
|
||||
B07 = 1 << 7,
|
||||
B08 = 1 << 8,
|
||||
B09 = 1 << 9,
|
||||
B10 = 1 << 10,
|
||||
B11 = 1 << 11,
|
||||
B12 = 1 << 12,
|
||||
B13 = 1 << 13,
|
||||
B14 = 1 << 14,
|
||||
B15 = 1 << 15,
|
||||
B16 = 1 << 16,
|
||||
B17 = 1 << 17,
|
||||
B18 = 1 << 18,
|
||||
B19 = 1 << 19,
|
||||
B20 = 1 << 20,
|
||||
B21 = 1 << 21,
|
||||
B22 = 1 << 22,
|
||||
B23 = 1 << 23,
|
||||
B24 = 1 << 24,
|
||||
B25 = 1 << 25,
|
||||
B26 = 1 << 26,
|
||||
B27 = 1 << 27,
|
||||
B28 = 1 << 28,
|
||||
B29 = 1 << 29,
|
||||
B30 = 1 << 30,
|
||||
B31 = 1 << 31
|
||||
}
|
||||
/// <summary>
|
||||
/// StFlag8: set di 8 bit (1 word) contente semaforo di variabili
|
||||
/// </summary>
|
||||
[Flags]
|
||||
public enum StFlag8 : int
|
||||
{
|
||||
NONE = 0,
|
||||
B0 = 1 << 0,
|
||||
B1 = 1 << 1,
|
||||
B2 = 1 << 2,
|
||||
B3 = 1 << 3,
|
||||
B4 = 1 << 4,
|
||||
B5 = 1 << 5,
|
||||
B6 = 1 << 6,
|
||||
B7 = 1 << 7
|
||||
}
|
||||
/// <summary>
|
||||
/// StFlag32: set di 32 bit (4 word) contente semaforo di variabili
|
||||
/// </summary>
|
||||
[Flags]
|
||||
public enum StFlag32 : int
|
||||
{
|
||||
NONE = 0,
|
||||
B00 = 1 << 0,
|
||||
B01 = 1 << 1,
|
||||
B02 = 1 << 2,
|
||||
B03 = 1 << 3,
|
||||
B04 = 1 << 4,
|
||||
B05 = 1 << 5,
|
||||
B06 = 1 << 6,
|
||||
B07 = 1 << 7,
|
||||
B08 = 1 << 8,
|
||||
B09 = 1 << 9,
|
||||
B10 = 1 << 10,
|
||||
B11 = 1 << 11,
|
||||
B12 = 1 << 12,
|
||||
B13 = 1 << 13,
|
||||
B14 = 1 << 14,
|
||||
B15 = 1 << 15,
|
||||
B16 = 1 << 16,
|
||||
B17 = 1 << 17,
|
||||
B18 = 1 << 18,
|
||||
B19 = 1 << 19,
|
||||
B20 = 1 << 20,
|
||||
B21 = 1 << 21,
|
||||
B22 = 1 << 22,
|
||||
B23 = 1 << 23,
|
||||
B24 = 1 << 24,
|
||||
B25 = 1 << 25,
|
||||
B26 = 1 << 26,
|
||||
B27 = 1 << 27,
|
||||
B28 = 1 << 28,
|
||||
B29 = 1 << 29,
|
||||
B30 = 1 << 30,
|
||||
B31 = 1 << 31
|
||||
}
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Enumerazione tipi di semaforo
|
||||
@@ -217,105 +221,105 @@ namespace IOB_UT
|
||||
SS
|
||||
}
|
||||
#endif
|
||||
/// <summary>
|
||||
/// Enumerazione tipi di tipi di URL x invio
|
||||
/// </summary>
|
||||
public enum urlType
|
||||
{
|
||||
/// <summary>
|
||||
/// Salvataggio FluxLog (valori estesi che non provocano calcoli di macchine a stati, eventi...)
|
||||
/// Enumerazione tipi di tipi di URL x invio
|
||||
/// </summary>
|
||||
FLog,
|
||||
/// <summary>
|
||||
/// INPUT segnali in ingresso (standard base MAPO)
|
||||
/// </summary>
|
||||
SignIN
|
||||
}
|
||||
public enum urlType
|
||||
{
|
||||
/// <summary>
|
||||
/// Salvataggio FluxLog (valori estesi che non provocano calcoli di macchine a stati, eventi...)
|
||||
/// </summary>
|
||||
FLog,
|
||||
/// <summary>
|
||||
/// INPUT segnali in ingresso (standard base MAPO)
|
||||
/// </summary>
|
||||
SignIN
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Elenco STATI CNC OSAI
|
||||
/// </summary>
|
||||
public enum CNC_STATUS_OSAI
|
||||
{
|
||||
IDLE = 1,
|
||||
CYCLE,
|
||||
HODA,
|
||||
RUNH,
|
||||
HRUN,
|
||||
ERRO,
|
||||
WAIT,
|
||||
RESET,
|
||||
EMERG,
|
||||
INPUT
|
||||
}
|
||||
/// <summary>
|
||||
/// Elenco MODI CNC
|
||||
/// </summary>
|
||||
public enum CNC_MODE
|
||||
{
|
||||
/// <summary>
|
||||
/// Non definito
|
||||
/// Elenco STATI CNC OSAI
|
||||
/// </summary>
|
||||
ND = 0,
|
||||
public enum CNC_STATUS_OSAI
|
||||
{
|
||||
IDLE = 1,
|
||||
CYCLE,
|
||||
HODA,
|
||||
RUNH,
|
||||
HRUN,
|
||||
ERRO,
|
||||
WAIT,
|
||||
RESET,
|
||||
EMERG,
|
||||
INPUT
|
||||
}
|
||||
/// <summary>
|
||||
/// AUTOMATICO
|
||||
/// Elenco MODI CNC
|
||||
/// </summary>
|
||||
AUTO,
|
||||
/// <summary>
|
||||
/// EDIT (MEMORY EDIT)
|
||||
/// </summary>
|
||||
EDIT,
|
||||
/// <summary>
|
||||
/// MEN (MEMORY OPERATION)
|
||||
/// </summary>
|
||||
MEN,
|
||||
/// <summary>
|
||||
/// MDI (MANUAL DATA INPUT)
|
||||
/// </summary>
|
||||
MDI,
|
||||
/// <summary>
|
||||
/// HANDLE/INC (MANUAL HANDLE / INCREMENTAL FEED)
|
||||
/// </summary>
|
||||
HANDLE_INC,
|
||||
/// <summary>
|
||||
/// HOME
|
||||
/// </summary>
|
||||
HOME,
|
||||
/// <summary>
|
||||
/// JOG (MANUAL CONTINUOUS FEED)
|
||||
/// </summary>
|
||||
JOG,
|
||||
/// <summary>
|
||||
/// JOG MAN
|
||||
/// </summary>
|
||||
JOG_MAN,
|
||||
/// <summary>
|
||||
/// JOG_INC
|
||||
/// </summary>
|
||||
JOG_INC,
|
||||
/// <summary>
|
||||
/// PROFILE
|
||||
/// </summary>
|
||||
PROFILE,
|
||||
/// <summary>
|
||||
/// SEMI
|
||||
/// </summary>
|
||||
SEMI,
|
||||
/// <summary>
|
||||
/// THND (TEACH IN HANDLE)
|
||||
/// </summary>
|
||||
THND,
|
||||
/// <summary>
|
||||
/// TJOG (TEACH IN JOG)
|
||||
/// </summary>
|
||||
TJOG,
|
||||
/// <summary>
|
||||
/// RMT (DNC OPERATION)
|
||||
/// </summary>
|
||||
RMT,
|
||||
/// <summary>
|
||||
/// REF (MANUAL REFERENCE POSITION RETURN)
|
||||
/// </summary>
|
||||
REF
|
||||
}
|
||||
public enum CNC_MODE
|
||||
{
|
||||
/// <summary>
|
||||
/// Non definito
|
||||
/// </summary>
|
||||
ND = 0,
|
||||
/// <summary>
|
||||
/// AUTOMATICO
|
||||
/// </summary>
|
||||
AUTO,
|
||||
/// <summary>
|
||||
/// EDIT (MEMORY EDIT)
|
||||
/// </summary>
|
||||
EDIT,
|
||||
/// <summary>
|
||||
/// MEN (MEMORY OPERATION)
|
||||
/// </summary>
|
||||
MEN,
|
||||
/// <summary>
|
||||
/// MDI (MANUAL DATA INPUT)
|
||||
/// </summary>
|
||||
MDI,
|
||||
/// <summary>
|
||||
/// HANDLE/INC (MANUAL HANDLE / INCREMENTAL FEED)
|
||||
/// </summary>
|
||||
HANDLE_INC,
|
||||
/// <summary>
|
||||
/// HOME
|
||||
/// </summary>
|
||||
HOME,
|
||||
/// <summary>
|
||||
/// JOG (MANUAL CONTINUOUS FEED)
|
||||
/// </summary>
|
||||
JOG,
|
||||
/// <summary>
|
||||
/// JOG MAN
|
||||
/// </summary>
|
||||
JOG_MAN,
|
||||
/// <summary>
|
||||
/// JOG_INC
|
||||
/// </summary>
|
||||
JOG_INC,
|
||||
/// <summary>
|
||||
/// PROFILE
|
||||
/// </summary>
|
||||
PROFILE,
|
||||
/// <summary>
|
||||
/// SEMI
|
||||
/// </summary>
|
||||
SEMI,
|
||||
/// <summary>
|
||||
/// THND (TEACH IN HANDLE)
|
||||
/// </summary>
|
||||
THND,
|
||||
/// <summary>
|
||||
/// TJOG (TEACH IN JOG)
|
||||
/// </summary>
|
||||
TJOG,
|
||||
/// <summary>
|
||||
/// RMT (DNC OPERATION)
|
||||
/// </summary>
|
||||
RMT,
|
||||
/// <summary>
|
||||
/// REF (MANUAL REFERENCE POSITION RETURN)
|
||||
/// </summary>
|
||||
REF
|
||||
}
|
||||
}
|
||||
|
||||
+1484
-1480
File diff suppressed because it is too large
Load Diff
@@ -53,8 +53,8 @@ BLINK_FILT=0
|
||||
|
||||
[OPTPAR]
|
||||
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
|
||||
; attenzione memoria sempre base BYTE (1604 DW --> 6416...)
|
||||
PZCOUNT_MODE=SPEC.DB111.DBB2
|
||||
; attenzione memoria sempre base BYTE (1604 DW --> 6416...)
|
||||
PZCOUNT_MODE=SPEC.DB111.DBDW24
|
||||
DISABLE_PZCOUNT=TRUE
|
||||
ENABLE_DYN_DATA=TRUE
|
||||
FORCE_DYN_DATA=TRUE
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
;Configurazione IOB-WIN
|
||||
[IOB]
|
||||
;Macchina taglio barre per Valvital
|
||||
CNCTYPE=SIEMENS_SIMEC
|
||||
PING_MS_TIMEOUT=500
|
||||
|
||||
[MACHINE]
|
||||
VENDOR=SIMEC
|
||||
MODEL=180
|
||||
|
||||
[CNC]
|
||||
IP=192.168.219.15
|
||||
CPUTYPE=S7300
|
||||
RACK=0
|
||||
SLOT=0
|
||||
|
||||
[SERVER]
|
||||
MPIP=http://192.168.214.4
|
||||
MPURL=/MP/IO
|
||||
CMDBASE=/IOB/input/
|
||||
CMDFLOG=/IOB/flog/
|
||||
CMDALIVE=/IOB
|
||||
CMDENABLED=/IOB/enabled/
|
||||
CMDADV1=?valore=
|
||||
CMDREBO=/sendReboot.aspx?idxMacchina=
|
||||
|
||||
[MEMORY]
|
||||
ADDR_READ=DB29.DBB0
|
||||
ADDR_WRITE=DB30.DBB0
|
||||
SIZE_READ=10
|
||||
SIZE_WRITE=40
|
||||
|
||||
|
||||
[BLINK]
|
||||
;MAX_COUNTER_BLINK = 30
|
||||
MAX_COUNTER_BLINK = 15
|
||||
;bit0 = 0
|
||||
;bit1 = 0
|
||||
;bit2 = 1
|
||||
;bit3 = 1
|
||||
;bit4 = 1
|
||||
;bit5 = 0
|
||||
;bit6 = 0
|
||||
;bit7 = 0
|
||||
BLINK_FILT=0
|
||||
;BLINK_FILT=28
|
||||
|
||||
[OPTPAR]
|
||||
;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
|
||||
PZCOUNT_MODE=STD.DB29.DBDW6
|
||||
;PZSCRAP_MODE=STD.DB700.DBDW32
|
||||
DISABLE_PZCOUNT=TRUE
|
||||
ENABLE_DYN_DATA=TRUE
|
||||
FORCE_DYN_DATA=TRUE
|
||||
|
||||
; conf parametri memoria READ/WRITE
|
||||
PARAM_CONF=VL26.json
|
||||
|
||||
[BRANCH]
|
||||
NAME=master
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"mMapWrite": {
|
||||
"setPzComm": {
|
||||
"name": "setProg",
|
||||
"description": "Programma",
|
||||
"tipoMem": "String",
|
||||
"memAddr": "DB30.DBB30",
|
||||
"index": 30,
|
||||
"size": 10
|
||||
},
|
||||
"setComm": {
|
||||
"name": "setComm",
|
||||
"description": "Commessa",
|
||||
"tipoMem": "String",
|
||||
"memAddr": "DB30.DBB20",
|
||||
"index": 20,
|
||||
"size": 10
|
||||
},
|
||||
"setArt": {
|
||||
"name": "setArt",
|
||||
"description": "Articolo",
|
||||
"tipoMem": "String",
|
||||
"memAddr": "DB30.DBB0",
|
||||
"index": 0,
|
||||
"size": 20
|
||||
}
|
||||
},
|
||||
"mMapRead": {
|
||||
"ContatoreAssoluto": {
|
||||
"name": "ContatoreAssoluto",
|
||||
"description": "Contapezzi ASSOLUTO",
|
||||
"memAddr": "DB29.DBB2",
|
||||
"tipoMem": "DInt",
|
||||
"index": 2,
|
||||
"size": 4,
|
||||
"func": "MAX",
|
||||
"period": 60,
|
||||
"factor": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -151,6 +151,7 @@
|
||||
<Compile Include="IobMTC.cs" />
|
||||
<Compile Include="IobOmron.cs" />
|
||||
<Compile Include="IobSiemensAt2001.cs" />
|
||||
<Compile Include="IobSiemensSimec.cs" />
|
||||
<Compile Include="IobSiemensLasco.cs" />
|
||||
<Compile Include="IobSiemensPressoilCei.cs" />
|
||||
<Compile Include="IobSiemensIngenia.cs" />
|
||||
@@ -287,6 +288,12 @@
|
||||
<None Include="DATA\CONF\VL20.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="DATA\CONF\VL26.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="DATA\CONF\VL26.ini">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Include="DATA\CONF\VL25.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
|
||||
@@ -0,0 +1,244 @@
|
||||
using MapoSDK;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace IOB_WIN
|
||||
{
|
||||
/// <summary>
|
||||
/// Controllo Siemens specifico x impianti Simec
|
||||
/// </summary>
|
||||
public class IobSiemensSimec : IobSiemens
|
||||
{
|
||||
/* --------------------------------------------------------------------------------
|
||||
* Controlli SIEMENS SIMEC
|
||||
* - basasto su SIEMENS
|
||||
* - S7 vers 1500
|
||||
*
|
||||
* STRUTTURA MEMORIA DB29: (lettura) 10byte,
|
||||
* G:\Drive condivisi\30_Clienti\Valvital\Comunicazione PLC\26 - SIMEC Taglio\
|
||||
*
|
||||
* Si intende lettura con DB29.DBxx, scrittura DB30.DBxx
|
||||
*
|
||||
* DB30 blocco dati scritto dal MES
|
||||
* CodArt Array[0..19] of Char DBB0..19
|
||||
* CodComm Array[0..9] of Char DBB20..29
|
||||
* CodProgr Array[0..9] of Char DBB30..39
|
||||
*
|
||||
* DB29 blocco dati letto dal MES Byte Bit
|
||||
* CicloOn Bool 0 0
|
||||
* MacchOn Bool 0 1
|
||||
* ManualeOn Bool 0 2
|
||||
* AllarmiOn Bool 0 3
|
||||
* EmergenzaOn Bool 0 4
|
||||
* EmergenzaPremuta Bool 0 5
|
||||
* b06 Bool 0 6
|
||||
* b07 Bool 0 7
|
||||
* b10 Bool 1 0
|
||||
* b11 Bool 1 1
|
||||
* b12 Bool 1 2
|
||||
* b13 Bool 1 3
|
||||
* b14 Bool 1 4
|
||||
* b15 Bool 1 5
|
||||
* b16 Bool 1 6
|
||||
* b17 Bool 1 7
|
||||
* ContapezziAssoluto DInt 2
|
||||
* Comtapezzi parziale DInt 6
|
||||
* -------------------------------------------------------------------------------- */
|
||||
|
||||
/// <summary>
|
||||
/// Classe base con i metodi x Siemens
|
||||
/// </summary>
|
||||
/// <param name="caller"></param>
|
||||
/// <param name="adpConf"></param>
|
||||
public IobSiemensSimec(AdapterForm caller, IobConfiguration IOBConf) : base(caller, IOBConf)
|
||||
{
|
||||
lgInfo("NEW IOB SIEMENS versione SIMEC");
|
||||
}
|
||||
|
||||
#region Metodi specifici (da verificare/completare in implementazione)
|
||||
|
||||
/// <summary>
|
||||
/// Processo i task richiesti e li elimino dalla coda 1:1
|
||||
/// </summary>
|
||||
/// <param name="task2exe"></param>
|
||||
public override Dictionary<string, string> executeTasks(Dictionary<string, string> task2exe)
|
||||
{
|
||||
// Verificare il protocollo: dovrebeb togliere SOLO i task eseguiti...
|
||||
Dictionary<string, string> taskDone = new Dictionary<string, string>();
|
||||
bool taskOk = false;
|
||||
string taskVal = "";
|
||||
// inizio con 1 byte di default
|
||||
byte[] MemBlock = new byte[1];
|
||||
string memAddrWrite = "";
|
||||
if (task2exe != null)
|
||||
{
|
||||
// cerco task specifici
|
||||
foreach (var item in task2exe)
|
||||
{
|
||||
taskOk = false;
|
||||
taskVal = "";
|
||||
// converto richiesta in enum...
|
||||
taskType tName = taskType.nihil;
|
||||
Enum.TryParse(item.Key, out tName);
|
||||
// controllo sulla KEY
|
||||
switch (tName)
|
||||
{
|
||||
case taskType.nihil:
|
||||
case taskType.fixStopSetup:
|
||||
case taskType.forceResetPzCount:
|
||||
case taskType.forceSetPzCount:
|
||||
case taskType.setProg:
|
||||
case taskType.sendWatchDogMes2Plc:
|
||||
case taskType.setPzComm:
|
||||
taskVal = $"taskReq: {tName} | key: {item.Key} | val: {item.Value} | SKIPPED | NO EXEC";
|
||||
break;
|
||||
case taskType.setArt:
|
||||
case taskType.setComm:
|
||||
saveProdData(item);
|
||||
int byteSize = 0;
|
||||
// recupero dati da memMap... altrimenti NULLA
|
||||
if (memMap.mMapWrite.ContainsKey(item.Key))
|
||||
{
|
||||
dataConf currMem = memMap.mMapWrite[item.Key];
|
||||
byteSize = currMem.size;
|
||||
memAddrWrite = currMem.memAddr;
|
||||
MemBlock = new byte[byteSize];
|
||||
if (currMem.tipoMem == plcDataType.String)
|
||||
{
|
||||
saveStringOnMemBlock(ref MemBlock, item.Key, 0, byteSize);
|
||||
}
|
||||
else if (currMem.tipoMem == plcDataType.DInt)
|
||||
{
|
||||
int valDInt = 0;
|
||||
int.TryParse(item.Value, out valDInt);
|
||||
MemBlock = S7.Net.Types.DInt.ToByteArray(valDInt);
|
||||
}
|
||||
else if (currMem.tipoMem == plcDataType.Int)
|
||||
{
|
||||
short valDInt = 0;
|
||||
short.TryParse(item.Value, out valDInt);
|
||||
MemBlock = S7.Net.Types.Int.ToByteArray(valDInt);
|
||||
}
|
||||
}
|
||||
taskVal = item.Value;
|
||||
break;
|
||||
case taskType.startSetup:
|
||||
//// processo scrittura BIT su DB150.DBX4.0
|
||||
//MemBlock = new byte[1];
|
||||
//MemBlock[0] = (byte)1;
|
||||
//memAddrWrite = "DB150.DBB4";
|
||||
break;
|
||||
case taskType.stopSetup:
|
||||
//// processo scrittura BIT su DB150.DBX4.0
|
||||
//MemBlock = new byte[1];
|
||||
//MemBlock[0] = (byte)0;
|
||||
//memAddrWrite = "DB150.DBB4";
|
||||
break;
|
||||
case taskType.setParameter:
|
||||
// richiedo da URL i parametri WRITE da popolare
|
||||
lgInfo("Chiamata processMemWriteRequests");
|
||||
taskVal = processMemWriteRequests();
|
||||
// se restituiscce "" faccio altra prova...
|
||||
if (string.IsNullOrEmpty(taskVal))
|
||||
{
|
||||
// i parametri me li aspetto come stringa composta paramName|paramvalue
|
||||
if (item.Value.Contains("|"))
|
||||
{
|
||||
string[] paramsJob = item.Value.Split('|');
|
||||
taskVal = $"REQUEST SET PARAMETERS: {paramsJob[0]} --> {paramsJob[1]}";
|
||||
}
|
||||
else
|
||||
{
|
||||
taskVal = $"WRONG REQUEST FOR SET PARAMETERS: {item.Value} doesnt contain pipe for splitting key/value";
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
taskVal = "SKIPPED | NO EXEC";
|
||||
break;
|
||||
}
|
||||
// aggiungo task!
|
||||
taskDone.Add(item.Key, taskVal);
|
||||
if (string.IsNullOrEmpty(memAddrWrite))
|
||||
{
|
||||
// scrivo comunque!
|
||||
taskOk = S7WriteBB(ref MemBlock, memAddrWrite);
|
||||
}
|
||||
if (!taskOk)
|
||||
{
|
||||
lgError($"Errore in S7WriteBB durante executeTasks: {item.Key} | {item.Value}");
|
||||
}
|
||||
}
|
||||
}
|
||||
return taskDone;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua decodifica aree memoria alla bitmap usata x MAPO
|
||||
/// </summary>
|
||||
protected override void decodeToBaseBitmap()
|
||||
{
|
||||
// init a zero...
|
||||
B_input = 0;
|
||||
|
||||
/* -----------------------------------------------------
|
||||
* bitmap MAPO STANDARD
|
||||
* B0: POWER_ON
|
||||
* B1: RUN
|
||||
* B2: pzCount
|
||||
* B3: allarme
|
||||
* B4: manuale
|
||||
*
|
||||
* - BIT di stato
|
||||
* DB29 blocco dati letto dal MES Byte Bit
|
||||
* CicloOn Bool 0 0
|
||||
* MacchOn Bool 0 1
|
||||
* ManualeOn Bool 0 2
|
||||
* AllarmiOn Bool 0 3
|
||||
* EmergenzaOn Bool 0 4
|
||||
* EmergenzaPremuta Bool 0 5
|
||||
* ContapezziAssoluto DInt 2
|
||||
* Comtapezzi parziale DInt 6
|
||||
*
|
||||
----------------------------------------------------- */
|
||||
|
||||
byte mainData = RawInput[0];
|
||||
|
||||
int byteSignals = 0;
|
||||
// bit 0 (poweron) imposto a 1 SE connected...
|
||||
if (currPLC.IsConnected)
|
||||
{
|
||||
byteSignals += (1 << 0);
|
||||
}
|
||||
|
||||
// lavora --> bit0 e bit1: cicloOn AND macchOn
|
||||
if ((mainData & (1 << 0)) != 0 && (mainData & (1 << 1)) != 0)
|
||||
{
|
||||
byteSignals += (1 << 1);
|
||||
}
|
||||
|
||||
// controllo il bit ALARM OR emergenza dello status
|
||||
if ((mainData & (1 << 3)) != 0 || (mainData & (1 << 5)) != 0)
|
||||
{
|
||||
byteSignals += (1 << 3);
|
||||
}
|
||||
|
||||
// check MANUALE ...
|
||||
if ((mainData & (1 << 2)) != 0)
|
||||
{
|
||||
byteSignals += (1 << 4);
|
||||
}
|
||||
|
||||
// salvo!
|
||||
B_input = byteSignals;
|
||||
|
||||
// log opzionale!
|
||||
if (verboseLog)
|
||||
{
|
||||
lgInfo($"Trasformazione dati: RawInput:{RawInput[0]} --> B_input: {B_input}");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Vendored
+1
-1
@@ -9,7 +9,7 @@ pipeline {
|
||||
steps {
|
||||
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
|
||||
script {
|
||||
withEnv(['NEXT_BUILD_NUMBER=697']) {
|
||||
withEnv(['NEXT_BUILD_NUMBER=698']) {
|
||||
// env.versionNumber = VersionNumber(versionNumberString : '3.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
|
||||
env.versionNumber = VersionNumber(versionNumberString : '3.0.${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