Does anyone have experience with the prosoft cards with AB control
> logix? I'm working on a filling machine that uses 2 GSC's with a
> Logix5555 controller that communicate with 2 banks of 12 flowmeters.
> The manufacturer of the machine was unable to get the communications
> between the flowmeters and GSC's to work properly and the problem has
> been dumped in my lap. I have a controller and a pair of gsc's
> sitting on my desk and I'm running prosofts sample program that just
> echo's data recieved on the ports. I'm loosing up to 50% of the data
> on the return. This is a similar problem that the machine originally > had.
> If anyone has any experience writing RS232 flow control in logix, I
> could use some advice.
Steve, I haven't used the Prosoft cards but have had a similar problem talking to RS232 devices using SLC's. It sounds to me like the port's input buffer is being cleared or over-written at the wrong times. I'm assuming you have an ASCII protocol and have the parity setting correct:
You mention "banks of 12 flowmeters.." does this mean you are using 232-485 converters? If so, you will need to make certain that your *hardware* handshaking is working properly before even trying to fault-find your software... but back to your problem:
Try coding the PLC to scan the entire input buffer (using a Read Input Byte-type command) for the end-of-message delimiter, counting the number of characters as you go. Assuming you are expecting a fixed-length response, when you get to the delimiter, if your count = the number of bytes you expect, (1) copy the entire input buffer to a PLC data string for processing and (2) clear the input buffer. If the count is *not* correct, clear/reset the buffer and wait for the next data packet.
With AB PLCs, it seems that each time you copy data from the input buffer you need to issue a buffer clear/reset command otherwise you will get junk the next time around. You can try using a Read Input Word-type command, but I've found in the past that if you get some data corruption and don't get the delimiter, you don't get any valid data either - just junk!
To test all this, use the lowest possible baud rate (like 300baud) and increase it only after you get things going again.
Good luck!
Cameron:-)