Envio de Dados pela porta Serial/USB com Web
20/12/2013
0
Sinais de controle
Somente quando cada módulo recebe seu ID de requisição vindo do computador a placa aciona os relês e
retorna seu ID seguido do mesmo comando enviado.
O Id deve ser enviado pelo computador em formato de string
No protocolo UBS4PRM tem 3 caracteres de identificação do tipo de dispositivo + uma letra em ordem
alfabética que identifica entre outros dispositivos iguais a este na rede . No caso da placa de 4 relês também
espera-se os caracteres de controle dos relês. Os strings devem sempre ser enviados em caracteres
maiúsculos .
Placa de 4 relês String de ID "8OUAT1" liga/desliga 110 a 220 volts
e "C" 01 liga/desliga 1.5 a 100 volts
Meu código
SerialPort SP = new SerialPort();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnPortaoCentral_Click(object sender, EventArgs e)
{
try
{
SP.PortName = "COM4";
SP.Open();
//SP.Write( Char.ConvertFromUtf32(8) + "OUAT" + Char.ConvertFromUtf32(1));
//SP.Write( Char.ConvertFromUtf32(8) + (char)56 + (char)79 + (char)85 + (char)65 + (char)84 + Char.ConvertFromUtf32(1));
SP.Write("8OUAT1");
SP.Close();
}
catch (Exception ex)
{
lblMensagem.Text = ex.ToString();
}
}
Ja tentei das 3 formas formas contidas, na primeira eu consegui, porem não consigo acionar novamente, somente parando a aplicação e dando F5 novamente. agradeço qualquer ajuda.
Paulo Freire
Posts
23/12/2013
Henrique Gasparotto
27/12/2013
Fabiano Carvalho
07/01/2014
Paulo Freire
public partial class Default : System.Web.UI.Page
{
//Declara a porta
SerialPort SP = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One);
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn01_Click(object sender, EventArgs e)
{
try
{
SP.Open();
SP.Write("C" + Char.ConvertFromUtf32(01)); //Aciona o rele 1 para false
SP.Close();
}
catch (Exception ex)
{
lblMensagem.Text = ex.ToString();
}
}
protected void btn02_Click(object sender, EventArgs e)
{
try
{
SP.Open();
SP.Write("A" + Char.ConvertFromUtf32(01)); //Aciona o rele 1 para true
SP.Close();
}
catch (Exception ex)
{
lblMensagem.Text = ex.ToString();
}
}
Na aplicação Cliente/ Server funciona, e outra coisa interessante, se eu usar a aplicação cliente/server e deixar o relé como true, ao abrir a aplicação via web, e clicar no botão para deixar false, funciona. Será que alguem pode me ajudar nisso??
Clique aqui para fazer login e interagir na Comunidade :)