Con il plugin di integrazione del codice C, i file di codice C implementati esternamente possono essere inclusi nei progetti CODESYS e gli stub C possono essere generati dagli oggetti IEC.
In CODESYS, il modulo di codice C è disponibile per questo tipo di oggetto. I file di codice C e gli oggetti IEC utilizzati si trovano sotto un modulo di codice C . A ogni modulo di codice C viene assegnata una directory di file sul disco rigido con i file di codice C.
Nel progetto, è possibile generare oggetti IEC da un file di codice C nel formato *.h o *.hpp (file di intestazione) per poterli utilizzare in altri POU.
La generazione di mozzetti C è destinata ai seguenti casi d'uso:
-
Un file di codice C accede a un oggetto IEC: Un file di codice C non può accedere direttamente a un oggetto IEC. Può accedere solo allo stub C generato dall'oggetto IEC.
-
Generazione di moduli precompilati da unire a un progetto di libreria.
Dopo essere stati importati, i file di codice sorgente importati fanno parte del progetto CODESYS e sono quindi disaccoppiati dai file originali sul disco.
Durante la compilazione, un modulo dinamico viene generato da un modulo di codice C e salvato come parte del progetto. Informazioni, avvisi ed errori vengono visualizzati nella finestra dei messaggi della categoria «C code module».
Tutti i moduli dinamici di un'applicazione vengono trasferiti e caricati nel sistema di runtime durante il download. Il sistema di runtime deve supportare il linking dinamico.
Licenza per il sistema di runtime
Licenza per il sistema di runtime
Il sistema di runtime richiede una licenza che consenta di caricare i moduli C. Senza questa licenza, i moduli dinamici non possono essere collegati durante il download e quindi il download viene interrotto.
I moduli dinamici fanno parte dell'applicazione di avvio e vengono ricaricati e attivati al riavvio del controllore. Il comando «Reset origin» scarica tutti i moduli di codice C dell'applicazione. I comandi «Reset cold» e «Reset warm» non comportano un'inizializzazione ripetuta dei moduli di codice C.




AVVISO

Nessun codice C per la modalità di simulazione
In modalità di simulazione, il codice C non viene generato e caricato nel sistema di runtime. Per simulare comunque il codice contenuto nei moduli C, è possibile implementarlo a questo scopo nei rispettivi oggetti IEC del modulo di codice C.
CODESYS non supporta il monitoraggio delle variabili nei file di codice C o l'impostazione di punti di interruzione nel codice sorgente C.
I POU della libreria utente sono elencati nell'Input Assisted (F2), ma la funzione non fornisce risultati significativi nel contesto dei POU del codice C. Questi POU sono elencati come standard e non come funzioni / blocchi funzione / programmi definiti dall'utente.
Moduli precompilati nelle librerie
L'integrazione del codice C consente di assegnare a un dispositivo un modulo di runtime precompilato (esempio: *.dll) nella libreria e di salvarlo nella libreria. Quindi, questi moduli possono essere caricati dinamicamente.
Configurazione dei moduli di codice C
Requisiti: È aperto un progetto che include già un modulo di codice C
.
-
Fare clic sull'oggetto
« Modulo di codice C» nella struttura del dispositivo. -
Selezionare il comando «Properties» nel menu contestuale.
-
Aprite la scheda «Build» nella finestra di dialogo «Properties».
-
Specificare il percorso del file di installazione di Visual Studio sul computer. Sono inoltre disponibili l'assistente di immissione (
) e lo strumento di ricerca (lente di ingrandimento). -
Specificare il percorso del file di installazione dell'SDK MS Windows sul computer. Sono inoltre disponibili l'assistente di immissione (
) e lo strumento di ricerca (lente di ingrandimento). -
Specificare un percorso di file per CODESYS per memorizzare i file di compilazione temporanei.
Importazione di cartelle con file sorgente C dalla directory dei file
Requisiti: Un progetto è aperto. Il controllore di progetto supporta l'integrazione del codice C.
-
Selezionare «Application» nella struttura del dispositivo e fare clic su «Project Add object C code module».
-
Se necessario, specificare un nuovo nome per il modulo di codice C nella finestra di dialogo «Add C code modules». In caso contrario, all'oggetto verrà assegnato il nome standard «Modulo di codice C».
-
Cliccare sul simbolo (
) accanto al campo d'immissione «Directory sorgente». -
Si apre la finestra di dialogo «Trova cartella».
-
Nella finestra di dialogo «Trova la cartella», selezionate la cartella contenente i file sorgente C (
*.c,*.cpp,*.h, o*.hpp). -
Quando si seleziona l'opzione «Monitorare la cartella per le modifiche al codice sorgente», CODESYS visualizza un messaggio quando sono state apportate modifiche ai file sorgente C nella cartella selezionata del file system.
-
Fare clic su «Aggiungere».
CODESYS inserisce il modulo di codice C nell'albero del dispositivo con le cartelle «Extensions», «IEC interface», e «Source files».
-
Nella struttura del dispositivo, fare clic sul simbolo più («+») della cartella «File sorgente».
I file sorgente C importati sono elencati nella cartella aperta.
-
Facendo doppio clic su uno dei file sorgente C (
), il file di codice C si apre nell'editor.
Importazione di singoli file di codice C
Requisiti: È aperto un progetto che include già un modulo di codice C
.
-
Fare clic sull'oggetto
« Modulo di codice C» nella struttura del dispositivo. -
Fare clic su «Progetto Aggiungere oggetto File di codice C».
-
Nella finestra di dialogo «Add C code-file», utilizzare l'assistente di immissione (
) per selezionare un file in formato *.c, *.cpp, *.h, o*.hpp, quindi fare clic su «Add».CODESYS inserisce il file di codice C selezionato nell'albero dei dispositivi sotto il modulo di codice C
. -
Se si fa doppio clic sul nuovo file di codice C (
) nella struttura del dispositivo, questo si apre nell'editor per essere modificato.
Generazione di file di codice C vuoti
Requisiti: È aperto un progetto che include già un modulo di codice C
.
-
Fare clic sull'oggetto
« Modulo di codice C» nella struttura del dispositivo. -
Fare clic su «Progetto Aggiungere oggetto File di codice C».
-
Nella finestra di dialogo «Add C code file», specificare il nome del nuovo file di codice C con l'estensione appropriata e fare clic su «Add».
CODESYS inserisce il file di codice C selezionato nell'albero dei dispositivi sotto il modulo di codice C
. -
Se si fa doppio clic sul nuovo file di codice C (
) nella struttura del dispositivo, questo si apre nell'editor per essere modificato.
Conversione di file di codice C in oggetti IEC da utilizzare come oggetti di programmazione nelle applicazioni.
Requisiti: È stato aperto un progetto che include un modulo di codice C
e i file di codice C
. Ad esempio, il file di codice C contiene il seguente codice C: int adder(int a, int b);
-
Fare clic su un file di codice C
con l'estensione *.h. In questo esempio, ètest.h. -
Fare clic su «Build C-Integration Creare interfaccia IEC».
Si apre la finestra di dialogo «Crea interfaccia C» che elenca il file
test.he la sua funzioneadder (int, int). Entrambi sono attivati per l'importazione. -
Fare clic su «Importazione».
-
CODESYS genera la funzione «adder (FUN)» e la inserisce come oggetto nella cartella «IEC interface» dell'albero dei dispositivi.
-
Facendo doppio clic sull'oggetto «adder (FUN)», questo si apre nell'editor. Contiene la seguente parte di dichiarazione:

-
È ora possibile chiamare la funzione
addernella parte di implementazione di un POU (esempio:adder (diVar1, diVar2);).
Creazione di stub in C
Requisiti: È stato aperto un progetto che comprende un modulo di codice C
. Al modulo di codice C viene aggiunto un POU, che ha implementato il codice.
-
Nella struttura del dispositivo, selezionare il POU sotto il modulo di codice C e fare clic su «C-Integration Create stub implementation in C».
CODESYS crea gli oggetti «iec_external.c» e «iec_external.h» e li aggiunge alla cartella «Extensions» nella struttura del dispositivo.
Nella finestra dei messaggi (categoria«modulo codice C» ), si trova un messaggio che indica che è stato creato con successo un file m4.
Facendo clic su «Create stub implementation in C», l'applicazione viene compilata automaticamente. Se nel processo si verificano errori, questi vengono indicati nella finestra di messaggio. Inoltre, si prega di monitorare i messaggi della categoria «C code module».
Assegnazione di moduli runtime precompilati ai dispositivi e salvataggio in librerie
Requisiti: Una libreria (*.library) è aperta in CODESYS.
-
Fare clic su «View POUs».
La vista «POUs» si apre e visualizza il progetto di libreria e i suoi oggetti.
-
Selezionate il progetto della libreria e fate clic su «Progetto Aggiungi oggetto Libreria implementata in C».
-
Fate clic su «Add» nella finestra di dialogo «Add C implemented library».
CODESYS aggiunge l'oggetto
«C implementato nella libreria» alla vista «POUs». -
Fare doppio clic sull'oggetto
«C implementato nella libreria».L'oggetto si apre nel suo editor
-
Fare clic su «Aggiungere» in questo editor.
Si apre la finestra di dialogo «Selezionare il dispositivo».
-
Nel campo di input «Object file», specificare il nome di un modulo caricabile dinamicamente nel formato *.dll o *.so.




AVVISO

Il file *.dll deve contenere nel nome il titolo del progetto di libreria. Ad esempio, se il progetto della libreria si chiama XYlib, il file oggetto deve essere chiamato:
<Name>_XYlib.dll. -
Nella finestra «Device», selezionare un dispositivo per l'assegnazione del file oggetto .
-
Fare clic su «Selezionare il dispositivo».
CODESYS visualizza l'assegnazione del file di dispositivo creato nell'editor nella scheda «Componenti compilati».
-
Salvare il progetto della libreria.