iChart can be configured as a Modbus master to output data uploaded from any iSIC data logger to a Modbus RTU device connecting to a PC COM port. The default serial settings are 19200 baud, 8 data bit, 1 stop bit, and no parity. Modbus address and registers along with data format can be specified for each iSIC data logger.
Note that this feature is not the same as Modbus RTU output from the iSIC data logger. It is useful in applications where direct access to the iSIC data logger is not possible. This feature is only available on iChart version 6.16.061 or later. To verify and update iChart to the latest version, follow the steps at this link:
By default, iChart Modbus output is disabled. To turn this feature ON:
1. Select the iSIC data logger to be configured for iChart Modbus output from the iChart project Navigation Panel. Then, go to Project | Modbus Output.
2. In the dialog that appears, set/specify the following items:
- Enable Modbus RTU ouput: Check the box to turn iChart Modbus output ON. When this box is unchecked, all controls in this dialog are disabled.
- PC COM Port: Click the drop-down list to select the COM port to which the Modbus RTU device is connected. Only the ports that iChart detected are listed. Verify the COM port if it is unknown.
- Detail: This box displays the COM port, frame, and handshaking. Click the ‘…‘ button to change any of the settings. The default settings are 19200 baud, 8 data bit, 1 stop bit, and no parity.
- Modbus Address: This is the address of the Modbus RTU device. The address is limited from 1 to 247.
- Begin Modbus Reg: This is the first register that accepts the data.
- Timestamp: There are three choices for outputting the timestamp of the data. Note that the timestamp is for each data logger, not each individual parameter:
- Do not output timestamp (no register). Select this option if outputting the timestamp is not desired. In this case, data from the first parameter of the selected data logger is sent to the register specified in “Begin Modbus reg”.
- POSIX time (2 registers). Select this option to output timestamp in POSIX time format. This is the number of seconds elapsed since midnight 01/01/1970. POSIX time is a 32-bit signed integer. Thus, it occupies the first two registers specified in the “Begin Modbus reg”. The actual data will then start from “Begin Modbus reg” + 2.
- Y, M, D, h, m, s (6 registers). Select this option to output timestamp as a separate year, month, date, hour, minute, second. Each is a 16-bit unsigned integer. Thus, each occupies one Modbus register. The data will start from “Begin Modbus reg” + 6.
- 32-bit Number. The POSIX time is a 32-bit signed integer. All data from the iSIC are 32-bit, single precision, IEEE 754 floating point numbers. Each requires a pair of Modbus registers. The Modbus standard does not specify the word order of the 32-bit number. Thus, the user is given a choice of sending the most significant or least significant word first. For example, select “Big endian” to send the most significant word first. In this case, the most significant word occupies the lower register of the register pair.
Example: For an iSIC logging 3 parameters – battery, temperature and water level – which is configured to output to starting register 0 with Y, M, D, h, m, s timestamp format and big endian data values, the registers will be populated as follows:
0: Year (Y)
1: Month (M)
2: Day (D)
3: hour (h)
4: minute (m)
5: second (s)
6-7: battery (register 6 is most significant 16-bits and register 7 is least significant 16-bits)
8-9: temperature (register 8 is most significant 16-bits and register 9 is least significant 16-bits)
10-11: water level (register 10 is most significant 16-bits and register 11 is least significant 16-bits)