Bonjour à tous,

Je travaille actuellement sur la communication entre un automate TSX Premium P57302 et une carte onduleur MGE UPS.

Sur mon rack automate, j'utilise une carte SCY21601, accompagnée d'une SCP 114.
Le cordon CM 4030 est configuré avec polarisation et avec adaptation:

Marron/blanc sur borne L+
Blanc/Orange borne L+
Vert/blanc borne L+


Orange/blanc borne L-
Blanc/vert borne L-

La carte onduleur avec laquelle je veux communiquer est sur une liaison 2 fils

Blanc borne L+

Marron borne L-


Mon problème est que je n'arrive pas à récupérer des trames correctes de la carte onduleur (qui est elle configurée sans polarisation, vu que le maître le fait, et avec adaptation).
Sur l'écran de diagnostic voie 1 de la carte TSX SCY 21601 sous PL7PRO, je ping bien mon esclave 1("echange correct" mais pas à tous les coups), mais lors d'une requête READ_VAR dans le programme, je recois rien, "réception avec erreur CRC", et "caractère incorrect" (toujours sr l'écran de diagnostic online SCY21601)

Le module SCY 21601 est en 7 ème position sur le rack.

Dans les mots de controle de la fonction READ_VAR, je recois 16#0FDD cn code d'erreur.

Le premier mot à lire dans la carte onduleur se trouve à l'adresse 40



Voici ma commande dans PL7:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
IF %MW100:X0 AND NOT %MW300:X0 AND NOT %M50 THEN
    %MW300:4:=0;(* Initialisation du buffer de reception des données*) 
    %MW302:=50;(* Timeout 5000ms *) 
    SET %M50;(* Requete en cours *) 
    READ_VAR(ADR#7.1.1,'%MW',40,2,%MW200:2,%MW300:4);(*1 Mot est lu dans l'esclave 1 et placés dans le mot %MW200 du maitre*) 
END_IF; 


IF %M50 AND NOT %MW300:X0 THEN 
    INC %MW304;(* Incrementation Compteur de requêtes émises*) 
    RESET %M50;(* Reset requête en cours *) 
    IF %MW301=0 THEN (* si pas d'erreur *) 
        INC %MW305;(* Incrementation Compteur de requêtes bonnes *) 
        SET %M30;(* Bit à 1 apres echange correct *) 
    ELSE (* si erreur *) 
        INC %MW306;(* Incrementation Compteur de requêtes mauvaises *) 
        %MW307:=%MW301;(* Code erreur derniere requete mauvaise *) 
        RESET %M30; 
    END_IF; 
END_IF;

Je n'arrive pas à comprendre les erreurs de CRC.
Merci pour votre aide!