claudio Inserito: 30 aprile 2018 Segnala Share Inserito: 30 aprile 2018 Gentilissimi frequentatori del forum Buon pomeriggio. Ho un problema che proprio non so come risolvere; cerco di spiegarmi il meglio che posso. Lavoro in una scuola e ho una postazione di lavoro dove un PLC Bosch è collegato via profibus con due servodrive Ecodrive. Tanti anni fa svevo scritto una routine per la gestione del posizionamento degli assi avvalendomi di CoDeSys e dei puntatori. Per esigenze didattiche, vorrei sostituire il PLC Bosch con un S7-1500, aggiornando la routine. La routine dovrebbe ricevere in ingresso l'indirizzo base dell'area di memoria nella quale si trovano i parametri del servodrive più altri parametri come velocità e accelerazione; internamente alla routine, tali parametri sono opportunamente elaborati e trasferiti negli indirizzi corrispondenti dell'area di memoria. Di seguito ho riportato quanto avevo fatto in CoDeSys: dapprima la chiamata alla funzione PosStart( Axis_base_addr_CTRL:=ADR(Axis_2_base_address_CTRL), axis_base_addr_STAT:=ADR(Axis_2_base_address_STAT), position:=0.0, velocity:=300.0, acceleration:=130, deceleration:=130, start:=TRUE); e poi una parte del contenuto della funzione FUNCTION PosStart: Bool VAR_INPUT axis_base_addr_CTRL,axis_base_addr_STAT:POINTER TO DWord; position,velocity,acceleration,deceleration:REAL; start:Bool; END_VAR VAR tmp0:Real; tmp:DWord; pt:Pointer TO DWord; END_VAR IF start = TRUE THEN pt := axis_base_addr_CTRL; tmp0 := position * 10000; tmp := REAL_TO_DWORD(tmp0); pt := pt + 2; pt ^ := ROR(tmp, 16); ...... Il mio problema è che proprio non so come fare in TIA Portal a convertire la funzione: non riesco ad assegnare un indirizzo a un puntatore, a incrementare il puntatore, a assegnare un valore a una variabile puntata da un puntatore. Chiederei se ci fosse qualcuno che mi potesse dare qualche indicazione a tal proposito, anche perchè finora le mie ricerche in rete sono state infruttuose. Vi ringrazio per il tempo che potrete dedicarmi. Ciao. Claudio Link al commento Condividi su altri siti More sharing options...
Oraz85 Inserita: 12 ottobre 2018 Segnala Share Inserita: 12 ottobre 2018 Quì puoi trovare un manualetto rapido sull'indicizzazione dei dati in simbolico su S7-1500. Chiaramente si potrebbe utilizzare anche un puntamento assoluto (su indirizzo) ma, visto che S7-1500 mette a disposizione possibilità di programmazione completamente simboliche sarebbe meglio sfruttarle: https://support.industry.siemens.com/tf/it/en/posts/indirect-access-s7-1500-indicizzazione-dei-dati-su-s7-1500/200654/?page=0&pageSize=10 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