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ù WiewTool windowsLibrary. 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).

image0 image1

image2

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)