Creazione di una cinematica personalizzata
Importante
Lo strumento open source wkhtmltopdf
è necessario per generare la documentazione per la cinematica dai commenti nel blocco funzione. Tuttavia, questo componente non è più incluso nell'installazione di CODESYS versione 3.5 SP15 e successive.
È possibile scaricare la DLL da https://wkhtmltopdf.org/downloads.html. Crea una directory denominata DocScripting\3.5.xx.x\bin
nella directory di installazione di CODESYS e salva il file wkhtmltox.dll
là.
Attenzione: poiché wkhtmltox.dll
non supporta più le immagini per impostazione predefinita nella versione 0.12.6 e successive, è necessario utilizzare la versione 0.12.5 o precedente.
Importante
Se si utilizza un'istanza di una trasformazione cinematica di un gruppo di assi, gli ingressi dell'istanza non devono più essere modificati.
Per modificare la parametrizzazione della trasformazione cinematica è necessario utilizzare la configurazione, se possibile, oppure creare più istanze.
Quando crei una cinematica personalizzata, devi osservare quanto segue:
La cinematica è descritta da speciali blocchi funzione che possono essere memorizzati in librerie o in POU vista del progetto.
Per CODESYS per elencare le cinematiche nel configuratore, i blocchi funzione associati devono implementare il
MC_KIN_REF_SM3
interfaccia (parte diSM3_Transformation.library
).È possibile definire la cinematica come una combinazione di altre due cinematiche. Anche la cinematica con la possibilità di montare piastre portautensili o utensili deve essere implementata
ISMPosizioneCinematica2
interfaccia. La cinematica che specifica una piastra utensile o un utensile deve implementare il fileISMToolKinematics2
interfaccia.Se si implementa solo
ISMPositionKinematics
/ISMToolKinematics
invece diISMPositionKinematics2
/ISMToolKinematics2
, gli orientamenti "non disponibili" potrebbero essere elaborati in modo errato.Quando si implementa anche l'interfaccia
ISMPositionKinematics_Offset
, è possibile utilizzare la modalità di orientamentoAxis
.Quando la POU ha il
sm_kin_libdoc
attributo, il commento specificato nel blocco funzione viene utilizzato nel configuratore come descrizione della cinematica. Per questo viene utilizzata la formattazione "Testo ristrutturato". Tieni presente, tuttavia, che i collegamenti non sono supportati.I parametri relativi alla progettazione, come lunghezze e angoli dei bracci, vengono creati come variabili VAR_INPUT del blocco funzione. Dovresti commentare i parametri perché il commento serve come descrizione nel configuratore. Se i parametri sono di tipo numerico e il loro intervallo di valori è ristretto, è necessario fornirli con l'estensione
sm_kin_param_range
attributo.La sintassi dell'intervallo di valori è
[a .. b]
per intervalli chiusi e]a .. b[
per intervalli aperti. Le forme combinate]a .. b]
e[a .. b[
sono anche possibili. Per questo scopo,a
eb
devono essere letterali appropriati per il tipo di parametro. I valori speciali+inf
e-inf
sono possibili per limiti di intervallo aperti. Esempi:[0 .. 1]
,[1 .. +inf[
,]-inf .. -5]
.I parametri possono essere di qualsiasi tipo numerico o
BOOL
. I parametri devono avere un valore iniziale che viene utilizzato come valore predefinito. È possibile specificare l'unità del parametro con l'attributo facoltativosm_kin_param_unit
(esempio: "rad", "°", "deg"). Dovresti usare l'unità "u" per lunghezze e distanze. L'applicazione e la scalatura degli azionamenti determinano se queste unità sono "mm", "cm" o "m".Se per il blocco funzione non è disponibile la documentazione della libreria, come opzione di fallback viene visualizzato il commento dell'elemento FB nelle rispettive posizioni.
La lingua configurata in CODESYS è la lingua visualizzata per la documentazione di LibDoc. Se una localizzazione non è disponibile in questa lingua, viene utilizzata la lingua predefinita della libreria.
I nomi degli assi della cinematica sono definiti dall'attributo FB
sm_kin_axes
. Il valore dell'attributo è un elenco di nomi di assi (esempio: "A1, A2, A3").Un'icona facoltativa è specificata con l'attributo FB
sm_kin_icon
. Il valore è specificato nel modulo<image pool>.<identifier>
. Il pool di immagini viene specificato rispetto al blocco funzione.Se si crea un blocco funzione cinematico personalizzato con assi rotativi (ad es.
Kin_Scara3_Z_Config
), allora dovresti usare il concetto di periodo per gli assi di tesi e implementare ilISMKinPeriodHandling
interfaccia. Per gli assi rotativi, solo la trasformazione cinematica inversa (CartesianToAxes
) è responsabile del calcolo dell'angolo. Poi CODESYS SoftMotion sposta automaticamente questo angolo sul periodo corretto. Ad esempio, se la trasformazione calcola un angolo nell'intervallo ]-180°, 180°], allora CODESYS SoftMotion sposta questo angolo nell'intervallo [0°, 360°[, a condizione che i limiti software dell'azionamento siano 0° .. 360°. Inoltre, dovresti implementare ilISMKinematicsWithConfiguration3
interfaccia. Questo è l'unico modo per assicurarsi che la cinematica per i movimenti CP funzioni senza problemi.Nel caso di cinematica accoppiata con disposizione irregolare della cinematica di posizione e orientamento, è opportuno implementare il
ISMCoupledKinematics3
interfaccia. In questo modo il sistema può rilevare se un asse per la cinematica di posizione o di orientamento appartiene o meno al rispettivo numero di asse.Nota: è necessario implementare il
ISMKinematicWithConfigurations2.CPConnectible
metodo in modo tale che le impostazioni del periodo vengano ignorate durante il confronto. PoiCPConnectible
restituisce il valoreTRUE
, anche se l'impostazione del periodo è diversa.
Tutte le trasformazioni inverse hanno un input di tipo CONFIGDATA
che contiene un array di byte con informazioni sulla configurazione della cinematica. Le trasformazioni in avanti hanno un output corrispondente. La cinematica con una configurazione deve implementare il ISMKinematicWithConfigurations
interfaccia. Ciascuna di queste cinematiche include un blocco funzione che deve implementare il ISMConfigurationData
interfaccia (funzione per la serializzazione dei dati di configurazione). Il nome di questo blocco funzione deve essere lo stesso nome della cinematica più il suffisso _config
. È possibile utilizzare questo FB per modificare la configurazione nell'applicazione (tramite il blocco funzione SMC_SetKinConfiguration
bloccare). Tuttavia, la cinematica non dovrebbe contenere alcuna istanza dell'FB corrispondente.
Suggerimento
Per istruzioni dettagliate, consultare la Cinematica personalizzata capitolo.