-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!news.internetia.pl!not-for-mail
From: Mario <m...@...pl>
Newsgroups: pl.misc.elektronika
Subject: Re: stara pamięć nie rdzewieje
Date: Mon, 02 Jun 2014 00:47:26 +0200
Organization: Netia S.A.
Lines: 87
Message-ID: <lmgbht$h1c$1@mx1.internetia.pl>
References: <5389d4ca$0$2224$65785112@news.neostrada.pl>
<lmclhp$kft$1@node2.news.atman.pl> <lmcmas$nn1$1@node1.news.atman.pl>
<5389deb2$0$2231$65785112@news.neostrada.pl>
<lmcnal$ope$1@node1.news.atman.pl> <lmg8r9$gml$1@node1.news.atman.pl>
NNTP-Posting-Host: 77-254-96-19.adsl.inetia.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: mx1.internetia.pl 1401663869 17452 77.254.96.19 (1 Jun 2014 23:04:29 GMT)
X-Complaints-To: a...@i...pl
NNTP-Posting-Date: Sun, 1 Jun 2014 23:04:29 +0000 (UTC)
In-Reply-To: <lmg8r9$gml$1@node1.news.atman.pl>
X-Tech-Contact: u...@i...pl
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031007
X-Server-Info: http://www.internetia.pl/
Xref: news-archive.icm.edu.pl pl.misc.elektronika:665898
[ ukryj nagłówki ]W dniu 2014-06-02 00:18, Piotrne pisze:
> W dniu 2014-05-31 16:00, Sebastian Biały pisze:
>> najprostszy przykład to nie dawno koleś który w logice
>> drabinkowej wydziargał w miesiąc układ (skomplikowany)
>> który na oko w dowolnym imperatywnym języku programowania
>> zajął by może z 2 godzinki z unit testami. Dlaczego więc
>> dziargał? "Bo logika drabinowa jest najprostsza!".
>
> Pisałem w ubiegłym roku "drabinkowy" program na sterownik
> Kinco K3. Zadanie było proste: wykonać w określonej kolejności
> kilka ruchów silnikiem krokowym z ustalonymi parametrami
> (prędkość, odległość). Parametry ustawiane na module HMI
> z ekranem dotykowym. Sekwencja ruchów silnika bardzo prosta:
> szukanie położenia końcowego (z czujnikiem krańcowym),
> przejazd o wartość D1, pauza, N przejazdów o wartość D2, powrót.
> Pisanie (poprzedzone studiowaniem języka drabinkowego)
> zajęło trochę czasu, a powstały program w zasadzie był
> emulatorem interpretera języka sekwencyjnego...
>
> Czyli zamiast napisać:
>
> 1) włącz silnik aż do znalezienia położenia krańcowego
> 2) włącz D1 impulsów silnika
> 3) for i:=1 to n { włącz D2 impulsów silnika }
> 4) wróć do położenia krańcowego
> 5) idź do 1
>
> napisałem (w uproszczeniu!) mniej więcej coś takiego:
>
> 1) jeśli (pierwszy_cykl == TRUE) to { nr_stanu = 1 }
>
> 2) jeśli (nr_stanu == 1 lub nr_stanu == 4) to włącz
> szukanie położenia krańcowego
>
> 3) jeśli (nr_stanu == 1 oraz znaleziono_stan_krańcowy)
> to { nr_stanu = 2 }
>
> 4) jeśli (nr_stanu == 4 oraz znaleziono_stan_krańcowy)
> to { nr_stanu = 5 }
>
> 5) jeśli (nr_stanu == 2) to włącz D1 impulsów silnika
>
> 6) jeśli (nr_stanu == 2 ORAZ wykryto_koniec_ruchu_silnika)
> to { nr_stanu = 3; licznik = n }
>
> 7) jeśli (nr_stanu == 3) to flaga1 = (licznik>0)
>
> 8) jeśli (nr_stanu == 3 ORAZ flaga1 == TRUE )
> to włącz D2 impulsów silnika
>
> 9) jeśli (nr_stanu == 3 ORAZ flaga1 == FALSE )
> to { nr_stanu = 4 }
>
> 10) jeśli (nr_stanu == 3 ORAZ wykryto_koniec_ruchu_silnika}
> to { nr_stanu = 3a }
>
> 11) jeśli (nr_stanu == 3a) to { zmniejsz licznik o 1 }
>
> 12) jeśli (nr_stanu == 3a) to { nr_stanu = 3 }
>
> 13) jeśli (nr_stanu == 4 ORAZ znaleziono_stan_krańcowy)
> to { nr_stanu = 1 }
>
> To oczywiście takie proste nie było, bo trzeba jeszcze czytać
> parametry z HMI i przenosić do "modułu" obsługującego silnik.
> A moduł mógł wystąpić tylko jeden raz w całym programie
> drabinkowym. Czyli zależnie od numeru_stanu trzeba było
> kopiować do niego różne parametry, a potem badać sumę logiczną
> wszystkich warunków, przy których silnik powinien się włączyć
> i takim sygnałem do aktywować.
Możesz to ominąć stosując cewki -(S)- i -(R)-
W dodatku nie rozumiem po co po kroku 4 wprowadzasz krok 5 będący
przejściem na kroku 1 - szukania pozycji krańcowej skoro w kroku 4
dojechał do pozycji krańcowej.
> Może ta drabinkowa koncepcja nadaje się do sterowania światłem
> na korytarzu, ale pisanie takiego kodu jest bardzo męczące.
Męczące dla kogoś przyzwyczajonego do C czy Pascala.
Duża część poważnej przemysłowej automatyki jest na drabince, co by
znaczyło, że ci co to robią uważają LD za wygodne narzędzie.
--
pozdrawiam
MD
Następne wpisy z tego wątku
- 02.06.14 00:55 AlexY
- 02.06.14 01:38 Mario
- 02.06.14 13:21 Piotrne
- 02.06.14 14:27 sundayman
- 02.06.14 19:49 Irokez
- 02.06.14 20:35 Mario
- 03.06.14 01:41 Piotrne
- 03.06.14 15:37 Mario
- 03.06.14 16:22 Tomasz Wójtowicz
Najnowsze wątki z tej grupy
- Rejestrator temperatur - termopara, siec
- Router LTE z możliwością zmian MTU
- Fajny film widziałem...
- Jaka ładowarka sieciowa do Iphona?
- Taśma izolacyjna do prac elektrycznych
- Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Re: Recenzja 3.1A ;) w 6 gniazdach...
- Wkrętarki, wiertarki...
- Zasilacz impulsowy 12V 10A, coś godnego uwagi jako zamiennik akumulatora wkrętarki
- Mouser - koszt wysyłki
- [OT] Jak wycinac ksztalt w piance lub styropianie?
- FV--> ciepła woda w kranie
- Szok
Najnowsze wątki
- 2025-07-14 granice
- 2025-07-14 Awaria VM?
- 2025-07-14 Gdańsk => Programista Kotlin <=
- 2025-07-14 Warszawa => Junior Rekruter <=
- 2025-07-14 Warszawa => Specjalista rekrutacji IT <=
- 2025-07-14 Wkłady do zniczy...
- 2025-07-14 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-07-14 Re: PO chroniło i chroni policyjnych bandziorów [zawiasy za katowanie obywatela (Poznań czerwiec 2012)]
- 2025-07-14 Warszawa => International Freight Forwarder <=
- 2025-07-14 Warszawa => Recruiter 360 <=
- 2025-07-14 Re: Rz?Âd ZAKAZUJE magazyn?Â?w energii ?!! Nowe prawo od 14 lipca to SZOK! ??Â
- 2025-07-14 Warszawa => Sales Assistant <=
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek