Thanks for all the constructive comments so far. I really appreciate it. Let me address some of the questions you guys have raised.
Have you checked the voltage levels on the output from the device?
I wondered about this. In my research on the Internet I read things about TTL voltage, but unfortunatly, I don't understand enough of how this all works to know exactly what I'm looking for there. The specification document for the device doesn't mention anything about voltage. Any ideas on what I should be looking for there or how to test it?
On the Arduino sketch, try putting the TX pin into INPUT pinMode. Then perhaps the other device will be able to successfully drive that pin.
The "correct" solution though, is to use SoftwareSerial on some other pins and use SoftwareSerial to talk to your external device. Then in your sketch, send incoming bytes from the Serial Monitor to the external device's SofwareSerial interface and vice versa. I think the SoftwareSerial example already does this for you, in fact.
Thanks for the advice, I will give this stuff a try today and post back with my results.
The device should share ground with arduino. Otherwise you are making a big assumption the grounds are at the same level. Also just baud rate is not enough. You need to know parity, number of start and stop bits, and whether High means zero or Low means zero.
I've connected the GRN wire to the GRN on the Arduino board, so I assume that is correct. The specification document for the device talks about that stuff, but I'm not sure what it all means. I was hoping just to first test if a signal is coming through at all.
Have you got the Tx and Rx wires the right way round?
Yes, I've checked that several times. Followed the wires all the way back to the RJ45 plug and checked the specification document to see which wire is which.
Does the device need anything sent to it to prompt it to output anything?
No, the device is set up to send data constantly every 1 second.
Have you confirmed that the speed, start/stop bits and parity of the Arduino's serial port match what the device is using?
The specification document says that the device sends data at 2400bps using 8 data bits, 1 stop bit and even parity. I have no idea what that stuff means though. Is there some commands I need to call in my sketch to set the input pin to match these settings?
You could try connecting the TTL input to an interrupt-capable pin and just record and then print the received pulse timings to confirm that you are receiving pulses and see whether you can manually decode them into a valid async serial stream? That might reveal whether the port settings are correct.
You could also try holding the Arduino in reset and connect the incoming TX line to the Arduino's Tx pin and similarly for the Rx, hence just using the Arduino as a TTL-serial to USB serial converter, and access the PC's virtual COM port directly to see what settings work. Realterm is a useful serial port client to use for that.
I'm still learning all this Arduino stuff, so I'm not 100% sure what you mean by some of this. What is an interrupt-capable pin? When you say "PC's virtual COM port" are you referring to the COM port that the Arduino is using on the PC?