# Conversor Lazo Corriente a RS232 (Current loop to RS232) para surtidores.



## Mauricio Hoyos (May 4, 2007)

Este es un driver que he implementado y me ha funcionado muy bien para mirar datos a través del hyper terminal del pc, a partir de una salida en loop de corriente. Adjunto la gráfica.

Lo que necesito es algún circuito que me permita hacer la conversión inversa, es decir de rs232 a loop de corriente.
Gracias.
Pd: alguna inquietud sobre el diagrama o los componentes, es sólo escribirme.


----------



## Oscar Zamora (Ene 17, 2008)

Buenas a todos, Mi Nombre es oscar zamora y actualmente estoy en una investigacion sobre el manejo de surtidores de la marca gilbarco y wayne que funcionan con un circuito de corriente de 20/45 mA a traves de un dispositivo o interfase que obtiene datos y los envia a traves de rs232. Algun interesado en colaborarme , tengo las herramientas y manuales , y estoy en el desarrollo del dispositivo.


----------



## Jose_miramontes (Ene 18, 2008)

hola oscar, yo tambien estoy en lo mismo tengo dispensanrio wayne y un gilbarco, ya tengo el circuito current loop a rs232 , y recivo datos  lo que me falta son los protocolos del dispensario wayne y gilbarco, ojo tengo los protocolos de la interfaz de wayne, yo necesito los del dispensario, si te interesa el circuito dime y te lo envio. y psss podemos trabajar a la par. saludos


----------



## Oscar Zamora (Ene 22, 2008)

Tengo a mi disposición  surtidores Gilbarco Advantage con los que puedo trabajar principalmente necesito leer datos pero si todo nos sale bien podemos hacer muchas cosas....
Te agradecera lo del circuito, y estar en contacto mas a menudo
En realidad estoy muy interezado dado que estoy dedicado de lleno a éste tema.

Encontré algo acerca del protocolo aunque actualmente estamos gestionanado el acceso a esa información dado al costo.
Es un Standard Llamado IFSF el cual para obtener información hay que pagar 500 euros por ello aun no tengo esa respuesta, espero tu respuesta.


----------



## Jose_miramontes (Ene 23, 2008)

Ook amigo, ahí te va el circuito, lo saqué de un dispensario Wayne. y he podido leer y enviar, es el pasivo.  En unos dias te envio ya el circuito con su fuente de corriente constante para que sea activo.

optoacopladores: cny17
Q1: MPSA13
Q2: 2N4401
el inversor es el 74hc14

Omite los capacitores igual y funciona, y el diodo zener es un díodo comun y corriente.

te información sobre el bauderate. para configurar la terminal serie miramontes__jma

El archivo esta en protel


----------



## Oscar Zamora (Ene 28, 2008)

Hola no se si me puedas colaborar en éste sentido, lo que pasa es que no he podido descargar el Protel, me gustaría saber si tienes un link en especial donde pueda descargarlo, por otra parte no te entendi muy bien el ultimo post del foro donde me mandaste el archivo, acerca de interfaz Wayne. Solicité esa información que me pediste a un compañero en México y estoy esperando su respuesta aunque por mi parte halle acerca del protocolo isfs que se encuentra en el siguiente link, http://www.ifsf.org/downloads/index.asp?cat_id=11&supcat_id=2 ,estoy a la espera que me aprueben el pago de la suscripción y descargar la información. Mientras hago las pruebas con el circuito que me enviaste. 

Pasivo es solo lectura cierto? es decir colocas un dispositivo que te interprete que señal es, en los manuales de Gilbarco y Wayne dice que es codigo ASCII de 128, por otra parte tengo un pdf que dice que circuito de corriente es de 20 a 45 ma. si quieres juntamos ideas para el diseño del activo

Agradezco una pronta respuesta.


----------



## Jose_miramontes (Ene 28, 2008)

Ahí va el archivo, cualquie duda, oye si pudieras subir los manuales también.


----------



## Oscar Zamora (Ene 29, 2008)

Adjunto el manual de Wayney, el archivo de dónde obtuve la información de Lo del circuito de corriente Gilbarco


----------



## Damalux (Mar 6, 2008)

Solucion mas sencilla:

Convertir los 4 a 20 a 0 a 5 o 1 a 5 VDC usar un pic y hacer equivalencia Vmin = byte 0 Vmax = byte 255 enviar pr rs232

Asi he hecho yo con este sistema incluso hasta controles fuzzy o de observador de orden reducido.



Suerte


Cualquier duda posteas


----------



## geortiz (Ene 20, 2009)

La base teórica del porque usar loop de corriente en los sistemas industriales es básicamente porque es mas inmunes al ruido y el más importante, que se pueden lograr distancias muy largas sin necesidad de repetidores. La desventaja es que no se logran grandes velocidades.

Otra de las características del loop de corriente es que siempre se tiene eco local, y todos los que están en la red escucha lo que dicen los demás.

Estos loop de corriente casi siempre se implementan con optoacopladores para brindar aislamiento de la red con los circuitos eliminando los problemas de descargas eléctricas sobre la red, pero puede ser muy molesto en tener que estar cambiando los optoacopladores, eso se puede corregir con redes de protección.
Hay otro tipo de implementaciones con transistores pero no es recomendable usarlo cuando se comunican equipos a gran distancia, se puede usar para cortas distancias.

Para los equipos gilbarco es  recomendable usar el loop  con una corriente de 38mA para que funcione correctamente, pues más abajo algunos equipos pueden fallar y más  corriente los optoacopladores puede fallar por disipación de potencia, con los equipos gilbargo la fuente de corriente se debe estar incluida en el diseño, ya que en el equipo no cuenta con la fuente en ese lado.

Los protocolos son bastante sencillos pero no se encuentran en los manuales, estos deben sacarse por ingenieria inversa.


----------



## dipesa (Feb 16, 2010)

El lazo de corriente desde los dispensadores es bidireccional, ahí va una IF que me construí.


----------



## jmendezc1971 (Jul 16, 2010)

dipesa dijo:


> Es bidireccional, ahí va una IF que me construí


buena dopesa gracias por tu aporte enorme, tengo una dudas que ojla puedas ayudarme,

que conecto en term 2.7,term 2
funciona con alimentacion de energia electrica? donde va conectada???

y me imagino que el cl if WAYNE se conecta a la bomba de gasolina


----------



## H3I (Ago 25, 2010)

al igual que todos e estado investigando especificamente sobre los protocolos de los dispensadores, hasta el momento e logrado encontrar los siguientes codigos.

cuando el dispensador encore de gilbarco esta en stand Bye realiza lo siguiente

dispensador Dice: 7E 7C 72 70 4E 4C 42 40 3E 3C 32 30 E C C FE C C FE 2 2 FE 2 2 FE vuelve a repetirse
PC le Responde : FE 7C E6 70 CE CC C6 C0 3E 1C 66 30 0 C 0 C vuelve a repetirse la misma trama

Esta trama es cuando el equipo no esta realizando nada, por el momento tengo solo las tramas de algunas ventas tanto en volumen como en precio.

Hasta el momento solo he logrado obtener esto, no tengo idea de que signifique estas tramas ni como se pueden separar para encontrar los valores ya que debe estar codificada en algun sistema.

Tengo algunas algunas sospechas y creo que el codigo estan en Ascci punto flotante en el caso de las ventas, la cuestion es saber como se divide esta tramas cual es el SOH el inicio de trama, en fin saber como se divide la trama y que campos corresponden a las ventas. si alguien quiere compartir esta informacion podre seguir mi investigacion. gracias

Esta es la trama cuando el dispensador y el PC le responde vendiendo 10 pesos


----------



## Nepper (Nov 2, 2010)

Ok... disculpen las molestias... pero a que se refieren con "Dispensarios"? y ¿qué es un lazo de corriente RS232?
El Rs232 se que es el protocolo de comunicación serie utilizado comunmente con fichas DB-9

pero ¿qué es todo esto? ¿en que parte de la industria se utiliza?... digo, porque yo ando trabajando con PLC y parece estar relacionado...


----------



## Zforos (Nov 2, 2010)

Nepper... dispensarios le dicen en Latinoamérica a los surtidores... cada país tiene sus terminologias... no?

Lazo de corriente es una norma de comunicación, vieja, como el 485 de hoy en dia.

Acá hablamos de como fabricar un conversor de lazo de corriente a rs232... los surtidores Gilbarco y Wayne utilizan esta modalidad de conexion. Yo fabrico una interfaz e implemento el protocolo en mi software para tomar información de los surtidores.

Saludos
Pablo


----------



## Nepper (Nov 2, 2010)

ok! claro como el agua... una ultima y no los molesto más...
se refieren a surtidores de combustible??


----------



## Zforos (Nov 2, 2010)

Papá... sos de Hurlingham y no sabes lo que es un "surtidor de combustible" ?? Aguante GOOGLE

Fijate en GOOGLE... http://www.google.com/images?q=surt...&source=og&sa=N&hl=en&tab=wi&biw=1025&bih=726


----------



## Nepper (Nov 2, 2010)

si, soy un paisano de hurlingham y si, se lo que es... pero hablando en un foro de electrónica, y con millones de nombres análogos que posee los dispositivos electrónicos, mas los nombres que no conozco, pensé que hablaban de alguna placa en especial que tenía el nombre bulgar de "Surtidor", además los colegas de los otros paises tambien me confundían... y nunca pensé que un surtidor lo hace otra empresa que nada que ver con las petroleras... eso es nuevo para mi... siempre pensé que las petroleras hacían sus propios surtidores...

ok... no los molesto más....

PD: Me disculpo... solamente tenía que hacer clik en uno de los links de arriba...


----------



## nid2002 (Dic 27, 2012)

Hola a todos 

Soy nuevo en esto de los protocolos , tengo unos surtidores tokhein que estan conectados a un sistema de facturacion , tiene un controlador o caja , pero el sistema esta siendo dejado a un lado por*-*q*UE* tarda demasiado tiempo en autorizar la venta , mas o menos 10 segundos , quisiera conocer como poder leer lo q*UE* envia para poder desarrollar un nuevo aplicativo , tratando de mejorar los tiempo en q*UE* el dispensador autoriza la venta 


mil gracias


----------



## Zforos (Dic 28, 2012)

nid2002 dijo:


> Hola a todos
> 
> Soy nuevo en esto de los protocolos , tengo unos surtidores tokhein que estan conectados a un sistema de facturacion , tiene un controlador o caja , pero el sistema esta siendo dejado a un lado porq tarda demasiado tiempo en autorizar la venta , mas o menos 10 segundos , quisiera conocer como poder leer lo q envia para poder desarrollar un nuevo aplicativo , tratando de mejorar los tiempo en q el dispensador autoriza la venta
> 
> ...



Con cuántos otros surtidores está conectado?


----------



## nid2002 (Dic 28, 2012)

Gracias por responder 

Tengo 4 surtidores  de la misma marca, conectados en serie te digo esto por*-*q*UE* es lo q*UE* sabemos de la empresa q*UE* instalo el sistema esto va conectado a una caja q*UE* tiene una tarjeta q*UE* tiene 4 entradas


----------



## Zforos (Dic 28, 2012)

nid2002 dijo:


> Gracias por responder
> 
> Tengo 4 surtidores  de la misma marca, conectados en serie te digo esto porq es lo q sabemos de la empresa q instalo el sistema esto va conectado a una caja q tiene una tarjeta q tiene 4 entradas



Probá anulando 3 de los cuatros surtidores del lazo y del sistema, a ver si con un solo surtidor anda más rápido.


----------



## nid2002 (Dic 28, 2012)

Ya hemos probado eso y no funciona sigue autorizando a los 10 segundos mas o menos y si alzo todas las mangueras de los 4 surtidores tarda hasta 30 segundos en autorizar y va en serie autorizando 

Por eso quisiera saber como empezar a realizar un sistema para estos dispositivos como se lee las cadenas q*UE* envia pues no lo se en verdad pero me gustaria aprender , si me ayudan con consejos o q*UE* leer agradeceria su experiencia 

Nota: tengo experiencia en delphi programando por varios años


----------



## Zforos (Dic 29, 2012)

nid2002 dijo:


> Ya hemos probado eso y no funciona sigue autorizando a los 10 segundos mas o menos y si alzo todas las mangueras de los 4 surtidores tarda hasta 30 segundos en autorizar y va en serie autorizando
> 
> Por eso quisiera saber como empezar a realizar un sistema para estos dispositivos como se lee las cadenas q envia pues no lo se en verdad pero me gustaria aprender , si me ayudan con consejos o q leer agradeceria su experiencia
> 
> Nota: tengo experiencia en delphi programando por varios años



Supongo que tenés que colgarte del lazo de corriente y "espiar" el protocolo... 
Igualmente, creo que vas a necesitar algunos manuales....
Parece que somos varios los que trabajamos en Delphi.

Saludos


----------



## nid2002 (Dic 29, 2012)

Gracias por tu tiempo 

pero donde puedo conseguir esos manuales y cuales serian, me interesa este tema , si eres tan amable me podrias guiar un poco


Te quedo muy agradecido 

Nota : utilizan un programa q*UE* lee lo que los puertos envian se llama comport o algo asi este envia unas tramas me imagino q*UE* eso es espiar el lazo de corriente q*UE* mencionas


----------



## Zforos (Dic 29, 2012)

nid2002 dijo:


> Gracias por tu tiempo
> 
> pero donde puedo conseguir esos manuales y cuales serian, me interesa este tema , si eres tan amable me podrias guiar un poco
> 
> ...



Para espiar el lazo, tenés que colgarte en el cable, en el medio de el envio o de la recepción... y "escuchar", con un terminal de puerto serie solo te va a aparecer el tráfico en pantalla.... después está en tí el proceso de entenderlo...
Lamentablemente no tengo información del protocolo que te pueda compartir.
Saludos


----------



## nid2002 (Dic 29, 2012)

Muchas gracias por tus respuestas ya vere donde buscar a ver si puedo conseguir algo 
o entender esas tramas q envia y recibe el dispensador


----------



## Danco (Feb 14, 2013)

Actualmente trabajo en una empresa que utiliza algunos protocolos de comunicación con dispensadores, por políticas de la compañía no podría compartir ésta información sin que exista un intercambio de información que sea útil para la empresa, sin embargo te cuento que he hecho yo para obtener algún dato de los protocolos de otros fabricantes,  construye o utiliza un Loop de corriente con conexión a rs232  y utiliza un sniffer,  podrías utilizar el FREE Serial Port Monitor RS232 Communication Software Data Sniffer Analyzer, conecta tu loop como otro equipo mas de la red y monitores todo el flujo de información, con algunos datos como byte de incio y de final podrías obtener los comando. no es fácil la tarea pero inicia con este método. atento a tus comentarios

Docklight | Information - Testing RS232, RS485, TCP, UDP, HID
una herramienta mas para utilizar los loop de corriente - rs232

Tengo el protocolo HongYang , pero no he podido obtener respuesta, ya realice la interfaces con un opto acoplador y 12 vol con Rx y TX al rs232, alguien tiene algún esquema de como es la conexión y como envíar los comando al surtidor. agradezco cualquier ayuda...

Comando de Estado : 0xF1 0x10 0xB0


----------



## hector macias gutierrez (Nov 13, 2014)

hola danco me gustaria platicarte de un proyecto que desarollamos hace 1 año y que dejamos fuera ya que se cambiaron los dispensarios por otros de la marca sufra-max , anterior mente teniamos HongYang y desaroyamos un dispositivo que interactuaba entre el software de control gas y los dispensarios directamente se trataba de un dispositivo en el que se insertaba una targeta , se ponia el nip,dispensario, monto  y este dispositivo  checaba si el cliente tenia saldo o no y activava el dispensario con la cantidad que se le indicaba. 

para lograr esto tuvimos que hacer el loop y decodificar la forma en la que se comunicaba el programa original con los dispensarios y desarroyar un programa que siempre estaba en comunicacion con todos los dispensarios de manera que les pedia las ventas a cada dispensario y estaba en contacto con nuestro dispositivo de control de clientes todo esto en rs485.

te anexo imagen del dispositivo de control y puedo pasarte el codigo del programa para que veas el ejemplo de como se le mandan los comandos al dispensario.

te comento personal que trabajaba antes en profeco nos indico que ese dispositivo no podiamos tenerlo asi y nos decian que para usarlo se tenia que registrar. te recomiendo que revises esta situacion  ya que nosotros trabajamos mucho y al ultimo lo quitamos.

igual hoy revisando documentacion de la nom185 encuentro que un dispositivo de esta naturaleza solo es necesario declararlo o informar  y puede ser operativo. creo.


----------



## Danco (Nov 15, 2014)

excelente, no se si viste la interface que realice, el documento PDF. cuando envías los comando, enviabas byte a byte cada periodo de tiempo o enviabas el paquete completo, para el ejemplo el comando de status  0xF1 0x10 0xB0, 
o enviabas 
 0xF1
     timeOut(5ms)
 0x10
     timeOut(5ms)
 0xB0

cheque esta cadena Hex-- convertir a Ascii.
64 61 6E 63 6F 66 72 61 40 67 6D 61 69 6C 2E 63 6F 6D

agradezco tus comentarios.


----------



## hector macias gutierrez (Nov 17, 2014)

te envio parte del codigo del programa monitor para que  analices la sección  de donde se envía el comando.


```
bool activo;
        SerialPort sp = new SerialPort();
        string puerto="COM6";
        
        int maquina = 0;        
        int numero_maquinas = 6;
        string comando="";

private void cambiar_pariedad(System.IO.Ports.Parity p)
        {
            sp.Parity = p;
        }  
private bool abrir_puerto()
        {
            try
            {                               
                sp.BaudRate = 2400;
                sp.DataBits = 8;
                sp.Parity = System.IO.Ports.Parity.None;
                sp.StopBits = StopBits.One;
                sp.PortName = puerto;
                sp.WriteTimeout = 1000;
                sp.ReadTimeout = 1000;
                sp.Open();
                return true;

            }
            catch(Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message,"Error de conexion!",MessageBoxButtons.OK,MessageBoxIcon.Error);
                return false;
            }
        }    
    private string enviar_comando(byte[] machine,byte[] lenght,byte[] gun,byte[]command,byte[] data3,byte[] data2,byte[] data1)
        {
            #region enviar comando--------------------------------------------
            int retardo = 0;
            string resultado = "";
            byte[] datos = new byte[8];

            retardo = clases.funciones.valInt(txt_timeout.Text);
            if (retardo <= 0) retardo = 50;

            datos[0] = machine[0];
            datos[1] = lenght[0];
            datos[2] = gun[0];
            datos[3] = command[0];            
            datos[4] = data1[0];
            datos[5] = data2[0];
            datos[6] = data3[0];
            datos[7] = calcular_checksum(datos);

            //-----------------
            sp.Write(datos, 0, 1);
            pausa(retardo);
            cambiar_pariedad(System.IO.Ports.Parity.Space);
                        
            sp.Write(datos, 1, 7);
            pausa(retardo);
            cambiar_pariedad(System.IO.Ports.Parity.None);
            pausa(retardo);
            #endregion
            #region esperar resultado--------------------------------------------

            //int delay = 20;
            int respuesta = 0;
            string datos_leidos = "";  
            int timeout = 0;
            bool esperar = true;

            while (esperar)
            {
                //pausa(delay);
                while (sp.BytesToRead > 0)
                {
                    respuesta = sp.ReadByte();
                    datos_leidos = datos_leidos + " " + respuesta.ToString("X2");
                }
                if (datos_leidos != "")
                {
                    esperar = false;
                    resultado = datos_leidos; ;
                    return resultado;
                }
                timeout++;
               // pausa(delay);
                if (timeout == 10)
                {
                    resultado = "TimeOut";
                    esperar = false;
                }
                Application.DoEvents();
            }
            sp.DiscardInBuffer();
            sp.DiscardOutBuffer();
            #endregion
            return resultado;
        }
private byte calcular_checksum(byte[] datos)
        {
            byte[] res=new byte[1] {0x00};
            long suma = Convert.ToInt16(datos[0].ToString(), 10) +
                                        Convert.ToInt16(datos[1].ToString(), 10) +
                                        Convert.ToInt16(datos[2].ToString(), 10) +
                                        Convert.ToInt16(datos[3].ToString(), 10) +
                                        Convert.ToInt16(datos[4].ToString(), 10) +
                                        Convert.ToInt16(datos[5].ToString(), 10) +
                                        Convert.ToInt16(datos[6].ToString(), 10);
            suma=256-suma;            
            res = BitConverter.GetBytes(suma);
            return res[0];
        }
 private byte[] seleccionar_comando(int maquina,string accion,int pesos)
        {
                        

            // inicializar datos para el comando
            byte[] datos =new byte[7] {0x00,0x00,0x00,0x00,0x00,0x00,0x00};
            byte[] dato = new byte[1] { 0x00 };
            byte[] machine = new byte[1] { 0x00 };
            byte[] lenght = new byte[1] { 0x00 };
            byte[] gun = new byte[1] { 0x00 };
            byte[] command = new byte[1] { 0x00 };
            byte[] data3 = new byte[1] { 0x00 };
            byte[] data2 = new byte[1] { 0x00 };
            byte[] data1 = new byte[1] { 0x00 };            


            if (maquina == 1) { machine = new byte[1] { 0x01 }; gun = new byte[1] { 0x01 }; }
            if (maquina == 2) { machine = new byte[1] { 0x01 }; gun = new byte[1] { 0x02 }; }
            if (maquina == 3) { machine = new byte[1] { 0x02 }; gun = new byte[1] { 0x01 }; }
            if (maquina == 4) { machine = new byte[1] { 0x02 }; gun = new byte[1] { 0x02 }; }
            if (maquina == 5) { machine = new byte[1] { 0x03 }; gun = new byte[1] { 0x01 }; }
            if (maquina == 6) { machine = new byte[1] { 0x03 }; gun = new byte[1] { 0x02 }; }
            
            if (accion == "PEDIR_ULTIMA_VENTA")
            {
                command[0] = 0x0F ;                
            }
            else if (accion == "ENVIAR_DESPACHO")
            {
                string t_precio = pesos.ToString().PadLeft(4, '0') ;
                command[0] =  0x09 ;
                data1[0] = 0x00;// BitConverter.GetBytes(Convert.ToInt16(t_precio.Substring(0, 2), 16))[0];
                data2[0] = BitConverter.GetBytes(Convert.ToInt16(t_precio.Substring(2, 2), 16))[0];
                data3[0] = BitConverter.GetBytes(Convert.ToInt16(t_precio.Substring(0, 2), 16))[0];
            }

            lenght = new byte[1] { 0x07 };

            datos[0] = machine[0];
            datos[1] = lenght[0];
            datos[2] = gun[0];
            datos[3] = command[0];
            datos[4] = data3[0];
            datos[5] = data2[0];
            datos[6] = data1[0];  

            return datos;
        }
```


----------



## Danco (Nov 17, 2014)

veo que el protocolo que me dio el distribuidor de los surtidores difiere al que tu estas usando , tiene un vector de 7 bytes, probare enviando la consulta de:  PEDIR_ULTIMA_VENTA

            datos[0] = 0x01;
            datos[1] = 0x07;
            datos[2] = 0x01;
            datos[3] = 0x0F;
            datos[4] = 0x00;
            datos[5] = 0x00;
            datos[6] = 0x00;

por favor ver el manual adjunto. 

estaré colocando los avances.


----------



## jhonquev09 (Dic 6, 2014)

Hola Danco Buenas Tardes, yo tuve un proyecto similar y desarrolle la interfaz loop current para siguiente surtidor, intentare ayudarte pero por favor le pido colaboracion con el esquematico plano o circuito de comunicacion con los surtidores Tokheim mas vendidos, la verdad no tengo informacion ni un surtidor disponible para trabajar.


----------



## Danco (Dic 11, 2014)

Hola Amigo, ya construí la interface HongYang, con esta me funciono, pero me conecte al puerto de programacion http://sodoityourself.com/max232-serial-level-converter/, para conectarme al puerto de comunicación utilice 1 opto- acoplado, luego monto el esquema.  no tengo la interfaces de Tokheim pero lo que he visto que los Tokheim utilizan es una conexión 232, y le colocan  un buffer para hacer las conexiones a barias tarjetas.


----------



## jhonquev09 (Dic 12, 2014)

En la pagina 6 del archivo adjunto se encuentra el loop current que utiliza los Hong Yang a una velocidad de 2400Baudios.. Saludos.



Alguien me puede colaborar por favor con un esquematico completo de los Tokheim. Gracias.


----------



## H3I (Feb 21, 2015)

Amigos. 

Luego de realizar varias tareas de decodificacion logre encontrar lo siguiente:

Los Dispensadores o Surtidores Marca Gilbarco se conectan a una velocidad de 5887 Baudios y logre sacar los siguientes tramas de comunicación, estoy seguro que los datos son correctos porque pude autorizar una venta es decir la velocidad es la correcta pero cuando se envían algunas tramas llegan datos que no se como decodificarlos para entenderlos.


Trama 1:  FFh  E9h FEh EEh E0h E0h FBh E1h F0h
Trama 2:  FFh  E9h FEh E0h E1h E0h FBh EEh F0h   Autorizacion de Inicio de venta
Trama 3:  __h  E5h F4h F6h __h __h __h __h __h __h F0h  esta ultima varia no lo e decodificado aun


Trama 4: FFh ECh F4h FBh E6h F0h
Trama 5: FFh E9h FEh EEh E0h FBh E1h F0h
Trama 6: FFh E4h F2h F4h F8h E0h E0h E0h E1h E0h E0h FBh E3h F0h No se saco combustible se espero hizo 88888 y luego se colgo

Espero que alguien pueda avanzar en algo con estos datos.


----------



## tecks (Abr 8, 2015)

Que tal Gente.

Estoy desarrollando una interface para controlar un surtidor por medio del puerto Serial RS232, pero no logro entender como enviar los comandos para comunicar el surtidor (Veeder Root tls350).

Me pueden explicar como programo esto en C#?? 


Enquiry message format is as follows
<SOH><SECURE CODE><COMMAND NUMBER><MAIN ARGUMENT>
where:
    <SOH> (0x01H) marks the end of the command.
    <SECURE CODE> (exactly 6 ASCII characters) – optional field depended on Site Sentinel setting.
    <COMMAND NUMBER> (three ASCII characters) number of command
    <MAIN ARGUMNET> (two ASCII characters) contains various, usually decimal coded data, depend on command ...


----------



## jxaviern (Ago 28, 2015)

Hola logré decifrar las tramas tengo el circuito y el programa funcionando en dos gasolineras, si me ayudas con las tramas de Gilbarco tengo el manual pero algo no va bien con ese manual. Saludos


----------



## arnaldor (Sep 7, 2015)

T -> 0000659AFF
R -> 0000659A718E50AF20DF27D8FF

T -> 00006D92FF
R -> 00006D926E9117E820DF27D8FF

T -> 0000758AFF
R -> 0000758A7E815AA520DF27D8FF

T -> 00007D82FF
R -> 00007D82DC2305FA20DF27D8FF

T -> 0000857AFF
R -> 0000857A18E733CC20DF27D8FF

T -> 00000DF2FF
R -> 00000DF26F9017E820DF27D8FF

T -> 000015EAFF
R -> 000015EA0EF10AF520DF27D8FF


Podrías decifrar estas tramas? o decir cuales son las partes de las tramas?


----------



## jxaviern (Oct 3, 2015)

arnaldor dijo:


> T -> 0000659AFF
> R -> 0000659A718E50AF20DF27D8FF
> 
> T -> 00006D92FF
> ...


Son tramas del surtidor wayne obviando los ceros del principio el primer byte es la direccion del surtidor el segundo es un bit verificador que es (255- bit anterior) asi sucesimante los dos siguientes bits son los datos, te cuento que esa parte si la vez bien es facil decifrar.


----------



## arnaldor (Nov 18, 2015)

tecks dijo:


> Que tal Gente.
> 
> Estoy desarrollando una interface para controlar un surtidor por medio del puerto Serial RS232, pero no logro entender como enviar los comandos para comunicar el surtidor (Veeder Root tls350).
> 
> ...




El TLS 350 no es un surtidor si no una consola de toma de medidas de tanques electrónicamente, el manual está disponible por internet ... Si necesitas en C# comunicarte con el tienes varias formas de hacerlo. Hay varios tipos de tarjetas de interface para el Veeder Root TLS 350, viene RS 232 y también viene ethernet. La parte más importante es que los comandos que envíes al VR tienen que comenzar por <SOH> que en c# se produce con el siguiente comando  Convert.ToChar(1)

Si te conectas por RS232 solo es cuestión de abrir el puerto .... tienes que esperar por lo menos 100ms en lo que el VR contesta para leer la respuesta.

Si te conectas por TCP/IP utilizando la tarjeta de ethernet debes utilizar el puerto 10001



H3I dijo:


> Amigos.
> 
> Luego de realizar varias tareas de decodificacion logre encontrar lo siguiente:
> 
> ...




El baud es 5787



jxaviern dijo:


> Son tramas del surtidor wayne obviando los ceros del principio el primer byte es la direccion del surtidor el segundo es un bit verificador que es (255- bit anterior) asi sucesimante los dos siguientes bits son los datos, te cuento que esa parte si la vez bien es facil decifrar.



Me gustaria ver más en detalle esto

61 72 6E 61 6C 64 6F 72 40 67 6D 61 69 6C 2E 63 6F 6D


----------



## H3I (May 30, 2017)

Encontré parte del documento del protocolo wayne


----------



## Elpaso (May 31, 2017)

hola a todos,
quisiera contactar con personas que tengan experiencia con los surtidores Dresser Wayne y especialmente con el controlador IGEM

Debo reparar a veces alguna de estas plaquetas y no dispongo de info detallada. (solo la configuracion con el control  remoto)

Lo que intento ahora es comunicar la tarjeta IGEM con una PC. Uso un cable null modem  (version completa) y el programa terminal Tera Term. pero recibo extraños caracteres. Desconozco la confi. exacta del Rs232. 

Pregunta; Es posible comunicar esta tarjeta como lo estoy intentando o debo usar algun programa especial ? Que configuracion del RS232 seria la correcta?
Alguien dispone de esquemas de este plaqueta?

Espero alquien pueda ayurarme.
Saludos.


----------



## Terle (Nov 24, 2018)

Buenos días a todos, encontré el protocolo de Gilbarco, lo adjunto para que aprovechen.
Ahora quiero pedirles una ayudita, tengo un controlador VOX forecourt de Veeder Root, y quisiera que controle un dispensador de AdBlue, que no es otra cosa que una bomba de acero inoxidable y una caudalímetro marca Piusi modelo turbinox de 2 cables 88 pulsos por litro.
Cómo puedo interfacear el caudalímetro y la bomba con el controlador?

Muchas gracias.


----------



## rapsarata (Mar 27, 2019)

Buenas! Estuve leyendo todo el hilo, genio el del protocolo de Gilbarco, me costo un montón conseguirlo en su momento. Los de Wayne consiguieron algo?
Tengo experiencia desencriptando, pero al no tener un controlador a mano cuesta un poco mas.
Por lo que averigüe y comparto con respecto a WAYNE Loop Current
Es que trabaja en 45mA (lo estaba testeando a 12v, supuestamente garantido a 24v)
9600 Baudios 8O1
Probé lo de arnaldor pero sin exito.
Alguno tiene info extra? gracias!


----------



## msegura (May 6, 2019)

buenas gracias por el manual
yo probe y logro cambiar precios y autorizar en surtidor gilbarco y leer los totalizadores


----------



## Rovill (May 7, 2019)

Estimado Msegura, podrías compartir el tipo de interface que estas empleando?


msegura dijo:


> buenas gracias por el manual
> yo probe y logro cambiar precios y autorizar en surtidor gilbarco y leer los totalizadores


----------



## msegura (May 7, 2019)

GB dispenser interface converter (RS-485/RS-232 to 2-wire current loop and backwards)


----------



## H3I (Jun 29, 2019)

jxaviern dijo:


> Son tramas del surtidor wayne obviando los ceros del principio el primer byte es la direccion del surtidor el segundo es un bit verificador que es (255- bit anterior) asi sucesimante los dos siguientes bits son los datos, te cuento que esa parte si la vez bien es facil decifrar.




Alguien a logrado obtener datos adicionales sobre los dispensadores wayne, estoy trabajando en esta interface y solo logro encontrar cosas similares

Con una comunicación de 9600 8 bits 1 Stop y 0dd parity bit

00 00 09 F6 FF
00 00 09 F6 8A 75 1B E4 20 DF 07

00 00 11 EE FF
00 00 11 EE 9E 61 01 FE 20 DF 07 F8 FF

00 00 19 E6 FF
00 00 19 E6 2C D3 4E B1 20 DF 07 F8 FF


00 00 21 DE FF
00 00 21 DE 29 D6 02 FD 20 DF 07 F8 FF


----------



## msegura (Jun 29, 2019)

tal vez te sirva


----------



## H3I (Jun 29, 2019)

msegura dijo:


> tal vez te sirva



De antemano muchas gracias. Cualquier ayuda adicional al respecto le agradezco.

Se aprecia mucho este aporte voy a analizarlo, seguro me va a servir para analizar los datos que estoy tratando de descifrar


----------



## H3I (Jul 1, 2019)

Investigando encontre que este protocolo corresponde a un protocolo especifico que es el de wayne current loop.

00 00 09 F6 FF
00 00 09 F6 8A 75 1B E4 20 DF 07

00 00 11 EE FF
00 00 11 EE 9E 61 01 FE 20 DF 07 F8 FF

00 00 19 E6 FF
00 00 19 E6 2C D3 4E B1 20 DF 07 F8 FF


00 00 21 DE FF
00 00 21 DE 29 D6 02 FD 20 DF 07 F8 FF 

Encontré esto que nos permite identificar estas tramas:

Hay vamos poco a poco encontrando información que nos vaya sirviendo. de antemano agradezco cualquier ayuda al respecto  de todos nosotros


----------



## msegura (Jul 1, 2019)

Buenas 

Solo tienes esas hojas .Recomendación para los que no se quieran complicar mucho tiempo en desarrollo.
yo desde hace 7 year utilizo un equipo que me salio demasiado bueno  y no es caro comparado al tiempo que hay que invertir 
desarrollado .para wayne gilbarco la tarjeta de corriente loop con asesorios cuesta 300 dolares la main principal 550 dolares
y si compras los sdk  viene la main un convertidor 485 a rs232 para simulacion  y dianostico por 950 dolares.
soporte es genial tuve en sumomento problema de autorizacion con thokheim muy viejo 262a . me resolvieron 12 horas
PTS CONTROLER


----------



## H3I (Jul 1, 2019)

msegura dijo:


> Buenas
> 
> Solo tienes esas hojas .Recomendación para los que no se quieran complicar mucho tiempo en desarrollo.
> yo desde hace 7 year utilizo un equipo que me salio demasiado bueno  y no es caro comparado al tiempo que hay que invertir
> ...


Hola, se que estamos inventando la rueda, solo que me parece muy interesante lograr hacer un aparato que pueda hacer lo que yo le programe y agregarle cosas específicas. De antemano le agradezco su apoyo.


----------



## msegura (Jul 1, 2019)

Eso tienes razon como cuando implemente lo de gilbarco por que tenia una tarjeta loop casera a la mano.
Ellos te dan un sdk con un protocolo estandar que se comunica main principal hace la traducion al protocolo de
las 100 marcas que soportan


----------



## lgonzalez2018 (Jul 8, 2019)

Jose_miramontes dijo:


> hola oscar, yo tambien estoy en lo mismo tengo dispensanrio wayne y un gilbarco, ya tengo el circuito current loop a rs232 , y recivo datos  lo que me falta son los protocolos del dispensario wayne y gilbarco, ojo tengo los protocolos de la interfaz de wayne, yo necesito los del dispensario, si te interesa el circuito dime y te lo envio. y psss podemos trabajar a la par. saludos


Hola Buenos dias Jose..me interesa el circuito current loop a rs232 para el dispensario gilbarco, para recibir los datos del dispensario a la computadora, ya que estoy trabajando en un desarrollo de un sistema de control de flotillas y me falta nada mas la comunicacion del dispensario a la computadora, quedo en espera de tus comentarios, saludos..


----------



## Fogonazo (Jul 8, 2019)

lgonzalez2018 dijo:


> Hola Buenos dias Jose..me interesa el circuito current loop a rs232 para el dispensario gilbarco, para recibir los datos del dispensario a la computadora, ya que estoy trabajando en un desarrollo de un sistema de control de flotillas y me falta nada mas la comunicacion del dispensario a la computadora, quedo en espera de tus comentarios, saludos..


Notaste el detalle que el usuario a quién le pides información no entra a la comunidad desde el *08 Feb 2008 *


----------



## frodmda (Jul 11, 2019)

Alguien podria compartir el diagrama para el current loop para bennett y cual es la diferencia real de 20mA 40mA y 60mA utilizados en dispensarios, seria sufucuente cambiar las resistencias unicamente para poder hacer una placa universal.

Saludos


----------



## H3I (Jul 17, 2019)

Fogonazo dijo:


> Notaste el detalle que el usuario a quién le pides información no entra a la comunidad desde el *08 Feb 2008 *



Lo tome de:
Current Loop Application Note 

*Current Loop Application Note*

Introduction

The purpose of this current loop application note is to introduce the reader to the physical aspects of 20 mA current loop communications.

Until the early 1960's, military teleprinters used 60 ma current loops to communicate over long distances. In 1962, the Model 33 teletype was introduced and 20 mA current loop interfaces became widely used. Throughout the 60's, 70's, and early 80's, 20 mA current loop interfaces were applied in many types of equipment. Current loop interfaces became popular at this time because they offered the most cost effective approach to long distance, noise immune data transmission. The 20 mA current loop is suitable for distances to 2000 feet at data rates up to 19.2k baud with careful attention to interface design. It can be used at longer distances when data rates are as low as 300 baud.

When the EIA 422 Standard (December 1978) and the EIA 485 Standard (April 1983) brought forth the application of balanced differential digital data transmission, the popularity of 20 mA current loop rapidly diminished.

The Basics of Current Loop

2.1 Full-duplex 20 mA Circuit
Figure 1 is a full-duplex 20 mA current loop circuit. Simultaneous two-way communications is possible with this circuit. Two 20 mA current generators are necessary with this circuit. It is possible to have one of the two current generators in one current loop interface and the other current generator in the other interface. For example, the original IBM PC serial adapter card had a current loop interface that contained only one current generator. When you made a correct connection to this current loop interface, the second current loop device would need to provide one current loop generator.






Figure 1: Full-duplex 20 mA Circuit



2.2 The Simplex 20 mA Circuit
Figure 2 is a diagram of a simplex 20 mA current loop circuit. The fundamental elements of a 20 mA current loop are a current source, a current switch, and a current detector. The transmitter is the current switch and the receiver is the current detector. The interface that contains the current source is called the active unit and all other units are referred to as passive units. Figure 3 is a diagram of the levels in an RS-232 interface and how they relate to the presence and absence of current in a 20 mA current loop circuit. In a 20 mA loop the current flows when the loop is idle (no data being transmitted). In a simplex type circuit a number of transmitters and receivers are put in series in a current loop. As long as only one transmitter sends data, all receivers receive the data.

(Only one device can transmit at a time)




Figure 2: Simplex 20 mA Circuit






Figure 3: Comparison of signal levels in an RS-232 Circuit and a 20-mA Current Loop Circuit



2.3 Problems with 20 mA Current Loop
The main problem with 20 mA current loop is that there is no mechanical or electrical standard defined for this interface. This makes every interface somewhat unique and the user must know some of the technical details about the circuits used in the interface.





Figure 4: Simplified One Direction Current Loop

Figure 4 is a simplified one-way current loop implemented with two optocouplers, a voltage source, and a resistor. Optocoupler U1 is the transmitter and optocoupler U2 is the receiver. The value of the loop current in this circuit is:

I loop = (Vs - V transmitter -V receiver)/Rs

for typical optocouplers
When turned ON:
V transmitter (U1) = 0.2 V
When input LED is conducting:
V receiver (U2) = 1.8 V

If Vs = 12 volts & Rs = 470 ohms then
I loop = (12V - (0.2V + 1.8V))/470 ohms
I loop = 10V/470 ohms = 21.3 mA

If we changed Vs = 60 V and left Rs = 470 then
I loop = (60V -(0.2V + 1.8V))/470 ohms = 123 mA

If we changed Vs = 5 V and left RS = 470 ohms then
I loop = (5V - (0.2V + 1.8V)/470 ohms = 6.4 mA

The point of showing these different calculations is to demonstrate that the loop currents circuit can vary by considerable amounts, if Vs is varied. Likewise, if Rs was changed the loop currents could also vary considerably. The only way to determine that currents are near 20 mA is to examine the circuit in detail.



2.4 Current Regulation in Current Loops
Several methods can be used to control the amount of current in a current loop circuit. This section will illustrate several common methods of regulating the current in a current loop.

2.4.1 Constant Current Generator Current Source
Figure 5 is a circuit that uses a linear voltage regulator integrated circuit to serve as a constant current source. Almost any fixed or adjustable voltage regulator can be used. The example shown in Figure 6 uses an LM317 adjustable regulator because is provides a low amount of voltage drop (3 volts) across the current regulator circuit. For example, if Vs was 12 volts in this circuit, then the maximum voltage that the constant current regulator could drive would be 9 volts. The 62 ohm, Rg resistor sets the regulator current because there is an internal voltage reference in the LM317 between VO and the ADJ pins of 1.25 volts.





Figure 5: Constant Current Generator for a 20 mA Current Loop

In a current loop, the sum of all the voltage drops across all the devices must be less than the voltage source, Vs driving the loop. Each device in the current loop whether it is a transmitter (current switch) or receiver (current detector) has some voltage drop across it. For instance, a typical transistor switch can have typically 0.2 volts drop across it. For most of B&B Electronics converters, the voltage drop across the transmitters can be as much 2.3 volts when the switch is turned ON. The reason for this is that the transmitter switch must provide for the reverse bias of the internal photo detector diode inside the optocoupler. An optocoupler used as a current detector will have from 1.2 to 2.0 volts drop across it.





Figure 6: Current Limiter built into Transmitter

2.4.2 Transmitter Current Limiter
Some current loop interfaces incorporate current limiting into the transmitter (current switch) itself. Figure 6 is an example of a circuit that has built-in current limiting so that the loop current cannot exceed 20 mA. In this circuit Rg provides a source of bias current for Q2 so that if the loop current tries to exceed 20 mA Q2 will shunt Q1 base bias current so that Q1 will not conduct more than 20 mA.







Figure 7. Current Limiter built into Receiver

2.4.3 Receiver Current Limiter
The circuit shown in Figure 7 is used not to regulate the loop current, but to regulate the maximum emitter current in the optocoupler, U1. This is done because some optocouplers require less than 20 mA to operate at maximum speed. Transistor Q1 is used to shunt some of the loop current around the emitter of optocoupler, U1.


3.0 Current Loop Interface Connections
To connect our converter to an existing current loop port, you must first determine if the port is active or passive. What this means is: does the port have an internal power supply that provides the current (active) for the transmitter, the receiver, or both (transmitter and receiver). The simplest way to determine this is to break the loop (disconnect it) and see if there is any DC voltage across the output or input pairs. If you have access to the instruction manual for the unit you can also look in there for the information.

Current loop interfaces normally consist of four wires. They are usually labeled T+, T-, R+, and R-. T+ and T- are the transmit plus and transmit minus lines and data is output from that device on those lines. The R+ and R- lines are the receive plus and receive minus lines and data is input into that device on these lines. Interconnection of the two current loop devices is different depending on whether your unit is active or passive.

3.1 Connection to an Active Current Loop Port
Connection to an active current loop port is very simple. Your units T+ and T- lines go to our units R+ and R- lines. And your units R+ and R- lines go to our units T+ and T- lines. See the following drawing.





Figure 8. Connection to an Active Current Loop



3.2 Connection to a Passive Current Loop Port
Connection to a passive current loop port is a little harder. You must use a 12 VDC power supply with the 470 ohm resistors inside of our converter to "create" a 20 ma current source. See the following drawing.





Figure 9. Connection to a Passive Current Loop




3.3 Interconnection of 2 Current Loop Converters
Interconnection of two B&B current loop converters also requires the use of a 12 VDC power supply since they are both passive port. See the following drawing.





Figure 10. Interconnection of Two Current Loop converters


4.0 What Isn't Digital Current Loop

4.1 4 to 20 mA Analog Current Loop
The diagram shown in Figure 11 is an analog 4 to 20 mA current loop. This circuit is mentioned here because it is sometimes confused with 20 mA digital current loop. The purpose of 4 to 20 mA analog current loop is to transmit the signal from an analog sensor over some distance in the form of current signal. Only two wires are required to send the analog signal and also supply power to the sensor. A loop supply voltage (24 volts in Figure 11) is used to power the remote sensor. The remote sensor regulates the loop current such that the loop current represents the value of the parameter being measured by the sensor. A series resistor RL at loop power supply converts this current to a voltage that can be used by the electronics to record or distribute the parameter being measured.





Figure 11. 4 to 20 mA analog current loop



4.2 HART® 4 to 20 mA Current Loops
Figure 12 is another example of a type of 4 to 20 mA combined analog & digital current loop. This current loop uses HART® Communications protocol. The HART® (Highway Addressable Remote Transducer) protocol is used for SMART remote transducers that are compatible with 4 to 20 mA analog current loops but also have digital communications on the same two wires. This is accomplished by superimposing a two-tone Frequency Shift Keyed (FSK) digital current signal on the 4 to 20 mA analog signal.





Figure 12. 4 to 20 mA analog current loop with digital communications using HART protocol


----------



## Gaby69 (Sep 29, 2019)

Buenas tardes a todos,
Alguien tiene algo de info respecto a los trenes de pulsos en la comunicación RS232 entre el WIP y la Igem, la idea es generar un software para simular el WIP y descartar posibles fallas en los mismo, como también probar el normal funcionamiento de la Igem.

Desde ya agradezco cualquier aporte.


----------



## H3I (Oct 29, 2019)

msegura dijo:


> tal vez te sirva




Llevo semanas enteras analizando éstos datos pero no he logrado avanzar nada. Creo que hay algo erróneo porque todos los intentos de conexión con los dispensadores son fallidas, si alguien tiene información que pueda ayudar a avanzar éste proyecto agradezco. Por el momento dejo en pausa porque no he logrado nada. De antemano agradezco la ayuda de presentar éste código.


----------



## ipericole (Dic 26, 2020)

Buenos dias, y felicidades por el foro
Estoy intentado comunicar con un surtidor Cetil equipado con un calculador Hectronic. La parte de programacion la controlo mejor que la de electrónica. He consegido el manual con el protocolo de comunicaciones ER3 y al final del mismo, incluye el diagrama de la conexion. Aparecen dos opciones, con 1 par o 2 de cables. No estoy seguro de como proceder, entiendo que habría que montar el circuito y con un DB9 prodría usar el PC para comunicar con putty o algo por el estilo....
Si me podeis dar alguna indicacion o idea, seria de gran ayuda....
Muchas gracias y felices fiestas.

Enlace al documento de la documentacion:








						ER3-data interface.pdf
					

Shared with Dropbox




					www.dropbox.com
				




Adjunto unas fotos de la placa...


----------



## Fogonazo (Dic 26, 2020)

Archivo subido al servidor del Foro


----------



## msegura (Ene 27, 2021)

Fogonazo dijo:


> Archivo subido al servidor del Foro


----------



## msegura (Feb 5, 2021)

Archivo de una unidad .pas para gilbarco funciona con el surtidor lo basico


----------



## H3I (Abr 20, 2022)

Con el HongYang 

Encontré que se comunican a velocidades de 2400 1(STOP), No Parity

Para conocer el estado se debe enviar al dispensador:

0x01, 0x03, 0x8F, 0x6D
0x01 -> Inicio
0x03 -> Manguera
0x8F -> Orden o Funcion solicitada
0x6D -> Checksum


Dispensador responde

0x0d0x530x000x000x000x000x000x000x000x000xa80x300xc8

0xC8 es una especie de CheckSum porque cambia siempre de forma aleatoria


----------



## carlosnf (Hoy a las 4:21 AM)

msegura dijo:


> Archivo de una unidad .pas para gilbarco funciona con el surtidor lo basico


¿Es este el protocolo Gilbarco?


H3I dijo:


> Con el HongYang
> 
> Encontré que se comunican a velocidades de 2400 1(STOP), No Parity
> 
> ...


¿Lo tienes para Wayne?


----------



## H3I (Hoy a las 8:28 AM)

Conversor Lazo Corriente a RS232 (Current loop to RS232) para surtidores.
					

Que tal Gente.  Estoy desarrollando una interface para controlar un surtidor por medio del puerto Serial RS232, pero no logro entender como enviar los comandos para comunicar el surtidor (Veeder Root tls350).  Me pueden explicar como programo esto en C#??    Enquiry message format is as follows...




					www.forosdeelectronica.com
				




Este es el protocolo para gilbarco completo. Para Wayne no ha Sido posible conseguirlo


----------

