Learn more about our scanners at: https://joescan.com
These parameters are used to configure scanning synchronized to an encoder signal. There are also parameters to configure multiple scanners to alternate scanning, avoiding the problem of one scanner seeing another scanner's laser.
StaggeredScanning
Staggered scanning allows scanners to avoid seeing each other's lasers by sequentially triggering scans.
Value Range: | true or false |
Default Value: | true |
Location: | inside a ScannerConfig block |
# This is a lineal sharp with two zones, each comprising three scanners surrounding the log.
# Zones are used for visualizing data from groups of scanners in JSDiag.
# Zones don't affect scanner functionality.
Zone FirstZone 0, 1, 2 # In JSDiag, you see data from the first ring
Zone FirstZone 3, 4, 5 # In JSDiag, you see data from the second ring
# Encoder pulses occur on 0.00448765893792 inch intervals as the chain moves
# 24 inches of travel caused 5348 encoder pulses in JSDiag: 24" / 5348 = 0.00448765893792"
EncoderPulseInterval 0.00448765893792
# The scanners will take scans every two inches
EncoderScanInterval 2.0
# We use three trigger phases, scanners 0 and 3, then scanners 1 and 4, then scanners 2 and 5
NumberOfPhases 3
# Top scanner
TriggerPhase 0 : 0, 3
# Bottom right scanner
TriggerPhase 1 : 1, 4
# Bottom left scanner
TriggerPhase 2 : 2, 5
# A ScannerConfig block is used to configure multiple scanners at once.
# In this case, scanners 0 through 3 are all configured using the same parameters.
ScannerConfig Scanners 0, 1, 2, 3, 4, 5, 6
{
# 0.1 milliseconds is a general minimum
MinLaserOn 0.1
# This is the longest period of time the laser and camera will stay on.
MaxLaserOn 2.0
# The laser is downstream compared to the camera
LaserUpstream false
CalibrationFixtureNames ThreeCircles
# Data will only be returned if it is within this scan window.
# This allows you to exclude data points from machinery, walls, etc.
# It also makes autoexposure better because only data within the window is used to adjust the exposure.
WindowTop 10.0
WindowBottom -1.0
WindowLeft -15.0
WindowRight 15.0
}
# This is a 3-4-5 triangle composed of 4 inch diameter circles.
# The asymmetry is important to keep from getting confused.
CalibFixture ThreeCircles
{
# Radius X Y
CircleFeature 2.0 0.0 0.0
CircleFeature 2.0 8.0 0.0
CircleFeature 2.0 0.0 6.0
} |
TimeStaggeredScanning
MaxLaserOn
value in the preceding phases to determine how long it should wait.Value Format: | Takes no parameters |
Default Value: | none |
Location: | outside a ScannerConfig block |
# This is a carriage system using 10 X2 scanners.
# There are 2 scanners located under the operator cabin and 8 hung on a frame from the ceiling.
# The two under the carriage are closer to the carriage than the ones on the frame.
# Zones are used for visualizing data from groups of scanners in JSDiag.
# Zones don't affect scanner functionality.
#
# Multi-laser scanners use a "Scanner.Laser" notation to describe the scanner, then the laser.
# "0.1" Means scanner 0, laser 1.
Zone AllScanners 0.0, 0.1, 1.0, 1.1, 2.0, 2.1, 3.0, 3.1, 4.0, 4.1, 5.0, 5.1, 6.0, 6.1, 7.0, 7.1, 8.0, 8.1, 9.0, 9.1
Zone Scanner0 0.0, 0.1
Zone Scanner1 1.0, 1.1
Zone Scanner2 2.0, 2.1
Zone Scanner3 3.0, 3.1
Zone Scanner4 4.0, 4.1
Zone Scanner5 5.0, 5.1
Zone Scanner6 6.0, 6.1
Zone Scanner7 7.0, 7.1
Zone Scanner8 8.0, 8.1
Zone Scanner9 9.0, 9.1
# Each encoder pulses occur on 0.00448765893792 inch intervals as the carriage moves
# 24 inches of travel caused 5348 encoder pulses in JSDiag: 24" / 5348 = 0.00448765893792"
EncoderPulseInterval 0.00448765893792
# The scanners will take scans ever 2.0 inches
EncoderScanInterval 2.0
# You need to scan every third laser to keep scanners from seeing a different scanner's laser
NumberOfPhases 3
# Every third laser, starting with the first
TriggerPhase 0 : 0.0, 1.1, 3.0, 4.1, 6.0, 7.1, 9.0
# Every third laser, starting with the second
TriggerPhase 1 : 0.1, 2.0, 3.1, 5.0, 6.1, 8.0, 9.1
Every third laser, starting with the third
TriggerPhase 2 : 1.0, 2.1, 4.0, 5.1, 7.0, 8.1
# This means they all "trigger" on the same location, but space their exposures out by time instead of location
# A phase lasts as long as the longest MaxLaserOn value of the scanners in that phase.
# In this example, each phase contains lasers with a MaxLaserOn of 2.0 milliseconds, so an entire scan will
# take 2.0 ms for the first phase, 2.0 ms for the second, and 2.0 ms for the third.
TimeStaggeredScanning
# A ScannerConfig block is used to configure multiple scanners at once.
# In this case, the two scanners under the cabin are closer to the cant,
# and therefore have a lower MaxLaserOn value.
ScannerConfig ScannersUnderOperator 0, 1
{
# 0.1 milliseconds is a general minimum
MinLaserOn 0.10
# Since the scanners under the operator are closer to the cant, they have a lower exposure time
MaxLaserOn 1.0
CalibrationFixtureNames FiveBySevenCant
# The lasers are upstream compared to the camera
LaserUpstream true
WindowTop 36.0
WindowBottom -1.0
WindowLeft -1.0
WindowRight 48.0
}
# The remaining scanners are all the same distance from the cant,
# so they all have a higher MaxLaserOn value.
ScannerConfig ScannersOnCeiling 2, 3, 4, 5, 6, 7, 8, 9
{
# 0.1 milliseconds is a general minimum
MinLaserOn 0.10
# The other eight scanners are hung from the ceiling and further from the cant so have a higher exposure time
# Since this is the largest MaxLaserOn in the system, including the scanners below the cabin, this is how
# long a phase lasts for during TimeStaggeredScanning.
MaxLaserOn 2.0
CalibrationFixtureNames FiveBySevenCant
# The lasers are upstream compared to the camera
LaserUpstream true
# Data will only be returned if it is within this scan window.
# This allows you to exclude data points from machinery, walls, etc.
# It also makes autoexposure better because only data within the window is used to adjust the exposure.
WindowTop 36.0
WindowBottom -1.0
WindowLeft -1.0
WindowRight 48.0
}
# This is a common cant size located with the knees pulled all the way in
CalibFixture FiveBySevenCant
{
# Lower X, Left Y, Width, Height
SquareFeature 0 0 5 7
} |
JS-20 X-Series only
TimedScanInterval
.
Value Range: | 0.0 to 167.7 |
Default Value: | 0.01 |
Units: | seconds |
Location: | outside a ScannerConfig block |
EncoderPulseInterval
.
Value Range: | 0.0 to 6500.0 |
Default Value: | 1.0 |
Units: | Any distance units |
Location: | outside a ScannerConfig block |
EncoderScanInterval
.
Value Range: | 0.0 to 6500.0 |
Default Value: | 1 |
Units: | Any distance units |
Location: | outside a ScannerConfig block |
NumberOfPhases
.
Value Range: | 1 to 100 |
Default Value: | 2 |
Location: | outside a ScannerConfig block |
MaxLaserOn
or the scans may overlap and one scanner may see another's laser. The number of phases must be less than the number of encoder pulses per scan interval.TriggerPhase
.
Value Format: | phase_number @ <phase delay in ms> : comma-separated list of Cable ID's. |
Value Range: | phase delay between 0.0 and 2000.0 |
Default Value: | phase delay will default to a safe value based on MaxLaserOn times |
Location: | outside a ScannerConfig block |
Firmware Req: | Optional @phase_delay only supported in 1945 and later |
TriggerPhase 0 : 0, 2
TriggerPhase 1 : 1, 3 |
TriggerPhase 0 @0.0 : 0, 2
TriggerPhase 1 @5.0 : 1, 3 |
StartScanTriggerOnHigh
.
Value Format: | Takes no parameters |
Default Value: | None |
Location: | outside or inside a ScannerConfig block |
ScannerConfig
block, all the scanners with that cable ID will start synchronized scanning when the StartScan signal is high voltage. If this parameter doesn't appear, then the scanners will start synchronized scanning when the StartScan signal is low voltage. This parameter is only valid for scanner firmware version 561 and later.UntriggeredSyncScanning
.
Value Format: | Takes no parameters |
Default Value: | None |
Location: | outside a ScannerConfig block |
Firmware Req: | 1840 and later |
This global parameter means that the scanners do not need a Start Scan signal in order to initiate synchronized scanning. This is useful for scanners that have the Switchcraft 8-pin connector and do not have a Start Scan signal as part of the system.
Value Format: | CableId Period in ms |
Default Value: | None |
Location: | outside a ScannerConfig block |
Firmware Req: | 1945 and later |
PulseMaster 0 10.0 |