jumpier Inserito: 9 novembre 2002 Segnala Inserito: 9 novembre 2002 Ciao a tutti!Ho iniziato da poco ad usare Step 7 ed avrei una domandina da porre.Dunque, io ho a disposizione una cpu 318 2DP; i DB sono stati definiti da persone di terze parti ed in particolare contengono variabili dichiarate come "INT" interi, "DINT" doppi interi o struture a word raggruppanti ognuna 16 variabili "BOOL" booleane e cioè espresse a bit. Ora il problema che ho riscontrato è che non riesco ad utilizzare il blocco in KOP per effettuare l'operazione di AND a word ma devo tassativamente passare all'AWL. Per spiegarmi meglio faccio un esempio:1)-DB5.DBW0 è definita di tipo INT2)-DB5.DBW10 è una struttura che racchiude 16 bit (da DB5.DBX10.0 a DB5.DBX11.7)Se uso il blocco KOP per effetture l'operazione di AND a WORD tra le due variabili citate in precedenza, il compilatore mi restituisce un errore su DB5.DBW0.L'alternativa rimane scrivere il seguente codice in AWL:L DB5.DBW 0L DB5.DBW 10UWT LW0 ecc...Qualcuno di Voi sa dirmi se posso rimediare a tale inconveniente? Oppure se trasformo le variabili di tipo "INT" in tipo "WORD" le cose migliorano? Ed il programma ha bisogno di qualche accorgimento o no? Grazie a tutti per l'aiuto.Ciao, Jumpier
Infoplc Inserita: 9 novembre 2002 Segnala Inserita: 9 novembre 2002 Il KOP non lo puoi usare per tutto, secondo me ti conviene imparare AWL anche se è un pò incasinato una volta che lo conosci riesci a risolvere molti problemi e sopratutto ti permette di risparmiare un sacco di memoria.
jumpier Inserita: 9 novembre 2002 Autore Segnala Inserita: 9 novembre 2002 Infoplc+Nov 9 2002, 08:47 PM-->CITAZIONE(Infoplc @ Nov 9 2002, 08:47 PM)Ciao InfoplcIl problema non è usare l'AWL, quanto il fatto che il cliente finale richiede il programma tassativamente sviluppato in KOP per agevolare la teleassistenza sulle sue macchine. Qualche idea in merito su come ovviare al problema?Ciao e grazie - Jumpier
rguaresc Inserita: 10 novembre 2002 Segnala Inserita: 10 novembre 2002 Ciao JumpierNon è tanto il compilatore a creare il problema, ma il filtro dell'editor del KOP che è rigido, teutonico. Se imposti DB5.DBW0 va a controllare il tipo credendo di farti un favore.Per ingannarlo, se il DB è uno solo apri, prima, separatamente il DB5 e, poi, come input scrivi solo DBW0, DBW10 così non sapendo a quale DB si riferiscono l'editor non farà resistenza.Se i confronti sono tra DB diversi cancella provvisoriamente i due DB.SalutiR.G.
Infoplc Inserita: 10 novembre 2002 Segnala Inserita: 10 novembre 2002 jumpier+Nov 9 2002, 07:55 PM-->CITAZIONE(jumpier @ Nov 9 2002, 07:55 PM)
jumpier Inserita: 10 novembre 2002 Autore Segnala Inserita: 10 novembre 2002 OK, grazie a tutti per l'aiuto. L'idea di aprire prima il DB è buona ma purtroppo la posso sfruttare in pochissime occasioni visto che i DB a cui ci si riferisce con una sola riga di programmazione sono 4 o 5 alla volta. Se possibile, però, vorrei ancora sapere una cosa; se cambio la definizione delle variabili contenute nei DB da "INT" a "WORD", ottengo delle migliorie? Ma soprattutto comprometto il buon funzionamento del programma? Chiedo ciò perchè sto lavorando su di un programma piuttosto complesso NON di mia realizzazione e quindi necessiterei di sapere se in linea di massima vi sono delle controindicazioni.Grazie ancora - Jumpier
rguaresc Inserita: 10 novembre 2002 Segnala Inserita: 10 novembre 2002 JumpierCambiando la definizione delle variabili esistenti potresti causare l'impossibilità di vedere in KOP parti di programma già fatte.Per non correre rischi potresti trasferire le variabili che ti interessano;Le istruzioni logiche a parola lavorano in modo "bitwise" cioè bit a bit senza considerare la struttura formale dei 16 o 32 bit. Puoi senz'altro trasferire le variabili usando il MOVE che non modifica la posizione dei bit e ti permette di passare da un tipo di dati a un altro.Un altro consiglio: cancella dalla lista dei simboli l'attribuzione del simbolo al DB, perché se c'è avvia il solito meccanismo di controllo del tipo.SalutiR.G.
Nazari Luca Inserita: 11 novembre 2002 Segnala Inserita: 11 novembre 2002 jumpier+Nov 10 2002, 02:37 PM-->CITAZIONE(jumpier @ Nov 10 2002, 02:37 PM)Potresti ovviare al problema nel segunete modo:dall'editor KOP/FUP/AWL clicca su Strumenti -> Impostazioni.Seleziona la cartella KOP/FUP controlla che non sia selezionato Controlla tipo di operando.In questo modo l'editor non controlla che i tipi di dati siano uguali.Saluti
jumpier Inserita: 11 novembre 2002 Autore Segnala Inserita: 11 novembre 2002 Grazie a tutti per l'aiuto; ho risolto semplicemente seguendo il consiglio di Nazari Luca. Lo so, forse era una banalità e potevo pensarci da solo ma siccome sono alle prime armi .... forse sono perdonabile Ciao a tutti e buon lavoro
Nazari Luca Inserita: 12 novembre 2002 Segnala Inserita: 12 novembre 2002 Occorre aggiungere che con questa soluzione risolvi il problema, ma che in questo modo se sbagli istruzione, per esempio con un DINT utilizzi una istruzione KOP ==I l'editor non ti da nessun errore, ma il tuo dato viene trattato in modo errato.Potresti anche provara a convertire la dichiarazione da Word o DWord a INT o DINT. Oltrettutto in questo modo la visualizzazione in On-line del DB ti rappresente valori contenuti in formato numerico e non esadecimale.Saluti
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