eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › stara pamięć nie rdzewieje
Ilość wypowiedzi w tym wątku: 59

  • 41. Data: 2014-06-01 17:19:39
    Temat: Re: stara pamięć nie rdzewieje
    Od: PeJot <P...@m...pl>

    W dniu 2014-06-01 07:30, J.F. pisze:

    > Ale tego to on nie rozumie. Rozumie za to ze trzeba pisac wniosek do
    > banku po kredyt, maszyny szukac, trzecia zmiane organizowac,
    > kooperanta szukac - bo kontrakt czeka na wykonanie.

    A nowa maszyna będzie najwcześniej za rok, oczywiście jak się dostawca
    wyrobi. No i nie ma wyjścia, trzeba sznurkiem wiązać starocia.

    --
    P. Jankisz
    O rowerach: http://coogee.republika.pl/pj/pj.html
    "Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest
    tylu idiotów" Stanisław Lem


  • 42. Data: 2014-06-01 17:20:29
    Temat: Re: stara pamięć nie rdzewieje
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2014-06-01 16:13, Mario wrote:
    > To jeszcze napisz na jakim sprzęcie miałby pracować ten program napisany
    > w dowolnym imperatywnym języku?

    Na tym samym co ten drabinkowy? Np. jakiś StructuredText. Wyboru nie ma
    za dużego, chodzi o to że prewną klasę problemów wygodniej opisać czymś
    innym niż "proste drabinki".

    PS. Mam w ręku urządzenie mierzące moc. Ma ono dwa przyciski do
    konfiguracji. Ponieważ opcji jest dziesiątki a wyswietlacz 7-seg, to
    programowanie tymi dwoma przyciskami trwa godzinę bo co chwile się
    mylisz. Ale przeciez nie można sobie wyobrazić nic prostszego niż dwa
    przyciski, prawda? To to samo co z drabinkami. Nic prostszego nie ma. To
    ilustruje problem.


  • 43. Data: 2014-06-01 18:38:26
    Temat: Re: stara pamięć nie rdzewieje
    Od: Mario <m...@...pl>

    W dniu 2014-06-01 17:20, Sebastian Biały pisze:
    > On 2014-06-01 16:13, Mario wrote:
    >> To jeszcze napisz na jakim sprzęcie miałby pracować ten program napisany
    >> w dowolnym imperatywnym języku?
    >
    > Na tym samym co ten drabinkowy? Np. jakiś StructuredText. Wyboru nie ma
    > za dużego, chodzi o to że prewną klasę problemów wygodniej opisać czymś
    > innym niż "proste drabinki".


    Drabinka jest dobra gdy na przykład ma być spełnione wiele "bitowych"
    warunków. Mogą być zapisane w jednym wierszu w postaci schematu ze
    stykami. Wygodnie się monitoruje stan pracy przy uruchamianiu. Od razu
    widać które styki zwarte, a które rozwarte i na czym ci się zatrzymało
    urządzenie.
    W ST można oczywiście zapisać:
    If A=True and B=True And (C=False OR D=True) .... Then
    E:=True;
    End_If

    Ale w ST gorzej to obserwować online.
    Poza tym w LD wygodniej wprowadzać reakcję na zbocze i wygodnie można
    ustawiać i kasować bity przez cewki Set i Reset.
    ST jest dobre przy pracach na tablicach i przy operacjach
    matematycznych. Z kolei CFC jest wygodne gdy masz jakieś bloki
    funkcyjne (biblioteczne lub własne) i karmisz je dużą ilością
    parametrów. Ale z kolei nie jest przyjemnie składać w nim wiele
    prostych warunków bitowych wspomnianych poprzednio.
    Przy bardziej złożonych programach z reguły używam obok siebie bloków
    LD, ST i CFC

    > PS. Mam w ręku urządzenie mierzące moc. Ma ono dwa przyciski do
    > konfiguracji. Ponieważ opcji jest dziesiątki a wyswietlacz 7-seg, to
    > programowanie tymi dwoma przyciskami trwa godzinę bo co chwile się
    > mylisz. Ale przeciez nie można sobie wyobrazić nic prostszego niż dwa
    > przyciski, prawda? To to samo co z drabinkami. Nic prostszego nie ma. To
    > ilustruje problem.

    Porównanie trochę od czapy. Nie trzeba od razu stosować LD do operowania
    na tablicach, wyliczania średniej i odchylenia standardowego z próbek
    pomiarowych i zapisywania tego w postaci pliku CSV.
    Wspomniane przez ciebie 2 przyciski może nie nadają się do urządzenia z
    wieloma parametrami, ale wystarczą do zegarka ręcznego z ustawianą datą
    i godziną. W tym przypadku pełna klawiatura byłaby bez sensu.
    A poza tym spotykam się raczej z 4 przyciskami w urządzeniach. W miarę
    sprawnie można nawigować po menu w warunkach "przemysłowych" np wisząc
    na szelkach :) Ale często urządzenia mają interfejs programujący i
    środowisko do konfigurowania z PC. Czyli twój wybór, jakie narzędzie
    wykorzystasz. Albo okoliczności decydują.



    --
    pozdrawiam
    MD


  • 44. Data: 2014-06-01 19:04:37
    Temat: Re: stara pamięć nie rdzewieje
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2014-06-01 18:38, Mario wrote:
    >> programowanie tymi dwoma przyciskami trwa godzinę bo co chwile się
    >> mylisz. Ale przeciez nie można sobie wyobrazić nic prostszego niż dwa
    >> przyciski, prawda? To to samo co z drabinkami. Nic prostszego nie ma. To
    >> ilustruje problem.
    > Porównanie trochę od czapy. Nie trzeba od razu stosować LD do operowania
    > na tablicach, wyliczania średniej i odchylenia standardowego z próbek
    > pomiarowych i zapisywania tego w postaci pliku CSV.
    > Wspomniane przez ciebie 2 przyciski może nie nadają się do urządzenia z
    > wieloma parametrami

    Teraz już rozumiesz o co mi chodzi. Automatyk wybrał drabinki ponieważ
    są *proste* zapominając że nie powstały do tego do czego je zastosował.
    Podobnie jakiś idiota wybrał *dwa* przyciski mimo że miał skomplikowane
    UI do obslugi. Oba przykłady są z automatyki. Oba nietrafione. I teraz
    najlepsze: oboje (koleś i firma od miernika) twierdzą że to był sukces.
    Koleś że w ogóle dał radę, a firma że stworzyła "prosty i przejrzysty
    interfejs". I wszyscy są szczęśliwi.

    Pech, najzwyczajniej w świecie.


  • 45. Data: 2014-06-01 19:12:45
    Temat: Re: stara pamięć nie rdzewieje
    Od: "Pszemol" <P...@P...com>

    "Sebastian Biały" <h...@p...onet.pl> wrote in message
    news:lmfgbv$lj0$1@node1.news.atman.pl...
    > PS. Mam w ręku urządzenie mierzące moc. Ma ono dwa przyciski do
    > konfiguracji. Ponieważ opcji jest dziesiątki a wyswietlacz 7-seg, to
    > programowanie tymi dwoma przyciskami trwa godzinę bo co chwile się mylisz.
    > Ale przeciez nie można sobie wyobrazić nic prostszego niż dwa przyciski,
    > prawda? To to samo co z drabinkami. Nic prostszego nie ma.
    > To ilustruje problem.

    Jesteś pewny że z tyłu nie było gniazdka do podłączenia pecetowej
    5Voltowej klawiatury PS/2 lub stary DIN? Albo jakiś RS232 do terminala?
    Front z dwoma przyciskami jest bardzo wygodny do poprawienia
    czegoś tam jednego - np. zamiast tego zrób to, ale do pełnej konfiguracji
    od zera zwykle używa się terminala znakowego po RS232 lub chociaż
    pecetowej klawiatury.
    Nasze najnowsze urządzenie ma prosty interface z ekranem dotykowym
    7" ale pełna konfiguracja ma od ciula i trochę opcji i byłoby to ciężko
    zrobić
    na tym ekraniku obsługiwanym grubym paluchem więc do tego zrobiliśmy
    interface przez WebBrowser po Ethernecie, zostawiając tylko proste rzeczy
    do ustawiania od frontu lokalnie na ekranie dotykowym urządzenia.


  • 46. Data: 2014-06-01 19:21:38
    Temat: Re: stara pamięć nie rdzewieje
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2014-06-01 19:12, Pszemol wrote:
    > Jesteś pewny że z tyłu nie było gniazdka do podłączenia pecetowej
    > 5Voltowej klawiatury PS/2 lub stary DIN? Albo jakiś RS232 do terminala?

    Ależ oczywiście że jest, modbus. Pisalem soft obsługujacy to cudo. Ale
    zanim cokolwiek powalczysz z rs422 to - niestety - musisz to g...
    najpierw skonfigurować do pracy w tym trybie.

    Przy czym mam poważne wątpliwości czy nie skusił bym się jednak na tą
    godzinkę przyciskami, bo po odpaleniu softu na Windowsie o mały włos nie
    umarłem ze śmiechu.


  • 47. Data: 2014-06-01 20:33:51
    Temat: Re: stara pamięć nie rdzewieje
    Od: Mario <m...@...pl>

    W dniu 2014-06-01 19:04, Sebastian Biały pisze:
    > On 2014-06-01 18:38, Mario wrote:
    >>> programowanie tymi dwoma przyciskami trwa godzinę bo co chwile się
    >>> mylisz. Ale przeciez nie można sobie wyobrazić nic prostszego niż dwa
    >>> przyciski, prawda? To to samo co z drabinkami. Nic prostszego nie ma. To
    >>> ilustruje problem.
    >> Porównanie trochę od czapy. Nie trzeba od razu stosować LD do operowania
    >> na tablicach, wyliczania średniej i odchylenia standardowego z próbek
    >> pomiarowych i zapisywania tego w postaci pliku CSV.
    >> Wspomniane przez ciebie 2 przyciski może nie nadają się do urządzenia z
    >> wieloma parametrami
    >
    > Teraz już rozumiesz o co mi chodzi. Automatyk wybrał drabinki ponieważ
    > są *proste* zapominając że nie powstały do tego do czego je zastosował.

    Ja wiem o co ci chodzi. Jadnak aby przyznać, że gość źle dobrał
    narzędzie do zadania to musiałbym mieć możliwość ocenić sam ten
    przypadek. Ty jako programista c++ możesz mieć skłonność do oceny, że
    ten przypadek (jak pewnie i każdy inny dla ciebie) jest doskonały do
    języka tego typu. A problem może w tym, że po prostu nie bardzo wiedział
    jak pisać program :)

    > Podobnie jakiś idiota wybrał *dwa* przyciski mimo że miał skomplikowane
    > UI do obslugi. Oba przykłady są z automatyki. Oba nietrafione. I teraz
    > najlepsze: oboje (koleś i firma od miernika) twierdzą że to był sukces.
    > Koleś że w ogóle dał radę, a firma że stworzyła "prosty i przejrzysty
    > interfejs". I wszyscy są szczęśliwi.

    Jak się wdroży projekt nawet z półrocznym opóźnieniem to też jest
    sukces. Jeśli nie trzeba płacić kar umownych :)

    --
    pozdrawiam
    MD


  • 48. Data: 2014-06-01 22:48:30
    Temat: Re: stara pamięć nie rdzewieje
    Od: Tomasz Wójtowicz <s...@n...com>

    W dniu 2014-06-01 14:11, Pszemol pisze:
    > "Tomasz Wójtowicz" <s...@n...com> wrote in message
    > news:lmeq0k$lbe$1@node2.news.atman.pl...
    >>> Sprzedawca sie ucieszyl. Zamiast sprzedac za 300 sprzedal za 1200 :-)
    >>
    >> Kupiłem gdzie indziej. Jaki z tego zysk dla sprzedawcy-muzealnika?
    >
    > Chyba popełniasz tu błąd sądząc że jesteś jedynym kupcem na świecie.
    > Z punktu widzenia sprzedawcy nie było "sprzedam/niesprzedam".
    > Z jego punktu widzenia było "sprzedam teraz za 300/później za 450".

    Zgadzam się, o ile to później nastąpi. Iluż może być chętnych na
    4-letnią płytę główną dwie generacje techniczne wstecz?


  • 49. Data: 2014-06-02 00:18:08
    Temat: Re: stara pamięć nie rdzewieje
    Od: Piotrne <p...@p...onet.pl>

    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że ta drabinkowa koncepcja nadaje się do sterowania światłem
    na korytarzu, ale pisanie takiego kodu jest bardzo męczące.

    P.


  • 50. Data: 2014-06-02 00:47:26
    Temat: Re: stara pamięć nie rdzewieje
    Od: Mario <m...@...pl>

    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

strony : 1 ... 4 . [ 5 ] . 6


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: