Basculas Camioneras en C#

Buen dia,
Me que me ayudasen a resolver unas dudas acerca de un software que estoy desarrollando en C#. El programa en teoria es muy sencillo, simplemente es regitrar la informacion de un camion(nombre del conductor, empresa, carga, etc..) y el peso tanto inicial como final. El problema radica en que no he podido obtener la informacion del peso desde el indicador de la bascula. El indicador utiliza envia la informacion atravez de un puerto paralelo.
el indicador es un Prometalicos ID2000, como decia tiene un puerto serial para conectar a la bascula y un puerto paralelo para conectar al PC.
Actualmente estoy utilizando el siguiente codigo para intentar obtener la informacion del indicador, sin embargo este siempre me arroja el mismo numero 127. Este es apenas una prueba para saber que tipo de informacion voy a recibir del indicador (es decir saber si utiliza punto flotante, o punto fijo, o practicamente saber que tipo de informacion me voy a encontrar).

Código:
namespace PruebasParalelo
{
         class IOParalelo
         { 
                 [DllImport("inpout32.dll",EntryPoint="Out32")]
                 public static extern void Output(int address,int value);
                 [DllImport("inpout32.dll",EntryPoint="Inp32")]
                 public static extern int Input(int address);
         }
}
namespace PruebasParalelo
{
         class Program
         { 
                static void Main(string[] args)
                {
                    while(true){
                        int i=IOParalelo.Input(889);
                        Console.Write(i);
                        Console.Read();
                     }
           }
}

Cualquier ayuda que me brinden sera bienvenida y agradecida
Les agradezco mucho su colaboracion.
 
Raro, muy raro , rarisimo que la bascula utilice el puerto paralelo, debe ser un modelo hiperespecial...

Hay poquisimas maquinas que lo utilicen, casi ninguna y siempre para conectar una impresora.

Antes de continua, mejor verifica este punto.

Lo tipico es utilizar RS232 o rs485/422. Es un tema de inmunidad a los ruidos electricos, con el lpt como maximo alcanzas unos 2-5m de cable mientras que con un terminal serie puedes alcanzar algunas decenas de metros.

En principio es posible empalmar directamente de la maquina al pc a la vez, pero solo el terminal RX (PC) al TX(bascula).
Digo en principio por un tema de ruidos.

Es importante que la bascula este conectada a la misma toma de corriente/linea que el PC.Siempre se puede utilizar aisladores utilizando un simple optoacoplador y poca cosa mas.

Como saber si tiene canal serie, debes buscar un integrado cerca del conector del yipo max232, mc1496... google un poco. Se trata de un adaptador de tensiones para pasar de los 5V del micro a los -/+12V (-/+ 5V) que necesita el canal serie.

Con el hiperterminal de windows puedes ver las tramas de datos, pero necesitaras averiguar la velocidad, lo mas facil es ir cambiando las velocidades hasta que leas algo correcto.

Normalmente 9600baud,9 bits de datos ,sin paridad,sin control de flujo por harware
Velocidades tipicas 1200,2400,9600,19200
 
Buen dia,
Me que me ayudasen a resolver unas dudas acerca de un software que estoy desarrollando en C#. El programa en teoria es muy sencillo, simplemente es regitrar la informacion de un camion(nombre del conductor, empresa, carga, etc..) y el peso tanto inicial como final. El problema radica en que no he podido obtener la informacion del peso desde el indicador de la bascula. El indicador utiliza envia la informacion atravez de un puerto paralelo.
el indicador es un Prometalicos ID2000, como decia tiene un puerto serial para conectar a la bascula y un puerto paralelo para conectar al PC.
Actualmente estoy utilizando el siguiente codigo para intentar obtener la informacion del indicador, sin embargo este siempre me arroja el mismo numero 127. Este es apenas una prueba para saber que tipo de informacion voy a recibir del indicador (es decir saber si utiliza punto flotante, o punto fijo, o practicamente saber que tipo de informacion me voy a encontrar).

Código:
namespace PruebasParalelo
{
         class IOParalelo
         { 
                 [DllImport("inpout32.dll",EntryPoint="Out32")]
                 public static extern void Output(int address,int value);
                 [DllImport("inpout32.dll",EntryPoint="Inp32")]
                 public static extern int Input(int address);
         }
}
namespace PruebasParalelo
{
         class Program
         { 
                static void Main(string[] args)
                {
                    while(true){
                        int i=IOParalelo.Input(889);
                        Console.Write(i);
                        Console.Read();
                     }
           }
}

Cualquier ayuda que me brinden sera bienvenida y agradecida
Les agradezco mucho su colaboracion.

Por lo que dices es una interfase lo que necesitas comunicar por paralelo para adquirir por serial lo que la balanza mide.

Que referencia hacen al respecto en la comunicacion del puerto paralelo? estas usando la direccion 889, puede ser 888 tambien depende si es LPT1 o LPT2.

Ademas el puerto paralelo tenes que indicarle que bit queres leer, dicho de otra manera la interfase debe estar "escribiendo" en algun bit de esa direccion de memoria, te falta ese dato.. no es como el serial que al ser de un solo canal, se lee sobre la direccion de memoria.
 
Buen Dia
Si ya me di cuenta que la salida de la bascula es en paralelo, pero se adaptan 3 pines para poder comunicarlo al serial, la comunicacion es asincro 2400baudios 7 bits de datos, paridad par. Ahora estoy probando utilizar la libreria System.IO.Port del C# pero no logro captar datos. Sinambargo ya recibo datos por medio del Hyperterminal, entonces no se que podria ser el problema.
 
El hiperterminal es por serial! postea la informacion de los dos puertos que trae.. antes de meterte en programacion tenes que conocer que hard tiene y si lleva algun protocolo de comunicacion, sin datos.. estamos fritos.. como palo de ciegos..

Estas leyendo sobre los pines 10, 12, 13 y 15? probaste cambiar de puerto 889 por 663(lpt2)? (888 es de salida)
 
Última edición:
Atrás
Arriba