콘텐츠로 건너뛰기
STAGING SERVER
DEVELOPMENT SERVER

Frequency Converter#

Frequency Converter camera feature를 사용하면 수신된 입력 신호의 주파수와 다른 주파수로 카메라를 트리거할 수 있습니다. 이를 통해 원래 신호 주파수에 분수 값을 곱할 수 있습니다.

Frequency converter는 카메라의 encoder control, counter, timer 등 다양한 소스에서 트리거 신호를 수신할 수 있습니다. Encoder control에서 신호를 수신하는 것이 가장 일반적인 사용 사례입니다.

이 기능은 Basler racer 2 카메라에서만 사용할 수 있습니다.

기능 사용법#

작동 원리#

Frequency converter는 수신된 신호의 트리거 레이트를 다른 애플리케이션에서 사용하기 적합한 트리거 레이트로 조정합니다. 이는 분할(division)과 곱셈(multiplication)을 통해 이루어집니다.

Frequency converter는 원래 신호에 순차적으로 작용하는 프리바이더(pre-divider), 멀티플라이어(multiplier), 포스트바이더(post-divider)의 세 가지 모듈로 구성됩니다.

Frequency Converter 모듈

Pre-Divider 모듈#

Pre-divider 모듈은 입력 신호를 수신합니다. 이 모듈을 사용하면 정수 계수인 pre-divider를 적용하여 원래 주파수를 낮추고, 그 신호를 다음 모듈인 multiplier 모듈로 전달할 수 있습니다.

예를 들어 pre-divider 값이 2로 설정된 경우, 입력 신호 중 1개 걸러 하나씩만 변경 없이 multiplier 모듈로 전달되므로 주파수가 절반으로 줄어듭니다. Pre-divider 값이 1로 설정된 경우 모든 입력 신호가 변경 없이 multiplier 모듈로 전달됩니다.

정보

  • Pre-divider를 사용하면 입력 신호의 주기적 지터(jitter)를 줄이는 데 도움이 될 수 있습니다.
  • Basler는 pre-divider에 낮은 값을 사용할 것을 권장합니다. multiplier 모듈에 의한 주파수 조정을 원활하게 하려면 원래 신호 주파수의 변경을 최소화해야 합니다.
Multiplier 모듈#

Multiplier 모듈은 pre-divider 모듈에서 신호를 수신합니다. 정상적인 작동을 위해 수신된 신호 주파수는 10 Hz 이상이어야 합니다. Multiplier 모듈을 사용하면 정수 계수인 multiplier를 적용하여 증가된 주파수의 신호를 생성하고, 그 신호를 다음 모듈인 post-divider 모듈로 전달할 수 있습니다.

각 입력 신호에 대해 동기화된 출력 신호가 생성되며, 즉 신호들이 위상에 맞게 정렬됩니다. 멀티플라이어 계수로 3을 적용하면 다음과 같습니다.

Multiplier 모듈 위상 정렬

정보

입력 신호나 multiplier 값이 변경된 후, 위에서 표시된 것과 같은 이상적인 위상 정렬 상태에 도달하는 데 다소 시간이 걸릴 수 있습니다. 인크리멘털 엔코더(incremental encoder)가 전송하는 신호에 상당한 지터가 있는 경우와 같이 입력 주기가 지속적으로 변동하는 경우 안정적인 위상 정렬에 도달하지 못할 수도 있습니다. 그러나 출력 신호는 최적값에 가까울 것입니다.

Post-Divider 모듈#

Post-divider 모듈은 multiplier 모듈에서 신호를 수신합니다. Post-divider 모듈을 사용하면 정수 계수인 post-divider를 적용하여 감소된 주파수의 신호를 생성하고, 이 신호들을 라인 스타트 트리거(line start triggers) 등 카메라 트리거 신호로 사용할 수 있도록 제공합니다.

Frequency Converter Source Signals#

frequency converter의 소스 신호는 BslFrequencyConverterSignalSource parameter를 사용하여 설정할 수 있습니다. 이를 통해 frequency converter가 어떻게 구동되는지 정의합니다.

정보

예를 들어, 전기 신호나 타이머 신호에 의해 컨버터가 구동되도록 지정할 수 있습니다. Frequency converter는 펄스 신호만 처리할 수 있습니다. 예를 들어 Line1와 같은 레벨 신호를 선택할 경우에는 신호 전환도 함께 지정해야 합니다. Frequency Converter를 활성화합니다.

다음 소스 신호를 사용할 수 있습니다:

  • Encoder1: Frequency Converter는 인크리멘탈 엔코더로 구동할 수 있습니다.
  • Line1 (으)로 Line6: I/O 라인 1, 2, 3, 4, 5 또는 6에 전기 신호를 인가하여 Frequency Converter를 구동할 수 있습니다.
  • CxpTrigger0, CxpTrigger1: 프레임 그래버에서 전송된 CXP 트리거 신호로 Frequency Converter를 구동할 수 있습니다.
  • Counter1Active (으)로 Counter4Active: 다음을 사용하여 Frequency Converter를 구동할 수 있습니다. Counter 기능. 지정된 Counter가 카운팅하는 동안 신호는 High(1) 상태를 유지하고, 카운팅하지 않는 동안은 Low(0) 상태를 유지합니다.
  • Counter1Start (으)로 Counter4Start: 다음을 사용하여 Frequency Converter를 구동할 수 있습니다. Counter 기능. 지정된 Counter가 카운팅을 시작할 때마다 신호가 전송됩니다.
  • Counter1End (으)로 Counter4End: 다음을 사용하여 Frequency Converter를 구동할 수 있습니다. Counter 기능. 지정된 Counter가 카운팅을 멈출 때마다 신호가 전송됩니다.
  • Timer1Active, Timer2Active: 다음을 사용하여 Frequency Converter를 구동할 수 있습니다. Timer 기능. 지정된 Timer가 실행되는 동안 신호는 High(1) 상태를 유지하고, 실행되지 않는 동안은 Low(0) 상태를 유지합니다.
  • Timer1End, Timer2End: 다음을 사용하여 Frequency Converter를 구동할 수 있습니다. Timer 기능. 지정된 Timer가 경과할 때마다 신호가 전송됩니다.

Frequency Converter Activation#

이 BslFrequencyConverterActivation parameter를 사용하면 다음을 정의할 수 있습니다. 어떤 신호 전환에서 Frequency Converter를 활성화합니다. 예를 들어, 트리거 신호가 하강할 때 컨버터가 활성화되도록 지정할 수 있습니다.

정보

이 BslFrequencyConverterActivation parameter는 I/O 신호나 다음과 같은 "Active" 신호와 같이 High(1) 또는 Low(0) 상태를 가질 수 있는 레벨 신호를 소스 신호로 선택한 경우에만 사용할 수 있습니다. Timer1Active.

다음을 설정할 수 있습니다. BslFrequencyConverterActivation 매개변수를 다음 값 중 하나로 설정합니다:

  • RisingEdge: 트리거 신호가 상승할 때, 즉 신호 상태가 Low에서 High로 바뀔 때 Frequency Converter가 활성화됩니다. 이는 기본 설정입니다.
  • FallingEdge: 트리거 신호가 하강할 때, 즉 신호 상태가 High에서 Low로 바뀔 때 Frequency Converter가 활성화됩니다.
  • AnyEdge: 트리거 신호가 하강하거나 상승할 때 Frequency Converter가 활성화됩니다.

Frequency Converter 구성 방법#

Frequency Converter를 구성하려면:

  1. 다음 값 중 하나로 BslFrequencyConverterSignalSource 파라미터를 사용 가능한 소스 신호 중 하나로 설정합니다(예: Encoder1.
  2. 소스 신호로 레벨 신호를 선택한 경우, 다음을 설정하십시오. BslFrequencyConverterActivation parameter (예: RisingEdge.
  3. 다음 값 중 하나로 BslFrequencyConverterPreDivider parameter (예: 3).
  4. 다음 값 중 하나로 BslFrequencyConverterMultiplier parameter (예: 4).
  5. 다음 값 중 하나로 BslFrequencyConverterPostDivider parameter (예: 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를 사용하여 파라미터를 손쉽게 설정할 수 있습니다.