The signal would be a voltage jump on a particular circuit.
How long is the "jump"? How often will it happen? It is easy to check for a pulse, and your only real concern will be that (a) you don't miss it, and (b) that it arrives at an Arduino with the appropriate voltage swing.
I'd just use ethernet to connect to the database. The other option is to export .csv and have my ERP go pick up the file.
Ethernet is more complex than many other schemes. With the spacing and overall distance of the machines, a much simpler signaling protocol is possible. I don't know what an EPR is, but an SD card with someone picking it up, also seems inefficient.
The machines are in a row about 10' from one another.
I don't know if I need to use more than one Arduino. I have a computer at each machine now for data entry so I was considering having each computer log production data from it's machine and have my master DB go "look" at all of the other data.
With a computer on each one, it makes things a little easier, though you still have to decide whether to use one Arduino per machine, or just one Arduino. If the pulse is fairly long, I'd probably go for one Arduino, looking at four pins, each being connected to one machine. That scheme would service n machines with n+1 wires. The idea would be that the Arduino would scan the pins fairly quickly, debouncing (if necessary) each pin's level, and simply counting the pulses. One Arduino would gather all the data, and send it in to a PC, perhaps on one of the machines.
20 ft. (the maximum distance a signal would have to travel for those 4 machines) may require a "line driver", which is low-cost and commonly available, but after adding more machines (if you do), the line driver could handle much longer distance. If distance becomes an issue, other Arduinos could be added, with each "group" being informed by the next group.
Are the PCs on each machine connected via WiFi? Or if not, could one or more of them be made WiFi connected?