Wejścia i wyjścia analogowe w sterowniku Finder Opta – sterowanie prędkością silnika

controlbyte.pl 1 miesiąc temu

Sterowniki PLC zwykle kojarzą się z wejściami i wyjściami cyfrowymi, jednak w praktyce bardzo często potrzebujemy obsłużyć także sygnały analogowe. Dzięki nim możliwe jest płynne sterowanie procesem – na przykład regulacja prędkości silnika.

W tym artykule pokażę Ci, jak w sterowniku Finder Opta wykorzystać moduł rozszerzeń analogowych, aby odczytywać sygnał z potencjometru i sterować falownikiem w zakresie 0–10 V.

Pełne omówienie znajdziesz również w filmie na YouTube:

1. Stanowisko testowe i schemat podłączeń

Do testów przygotowałem:

  • sterownik Finder Opta,
  • moduł rozszerzeń Analog Expansion,
  • potencjometr 10 kΩ podający napięcie 0–10 V,
  • falownik sterujący silnikiem trójfazowym.

Wejście analogowe AI1 odbiera sygnał z potencjometru, natomiast wyjście analogowe O1 przekazuje napięcie sterujące do falownika. Dzięki temu możemy płynnie regulować prędkość obrotową silnika.


2. Konfiguracja wejść i wyjść analogowych w CODESYS

Po dodaniu modułu rozszerzeń w drzewie projektu CODESYS:

  • wejścia ustawiamy jako Analog Input 0–10 V,
  • wyjścia ustawiamy jako Analog Output 0–10 V.

Dzięki temu potencjometr generuje sygnał wejściowy, który jest przetwarzany i przekazywany do falownika.

3. Program w języku LAD

Na początku przygotowałem prosty program w LAD. Zawiera on klasyczny układ start-stop z podtrzymaniem oraz przeniesienie wartości z potencjometru na wyjście analogowe.

Dzięki temu uzyskujemy prosty układ, który pozwala uruchomić i zatrzymać silnik oraz sterować jego prędkością potencjometrem.

4. Skalowanie wartości analogowych – kod w ST

Wartość z potencjometru w CODESYS ma zakres 0–10000 (odpowiadający napięciu 0–10 V). Aby ułatwić interpretację, napisałem prosty blok funkcyjny FB_AnalogScaling w języku ST.

FUNCTION_BLOCK FB_AnalogScaling VAR_INPUT dwRawValue : DWORD; // Surowa wartość z wejścia analogowego fInputMin : REAL; // Minimalna wartość wejściowa (np. 0) fInputMax : REAL; // Maksymalna wartość wejściowa (np. 10000) fOutputMin : REAL; // Minimalna wartość wyjściowa (np. 0.0) fOutputMax : REAL; // Maksymalna wartość wyjściowa (np. 100.0) bEnable : BOOL; // Włączenie skalowania END_VAR VAR_OUTPUT fRawValue : REAL; // Wartość surowa jako REAL fVoltageValue : REAL; // Wartość napięcia (0-10V) fScaledValue : REAL; // Przeskalowana wartość (np. 0-100%) wRawValueWord : WORD; // Wartość surowa jako WORD bError : BOOL; // Flaga błędu sErrorMsg : STRING; // Komunikat błędu END_VAR VAR fInputRange : REAL; // Zakres wejścia fOutputRange : REAL; // Zakres wyjścia END_VAR

Wewnątrz bloku przeliczamy wartość surową na procenty lub na wolty:

// Reset błędów bError := FALSE; sErrorMsg := ''; // Konwersja DWORD na REAL (zawsze) fRawValue := DWORD_TO_REAL(dwRawValue); wRawValueWord := DWORD_TO_WORD(dwRawValue); // Sprawdzenie czy skalowanie jest włączone IF NOT bEnable THEN fScaledValue := fOutputMin; fVoltageValue := 0.0; RETURN; END_IF // Obliczenie zakresów fInputRange := fInputMax - fInputMin; fOutputRange := fOutputMax - fOutputMin; // Sprawdzenie poprawności parametrów IF fInputRange <= 0 THEN bError := TRUE; sErrorMsg := 'Błędny zakres wejścia (InputMax <= InputMin)'; fScaledValue := fOutputMin; fVoltageValue := 0.0; END_IF // Przeskalowanie liniowe: y = (x - x_min) * (y_max - y_min) / (x_max - x_min) + y_min fScaledValue := (fRawValue - fInputMin) * fOutputRange / fInputRange + fOutputMin; // Ograniczenie do zakresu wyjściowego fScaledValue := LIMIT(fOutputMin, fScaledValue, fOutputMax); // Konwersja na wartość napięcia (0-10V) fVoltageValue := (fRawValue - fInputMin) * 10.0 / fInputRange; fVoltageValue := LIMIT(0.0, fVoltageValue, 10.0);

Dzięki temu możemy łatwo korzystać z wartości w procentach (np. 0–100%) lub w Voltach (0–10 V).

5. Szablon projektu do pobrania

Żebyś mógł od razu uruchomić ten przykład u siebie, przygotowałem pełny projekt w CODESYS, który zawiera:

  • program w LAD z obsługą start/stop i przeniesieniem wartości,
  • blok funkcyjny FB_AnalogScaling w ST,
  • przykładową deklarację zmiennych,
  • konfigurację wejść i wyjść analogowych,
  • schemat połączeń.

Pobierz szablon projektu CODESYS:

Finder Opta ANalog Out v08Pobierz

6. Podsumowanie

Dzięki wejściom i wyjściom analogowym w sterowniku Finder Opta możesz w prosty sposób zrealizować płynną regulację prędkości silnika. Wystarczy:

  • podłączyć potencjometr i falownik,
  • skonfigurować moduł analogowy w CODESYS,
  • wykorzystać prosty program w LAD,
  • dodać blok skalowania w ST dla czytelnych wartości.

Zachęcam Cię do pobrania szablonu i samodzielnego przetestowania działania.

A cały proces krok po kroku możesz obejrzeć w filmie:

Idź do oryginalnego materiału