CONTENUTI

Home Blocchi Standard

Cosa sono i blocchi standard?

Progettare in "ottica" standard

Inserire un blocco standard in un software plc

Modifiche, revisioni e versioni in blocchi standard

Esempi di blocchi standard

 

APPENDICI

Compilare Sorgenti Step7

Compilare sorgenti MicroWin

Blocchi funzionali e funzioni

Come riempire le variabili non utilizzate nelle interfacce di blocco

 

 

 

COMPILARE I SORGENTI STEP MICROWIN

 

Il metodo di compilazione e decompilazione dei blocchi Simatic in formato sorgente talune volte viola il diritto degli autori, in questa pagina si considera la compilazione e la decompilazione dei sorgenti di blocchi di cui si è autori, o detentori dei diritti, oppure sono dichiarati open source dall'autore stesso.

 

I termini "compilazione" e "sorgenti", in MicroWin hanno una valenza formale, in quanto, anche se il risultato che si ottiene alla fine e' il medesimo che si ottiene con Step7, non avviene una vera e propria compilazione, ma piuttosto una "traduzione" di codice.

La procedura è leggermente diversa,rispetto a Step7, perchè non potendo Step MicroWin aprire più progetti contemporaneamente (come invece fa Step7) si dovranno aprire due sessioni o più di Step MicroWin.

 

A questo punto, in una delle due sessioni di Step MicroWin (sessione di origine), e' sufficiente aprire il blocco da copiare e creare il sorgente AWL (comprensivo di commenti ed intestazioni del blocco), utilizzando il comando FILE->ESPORTA, assegnando al file un nome coerente (si guardi, al proposito: modifiche, revisioni e versioni in blocchi standard) Nell'altra sessione aperta di Step MicroWin (sessione di destinazione), occorre importare il sorgente tramite il comando FILE->IMPORTA, facendo attenzione che il numero di Subroutine o di Interrupt non sia già presente nel software (con numero non si intende un eventuale nome esteso assegnato dall'utente, ma il nome simbolico che MicroWin stesso assegna alla routine SBR0, SBR1, INT0, INT1, ecc.). In questo caso, per evitare sovrascritture non volute (attenzione che MicroWin non chiede conferme prima di sovrascrivere, lo fa e basta), ci sono due strade percorribili: nel software dal quale si genera il sorgente, si cambia il numero di SBR con uno che non sia utilizzato nel software di destinazione; altra soluzione attuabile, peraltro vivamente consigliata, e' quella di utilizzare un editor di testo (e' sufficiente il Notepad o blocco note di Windows) per modificare l'intestazione del blocco generato; di seguito verra' spiegato come.


Questa è l'intestazione di un blocco qualsiasi

SUBROUTINE_BLOCK T_Flip_Flop:SBR0
 
Il tag SUBROUTINE_BLOCK identifica il nome del blocco (nome esteso, in questo caso T_Flip_Flop , se lo si intende comunque modificare, attenzione a non utilizzare spazi, ma mettere degli underscore "_" al posto degli stessi; ma la parte più interessante è il seguito:
Il tag SBR0 indica appunto come si chiamerà, dopo il comando di "importazione" la routine, in modo "simbolico", qui è possibile porre un valore da 0 a 63, sia per le subroutines che per gli interrupts, in ogni caso i due tipi di sottoprogramma possono avere numeri uguali (ad esempio, coesistono tranquillamente SBR0 e INT0). Vale comunque la pena di sottolineare che in caso di cambio di numero di sobroutine di interruzione bisogna modificare gli interrupt assegnati alla vecchia routine e riassegnagnarli alla nuova.

Cosa succede in caso di errore? Ossia in caso di nome già esistente, oppure nome errato, oppure valore di sottoprogramma maggiore di 63? In caso di indice maggiore di 63 MicroWin risponde con questo messaggio,


ERRORE: NUMERO DELL'UNITA' DEL PROGETTO NON COMPRESO NEL CAMPO

 ed il blocco non viene importato.
Togliendo i due underscore nel nome del programma il compiler di MicroWin genera, nella directory dove risiede il file sorgente, un file con lo stesso nome del sorgente, ma con estensione err che riporta gli errori. Ecco cosa ha riportato:

SUBROUTINE_BLOCK T Flip Flop:SBR0
***Errore: Istruzione di fine blocco non ammessa : vicino 'T'
***Errore: Sintassi del blocco iniziale non ammessa.: Probabilmente causato dall'errore precedente

BEGIN
***Errore: Espressione non ammessa
NETWORK 1

END_SUBROUTINE_BLOCK

In pratica ha scambiato la parola Flip per l'indice di sobroutine e poi il resto è ovviamente a seguire.
Questo è in pratica il metodo di "compilazione" sotto Step MicroWin; chiamarla compilazione di sorgente non è ortodosso,come ripeto, ma rende assai bene l'idea.

 

Home Blocchi Standard

Home Didattica

Home PlcForum