Link to home
Start Free TrialLog in
Avatar of tentavarious
tentavarious

asked on

Problems with usb to serial port conversion opening a connection

Hello experts,
I order a BF-810 prolific usb to serial port converter and i cant get it to work.  I have talked with the suppliers and they have no idea.  I am using windows xp and my laptop has no serial ports so i bought the converter.  I installed the device and updated the drivers.  It shows up in my device manager as comport 4.  Under properties though i noticed it doesnt have a resource tab.  Anyways I tried using Hyperterminal and other programs to open a connection and nothing works.  I was wondering if anyones else has dealt with usb conversion and how to solve this?
Avatar of Callandor
Callandor
Flag of United States of America image

Have you tried a different sequence in installation?  Some devices require the driver to be installed before the hardware, whereas others require the hardware to be installed and then the driver.
Avatar of grakem
grakem

What device are you talking to?  My usb doesn't have a resource tab and it works perfectly with my telephone recording device!
Avatar of tentavarious

ASKER

I am talking to a micro logix 1500 plc.  I just need to send it some commands.  I built a program that works fine on a computer with a serial port.  As far as the installation it just followed the manual which says to plug it in then insert the disk containing the drivers.  I then found out that i needed updated drivers so i downloaded and installed them.
Did it work with the original drivers?
With the original drivers it did open the port.  But i could not send any commands through it.
Under the advanced properties of the USB serial device, you can change the COM port assigned.   There may be some internal conflict.    

I have had mixed results with these usb-serial converters...  for example, when connecting to a Sun/Solaris console, using HYPERTERM with the usb device does not work (drops characters), but with other apps like TeraTerm, it works fine.
I tried a range of different comports from 1 to 15 and none work.  When i installed the original drivers i was able to open the port but it locked up when i tried sending a string.  I checked the Digital signer and it says not digitally signed, but after i updated the drivers it was.  Below i am using a vb.net with a third party reference to Acomport, which handles all of the comport communication.  Alls i have to do is set the properties and open the connection in my program.
 
Public comhold As New ACOMPORTLib.ComPortClass
'Block of code is used in specifing what comport to use and what to send through it
  Try
            comhold.PortID = 4
            comhold.BaudRate = 9600
            comhold.DataBits = 8
            comhold.StopBits = 1
            comhold.Open()
            If comhold.LastError = 0 Then
                comhold.Sleep(2000)
                comhold.WriteString(stringhold)  'locks up here with old driver and wont open with new driver
                comhold.Close()
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
Do you have the com port speed correct? The default for the Micrologix is 19200 also you are using the Micrologix set to DF1 as DH485 won't work through a standard USB to serial device.

To test your USB-serial device try using a cross-over serial cable to connect to a PC with a serial port, then open hyperlink on both PCs and typing on one should appear on other, if it does your serial device is working fine.
Serial ports and USB are FUNDAMENTALLY INCOMPATIBLE !!!

Yes, they are both serial devices, true, but the architecture of USB vs. serial on XP is so radically different ...

Unless you have a truly XP-compatible device driver that came with this "converter" (like on a CD or such), you will NEVER get it to be recognized by the system.

The right drivers, or NO, it won't work.
Just for your information my Prolific USB to serial device has driver version 2.0.0.18 and works fine with the Micrologix (DF1) and Windows XP.

The drivers seem to be here http://tech.prolific.com.tw/visitor/v_filebrw.asp use the search term serial
Baud Rate is 9600 and it works fine without the converter.  I dont need to hook it up to another computer because i have it hooked up to a tester.  I can tell if the port is open and if a signal is being sent either by using my program or hyperterminal.  Like i said with the first driver that came with the converter the port opens fine but no signals can be sent.  With the update nothing works.  Maybe i will just have to abandon this idea.
I visited the website you listed above but i cannot find the correct driver i think i am looking for PL-2303 but alls i can find are manuals
Dont know if i am on same page, but is there a driver i can download and install or do i need to get a new controller.  I visited this website dealing with the pl-2303
http://www.microsoft.com/windows/catalog/default.aspx?subID=22&xslt=search&qu=Prolific+Technology&scope=2&btnSearch=Go
ASKER CERTIFIED SOLUTION
Avatar of snerkel
snerkel

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Ok i downloaded and installed the one u specifed, I can now open the comport, but i cant send anything through it.  I will try uninstalling and reinstalling.
Your situation is not unusual.

There are two ways to add a serial port to a laptop without one.

First, there are USB to serial adapters that superficially seem to do what you need.  They are cheap and readily available.  And when they work, they are the way to go.  Unfortunately, they only work about half the time.  The problem is that they are not "real" serial ports, and nothing that you can do will ever make them into real serial ports.  if ANY software that you attempt to use with them tries do any "real" serial port operations -- that includes setting or changing the baud rate, for example -- that software simply work with a USB to serial adapter.  It's trying to access registers that would exist for a "real" serial port, but that do not exist for the emulated port of a USB to serial converter.

The 2nd alternative is a PC Card serial port.  These ARE "real" serial ports with real registers, and they almost always work.  That's the good news.  The bad news, they are both hard to find, and sometimes incredibly expensive ($150), although on occasion I've found them in the $20-$30 range (E-Bay).  Unfortunately, the most commonly available ones (the Eiger cards) don't work well with Windows XP, and the cards that do work with XP tend to be the expensive ones.

I suspect that you are attemting uses of the serial port that simply won't work with the "virtual" emulted port provided by a USB to serial converter.  There's no solution to this other than to rewrite the software (usually not possible) or change to a PC Card serial port.
Thanks for the advice, i was able to send characters using hyperterminal.  I had to set the Flow Control to none and it worked.  Now i need to use my program to do the same, but I dont have a Flow control property, so i am unable to send commands.  

Well, that's exactly the point that I was making -- when you use a USB to serial converter, the ONLY thing that you can do is send and receive data.  There are no "contol lines" passing through from the serial port to the USB port.  It's like having an old-style "3-wire" serial port (send data, receive data, ground) with none of the control lines (e.g. no CTS, DTR, etc.).  If you need "flow control" to prevent data loss, the only thing that you can do is implement it in softtware.  You can use software flow control, either ETX-ACK or XON-XOFF.  But that's all, unless the converter has implemented it's own emulation of hardware flow control, and if that's the case, it's going to depend on the emulator.  The problem with software flow control is that either the serial device or the host software (your software, in this case) may not (probably doesn't) support it.

You really only have two choices here [well, 3 if abondoning the serial device is an option :-) ]:

1.  Use no flow control or software flow control
2.  Give up on the USB adapter and get a PC card serial port adapter

There is no general way to get hardware flow control with a serial to USB adapter, although some adapters might implement some type of emulation thereof (good luck on getting the necessary information to use this, however, in a custom program that you are writing].

[By the way regarding your comment "i need to use my program to do the same [no flow control] but I dont have a Flow control property".  That one's easy.  No flow control means that you just send the characters unconditionally.  As for receiving, set up a fairly large receive buffer.  "No flow control" = "Just do it, unconditionally"]
I have just confirmed that this latest prolific driver works fine with Allen-Bradley DF1 protocol (my version was a couple of versions older), as I assume you are implementing your own DF1 protocol then it should work fine.

Do you have RSlinx so you can confirm that your serial connection is actually talking to the Micrologix before digging too deep into why your own software isn't working.