Vai al contenuto
PLC Forum


Valori digitali


nikopoli

Messaggi consigliati

Supponiamo  38400, 8N1 Modbus RTU master: la word sarà (in binario):

0000110010100001b, che in esadecimale è 0x0CA1, quindi dovrai fare:

MOV H0CA1 D8120

In colore ti ho evidenziato i singoli elementi della tabella.

Link al commento
Condividi su altri siti


Stefano Dellanoce

Cominci da sinistra a comporre i bytes facendo così:

8 bit, quindi tieni 1

parity nessuna quindi tieni 00 che, per adesso, fa 001

stop bit 1 bit, che corrisponde a 0 quindi adesso hai 0001

Baud rate (velocità) a 19200 (Mitsubishi di più non fa) quindi tieni 1001 che aggiunto ai bit precedenti fa 10010001

gli altri due bit (forbidden) sono a 0 quindi 0010010001

Setti il MODBUS come slave ( e darai i comandi di lettura e scrittura da Arduino o altro) ed hai 010 che aggiunto a quelli sopra fa 0100010010001

poi altri tre 0 (forbidden) e i tuoi bytes diventano 0000100010010001 che tradotto in esadecimale (cerchi convertitore esadecimale in google) fa 891

Quindi copi questo valore su D8120 con      LD M8000 ---[ MOV H891 D8120]-

muovo anche K20 sul D8129 e muovo K1 sul D8121 (il nr. dell'interfaccia)

Link al commento
Condividi su altri siti

Stefano Dellanoce
3 ore fa, Livio Orsini ha scritto:

 

Forse intendi dire che il tempo di scansione è molto piccolo quindi la velocità è molto elevata.

 

 

Questo certamente non è molto professionale.  Non c'è nemmeno bisogno di contare i cicli, si possono fare facilmente delle misure del tempo di ciclo;anzi molti PLC lo fanno direttamente e lo mettono a disposizione in un dato di memeoria.

 

Hai ragione, il tempo è molto piccolo, mi sono espresso male intendevo dire che il numero di cicli nel tempo è molto elevato.

Per quanto riguarda il tempo di ciclo, ad oggi, non mi è mai interessato perché ho sempre fatto macchinari nell'industria del vetro, linee automatiche per vetrocamera dove entra la lastra di vetro ed esce il doppio vetro da inserire nel serramento, quindi nel tempo che ci mette una elettrovalvola per attivarsi il plc ha già fatto migliaia di cicli...

Sicuramente sarà poco professionale ma oggi come oggi il tempo di ciclo a cosa serve quando sai già che i PLC moderni sono velocissimi?

Link al commento
Condividi su altri siti

Ahhhh, grazie mille adesso ho capito io provavo ad inviare direttamente la serie binaria e sbagliavo in quanto doveva essere convertita in esadecimale! Un altra domanda, mi pare di aver capito che per leggere i dati dalla slave usi from e per inviarli usi To. Ma non mi è chiaro cosa sia il primo parametro perché anche qui penso a questo punto che sia in esadecimale. 

AED36FBF-EE26-4C57-862F-7FB1C09D2E21.png

Link al commento
Condividi su altri siti

Stefano Dellanoce

Devi ricordare che qualsiasi cosa comincia per H è un dato esadecimale.... 😀

Per quanto riguarda le istruzioni FROM e TO, non le ho mai usate perché io il Modbus lo uso mettendo il PLC in SLAVE con tre righe di ladder e tutto il lavoro lo faccio sul Master, che nel mio caso è un WeMos che legge dati dal PLC FX3u, li manda sul data base, dal MySql li leggo su pagina HTML, li modifico, li rimando al WeMos e il Wemos li scrive sul PLC.

Quindi nessun sbattimento sul PLC e poche istruzioni sul Wemos con la libreria ModbusMaster.h

 

Link al commento
Condividi su altri siti

Ah no io invece lo devo usare come master... quindi mi servirebbe capire come funzionano from e to o meglio il concetto dovrei averlo capito ma non so cos’è quel dato 

Link al commento
Condividi su altri siti

Ricorda che non hai un vero Mitsubishi. Hanno integrato il modulo Modbus (che di serie sugli FX2N non c'è) con il quale (come tutti i moduli non I/O digitali) comunica con il PLC mediante TO e FROM. TO per inviare dati al modulo (quindi trasmettere Modbus) e FROM per leggere dati dal modulo (ricezione Modbus).

Dalla tabella, mi par di capire che quello che non hai chiaro è il parametro M1. Come si vede lella descrizione, la word è divisa in due byte. Quello basso indica l'indirizzo dello slave, quello alto il codice della funzione Modbus che andrai ad utilizzare.

Supponiamo che vuoi leggere dei dati dallo slave numero 5, allora avrai numero slave H05 e comando Modbus H03 (leggi registri), allora M1 sarà H0305.

Link al commento
Condividi su altri siti

1 ora fa, Stefano Dellanoce ha scritto:

Sicuramente sarà poco professionale ma oggi come oggi il tempo di ciclo a cosa serve quando sai già che i PLC moderni sono velocissimi?

 

Sono velocissimi rispetto ad un processo lento; però non ci sono solo processi lenti.

Poi c'è la questione di una metodologia più o meno corretta.

Lo chiarisco conn un esempio. Se hai un alimentatore che eroga 5 A continuativi e tustai collaudando un circuito che dovrebbe assorbire <1A a cosa serve aver calcolato la corrente assorbita in modo esatto? Serve per verificare che non ci sia un assorbimento anomalo. Così la verifica del tempo di ciclo ti da un'indicazione se hai ottimizzato bene, se non c'è qualche giro di pista a vuoto e, soprattutto, se ci fossero forti variazioni del tempo di ciclo, capire se c'è qualche anomalia.

Io mi sono formato programmando microcontrollori (a partire dallo F8) ed acquisito una mentalità che ho mantenuto anche con i PLC, anche se da un po' di anni a questa parte, ho (fortunatamente) smesso di usarli.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Stefano Dellanoce

Sulla metodologia, Livio, sfondi una porta aperta. Sono molto rigido anche io, venendo dalla "vecchia scuola" e preferendo ancora il buon vecchio ladder anche al C++ che nei PLC mi pare oltremodo inutile, ma qui so di scontrarmi con la new generation che preferisce ore e ore di programmazione alla sintesi e alla semplicità (con lo stesso risultato, s'intende!).

Poi, per ciò che riguarda il tempo di ciclo, è una mia mancanza, lo riconosco, però probabilmente non ho mai avuto bisogno di conoscerlo in trent'anni di programmazione. Forse avrei potuto ottimizzare? Può darsi, dipende anche se ne valesse la pena.

 

 

Link al commento
Condividi su altri siti

Stefano Dellanoce
1 ora fa, nikopoli ha scritto:

Ah no io invece lo devo usare come master... quindi mi servirebbe capire come funzionano from e to o meglio il concetto dovrei averlo capito ma non so cos’è quel dato 

Se non lo hai ancora, qui c'è il MANUALE per il Modbus Mitsubishi.

Link al commento
Condividi su altri siti

1 ora fa, nikopoli ha scritto:

quindi non è un valore che va scritto in esadecimale da come ho capito giusto? 

Scusa, ma io ho scritto:

2 ore fa, Ctec ha scritto:

allora M1 sarà H0305

e il prefisso H sta per valore esadecimale.

Link al commento
Condividi su altri siti

Stefano Dellanoce
5 ore fa, Stefano Dellanoce ha scritto:

Devi ricordare che qualsiasi cosa comincia per H è un dato esadecimale.... 😀

....

 

Così, giusto per RIBADIRE 😀😀😀

 

Link al commento
Condividi su altri siti

Stefano mi potresti mandare il tuo programma e spiegarmi a che pin ti sei collegato e che transistor hai usato per portare il 5v a 24v nell attesa che mi arrivino i moduli rs485 per arduino voglio provare anche la tua soluzione se per caso in casa avessi il transistor... grazie! 

Link al commento
Condividi su altri siti

Stefano Dellanoce

Ho preso l'uscita DA0 (digitale analogica 0) dove, in ladder, ho stabilito due valori che dovrò richiamare per NON SUPERARE i 5 volt e cioè 0 per la variabile (per esempio) D100 e 2048 per la variabile D101 (sapendo che l'uscita massima a 10 volt corrisponde a 4096).

Quindi per me On è D101 e Off è D100.

Poi per leggere i dati basta un ingresso digitale qualsiasi. Ho in casa dei transistor NPN (qualsiasi tipo) dove l'emettitore sarà a massa, la base collegata a DA0 e il collettore all'ingresso del PLC (ci sono migliaia di esempi in google tipo QUESTO). Quindi se hai un NPN il tuo ingresso andrà a ZERO quando la schedina andrà ad ON, mentre se colleghi un PNP (emettitore a +24, base sempre alla schedina e collettore all'ingresso del PLC) a schedina ON avrai una uscita +24.

Link al commento
Condividi su altri siti

Stefano Dellanoce

Poi CTEC mi ha fatto pensare....

L'uscita analogica è un treno di impulsi che, per tanto veloce sia, potrebbe essere riconosciuto dall'ingresso digitale della schedina HX711.

Quindi, in queste feste, anzi, oggi che è il mio onomastico, ho rimontato la schedina HX711 su breadboard, un transistor sull'uscita DATA per portare il livello alto a +24 e il livello basso a 0 volt (perché la schedina funziona a +5) e l'ingresso SCK direttamente all'uscita analogica del clone MITSUBISHI FX3u.

Carico le poche righe di ladder che avevo salvato e la cella di carico legge perfettamente.

Allora mi ricordo che da qualche parte ho un oscilloscopio FLUKE 97, un po datato ma portatile e versatile.

Metto il puntale sul SCK (che è collegato all'uscita analogica che ho settato a 2048, quindi 5volt) e mi aspetto di vedere il PWR, la frequenza del treno di impulsi....

Niente. Cioè, il PWR c'è di sicuro, ma a 50 mS si vede poco o nulla, forse è ammortizzato bene (molto bene) da un condensatore, quindi capisco come mai HX711 vede una tensione e non un treno PWR.

Rifaccio le stesse misure con l'oscilloscopio sull'uscita analogica sconnettendo il filo SCK, ma non cambia nulla. Sicuramente un OTTIMO PWR.

 

Quindi ecco spiegato come mai riesco a leggere le celle di carico da PLC SENZA HARDWARE AGGIUNTIVO oltre la HX711 e un transistor NPN (un BC548) che quando è pilotato in positivo a +5 dal pin DATA mi chiude il transistor a massa e a me va bene dato che il PLC legge l'ingresso ON quando è a massa.

 

Link al commento
Condividi su altri siti

Ciao, a tutti sono qui per avere un chiarimento sempre a riguardo dell utilizzo del modbus. Ho comprato una scheda modbus con 32 uscite ho settato la scheda a 9600 come anche il plc in D8120 come mi avevate spiegato. A questo punto avrei voluti attivare le bobine allora ho usato la funzione TO e ho fatto questo image.png.fe2042aa6aa154bd931a2abb43f4e8ed.png(vedi foto) 

 

Con S dovrei ho indicato 05 write single coil 01 indirizzo slave n1 e la bobina che voglio attivare cioè la 1 n2 e n3 non mi è chiaro a cosa servano fatto sta che cosi com'è non funziona quindi, sapreste aiutarmi gentilmente?

 

Link al commento
Condividi su altri siti

Nikopoli non usa un Mitsubishi, ma un clone display+PLC, dove le funzionalità aggiuntive (è un FX2 compatibile) sono gestite con TO e FROM. Il tuo manuale fa riferimento agli FX3

Non ho il tempo di rivedere il suo manuale per controllare i dati. Spero in questi giorni.

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...