Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Collegare bilancia RS232
mercoledì 31 ottobre 2007 - 17.17
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
cinquanta
Profilo
| Newbie
10
messaggi | Data Invio:
mer 31 ott 2007 - 17:17
Aiuto devo collegare una bilancia industriale al mio software.
ora ho provato cosi ma va sempre in timeout operazione:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO.Ports;
namespace Bilancia
{
delegate void Manda(String s);
class Program
{
static void Main(string[] args)
{
Manda M = Manda;
M("S");
}
static void Manda(String s)
{
SerialPort sp = new SerialPort("COM1", 2400, Parity.Even, 7, StopBits.Two);
sp.Handshake = Handshake.None;
sp.ReadTimeout = 5000;
sp.Open();
sp.WriteLine(s);
Console.WriteLine(sp.ReadLine());
sp.Close();
}
}
}
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
sab 3 nov 2007 - 00:34
ciao,
hai provato a mandare un "\r" (carattere per l'invio diciamo) dopo la stringa? tipicamente i dispositivi si aspettano sempre un terminatore di comando (tipo per dirgli, azzera, dammi il peso etc..) che di solito è questo carattere...
Usando il "WriteLine" dovrebbe mettere un terminatore alla fine, ma non ne sono sicuro e poi cmq verifica che la tua bilancia non ne voglia uno suo di particolare...
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
cinquanta
Profilo
| Newbie
10
messaggi | Data Invio:
gio 8 nov 2007 - 13:44
Ho verificato i particolari e ho scritto questa classe che funziona per quanto riguarda l'invio quindi setta la tara e tutto ma l'evento della ricezione non si solleva mai .Help perchè?
class Collegamento
{
SerialPort sp;
String s_messaggio;
String s_ritorno;
public Collegamento()
{
sp = new SerialPort("COM1", 2400, Parity.Even, 7, StopBits.Two);
sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
sp.Handshake = Handshake.XOnXOff;
sp.ReadTimeout = 500;
}
public void ApriConnessione()
{
sp.Open();
}
public void ChiudiConnessione()
{
sp.Close();
}
public bool StatoConnessione()
{
if (sp.IsOpen == true)
{
return true;
}
else
{
return false;
}
}
public void SvuotaBuffer()
{
sp.DiscardInBuffer();
sp.DiscardOutBuffer();
}
public void InviaStringa()
{
String sCRLF = Convert.ToString(Convert.ToChar(13)) + Convert.ToString(Convert.ToChar(10));
String sACK = Convert.ToString(Convert.ToChar(06));
sp.Write(sACK + s_messaggio + sCRLF);
}
void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
s_ritorno = sp.ReadLine().ToString();
//throw new Exception("The method or operation is not implemented.");
}
#region get set Variabili
public String ritorno
{
get
{
return s_ritorno;
}
set
{
s_ritorno = value;
}
}
public String messaggio
{
get
{
return s_messaggio;
}
set
{
s_messaggio = value;
}
}
#endregion
}
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 9 nov 2007 - 22:12
ciao,
hai provato a verificare se la tua bilancia ti da sempre sulla porta dei dati? perche' tipicamente devi fare una richiesta tu mandando un comando di "get peso"....o fai gia' cosi'?
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
cinquanta
Profilo
| Newbie
10
messaggi | Data Invio:
lun 12 nov 2007 - 10:05
faccio gia cosi vedi qui:
sp.Write(sACK + s_messaggio + sCRLF);
ecco gli mando il comando per richiedere il peso e lei dovrebbe rispondere ma il mio evento non si solleva mai ma ho fatto tutto giusto?
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
lun 12 nov 2007 - 13:28
Ma la bilancia risponde?
Per vederlo puoi servirti di un pc con hyperterminal, così da monitorare quello che accade sulla seriale, oppure di un oscilloscopio a memoria se anche col PC non arrivassi a niente, magari per qualche problema forse dovuto a livelli di tensione, o baudrate 'stravaganti'. Personalmente ho visto apparecchi fare orecchio da mercante con alcuni convertitori USB seriale (funzionantissimi), mentre rispondevano alla grande a seriali su scheda, presumibilmente per questioni di livelli di tensione fuori standard.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !