-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!.POSTED!not-for-mail
From: Piotrne <p...@p...onet.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: stara pamięć nie rdzewieje
Date: Tue, 03 Jun 2014 01:41:38 +0200
Organization: ATMAN - ATM S.A.
Lines: 81
Message-ID: <lmj242$emr$1@node1.news.atman.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>
<lmgbht$h1c$1@mx1.internetia.pl> <lmhmoh$fl7$1@node2.news.atman.pl>
<lmih5l$jj2$1@mx1.internetia.pl>
NNTP-Posting-Host: pc-nest01-138.sikornik.net
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: node1.news.atman.pl 1401752514 15067 91.123.216.138 (2 Jun 2014 23:41:54
GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 2 Jun 2014 23:41:54 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 5.2; rv:24.0) Gecko/20100101 Thunderbird/24.4.0
In-Reply-To: <lmih5l$jj2$1@mx1.internetia.pl>
Xref: news-archive.icm.edu.pl pl.misc.elektronika:665948
[ ukryj nagłówki ]W dniu 2014-06-02 20:35, Mario pisze:
>> Natomiast numerowanie stanów nie było takie proste. Dla każdego
>> stanu przewidziany był oddzielny bit ("przekaźnik"), który
>> włączał się i wyłączał w odpowiednim momencie. Czyli jeśli
>> maszyna ma 100 stanów, to zamiast jednego licznika 7-bitowego
>> potrzeba 100 oddzielnych bitów - "przekaźników".
>
> Rozumiem, że numerowanie nie było proste bo ktoś postanowił
> żeby nie było proste. Ja tam numeruję stany w zmiennej int.
To widocznie przeoczyłem możliwość aktywacji danej gałęzi
przy spełnieniu warunku nr_stanu == n. Oczywiście taki
warunek można poskładać z przekaźników i chcąc coś zrobić
w stanie nr 10 podać jako warunek:
(bit0 == wyłączony) ORAZ (bit1 == włączony) ORAZ
(bit2 == wyłączony) ORAZ (bit3 == włączony)
i podobnie ustawiać wartość nr_stanu w (prawie) każdej
gałęzi, ale to jest jeszcze mniej czytelne od używania
pojedynczych bitów. Operacje na liczbach też są uciążliwe
- trzeba użyć bloku z odpowiednim działaniem, podawać
argumenty z określonej lokalizacji, wskazywać lokalizację
wyniku, aktywować blok działania. Jeśli to jest coś
bardziej skomplikowanego niż A+B, to potrzeba kilku bloków
i robi się nieczytelne. Nawet nie próbowałem umieszczać
tego w jednej gałęzi, tylko wykonywało się "po kolei".
Kalkulatora HP z odwrotną notacją polską dawno temu używałem
i pisałem programiki! Był bardziej przyjazny niż LD.
> LD można konwertować do Instruction List.
> Ten to dopiero wygląda jak asembler.
To właściwie były równoważne zapisy programu - można
przełączać "widok" między LD a IL. Czasem czytelniejszy jest IL.
Tak mniej więcej wyglądał kod IL:
(* Network 8 *)
(*Repetitions: wartość domyślna 10*)
LD %Q0.7
OR %SM0.1
MOVE 10, %VW162
(* Network 9 *)
(*Czas rozpędzania/hamowania silnika w ms): wartość domyślna 20*)
LD %Q0.7
OR %SM0.1
MOVE 20, %VW104
(* Network 25 *)
(*Obliczenie liczby kroków*)
LD %SM0.0
MOVE %VD150, %VD140
MUL %VD136, %VD140
(* Network 26 *)
(*Obliczenie liczby kroków - c.d.*)
LD %SM0.0
DIV DI#10, %VD140
(* Network 33 *)
LD %SM0.0
AND %Q0.5
PHOME 1, %M8.0, %V220.3, %V220.3, %VW110, %VW174, %VW100, %VW102,
%VW104, %M16.0, %M0.2, %VB207
Adresy w pamięci trzeba było uzgadniać z innym urządzeniem
- panelem HMI, który komunikował się z PLC. Narzędzia do programowania
nie były zintegrowane, można było np. przygotować bazę zmiennych
z adresami i wymieniać ją między środowiskami.
Problemy były też z modułami obsługi silników krokowych, bo czasem
po prostu nie włączały się. Doczytałem, że w razie wystąpienia
"błędu" (chyba było to np. przedwczesne zatrzymanie innym blokiem,
nazywanym STOP) trzeba resetować flagę błędu w określonej komórce.
Niby logiczne, ale bez możliwości debugowania trudno czasem było
ustalić, co się dzieje.
Całkiem możliwe, że da się to zrobić lepiej. Doczytam przed ewentualnym
kolejnym programem w LD...
P.
Następne wpisy z tego wątku
- 03.06.14 15:37 Mario
- 03.06.14 16:22 Tomasz Wójtowicz
Najnowsze wątki z tej grupy
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
- reverse engineering i dodawanie elementów do istniejących zamkniętych produktów- legalne?
- Problem z odczytem karty CF
- 74F vs 74HCT
- Newag ciąg dalszy
- Digikey, SN74CBT3253CD, FST3253, ktoś ma?
Najnowsze wątki
- 2025-01-22 Gdańsk => System Architect (Java background) <=
- 2025-01-22 Katowice => Senior Field Sales (system ERP) <=
- 2025-01-22 Warszawa => Java Developer <=
- 2025-01-22 pokolenie Z
- 2025-01-22 Wyświtlacz ramki cyfrowej
- 2025-01-22 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-01-22 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2025-01-22 Ostrów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi
- 2025-01-22 oferta na ubezpieczenie OC życie prywatne
- 2025-01-22 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-22 Warszawa => International Freight Forwarder <=
- 2025-01-22 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-21 Zgromadzenie użytkowników pojazdów :-)
- 2025-01-21 bateria na żądanie
- 2025-01-21 Warszawa => IT Business Analyst <=