snafu Inserito: 23 maggio 2008 Segnala Share Inserito: 23 maggio 2008 Ciao a tutti,sto facendo un FB per la selezione di X dati di default in funzione del tipo di bobina scelta.Per cui in funzione del tipo di bobina scelta l'FB mi dovrebbe sparar fuori in uscita 15 valori di preset (per esempio il diametro minimo, diametro massimo, larghezza bobina, etc.. etc..)Sto facendo un indirizzamento indiretto per cui in funzione del numero bobina scelto carico un valore in un puntatatore "Pointer"dopodichèAUF #DB_Bobbin_Data (ingresso del FB)L DBW [Pointer_Min_Diameter] <<------- PROBLEMAT #Bobbin_Min_Diameter (uscita del FB)nel FB non mi perrmette di indicizzare la DBW "non sono ammesse operazioni indirette di FB Pointer_Min_Diameter (cosa che posso tranquillamente fare in un FC)Sbaglio qualcosa? C'è un modo per ovviare al problema??Grazie a tutti in anticipo. Link al commento Condividi su altri siti More sharing options...
TravelMen Inserita: 23 maggio 2008 Segnala Share Inserita: 23 maggio 2008 (modificato) Mi sento di chiederti subito una cosa, perché vuoi usare un FB e non un FC?Se non ho capito male tu vuoi che la tua funzione restituisca dei valori (suppongo registrati in una DB globale) in funzione ad un ingresso coretto?Per tanto la tua funzione dovrebbe fare all'incirca questo:Dato in ingresso (Suppongo INT per comodità valori da 1 a 10)Struttura dati composta da 5 INT ( sempre per supposizione)Per cui il mio puntatore al dato richiesto sarà => Puntatore = (Dato in ingresso - 1) * (5 * 2(= byte per ogni dato int))Gianluca Modificato: 23 maggio 2008 da TravelMen Link al commento Condividi su altri siti More sharing options...
Eddy_g Inserita: 23 maggio 2008 Segnala Share Inserita: 23 maggio 2008 Probabilmete il problema è nel formato del puntatore. Come lo hai scritto? Link al commento Condividi su altri siti More sharing options...
snafu Inserita: 23 maggio 2008 Autore Segnala Share Inserita: 23 maggio 2008 (modificato) Fondamentalmente hai centrato il punto.INDIRIZZAMENTO PUNTATORI:L L#160 +D T #Pointer_Preset_DiameterL L#160 +D T #Pointer_Core_DiameterL L#160 +D T #Pointer_Flange_DiameterL L#160 +D T #Pointer_WireEnd_DiameterSCITTURA DELLE USCITE IN FUNZIONE DEL PUNTATORE:AUF #DB_Bobbin_Data_BaseL DBW [Pointer_Preset_Diameter]T #Reel_Preset_Diameter AUF #DB_Bobbin_Data_BaseL DBW [#Pointer_Core_Diameter]T #Reel_Core_Diameter AUF #DB_Bobbin_Data_BaseL DBW [#Pointer_Flange_Diameter]T #Reel_Flange_Diameter AUF #DB_Bobbin_Data_BaseL DBW [#Pointer_WireEnd_Diameter]T #Reel_Wire_End_Diameter Perchè non voglio usare un FC? perchè tutte le funzioni standard che ho creato fin ora sono come FB che automaticamente genera la bella DB d'istanza che conterrà tutti i dati.Esempio FB100 calcola il diametro di una bobina in funzione della velocità di linea e della velocità bobina per cui richiamandola X volte nello stesso programma avrò X DB d'istanza, una per bobina con tutti i suoi valori.Onestamente preferirei farlo nell'FB... sempre che sia possibile... Modificato: 23 maggio 2008 da snafu Link al commento Condividi su altri siti More sharing options...
snafu Inserita: 23 maggio 2008 Autore Segnala Share Inserita: 23 maggio 2008 Probabilmete il problema è nel formato del puntatore. Come lo hai scritto?i puntatori sono dichiarati DINTho provato a copiare il tutto in un FC e lì non mi da errori Link al commento Condividi su altri siti More sharing options...
TravelMen Inserita: 23 maggio 2008 Segnala Share Inserita: 23 maggio 2008 (modificato) AUF #DB_Bobbin_Data_BaseCosì richiami una DB globale in primo luogo (lo si puo fare anche con le DB di istanza) ma allora i dati e i puntatori che vai a creare sono riferiti alla DB che vai ad aprire prima dell' assegnazione dei valori all'uscita del tuo FB, per tanto prova a fare questosupposto che con "L L#160" tu voglia indicare un dato locale e non un numero DINT (perché se vuoi puntare al dato presente nella locazione 160 della DB di istanza puoi scrivere anche L P#DIX160.0)dopo aver aperto la DB fai:L 160 SLD 3 => trasformazione di 160 in puntatoreL P#DBX0.0+DT #Pointer_Preset_Diametere cosi viaProva a dichiarare i puntatori come DWORD e non DINTMi sa che stai facendo un di confusione attento con DB di istanza e DB globali, non conosco la tua applicazione ma mi sento di dirti crea una DB globale dove vai a scrive tutti i dati che ti servono dove se devi inserire una nuova sequenza di dati non ti serve aggiungere richiami a FB con relative DB. Modificato: 23 maggio 2008 da TravelMen Link al commento Condividi su altri siti More sharing options...
snafu Inserita: 23 maggio 2008 Autore Segnala Share Inserita: 23 maggio 2008 Grazie 1000... lunedì provo.Comunque, la mia idea è questa- ho un FB100 (per esempio) che gestisce tutto l'ambaradan a cui, tutte le volte che vado a utilizzarla (x volte nel mio programma per x bobine), assegnerò una db (per esempio DB100) che automaticamente verrà creata d'istanza per il mio FB100- un parametro d'ingresso del mio FB100 è il numero di una DB globale (per esempio DB30) che contiene tutti e 15 i valori di default bobine per 20 tipi di bobine (per un totale quindi di 300 valori) dove il primo valore della prima bobina sarà alla DB30.DBW40, il primo valore della seconda bobina alla DBW42, il secondo valore della prima bobina sarà 160 Bit (10 INT) dopo e quindi alla DB30.DBW60, e via via così.- quindi il mio FB, in base al numero di bobina da te selezionato (per esempio 2) andrà ad indicizzare a DBW42 - DBW62 - DBW82 - DBW102 etc.. etc..- 15 valori di default caricati in funzione della bobina scelta verranno scritti come valore d'uscita del FB e risiederanno ovviamente nella DB d'istanza (nel caso del nostro esempio DB100Lunedì provo e poi ti faccio sapere. Intanto grazie! Link al commento Condividi su altri siti More sharing options...
TravelMen Inserita: 23 maggio 2008 Segnala Share Inserita: 23 maggio 2008 Ho commesso un errore bestiale, per fortuna ancora nessuno se ne è accorto :ph34r: Mettiamo un po di ordine:Allora adesso mi è abbastanza chiaro cosa vuoi fare allora come sospettavo tu vuoi in base la numero di bobina selezionato porre in uscita del tuo blocco i dati relativi alla bobina, bene, allora secondo me è meglio fare un FC tanto che questa funzione serve solo a preparare dei dati in funzione alla scelta fatta, in cui come valore d'ingresso metterei anche la DB da cui prelevare i dati, per tanto dovrebbe venir fuori una cosa del genere: (te la scrivo in inglese perché lo conosco meglio)OPN DB 300L #BOBINASELL 1-IL 2*ISLD 3L P#DBX42.0+DT #PUNTATORE_PRIMO_DATOECC.ECC.ECC.L DBW[#PUNTATORE_PRIMO_DATO]T PRIMO_DATO_IN_USCITASe posso consigliarti vedi di mettere apposto i dati nella DB 300, secondo me andrebbe meglio ragruppare i dati relativi alla prima bobina uno dietro l'altro, anche per una più facile lettura.buon lavoro Link al commento Condividi su altri siti More sharing options...
snafu Inserita: 26 maggio 2008 Autore Segnala Share Inserita: 26 maggio 2008 alla fine ho fatto un FCAUF DB 300L #BOBINASELL 1-IL 50*ISLD 3T #PUNTATORE_PRIMO_DATOECC.ECC.ECC.L DBW[#PUNTATORE_PRIMO_DATO]T PRIMO_DATO_IN_USCITACome mi hai giustamente consigliato tu, nella DB300 ho messo tutti i dati della bobina 1 in fila ed ho lasciato anche 5 INT spare per future applicazioni.Quindi dalla DBW0 alla DBW48 ho la bobina 1dalla DBW50 alla DBW98 ho la bobina 2dalla DBW100 alla DBW148 ho la bobina 3dalla DBW150 alla DBW198 ho la bobina 4dalla DBW200 alla DBW248 ho la bobina 5E se in un futuro il cliente volesse aggiungere altri tipi di bobine potrei tranquillamente aggiungerre a seguire nella DB.Questo è quanto... e grazie a tutti per i consigli! Link al commento Condividi su altri siti More sharing options...
TravelMen Inserita: 26 maggio 2008 Segnala Share Inserita: 26 maggio 2008 OK, mi fa piacere di esserti stato utile, ho solo da farti un appunto, quello che hai fatto è giusto ma il tuo puntatore punta alla locazione "50" giusta ma non corretta dovresti aggiungere prima dell'operazione di "trasfer" io farei :L P#DBX0.0+Dcosì facendo il tuo puntatore punta realmente alla locazione DBX50.0 e non solo a 50.0 Link al commento Condividi su altri siti More sharing options...
snafu Inserita: 26 maggio 2008 Autore Segnala Share Inserita: 26 maggio 2008 ok, grazie 1000... correggo subito. Link al commento Condividi su altri siti More sharing options...
vale.zullo Inserita: 31 agosto 2009 Segnala Share Inserita: 31 agosto 2009 Salve a tutti voi del forum.Sto sistemando un impianto elettrico a casa di un caro amico e mi sono imbattuto per la prima volta in una serranda elettrica. La classica serranda che si avvolge su se stessa per aprirsi. Ho gia fatto qualche ricerca sul forum ma ho trovato solo discussioni sul collegamento multiplo di queste o di collegamento temporizzato.Come anticipato è la prima volta che provo a collegare una serranda del genere. Usa un interruttore basculante per la movimentazione, ma dopo vari tentativi non sono riuscito a farla andare. Era un impianto elettrico vecchio (i cavi elettrici erano mantenuti a muro con i chiodi) e quindi ho una movimentazione vecchia di una decina d'anni almeno, ed ovviamente non ho nessun schema elettrico o aiuto del genere. Il cavo con guaina che va al motore della serranda è così composto:Cavo Giallo verdeCavo BluCavo NeroCavo MarroneDall'alto della mia ignoranza ho ragionato rispettando i colori e cioè:Il NERO ed il MARRONE sono le 2 fasi. Questo perchè in base a dove mando la fase la serranda o sale o scende.Il neutro sarà il BLU per avere il ritorno della fase che sta lavorando.Ecco come ho collegato nel dettaglio:Fase che va all'interruttore basculante --> Ponte nell'interruttore basculante per portare la fase per la movimentazione inversa --> dall'intterruttore basculante poi esco con due cavi, uno al nero ed uno al marrone del motore --> il blu che esce dal motore lo porto nel neutro dall'impianto.Con questo collegamento non va una mazza Fatemi sapere se ho ragionato bene con il collegamento xkè in settimana ritornerò per finirire l'impinato (si spera).Spero solo che qualche genio di pseudo elettricista che ha collegato la saracinesca per la prima volta non abbia invertito qualche cavo. Mi è stato detto dal titolare che è stato modificato qualche collegamento per baipassare i fine corsa che si erano rotti Stavo pensado come alternativa di prendere fase e neutro ed andare a collegare direttamente sul motore per fare vari tentativi. Apetto vostre notizie.Grazie.Valentino. Link al commento Condividi su altri siti More sharing options...
Sante-ISOTT Inserita: 31 agosto 2009 Segnala Share Inserita: 31 agosto 2009 Non ho capito ancora se è una serranda (tipo garage) o tapparella per finestre.Il collegamento e le colorazioni che haui rispettato doverbbero essere giusti, ad eccetto se è una serranda.... potrebbe essere che sono stati invertiti i collegamenti alla morsettiera del motore. Se è un vecchio impianto, e il motore è stato collegato dal fabbro molto probabilmente avrà utilizzato il cavo nero per il neutro ed il blu e marrone per alzare ed abbassare.Se parli di tapparella è sicuramente un guasto al motore, perchè il cavetto che esce dal motore rispetta le colorazioni che elencavi. Link al commento Condividi su altri siti More sharing options...
vale.zullo Inserita: 31 agosto 2009 Segnala Share Inserita: 31 agosto 2009 (modificato) Guarda non so che roba è. Si tratta di saracinesca per garage xkè è grossa (un paio di metri di larghezza) e perchè sta in un garage ma alla fine si avvolge su se stessa come le tapparella di casa. Ho pensato di chiamarla "tapparella" perchè non vorrei che pensaste a quei garage tipo americani con la porta che sale e scompare sotto al soffitto.Però adesso che mi ci fai pensare, mi sembra che il titolare mi ha detto che il "FERRARO" (alias Fabbro) ha poi modificato qualcosa per baipassare i fine corsa che di fatto adesso non intervengono Modificato: 31 agosto 2009 da vale.zullo Link al commento Condividi su altri siti More sharing options...
albicocco Inserita: 31 agosto 2009 Segnala Share Inserita: 31 agosto 2009 con il tester in Ohm non ti trovi comune salita e discesa? Link al commento Condividi su altri siti More sharing options...
vale.zullo Inserita: 31 agosto 2009 Segnala Share Inserita: 31 agosto 2009 con il tester in Ohm non ti trovi comune salita e discesa? Spiegati meglio,non ho capito cosa vuoi dire Link al commento Condividi su altri siti More sharing options...
fradifog Inserita: 31 agosto 2009 Segnala Share Inserita: 31 agosto 2009 Ciao Vale.Sul motore ci sono dei fine corsa,se sono rotti il motore non ti parte. Link al commento Condividi su altri siti More sharing options...
mzara Inserita: 31 agosto 2009 Segnala Share Inserita: 31 agosto 2009 se sono rotti il motore non ti parteSperiamo che non siano rotti entrambi!!!!!!! Link al commento Condividi su altri siti More sharing options...
vale.zullo Inserita: 31 agosto 2009 Segnala Share Inserita: 31 agosto 2009 (modificato) Ciao Vale.Sul motore ci sono dei fine corsa,se sono rotti il motore non ti parte.Si ci sono 2 finecorsa (uno per la salita ed uno per la discesa) che a detta del titolare sono stati baipassati da un elettricista anni fa perchè erano rotti. Tu dici che sono dei finecorsa N.C. che nel momento di rottura si interrompe il circuito? Tipo i pulsanti di STOP che uso in automazione come il PLC. Bene che mi avete aperto questa idea così almeno controllo. Modificato: 1 settembre 2009 da Luca Bettinelli sistemato il "quote" Link al commento Condividi su altri siti More sharing options...
fradifog Inserita: 1 settembre 2009 Segnala Share Inserita: 1 settembre 2009 Se non dico eresie,i fine corsa,inquanto sicurezze, dovrebbero essere sempre nc.Un altra ipotesi potrebbe essere il commutatore rotto. Link al commento Condividi su altri siti More sharing options...
Ivan Botta Inserita: 1 settembre 2009 Segnala Share Inserita: 1 settembre 2009 Se non dico eresie,i fine corsa,inquanto sicurezze, dovrebbero essere sempre nc.Esatto, devono essere nc, la sicurezza deve intervenire anche in caso si interrompa un cavo che va ai finecorsa. 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