跳转到内容
STAGING SERVER
DEVELOPMENT SERVER

Frequency Converter#

通过 Frequency Converter 相机功能,您可以按不同于所接收输入信号频率的频率来触发相机。您可以使用它将原始信号频率乘以一个分数。

Frequency Converter 可以接受来自不同来源的触发信号,例如来自相机的 Encoder Control、Counter 或 Timer。接收来自 Encoder Control 的信号是最常见的使用场景。

该功能仅适用于Basler racer 2相机。

该功能的使用#

运作原理#

Frequency Converter 将所接收信号的触发速率调整为适合在其他应用中使用的触发速率。这是通过分频和倍频实现的。

Frequency Converter 包含按顺序对原始信号起作用的三个模块:预分频器、倍频器和后分频器

Frequency Converter 模块

预分频器模块#

预分频器模块接收输入信号。通过该模块,您可以应用一个整数因子(即预分频器)来降低原始频率,并将信号传递给下一个模块,即倍频器模块。

例如,如果预分频器值设置为 2,则只有每隔一个输入信号才会原封不动地传递给倍频器模块,相应地,频率会减半。如果预分频器值设置为 1,则每个输入信号都会原封不动地传递给倍频器模块。

信息

  • 采用预分频器有助于降低输入信号的周期性抖动。
  • Basler 建议为预分频器使用较低的值。应尽可能少地改变原始信号频率,以便通过倍频器模块进行频率调整。
倍频器模块#

倍频器模块接收来自预分频器模块的信号。为确保正常运行,所接收的信号频率不得低于 10 Hz。通过倍频器模块,您可以应用一个整数因子(即倍频器)来生成频率更高的信号,并将这些信号传递给下一个模块,即后分频器模块。

对于每个输入信号,都会生成一个同步输出信号,即信号是同相的。应用三倍的倍频因子将呈现如下效果:

倍频器模块相位对齐

信息

更改输入信号或倍频器值后,可能需要一段时间才能达到上述理想的相位对齐状态。如果输入周期不断变化(例如增量编码器发送的信号具有显着的抖动),则可能永远无法达到稳定的相位对齐。但是,输出信号将接近最佳状态。

后分频器模块#

后分频器模块接收来自倍频器模块的信号。通过后分频器模块,您可以应用一个整数因子(即后分频器)来生成频率降低的信号,并提供这些信号以用作相机触发信号(例如用作行起始触发)。

Frequency Converter 源信号#

您可以使用 BslFrequencyConverterSignalSource 参数设置 Frequency Converter 的源信号。 这定义了 如何

信息

驱动 Frequency Converter。例如,您可以指定由电信号或 Timer 信号来驱动转换器。 Line1Frequency Converter 只能处理脉冲信号。因此,当选择电平信号(例如 )时,您还必须指定信号跃迁 即可激活 Frequency Converter。

可用作源信号的选项如下:

  • Encoder1:可以通过增量编码器驱动 Frequency Converter。
  • Line1 更改为 Line6:可以通过向 I/O 线路 1、2、3、4、5 或 6施加电信号来驱动 Frequency Converter。
  • CxpTrigger0, CxpTrigger1:可以通过从采集卡发送的 CXP 触发信号来驱动 Frequency Converter。
  • Counter1Active 更改为 Counter4Active:可以使用 Counter 功能驱动 Frequency Converter。只要指定的 Counter 正在计数,信号就保持高电平 (1);只要不在计数,信号就保持低电平 (0)。
  • Counter1Start 更改为 Counter4Start:可以使用 Counter 功能。每当指定的 Counter 开始计数时,就会发送一个信号。
  • Counter1End 更改为 Counter4End:可以使用 Counter 功能。每当指定的 Counter 停止计数时,就会发送一个信号。
  • Timer1Active, Timer2Active:可以使用 Timer 功能。只要指定的 Timer 正在运行,信号就保持高电平 (1);只要不在运行,信号就保持低电平 (0)。
  • Timer1End, Timer2End:可以使用 Timer 功能。每当指定的 Timer 到期时,就会发送一个信号。

Frequency Converter 激活#

即: BslFrequencyConverterActivation 参数允许您定义 哪个信号跳变 可激活 Frequency Converter。例如,您可以指定当触发信号下降时转换器变为活动状态。

信息

即: BslFrequencyConverterActivation 参数仅在选择电平信号作为源信号时可用,即可以为高电平 (1) 或低电平 (0) 的信号(例如 I/O 信号或诸如以下各项的“Active”信号): Timer1Active.

您可以设置 BslFrequencyConverterActivation 参数设置为以下值:

  • RisingEdge:当触发信号上升时(即信号状态从低电平变为高电平时),Frequency Converter 变为活动状态。这是默认设置。
  • FallingEdge:当触发信号下降时(即信号状态从高电平变为低电平时),Frequency Converter 变为活动状态。
  • AnyEdge:当触发信号下降或上升时,Frequency Converter 变为活动状态。

配置 Frequency Converter#

要配置 Frequency Converter:

  1. 设置 BslFrequencyConverterSignalSource 将 Property 设置为可用的源信号之一,例如, Encoder1.
  2. 如果您已选择电平信号作为源信号,请设置 BslFrequencyConverterActivation 参数,例如设置为 RisingEdge.
  3. 设置 BslFrequencyConverterPreDivider 参数,例如设置为 3。
  4. 设置 BslFrequencyConverterMultiplier 参数,例如设置为 4。
  5. 设置 BslFrequencyConverterPostDivider 参数,例如设置为 2。
  6. 可选:如果您想将 Frequency Converter 用作所选触发器的源信号,请设置 TriggerSource 参数至 FrequencyConverter.

示例代码#

// Select encoder 1 as the source signal for the frequency converter
camera.BslFrequencyConverterSignalSource.SetValue(BslFrequencyConverterSignalSource_Encoder1);
// Set the pre-divider value to 3
camera.BslFrequencyConverterPreDivider.SetValue(3);
// Set the multiplier value to 4
camera.BslFrequencyConverterMultiplier.SetValue(4);
// Set the post-divider to 2
camera.BslFrequencyConverterPostDivider.SetValue(2);
// Optional: Set the frequency converter as source signal for the selected trigger
camera.TriggerSource.SetValue(TriggerSource_FrequencyConverter);
INodeMap& nodemap = camera.GetNodeMap();
// Select encoder 1 as the source signal for the frequency converter
CEnumParameter(nodemap, "BslFrequencyConverterSignalSource").SetValue("Encoder1");
// Set the pre-divider value to 3
CIntegerParameter(nodemap, "BslFrequencyConverterPreDivider").SetValue(3);
// Set the multiplier value to 4
CIntegerParameter(nodemap, "BslFrequencyConverterMultiplier").SetValue(4);
// Set the post-divider to 2
CIntegerParameter(nodemap, "BslFrequencyConverterPostDivider").SetValue(2);
// Optional: Set the frequency converter as source signal for the selected trigger
CEnumParameter(nodemap, "TriggerSource").SetValue("FrequencyConverter");
// Select encoder 1 as the source signal for the frequency converter
camera.Parameters[PLCamera.BslFrequencyConverterSignalSource].SetValue(PLCamera.BslFrequencyConverterSignalSource.Encoder1);
// Set the pre-divider value to 3
camera.Parameters[PLCamera.BslFrequencyConverterPreDivider].SetValue(3);
// Set the multiplier value to 4
camera.Parameters[PLCamera.BslFrequencyConverterMultiplier].SetValue(4);
// Set the post-divider to 2
camera.Parameters[PLCamera.BslFrequencyConverterPostDivider].SetValue(2);
// Optional: Set the frequency converter as source signal for the selected trigger
camera.Parameters[PLCamera.TriggerSource].SetValue(PLCamera.TriggerSource.FrequencyConverter);
/* 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 */
/* Select encoder 1 as the source signal for the frequency converter */
errRes = PylonDeviceFeatureFromString(hdev, "BslFrequencyConverterSignalSource", "Encoder1");
CHECK(errRes);
/* Set the pre-divider value to 3 */
errRes = PylonDeviceSetIntegerFeature(hdev, "BslFrequencyConverterPreDivider", 3);
CHECK(errRes);
/* Set the multiplier value to 4 */
errRes = PylonDeviceSetIntegerFeature(hdev, "BslFrequencyConverterMultiplier", 4);
CHECK(errRes);
/* Set the post-divider to 2 */
errRes = PylonDeviceSetIntegerFeature(hdev, "BslFrequencyConverterPostDivider", 2);
CHECK(errRes);
/* Optional: Set the frequency converter as source signal for the selected trigger */
errRes = PylonDeviceFeatureFromString(hdev, "TriggerSource", "FrequencyConverter");
CHECK(errRes);
# Select encoder 1 as the source signal for the frequency converter
camera.BslFrequencyConverterSignalSource.Value = "Encoder1"
# Set the pre-divider value to 3
camera.BslFrequencyConverterPreDivider.Value = 3
# Set the multiplier value to 4
camera.BslFrequencyConverterMultiplier.Value = 4
# Set the post-divider to 2
camera.BslFrequencyConverterPostDivider.Value = 2
# Optional: Set the frequency converter as source signal for the selected trigger
camera.TriggerSource.Value = "FrequencyConverter"

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