跳转到内容

Light Control Feature Set#

Light Control Feature Set 可让您通过 pylon 软件控制多达 4 个光源设备。

Light Control Feature Set 基于 SLP 协议,该协议使相机和光源设备可以直接相互通信。光源设备可以是第三方光源,也可以是来自 Basler 相机光源产品组合的光源。如果要使用第三方光源,则需要 Basler SLP 频闪控制器,以启用相机和光源之间的通信。如果您选择 Basler 光源,由于其中已经包含了控制器功能,因此不需要单独的控制器。两种选件均为即插即用。

该功能的使用#

配置 Basler 光源/光源控制器#

  1. 如果尚未连接控制器和光源,请执行连接。
  2. pylon Viewer 中启用轮询
  3. BslLightControlMode 参数设置为 On
    BslLightControlSource 参数将显示相机的哪条 GPIO 线路用于控制光源功能。
    如果连接新的控制器,则系统会自动为它分配下一个可用的光源设备 ID。
  4. 执行 BslLightControlEnumerateDevices 命令。
  5. 如果您的环境中有多个 Basler 光源或光源控制器,请将 BslLightDeviceSelector 参数设置为要配置的设备。
    请确保没有光源设备 ID 冲突
  6. If you use a Basler SLP Strobe Controller, specify whether you want to control the light device using current or voltage via the BslLightDeviceControlMode parameter. Every light can be controlled via current control. For lights designed for a 12 V or 24 V connection, it is recommended to use voltage control. If you use a Basler Camera Light, you can skip this step. The parameter is set automatically in this case.

    信息

    Note that every time you're switching from current to voltage or vice versa, there is a short initialization phase of the controller during which the connected light lights up. This can last for up to 15 s and is normal behavior.

  7. If you use a Basler SLP Strobe Controller, set the BslLightDeviceMaxCurrent parameter to the maximum current rating of your light in continuous operation.
    If you use a Basler Camera Light, the maximum current is set automatically.
    This ensures that your light will not get damaged and that you can safely use the whole current range of your light using the BslLightDeviceBrightness parameter.
    You can only change the BslLightDeviceMaxCurrent parameter value, when the BslLightDeviceOperationMode parameter is set to Off.

  8. Set the BslLightDeviceBrightness parameter to the desired brightness.
    This parameter can be set in a range from 0 to 100 %. 100 % corresponds to the current that you have specified with the BslLightDeviceMaxCurrent parameter. 50 % will reduce the current by a factor of 2. The Basler Camera Light uses pulse width modulation (PWM), the Basler SLP Strobe Controller doesn't. PWM can lead to brightness fluctuations for short exposure times (< 500 µs) or to stripes in rolling shutter cameras.
  9. 设置 BslLightDeviceOperationMode 参数设置为所需模式:
    • On: This will make the light shine continuously.
    • Strobe: This will set the light to strobe mode. You can configure the strobe mode with the BslLightDeviceStrobeMode and BslLightDeviceStrobeDuration parameters.

配置频闪模式#

One of the advantages of the strobe mode is that it can help to increase the life expectancy of your light. By not operating it continuously but like a flash when needed, less heat is generated in the LEDs. This slows down the aging process of the lights. The other advantage is that while in strobe mode you can overdrive the lights, i.e., increase the current supplied to a maximum of 500 % (for the light controller), which increases the brightness of your light. Before you do so, read the instructions in the Overdrive Mode section.

On rolling shutter cameras, if you have set the BslLightDeviceOperationMode parameter to Strobe, use the BslLightControlTriggerMode parameter to determine how to trigger the light. Different trigger modes are available:

  • ExposureActive: Use this mode only if you're not overlapping image acquisitions.
  • FlashWindow: If you use this mode, make sure that the camera generates a Flash Window signal.

On global shutter cameras, the trigger mode is preset.

信息

There is a delay of approx. 23 µs between exposure start and the light being turned on.

信息

与 Light Control Feature Set 有关的闪烁窗口信号的实现目前仍在开发中。特别是在闪烁窗口信号非常短的情况下,结果可能不尽如人意(所得到的图像中的部分行可能太亮,而其他一些行可能太暗)。

要控制单次频闪脉冲的持续时间,必须使用 BslLightDeviceStrobeMode 参数指定要自动还是手动进行频闪操作。

  • Automatic: The duration of the individual strobe pulses is controlled by the ExposureTime parameter of the camera. The strobe lasts for the duration of the exposure time that you have specified. For more information, see the Troubleshooting section.
  • Manual: You can define the duration of the individual strobe pulses yourself using the BslLightDeviceStrobeDuration parameter. If you're operating the camera at the upper end of its capabilities, overtriggering may occur.

信息

如果您使用触发宽度曝光模式Sequencer 功能或相机的任何自动功能(例如,Auto Exposure、Auto Gain),则必须使用手动频闪模式。

信息

相机使用同一条线路触发光源并传输光源控制参数设置的任何更改。由于参数更改优先,因此在此期间,该线路将不可用于触发信号,并且频闪操作将被中断。为了避免这种情况,请检查 BslLightControlStatus。如果值为 Ready,则表示光源设备已准备好接收触发条件。此外,应该仅在禁用频闪模式时更改参数设置。

过载模式#

使光源过载意味着您可以增加电流,从而在光源处于频闪模式时提高光源强度。

注意 – 错误的操作可能会损坏您的光源。

请仔细阅读本节中的说明,以免损坏连接的光源,并确保光源不会过早老化。

使用过载模式时,必须考虑以下方面,以免损坏您的光源:

  • In strobe mode, the BslLightDeviceBrightness parameter can be set to values above 100 %. The maximum value depends on the strobe pulse duration and the duty cycle. For Basler Camera Lights, the maximum allowed brightness is calculated automatically and the range of the brightness slider will be adjusted accordingly. When using a third-party light and the Basler SLP Strobe Controller, you have to calculate the maximum brightness value yourself and enter this value in the BslLightDeviceOverdriveLimit parameter. For example, 200 % means that the maximum current in strobe operation will be twice as high as the BslLightDeviceMaxCurrent parameter value.
  • Check with the manufacturer of your light if you're not sure what the maximum current is that your light can withstand in strobe mode. The Basler SLP Strobe Controller allows setting the BslLightDeviceOverdriveLimit parameter to 500 % but most lights are not able to withstand the currents that would result from this overdrive limit.
  • 由于增加的电流会导致 LED 发热量增大,因此必须在各次频闪脉冲之间留出足够的时间,以保证光源再次冷却。根据经验,脉冲强度越高,两次脉冲之间应留出的时间越长。
  • 考虑曝光时间,因为这会影响脉冲的长度和占空比。

信息

Safety features that avoid damaging the controller hardware.

  • Currents above 2 A in combination with long exposure times and high duty cycles may damage the controller hardware. In order to avoid this, the maximum allowed current is calculated automatically and the maximum allowed brightness is reduced accordingly (see Table 1 below).
    The duty cycle calculation is based on the maximum possible frame rate of the camera. The maximum possible frame rate of the camera can be reduced by using the Acquisition Frame Rate feature.

Safety features that avoid damaging the light.

  • If the chosen overdrive brightness is too high in respect to the strobe duration and the duty cycle (see Table 2), the strobe duration will be reduced or triggers will be ignored.
Table 1 (Controller Protection)#
Output Current
(BslLightDeviceBrightness x
BslLightDeviceMaxCurrent)
Max. Strobe Duration Max. Duty Cycle
Under 2 A - 100 %
2 A to <3 A 5 ms 15 %
3 A to <4 A 5 ms 8 %
4 A to <5 A 5 ms 6 %
5 A to <6 A 5 ms 4 %
6 A to <8 A 1 ms 4 %
8 A to <9 A 1 ms 3 %
9 A to <10 A 1 ms 2 %
Table 2 (Light Protection)#
Required Brightness Max. Strobe Duration Max. Duty Cycle
0–100 % - 100 %
101–200 % 30 ms 30 %
201–300 % 10 ms 20 %
301–500 % 2 ms 10 %
501–1000 % 1 ms 5 %

更改光源设备 ID#

要更改光源的 ID:

  1. BslLightControlMode 参数设置为 On
  2. BslLightDeviceOperationMode 参数设置为 Off
  3. BslLightDeviceSelector 参数设置为您要更改其 ID 的 Basler 光源/控制器。
  4. BslLightDeviceChangeID 参数设置为所需的值。
    该 ID 将立即更改。

信息

Using More Than One Light Device or Basler Camera Light

When using more than one light device, you have to make sure that their IDs are all different. Using devices with identical IDs will cause communication errors. Duplicate IDs can occur, if you're connecting new devices for the first time because all devices are shipped with the light device ID set to 7. It can also occur when connecting existing devices from another system as light device IDs are remembered by the device once they have been set. The best way to prevent conflicts, is to connect devices one after the other and always assign a new and unique ID after having connected a device.

故障排除#

检查和清除错误#

光源/光源控制器能检测到可以纠正的错误。检查 BslLightDeviceLastError 参数以找出发生了什么错误。纠正错误后,可以从列表中清除它。

最多可以存储 25 个错误。如果发生第 26 个错误,则最早的错误将被覆盖,依此类推。

如果您连接了多个光源/光源控制器,BslLightControlErrorStatus 会告诉您哪个设备出现了问题。

检查和清除错误是一个反复迭代过程,具体取决于发生了多少个错误。

To check and clear errors:

  1. 要检查最近发生的错误,请获取 BslLightDeviceLastError 参数的值。
  2. 更正相应的错误。
  3. 要从错误列表中删除最后一个错误,请执行 BslLightDeviceClearLastError 命令。
  4. 不断获取并删除最后一个错误,直到 BslLightDeviceLastError 参数显示 NoError 为止。

可用错误代码

含义
无错误 自上次清除错误存储器以来,光源/光源控制器未检测到任何错误。
通信故障 如果光源/光源控制器和相机之间的数据传输错误,则会发生通信错误。原因可能是使用了过长的线缆或线路上的噪音过大。
连接错误 如果光源/光源控制器和相机之间的连接断开或发生了通信错误,则会发生连接错误。其他原因还可能包括连接松动或控制器完全断开。
硬件错误 光源/光源控制器发生技术故障。断开并重新连接电源可以解决此问题。有关更多信息,请参见重启控制器电源

在自动频闪模式下过度触发#

如果您在达到其性能上限时操作相机,则可能会出现过度触发光源/光源控制器。过度触发表示光源/光源控制器接收到未准备好接收的触发,例如,因为其仍处在关闭光源的过程中。这意味着触发将被忽略且该光源在下次曝光时不会亮起。为了更好地理解此问题,请参考以下示例。

如果相机能够以 100 fps 操作且将曝光时间设置为 50 ms,即相机可以每秒 20 帧进行快速连续采集,而曝光之间不会暂停。这意味着必须正好在两次曝光之间的边缘处触发光源/光源控制器。实际上,这几乎是无法实现的,因为固有抖动会造成以下情况:有时在触发信号达到时,光源仍关闭。在这种情况下,触发将被忽略且生成的图像太暗。

由于抖动是不规则的,没有精确的方法可防止此情况的发生。如果您注意到其中一些图像比其他的要暗,则考虑是否可以选择以连续模式操作光源。您还可以尝试调整帧速率,例如,使用 19 fps,而不是 20 fps。

重启控制器#

To ensure power-cycling, the controller needs to be disconnected from electricity for five minutes. This is normal behavior. If you're using more than one controller, the other controllers need to be power-cycled as well even if they haven't experienced any faults.

第一张图像太暗#

When setting the BslLightControlMode parameter to On, there is a delay of up to 1 second until the light device is actually turned on. Because of this, the first image may be too dark. Either discard this image, or, if you need all images, only start image acquisition after a suitable delay, e.g., by using a timer.

详情#

显示所有相机型号

相机型号 可用光源控制触发模式
a2A1920-51gcBAS 不支持的功能
a2A1920-51gcPRO 不支持的功能
a2A1920-51gmBAS 不支持的功能
a2A1920-51gmPRO 不支持的功能
a2A1920-160ucBAS 不支持的功能
a2A1920-160ucPRO 不支持的功能
a2A1920-160umBAS 不支持的功能
a2A1920-160umPRO 不支持的功能
a2A2590-22gcBAS 不支持的功能
a2A2590-22gcPRO 不支持的功能
a2A2590-22gmBAS 不支持的功能
a2A2590-22gmPRO 不支持的功能
a2A2590-60ucBAS 不支持的功能
a2A2590-60ucPRO 不支持的功能
a2A2590-60umBAS 不支持的功能
a2A2590-60umPRO 不支持的功能
a2A3840-13gcBAS 不支持的功能
a2A3840-13gcPRO 不支持的功能
a2A3840-13gmBAS 不支持的功能
a2A3840-13gmPRO 不支持的功能
a2A3840-45ucBAS 不支持的功能
a2A3840-45ucPRO 不支持的功能
a2A3840-45umBAS 不支持的功能
a2A3840-45umPRO 不支持的功能
a2A4504-5gcBAS 不支持的功能
a2A4504-5gcPRO 不支持的功能
a2A4504-5gmBAS 不支持的功能
a2A4504-5gmPRO 不支持的功能
a2A4504-18ucBAS 不支持的功能
a2A4504-18ucPRO 不支持的功能
a2A4504-18umBAS 不支持的功能
a2A4504-18umPRO 不支持的功能
a2A5320-7gcBAS 不支持的功能
a2A5320-7gcPRO 不支持的功能
a2A5320-7gmBAS 不支持的功能
a2A5320-7gmPRO 不支持的功能
a2A5320-23ucBAS 不支持的功能
a2A5320-23ucPRO 不支持的功能
a2A5320-23umBAS 不支持的功能
a2A5320-23umPRO 不支持的功能
a2A5328-4gcBAS 不支持的功能
a2A5328-4gcPRO 不支持的功能
a2A5328-4gmBAS 不支持的功能
a2A5328-4gmPRO 不支持的功能
a2A5328-15ucBAS 不支持的功能
a2A5328-15ucPRO 不支持的功能
a2A5328-15umBAS 不支持的功能
a2A5328-15umPRO 不支持的功能
acA640-90gc 不支持的功能
acA640-90gm 不支持的功能
acA640-90uc 不支持的功能
acA640-90um 不支持的功能
acA640-120gc 不支持的功能
acA640-120gm 不支持的功能
acA640-120uc 不支持的功能
acA640-120um 不支持的功能
acA640-121gm 不支持的功能
acA640-300gc 曝光激活
acA640-300gm 曝光激活
acA640-750uc 曝光激活
acA640-750um 曝光激活
acA720-290gc 曝光激活
acA720-290gm 曝光激活
acA720-520uc 曝光激活
acA720-520um 曝光激活
acA780-75gc 不支持的功能
acA780-75gm 不支持的功能
acA800-200gc 曝光激活
acA800-200gm 曝光激活
acA800-510uc 曝光激活
acA800-510um 曝光激活
acA1280-60gc 不支持的功能
acA1280-60gm 不支持的功能
acA1300-22gc 不支持的功能
acA1300-22gm 不支持的功能
acA1300-30gc 不支持的功能
acA1300-30gm 不支持的功能
acA1300-30uc 不支持的功能
acA1300-30um 不支持的功能
acA1300-60gc 不支持的功能
acA1300-60gm 不支持的功能
acA1300-60gmNIR 不支持的功能
acA1300-75gc 曝光激活
acA1300-75gm 曝光激活
acA1300-200uc 曝光激活
acA1300-200um 曝光激活
acA1440-73gc 曝光激活
acA1440-73gm 曝光激活
acA1440-220uc 曝光激活
acA1440-220um 曝光激活
acA1600-20gc 不支持的功能
acA1600-20gm 不支持的功能
acA1600-20uc 不支持的功能
acA1600-20um 不支持的功能
acA1600-60gc 不支持的功能
acA1600-60gm 不支持的功能
acA1920-25gc 不支持的功能
acA1920-25gm 不支持的功能
acA1920-25uc 不支持的功能
acA1920-25um 不支持的功能
acA1920-40gc 曝光激活
acA1920-40gm 曝光激活
acA1920-40uc 曝光激活
acA1920-40ucMED 不支持的功能
acA1920-40um 曝光激活
acA1920-40umMED 不支持的功能
acA1920-48gc 曝光激活
acA1920-48gm 曝光激活
acA1920-50gc 曝光激活
acA1920-50gm 曝光激活
acA1920-150uc 曝光激活
acA1920-150um 曝光激活
acA1920-155uc 曝光激活
acA1920-155ucMED 不支持的功能
acA1920-155um 曝光激活
acA1920-155umMED 不支持的功能
acA2000-50gc 不支持的功能
acA2000-50gm 不支持的功能
acA2000-50gmNIR 不支持的功能
acA2000-165uc 不支持的功能
acA2000-165um 不支持的功能
acA2000-165umNIR 不支持的功能
acA2040-25gc 不支持的功能
acA2040-25gm 不支持的功能
acA2040-25gmNIR 不支持的功能
acA2040-35gc 曝光激活
acA2040-35gm 曝光激活
acA2040-55uc 曝光激活
acA2040-55um 曝光激活
acA2040-90uc 不支持的功能
acA2040-90um 不支持的功能
acA2040-90umNIR 不支持的功能
acA2040-120uc 曝光激活
acA2040-120um 曝光激活
acA2440-20gc 曝光激活
acA2440-20gm 曝光激活
acA2440-35uc 曝光激活
acA2440-35ucMED 不支持的功能
acA2440-35um 曝光激活
acA2440-35umMED 不支持的功能
acA2440-75uc 曝光激活
acA2440-75ucMED 不支持的功能
acA2440-75um 曝光激活
acA2440-75umMED 不支持的功能
acA2500-14gc 不支持的功能
acA2500-14gm 不支持的功能
acA2500-14uc 不支持的功能
acA2500-14um 不支持的功能
acA2500-20gc 曝光激活
acA2500-20gcMED 不支持的功能
acA2500-20gm 曝光激活
acA2500-20gmMED 不支持的功能
acA2500-60uc 曝光激活
acA2500-60um 曝光激活
acA3088-16gc 曝光激活
闪烁窗口
acA3088-16gm 曝光激活
闪烁窗口
acA3088-57uc 曝光激活
闪烁窗口
acA3088-57ucMED 不支持的功能
acA3088-57um 曝光激活
闪烁窗口
acA3088-57umMED 不支持的功能
acA3800-10gc 不支持的功能
acA3800-10gm 不支持的功能
acA3800-14uc 不支持的功能
acA3800-14um 不支持的功能
acA4024-8gc 曝光激活
闪烁窗口
acA4024-8gm 曝光激活
闪烁窗口
acA4024-29uc 曝光激活
闪烁窗口
acA4024-29um 曝光激活
闪烁窗口
acA4096-11gc 曝光激活
acA4096-11gm 曝光激活
acA4096-30uc 曝光激活
acA4096-30ucMED 不支持的功能
acA4096-30um 曝光激活
acA4096-30umMED 不支持的功能
acA4096-40uc 曝光激活
acA4096-40ucMED 不支持的功能
acA4096-40um 曝光激活
acA4096-40umMED 不支持的功能
acA4112-8gc 曝光激活
acA4112-8gm 曝光激活
acA4112-20uc 曝光激活
acA4112-20ucMED 不支持的功能
acA4112-20um 曝光激活
acA4112-20umMED 不支持的功能
acA4112-30uc 曝光激活
acA4112-30ucMED 不支持的功能
acA4112-30um 曝光激活
acA4112-30umMED 不支持的功能
acA4600-7gc 不支持的功能
acA4600-10uc 不支持的功能
acA5472-5gc 曝光激活
闪烁窗口
acA5472-5gm 曝光激活
闪烁窗口
acA5472-17uc 曝光激活
闪烁窗口
acA5472-17ucMED 不支持的功能
acA5472-17um 曝光激活
闪烁窗口
acA5472-17umMED 不支持的功能
boA4096-93cc 不支持的功能
boA4096-93cm 不支持的功能
boA4112-68cc 不支持的功能
boA4112-68cm 不支持的功能
boA4500-45cc 不支持的功能
boA4500-45cm 不支持的功能
boA6500-36cc 不支持的功能
boA6500-36cm 不支持的功能
boA8100-16cc 不支持的功能
boA8100-16cm 不支持的功能
daA1280-54lc 不支持的功能
daA1280-54lm 不支持的功能
daA1280-54uc 不支持的功能
daA1280-54um 不支持的功能
daA1600-60lc 不支持的功能
daA1600-60lm 不支持的功能
daA1600-60uc 不支持的功能
daA1600-60um 不支持的功能
daA1920-15um 不支持的功能
daA1920-30uc 不支持的功能
daA1920-30um 不支持的功能
daA1920-160uc 不支持的功能
daA1920-160um 不支持的功能
daA2500-14lc 不支持的功能
daA2500-14lm 不支持的功能
daA2500-14uc 不支持的功能
daA2500-14um 不支持的功能
daA3840-45uc 不支持的功能
daA3840-45um 不支持的功能
puA1280-54uc 不支持的功能
puA1280-54um 不支持的功能
puA1600-60uc 不支持的功能
puA1600-60um 不支持的功能
puA1920-30uc 不支持的功能
puA1920-30um 不支持的功能
puA2500-14uc 不支持的功能
puA2500-14um 不支持的功能

示例代码#

// Enable the light control mode
camera.BslLightControlMode.SetValue(BslLightControlMode_On);
//Enumerate the light devices
camera.BslLightControlEnumerateDevices.Execute();
//Select light device 1
camera.BslLightDeviceSelector.SetValue(BslLightDeviceSelector_Device1);
//Set the maximum current of device 1 to 100 mA
camera.BslLightDeviceMaxCurrent.SetValue(100.0);
//Set the brightness to 100 %
camera.BslLightDeviceBrightness.SetValue(100.0);
//Set the operation mode to continuous
camera.BslLightDeviceOperationMode.SetValue(BslLightDeviceOperationMode_On);
INodeMap& nodemap = camera.GetNodeMap();
// Enable the light control mode
CEnumParameter(nodemap, "BslLightControlMode").SetValue("On");
// Enumerate the light devices
CCommandParameter(nodemap, "BslLightControlEnumerateDevices").Execute();
// Select light device 1
CEnumParameter(nodemap, "BslLightDeviceSelector").SetValue("Device1");
// Set the maximum current of device 1 to 100 mA
CFloatParameter(nodemap, "BslLightDeviceMaxCurrent").SetValue(100.0);
// Set the brightness to 100 %
CFloatParameter(nodemap, "BslLightDeviceBrightness").SetValue(100.0);
// Set the operation mode to continuous
CEnumParameter(nodemap, "BslLightDeviceOperationMode").SetValue("On");
// Enable the light control mode
camera.Parameters[PLCamera.BslLightControlMode].SetValue(PLCamera.BslLightControlMode.On);
// Enumerate the light devices
camera.Parameters[PLCamera.BslLightControlEnumerateDevices].Execute();
// Select light device 1
camera.Parameters[PLCamera.BslLightDeviceSelector].SetValue(PLCamera.BslLightDeviceSelector.Device1);
// Set the maximum current of device 1 to 100 mA
camera.Parameters[PLCamera.BslLightDeviceMaxCurrent].SetValue(100.0);
// Set the brightness to 100 %
camera.Parameters[PLCamera.BslLightDeviceBrightness].SetValue(100.0);
// Set the operation mode to continuous
camera.Parameters[PLCamera.BslLightDeviceOperationMode].SetValue(PLCamera.BslLightDeviceOperationMode.On);
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
/* Enable the light control mode */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightControlMode", "On");
CHECK(errRes);
/* Enumerate the light devices */
errRes = PylonDeviceExecuteCommandFeature(hdev, "BslLightControlEnumerateDevices");
CHECK(errRes);
/* Select light device 1 */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightDeviceSelector", "Device1");
CHECK(errRes);
/* Set the maximum current of device 1 to 100 mA */
errRes = PylonDeviceSetFloatFeature(hdev, "BslLightDeviceMaxCurrent", 100.0);
CHECK(errRes);
/* Set the brightness to 100 % */
errRes = PylonDeviceSetFloatFeature(hdev, "BslLightDeviceBrightness", 100.0);
CHECK(errRes);
/* Set the operation mode to continuous */
errRes = PylonDeviceFeatureFromString(hdev, "BslLightDeviceOperationMode", "On");
CHECK(errRes);

您也可以使用 pylon Viewer 轻松设置参数。