Skip to main content

Liaison de vos propres E/S

Grâce à cette fonctionnalité, les E/S locales peuvent être connectées à un contrôleur et utilisées à partir de l'application CEI.

Modification de la description de l'appareil

Dans l'exemple UDSIoDrvExample.project fourni, deux entrées et sorties sont créées avec la description du dispositif. Les entrées et les sorties sont reliées par une socket de domaine Unix. L'exemple se trouve dans le répertoire d'installation de CODESYS, dans le sous-répertoire CODESYS Control SL Extension Package\<version>\Examples\ExternalIoDrv.

_rtslext_img_io_connection.png

Pour définir vos propres entrées et sorties, le fichier de description d'appareil SocketUnixIOTemplate.devdesc.xml doit être adapté. Un XML parameter élément doit être défini pour chacune des entrées et des sorties. ParameterId doit être unique ici dans le fichier de description de l'appareil. Nous vous recommandons de numéroter simplement dans l'ordre croissant sans lacunes. Exemple : 1000 1001 1002 et ainsi de suite : les entrées doivent être numérotées à partir de 1000, les sorties à partir de 2000.

Avis

Si la description de l'appareil est modifiée, il doit être réinstallé dans le référentiel des appareils afin qu'il soit disponible dans le projet.

<Parameter ParameterId="1000" type="std:DWORD">
   <Attributes channel="input"/>
   <Default/>
   <Name name="local:in1">/Namne>
</Parameter>

Nom

La description

ID de paramètre

ID unique par lequel l'entrée ou la sortie est appelée

taper

Définition de la largeur de l'entrée ou de la sortie. Cela se fait en spécifiant un type de données suffisamment large tel que std:BYTE, std:WORD, std:DWORD, ou std:LWORD. D'autres types de données simples sont également autorisés.

Canal d'attributs

input ou output

Nom nom

Nom de l'entrée ou de la sortie respective

De plus, l'ID de l'appareil doit être attribué, ce qui est défini dans <DeviceIdentification>.La plage 0x0001 8000 à 0x0001 80FF est prévue à cet effet pour éviter les collisions avec les appareils existants.

Important

La description de l'appareil ainsi que le pilote d'E/S sous-jacent ne doivent pas être instanciés plusieurs fois sous un automate car l'ordre des modules n'est pas fixe. Cela peut empêcher le pilote d'E/S d'assurer l'affectation.

Exemple Python

Dans l'exemple Python uds_io_driver.py, les sorties sont reçues et les entrées de l'appareil sont écrites. Les paramètres d'entrée (sorties CEI) sont transmis sous forme de tuples de chaînes (paramType, paramValue) avec l'ID de paramètre de la description d'appareil comme index.

Le pilote peut gérer les types de données USINT, UINT, UDINT, et ULINT. Les autres types de données doivent être convertis en un type de données approprié.

Exemple: ('2000': ('UDINT', '11'), '2001': ('UDINT', '22')}.Les paramètres de sortie sont au même format.

Pour le pair également, un paramètre "output"/output est néanmoins une valeur de sortie qui doit être transportée "vers l'extérieur" par l'application CEI (par exemple, écrite sur de vrais GPIO). le UDS_IODriver_0 la classe implémentée dans l'exemple étend la ExternalFunctionBase classe. Le nom de la classe est dérivé de UDS_IODriver_ suivi de l'index d'instance dans l'ordre croissant. Call() est nécessaire, qui est appelée à partir du mécanisme de CEI. Les sorties CEI peuvent maintenant être évaluées ici et les entrées CEI peuvent être transférées.

Utilisation de l'interface uniquement en tant que membre de Linux codesysuser groupe d'utilisateurs

Oui

Séparation de processus

Oui