Necromante Inserito: 9 maggio 2007 Segnala Share Inserito: 9 maggio 2007 Salve a tutti!Ho una domanda: si puo passare ad una FC come parametro un array (che ho in un DB)?se si. come?ovvero nel mio DBx ho un "array[1..20] of bool" e voglio passarlo a questa FCcome faccio?grazie Link al commento Condividi su altri siti More sharing options...
batta Inserita: 9 maggio 2007 Segnala Share Inserita: 9 maggio 2007 Puoi passare l'indirizzo della prima variabile dell'array in formato ANY o POINTER Link al commento Condividi su altri siti More sharing options...
Necromante Inserita: 9 maggio 2007 Autore Segnala Share Inserita: 9 maggio 2007 Piccolo problema!A questa routine, per leggibilità e semplicità, voglio impostare come parametro in ingresso un array di bool.Dentro questa FC non ho nessun problema a configurare l'array in ingresso.Il mio problema è nel passargli questo array che ho nel mio DB.ovvero:CALL FC123 //Non gli piace !! ArrayIn:= DB456.MioArray //Non gli piace !!qualè la sintassi corretta? (Sempre se si possa fare ciò)grazie. Link al commento Condividi su altri siti More sharing options...
samm Inserita: 9 maggio 2007 Segnala Share Inserita: 9 maggio 2007 Ciao,...Non so se posso esserti di aiuto per questo argomento perche l'ho aperto i da poco senza ottenere grandi risultati.CALL FC123 //Non gli piace !!domanda stupida hai creato prima del richiamo l'FC123? Link al commento Condividi su altri siti More sharing options...
samm Inserita: 9 maggio 2007 Segnala Share Inserita: 9 maggio 2007 ArrayIn:= DB456.MioArray //Non gli piace !!Che cosa vorresti fare seconda una tua logica con questa istruzione? a prescindere dalla sintassi , vediamo se insieme riusciamo a fare qualcosa. Link al commento Condividi su altri siti More sharing options...
Necromante Inserita: 9 maggio 2007 Autore Segnala Share Inserita: 9 maggio 2007 si esite già sia l'FC che il DB Link al commento Condividi su altri siti More sharing options...
samm Inserita: 9 maggio 2007 Segnala Share Inserita: 9 maggio 2007 E' strano l'ho appena fatto , tramite la finestra insersci-blocco s7-funzione qui l'ho chiamato FC123, poi sono andato in ob1 e ho inserito CALL FC 123 , non mi ha dato nessun errore.prova ad andare sopra con il mouse vedi ce tipo di errore ti esce. Link al commento Condividi su altri siti More sharing options...
samm Inserita: 9 maggio 2007 Segnala Share Inserita: 9 maggio 2007 Altra domanda nell'interfaccia del FC123 hai dichiarato come parametro di ingresso un array? Link al commento Condividi su altri siti More sharing options...
Necromante Inserita: 9 maggio 2007 Autore Segnala Share Inserita: 9 maggio 2007 si nell'interfaccia della FC ho dichiarato come prarametro di ingresso un arraye nel db la dimesione dell'array è ugualela domanda allora diviene: qualè la sintassi per dirgli l'array del db?ovveroCALL FC123 ArrayIn:= ??????? // Cosa devo mettere qui? (sintassi puntando al DB) Link al commento Condividi su altri siti More sharing options...
samm Inserita: 9 maggio 2007 Segnala Share Inserita: 9 maggio 2007 prova a fare questo:clicca con il mouse su FC 123, poi vai suMODIFICA RICHIAMO AGGIORNA.. scrivi esattamente questo l'ho appena fatto: CALL FC 123 arrayin:=DB456.mioarrayti faccio solo una premessa io in questa prova ho dichiarato l'arrai come int sia nel fc123 che nel db 456 :FC123 DICHIARAZIONE IN NOME:ARRAYIN TIPO DI DATI:ARRAY[1..20] OF INTfai la stessa cosa vedi che succede a me non mi ha dato nessun errore Link al commento Condividi su altri siti More sharing options...
samm Inserita: 9 maggio 2007 Segnala Share Inserita: 9 maggio 2007 prova a fare questo:clicca con il mouse su FC 123, poi vai suMODIFICARICHIAMOAGGIORNA..per essere piu' preciso mi correggo:prova a fare questo in OB1:clicca con il mouse su CALL FC 123, poi vai suMODIFICARICHIAMOAGGIORNA..altra cosa se nel FC123 nella dichiarazione non scrivi esattamente questo:ARRAY[1..20] OF INTti dara un errore di compatibilita' di tipo. Link al commento Condividi su altri siti More sharing options...
samm Inserita: 9 maggio 2007 Segnala Share Inserita: 9 maggio 2007 continuando nel discorso;Il mio problema è nel passargli questo array che ho nel mio DB. AUF "db456" //apro il blocco dati 456 L "db456".mioarray[1] //carico il valore che ho nel primo dato dell'array T MW 10 //trasferisco il valore in una mwSe ti puo' essere di aiuto. Link al commento Condividi su altri siti More sharing options...
nick.kelevra Inserita: 10 maggio 2007 Segnala Share Inserita: 10 maggio 2007 (modificato) Ciao ragazzi,ho appena fatto qualche prova, ho creat un FC (FC1) e un DB (DB1).Nell'FC1 ho dichiarato come variabile di ingresso/uscita un ARRAY [1..20] OF INT e una variabile di uscita ARRAY[1..20] OF INT. A questo punto ho richiamato l'FC1 nell'OB1 provando a passare come parametro sia una variabile temporanea creata nel'OB1 (es. PIPPO ARRAY[1..20] OF INT) sia una variabile creata nel DB1 nel seguente modo |PIPPO |ARRAY[1..20] | | |INT | | (Questa è la vista di dichiarazione)Quindi ho utilizzato nelle chiamate questa variabile e non ho avuto alcnu problema. Secondo me potrebbe essere che avete commesso qualche errore nelle dichiarazioni delle variabili. Se utilizzate una variabile locale dovete utilizzare solo il nome della variabile per passare il parametro, se utilizzate un DB semplicemente "NomeDB"."NomeVariabile". Fate anche attenzione che dal momento che non state utilizzando parametri ANY (che poi dovreste gestire all'interno del blocco) ma state utilizzando dei tipi array, fate anche attenzione alla dimensione di ciò che dichiarate vale a dire il numero di elementi ma non solo, infatti anche gli indici devono corrispondere. Se avete dichiarato un parametro di IN/OUT in questo modo ARRAY [1..20] OF INT non potete passare come parametro attuale qualcosa di questo tipo ARRAY [2..21] OF INT, infatti la dimensione è uguale ma gli indici non corrispondono, se avete qualche problema inviate pure un MP, vi fornisco la mia e.mail e potete inviarmi il progetto.Ciao Modificato: 10 maggio 2007 da nick.kelevra Link al commento Condividi su altri siti More sharing options...
nick.kelevra Inserita: 10 maggio 2007 Segnala Share Inserita: 10 maggio 2007 P.S.Doveste avere dei dubbi in futuro sui passaggi dei parametri ai blocchi vi rimando al seguente manuale "Programmazione con STEP 7" da pag. 576. Nelle pagine precedenti trovate inoltre riferimenti ai parametri di tipo ANY. Il manuale riportaIl presente manuale fa parte del pacchettodi documentazione con il numero di ordinazione:6ES7810-4CA08-8EW0Bye Link al commento Condividi su altri siti More sharing options...
Necromante Inserita: 10 maggio 2007 Autore Segnala Share Inserita: 10 maggio 2007 Risolto il problema la cosa strana è che era gia tutto ok .. a mio parere si era "impastato" siemensperchè ho riprovato a mettere DbXX.NomeArray nella chiamata della FC (Cosa già fatta) e ha funzionato.Grazie a tutti! 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