Remote Networking using GPS Time Sync
Overview: There are many applications where the user needs to generate SIE files on multiple eDAQXR / eDAQXR-Lite unit where the channel data is in sync and in phase across all of the units.
If all of the units are in relatively close proximity, the units can be connected using the Ethernet expansion ports, using an EX23-R PTP switch module if more than 3 units are to be used. The user has the option of using Mode 1 or Mode 2 networking, both of which provide SIE files where channel data is in sync across all network nodes.
For some applications, it is impossible or impractical to use the Ethernet expansion ports to physically connect units. However, these units can be “remotely networked” by connecting a GPS module to each unit, and enabling the Sync to GPS Time (disables PTP) System preference for each unit.
NOTE
The Garmin GPS module is strongly recommended. The EGPS-200 module is inferior for this application. The EGPS-200 module is prone to sporadically failing to provide the GPS (PPS sourced) timing messages for long periods (e.g., one minute or more). This can compromise data sync/phase accuracy. It also takes much longer for the EGPS-200 to start generating the GPS timing messages compared to the Garmin module. Use of the Garmin GPS is assumed in the remainder of the operational note.
Scope: This operational mode is applicable in test scenarios where GPS satellite connectivity is maintained continuously. If GPS satellite connectivity is maintained continuously, data skew is expected to be less than a few µs (microseconds) across all units for test runs of any duration.
Test setup and test run suggestions: This operational mode is best suited for tests that are defined to be “simple data loggers” where either the Collect data storage option is used for all channels, or Time History DataModes are used exclusively for data storage. It is assumed that one of these options will be used in the remainder of this operational note.
The following channels should be included in the test setup for all units.
- gps:pps_sync_lock: This is the most important channel for feedback on sync/phase accuracy. It is updated at 5 S/s using the Garmin (only 1 S/s using the EGPS-200). A value of 1 means the GPS timing messages have been received as expected; a value of 0 means they have not been received and the eDAQXR clock time can drift from the GPS satellite clock time. A value of 2 means the GPS module is not connected, which should normally never be seen.
- gps:utc_seconds: This is useful as a “ball park” sanity check on sync maintenance and phase alignment. It is updated a 5 Hz using the Garmin. As such the resolution is only 200 ms. If this channel is not in phase across all units, then data skew across the units has been significantly compromised.
- gps:number_of_satellites_in_use: This is useful as a sanity check on the gps:pps_sync_lock channel data. Note that even if the number of satellites in use drops down to less than 2 (for the Garmin GPS module), PPS sync lock will still be 1. The reason for this is that the Garmin module has an internal clock that it syncs to the GPS clock when satellite PPS signals are available. When satellite PPS signals are not available, the Garmin continues to send “simulated PPS signal” timing messages to the system.
GPS modules / antennae should of course be positioned to have an unobstructed view of the sky and horizons as much as possible. Test runs should not be started until GPS satellite connectivity is established and the GPS pps_sync_lock channel data is stable at 1 for a short period of time at least (i.e., a few minutes is recommended).
It is impossible to start SIE test runs across all units at the same “exact” time (i.e., anywhere close to the phase accuracy of less than a few µs for EBRG / EHLS channel realized in standalone unit tests and Mode 1 or Mode 2 networked tests). At best, the user may be able to start the tests within a one second or so of each other. There are two ways to deal with this problem so that all SIE file data samples start at the same “exact” time (within a few µs). This is referred to as “time zero phase alignment”.
Using a Time History DataMode trigger to achieve time zero phase alignment: This is applicable for tests that use Time History DataModes exclusively for all channel data storage. It is best explained using an example. Assume the GPS channels are sampled at the default value 5 S/s which is recommended.
Assume there are two units – A and B. Assume unit A has some channels sampled at 500 Hz and some sampled at 1000 Hz. Assume Unit B has some channels sampled at 2500 Hz. Proceed as follows.
- For each unit, define a Time Base Shifter Computed channel using the GPS utc_seconds channel as the input channel and configure for a Lag of 1 sample period (which is the default). Name this Computed channel prev_utc_seconds.
- For each unit, define a Signal Calculator Computed channel using the following expression, prev_utc_minute == 0 && utc_minute == 1 and name this channel trig_5. (Note that the values 0 and 1 are not likely the values to be used when the test runs are started; this is discussed a little later.)
- For unit A, define two Up Sampler Computed channels. Name one as trig_500, and set the up sample Factor to 100. Name the other as trig_1000, and set the up sample Factor to 200.
- For unit B, define one Up Sampler Computed channel. Name it as trig_2500, and set the up sample Factor to 500.
- For each unit, define all of the Time History DataModes required to cover all channel sample rates, and set the Trigger mode to Trigger. For the Trigger channel, select the appropriate channel previously defined (e.g., for the Time History with 5 S/s channels, use trig_5, for the Time History with 500 S/s channels, user trig_500, etc.).
- Don’t forget to have the System preference Sync to GPS Time enabled. To minimize the SIE file size, don’t forget to uncheck the Collect boxes for all channels included in the Time History DataModes.
The SXR setup files are now almost completely defined in preparation for an SIE test run. The last task to be done before actually starting the test runs is to pick the time when the Time History DataModes will be triggered. Assume it is 9:30 based on UTC time. On modern PCs, the PC time is usually very close to UTC time but adjusted for local time. So, it’s usually safe to use the PC time in deciding on the trigger time. To give yourself a few minutes, you could target the trigger time to 9:35:00.000000. To do this, edit the previously defined Signal Calculator Computed channels (on unit A and on unit B) to show the following expression, prev_utc_minute == 34 && utc_minute == 35. Save the changes, and start the SIE test run.
It is advised that Digital meter chart displays of the GPS utc_minutes and utc_seconds channels are used so that it can be verified that the SIE test runs on both units are actually running before 9:35:00.000000.
For subsequent SIE test runs, simply adjust the values in the Signal Calculator Computed channels to set the desired trigger time.
Using post processing to achieve time zero phase alignment: This is applicable for tests configured to use the Collect data storage mode for all channels. In every SIE file, the “exact” test run start time is stored in a metadata object (i.e., “tag” for users familiar with the Somat libsie application). To find this object is an SIE file, proceed as follows.
- Open the SIE Viewer application. (Contact support if you do have this application.)
- Browse for the SIE file.
- Click on the Metadata button in the File Overview section.
- Click on the Tags ID “sie:xml_metadata”. The metadata is shown in the window pane on the right.
- Click on the Formatted button.
- Click on the Export button and save the text file (using the root SIE file name with extension “.txt” is one suggestion).
- Open Notepad or any text editor and search for the string “core:start_time”.
Following is what you will find.
<tag id="core:start_time">2019-11-25T16:03:11.000000000</tag>
Once all test run start times are known, use a post processing application to remove all data samples (for all channels in all SIE files) that precede the test run start time for the SIE file with the latest run start time. Note that the InField application can be used to accomplish this. Following are some facts that may be useful.
- All SIE test runs are started on a whole second of UTC time, for both Decimal and Binary sample rates domains.
- In the Decimal sample rate domain, as long as all analog and digital input channel sample rates are 1 S/s or above, all of these channels will have a whole number of samples in a 1 second time period.
- In the Binary sample rate domain, as long as all analog and digital input channel sample rates are 0.8 S/s or above, all of these channels will have a whole number of samples in a 1.25 second time period.
What Happens if GPS Satellite Connectivity is Lost: Based on experimental evaluations (with the Garmin module only), periodic loss of all satellites in view for periods of no more than a few minutes, will not affect the data skew (i.e., it will still be maintained to within a few µs).
Of course, much longer periods of satellite dropouts should be expected to result in some transient increase in data skew, and possibly data skew that will endure for the duration of the test run. Consider starting a new test run in this situation.
NOTE
If the GPS cable is disconnected (or severed) during a test run, do not reconnect the GPS the cable (or connect a new cable or GPS module). Reconnecting will usually result in very large permanent channel data skew, and can even result in system error resets. The best option is to stop the test, then connect the GPS module cable, and then start a new test run.