Modbus Monitor XPF
User's Guide
Modbus Monitor XPF application allows communication using a Windows-based Personal Computer to Modbus devices. The application is distributed in the Microsoft Store and can be downloaded from ModbusMonitor.com. The application can be downloaded and installed on a trial basis to try the features before purchasing the full license.
The Modbus Monitor XPF application contains two applications in one. The application contains Modbus Client and Modbus Server. In addition, the application supports Serial and TCP protocol options for each option.
This guide helps you start the essential operation and covers some advanced scripting commands for purchased applications.
Main UI
The Main Screen is divided into three parts (1) Control Panel (2) Navigation Panel (3) Monitor Point List Table
Control Panel
Shows Options for Tab chosen in Navigation Panel
Details for each option in the control panel can be found in later sections of this document.
Navigation Panel
Shows Main Features of the application as Tabs (Shows List, Master, Server, etc.) similar to File Menu in classic Windows Application.
Details of each Tab or feature can be found in sections listed in this document
Monitor Points List Table
Shows all monitor points defined for Modbus Master and/or Server mode
Add or Remove monitor points in the List Tab
Home Tab
File
Save: Saves Current File in CSV format
Save As: Saves File with another name in CSV format
Open: Open Another File Saved earlier with Modbus Monitor XPF (CSV Formatted).
Online: View and Download Online Modbus Maps from either (1) Released by Modbus Monitor or (2) Uploaded by Online Community
To Download Files:
Click on the ModbusMnitor.com Factory Icon (1) and wait for the list to update from the cloud.
Click on the File Name from the list of available devices; the file name appears in the text area (6)
Click on the Download button (4).
The Modbus Map of the devices automatically opens when the file successfully opens after the green check mark (5) appears and the online button closes.
To Upload File:
Click on Community icon (2)
Click on the Share Icon (3) and choose the local XPF Modbus Map data file
Green Check shows (5) when the file is successfully uploaded.
Click on the Community Files Maps icon (2) to refresh the list of files in the window.
Clipboard
Paste: Paste Clipboard Row or Item or Monitoring Points to the end of the list
Copy: Copy the Selected Single or Multiple Row(s) to Clipboard. Multiple sequential rows can be selected with Shift-Click's first and last row. Multiple rows can be selected using the Control-Click in any order.
Cut: Copy the Content of the current item to the clipboard and delete the item from the list.
List
Manage Monitor Points (also called Row or Item)
+ Add: New Monitor Point with Default Values
- Remove: Selected Monitor Point from Monitor Point List Table
Delete All: Delete All monitoring points from the Monitor Point List Table
Offset: Set One Based mode. Set Offset to 1 or 0 for the Modbus Address listed in the Address Column. In other words, address values in the list start with 1 (1-65536) or 0 (0-65535)
Filter
Left Number: Shows the row number of the currently selected row.
Filter Box: Filter the list matching the value in the Name or Address columns.
Log
Show or Hide Communication Log
The same button is also available in the header menu.
Turn off the log when not using it to save memory usage
Click on Show Log button to show the Log Window
Start/Stop Button: Click Start to Start the communication logging in comma delimited text
Clear: Clear all logs
Save As: Save displayed log to text file
Errors: Show only communication events with Errors
Scroll: Scroll to the latest communication log.
The events in the windows are time-stamped with UTC.
Monitor Points - Columns
- Name
Text or String value of the Register for easy cross reference. Example: "Water Temperature"
Extra Magic Key Codes can be added to enhance polling and processing further. Add these Extra codes at the end of the string with action.
String Length: ":" (Colon + RegCounts)
Add Colon and Number of Registers
":nn" followed by a numeric value indicating registers controlling the string length when the Data Type is STRING.
For example: Name = Model Name:32, Data Type = STRING means poll 32 registers and convert to a string of 64 bytes or characters (each register holds two bytes). Update Swap Type to control the order of characters displayed.
Poll Update Rate: "@" (at symbol + milliseconds)
For example: Name = Model Name@1000 (poll at 1000 milliseconds)
@0 (don't poll), @-1 (poll once). See Poll Rate - Poll Section (below) for additional combinations and explanations
Bit Fields or Mask Bit Write: " . " (Period or Point + bit number)
Add “.n” to the end of the Register name. n is a bit number from 0 to 15.
For example: Name = "Inverter VA Mode.10" and Address = 401522 means set or clear bit 10 in holding register 1522 when "1" or "0" is written from the value field.
Set or Clear only one Bit in the holding register
Data Type must be set to BIT type, and Address must be 4x (Holding Register) for this code to work
Sample Modbus Map is available from the Modbus Monitor XPF's Online area
- Address
6 Digit Modbus register value
Integer Value (0 to 465536)
Address is 0 based or 1 based depending on the "One Based" check-mark in the List Tab
Example: 000001 or 100001 or 400001 or 300001
4x Example: 400001 (One based checked, 1st Register, Function 3, Read/Write)
4x Example: 400000 (One based un-checked, 1st Register, Function 3, Read/Write)
3x Example: 300001 (One based checked, 1st Register, Function 4, Read-Only)
0x Example: 000001 (One based checked, 1st Register, Function 1)
1x Example: 100001 (One based checked, 1st Register, Function 2)
- Unit ID
Unit ID or Slave ID of the register for Master and Server
Byte Value (1-247)
Example: 1
- Gain, Offset
Value to be multiplied and Offset Added to result obtained from the Server
Server Mode: Gain and Offset will be applied before the value is sent to remote Master
Float Value Column = Gain x [Modbus Value Obtained] + Offset (Linear Formula)
Example: 1.00 (default Gain, Multiple 1), 0.00 (Default, no Offset)
- Data Type
Converted Data Value from Modbus poll
Example: BIT
2 Registers are polled for 32-bit Data Type
4 Registers are polled for 64-bit Data Type
Displays value based on the selection:
BIT = Binary value
[Bit Fields] See Name column above to set Bit Fields or Masked Read/Write
INT16 = Display as 16-bit Signed value
UINT16 = Display as 16-bit Unsigned value (Default)
INT32 = Display as Signed 32-bit value
Two Registers are automatically polled
UINT32 = Display as Signed 32-bit value
FLOAT32 = Display as 32-bit Float
INT64 = Display as 64-bit Integer
UNIT64 = Display as 64-bit Unsigned Integer
DOUBLE64 = 64-bit Double Float
HEX = Display as Hex value (16-bits)
STRING = Display as Text Value
Length: Append number of registers containing string to Name column with colon followed by number of register.
<:nnn> where colon followed by nnn is number of registers
For example, Name Column = "Product Serial:16" means 16 registers or 32 characters length for string
More information on video at: YouTube Link Time 5:56
- Swap Type
Byte and Word Swap when multiple registers are polled based on the Data Type
Swaps multiple Registers based on the selection:
ABCD_BE: ABCD swap or Big-Endian (Default)
CDBA_LE: CDBA swap or Little-Endian
BADC_BEBS: BADC swap or Big-Endian Byte Swap
CDAB_LEBS: CDAB swap or Little-Endian Word swap
- Value
Red Border shows on error or special message from the scanner. Click on the cell (edit) to see the special message.
Display Value from Master based on Data Type
Send Value to Server based on the Data Type
Modbus Master: Shows value polled from the remote device after applying Swap type, Gain/Offset, and Data Type
Modbus Server: Value to send to the remote Master device. Click a cell to change send the new value to send to remote Master (All conversions are applied per settings before sending the new value)
Modbus Client (Tab)
The Modbus Master or Client Mode (tab) polls remote Modbus TCP or RTU devices and displays data in the selected format.
Interface - Settings
- Interface
TCP
DEFAULT: Modbus TCP over TCP/IP
RTU: Modbus RTU over TCP/IP
ASCII: Modbus ASCII over TCP/IP
UDP
DEFAULT: Modbus TCP over UDP
RTU: Modbus RTU over UDP/IP
ASCII: Modbus ASCII over UDP/IP
Serial
DEFAULT or RTU: Modbus RTU over serial COM port
ASCII: Modbus ASCII over serial COM port
Set Serial Ports related Settings
TCP
- IP Address
IP Address or Hostname of remote TCP server
Connection Timeout: Timeout before reconnecting to the remote host after connection is lost
- Port Modbus
Port: Modbus Port for remote server
- Timeout - TCP Connection
Time in milliseconds before closing the current TCP connection
Time Out - Modbus Packets Timing
- Response Time out
Modbus Frame waiting time to gather all bytes from the remote server
For example: Wait 3000ms or 3 seconds to gather all bytes up to CRC or tag short frame error
- Inter-Frame
Delay before sending the next frame or time to wait between each item in the list, in milliseconds.
For example: Wait 20ms before polling the next item in the list
- Poll Rate
Delay before starting full list scan or time to wait before polling full list, in milliseconds.
For example, Wait for 1 second before polling the entire list again
Poll Rate for each Monitor Point can be controlled by adding "@" followed by a millisecond numeric value to the Name Column (at the end of the string). For example, if the text value in the Name field cell contains "Logistic String @-1," it means
@-1 = Poll Once the Start button is pushed
@0 = Always skip monitor points during polling
@3000 = Poll Monitor point at 3000ms poll
Combining String Length + Poll Rate
"Logistic String @-1:31" = Poll Once during the start with a string length of 32 registers (64 bytes or characters)
Write - Modbus Write Function Codes Settings
- Auto
Atomically Select Single or Multiple Coil or Registers based on the Data Type selected
- Enable
Enable Write from Value Column
- Coil Write
Manually select function code for Write for Coil(s) from 5 (0x05) or 15 (0x0f)
- Register Write
Manually select function code for Write for Register(s) from 6 (0x06) or 16 (0x10)
Scanner - Settings
Poll remote server to discover new Modbus Addresses or build Modbus Map for devices without public Modbus Maps.
Start - Start Address to start scanner in 6-digit format
Regs - Number of registers or polls to serially scan
Data - Assumed Data Type. The program automatically calculates the number of registers (1, 2, 4) to request depending on the Data Type selected
Swap - Data Swap for 32 or 64-bit data values
ID - Server ID to start scanning
Restore
Writes current Modbus Maps to a remote server by sending a write request for each Monitor Point in the Modbus Map list. Be careful using this feature when using critical systems, as it may operate unintendedly.
Clear
Clears the data in the Value Columns before starting the poll.
Server
Modbus Server or Slave can simulate devices. The Modbus Server can be started simultaneously on both Interfaces (TCP and Serial).
TCP Section (Modbus/TCP or UDP server)
Choose either TCP or UDP interface for the server to use
Choose one from three available protocols for the server:
Default = Modbus TCP
RTU = Modbus RTU over TCP
ASCII = Modbus ASCII over TCP
Enable Button Enables Modbus/TCP server options (In addition to Serial Interface if used)
Serial Section (Modbus RTU)
Choose Serial Ports for the Modbus Server. (Check marks shows).
Click on the COM port to configure the other Communication parameters, such as Baud Rate, Data Bits, Stopbits, and Parity.
Note: Modbus RTU Server can start on multiple COM ports simultaneously.
Choose one from three available protocols for the server:
Default = Modbus RTU server (same as RTU option
RTU = Modbus RTU over Serial Port
ASCII = Modbus ASCII over Serial Port
Server (Start/Stop)
Both the Modbus TCP server (when Enabled) and Modbus RTU server start simultaneously (when the COM port is selected).
Capture (Modbus Maps Wizard)
Modbus Sniff
Sniffs Modbus Map traffic and automatically builds Modbus Maps when Clients are making requests to this Server. This is a great feature to use when Modbus Maps are unknown or not available from Manufacturers.
Capture Button
On: Add the Modbus Monitoring points based on the Modbus Request Requests. The Server must be running for this feature to work.
Off: Turn off Capture or Modbus Traffic sniffer.
Default Value 0: Fill "0" as the value into the newly created Modbus Map or use the Modbus Register address as the fill value