Bonjour à tous,

Je dois récupérer des variables (type DM ou CIO) en cours de fonctionnement d'un API Omron, J'ai fais l'interface en Delphi 6.

Il me reste un problème à gérer, c'est l'adresse mémoire à lire, dans le tableau suivant, les bytes 13 et 14 sont réservés pour l'adresse mémoire à lire.

Comment je dois gérer l'adresse "D150" par exemple, j'ai essayé de la convertir en bin (16 octets) pour la scinder en 2 ou dire buffer[13] = 1 et buffer[14]=80 en décimal / 50 en hexa ?

La réponse de l'API est :

C0.00.02.01.02.00.01.01.00.01. / 01.01.85.01.00.01.

Aussi, j'ai constaté que la connexion avec Socket ne se fait qu'avec le port 9600 ?


buffer[0]:= Chr ($80); // (Information Control Field)
buffer[1]:= Chr ($00); // Reserved
buffer[2]:= Chr ($02); // (Gate Count). Indicates how many PLCs used as network
buffer[3]:= Chr ($00); // (Destination Network Address).
buffer[4]:= Chr ($02); // Destination Node)
buffer[5]:= Chr ($00); // (Destination Unit). Set this for 00
buffer[6]:= Chr ($00); // (Source Network Address)
buffer[7]:= Chr ($01); // Source Node
buffer[8]:= Chr ($00); // (Source Unit). Set this for 00
buffer[9]:= Chr ($00); // (Service Identifier) Compteur
buffer[10]:= Chr ($01); // FINS command for 'Read'
buffer[11]:= Chr ($01); // FINS command for 'Read'
buffer[12]:= Chr ($82); // 82 Memoire DM // B0 Memoir CIO 0101B00064000001
buffer[13]:= Chr (1); // The channel number (64 is the HEX of 100).
buffer[14]:= Chr (80); // The channel number (64 is the HEX of 100).
buffer[15]:= Chr ($00); // bit position, which is always 00 when reading or writing by channel
buffer[16]:= Chr ($00); // the number of items to read.
buffer[17]:= Chr ($01); // the number of items to read.


Merci de votre aide