background image

Kurs Zaawansowany S7 – zaj cia dodatkowe, wtorek, zadanie C

Proponowane rozwi zanie:

1. 

W pierwszym kroku nale y stworzy  now  funkcj , to jest 

FC43

.

2. Skalowanie. 

Funkcja powinna przeskalowa  warto  podan  na wej cie „napi cie” 

z zakresu 0...10 do zakresu 100...0. Aby wykona  skalowanie nale y:

odczytan  z wej cia warto  przemno y  przez 10 dzi ki czemu uzyska si  

zakres 0...100,

      co mo na zapisa  w programie tak:

L     #napiecie

     L     1.000000e+001
     *R   

przemno y  t  warto  przez -1 dzi ki czemu odwróci si  t  charakterystyk  uzyskuj c

zakres 0...-100,

czyli w STL:

NEGR 

wersja: 080201

INTEX Centrum Szkoleniowe Systemów Automatyki

strona 3/6

Kurs Zaawansowany S7 – zaj cia dodatkowe, wtorek, zadanie C

na koniec nale y doda  100, w ten sposób wyj ciowy zakres zostanie przeskalowany 

do warto ci 100...0 (charakterystyka przesuni ta w gór ):

      L     1.000000e+002
      +R    
      T     #przeskalowane_napiecie

w dalszej kolejno ci zostan  sprawdzone zakresy, czyli czy przeskalowana warto

przekracza 100:

      L     1.000000e+002
      >R    
      JCN   et1
      T     #przeskalowane_napiecie

(je eli przekracza, to jako „przeskalowane_napi cie” zostanie wpisane 100.0)

lub czy jest mniejsza od 0:

et1:  L     #przeskalowane_napiecie
      L     0.000000e+000
      <R    
      JCN   et2
      T     #przeskalowane_napiecie

Ostatni, najistotniejszy fragment to przeliczenie napi cia z formatu REAL na S5TIME.

et2:  L     #przeskalowane_napiecie
      RND   

W ten sposób została zrealizowana konwersja z Real na DInt. W kolejnym kroku zostan

skasowane 4 najstarsze bity, dzi ki czemu zostanie ustalona podstawa czasu w formacie

S5Time na 00, czyli 10ms.

      AW    W#16#FFF

wersja: 080201

INTEX Centrum Szkoleniowe Systemów Automatyki

strona 4/6

background image

Kurs Zaawansowany S7 – zaj cia dodatkowe, wtorek, zadanie C

Kolejna konwersja to przej cie z liczby całkowitej na format BCD poniewa  ilo  jednostek

podstawy w formacie S5T jest podawana jako zmienna BCD:

      ITB   
      T     #czas 

.

Pełna posta  programu:

FC43

// przeskalowanie napi cia z zakresu 0-10 do zakresu 100-0
      L     #napiecie
      L     1.000000e+001
      *R    
      NEGR  
      L     1.000000e+002
      +R    
      T     #przeskalowane_napiecie

// sprawdzenie przekroczenie maksimum (100)
      L     1.000000e+002
      >R    
      JCN   et1
      T     #przeskalowane_napiecie

// sprawdzenie przekroczenie minimum (0)
et1:  L     #przeskalowane_napiecie
      L     0.000000e+000
      <R    
      JCN   et2
      T     #przeskalowane_napiecie

// przeliczenie napi cia na format S5TIME
et2:  L     #przeskalowane_napiecie
      RND   
      AW    W#16#FFF
      ITB   
      T     #czas

wersja: 080201

INTEX Centrum Szkoleniowe Systemów Automatyki

strona 5/6

Kurs Zaawansowany S7 – zaj cia dodatkowe, wtorek, zadanie C

OB1

      CALL  FC 9

// woltomierz

       adres_AI    := PIW290
       zakres      := 1.000000e+001
       wart_analog := MD20

      CALL  FC 43
       napiecie := MD20
       czas     := MW24

      CALL  FC 5

// uniwersalny generator

       T_nr := T1
       czas := MW24
       F    := Q5.7

wersja: 080201

INTEX Centrum Szkoleniowe Systemów Automatyki

strona 6/6