Coriolano Inserito: 6 giugno 2012 Segnala Share Inserito: 6 giugno 2012 Ciao a Tutti come posso trasferire un centinaio di valori booleani interi ecc. su un unico DB da andare a leggere? Grazie a tutti Coriolano. Link al commento Condividi su altri siti More sharing options...
Vincenzo Palomba Inserita: 9 giugno 2012 Segnala Share Inserita: 9 giugno 2012 Ciao, ma questi valori che vuoi trasferire attualmente dove risiedono? In delle aree merker o cosa? Link al commento Condividi su altri siti More sharing options...
Coriolano Inserita: 11 giugno 2012 Autore Segnala Share Inserita: 11 giugno 2012 Ciao Vincenzo, io devo mettere su unico DB gli allarmi , gli stati delle utenze dalla macchina i pezzi prodotti ecc. Quindi alcune cose saranno su merker altre su ingressi/uscite altri su DB ecc. Come posso fare? Grazie Link al commento Condividi su altri siti More sharing options...
jake Inserita: 11 giugno 2012 Segnala Share Inserita: 11 giugno 2012 Ciao Coroliano; per fare quello che ti serve devi crearti una DB dove dovrai prevedere tutti gli elementi che dovrai salvare, sia Boolean che Integer ecc, dopo di che nel tuo codice dovrai scrivere nella DB i dati che ti interessano. Esempio: Copia di un bit da merker a DB U M0.0 = DBn.DBX0.0 //dove n è il numero della DB ed ipotizzo che all'indirizzo 0.0 tu metta il valore di M0.0 Copia di un integer sulla DB L MW10 T DBn.DBW10 //dove n è il numero della DB ed ipotizzo che all'indirizzo 10 tu metta il valore di MW10 Copia di un double sulla DB L MD20 T DBn.DBD20 //dove n è il numero della DB ed ipotizzo che all'indirizzo 20 tu metta il valore di MD20 Spero di essere stato chiaro. Good Luck, Jake Link al commento Condividi su altri siti More sharing options...
Coriolano Inserita: 12 giugno 2012 Autore Segnala Share Inserita: 12 giugno 2012 (modificato) Chiarissimo grazie mille, Quanto spazio ho su una unica DB? Modificato: 12 giugno 2012 da Coriolano Link al commento Condividi su altri siti More sharing options...
jake Inserita: 12 giugno 2012 Segnala Share Inserita: 12 giugno 2012 Quanto spazio ho su una unica DB? Bella domanda Sinceramente non so risponderti; credo dipenda dalla CPU che stai utilizzando. Io di solito ho usato DB abbastanza grandi e non ho mai avuto problemi, inoltre con l'utility che trovi sulla configurazione HW riesci a vedere l'occupazione di memoria dati del PLC e da quì puoi renderti conto di quanto spazio tu stia utilizzando. Good Luck, Jake Link al commento Condividi su altri siti More sharing options...
jeken Inserita: 13 giugno 2012 Segnala Share Inserita: 13 giugno 2012 dopo di che nel tuo codice dovrai scrivere nella DB i dati che ti interessano. Link al commento Condividi su altri siti More sharing options...
claudio900 Inserita: 13 giugno 2012 Segnala Share Inserita: 13 giugno 2012 Buongiorno, sto cercando di capire(autodidatta confuso) leggendo fra i vari post questo è quello che si avvicina di più a ciò che io vorrei sapere. Sto affrontando le variabili presenti in un DB globale. Vedendo dagli esempi del manuale siemens e dal corso presente su questo portale non mi è chiaro come, e da dove, potrei prendere ad esempio una MW20 come nel tuo esempio jake L MW10 // e come si fa a definirla la mw e dove!!! come fa la CPU a capire dove si trova?! è un indirizzo assoluto come db1.dbx 0 ad esempio? T DBn.DBW10 Mi spiego, se per accedere ad una data variabile DBx,w etc. , di un dato DBn, basta scrivere ad esempio DB4.DBW10, non so come e dove poter creare le mw, eb. Io sono riuscito solo a definirle nella tabella dei simboli ma poi non ho alcun riscontro!! Nella tabella dei simboli scrivo mw0 | WORD oppure eb20 | BYTE e poi?! Se provassi a caricarle, che carico il nulla? Che sono semplici locazioni di memoria pre-allocate per poterle usare in un secondo momento?! Spero che mi aiutiate. Link al commento Condividi su altri siti More sharing options...
jake Inserita: 13 giugno 2012 Segnala Share Inserita: 13 giugno 2012 Ciao Claudio900, le aree di memoria che cominciano con M sono le così dette Merker. Sono delle aree di memoria disponibili all'interno del PLC (la quantità varia a seconda della taglia della CPU utilizzata) non ritentive (in verità puoi decidere se usare una parte di Merker ritentive ) Non hai bisogno per forza di dichiararle nella lista dei simbolici. Facciamo un esempio: hai un ingresso digitale E0.0, questo ingresso deve impostare ad uno il merker M0.0 quando è attivo. Il merker M0.0 setterà ad 1 il merker M0.1 quando è attivo. L'ingresso digitale E0.1 setterà a 0 M0.1 quando è attivo. U M0.0 S M0.1 //in questo caso M0.1 rimarrà a 0 perchè M0.0 non è stato ancora scritto da nessuno, di default è FALSE o 0. U E0.0 = M0.0 U M0.0 S M0.1 //in questo caso M0.1 andrà a 0 perchè M0.0 è stato scritto da E0.0. U E0.1 R M0.1 //Viene resettato M0.1, il suo valore diventa nuovamente 0 Spero che sia stato di aiuto. Good Luck, Jake Link al commento Condividi su altri siti More sharing options...
claudio900 Inserita: 14 giugno 2012 Segnala Share Inserita: 14 giugno 2012 Grazie per la risposta jake, era una cosa evidente ma che non riuscivo a vedere. Un ultima cosa: un dato che arriva in ingresso di tipo word, quindi una EW , in questo caso si parla di input analogico giusto?! Se volessi assegnare ad un merker quindi una MW n quel dato EW n ricevuto in ingresso si farebbe cosi?! UW EW byte.bit = MW byte non so se ho scritto una baggianata perdonami. Spero sia una tua svista altrimenti mi demoralizzo perchè non ci ho capito nulla!!! U E0.0 = M0.0 U M0.0 S M0.1 //in questo caso M0.1 andrà a 1 perchè M0.0 è stato scritto da E0.0. Ciao Jake! grazie ancora! Link al commento Condividi su altri siti More sharing options...
jake Inserita: 14 giugno 2012 Segnala Share Inserita: 14 giugno 2012 Ciao Claudi900; gli ingressi analogici sono sì dati i tipo intero, ma al contrario dei booleani si interrogano con il comando L (ovvero Load, carica) e si indicano come PEW. Nel tuo caso dovresti scrivere questo, premesso che l'ingresso analogico sia PEW124 ed il merker sia MW0, il codice sarà come segue: L PEW124 //Carica in AR1(Registro di sistema) il valore di PEW124 T MW0 //Trasferisce il valore letto da PEW124 su MW0 (passando da AR1) Ricordati che tutti i valori diversi da BOOLEAN (INT, DINT, WORD,BYTE, REAL) vanno maneggiati coi comandi L(per scrivere su AR1 il dato) e T(per trasferire da AR1 sulla memoria target); Spero di essere stato chiaro Good Luck, Jake Link al commento Condividi su altri siti More sharing options...
claudio900 Inserita: 14 giugno 2012 Segnala Share Inserita: 14 giugno 2012 Molto chiaro Jake! questo mi fa capire quanto ancora debba apprendere ma non mi scoraggio! grazie ! Link al commento Condividi su altri siti More sharing options...
jake Inserita: 14 giugno 2012 Segnala Share Inserita: 14 giugno 2012 Non mollare mai, anche se la strada è lunga, perchè comunque è molto soddisfacente - almeno da parte mia - programmare i PLC. Io ti consiglio di dare un occhio ai manuali siemens, che sono fatti bene ed hanno anche molti esempi. Good Luck, Jake Link al commento Condividi su altri siti More sharing options...
Coriolano Inserita: 26 giugno 2012 Autore Segnala Share Inserita: 26 giugno 2012 Ciao a tutti e grazie per l'aiuto e il sito molto bello. pongo questa domanda: come comunicano il PLC tramite CP343 e un protocollo OPC? posso evitare di usare un fornitore OPC e andare direttamente su un PC in maniera autonoma? Grazie per i chiarimenti a tutti Coriolano. Link al commento Condividi su altri siti More sharing options...
caracarogna Inserita: 30 giugno 2012 Segnala Share Inserita: 30 giugno 2012 Beh, puoi inviare i dati via socket TCP o UDP. Link al commento Condividi su altri siti More sharing options...
caracarogna Inserita: 30 giugno 2012 Segnala Share Inserita: 30 giugno 2012 Beh, puoi inviare i dati via socket TCP o UDP. Controlla le seguenti funzioni: TCON : Crea la connessione TCP o UDP TDISCON : Distrugge la connessione TSEND : Invia un'area dati su una connessione definita TRCV: riceve un'area dati da una connessione definita Per FW precedenti al 3.x la connessione la configuri da NetPro e usi AG_Send AG_Recv per inviare e ricevere ... Se vuoi fare qualche test puoi usare Hiperterminal, basta che lo metti in ascolto sulla porta giusta :-) e poi ci mandi qualche cosa dal tuo S7-300 ... ... Fare un po di palestra aiuta ;-) Link al commento Condividi su altri siti More sharing options...
Coriolano Inserita: 19 dicembre 2018 Autore Segnala Share Inserita: 19 dicembre 2018 Grazie molte Link al commento Condividi su altri siti More sharing options...
TdbPlc Inserita: 3 dicembre 2019 Segnala Share Inserita: 3 dicembre 2019 Il 6/6/2012 alle 15:20 , Coriolano ha scritto: Ciao a Tutti come posso trasferire un centinaio di valori booleani interi ecc. su un unico DB da andare a leggere? Grazie a tutti Coriolano. 3D tutt'ora interessante 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