In instances where the pulse input signal is derived from a mechanical contact (eg reed-relay pulse signals from many gas meters), it may be necessary to install a “de-bounce” filter on the pulse-input wires to remove false pulses caused by bouncing and/or arcing contacts.

The capacitor value is selected based upon the expected pulse duration. If the capacitor value is too high, then true pulses can go undetected. If the capacitor value is too low, then false pulses will not be filtered away.

The purpose of this blog entry is to illustrate the correct wiring and to assist in the selection of the filter components.


Illustration Of A De-Bounce Filter Applied To A Dry-Contact Pulse Input (Click to Zoom).


Limiting Inrush Current Through The Dry Contact:

In the above schematic, a 100 ohm resistor is placed in series with the dry-contact (reed relay). The purpose of this resistor is to limit the capacitor discharge current through the dry contact. It is recommended that this resistor have a value of 100 or 50 ohms. Note that a 100 ohm resistor limits the peak current to 5V/100ohm = 50mA max, and a 50 ohm resistor limits the peak current to 5V/50ohm = 100mA max.

In order to set up an EtherMeter, you will need a computer equipped with a serial port, terminal emulation software (eg HyperTerminal), and a SCADAmetrics Serial/Setup Cable.

A convenient way to add a serial port to a notebook or desktop computer is with a USB-Serial Adapter.

In my experience, the make/model that provides the best combination of performance and compatibility is the Model# USA-19HS by Keyspan (a division of Tripp-Lite).  The USA-19HS is compatible with Windows, Mac, and Linux computers.

Keyspan/Tripp-Lite Product Page Link eStore Link – Click To Buy Online.

The EtherMeter contains an RS485 port for Modbus/RTU and DF1 communications in multi-drop applications.

When using the RS485 port, the following EtherMeter terminals are used:

  • 19  –  RS485A (-)
  • 20  –  RS485B (+)
  • 21  –  Signal GND Reference (contains current-limiting resistor)

In order to use RS485, attention should be given to the EtherMeter’s dip switch positions:

  • Switch 1  –  DOWN (Run Mode), UP (Setup Mode, Modbus/DF1 OFF)
  • Switch 2  –  DOWN (RS485 Mode), UP (RS232 Mode)
  • Switch 3  –  UP (Use 120 Ohm Terminator for RS485), DOWN (No Terminator)
  • Switch 4  –  UP (LCD Backlight ON), or DOWN (Power-Saver Mode)

In my experience, it is preferable to use a single, centralized 24VDC power supply to power the Modbus Master — along with all the remote RS485/Modbus Slave devices.  This ensures that signaling between all devices are referenced to a common ground potential.  In order to most-easily achieve this, a single jacketed cable can be used to transmit both the 24VDC power and the RS485 Modbus signals.

For the most demanding (higher baud rate and/or long distance) applications, I generally recommend Belden 3084A cable, which contains two shielded/twisted pairs plus an overall copper braid.  The 24 gauge pair (Blue/White) has a characteristic impedance of 120 ohms, which is optimal for RS485 transmission.  The 22 gauge pair (Red/Black) is designated for 24VDC and GND.  The cost is generally around $1/ft.  And for especially long cable runs, a more stout version is available, the Belden 3082A cable, whose power and data pairs are 15 gauge and 18 gauge respectively.  The cost is generally around $3/ft.

For more economical 2-pair wiring, I recommend Belden 8723 cable.  It consists of two 22 gauge shielded/twisted pairs (red/black and green/white).  Although it has a characteristic impedance of 52 ohms and therefore does not conform exactly to the RS485 specification, it can work very well for  shorter distances and/or lower baud rates.  The cost is generally around $0.40/ft.

In situations where it is not feasible to power the Modbus master and all remote slave devices from a single DC power supply, then all devices should be powered locally and individually using isolated DC power supplies.  Furthermore, the signal grounds of all devices should be tied together to a common voltage reference.  Each reference tie should utilize a resistor to prevent large currents from traveling on the reference wire.  For this purpose, Terminal 22 on the EtherMeter functions as a signal reference point with a built-in 100 ohm current-limiting resistor.

An EtherMeter Connected To A JACE-Tridium System Via Modbus/RTU over RS485. The System Is Monitoring Total Consumption And Flow-Rate For Two Connected Water Meters (Sensus SR and Sensus Compound). This Facility Houses A Fortune-500 Software Company In The Boston Area. A Pair Of SCADAmetrics Touch-Read Filters Allow Both The Utility AMR System And The Building Automation System To Share The Meter Signals.

I highly recommend that anyone using Modbus/RTU over RS485 should browse the web for further information.  Here are a few articles that I’ve found to be particularly useful and interesting:

EtherMeter Connected To A Remote Controller Via Belden 8723 Cable. The EtherMeter Is A Modbus/RTU Slave, And It Shares The Same 24VDC Power Supply As The Modbus/RTU Master.

The Connected Meter: A Neptune 6″ HP Turbine, Outfitted With An E-Coder Register.

The “E-Coder” is an excellent water meter register, manufactured by Neptune Technology Group, that features an all-digital LCD display activated and powered by an integral solar cell.  The register as a whole does not contain a battery, and it is entirely powered by a combination of hydroelectric energy (water passing through the meter) and the solar cell.

Neptune Meter Equipped With E-Coder Register

In order to minimize power consumption, the E-Coder register only activates its LCD when exposed to sunlight or another compatible light source, such as a flashlight.  When the LCD is activated, the display alternates between meter totalization and flow rate.  When inactive, the LCD is simply blank.  While the ECoder is being interrogated by a SCADA device (eg “EtherMeter”) or AMR endpoint (eg “R900″), the LCD will go blank until the interrogation is complete — usually no more than 1 or 2 seconds at a time.

Note that if a flashlight is to be used for activating the LCD, the beam should be pointed directly at the solar cell at close range and from directly above.  The beam should be held steady until the 9-digit totalization is displayed.  In our experience, most flashlights will work.

Looking for a flashlight recommendation?  The Model 2000 “Super SabreLite” flashlight by Pelican is an excellent flashlight tailored for the Water Industry, as it has a sturdy outer shell and is rated for submersion.  It features a Xenon-based bulb that is powered by three (3) C-Cell batteries and produces a strong light of 33 lumens/12,000 candelas.  The Pelican 2000 may be purchased from Grainger as Part No. 4JC10, or from another Pelican supplier.  A set of new Duracell C-Cell batteries are recommended.  The replacement bulb is Pelican Part Number 2004, available as Grainger Part No. 4JC11.  (Batteries are not included with this flashlight.)

The ECoder’s glass cover should be kept as clean as possible, as any residue or debris will weaken the light that is intended for the solar cell.  If the ECoder register is interrogated automatically at short polling intervals (for instance, the EtherMeter’s default meter polling interval is every 8 seconds) — then the LCD may cease to display the meter totalization and flow-rate, even when activated with direct sunlight or a bright flashlight.  If this poses a problem for the user, then the EtherMeter polling interval should be increased to 20 or 30 seconds.  (eg. SET SAMPn 30)  On the other hand, the user can always rely upon the EtherMeter’s LCD display, since it echos the flow-rate and an exact duplicate of the totalization from the ECoder.

Pelican 2000 “Super SabreLite”

Over at, a PLC engineer was working to troubleshoot the connection between two PLC’s.

Having done this way back when, I decided to post what I think was a pretty nifty solution.

(Besides, this could be useful for troubleshooting communications between any two pieces of computer equipment, including an EtherMeter.)

In my case, I had both a master and a slave PLC connected via RS-232 serial (null-modem) cable; and I planned to use my notebook computer’s two serial ports to “snoop” the data transmitted from each of these PLC’s.

I cut open the RS-232 cable and used alligator clips to “snoop” the TxD lines from both PLC’s plus the GND line. I did not break the connection, though.

On my notebook (snooper) COM1, I connected my RxD and GND to the Master PLC’s TxD and GND…. and on my notebook (snooper) COM2, I connected my RxD and GND to the Slave PLC’s TxD and GND.

COM1 would listen to (and log) data from the Master; and COM2 would listen to (and log) data from the Slave.

This eliminated the need to have my “snooper” software receive and re-transmit data.  I only needed to listen to, and log data from, each of my notebook’s COM ports.

The reason that this works is because a single RS-232 TxD line is capable of driving two RS-232 RxD lines.

My “snooper” program was written in C++ and compiled with MS VC++ 6.0

Here is a link to the “snooper” source code file…