Hi Sean,
Thanks for posted about this issue. Firstly I wanted to reassure you that, dispite what the compare list implies, there are not multiple instances of your top-level VI. However, I agree that the naming convention being used is missleading.
To replicate your issue I made a simple vi which called 3 express VIs in sequence. I saved this VI (compare1.vi), and made a copy of it (compare2.vi). Effectively, I now had 2 identical VIs with slight different names. While both VIs were open in memory, I went to tools >> compare. As you can see below the compare Window shows a main instance of the top-level VIs PLUS x3 instances of the top-level VI (one per Express VI).
I them compared the 2 top-level VIs (ie. Compare1.vi and Compare2.vi). As you can see below, the comparision tool (correctly) found 0 differences.
I then compared a top-level VI (ie. Compare1.vi) with an instance of that top-level VI (ie. Compare1.vi:Instance:0). As you will see, the tool found many differences. This is because we are NOT actually comparing 2 instances of Compare1.vi... but we are actually comparing Compare1.vi with one of the ExpressVIs.
I wanted to take this oppertunity to reassure you that, dispite the implication, the additional of each ExpressVI does not spawn multiple instances of the top-level VI, and that everything is behaving as intended. However, I do agree that the current naming convention for each Express VI is rather confusing. I will raise this as a corrective action request with the LabVIEW R&D team to see if we can make this a little more obvious in a future release.
Thanks for bringing this to naming convention oddity to our attention. But, to assure you one last time, from a programmatic/functional perspective, everything is working as expected.
Hope this has been helpful,
Kind regards,
Rich Roberts
Senior Marketing Engineer, National Instruments
Connect on LinkedIn: https://www.linkedin.com/in/richard-roberts-4176a27b/