orka Inserito: 13 agosto 2007 Segnala Share Inserito: 13 agosto 2007 Ciao..anche io come molti preparo la tesina su step7 5.2...devo realizzare quattro semplici progettini quattro di avvio-spegnimento motore e una macchina a stati...Io conosco un pochino microwin... ma purtroppo molte procedure si svolgono in maniera completamente diversa...come tra le più semplici il richiamo di blocchi (CALL_FB..)La guida è caotica in merito, bisognerebbe avere il manuale di programmazione...che non ho...comunqueSe a qualcuno andasse di rispondere...1- Prog START_STOP: MICROWIN codice sorgente + subroutine dove sono assegnati i contatti fisici a delle aree di memoria (allarmefisico(neg) I0.0----> allarme M0.0) nel codice sorgente la subroutine viene richiamata da uno special merker che abilita un blocco di richiamo....(tra l'altro il blocco di richiamo è bellamente visibile nella finestra strumenti sulla sinistra) STEP7 Pro guida dicet: senali EN/ENO abilitano blocco di richiamo i segnali EN/ENO sono dichiarati tramite il Bit di stato BIE che quindi deve subire le operazioni SAVE,SPBB..bah..già qui siamo in alto mare Il mio problema è ben più grave di come si richiama un blocco...eh già...si perchè a questo punto mi devo chiedere:Al posto della subroutine in microwin utilizzo FB+DB per assegnare i contatti ai rispettivi merker??? Link al commento Condividi su altri siti More sharing options...
orka Inserita: 13 agosto 2007 Autore Segnala Share Inserita: 13 agosto 2007 dimenticavo...sto programmando in KOP Link al commento Condividi su altri siti More sharing options...
luigi69 Inserita: 14 agosto 2007 Segnala Share Inserita: 14 agosto 2007 Ciao non ho capito niente...scusa sono fuso......hai realizzato un programma che so.... allarmi FC10 pilotaggio uscite FC20nell'OB1 scriveraiUC FC10UC FC20UC sta per unconditioned call ovverio richiamo del blocco incondizionatamentese invece esistono due blocchi che NON devono funzionare assieme...che so... automatico e manualescriverai :U m1.0 Call FC10in presenza del merker 1.0 ( che magari deriva da alcune condizioni logiche ) chiama il blocco FC 10se invece all'interno di un segmento devi chiamare un FB , magari un blocco di parametrizzazione, scrivi :CALL FB8 , DB40 dove il bloco dati DB 40 è un blocco dati di istanza relativo al FB8scusa, ho centrato il problema o no ? Link al commento Condividi su altri siti More sharing options...
luigi69 Inserita: 14 agosto 2007 Segnala Share Inserita: 14 agosto 2007 apriti un OB1 di un programma a casoscrivici UC FC10metti il cursore sulla scritta uc e premi F1 dovrebbe apparirti l'. in linea CALL richiamo blocco ...descrizione dell'operazione..ecc ecc. Link al commento Condividi su altri siti More sharing options...
orka Inserita: 14 agosto 2007 Autore Segnala Share Inserita: 14 agosto 2007 Bene...il problema richiamo blocchi è risolto in pratica...qualche dubbio...però...il mio problema non è tecnico ma concettuale:in microwin dichiaravo i contatti in una subroutine (IPI) che richiamavo in OB1 con un caz di specialmerker che in step7 non esiste...indi per cui... io ho 4 IN (allarme,start,stop,ripristino allarme)....questi ingressi li voglio assegnare a dei merker (memoria) nella loro vera forma, alcuni sono NC e altri NA...MA DOVE!!??? Ripeto in microwin usavo la subroutine...in step7??? Cosa uso ?FB ritorna ENO, giusto?? che è 1 o 0...non va bene...DB non credo di aver capito bene come funziona visto che è una tabella dove dichiaro indirizzi e tipo di dati...niente istruzioni...DB sembrerebbe il più adatto, ma come si usa???Prima avevo:Subroutine_0 (IPI)allarme (NC): AllarmeFIS Allarme----|/|--------------( )AllarmeFIS E0.1Allarme M0.1start (NA): StartFIS Start-----| |--------------( )StartFIS E0.2Start M0.2etc.....OB1 (main)%iniziava così: _ _ ___ SM1.0 | IPI | -----| |---------| | | EN | |______|SM1.0 special merker ..("semprevero...lo chiamavamo!)Bah!!!Grazie comunque...per la disponibility Link al commento Condividi su altri siti More sharing options...
luigi69 Inserita: 14 agosto 2007 Segnala Share Inserita: 14 agosto 2007 in microwin dichiaravo i contatti in una subroutine (IPI) che richiamavo in OB1 con un caz di specialmerker che in step7 non esiste...indi per cui... io ho 4 IN (allarme,start,stop,ripristino allarme)....questi ingressi li voglio assegnare a dei merker (memoria) nella loro vera forma, alcuni sono NC e altri NA...MA DOVE!!??? Ripeto in microwin usavo la subroutine...in step7??? Cosa uso ?FB ritorna ENO, giusto?? che è 1 o 0...non va bene...scusami...ma capisco pococosa vuole dire voglio assegnare a dei merker questi ingressi nella loro vera forma ?lo schema a contatti che hai fatto tu è corretto, il principio è quellonon capisco FB ritonra ENO....DB........ ???????? vuoi associare il tuo ingresso ad un merker ?o ad una area di memoria depositata in una DB ? Link al commento Condividi su altri siti More sharing options...
orka Inserita: 14 agosto 2007 Autore Segnala Share Inserita: 14 agosto 2007 il principio è che voglio dichiarare i contatti già come NA o NC e il loro valore attuale lo salvo in dei merker...LI SALVAVO nei merker con una routine di microwin...ok? così in OB1 l'allarme era già NA lo start Nc...etc (usando i merker nelle istruzioni) Ora....che invece mi stanno facendo familiarizzare con step7 (familiarizzare tra virgolette visto la mia ignoranza a riguardo...comunque) cosa uso ???Non mi piace (e non vogliono neanche i profe) dichiarare all'inizio dell'OB 1 gli IN in gioco... dove lo faccio???Chiedo:FB ritorna solo ENO? abilitazione dell'uscita del blocco FB??? Quindi o 1 o 0???Non lo so chiedo...in tal caso non va bene, giusto??DB...cos'è??I valori attribuiti ai dati sono definiti da me o possono venire da un ingresso...se potessero venire da un IN potrei usarli per il mio scopo???Spero di essere stata un po' più chiara ora...scusa ma non è facile fare domande su qualcosa che si conosce poco...Grazie ancora Link al commento Condividi su altri siti More sharing options...
luigi69 Inserita: 14 agosto 2007 Segnala Share Inserita: 14 agosto 2007 orka........ non riesco granchè a capirti......sarà il caldo il principio è che voglio dichiarare i contatti già come NA o NC e il loro valore attuale lo salvo in dei merker...dichiarare un contatto come na o nc..ma lo stato iniziale, poi logicamente il contatto cambiaPerchè devi dichiarare al'inizio dell'OB1 gli in in gioco ?Cosa è un DB ? è un blocco dati, ovvero un blocco dove dichiaro il tipo di dato, un commento, un formato del dato ed eventualmente un valore inizialese il tipo di dati è un BIT , allora ogni "riga" del blocco dati potrà memorizzare uno stato 0 o 1se il tipo di dati è una word, potrei meemorizzare un valore , ad esempio, di conteggio, fino a 65000 e rotti, dato che la word contiene 16 bit e quindi 2 alla sedicesimacalcola che chi ti sta rispondendo ha imparato lo step 7 a calci e pugni..non sono un genio...... Link al commento Condividi su altri siti More sharing options...
orka Inserita: 14 agosto 2007 Autore Segnala Share Inserita: 14 agosto 2007 Cercherò di essere più chiara possibile ragazzi: devo richiamare un FB1 in OB1 [in KOP...NON AWL...NON FUP!!!(La guida sperpera parole per questi due linguaggi ma i miei poveri contatti nessuno se li CAG...)]....niente di più semplice...non sono capace...niente di più semplice... ci sono quei due EN e ENO che mi disturbano un pochino...in OB1 .... richiamo bloccoin OB1 come abilito EN??in OB1 dove salvo ENO (mi dice se si sono verificati errori nel blocco funz richiamato, giusto? )??E cosa me ne faccio di ENO??e una volta dentro FB1....voglio solo dichiarare: allarmeFISICO allarme-----------|/|--------------( ) startFISICO start-----------| |--------------( ) stopFISICO stop-----------|/|--------------( ) ripristinoFISICO ripristino allarme------------| |-------------( ) E0.X M0.Xingressi/contatti reali merker/memoria !?Devo usare ---(SAVE) per uscire dal blocco...ma come? --------| |--------(SAVE)Queste variabili...bene... .....bene.... E0.0-E0.3 e M0.0-M0.3 ma anche EN...(eh eh...visto che è in ingresso ad FB1)dove le descrivo... ????-fanno parte del DB1 di istanza del blocco FB1???(approposito come diavolo si scrive qualcosa nel blocco dati di istanza???sti valori formali che cazz sono?)...mi dice sempre nell'aprire DB1 che:"l'attributo di sistema adeguato non è stato impostato o manca..."-sono (IN , OUT , IN_OUT , TEMP) di FB1???? Link al commento Condividi su altri siti More sharing options...
Gianmario Pedrani Inserita: 14 agosto 2007 Segnala Share Inserita: 14 agosto 2007 Sinceramente non ho capito niente di quello che hai scritto.... comunque se vuoi richiamare un fb in un db in kop è molto semplice apri il tuo ob1 e alla tua sinistra troverai un albero dove ci sono tutte le farie funzioni, li trovi anche la funzione che richiama i vari blocchi...Per scrivere dei valori in una db devi mettere il blocco move e in un punto ci metti il lavore ed nell'altro ci metti es dbxx.dbyy dove [xx] sta a sifhificare il numero del blocco mentre [yy] la word o byte o dword che devi strivere es voglio scrivere 10 in una db 50 nella word 20 ------ | move | 20 valore che voglio trasferire db50.dbw20 word dove andra inserito il valore trasferito.ciaooooooooo Link al commento Condividi su altri siti More sharing options...
batta Inserita: 15 agosto 2007 Segnala Share Inserita: 15 agosto 2007 Come gli altri anch'io ho capito molto poco della tua richiesta.Da quel poco che ho capito però mi sembra che tu non abbia bisogno di richiamare un FB, ma un FC.All'interno dell'FC programmi le tue istruzioni e in OB1 (o da dove ti fa più comodo) richiami l'FCOra prova a scrivere in OB1 questi 4 segmenti di esempio, visualizza poi in KOP e vedi se siamo riusciti a fare un pò di luce.Segmento 1 U M 0.0 CC FC 1 Segmento 2 UC FC 1 Segmento 3 CALL FC 1 NOP 0 Segmento 4 U M 0.0 SPBNB _001 CALL FC 1 _001: NOP 0I manuali comunque non mi sembrano tanto male, forse bisognerebbe solo avere la volontà e la pazienza di leggerli. Link al commento Condividi su altri siti More sharing options...
orka Inserita: 15 agosto 2007 Autore Segnala Share Inserita: 15 agosto 2007 Grazie ragazzi risolto...scusate se non riesco bene a spiegarmi e che essendo una novella mi è poco chiaro anche il significato di alcune cose!!Avevo bisogno di un merker che fosse sempre vero---> in OB100 SET =M0.0Avevo bisogno di una funzione , mi ostinavo con FB----> ho usato FCpoi...poi...beh basta...tutto ok...programma eseguitoCiao ciaoe grazie ancora...per la pazienza soprattutto! 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