Comment pouvons-nous aider ?
ACE en tant qu’unité d’extension d’E/S : Tableau d’échange avec les esclaves
Dans les automates ACE esclave et maître
Relier chaque ACE par le port série
|
![]() |
Réseau multipoint pour RS232
Pour seulement 2 ACE via RS232, c’est très simple : RX <> TX, TX <> RX et GND <> GND
Pour plus de 2 ACE sur RS232 (pas RS485), c’est possible ! Il suffit d’ajouter 1 diode sur chaque broche TX de l’esclave

Configurer le port série comme « Custom type » et sélectionner le bon mode RS232, ou RS485 pour les ACE-1430/1450
Pour cela, vous devez retourner à la section « Setup Hardware » dans le coin supérieur gauche du logiciel vBuilder (icône verte ou bleue). |
ou
|
Téléchargez les sous-programmes pour le maître et le(s) esclave(s) et ajoutez-les à vos automates ACE
Télécharger :
| Ajoutez-les à chaque automate ACE en sélectionnant l’un des fichiers .viofs | Ajouter une sous-boutine![]() |
Maître |
Esclave(s)![]() |
Nombre d’esclaves et taille de la table d’échange
Les sous-programmes du maître permettent d’échanger des étiquettes ui16 avec chaque esclave.
Vous devez choisir :
- le nombre d’esclaves
- la taille de la table d’échange ui16.
Par défaut, le sous-programme peut gérer 5 esclaves avec 10 tags par esclave (5 en lecture et 5 en écriture)

N’oubliez pas non plus d’augmenter ou de diminuer la taille des tables pour chaque balise si nécessaire (voir « Balises » dans le programme Maître et Esclave)
- ui16 doit être réglé sur 5 (longueur 5 = balises 0 à 4) pour obtenir 5 * ui16 dans la table d’échange
- Les balises des tableaux DataRead et DataWritten (ui8) doivent être réglées sur 5*2 1 = 11 pour obtenir 5 * ui16 dans la table d’échange
- Exemple : 10 ui16 dans la table d’échange signifie une taille de tableau de 21 ui8 pour DataRead et DataWritten
- Les balises RWrite* et RRead* d’un esclave non utilisé peuvent être supprimées
Esclave ACE PLC : écrire un programme de test
Dans « Toolbox », ajoutez une sous-routine et sélectionnez la sous-routine SlaveRemoteIO
Comment cela fonctionne-t-il ?
- LocalWriteUI16[ ] est un tableau de balises ui16 de taille 5
- LocalWriteUI16[0] est le tag numéro 0 écrit par le maître
- …
- LocalWriteUI16[4] est le tag numéro 4 écrit par le maître
- LocalReadUI16[ ] est un tableau de balises ui16 de taille 5
- LocalReadUI16[0] est le tag numéro 0 lu par le maître (envoyé au maître)
- …
- LocalReadUI16[4] est le tag numéro 4 lu par le maître (envoyé au maître)
Dans le programme de test, nous allons envoyer au maître la valeur reçue par le maître (voir l’outil « Copy ») !
Nous copions donc les valeurs
- LocalWriteUI16[0] vers LocalReadUI16[0] la balise
- LocalWriteUI16[1] vers la balise LocalReadUI16[1] balise

Maître ACE PLC : Ecrire un programme de test
Dans « Toolbox », ajouter une sous-routine et sélectionner la sous-routine ReadWriteToSlave
Comment cela fonctionne-t-il ?
- RWriteUI16Slave1[ ] est un tableau de balises ui16 de taille 5
- RWriteUI16Slave1[0] est le tag numéro 0 à écrire dans l’esclave 1
- …
- RWriteUI16Slave1[4] est le tag numéro 4 à écrire dans l’esclave 1
- …
- RWriteUI16Slave2[0] est le numéro de balise 0 à écrire dans l’esclave 2
- …
- RReadUI16Slave1[ ] est un tableau de balises ui16 de taille 5
- RReadUI16Slave1[0] est le tag numéro 0 à lire dans l’esclave 1
- …
- RReadUI16Slave2[3] est le tag numéro 3 à lire dans l’esclave 2
Dans le programme de test, nous allons envoyer des valeurs à chaque esclave (voir l’outil « Copy ») !
Nous copions donc les valeurs
- Tag 0 de l’esclave 1 = 10000
- Tag 1 de l’esclave 1 = 10001
- Étiquette 0 de l’esclave 2 = 20000
- Étiquette 1 de l’esclave 2 = 20001
Nous vérifions ensuite si les valeurs reçues par les esclaves sont identiques (car les valeurs sont copiées par chaque esclave ACE)
Remarques
eACE/ACE avec 2 ports RS232 (7096, 7092,…)
Si vous utilisez un ACE avec 2 ports RS232, utilisez le port A1.
Si vous souhaitez utiliser le port A2 (Personnalisé dans « Setup Hardware »), vérifiez et confirmez par [ OK ] le popup dans « Port A2 SEND » et « Port A2 RECEIVE » (Voir « Subroutine » « ReadWriteToSlave »)

Avertissements dans notre programme: Oui, il est normal que vous obteniez ces avertissements, il y a quelques outils « Copy » pour le mode debug (voir les valeurs en mode debug).
Vous pouvez les supprimer.

Copier des bits d’entrée/sortie ou des bits de registre
Utilisez l’outil « Copy » en mode« Pack » pour copier tous les états de sortie à distance dans 1 balise ui16
Vous pouvez également utiliser« Unpack » pour extraire tous les états d’entrée à distance de la balise ui16

Copier un flottant dans 2 * UI16

Convertir un I32 en 2 * UI16, puis reconvertir 2 * UI16 en i32
![]() |
![]() |

ou






