Vai al contenuto
PLC Forum


E' possibile parametrizzare la funzione BLKMOV Any ?


AmedeoTroli

Messaggi consigliati

Avrei bisogno di copiare tutti i dati di una DB su un'altra DB.

Sull'input SRCBLK imposto un puntatore tipo P#DB1800.DBX0.0 byte 200

Sull'output DSTBLK imposto un puntatore tipo P#DB1900.DBX0.0 byte 200

E' possibile sostituire al posto della DB1800 del SRCBLK una variabile che mi permetta di cambiare il numero della DB come voglio senza cambiare il DSTBLK?

Magari esistono altre funzioni.

Grazie.

Link al commento
Condividi su altri siti


Ciao ecco un esempio

      LAR1  P##_P_Utensile_Magazzino
      L     B#16#10                     // Registra Syntax-ID nel puntatore Any
      T     LB [AR1,P#0.0]
      L     B#16#2                      // Carica tipo di area a BYTE 
      T     LB [AR1,P#1.0]              // e deposita nel puntatore Any
      L     918                         // Registra numero dei byte
      T     LW [AR1,P#2.0]
      L     #DB_UTE_num                 // Registra numero DB di origine
      T     LW [AR1,P#4.0]
      L     #Pos_partenza
      L     1
      -I    
      L     918                         // Numero byte tra un nome ed il successivo
      *I    
      SLD   3                           // Trasformato in puntatore
      L     P#DBX 922.0                 // Offset da inizio DB
      +D    
      T     LD [AR1,P#6.0]              // Carica puntatore di area nel blocco                     

      LAR1  P##_P_Utensile_Mandrino
      L     B#16#10                     // Registra Syntax-ID nel puntatore Any
      T     LB [AR1,P#0.0]
      L     B#16#2                      // Carica tipo di area a BYTE 
      T     LB [AR1,P#1.0]              // e deposita nel puntatore Any
      L     918                         // Registra numero dei byte
      T     LW [AR1,P#2.0]
      L     #DB_UTE_num                 // Registra numero DB di origine
      T     LW [AR1,P#4.0]
      L     4                           // Offset dall'inizio del DB
      SLD   3                           // Trasformato in puntatore
      L     P#DBX 0.0                   // Offset da inizio DB
      +D    
      T     LD [AR1,P#6.0]              // Carica puntatore di area nel blocco                     

// SPOSTAMENTO DATI DAL MAGAZZINO AL MANDRINO
      CALL  "BLKMOV"
       SRCBLK :=#_P_Utensile_Magazzino  // "DB_UNITA_1_SX".Magazzino_pos_x (x = 1 to 4)
       RET_VAL:=#_BLK_MOVE_Err
       DSTBLK :=#_P_Utensile_Mandrino   //"DB_UNITA_1_SX".Mandrino

La funzione sposta un blocco dati di 918Byte situato all'interno di una DB in cima al DB.

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...