Collegamento dei propri I/O
Con questa funzionalità, gli I/O locali possono essere collegati a un controllore e utilizzati dall'applicazione IEC.
Modifica della descrizione del dispositivo
Nell'esempio UDSIoDrvExample.project
fornito, vengono creati due ingressi e due uscite con la descrizione del dispositivo. Gli ingressi e le uscite sono collegati tramite una presa di dominio Unix. L'esempio si trova nella directory di installazione di CODESYS, nella sottodirectory CODESYS Control SL Extension Package\<version>\Examples\ExternalIoDrv
.

Per definire i propri ingressi e uscite, il file di descrizione del dispositivo SocketUnixIOTemplate.devdesc.xml
deve essere adattato. Un XML parameter
l'elemento deve essere definito per ciascuno degli ingressi e delle uscite ParameterId
deve essere univoco qui all'interno del file di descrizione del dispositivo. Si consiglia semplicemente di numerare in ordine crescente senza spazi vuoti. Esempio: 1000 1001 1002 e così via: gli ingressi devono essere numerati da 1000, le uscite da 2000.
Avviso
Se la descrizione del dispositivo viene modificata, deve essere reinstallato nel repository dei dispositivi in modo che sia disponibile nel progetto.
<Parameter ParameterId="1000" type="std:DWORD"> <Attributes channel="input"/> <Default/> <Name name="local:in1">/Namne> </Parameter>
Nome | Descrizione |
---|---|
ParametroId | ID univoco mediante il quale viene chiamato l'input o l'output |
genere | Definizione della larghezza dell'ingresso o dell'uscita. Viene fatto specificando un tipo di dati adeguatamente ampio come |
Attributi canale |
|
Nome nome | Nome per il rispettivo ingresso o uscita |
Inoltre, deve essere assegnato l'ID del dispositivo, che è definito in <DeviceIdentification>
.A tale scopo viene fornito l'intervallo da 0x0001 8000 a 0x0001 80FF per evitare collisioni con dispositivi esistenti.
Importante
La descrizione del dispositivo e il driver I/O sottostante non devono essere istanziati più volte in un PLC perché l'ordine dei moduli non è fisso. Ciò può comportare che il driver I/O non sia in grado di garantire l'assegnazione.
Esempio Python
Nell'esempio Python uds_io_driver.py
, vengono ricevute le uscite e scritti gli ingressi del dispositivo. I parametri di ingresso (uscite IEC) vengono passati come tuple di stringhe (paramType
, paramValue
) con l'ID parametro della descrizione del dispositivo come indice.
Il driver può gestire i tipi di dati USINT
, UINT
, UDINT
, e ULINT
. Altri tipi di dati devono essere convertiti in un tipo di dati adatto.
Esempio: ('2000': ('UDINT', '11'), '2001': ('UDINT', '22')}
.I parametri di output sono nello stesso formato.
Anche per il peer, un parametro "output"/output è comunque un valore di output che deve essere trasportato "verso l'esterno" dall'applicazione IEC (ad esempio, scritto in GPIO reali). Il UDS_IODriver_0
classe implementata nell'esempio estende il ExternalFunctionBase
class.Da cui deriva il nome della classe UDS_IODriver_
seguito dall'indice di istanza in ordine crescente.Il Call()
è necessaria la funzione, che viene richiamata dal meccanismo di IEC. Le uscite IEC possono ora essere valutate qui e gli ingressi IEC possono essere trasferiti.
Utilizzo dell'interfaccia solo come membro di Linux | sì |
Separazione del processo | sì |