Variabili di sistema¶
Con l’ambiente di sviluppo LogicLab vengono pubblicate variabili di sistema che possono essere referenziate nel programma per accedere ad informazioni sul sistema. Le variabili sono visualizzate da LogicLab nella finestra delle librerie.
Se la finestra non è visualizzata, occorre abilitarne la visualizzazione dalla voce di menù Wiew → Tool windows → Library. Attivando il Tab Target variables verrà visualizzato un elenco con tutte le variabili pubblicate suddivise in cartelle. Un doppio click del mouse sulla cartella System variables si aprirà la cartella visualizzando tutte le variabili pubblicate (Vedi foto a destra).
![]() |
![]() |
Agendo con il tasto destro del mouse su ogni singola variabile è possibile visualizzarne la finestra delle proprietà in cui è indicato il tipo e l’indirizzo di allocazione, cosi come nella figura a lato.
Variabili sola lettura (System variables)¶
Nella DB 0 sono allocate variabili di sola lettura che ritornano informazioni sul sistema, il programma utente può utilizzare le variabili ma non può modificarne il valore.
Attenzione da programma utente per accedere alla variabile non utilizzare l’indirizzo ma fare sempre riferimento al nome così come riportato nella cartella System variables.
Indirizzo | Name | Type | Description |
%MX0.0 | SysClock100 | BOOL | Clock lampeggiante con periodo di 200 mS (il valore cambia ogni 100mS). |
%MX0.1 | SysClock1000 | BOOL | Clock lampeggiante con periodo di 2 S (il valore cambia ogni secondo). |
%MX0.2 | SysBackupEnd | BOOL | Attiva per un loop di programma al termine di un ciclo di backup dati. |
%MX0.3 | SysRestoreFault | BOOL | Si attiva alla accensione se i dati di backup sono in errore. Tutti i dati sono azzerati. |
%MX0.4 | SysPLCInRun | BOOL | Sempre attiva. |
%MX0.5 | SysFirstLoop | BOOL | Attiva per un loop alla prima esecuzione di ogni task PLC. |
%MX0.6 | SysLLabCn | BOOL | Attiva se l’ambiente di sviluppo LogicLab è connesso al sistema. |
%MX0.7 | SysIsDST | BOOL | Attiva se si è nel periodo di Daylight Saving Time |
%MX0.8 | SysDTSet | BOOL | Attiva per un loop esecuzione task background su modifica real time clock da sistema operativo. |
%MX0.9 | SysUVSet | BOOL | Attiva per un loop esecuzione task background su modifica impostazioni utente da sistema operativo, `vedi esempio <#ChpUs erInfosSettings >`__. |
%MX0.10 | SysAlwaysOff | BOOL | Variabile mai attiva |
%MX0.11 | SysAlwaysOn | BOOL | Variabile sempre attiva |
%MX0.12 | SysFFBUspt | BOOL | Il programma esegue almeno una funzione o blocco funzione non supportato |
%MX0.13 | SysFFBPrt | BOOL | Il programma esegue almeno una funzione o blocco funzione protetto |
%MX0.14 | SysCfgChanged | BOOL | La configurazione del sistema è cambiata |
%MB0.64 | SysActTaskID | USINT | Numero di identificazione della task in corso, vedi tipi definiti. |
%MB0.65 | SysErActTaskID | USINT | Numero di identificazione della task in cui l’errore si è verificato, vedi tipi definiti. |
%MW0.128 | SysModulesReady | UINT | Ogni bit della variabile se attivo indica la presenza del modulo connesso al bus SlimLine. |
%MW0.130 | SysApllVMajor | UINT | Valore Major della versione dell’applicazio ne. |
%MW0.132 | SysApllVMinor | UINT | Valore Minor della versione dell’applicazio ne. |
%MD0.256 | SysTBackLpTm | UDINT | Tempo di loop attuale della task di background PLC (uS). |
%MD0.260 | SysTBackLpTmMin | UDINT | Tempo di loop minimo della task di background PLC (uS). E” possibile inizializzarne il valore settando il bit SysTimeInit. |
%MD0.264 | SysTBackLpTmMax | UDINT | Tempo di loop massimo della task di background PLC (uS). E” possibile inizializzarne il valore settando il bit SysTimeInit. |
%MD0.268 | SysTBootExTm | UDINT | Tempo di esecuzione attuale della task di boot PLC (uS). |
%MD0.272 | SysTBootExTmMin | UDINT | Tempo di esecuzione minimo della task di boot PLC (uS). E” possibile inizializzarne il valore settando il bit SysTimeInit. |
%MD0.276 | SysTBootExTmMax | UDINT | Tempo di esecuzione massimo della task di boot PLC (uS). E” possibile inizializzarne il valore settando il bit SysTimeInit. |
%MD0.280 | SysTFastExTm | UDINT | Tempo di esecuzione attuale della task fast PLC (uS). |
%MD0.284 | SysTFastExTmMin | UDINT | Tempo di esecuzione minimo della task fast PLC (uS). E” possibile inizializzarne il valore settando il bit SysTimeInit. |
%MD0.288 | SysTFastExTmMax | UDINT | Tempo di esecuzione massimo della task fast PLC (uS). E” possibile inizializzarne il valore settando il bit SysTimeInit. |
%MD0.292 | SysTSlowExTm | UDINT | Tempo di esecuzione attuale della task slow (uS). |
%MD0.296 | SysTSlowExTmMin | UDINT | Tempo di esecuzione minimo della task slow (uS). E” possibile inizializzarne il valore settando il bit SysTimeInit. |
%MD0.300 | SysTSlowExTmMax | UDINT | Tempo di esecuzione massimo della task slow (uS). E” possibile inizializzarne il valore settando il bit SysTimeInit. |
%MD0.304 | SysTBackExTm | UDINT | Tempo di esecuzione attuale della task background (uS). |
%MD0.308 | SysTBackExTmMin | UDINT | Tempo di esecuzione minimo della task background (uS). E” possibile inizializzarne il valore settando il bit SysTimeInit. |
%MD0.312 | SysTBackExTmMax | UDINT | Tempo di esecuzione massimo della task background (uS). E” possibile inizializzarne il valore settando il bit SysTimeInit. |
%MD0.316 | SysStartTime | UDINT | Data ed ora di start esecuzione programma PLC (Epoch time). |
%MD0.320 | SysTime | UDINT | Tempo di sistema si incrementa ad ogni 1 mS raggiunto il valore massimo si reinizializza. |
%MD0.324 | SysTFastLpTm | UDINT | Tempo di loop della task fast PLC. Il tempo è impostabile tramite la funzione SysSetTaskLpTi me. |
%MD0.328 | SysTSlowLpTm | UDINT | Tempo di loop della task slow PLC. Il tempo è impostabile tramite la funzione SysSetTaskLpTi me. |
%MD0.332 | SysApplID | UDINT | ID applicazione, è un numero univoco che identifica il programma utente attualmente in esecuzione sul sistema. |
%MD0.336 | SysMfcCode | UDINT | Codice manufacturer, questo codice và richiesto con il prodotto. Se non definito è ritornato il codice 0. |
%MD0.340 | SysCustomerCode | UDINT | Codice customer, questo codice può essere impostato dall’utente che ha accesso come amministratore al sistema. Se non definito è ritornato il codice 0. |
%MD0.344 | SysErCode | UDINT | Numero dell’errore di esecuzione programma. |
%MD0.348 | SysErTime | UDINT | Data ed ora in cui l’errore è avvenuto (Epoch time). |
%MD0.352 | SysSerialNr | UDINT | Numero di matricola del prodotto. |
%MD0.356 | SysApllBTime | UDINT | Build time (Epoch time ) della dell’applicazio ne. |
%MD0.360 | SysUniqueID | UDINT | ID univoco prodotto, vedi note . |
%MD0.364 | SysPLCUpTime | UDINT | Tempo da avvio PLC (S) |
%MB0.512 | SysCode | STRING[10] | Codice del prodotto. |
%MB0.523 | SysFVersion | STRING[10] | Versione firmware del prodotto. |
%MB0.534 | SysErInfos | STRING[32] | Informazioni aggiuntive sull’errore. |
%MB0.567 | SysApllName | STRING[10] | Nome dell’applicazio ne. |
%MB0.578 | SysUSetA | STRING[16] | Valore impostato da utente in variabile Set(A), `vedi esempio <#ChpUs erInfosSettings >`__. |
%MB0.595 | SysUSetB | STRING[16] | Valore impostato da utente in variabile Set(B), `vedi esempio <#ChpUs erInfosSettings >`__. |
%MB0.612 | SysUSetC | STRING[16] | Valore impostato da utente in variabile Set(C), `vedi esempio <#ChpUs erInfosSettings >`__. |
%MB0.629 | SysUSetD | STRING[16] | Valore impostato da utente in variabile Set(D), `vedi esempio <#ChpUs erInfosSettings >`__. |
Variabili lettura e scrittura (System variables)¶
Nella DB 1 sono allocate variabili che permettono di modificare il funzionamento del sistema, il programma utente può utilizzare le variabili e modificarne il valore.
Attenzione da programma utente per accedere alla variabile non utilizzare l’indirizzo ma fare sempre riferimento al nome così come riportato nella cartella System variables.
Indirizzo | Name | Type | Description |
%MX1.0 | SysTimeInit | BOOL | Attivata da programma utente o da debug permette di inizializzare il calcolo dei tempi di loop e di esecuzione delle task PLC. La variabile viene automaticamente resettata dal sistema. |
%MD1.256 | SysDateTime | UDINT | Data ed ora locale di sistema (Epoch time), tiene conto sia del fuso orario che dell’ora legale definiti. Modificando nel programma utente il valore verrà automaticamente aggiornato anche il real time clock. |
%MD1.260 | SysLastError | UDINT | Last error, ritorna il valore dell’ultimo errore verificatosi nella esecuzione di una funzione o di un blocco funzione, tabella ID oggetti. |
%MD1.264 | SysUTCDateTime | UDINT | Data ed ora UTC di sistema (Epoch time). Modificando nel programma utente il valore verrà automaticamente aggiornato anche il real time clock. |
%MB1.512 | SysUInfoA | STRING[16] | Valore ritornato ad utente in variabile Info(A), `vedi esempio <#ChpUs erInfosSettings >`__. |
%MB1.529 | SysUInfoB | STRING[16] | Valore ritornato ad utente in variabile Info(B), `vedi esempio <#ChpUs erInfosSettings >`__. |
%MB1.546 | SysUInfoC | STRING[16] | Valore ritornato ad utente in variabile Info(C), `vedi esempio <#ChpUs erInfosSettings >`__. |
%MB1.563 | SysUInfoD | STRING[16] | Valore ritornato ad utente in variabile Info(D), `vedi esempio <#ChpUs erInfosSettings >`__. |
ID univoco prodotto¶
Ogni prodotto ha un ID univoco che è ritornato nella variabile UniqueID, il valore è ottenuto in base al tipo di prodotto ed al suo numero di matricola. La formula per il calcolo dell’UniqueID è la seguente:
UniqueID=(131072*PType)+Serial number
Ad esempio un MPS050A030 con matricola 125 avrà UniqueID=1310845. Ecco la tabella Ptype.
PType | Code | Description |
---|---|---|
0000 | MPS046A000 | SlimLine (Lite version) |
0001 | MPS046A100 | SlimLine (Rs485 version) |
0002 | MPS046A200 | SlimLine (CAN version) |
0003 | MPS048A100 | SlimLine ARM9 RS485 (Linux Open) |
0004 | MPS048A200 | SlimLine ARM9 CAN (Linux Open) |
0005 | MPS049A100 | SlimLine ARM9 RS485 (Linux PLC) |
0006 | MPS049A200 | SlimLine ARM9 CAN (Linux PLC) |
0007 | MPS050A000 | SlimLine Low Cost ARM7 (Vers. Lite) |
0008 | MPS050A010 | SlimLine Low Cost ARM7 (Vers. Base) |
0009 | MPS050A020 | SlimLine Low Cost ARM7 (Vers. Full RS485) |
0010 | MPS050A030 | SlimLine Low Cost ARM7 (Vers. Full CAN) |
0011 | PCB123B000 | SlimLine OEM (Lite version) |
0012 | PCB123B100 | SlimLine OEM (Rs485 version) |
0013 | PCB123B200 | SlimLine OEM (CAN version) |
0014 | MPS046B000 | SlimLine (Lite version) |
0015 | MPS046B100 | SlimLine (Rs485 version) |
0016 | MPS046B200 | SlimLine (CAN version) |
0017 | PCB123D000 | SlimLine OEM (Lite version) |
0018 | PCB123D100 | SlimLine OEM (Rs485 version) |
0019 | PCB123D200 | SlimLine OEM (CAN version) |
0020 | PCB131A000 | SlimLine ARM7 Compact Relay CPU Board (Lite vers.) |
0021 | PCB131A010 | SlimLine ARM7 Compact Relay CPU Board (Base vers.) |
0022 | PCB131A020 | SlimLine ARM7 Compact Relay CPU Board (Full RS485 v.) |
0023 | PCB131A030 | SlimLine ARM7 Compact Relay CPU Board (Full CAN v.) |
0024 | MPS051A000 | Netlog III Base Relay |
0025 | MPS051A001 | Netlog III Full Relay (RS485 version) |
0026 | MPS051A011 | Netlog III Full Relay and Display (RS485 version) |
0027 | MPS051A002 | Netlog III Full Relay (CAN version) |
0028 | MPS051A012 | Netlog III Full Relay and Display (CAN version) |
0029 | MPS051A300 | Netlog III Base Static |
0030 | MPS051A301 | Netlog III Full Static (RS485 version) |
0031 | MPS051A311 | Netlog III Full Static and Display (RS485 version) |
0032 | MPS051A302 | Netlog III Full Static (CAN version) |
0033 | MPS051A312 | Netlog III Full Static and Display (CAN version) |
0034 | PCB132B100 | Netlog III ARM7 CPU Board |
0035 | OIF023A000 | SlimLine HMI over I2C |
0036 | MPS052A100 | SlimLine CDS CPU Module (Full RS485) |
0037 | MPS052A200 | SlimLine CDS CPU Module (Full CAN) |
0038 | MPS053A110 | SlimLine ARM7 Compact Relay CPU (Ethernet v.) |
0039 | MPS053A310 | SlimLine ARM7 Compact Static CPU (Ethernet v.) |
0040 | PCB135A110 | limLine ARM7 Compact Relay Board (Ethernet v.) |
0041 | PCB135A310 | SlimLine ARM7 Compact Static Board (Ethernet v.) |
0042 | MPS050A310 | SlimLine ARM7 Compact Static CPU (Base vers.) |
0043 | MPS050A320 | SlimLine ARM7 Compact Static CPU (Full RS485 v.) |
0044 | MPS050A330 | SlimLine ARM7 Compact Static CPU (Full CAN v.) |
0045 | PCB131A300 | SlimLine ARM7 Compact Static CPU Board (Lite vers.) |
0046 | PCB131A310 | SlimLine ARM7 Compact Static CPU Board (Base vers.) |
0047 | PCB131A320 | SlimLine ARM7 Compact Static CPU Board (Full RS485 v.) |
0048 | PCB131A330 | SlimLine ARM7 Compact Static CPU Board (Full CAN v.) |
0049 | OIF023A100 | SlimLine HMI over serial |
0050 | MPS050A300 | SlimLine ARM7 Compact Static CPU (Lite vers.) |
0051 | MPS053B110 | SlimLine ARM7 Compact Relay CPU (Ethernet v.) |
0052 | MPS053B310 | SlimLine ARM7 Compact Static CPU (Ethernet v.) |
0053 | MPS053B410 | SlimLine ARM7 Compact SSR ZC CPU (Ethernet v.) |
0054 | PCB135B110 | SlimLine ARM7 Compact Relay Board (Ethernet v.) |
0055 | PCB135B310 | SlimLine ARM7 Compact Static Board (Ethernet v.) |
0056 | PCB135B410 | SlimLine ARM7 Compact SSR ZC Board (Ethernet v.) |
0057 | PCB131B000 | SlimLine ARM7 Compact Relay CPU Board (Lite vers.) |
0058 | PCB131B010 | SlimLine ARM7 Compact Relay CPU Board (Base vers.) |
0059 | PCB131B020 | SlimLine ARM7 Compact Relay CPU Board (Full RS485 v.) |
0060 | PCB131B030 | SlimLine ARM7 Compact Relay CPU Board (Full CAN v.) |
0061 | PCB131B300 | SlimLine ARM7 Compact Static CPU Board (Lite vers.) |
0062 | PCB131B310 | SlimLine ARM7 Compact Static CPU Board (Base vers.) |
0063 | PCB131B320 | SlimLine ARM7 Compact Static CPU Board (Full RS485 v.) |
0064 | PCB131B330 | SlimLine ARM7 Compact Static CPU Board (Full CAN v.) |
0065 | PCB131B400 | SlimLine ARM7 Compact SSR ZC CPU Board (Lite vers.) |
0066 | PCB131B410 | SlimLine ARM7 Compact SSR ZC CPU Board (Base vers.) |
0067 | PCB131B420 | SlimLine ARM7 Compact SSR ZC CPU Board (Full RS485 v.) |
0068 | PCB131B430 | SlimLine ARM7 Compact SSR ZC CPU Board (Full CAN v.) |
0069 | MPS050B000 | SlimLine ARM7 Compact Relay CPU (Lite vers.) |
0070 | MPS050B010 | SlimLine ARM7 Compact Relay CPU (Base vers.) |
0071 | MPS050B020 | SlimLine ARM7 Compact Relay CPU (Full RS485 v.) |
0072 | MPS050B030 | SlimLine ARM7 Compact Relay CPU (Full CAN v.) |
0073 | MPS050B300 | SlimLine ARM7 Compact Static CPU (Lite vers.) |
0074 | MPS050B310 | SlimLine ARM7 Compact Static CPU (Base vers.) |
0075 | MPS050B320 | SlimLine ARM7 Compact Static CPU (Full RS485 v.) |
0076 | MPS050B330 | SlimLine ARM7 Compact Static CPU (Full CAN v.) |
0077 | MPS050B400 | SlimLine ARM7 Compact SSR ZC CPU (Lite vers.) |
0078 | MPS050B410 | SlimLine ARM7 Compact SSR ZC CPU (Base vers.) |
0079 | MPS050B420 | SlimLine ARM7 Compact SSR ZC CPU (Full RS485 v.) |
0080 | MPS050B430 | SlimLine ARM7 Compact SSR ZC CPU (Full CAN v.) |
0081 | MPS054A000 | SlimLine Cortex M7 CPU (Lite) |
0082 | MPS054A100 | SlimLine Cortex M7 CPU (RS485) |
0083 | MPS054A110 | SlimLine Cortex M7 CPU (Extended RS485) |
0084 | MPS054A200 | SlimLine Cortex M7 CPU (CAN) |
0085 | MPS054A210 | SlimLine Cortex M7 CPU (Extended CAN) |
0086 | PCB137B000 | SlimLine Cortex M7 CPU Board (Lite) |
0087 | PCB137B100 | SlimLine Cortex M7 CPU Board (RS485) |
0088 | PCB137B110 | SlimLine Cortex M7 CPU Board (Extended RS485) |
0089 | PCB137B200 | SlimLine Cortex M7 CPU Board (CAN) |
0090 | PCB137B210 | SlimLine Cortex M7 CPU Board (Extended CAN) |