lib:mdl:mdl-s-ipdevice-010

no way to compare when less than two revisions

Differenze

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


lib:mdl:mdl-s-ipdevice-010 [2019/08/29 17:01] (versione attuale) – creata - modifica esterna 127.0.0.1
Linea 1: Linea 1:
 +====I devices====
 +Con il termine device si identifica una categoria di dispositivi software atti a svolgere attività di supporto e di controllo, più o meno complesse, per risolvere le problematiche legate all'automazione dei sistemi.
 +I devices  si distinguono in due tipologie: interni ed esterni. I primi sono quelli il cui codice risiede e viene eseguito dal firmware del prodotto stesso. I secondi sono quelli il cui codice risiede e viene eseguito da schede di specializzazione "intelligenti" munite cioè di propria potenza di calcolo. Il prodotto ivi descritto può gestire solamente devices di tipo interno. La lista dei devices implementati nel firmware dipende dalla **versione** firmware. Lo scopo del presente paragrafo è quello di illustrare la lista e le caratteristiche dei devices disponibili.
  
 +Il firmware versione **10 **implementa i seguenti devices:
 +^Nome device^Tempo di campionamento\\ minimo (msec)^Tempo di campionamento\\ massimo (msec)^Tempo di esecuzione (%)^
 +|[[Software:devices:CANOPEN]]|1|250|100|
 +|[[Software:devices:CALENDAR]]|-|-|0|
 +|[[Software:devices:DATASTORE]]|1|20|90,5|
 +|[[Software:devices:FREQ]]|1|250|4,75|
 +|[[Software:devices:DAC]]|-|-|0|
 +|[[Software:devices:ANINP]]|1|250|14,25|
 +|[[Software:devices:COUNTER3]]|1|250|5,94|
 +|[[Software:devices:SERCOM]]|1|250|9,26|
 +|[[Software:devices:MODBUS]]|1|250|32,07|
 +|[[Software:devices:MMIQ2]]|1|10|90,5|
 +|[[Software:devices:RECDATA]]|1|250|5,34|
 +|[[Software:devices:QMOS]]|-|-|0|
 +
 +Il firmware versione **20** implementa **anche** i seguenti devices:
 +^Nome device^Tempo di campionamento\\ minimo (msec)^Tempo di campionamento\\ massimo (msec)^Tempo di esecuzione (%)^
 +|[[Software:devices:EANPOS]]|1|250|55,94|
 +|[[Software:devices:OOPOS3]]|1|250|27,91|
 +|[[Software:devices:HEAD2]]|1|125|23,75|
 +
 +Il firmware versione **30** implementa **anche** i seguenti devices:
 +^Nome device^Tempo di campionamento\\ minimo (msec)^Tempo di campionamento\\ massimo (msec)^Tempo di esecuzione (%)^
 +|[[Software:devices:CAMMING3]]|1|250|55,94|
 +|[[Software:devices:JOINT]][(Il tempo di campionamento effettivo risulta essere doppio rispetta a quello impostato)]|1|250|95,01|
 +~~REFNOTES~~
 +
 +===Particolarità dei devices===
 +==CANOPEN==
 +Se nella dichiarazione del device [[Software:devices:CANOPEN]] viene indicata la velocità zero allora essa diventa impostabile tramite i dip nr. 5 e 7 di SW1. 
 +Il primo slot per indirizzare risorse che risiedono all'interno di moduli Canopen è il 4.
 +
 +==DATASTORE==
 +I files manipolati dal device [[Software:devices:DATASTORE]] sono tutti contenuti nella cartella /DS. Se questa cartella non esiste nel dispositivo essa viene creata automaticamente. 
 +Il device [[Software:devices:DATASTORE]] può operare sia con il dispositivo MMC/SD che con una memoria tipo NAND interna al prodotto (non removibile). Per definire con quale dispositivo operare viene utilizzato il valore del parametro priority (0=MMC/SD, 1=NAND).
 +Se l'applicazione deve frequentemente accedere ai due dispositivi supportati e non è richiesta la rimozione fisica del dispositivo MMC/SD, è possibile utilizzare una particolare impostazione del parametro priority che evita di eseguire continuamente il MOUNT UMOUNT dei dispositivi. In pratica quando si desidera cambiare dispositivo prima di eseguire il comando UMOUNT si imposta "priority = -1". Questo fa si che internamente al device la fase UMOUNT venga evitata rendendo il successivo comando MOUNT al medesimo dispositivo molto rapido.
 +
 +Un esempio di codice QCL per cambiare dispositivo potrebbe essere: 
 +
 +<code QCL>
 +  SUB SETMMC
 +    WAIT NOT Mmc:st_busy
 +    IF Mmc:st_mount
 +      Mmc:priority = -1
 +      UMOUNT Mmc
 +      WAIT NOT Mmc:st_mount
 +      CALL CHECK_ERR_WRN
 +    ENDIF
 +    Mmc:priority = 0
 +    MOUNT Mmc
 +    WAIT Mmc:st_mount
 +  ENDSUB
 +  
 +  SUB SETNAND
 +    WAIT NOT Mmc:st_busy
 +    IF Mmc:st_mount
 +      Mmc:priority = -1
 +      UMOUNT Mmc
 +      WAIT NOT Mmc:st_mount
 +      CALL CHECK_ERR_WRN
 +    ENDIF
 +    Mmc:priority = 1
 +    MOUNT Mmc
 +    WAIT Mmc:st_mount
 +    CALL CHECK_ERR_WRN
 +  ENDSUB
 +</code>
 +
 +Esiste una particolare impostazione dei parametri che permette di verificare l'esistenza di un file nel dispositivo. Si utilizza il parametro "filenum" impostato al valore -1 e con il comando OPENFILE il device invece di aprire il file ricerca il primo file presente nella directory "/DS/" del dispositivo scelto. Quando trovato, il nome di tale file sarà impostato dal device nel parametro "filenum" stesso (ed il tipo nel parametro "filetype"). Impostando nuovamente -1 in "filenum" ed eseguendo il comando OPENFILE verrà cercato il nome del file successivo e così via. Ogniqualvolta verrà effettuata una operazione di OPENFILE con il filenum diverso da -1 il loop di ricerca verrà chiuso. Quando la ricerca sarà terminata e non vi saranno più file presenti, allora il device imposterà come risposta al comando OPENFILE "filenum = -2". L'avvenuta esecuzione del comando sarà segnalata dal flag st_busy = 0. 
 +Se l'estensione del file non è HEX o CSV il file stesso viene ignorato dalla ricerca. Nel caso in cui il nome file non sia compatibile con quelli gestiti dal [[Software:devices:DATASTORE]] (numeri da 0 a 9999999) allora "filenum" rimarrà impostato a -1 e verrà segnalato un warning.
 +
 +==RECDATA==
 +Il device può memorizzare un massimo di 10000 step.
 +
 +==QMOS==
 +Il parametro "frwuvalue01" contiene il valore numerico del serial number del prodotto.
 +
 +==FREQ==
 +Per definire l'ingresso associato al device [[Software:devices:FREQ]] utilizzare l'apposito campo numerico nella dichiarazione del device. La disponibilità di ingressi in frequenza deve essere verifcata con la versione hardware del prodotto. Per ricavare la relazione tra valore numerico e pin del morsetto utilizzare le informazioni contenute nella colonna "Indirizzo" nelle tabelle di illustrazione del morsetto. 
 +
 +==CAMMING3==
 +I parametri relativi ai settori (CodeQm, CodeQs…) non sono ritentivi. All'accensione essi assumono sempre valore 0.
  • Ultima modifica: 2019/08/29 17:01