roberto8303 Inserito: 5 marzo 2009 Segnala Share Inserito: 5 marzo 2009 Salve,Come dovrebbe essere il registro di input corrispondente a tre moduli di input?? Come dovrebbe essre il contenuto del registro??è una domanda su un libro ma non ho capito bene mi spiegate la risposta brevemente grazi cari amici... Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 5 marzo 2009 Segnala Share Inserita: 5 marzo 2009 il registro di input corrispondente a tre moduli di input??Dipende dalla grandezza dei moduli: 4, 8, 16 o 32 ingressi. Moltiplichi il numero dei moduli per la loro modularità ed ottieni il numero totale di bits. Dividi per 8 ed ottieni il numeor di bytes del registro d'ingresso. Per esempio se i 3 moduli avessre modularità 16 avresti 48 bitss quindi 6 bytes o 3 wordsCome dovrebbe essre il contenuto del registro??Dovrebbe essere la fotografia esatta dello stato degli ingressi al momento dell'acquisizione.TIeni presente che solitamente al temine del ciclo di programma lo stato dei registri di uscita viene copiato sulle uscite fisiche, poi lo stato degli ingressi fisici viene copiato nel registo d'ingresso, poi inizia un nuovo ciclo di programam. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 5 marzo 2009 Autore Segnala Share Inserita: 5 marzo 2009 Grazie Livio ho capito, andando avanti pero mi chiede:Costruite una addizione in un programa Memorizzate i numeri da sommare nei registri VB10 e VB12 e il risultato fate in modo che venga messo nel registro VB14...Andando sul programma step7 microwin se prendo il box ADD_R devo inserire i numeri reali da sommare e il risultato di uscita lo carico in una word...pero non ho capito che intende per memorizzare i valori nei registri VB10 e VB12 come faccio?? non posso scrivere in ingresso del box VB10 e VB12 me li mette sottolineati... il risultato fate in modo che venga messo nel registro VB14 Ma se lo metto in VB13 cambia qualcosa mi chiedo??Mi servirebbe un corso mi sa pero Livio se puoi spiegarmi almeno queste perplessita gia è qualcosa se no non vado avanti con il capitolo se non capisco bene questo e comunque grazie per la disponibilita fin ora Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 5 marzo 2009 Segnala Share Inserita: 5 marzo 2009 ADD_R è la somma in real. I numeri in real occupano 2 Double Words, ovvero 8bytes. L'esercizio, invece, ti chiede di sommare 2 bytes quindi dovra usare, se ricordo bene a memoria, ADD_B. Poi devi copiare i byte d'ingresso che vuoi sommare, uno in VB10 e l'altro in VB12. Se il risultato lo metti in VB13 anzichè in VB14, nulla cambia se usi ADD_B ma come scoprirai nel prosiguo, è meglio usare i bytes pari copsì puoi trasforbare il tutto in words più facilmente.Non so che tutoruial stai seguendo. Se scarichi dal sisto siemens il tutoriola dello S7200, e lo segui passo paaso dall'iniz[/b]io senza saltare pagine, dovresti imparare i fondamentali in poco tempo, due o tre giorni. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 5 marzo 2009 Autore Segnala Share Inserita: 5 marzo 2009 Come faccio ad inserire diversi valori in VB10 e VB12?la funzione su microwin si chiama ADD_I per i numeri interi ADD_B non la trovo Ecco propio questo non ho capito trasformare i byte in word ma quindi una doppia word chiamata VD100 nel suo interno ha 2 word che si chiamano VW100 e VW101?e inoltre andando avanti ci sono anche quattro Bytes VB100 VB101 VB102 VB 103?é lo stesso gruppo o no?ho detto una stupidaggine?cioe all inizio tutti i manuali parlano di accedere in bit byte in word e doppiaparola ma significa accedere allo stesso bit in formato diverso?oppure accedere allo stesso gruppo ma se lo facciamo in byte tralasciamo i bit successivi contenuti nelle word e doppie word?Si l ho scaricato il manuale S200 ma sto studiando sul libro Manuale di programmazione dei plc (bergamaschi) Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 5 marzo 2009 Segnala Share Inserita: 5 marzo 2009 TI rispondo a memoria perchè non ho sottomano il manuale del 200 e su questo PC nopn ho microwin.In una word c'è oil byte basso, o meno significativo, e quello alto o più significativo. Se ricordo corretamente, nel 200 (ma verifica il manuale), i bytes pari corrispondo no al più significativo, mentri i dispari al meno significativo. Quindi sposi il contenuto di un registro nel byte dispari, quello di un altro nel byte pari; idem per loaltro byte, poi esegui ADD_I con i due byte. Comunque in uno dei primi capitoli del manuale del 200 c'è spiegata l'organizzazione della memoria e questi argomenti, strano a dirsi, son spiegati molto chiaramente.Roberto, credimi, se non si studiano i manuali si fa solo casino. Link al commento Condividi su altri siti More sharing options...
busanela Inserita: 5 marzo 2009 Segnala Share Inserita: 5 marzo 2009 Ciao,la funzione su microwin si chiama ADD_I per i numeri interi ADD_B non la trovoIn effetti ADD_B non esiste; la matematica di somma, sottrazione, moltiplicazione e divisione, si può fare solo con i numeri interi.Ecco propio questo non ho capito trasformare i byte in wordPer fare somme di byte, devi prima convertire il byte in intero (menù conversione, B_I), effettuare la somma con ADD_I e riconvertire in byte (menù conversione, I_Altra strada, un pò più macchinosa, utilizzare (sempre in Matematica con i numeri interi) INC_B con un ciclo FOR NEXT, cioè incrementare il byte di 1, tante volte quante sono nel byte addendo. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 5 marzo 2009 Autore Segnala Share Inserita: 5 marzo 2009 Grazie amici per le risposte ho capito qualcosa in piu ma di sicuro a questo punto faro ricorso a piu manuali per trattare lo stesso argomento in modo che unendo fonti diverse avro un idea piu chiara per capire cio che accade all interno del plc...quindi Busanela il Byte VB10 puo essere un numero intero?cioe ora capisco se la cpu del plc conosce solo condizioni di due numeri 0 false e 1 true è normale che VB10 per lei deve rappresentare un numero e io per diglierlo utilizzero la conversione giusto busanela? Link al commento Condividi su altri siti More sharing options...
busanela Inserita: 5 marzo 2009 Segnala Share Inserita: 5 marzo 2009 (modificato) se la cpu del plc conosce solo condizioni di due numeri 0 false e 1 true è normale che VB10 per lei deve rappresentare un numero e io per diglierlo utilizzero la conversione giusto busanela?Non mi è chiarissimo ciò che intendi dire. Partiamo dalle basi: un bit è uno singolo stato logico di una cella di memoria e può essere, come dici tu, 0 false o 1 true (per es. M2.5, V10.0 A125.6, E1.1, etc.). Otto bit, con lo stesso indirizzo, compongono un Byte (per es. MB2, VB10, AB125, EB1, ...) in cui il bit basso è il bit 0, quello alto è il 7. Due byte compongono una parola (Word), per es. MW2, VW10, AW124, EW0. Noterai che l'esempio è leggermente diverso dal precedente perchè AW124 contiene AB124 (byte più significativo) e AB125 (byte meno significativo) e EW0 contiene EB0 e EB1. Facendo un'altro esempio, se il byte VB1 vale 48 ( 01100000 in binario), convertito nella rispettiva word che sarà la WB0, questa varrà sempre 48 più il segno (in binario 00000000 01100000) La conversione è un "adattamento" del byte nella propria word, per poter utilizzare gli operatori matematici.Continua pure a chiedere aiuto al forum, ma segui il consiglio di Livio, studia il manuale di sistema della 200. Modificato: 5 marzo 2009 da busanela Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 5 marzo 2009 Autore Segnala Share Inserita: 5 marzo 2009 Busanela dopo aver riletto 3 volte quello che hai scritto ora mi è molto chiaro sei stato molto esaustivo con gli esempi quello che mi serviva infatti sul manuale cè il disegno della stringa in byte word e dword ora capisco anche perche un numero 'basso' diciamo 48 che puo essere rappresentato con un byte (8bit) occorre rappresentarlo in word perche nel bit piu significativo cè anche il segno che a secondo se è 0 o 1 il valore del numero è positivo o negativo gusto? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 5 marzo 2009 Segnala Share Inserita: 5 marzo 2009 (modificato) occorre rappresentarlo in word perche nel bit piu significativo cè anche il segno che a secondo se è 0 o 1 il valore del numero è positivo o negativo gusto?Il concetto di segno ce l'hai se usi gli interi o i reali. Una word contiene un intero. L'intero può essere senza segno, quindi da 0 a 65535; oppure con segno da -32768 a 32767. Se l'intero è segnato allora il bit 15 (il più significativo) vale 1 per segno negativo.Stesso ragionamento per gli interi lunghi (doppia word) e per i char (byte). Ovviamente i limiti sono diversi. Con un byte rappresenti char senza sgno da 0 a 255, oppure con segno da -128 a 127. Se usi un byte (char) - 48 sarà rappresentato da 1011 0000, mentre 48 lo rappresenti come 0011 0000 in binario, in esadecimale avrai, rispettivamente, B0 e 30. Modificato: 5 marzo 2009 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 5 marzo 2009 Autore Segnala Share Inserita: 5 marzo 2009 Ahh finalmente ho capito anche questo il manuale serve si ed è indispensabile ma ora capisco quanto conta la vostra conoscenza ed esperienza ragazzi mi si tolgono tutti i dubbi con le vostre spiegazioni non mi manderete per caso una parcella per le risposte??? auhauh Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 9 marzo 2009 Autore Segnala Share Inserita: 9 marzo 2009 Buonasera, volevo un chiarimento sul manuale che sto studiando cè scritto VD100 contiene VW100 e VW102! ??ma perche ? io pensavo che contenesse VW100 e VW101!!Tutto nasce da un esempio di divisione che mi sto scervellando!!VW200 =4000 divisoVW202 =41=tutto inVD22023 resto in VW200 e quoziente 97 In VW202Gia facendo il calcolo con una semplice calcolatrice non mi trovo 4000:41=97,56 perche nella vd220 esce 97,23??? e poi perche si usano le word pari?non riesco a trovare un chiaro esempio di cio che succede ai bit byte e word aiutooo Link al commento Condividi su altri siti More sharing options...
rguaresc Inserita: 9 marzo 2009 Segnala Share Inserita: 9 marzo 2009 (modificato) nei plc siemens, per ragioni storiche gli indirizzi sono del tipo: <byte>.<bit> dove <byte> e' un numero intero decimale 0, 1, 2, 3 e bit un numero ottale 0, 1, ...,7se accedi alla memoria con modalita' word accedi a due byte consecutivi, in modalita' doppia word a 4 byte consecutivi; VD100 comprende VW100, VW101, VW102, VW103 che pero' si sovrappongono perche' ci sono solo 4 byte e due word indipendenti VW100 VW102.La divisione di cui parli e' per interi: 4000 / 41 = (94 con resto di 23 entrambi interi) la calcolatrice ti da il resto 23 divisa anche esso per 41 cioe' 0,56 Modificato: 9 marzo 2009 da rguaresc Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 9 marzo 2009 Autore Segnala Share Inserita: 9 marzo 2009 Ah capito il 23 è intero..Per le word indipendenti sarebbe come se fosse VD100 = VW100 e VW102 che pero prese singolarmente la VW100 è formata da VW100 e VW101? e La VW102 è formata da VW102 e VW103 siccome sono due byte cioe 16 bits?? Link al commento Condividi su altri siti More sharing options...
rguaresc Inserita: 9 marzo 2009 Segnala Share Inserita: 9 marzo 2009 la VW100 è formata da VB100 e VB101, La la VW102 è formata da VB102 e VB103, la VD100 è formata da VB100, VB101, VB102, VB103VB 8 bit / VW 16 bit / VD 32 bit Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 9 marzo 2009 Autore Segnala Share Inserita: 9 marzo 2009 ah ecco...devo provare a fare uno schema tipo albero gerarchico comunque ho capito grazie rguaresc Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 12 marzo 2009 Autore Segnala Share Inserita: 12 marzo 2009 Salve amici, ho fatto un piccolo esercizio:Ci sono due nastri il primo trasporta 6 cassette una sopra alla altra contenenti ciascuna 8 bottiglie (sensore in ingresso I0.0)Il secondo trasporta 8 cassette una sopra alla altra contenente ciascuna 8 bottiglie (sendore in ingresso I0.1i due nastri depositano ciascuno le loro casse su un nastro piu grande Devo sapere sul nastro grande quante bottiglie sono transitate ed caricare un valore di bottiglie desiderate affinche quando le cassette che sono sul nastro grande mi si dissattivi l uscita che faceva muovere i due nastri piccoliil programma l ho scritto ma ho avuto dei piccoli problemi e prima di fare varie prove volevo un consiglioHo usato due contatori C0 e C1 azionati da I0.0 e I0.1 dopo di che ho usato moltiplica numeri interi C0 * 8(bottiglie) e scrivo il risultato in VW100 e C1 *8 lo scrivo in W200 Dopo ho fatto la somma delle due word VW100 e VW200 e l ho scritta in VW300ho fatto la conversione dei numeri interi all ingresso vw300 e in uscita VD100Il numero di bottiglie desiderato l ho scritto in VD200e cosi ho fatto il confronto delle due doppie word cioe quando VD100 è maggiore di vd200 disattiva l uscita Q0.0Quando faccio il conteggio pero in vw100 aumenta il numero di 48 bottiglie (6 casse *8) ma mi cambia anche la vd100!!e la bobina non si disattiva!!ho usato lo stesso indirizzo del byte 100??perche VW100 fa parte di Vd100??non ho ancora provato a cambiare ma penso sia cosi o no?scusate la confusione!!! Link al commento Condividi su altri siti More sharing options...
batta Inserita: 13 marzo 2009 Segnala Share Inserita: 13 marzo 2009 Quando faccio il conteggio pero in vw100 aumenta il numero di 48 bottiglie (6 casse *8) ma mi cambia anche la vd100!!e la bobina non si disattiva!!ho usato lo stesso indirizzo del byte 100??perche VW100 fa parte di Vd100??non ho ancora provato a cambiare ma penso sia cosi o no?scusate la confusione!!!L'indirizzamento delle variabili è a byte.La variabile VW100 è composta dai byte VB100 e VB101La variabile VW101 è composta dai byte VB101 e VB102 (generalmente però si usano per VW e VD solo indirizzi pari)La variabile VW102 è composta dai byte VB102 e VB103La variabile VD100 è composta dai byte VB100-VB101-VB102-VB103 o, se preferisci, dalle variabili VW100 e VW102.L'area di memoria è unica per byte, word, dword. Devi tenere conto tu del fatto che una word occupa due byte e che una dword ne occupa 4. Link al commento Condividi su altri siti More sharing options...
busanela Inserita: 13 marzo 2009 Segnala Share Inserita: 13 marzo 2009 La risposta ti è già stata data nei post precedenti.la VW100 è formata da VB100 e VB101, La la VW102 è formata da VB102 e VB103, la VD100 è formata da VB100, VB101, VB102, VB103 Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 13 marzo 2009 Autore Segnala Share Inserita: 13 marzo 2009 si infatti ok devo fare solo pratica allora grazie amici 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