Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Instrukcja Random w S7-1200 TIA Portal

12 Sie 2019 21:35 132 4
  • Poziom 21  
    Jaka jest instrukcja Random (tzn. losująca losową liczbę) w S7-1200 TIA Portal?
  • Poziom 21  
    Dziękuję za porady, ale jeszcze wciąż coś robię nie tak.
    A więc: odczytuję czas instrukcją RD_SYS_T, zapisuję otrzymane dane do zmiennej DTL. Następnie ze zmiennej DTL wyciągam nanosekundy, ale jest to zmienna UDInt, i ma do 9 cyfr, z czego 3 ostatnie cyfry to zera. Potrzebuję wyciąć z całej wartości "nanosekundy" cyfrę nr 5. Przekształcam zatem "nanosekundy" do stringa, i w instrukcji VAL_STRG piszę, że chodzi mi tylko o cyfrę (pozycję) 5. Ale zawsze otrzymuję string '' (czyli pusty), a po przekształceniu na integer mam wartość 12289. Kombinowałem z innymi parametrami, ale wciąż to samo. Pusty łańcuch i po przekształceniu na integer zamiast jednej cyfry, mam wartość 12289.
    W programie odczyt czasu (RD_SYS_T) działa, ale przekształcenie string - wycięcie cyfry - zmiana na int wgląda tak (poniżej) i nie działa. Gdzie robię błąd? Ewentualnie, jak np. z wartości 876413000 wyciąć cyfrę na pozycji 5, czyli w tym przypadku "1"?
    Instrukcja Random w S7-1200 TIA Portal
  • Pomocny post

    Specjalista Automatyk
    Parametry Size i P nie działają tak, jak zakładasz. Size musi mieć rozmiar przynajmniej jak konwertowana liczba, jeśli ma mniejszy to funkcja się nie wywołuje i zwraca pusty ciąg znaków.
    Jeśli chcesz użyć tej formy to proponuję VAL_STRG Size 10, P 1, a potem RIGHT 5 znaków i wtedy String[1] będziesz miał wybrane pole.
    Może lepiej liczbę wejściową podzielić przez 10000, a potem MOD 10?