Vai al contenuto
PLC Forum


Scrivere in un Merker Byte con Snap7


Messaggi consigliati

Sto provando il collegamento tra pc e plc, con PlcSim per S7 1200.

Per le prove sto usando il file client.cpp.Per quanto riguarda la lettura dei DB;MB;AB e EB non ci sono problemi.

Per la scrittura invece non riesco a settare per esempio il MB[0] bit 0.

Ho modificato il file client aggiungendo del codice nel seguente modo:

void MultiWrite()
{
byte MB[2];   
   TS7DataItem Items[5];

     // NOTE : *AMOUNT IS NOT SIZE* , it's the number of items

     // Merkers
     Items[0].Area     =S7AreaMK;
     Items[0].WordLen  =S7WLByte;
     Items[0].DBNumber =0;        // Don't need DB
     Items[0].Start    =0;        // Starting from 0
     Items[0].Amount   =1;       // 16 Items (bytes)
     Items[0].pdata    =&MB;

 

 //int res=Client->MBWrite(1,1,&MB);
       int res=Client->WriteMultiVars(&Items[0],1);
       if (Check(res,"Write MB 1"))
       {
        MB[1] = 0x01;   
        printf("MB0:%x\n",&MB);
        printf("Dump MB0..MB1 - Var Result : %d\n",Items[0].Result);
        if (Items[0].Result==0)
            hexdump(&MB,2);
    } 

Ma questo non funziona.

Grazie per eventuali risposte.

 

Saluti Guido.

Link al commento
Condividi su altri siti


Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...