Jump to content

dbolg

Members
  • Posts

    2
  • Joined

  • Last visited

dbolg's Achievements

Newbie

Newbie (1/4)

0

Reputation

  1. This is exactly what I was looking for. I have it implemented just the way you suggest and it appears to be working very good. Thank You!!
  2. Hello, I have a .net application that connects to a 570 via RS-232 using System.IO.Ports.SerialPort. Normally, it will connect. However, when playing with different baud rates, it sometimes does not connect until I connect the same PC with any Unitronics software (Visilogic or Remote Operator). My question is this: With VIsilogic, it appears that you can define the baud rate to anything in the connection properties and it always connects. How does the controller adapt accordingly? I think "out of the box", the rate is set to 115200. If I change my application to 57600, it failes to connect. But, if I connect using Visilogic @ 57600 it works. I go back to my application and then it works. I am trying to determine what Visilogic is doing that I am not. My connection looks like this: // Connect to the PLC try { string comPort = Properties.Settings.Default.CommPort; int comBdRate = Properties.Settings.Default.CommBdRate; int comTimeOut = Properties.Settings.Default.CommTimeOut; _serialPort.PortName = comPort; _serialPort.BaudRate = comBdRate; _serialPort.DataBits = 8; _serialPort.Parity = Parity.None; _serialPort.Handshake = Handshake.None; _serialPort.ReadTimeout = comTimeOut; _serialPort.NewLine = "\r"; _serialPort.Open(); } catch (Exception) { // Disconnect from the PLC _serialPort.Close(); } Once this executes, I begin sending PCOM commands: try { // Send the message out the serial port. _serialPort.DiscardInBuffer(); _serialPort.WriteLine(message); // Verify the message was received, catch the timeout string response = _serialPort.ReadTo("/A00SBF5"); if (response == "/A00SBF5") { //do nothing, success!! } } catch (Exception) { _connectionLost = true; _serialPort.Close(); return -1; } The _serialPort.ReadTo() catches the timeout (default 1 sec). When that occurs, we assume we lost the connection. Is there something I should be doing to prime the port first? Thanks!
×
×
  • Create New...