software:qview:qview_6:qview60

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
Prossima revisioneEntrambe le parti successive la revisione
software:qview:qview_6:qview60 [2015/04/20 11:11] – [3.1. Dichiarazioni] qem202software:qview:qview_6:qview60 [2015/04/20 14:59] – [19. Appendice D: Parole chiave] qem207
Linea 279: Linea 279:
  
 ==== - Single ==== ==== - Single ====
-Il dato di tipo SINGLE è utilizzato per la definizione di variabili che hanno un range di valori a virgola mobile compreso tra -3.4 x 10<sup>38</sup> e +3.4 x 10<sup>38</sup>; ogni variabile occupa quattro byte di memoria.\\+Il dato di tipo SINGLE è un valore a virgola mobile come definito dalla specifica //IEEE 754 single precision//.\\
 La sintassi per la definizione di una variabile SINGLE è la seguente:\\ La sintassi per la definizione di una variabile SINGLE è la seguente:\\
 <code QCL> <code QCL>
Linea 285: Linea 285:
 </code> </code>
  
-La precisione massima delle variabili SINGLE è di sette cifre (contando le cifre prima e dopo la +==== - Double ==== 
-virgola)Esempio:\\ +Il dato di tipo DOUBLE è un valore a virgola mobile come definito dalla specifica //IEEE 754 double precision//.\\ 
- 1,234567 x 10<sup>3</sup> Precisione del millesimo; incremento minimo = 1 millesimo.\\ +La sintassi per la definizione di una variabile DOUBLE è la seguente:\\ 
- 1,234567 x 10<sup>4</supPrecisione del centesimoincremento minimo = 1 centesimo.\\ +<code QCL> 
- 1,234567 x 10<sup>9</supPrecisione delle centinaia; incremento minimo = 100.+<variable name  [OUT/IN/INOUT] [;comment] 
 +</code> 
  
 ==== - Tabella riassuntiva dei tipi di variabili utilizzabili ==== ==== - Tabella riassuntiva dei tipi di variabili utilizzabili ====
 ^Assegnando ad una variabile un valore esterno al range consentito si verifica la condizione di overflow.^ ^Assegnando ad una variabile un valore esterno al range consentito si verifica la condizione di overflow.^
  
-|Tipo dato|Codice|Spazio occupato memoria (Bit)|Intervallo| +| Tipo dato  | Codice  | Spazio occupato memoria (Bit)  | Intervallo                                    
-|FLAG|F|1|0 ÷ 1| +| FLAG       | F       | 1                              | 0 ÷ 1                                         
-|BYTE|B|8|-128 ÷ 127| +| BYTE       | B       | 8                              | -128 ÷ 127                                    
-|WORD|W|16|-32768 ÷ 32767| +| WORD       | W       | 16                             | -32768 ÷ 32767                                
-|LONG|L|32|-2147483648 ÷ 2147483647| +| LONG       | L       | 32                             | -2147483648 ÷ 2147483647                      
-|SINGLE|S|32|-3.4 x 10<sup>38</sup>÷+3.4 x 10<sup>38</sup>|+| SINGLE     | S       | 32                             Vedi specifica //IEEE 754 single precision//  | 
 +| DOUBLE     | D       | 64                             | Vedi specifica //IEEE 754 double precision// 
  
 ===== - Gli Identificatori ===== ===== - Gli Identificatori =====
Linea 1152: Linea 1156:
   ENDSWITCH   ENDSWITCH
 </code> </code>
- 
 ==== - WAIT ==== ==== - WAIT ====
 Attende il verificarsi di una condizione o di un evento. L'istruzione WAIT è una istruzione molto Attende il verificarsi di una condizione o di un evento. L'istruzione WAIT è una istruzione molto
Linea 1206: Linea 1209:
 incontrata una istruzione di chiamata a subroutine (CALL). La subroutine viene identificata da incontrata una istruzione di chiamata a subroutine (CALL). La subroutine viene identificata da
 un nome preceduto dalla parola chiave SUB e deve terminare con la parola chiave ENDSUB. Vedi un nome preceduto dalla parola chiave SUB e deve terminare con la parola chiave ENDSUB. Vedi
-anche istruzione CALL.+anche istruzione CALL.\\ Per interrompere una subroutine prima del termine della stessa inserire la parola chiave RETURN.
  
 ==== - CALL ==== ==== - CALL ====
Linea 1410: Linea 1413:
 </code> </code>
  
 +==== - Shift logico a sinistra ====
 +Esegue una operazione di shift a sinistra di //n// bit sull'argomento.\\ {{:software:qview:qview_6:qview60:shll.png?nolink|}}\\ La sintassi è:\\
 +<code QCL>
 +  SHLL(<variable>,<bits>)
 +</code>
 +Esempio:
 +<code QCL>
 +  glValue = SHLL(glValue, 1)
 +</code>
 +
 +==== - Shift logico a destra ====
 +Esegue una operazione di shift a destra di //n// bit sull'argomento.\\ {{:software:qview:qview_6:qview60:shlr.png?nolink|}}\\ La sintassi è:\\
 +<code QCL>
 +  SHLR(<variable>,<bits>)
 +</code>
 +Esempio:
 +<code QCL>
 +  glValue = SHLR(glValue, 1)
 +</code>
 +
 +==== - Moltiplicazione e divisione ====
 +Esegue una moltiplicazione di valori interi a 32 bit con risultato a 64 bit e una successiva divisione per valore intero a 32 bit. Il risultato è un valore di 32 bit.\\ **N.B.** Se viene eseguita una divisione per zero, la CPU andrà in stato "Division by zero error".\\ La sintassi è:\\
 +<code QCL>
 +  MULDIV(<factor1>,<factor2>,<divisor>)
 +</code>
 +Esempio: glValue = a * b / c
 +<code QCL>
 +  glValue = MULDIV(a, b, c)
 +</code>
 +
 +==== - Resto di moltiplicazione e divisione ====
 +Esegue una moltiplicazione di valori interi a 32 bit con risultato a 64 bit e una successiva divisione per valore intero a 32 bit. Il risultato è il resto della divisione.\\ **N.B.** Se viene eseguita una divisione per zero, la CPU andrà in stato "Division by zero error".\\ La sintassi è:\\
 +<code QCL>
 +  RMULDIV(<factor1>,<factor2>,<divisor>)
 +</code>
 +Esempio: glValue = a * b % c
 +<code QCL>
 +  glValue = RMULDIV(a, b, c)
 +</code>
 ===== - Funzioni trigonometriche ===== ===== - Funzioni trigonometriche =====
  
Linea 3446: Linea 3488:
  
 In questo capitolo vengono riassunte le parole chiave del QCL. In questo capitolo vengono riassunte le parole chiave del QCL.
-^ABS|valore assoluto| +^ ABS          | valore assoluto                                     
-^ACOS|arcocoseno| +^ ACOS         | arcocoseno                                          
-^AND|AND logico| +^ AND          | AND logico                                          
-^ANDB|And logico bit a bit| +^ ANDB         | And logico bit a bit                                
-^APPLICATION|Radice implicita di ogni simbolo utilizzato| +^ APPLICATION  | Radice implicita di ogni simbolo utilizzato         
-^ARRGBL|sezione file di configurazione| +^ ARRGBL       | sezione file di configurazione                      
-^ARRSYS|sezione file di configurazione| +^ ARRSYS       | sezione file di configurazione                      
-^ASIN|arcoseno| +^ ASIN         | arcoseno                                            
-^ATAN|arcotangente| +^ ATAN         | arcotangente                                        
-^B|byte| +^ B            | byte                                                
-^BEGIN|sezione codice operativo nella unit| +^ BEGIN        | sezione codice operativo nella unit                 
-^BREAK|break| +^ BREAK        | break                                               
-^BUS|sezione file di configurazione| +^ BUS          | sezione file di configurazione                      
-^CALL|chiamata subroutine| +^ CALL         | chiamata subroutine                                 
-^CASE|istruzione SWITCH-CASE| +^ CASE         | istruzione SWITCH-CASE                              
-^CONST|sezione file di configurazione| +^ CONST        | sezione file di configurazione                      
-^COS|coseno| +^ COS          | coseno                                              
-^COT|cotangente| +^ COT          | cotangente                                          | 
-^DATAGROUP|sezione file di configurazione| +^ D            | double                                              
-^DATAPROGRAM|sezione file di configurazione| +^ DATAGROUP    | sezione file di configurazione                      
-^DEVGROUP|inizio raggruppamento device| +^ DATAPROGRAM  | sezione file di configurazione                      
-^ELSE|"altrimenti" nell'istruzione IF| +^ DEVGROUP     | inizio raggruppamento device                        
-^END|fine task| +^ ELSE         | "altrimenti" nell'istruzione IF                     
-^ENDDEVGROUP|fine raggruppamento device| +^ END          | fine task                                           
-^ENDIF|fine istruzione IF| +^ ENDDEVGROUP  | fine raggruppamento device                          
-^ENDSUB|fine subroutine| +^ ENDIF        | fine istruzione IF                                  
-^ENDSWITCH|fine SWITCH| +^ ENDSUB       | fine subroutine                                     
-^ENDWHILE|fine while| +^ ENDSWITCH    | fine SWITCH                                         
-^EQ|uguale| +^ ENDWHILE     | fine while                                          
-^EXP|esponenziale| +^ EQ           | uguale                                              
-^EXTDEVICE|sezione file di configurazione| +^ EXP          | esponenziale                                        
-^F|flag| +^ EXTDEVICE    | sezione file di configurazione                      
-^FOR|istruzione FOR| +^ F            | flag                                                
-^FPROG|istruzione FPROG| +^ FOR          | istruzione FOR                                      
-^FSTEP|istruzione FSTEP| +^ FPROG        | istruzione FPROG                                    
-^GE|maggiore uguale +^ FSTEP        | istruzione FSTEP                                    
-^GLOBAL|sezione file di configurazione| +^ GE           | maggiore uguale                                     | 
-^GT|maggiore| +^ GLOBAL       | sezione file di configurazione                      
-^IF|istruzione IF| +^ GT           | maggiore                                            
-^INPUT|sezione file di configurazione| +^ IF           | istruzione IF                                       
-^INTDEVICE|sezione file di configurazione| +^ INPUT        | sezione file di configurazione                      
-^JUMP|istruzione JUMP| +^ INTDEVICE    | sezione file di configurazione                      
-^LE|minore o uguale| +^ JUMP         | istruzione JUMP                                     
-^LN|logaritmo naturale| +^ LE           | minore o uguale                                     
-^LT|minore| +^ LN           | logaritmo naturale                                  
-^NEG|negazione (inversione del segno o complemento a 2)| +^ LT           | minore                                              | 
-^NEQ|operatore| +^ MULDIV       | moltiplicazione e divisione                         
-^NEXT|istruzione NEXT| +^ NEG          | negazione (inversione del segno o complemento a 2)  
-^NOP|istruzione NOP| +^ NEQ          | operatore                                           
-^NOT|negazione| +^ NEXT         | istruzione NEXT                                     
-^NOTB|negazione bit a bit (complemento a 1)| +^ NOP          | istruzione NOP                                      
-^OR|OR logico| +^ NOT          | negazione                                           
-^ORB|OR logico bit a bit| +^ NOTB         | negazione bit a bit (complemento a 1)               
-^OUTPUT|sezione file di configurazione| +^ OR           | OR logico                                           
-^POW|potenza| +^ ORB          | OR logico bit a bit                                 
-^REFERENCE|proprietà di "riferimento" di un simbolo| +^ OUTPUT       | sezione file di configurazione                      
-^REFERENCE|inizio dell'elenco dei riferimenti| +^ POW          | potenza                                             
-^RESOUT|reset uscite| +^ REFERENCE    | proprietà di "riferimento" di un simbolo            
-^S|singola precisione+REFERENCES   | inizio dell'elenco dei riferimenti                  
-^SETOUT|setta uscita| +^ RESOUT       | reset uscite                                        | 
-^SIN|seno| +^ RESTART      | istruzione di restart                               | 
-^SQRT|radice quadrata| +^ RESUME       | istruzione di resume                                | 
-^STEP|sezione file di configurazione| +^ RETURN       | istruzione di return (su subroutine)                | 
-^SUB|subroutine| +^ RMULDIV      | resto di moltiplicazione e divisione                
-^SWITCH|istruzione SWITCH-CASE| +^ S            single                                              
-^SYSTEM|sezione file di configurazione+^ SETOUT       | setta uscita                                        | 
-^RESTART|istruzione di restart| +^ SHLL         | shift a sinistra                                    | 
-^RESUME|istruzione di resume| +^ SHLR         | shift a destra                                      
-^SUSPEND|istruzione di sospensione+^ SIN          | seno                                                
-^TAN|tangente| +^ SQRT         | radice quadrata                                     
-^TIMER|sezione file di configurazione| +^ STEP         | sezione file di configurazione                      
-^W|word| +^ SUB          | subroutine                                          | 
-^WAIT|istruzione di wait| +^ SUSPEND      | istruzione di sospensione                           
-^WHILE|istruzione di while| +^ SWITCH       | istruzione SWITCH-CASE                              
-^XORB|OR esclusivo bit a bit|+^ SYSTEM       | sezione file di configurazione                      
 +^ TAN          | tangente                                            
 +^ TIMER        | sezione file di configurazione                      
 +^ W            | word                                                
 +^ WAIT         | istruzione di wait                                  
 +^ WHILE        | istruzione di while                                 
 +^ XORB         | OR esclusivo bit a bit                              | 
  
 Oltre a queste vanno considerate le direttive del precompilatore Oltre a queste vanno considerate le direttive del precompilatore
Linea 3532: Linea 3581:
  
 <html><pagebreak /></html> <html><pagebreak /></html>
- 
 ====== - Appendice E: Tasti caldi ====== ====== - Appendice E: Tasti caldi ======
  
  • Ultima modifica: 2024/03/22 14:06