@max - Apologies in advance for the long reply, but the question happens to strike a few different chords regarding programming of sample loading in VENUS, and is a pretty essential topic IMO.
Is this STAR or VANTAGE? Labware detection during loading works differently between the two platforms. Based on the description of the issue, I would guess STAR as the autoload detects labware from a fixed height at the bottom of the carrier/tube positions.
Due to the nature of these particular tube inserts, when loaded they will always block the beam used by the autoload to detect the presence of labware, so for this carrier/insert combo, labware detection is only useful if trying to detect the presence of an insert (which will not be useful for you here).
You have some additional loading options outside of labware detection that should help though, and all of the following can be applied to both STAR and VANATGE (if using VoV) systems with the same code.
If this were me, I would program the loading of these sample carriers to only have the autoload consider a position in which a tube/sample is anticipated to present. That way there is no need to parse out errors from positions known to not have a sample.
There are the two conventional approaches I would consider. Both would require preparing my sample sequence of tubes to be loaded to only contain the active positions of samples I want to load/scan. In most cases, samples in sample carriers are loaded consecutively. In this case, you can just set the end position of the sample sequence to the number of samples specified by an upstream variable assignment (usually user prompt). If this were a non-conventional scenario where sample positions could be in random or custom non-consecutive groupings, then you would need to either dynamically program a sequence based on worklist data that specifies the positions of interest, or make a custom deck sequence. In either case, the tube sequence only contains positions of interest, others can be ignored by the autoload for barcode scanning or labware detection.
Load Smart Step using sequence of interest (easiest but no step return data):
Pass prepared sample tube sequence into the Load Smart Step. Programming done.
At runtime, user will be prompted to confirm carriers for load
Load single steps using dynamically constructed position strings parameter (requires more programming but preserves step data from each load command):
Parse the sequence to determine each carrier (labware ID) that needs to be loaded, and the dependent position IDs to load for each carrier. Use the single steps to unload (will eliminate waiting carrier loading warning dialogs) and subsequently load each carrier, with the dynamically programmed required parameters.
The parameter for the position string (dictates which positions the autoload will consider) needs to be constructed as a comma delimited string of the carrier position IDs you want to scan. For sample tube carriers, position IDs are typically numeric strings. I.e. if you only wanted to scan the first n number of tubes (where n <= total carrier positions):
l_strPositionsToLoad = “1,2,3,…,n”
There are a number of programming options in VENUS that can be used to construct these strings. You will undoubtedly need to use the HSLSeqLib and HSLStrLib, and I also recommend the additional string library included with HSLExtensions.
After both of the above techniques, the scanned carriers will be loaded into the Vector Database, with barcode data of the scanned positions integrated into sample tracking for downstream purposes.
Additionally, for this particular case, I would also turn of labware detection via the sample carriers labware property, as it doesn’t work with the inserts.
Hope this helps. Let me know if you have any questions.