Vai al contenuto
PLC Forum


Da Pwm A Rs232 - Leggere dati trasmessi in PWM con il pc


TotiPWM

Messaggi consigliati

Salve, ho un proplema con un dispositivo il quale trasmetta 5 byte da 8 bites e un bit di start con una trasmissione di tipo PWM.

La trasmissione si ottiene modulando l’alimentazione della linea dati del dispositivo tra il massimo livello +12Vdc e il minimo livello +1Vdc.

Lo start della trasmissione dei dati si ottiene mettendo giù la linea per un predeterminato tempo chiamato (T-Start), questo consente a tutti i dispositivi connessi alla linea dati di intercettare l’inizio della trasmissione.

La trasmissione dei dati comincia dopo il tempo (T-Start). La fine della trasmissione dei dati si ottiene tenendo al massimo livello la linea dati +12Vdc per un tempo compreso tra 300ms e 500ms.

I Bit sono trasmessi con la tecnica del PWM (Pulse Width Modulation), la stringa dei dati è trasmessa senza soluzione di continuità e senza interruzione tra i vari bytes.

Il Bit start si ottiene con il fronte di risalita (il livello cambia da +1Vdc a +12Vdc), mentre il rapporto tra il tempo del livello alto (VH) e quello basso (VL) indica se si riceve un bit “0” o “1” , con il metodo seguente:

Se il tempo del livello alto (VH) è = a 2/3 di T.Bit si riceve un bit “0”

Se il tempo del livello basso (VH) è = a 1/3 di T.Bit si riceve un bit “1”.

Il problema consiste nel codificare il segnale PWM del dispositivo in un segnale digitale per essere processato da un software scritto in VB6. spero di essere stato chiaro ringrazio tutti coloro che mi daranno una soluzione.

PS ho già costruito l'interfaccia tra il dispositivo e la com del pc.

Link al commento
Condividi su altri siti


Leggerei "Se il tempo del livello alto (VH) è = a 1/3 di T.Bit si riceve un bit “1”."

Questa trasmissione per ogni bit ti manda un fronte di salita sia per dato 0 che per dato 1. Lo puoi usare per sincronizzare la lettura. Il margine di errore nel timing asincrono è dato dalla differenza tra 0,5 TBit e 1/3 Tbit cioè circa 0,16 TBit.

0 Attendi l'inizio della trasmissione....inizia!

1 Fai 40 volte le due righe sotto

2 Attendi 0,5 TBit: leggi tensione se 12 V dato:=0 altrimenti dato:=1; salva dato con indice Contatore

3 Attendi il prossimo fronte di salita poi vai alla riga 2

Se la trasmissione si completa non ci sono problemi, altrimenti devi mettere un tempo massimo alla riga 3.

PS ho già costruito l'interfaccia tra il dispositivo e la com del pc.
Modificato: da rguaresc
Link al commento
Condividi su altri siti

ifachsoftware

Scusa la domanda , ma il dispositivo che invia in PWM e' un dispositivo gia' fatto che devi interfacciare o e' una tua apparecchiatura con cui vuoi trasmettere in PWM ?

Perche' se puoi modificare l'apparecchiatura sicuramente ti conviene andare in seriale , invece che incasinarti con il PWM.

Nel secondo caso data la difficolta' nell'interfacciare tale apparecchio con l'RS232 di un PC ti consiglio di crearti un adattatore (per esempio con un PIC) che da un lato legge i dati dal PWM su interrupt , decodifica il comando e le lo gira in RS232.

Ciao :)

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...