STEU Inserito: 4 settembre 2017 Segnala Inserito: 4 settembre 2017 Buongiorno sono appena passato a Tia Poeta cnn un PLC 1500 e chiedo scusa se la domanda può sembrare banale. se ho un parametro in un FB (Ad esempio PIPPO come input bool) con STEP 7 potevo scrivere : L P##PIPPO LAR 1 in TIA portal versione 13 mi dice che_ L P##PIPPO non è corretta in quanto non si può puntare ad un parametro di ingresso. Qualcuno sa come posso ovviare senza caricare in AR1 l'indirizzo in maniera fissa: Es L P#DIX0.0 grazie
ken Inserita: 4 settembre 2017 Segnala Inserita: 4 settembre 2017 se lavori con gli array e con db ottimizzati non ti serve più indicizzare con i puntatori ma puoi usare un numero che punta dritto al numero dell'array. prova a cercare in rete o nell'.. puntatori array. anche io oggi stavo convertendo alcune funzioni vecchie s7 in tia dove dovevo controllare alcuni dati inseriti in un blocco dati attraverso hmi. prima lavoravo in awl con i puntatori e avevo strutturato il db per facilitare le cose. ora ho ribaltato il tutto. il db è strutturato ad array e con una piccola funzione in scl ho fatto la stessa cosa esempio pratico ho 40 righe con n dati per riga, tutti ugiali in s7 300 avevo il blocco dati strutturato a righe e ogni riga era uno struct (perciò 40) dove avevo n dati da verificare. con i puntatori leggevo le variabili e confrontavo ora in tia faccio un array per ogni dato percio avrò: "Blocco dati hmi" che contiene dato 1 - array [1..40] of int; dato 2 - array [1..40] of string etc etc voglio leggere uno di questi int? scritto in awl l "Blocco dati hmi".dato 1[variabile] dove variabile è il numero da 1 a 40 del mio array praticamente col tia bisogna rivedere alcune cose per poterlo sfruttare bene. la bellezza di questo modo di lavoro è che puoi benissimo usare i puntatori anche in kop
ken Inserita: 4 settembre 2017 Segnala Inserita: 4 settembre 2017 nel tuo caso, prova a copiare pippo in una variabile temp.
STEU Inserita: 4 settembre 2017 Autore Segnala Inserita: 4 settembre 2017 Grazie Ken domani provo, quello che non volevo fare era proprio non dover convertire alcuni blocchi fatti in AWL che con 10 righe do codice ti fanno quello che in SCL una volta compilato è lungo 5 volte di più, cosa probabilmente forse non importante visto le dimensioni delle memori del 1500
ken Inserita: 5 settembre 2017 Segnala Inserita: 5 settembre 2017 strano, scl è nettamente più snello
batta Inserita: 5 settembre 2017 Segnala Inserita: 5 settembre 2017 Quote quello che in SCL una volta compilato è lungo 5 volte di più, Quote strano, scl è nettamente più snello Nel 300/400 tutto quello che si scrive in altri linguaggi (KO, FUP, SCL) viene convertito in AWL. Le stesse cose scritte in SCL generavano un codice AWL molto più complesso. Con il 1200/1500 non è più così.
STEU Inserita: 5 settembre 2017 Autore Segnala Inserita: 5 settembre 2017 Nell' immagine vedete il programma che devo tradurre gli input sono 4 booleani, e l' uscita è un integer il programma serve per darmi come risposta il numero considerando che i 4 input sono peso 1,2,4,8. Andare a scomodare SCL oppure farlo a contatti mi sembra una cosa esagerata, questo è veramente un fc da 5 righe di codice
batta Inserita: 6 settembre 2017 Segnala Inserita: 6 settembre 2017 Sarà meno elegante, ma potresti fare così: L 0 T #tmpCodice U #Input_1 = #tmpCodice.%X0 U #Input_2 = #tmpCodice.%X1 U #Input_3 = #tmpCodice.%X2 U #Input_4 = #tmpCodice.%X3 L #tmpCodice T #Codice
STEU Inserita: 6 settembre 2017 Autore Segnala Inserita: 6 settembre 2017 Grazie Batta vedo che si può accedere ai bit di una variabile, devo studiarmi bene tia con calma grazie di nuovo
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