claudio Inserito: 30 aprile 2018 Segnala 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
Oraz85 Inserita: 12 ottobre 2018 Segnala 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
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