Learn more about our scanners at: https://joescan.com
Page History
...
# 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
} |
...
Time staggered scanning allows scanners to avoid seeing each other's lasers by time-delaying scans after the appropriate distance has passed. A scanner in any given phase uses the largest
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 |
This sets the frequency the scanner will trigger while in timed sync mode. The encoder value will be returned in the scans, but the scans won't be triggered by the encoder. Care must be taken to avoid a scanner seeing another scanner's laser during exposure.
.
EncoderPulseInterval Anchor EncoderPulseInterval EncoderPulseInterval
Value Range: | 0.0 to 6500.0 |
Default Value: | 1.0 |
Units: | Any distance units |
Location: | outside a ScannerConfig block |
This is the distance per encoder pulse, or how far the object moves per quadrature phase. The JS-25 counts every phase of the quadrature signal, so this will be one quarter of the encoder pulse distance used in systems that only count on the rising edge of one channel. The units are user-defined, and need only match what is used for the other encoder parameters.
.
EncoderScanInterval Anchor EncoderScanInterval EncoderScanInterval
Value Range: | 0.0 to 6500.0 |
Default Value: | 1 |
Units: | Any distance units |
Location: | outside a ScannerConfig block |
This sets the distance interval for triggering scans. Every time the belt/chain/screw drive moves this distance, a new scan will be triggered.
NumberOfPhases
.
Value Range: | 1 to 100 |
Default Value: | 2 |
Location: | outside a ScannerConfig block |
Determines the number of phases each scan interval will be divided into. Typically, this will be the number of scanners in a particular zone. Each phase must be longer than
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 |
Determines which phase a scanner will scan in. It is important that each scanner be in a different phase from any other scanners whose lasers it could potentially see. That way their lasers won't be on at the same time and they won't analyze the wrong laser line. This example causes the scanners with cable ID's 0 and 2 to trigger on phase 0, and the scanners with cable IDs 1 and 3 to trigger on phase 1.
TriggerPhase 0 : 0, 2
TriggerPhase 1 : 1, 3 |
Another example this time with the phase delays set at 0.0 ms and 5.0 ms. These delays will only be used in time staggered scanning mode.
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 |
At the global level, this parameter means that all scanners will start synchronized scanning when the StartScan signal is high voltage. If this appears in a
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 Anchor UntriggeredSyncScanning 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 |
Overview
Content Tools