First, as you discovered, the DOIAP web ui has context sensitive help.
As for the 1-vs-2, you are correct. It is a bit convoluted because early wishful thinking for the product was “lets make a product where this second port lets any 2nd master talk to any serial device in the universe”. That obviously cannot work because most serial devices expect detailed one-master-at-a-time behavior.
The IA custom protocol you’re struggling with was an attempt to handle MOST serial devices, but not all. For example, it will work with Modbus or DF1 RM, but not DF1 FD or Mitsubishi FX. It needs a well defined 1-request = 1-response half-duplex paradigm. However, once this term “pass-thru” made it into management’s mind, it could never be exorcised.
With the DIP switch set to one port, the second DB9 will mimic the first screw terminals, including being RS-232 or RS-485. There is no second port (in this mode).
With the DIP switch set to two ports, the second DB9 will be a seperate port, but only RS-232 since there is only 1 usable RS-485 chip in there. This is also left over from the early days when this was assumed to an IBM PC-like thing only.
As for RealPort, it inherits the IA settings of the port you connect to, but with inverted master/slave settings. So assuming you have the DOIAP in 2 port mode, with a ‘slave’ on port 1 and ‘master’ on port 2, then you must connect to the first port only of RealPort. To the DOIAP, your real-port session then looks like a third serial port set up as master-attached.
Trying to use the 2nd port via RealPort won’t accomplish anything since there is no way to ‘route’ to the internal thing which RealPort connected to. Anything you send goes into the bit-bucket.
This is all documented in (probably too many) manuals on the support page such as:
- Digi One IAP User’s Guide (IA Profiles)
- Command Reference: Device and Terminal Server Products
- Users Guide: Portserver TS Family
- Application Guide: Understanding Timeout Settings in Digi One IAP
Unfortunately, this driver also has 3 names: ‘generic’, ‘user-defined’, and ‘custom’. Not sure when/why the name changed.