Canaia Inserito: 6 settembre 2017 Segnala Share Inserito: 6 settembre 2017 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 More sharing options...
Tugnela Inserita: 8 settembre 2017 Segnala Share Inserita: 8 settembre 2017 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 More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora