Konwersja typów danych w języku SCL – funkcja CONVERT

Udostępnij
Konwersja typów danych w języku SCL – funkcja CONVERT

Instrukcja „Convert Value” (Konwertuj wartość) w sterownikach SIMATIC S7-1200 i S7-1500 umożliwia programistom dokonywanie jawnych konwersji danych pomiędzy różnymi typami. Jej zastosowanie pozwala na precyzyjne zarządzanie konwersją wartości, co jest szczególnie istotne w przypadku pracy z różnorodnymi danymi. W tym artykule szczegółowo omówimy, jak korzystać z tej funkcji, jakie są jej parametry oraz ograniczenia.

Czym jest funkcja „Convert Value”?

Funkcja „Convert Value” służy do konwertowania danych pomiędzy określonymi typami źródłowymi i docelowymi. Gdy dodasz tę instrukcję do programu w środowisku TIA Portal, otwiera się dedykowane okno dialogowe „CONVERT”. W tym oknie określasz typ danych wejściowych (źródłowych) oraz typ docelowy, na jaki chcesz je przekonwertować.

Jak działa proces konwersji?

Instrukcja odczytuje wartość z zadanego źródła, a następnie przekształca ją do wskazanego typu danych docelowych. Proces konwersji działa w sposób następujący:

Wybór typu danych

W oknie dialogowym definiujesz typ źródła i celu, np. konwersję liczb całkowitych na liczby zmiennoprzecinkowe.

Ograniczenia dla bitów

W polu instrukcji nie można wybrać typów danych BYTE i WORD jako ciągów bitowych. Możesz jednak użyć operandów typów DWORD lub LWORD, o ile długość operandów wejściowych i wyjściowych jest zgodna.

Interpretacja bitów

Operandy typu DWORD są interpretowane jako DINT/UDINT, a LWORD jako LINT/ULINT. Dla tych typów zachodzi konwersja implicit (domyślna).

Zgodność z IEC

Gdy włączone jest sprawdzanie zgodności z normą IEC, dostępne są dodatkowe opcje konwersji, co zwiększa elastyczność instrukcji.

Przykłady konwersji danych

Dla sterowników S7-1500

Sterowniki tej serii oferują dodatkowe opcje konwersji, ale z pewnymi ograniczeniami:

  • Typy DWORD i LWORD mogą być konwertowane tylko na lub z typów REAL i LREAL.
  • Podczas konwersji wzorzec bitowy wartości źródłowej zostaje przeniesiony w niezmienionej formie do wartości docelowej, wyrównanej do prawej strony.

Praktyczne zastosowanie

Załóżmy, że masz wartość w formacie DINT, którą chcesz przekształcić na typ REAL:

  1. Określasz typ źródłowy jako DINT.
  2. Ustawiasz typ docelowy na REAL.
  3. Wynikowa wartość zostaje automatycznie przeliczona do standardu liczby zmiennoprzecinkowej.

Wskaźniki stanu sygnału ENO

Podczas pracy z instrukcją „Convert Value” ważne jest monitorowanie wskaźnika stanu sygnału wyjściowego ENO:

  • ENO = 1: Konwersja przebiegła pomyślnie, brak błędów.
  • ENO = 0: Wystąpił błąd w trakcie przetwarzania. Warto w takim przypadku zweryfikować poprawność określonych typów danych lub parametrów.

Parametry instrukcji „Convert Value”

Poniżej przedstawiono zestawienie parametrów dostępnych w instrukcji:

ParametrDeklaracjaTyp danychObszar pamięciOpis 
<Source type>WejścieLiczby binarne, całkowite, zmiennoprzecinkowe, czas, itp.I, Q, M, D, L, P, stałaWartość, która ma zostać przekonwertowana.
<Destination type>WyjścieLiczby binarne, całkowite, zmiennoprzecinkowe, czas, itp.I, Q, M, D, L, P, stałaWynik konwersji.

Uwagi końcowe

W sterownikach SIMATIC S7-1200 i S7-1500 funkcja „Convert Value” jest niezastąpiona przy pracy z danymi różnorodnych typów. Warto pamiętać o:

  • Zachowaniu zgodności długości operandów.
  • Specyficznych wymaganiach dla sterowników S7-1500.
  • Monitorowaniu stanu sygnału ENO, aby unikać błędów w aplikacji.

Dzięki tej instrukcji programista może efektywnie zarządzać konwersją danych, co przyczynia się do zwiększenia niezawodności i elastyczności aplikacji przemysłowych.

Jeśli chcesz pogłębić swoją wiedzę i umiejętności w zakresie programowania i konfiguracji systemów automatyki, polecamy zapisanie się na darmowy kurs PLC!

Udostępnij
Polecany kurs!
Do 20.09.2022 rabat -15% na:

SIMATIC S7 w akcji

Zapisz się na newsletter!
Autor wpisów
Tomasz Gilewski

Witam, nazywam się Tomasz Gilewski. Jestem autorem książek o sterowniku S7-1200 oraz panelach HMI (czyli sprzęt firmy Siemens). Od kilkunastu lat zajmuję się programowaniem wyłącznie na sprzęcie oraz narzędziach inżynieryjnych firmy Siemens.

Zostaw komentarz

Wybierz walutę
Przewiń do góry

Wyszukaj na stronie