Contents
- Konfiguracja wejść analogowych w TIA Portal dla niestandardowego zakresu
Konfiguracja wejść analogowych w TIA Portal dla niestandardowego zakresu
Dziś pokażę Wam, jak czytać wejścia analogowe o niestandardowym zakresie. Odczyt będzie pochodził z czujnika ciśnienia, który wytwarza zakres napięć: 0,5V – 5,5V (0 – 5000 PSI). Kilka modułów AI ma “dostosowanie zakresu pomiarowego” (measuring range adjustment) na poziomie sprzętu, co znacznie ułatwia to zadanie. Ta funkcjonalność została poprawiona w TIA Portal V14 (TIA Portal V14: Nowe Funkcje i Ulepszenia).
Konfiguracja wejść analogowych w TIA Portal dla modułów z ‘korektą zakresu pomiarowego’ na poziomie sprzętu
Moduły wejść analogowych obsługują “dostosowanie zakresu pomiarowego” na dzień dzisiejszy (04/04/17):
- AI 8xU/I HF – 6ES7 531-7NF00-0AB0: FW 1.1 (tylko V14)
- AI 2xU/I 2-,4-wire HF (ET200SP) – 6ES7 134-6HB00-0CA1 FW 2.0
Mam nadzieję, że update’y firmware’u dodadzą funkcję ‘dopasowania zakresu pomiarowego’ również dla innych modułów.
1. Konfiguracja Hardware’u
Podświetl moduł wejść analogowych i przejdź do: Properties » General » podświetl ‘Input Channel’ który chcesz skonfigurować » Measuring » Measurement type: Voltage, Measuring range: +/- 10V (AI 8xU/I HF) / 0..10V (AI 2xU/I 2-,4-wire HF)


PODPOWIEDŹ! Skorzystaj z wbudowanej diagnostyki, zwłaszcza ‘Overflow’ i ‘Underflow’ (wartość odczytywana jest poza zakresem). Błędy te będą wyświetlane w buforze diagnostycznym, a dioda LED sterownika PLC zacznie migać na czerwono. Również będą one wyświetlane w oknie ‘System diagnostics view’, jeśli masz go na jednym z ekranów HMI.
Dalej mając podświetlony channel przewin do Measuring range scaling » zaznacz Measuring range adjustment. Należy pamiętać, że limity są w milivoltach!


- dolny limit czujnika: 0 PSI »500 mV = 0,5V » Scaled low nominal range limit (bipolar: -27648, unipolar: 0)
- górny limit czujnika: 5000 PSI » 5500mV = 5,5V » Scaled high nominal range limit (27648)
Teraz utworzymy zmienna które będzie zawierała odczyt z czujnika. Będzie ona typu Integer i będzie zawierać wartość pomiędzy ‘scaled low nominal range limit’ (bipolar: -27648, unipolar: 0) a ‘scaled high nominal range limit’ (27648).
Zmień zakładkę z ‘General’ na ‘IO tags’ i wprowadź nazwę zmiennej:

Każda zmienna odpowiada jednemu kanałowi (channel), zaczynając od Channel 0 na górze i kończąc na Channel 7 na dole.
2. Funkcja ‘Analog Value Conversion’ (konwersja sygnału analogowego)
Teraz napiszemy funkcję, która będzie zamieniać wartość w naszej zmiennej (IN_PressureRead) na jednostki inżynieryjne (w tym przypadku PSI).
Zaczynamy od utworzenia FC:

Tworzymy zmienne:
INPUT | OUTPUT | TEMP |
---|---|---|
In_VoltageValueRead - Real | Q_ScaledValue - Real | NormMinValue - Real |
In_EngineeringValMin - Real | Normalized_Value - Real | |
In_EngineeringValMax - Real | ||
In_Bipolar - Bool | ||
In_Offset - Real |
UWAGA: In_Offset jest używany do manipulowania pomiarem, jeśli jest to wymagane przez wynik kalibracji czujnika.
Wklej poniższy kod do FC:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//Reset Temps #Normalized_Value := 0.0; #NormMinValue := 0.0; //'normalised minimal value' for bipolar AI module = -27648, 'normalised minimal value' for unipolar AI module = 0 IF #In_Bipolar THEN #NormMinValue := -27648; ELSE #NormMinValue := 0.0; END_IF; //Normalize #Normalized_Value := NORM_X(MIN := #NormMinValue, VALUE := #"In_VoltageValueRead", MAX := 27648); //Scale #Q_ScaledValue := (SCALE_X(MIN := #In_EngineeringValMin, VALUE := #Normalized_Value, MAX := #In_EngineeringValMax)) + #In_Offset; |
3. Function call i przypisanie IO
Teraz spujrzmy na instrukcje NORM_X oraz SCALE_X . Szczegóły można przeczytać w pliku pomocy TIA Portal.

NORM_X mapuje zmienną do skali liniowej i zwraca wynik (type: Real) pomiędzy 0.0 a 1.0 jak na załączonym wykresie:
W tym momencie:
- dolny limit czujnika: 0 PSI »500 mV = 0,5V » Scaled low nominal range limit (bipolar: -27648, unipolar: 0) » 0.0 (NORM_X min)
- górny limit czujnika: 5000 PSI » 5500mV = 5,5V » Scaled high nominal range limit (27648) » 1.0 (NORM_X max)

SCALE_X mapuje zmienną z zakresu pomiędzy 0.0 a 1.0 do skali liniowej i zwraca wynik (type: Real) w, zdefiniowanym wcześniej, przedziale.
W tym momencie:
- dolny limit czujnika: 0 PSI »500 mV = 0,5V » Scaled low nominal range limit (bipolar: -27648, unipolar: 0) » 0.0 (NORM_X min) » 0 PSI (jednostki inżynieryjne)
- górny limit czujnika: 5000 PSI » 5500mV = 5,5V » Scaled high nominal range limit (27648) » 1.0 (NORM_X max) » 5000 PSI (jednostki inżynieryjne)
Konfiguracja wejść analogowych w TIA Portal dla modułów bez ‘korekty zakresu pomiarowego’ na poziomie sprzętu
1. Konfiguracja Hardware’u
Podświetl moduł wejść analogowych i przejdź do: Properties » General » podświetl ‘Input Channel’ który chcesz skonfigurować » Measuring » Measurement type: Voltage, Measuring range: 0..10V or +/- 10V (zależnie od tego, którego modułu używasz)
PODPOWIEDŹ! Skorzystaj z wbudowanej diagnostyki, zwłaszcza ‘Overflow’ i ‘Underflow’ (wartość odczytywana jest poza zakresem). Błędy te będą wyświetlane w buforze diagnostycznym, a dioda LED sterownika PLC zacznie migać na czerwono. Również będą one wyświetlane w oknie ‘System diagnostics view’, jeśli masz go na jednym z ekranów HMI.
Teraz utworzymy zmienna które będzie zawierała odczyt z czujnika. Będzie ona typu Integer i będzie zawierać wartość pomiędzy ‘scaled low nominal range limit’ (bipolar: -27648, unipolar: 0) a ‘scaled high nominal range limit’ (27648).
Zmień zakładkę z ‘General’ na ‘IO tags’ i wprowadź nazwę zmiennej:

Każda zmienna odpowiada jednemu kanałowi (channel), zaczynając od Channel 0 na górze i kończąc na Channel 7 na dole.
2. Funkcja ‘Analog Value Conversion’ (konwersja sygnału analogowego)
Teraz napiszemy funkcję, która będzie zamieniać wartość w naszej zmiennej (IN_PressureRead) na jednostki inżynieryjne (w tym przypadku PSI).
Zaczynamy od utworzenia FC:
Tworzymy zmienne:
INPUT | OUTPUT | TEMP | CONSTANT |
---|---|---|---|
In_VoltageValueRead - Real | Q_ScaledValue - Real | NormMinValue - Real | Resolution_Multiplier - Real: 2764.8 |
In_Min - Real | Q_Error - Boll | NormMaxValue - Real | |
In_Max - Real | Normalized_Value - Real | ||
In_EngineeringValMin - Real | |||
In_EngineeringValMax - Real | |||
In_Offset - Real |
Wklej poniższy kod do FC:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//Reset Temps #NormMinValue := 0.0; #NormMaxValue := 0.0; #Normalized_Value := 0.0; // 0.5V (Engineering value: 0 PSI) = how many in 'Siemens' value (0-27648)? #NormMinValue := #Resolution_Multiplier * #In_Min; // 5.5V (Engineering value: 0 PSI) = how many in Siemens Analouge value (0-27648)? #NormMaxValue := #Resolution_Multiplier * #In_Max; //Normalize #Normalized_Value := NORM_X(MIN := #NormMinValue, VALUE := #"In_VoltageValueRead", MAX := #NormMaxValue); //Scale #Q_ScaledValue := (SCALE_X(MIN := #In_EngineeringValMin, VALUE := #Normalized_Value, MAX := #In_EngineeringValMax)) + #In_Offset; //Error IF (#NormMinValue - 100) > #In_VoltageValueRead OR #In_VoltageValueRead > (#NormMaxValue + 100) THEN #Q_Error := TRUE; ELSE #Q_Error := FALSE; END_IF; |
3. Function call i przypisanie IO
- In_VoltageValueRead – Wartość odczytu z czujnika
- In_Min – dolny limit czujnika: 0,5V
- In_Max – górny limit czujnika: 5,5V
- In_EngineeringValMin – dolny limit czujnika w jednostkach inżynieryjnych: 0 PSI
- In_EngineeringValMax – górny limit czujnika w jednostkach inżynieryjnych: 5000 PSI
- In_Offset – używany do manipulowania pomiarem, jeśli jest to wymagane przez wynik kalibracji czujnika
- Q_ScaledValue – wartość wyjściowa w jednostkach inżynieryjnych
- Q_Error – Stan logiczny wynosi 1, jeśli pomiar jest poza zakresem.
Teraz spujrzmy na instrukcje NORM_X oraz SCALE_X . Szczegóły można przeczytać w pliku pomocy TIA Portal.

NORM_X mapuje zmienną do skali liniowej i zwraca wynik (type: Real) pomiędzy 0.0 a 1.0 jak na załączonym wykresie:
- dolny limit czujnika: 0 PSI » 0,5V pomnożony przez 2764.8 = dolny limit zakresu (1382.4) » 0.0 (NORM_X min)
- górny limit czujnika: 5000 PSI » 5,5V pomnożony przez 2764.8 = górny limit zakresu (15206.4)» 1.0 (NORM_X max)

SCALE_X mapuje zmienną z zakresu pomiędzy 0.0 a 1.0 do skali liniowej i zwraca wynik (type: Real) w, zdefiniowanym wcześniej, przedziale.
- dolny limit czujnika: 0 PSI » 0,5V pomnożony przez 2764.8 = dolny limit zakresu (1382.4) » 0.0 (NORM_X min) » 0 PSI (jednostki inżynieryjne)
- górny limit czujnika: 5000 PSI » 5,5V pomnożony przez 2764.8 = górny limit zakresu (15206.4)» 1.0 (NORM_X max) » 5000 PSI (jednostki inżynieryjne)
Podsumowanie
Jeśli korzystasz z czujnika o niestandardowym zakresie pomiarowym, korzystniejsze jest użycie modułu z ‘korekta zakresu pomiaru’. Nie tylko łatwiej jest go skonfigurować, ale co ważniejsze, zapewnia lepszą rozdzielczość odczutyu.