Vai al contenuto
PLC Forum


Ricerca automatica


Canaia

Messaggi consigliati

Buongiorno è la prima volta che scrivo in questo forum.

Sto cercando di imparare il linguaggio ST del codesys, però mi sono intoppato in una parte del programma dove devo spostare delle array appartenenti ad 2 struct.

Sto cercando di riuscire ha creare una ricerca automatica, facendo un paragone da una variabile nel HMI (find_art) a quelle all'interno di un'array, per poi riuscire ha spostare quelle uguali in un'altra array( struct FIND).

Spero che si capisca quello che sto cercando di fare, comunque scrivo il codice che ho scritto finora.

Grazie a tutti.

Andrea

 

PROGRAM RICERCA_ART
VAR
 ind_art: int;
 find_art: STRING;
 trova_art: BOOL;
 ind_find_art:int;
 e: INT;
 val: int;
 i: INT;
 ls: int;
 lx: INT;
 trova_artic: BOOL;
END_VAR
VAR_OUTPUT
 ok: BOOL;
END_VAR
VAR
 t: INT;
 out_find: int;
 stp: int;
END_VAR

 

-----------------------------------------

IF trova_artic=1 THEN
 FOR ind_art:=1 TO 99 DO
  t:=1+t;
         //ricerca delle stringe
         ls := LEN(Scaffale[ind_art].articoli);
         lx := LEN(find_art);
         IF ls < lx OR lx = 0 THEN RETURN; END_IF;
         stp := ls - lx + 1;
         FOR i := MAX(1,1) TO stp DO
         IF MID(Scaffale[ind_art].articoli,lx,i) = find_art THEN
         out_find := i;
      
         IF out_find <> 0  THEN
     
         ok:=1;
         END_IF;
         RETURN;
         END_IF;
         END_FOR;
    
     IF ok=1 THEN
     
     find[E].articoli1:=Scaffale[ind_art].articoli;
     find[E].cassetto1:=Scaffale[ind_art].cassetto;
     find[E].prelleva1:=Scaffale[ind_art].prelleva;
     END_IF
       
END_FOR;

 IF OK=1 THEN
  e:=e+1;
  END_IF;
END_IF
ok:=0;
out_find := 0;
 t:=0;
e:=0;
 


Link al commento
Condividi su altri siti


Ciao Canaia ,

prima di darti delle info , mi permetto di farti delle domande per capire bene come e con cosa sati agendo , verificando anche dove , nel forum hai scritti al tua richiesta :

- Stai facendo questa modifica per un PLC o/e un modulo della Moeller ? Se si quale ? Altrimenti ti è possibile spiegare quale ? 

- Che software usi per fare_modificare il programma in questione ?

- il software gestiste un solo modulo o sono più moduli comunicanti ? se si che tipo di comunicazione hanno seriale o altro ?

 

Canaia come ti ripeto è per capire , dato che se ho capito quello che chiedi ( scusa s e ti faro altre domande ) puoi dipendere e ci sono vari metodi ,ma logicamente può dipendere da varie variabile , se logicamente ho capito la tua richiesta .

 

Per il momento una buona notte

Ciao

Tugnela

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