Sie sterownicza cookbook

Sie sterownicza cookbook

Wstęp

Zacznę od tego, że ten poradnik omawia praktyczne zastosowania sieci sterowniczych i jest czymś w rodzaju kontynuacji mojego poprzedniego poradnika. Mój poprzedni poradnik omawiał najważniejsze podstawy, które wypada znać podczas korzystania z sieci sterowniczych, więc jeśli jesteś laikiem w tych sprawach to zachęcam się z nim zapoznać na początku, a dopiero później wrócić do tego poradnika. Natomiast jeśli rozumiesz działanie sieci sterowniczych to i tak zachęcam choćby do zobaczenia spisu treści. Może znajdziesz coś o czym działaniu nie miałeś pojęcia.

https://steamcommunity.com/sharedfiles/filedetails/?id=2476599412

Przechodząc do tego co prezentuje poradnik to w jego skład wchodzi omówienie budowy oraz zastosowania kilku urządzeń takich jak wyświetlacze, liczniki, timery itd.

1.1. Wyświetlacz Siedmiosegmentowy Jednocyfrowy Cz.1


Sie sterownicza cookbook image 5
Sie sterownicza cookbook image 6
Sie sterownicza cookbook image 7
Sie sterownicza cookbook image 8
Sie sterownicza cookbook image 9
Sie sterownicza cookbook image 10

Wyświetlacz siedmiosegmentowy jest to jeden z najprostszych sposobów wyświetlenia cyfr oraz kilku liter takich jak np. A, L, albo H. Można go wykorzystać np. do wyświetlania zapełnienia magazynu, wydajności jakichś sektorów produkcyjnych, albo do wyświetlenia poziomu naładowania akumulatorów itp.

Pierwszym krokiem będzie zbudowanie samego wyświetlacza o odpowiednim układzie lamp. Wyświetlacz siedmiosegmentowy jak można się domyśleć składa się z siedmiu segmentów ponazywanych literami od A do G, wszystkie lampy są połączone do jednej sieci sterowniczej oraz w każdej lampie znajduje się warunek brzmiący: Jeżeli zmienna o nazwie odpowiadającej segmentowi, w którym się znajduje jest prawdą, czyli jest równa 1 to się zapali.

Drugim krokiem będzie wybudowanie dziesięciu kolumn sterowników decyzyjnych, gdzie każda kolumna będzie obsługiwać wyświetlenie jednej z cyfr. Do wyświetlenia każdej cyfry będzie potrzeba tylu sterowniku, ile do jej wyświetlenia jest potrzebnych segmentów (tabela w cz.2). Po ustawieniu sterowników podpinamy wszystkie ich wyjścia do tej samej sieci sterowniczej jaką są połączone lampy oraz wszystkie wejścia sterowników łączymy ze sobą już do innej sieci sterowniczej, do której następnie łączymy źródło zmiennej, gdzie na podstawie jej wartości będziemy wyświetlać cyfry na wyświetlaczu (w moim przypadku jest to sterownik stałych, ale źródłem może być cokolwiek).

Trzecim i zarówno ostatnim krokiem będzie skonfigurowanie sterowników. We wszystkich sterownikach dajemy warunki w taki sposób, że warunek będzie brzmiał: Jeżeli zmienna na podstawie, której będzie wyświetlana liczba na wyświetlaczu (w przypadku obok jest to zmienna 0) jest równa liczbie, za którą jest odpowiedzialna kolumna, w której znajduje się sterownik to sterownik zwraca prawdę. Taki warunek będzie w każdym sterowniku z danej kolumny np. w kolumnie, która ma za zadanie wyświetlać liczbę 5 warunek będzie brzmiał: Jeżeli zmienna [...] jest równa 5 to sterownik zwraca prawdę. Natomiast na wyjściu sterownik zwraca zmienną o nazwie odpowiedniego segmentu równą 1. Tak jak było wspomniane wcześniej w każdej kolumnie jest tyle sterowników ile jest potrzebnych segmentów do zapalenia, więc na przykładzie kolumny wyświetlającej liczbę 2 możemy wywnioskować, że żeby wyświetlić taką liczbę to musimy zapalić segmenty A, B, D, E i G, czyli jest nam potrzebne 5 sterowników. W każdym sterowniku na wyjściu wprowadzamy te pięć zmiennych odpowiedzialnych za zapalanie tych segmentów w taki sposób, że pierwszy sterownik z kolumny zwraca zmienną A, drugi B itd.

To tyle, mamy wyświetlacz siedmiosegmentowy oraz możemy się teraz napawać ładnie wyświetlanymi danymi. Na poniższym obrazku w sterowniku stałych utworzyłem zmienną 0 równą 7 i jak widać liczba wyświetliła się prawidłowo.

1.2. Wyświetlacz Siedmiosegmentowy Jednocyfrowy Cz.2


Sie sterownicza cookbook image 20

Tabela informująca jakie segmenty są potrzebne do wyświetlenia poszczególnych cyfr:

Wyświetlana liczba Potrzebne segmenty Liczba potrzebnych sterowników Wynik 0 A, B, C, D, E, F 6 1 B, C 2 2 A, B, D, E, G 5 3 A, B, C, D, G 5 4 B, C, F, G 4 5 A, C, D, F, G 5 6 A, C, D, E, F, G 6 7 A, B, C 3 8 A, B, C, D, E, F, G 7 9 A, B, C, D, F, G 6

Jeśli chcesz możesz skorzystać z mojego wyświetlacza. Skopiuj ten kod na dole i użyj funkcji Zaimportuj kod na pasku zadań.

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

2.1. Wyświetlacz Siedmiosegmentowy Wielocyfrowy Cz.1


Sie sterownicza cookbook image 26
Sie sterownicza cookbook image 27
Sie sterownicza cookbook image 28
Sie sterownicza cookbook image 29

Wyświetlacz wielocyfrowy jest zbudowany z wyświetlaczy jednocyfrowych z poprzedniego punktu, z czego same wyświetlacze zostały oznaczone jako 1.1, 1.2 i 1.3 (roboczo określiłem je modułami) oraz z modułów 2.1, 2.2 i 2.3, które podejmóją decyzję jaka cyfra zostanie wyświetlona na podstawie dostarczonej zmiennej. Wyświetlacz wielocyfrowy jest jeszcze zbudowany z czegoś za pomocą czego zmienna doprowadzona do wyświetlacza zostanie podzielona na cyfry jedności, dziesiątek, setek itd. tak, aby do każdego z wyświetlaczy jednocyfrowych doprowadzić zmienną, która ma jedną cyfrę, ten element nazwałem modułem 3.

Moduły 1 zostały połączone z modułami 2 w taki sposób, że sieć sterownicza np. modułu 1.1 jest połączona z siecią sterowniczą 2.1, która jest połączona ze wszystkimi wyjściami sterowników z tego modułu, dokładnie tak samo jak to było w punkcie 1. Natomiast moduły 2 zostały połączone z modułem 3 w taki sposób, że sieci sterownicze z modułów 2, które są podpięte do wejść sterowników są połączone z wyjściami odpowiednich sterowników z modułu 3 (wytłumaczenie które są to sterowniki jest w następnej części poradnika).

Do obliczania cyfr, które są na pozycji jedności, dziesiątek, setek itd. z liczby składającej się wielu cyfr wykorzystujemy tu to, że sterowniki wykorzystują zmienne całkowitoliczbowe. Polega to na tym, że dzielimy liczbę przez 10, 100 albo 1000 w zależności na jakiej pozycji się znajduje (jeśli chcemy obliczyć cyfrę na pozycji dziesiątek dzielimy przez 10 a jeśli cyfrę na pozycji setek przez 100 itd.). Np. chcemy obliczyć cyfrę na pozycji setek w liczbie 653. Dzielimy taką liczbę przez 100 i wychodzi nam 6,53, ale przez to, że sterownik korzysta z liczb całkowitoliczbowych to liczba po przecinku zostanie urywana i wychodzi nam 6.

Takich obliczeń można dokonać jedynie na pierwszej cyfrze liczby. Jeżeli chcielibyśmy obliczyć cyfrę na pozycji dziesiątek w liczbie 482 to na początku musimy obliczyć liczbę na pozycji setek (482 / 100 = 4) następnie pomnożyć wynik przez 100 (4 * 100 = 400) oraz następnie otrzymany wynik odjąć od początkowej liczby (482 - 400 = 82). Dzięki temu uzyskaliśmy liczbę 82, z której już bez problemu można wytyczyć cyfrę na pozycji dziesiątek (82 / 10 = 8).

Zapis za pomocą schematów blokowych modułu 3 będzie wyglądał następująco:

- rozpoczęcie i zakończenie obliczania cyfr

- wczytanie zmiennej (w module 3 będzie to odpowiednik sterownika stałych)

- dokonywanie obliczeń (w module 3 będzie to odpowiednik sterownika arytmetycznego)

- cyfra na pozycji jedności

- cyfra na pozycji dziesiątek

- cyfra na pozycji setek

A tutaj to jak wygląda kabelkologia w module 3:

2.2. Wyświetlacz Siedmiosegmentowy Wielocyfrowy Cz.2

Tak samo jak poprzednio możesz skorzystać z mojego wyświetlacza:

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

3. Komórki Pamięci, Liczniki I Przepustnica


Sie sterownicza cookbook image 46
Sie sterownicza cookbook image 47
Sie sterownicza cookbook image 48
Sie sterownicza cookbook image 49
Sie sterownicza cookbook image 50
Sie sterownicza cookbook image 51
Sie sterownicza cookbook image 52
Sie sterownicza cookbook image 53
Sie sterownicza cookbook image 54
Sie sterownicza cookbook image 55

Zarówno liczniki jak i przepustnica wykorzystują do działania komórki pamięci zbudowane ze sterownika arytmetycznego, w którym wejście i wyjście jest połączone ze sobą przewodem. Na wejściu jest dokonywana operacja Dla każdego sygnału + 0 a na wyjściu jest zwracany Dla każdego sygnału.

Komórki pamięci działają w taki sposób, że do wejścia komórki jest wprowadzana jakaś zmienna, sterownik dodaje do niej 0, czyli nic się z nią nie dzieje i na wyjściu zwraca tą zmienną, z która nic nie zrobił, ale dzięki temu, że wyjście jest połączone z wejściem to ta zmienna jest znowu wprowadzana do wejścia, znowu nic się z nią nie dzieje i znowu jest zwracana na wyjściu i tak w kółko. Dzięki takiej komórce pamięci można zapisywać proste dane.

Działanie bardziej się to rozjaśni na poniższych przykładach.

Licznik 1:Mamy taką sytuację, że wyżej wspomniana komórka pamięci jest podłączona z taśmociągiem, w którym jest włączona opcja Odczytywania zawartości taśmociągu oraz jest zaznaczony Tryb odczytu zawartości na Pulsujący.

Możemy zauważyć w prawym górnym rogu, każdy przejeżdżający przedmiot na taśmociągi jest dodawany do zmiennej (w tym przypadku jest to żelazna płytka). Polega to na tym, że komórka pamięci przetrzymuje informacje o tym ile jest równa zmienna a każdy przedmiot odczytany z taśmociągu jest to tej zmiennej dodawany.

Licznik 2:Mamy taką sytuację, że do taśmociągu jest podłączona komórka pamięci tak samo jak w poprzednim liczniku (to ten lewy sterownik) oraz trochę dalej taśmociąg z takimi samymi ustawieniami jak ten poprzedni jest podłączony do wejścia sterownik arytmetycznego, który na wejściu dokonuje operację Dla każdego sygnału * -1 a na wyjściu zwraca Dla każdego sygnału. Wyjście tego sterownika jest połączone z wejściem komórki pamięci.

Możemy zauważyć, że to narzędzie, które zbudowaliśmy liczy ile jest przedmiotów pomiędzy dwoma taśmociągami połączonymi do sterowników. Pomiędzy przednią częścią pierwszego taśmociągu (bo to w tym punkcie taśmociąg wykrywa przedmiot) a przednią częścią drugiego taśmociągu są 4 taśmociągi. Na jednym taśmociągu może maksymalnie się zmieścić 8 przedmiotów, więc liczba przedmiotów na tych 4 taśmociągach powinna wynosić 32 i tak właśnie jest.

Ten licznik działa w taki sposób, że sterownik po lewej stronie jest komórką pamięci i zapamiętuje wartość zmiennej. Pierwszy taśmociąg (ten po lewej) dodaje do zmiennej każdy przelatujący przedmiot a następnie ten sam przedmiot przelatuje przez drugi taśmociąg którego impuls jest mnożony przez -1, czyli jest odejmowany od zmiennej.

Przepustnica:Jest to narzędzie, które służy do ograniczania przepuszczanych przedmiotów. Jest zbudowana z tego samego licznika, który był poprzednio, tylko z jedną mała zmianą - w pierwszym taśmociągu jest dodatkowo wprowadzony warunek wyłączenia. Warunek brzmi Jeżeli którykolwiek sygnał będzie większy od liczby przedmiotów, które chcę, żeby były na danej linii taśmociągów +8, to zatrzymaj taśmociag. Oznacza to mniej więcej tyle, że jeśli chcemy aby na danej linii były tylko 2 przedmioty to dodajemy do tej liczby 8 i ustawiamy warunek taki jak poniżej.

4. Timery


Sie sterownicza cookbook image 66
Sie sterownicza cookbook image 67
Sie sterownicza cookbook image 68
Sie sterownicza cookbook image 69
Sie sterownicza cookbook image 70
Sie sterownicza cookbook image 71

Sie sterownicza cookbook image 72
Sie sterownicza cookbook image 73
Sie sterownicza cookbook image 74
Sie sterownicza cookbook image 75
Sie sterownicza cookbook image 76
Sie sterownicza cookbook image 77
Sie sterownicza cookbook image 78
Sie sterownicza cookbook image 79
Sie sterownicza cookbook image 80
Sie sterownicza cookbook image 81
Sie sterownicza cookbook image 82

Timery tak ogólnie mówiąc służą do opóźniania sygnałów. Mogą one działać przez to, że gra odświeża się z częstotliwością 60 razy na sekundę (przy założeniu, że nie masz lagów) a sterownik może wykonać tylko jedno obliczenie na jedną klatkę. Oznacza to, że jeśli chcielibyśmy opóźnić sygnał o 1 sekundę to timer musi wykonać 60 obliczeń.

Timer 1:Mamy taką sytuację, że chcemy aby po wykryciu jakiegoś przedmiotu na taśmociągu sygnał został opóźniony o 1 sekundę oraz chcemy aby po tej 1 sekundzie opóźniony sygnał zapalił lampę (tak jak jest to zaprezentowane na poniższym gifie).

Na samym początku wykonujemy coś co wykryje przedmiot na taśmociągu i przekaże stały sygnał równy 1 (równy 1 dlatego, ponieważ chcemy aby w ciągu 1 tiku do zmiennej w komórce pamięci została dodawana wartość 1). W skład tego będzie wchodzić taśmociąg z włączonym odczytem zawartości taśmociągu i stałym trybem odczytu, który jest połączony do wejścia sterownika decyzyjnego, w którym na wejściu jest warunek jeśli Którykolwiek sygnał jest większy od 0, a na wyjściu jest zwracana wartość Którykolwiek sygnał równa 1 (ten sterownik decyzyjny jest potrzebny, ponieważ taśmociąg zwraca sygnał, który jest różny od 1 - czego nie chcemy, więc musimy zamienić ten sygnał na inny równy 1).

Następnie musimy zbudować komórkę pamięci, która będzie zapisywać zmienną oraz do której będzie dodawana 1 po wykryciu przez taśmociąg przedmiotu. Więc budujemy taką samą komórkę pamięci jaką budowaliśmy wcześniej i łączymy jej wejście (lub wyjście - i tak są one połączone) z wyjściem sterownika decyzyjnego.

Ostatnim krokiem będzie zbudowanie lamy i połączenie jej ze sterownikiem stałych. W lampie musimy włączyć tryb pracy Włącz/wyłącz z warunkiem Którykolwiek sygnał większy od 60 (większy od 60 dlatego, ponieważ chcemy aby sygnał został opóźniony o 1 sekundę, jeźli chcielibyśmy opóźnić sygnał o np. 5 sekund to musimy dać warunek Którykolwiek sygnał większy od 300).

Tak więc podsumujmy to co się wydarzy po wykryciu przedmiotu przez taśmociąg:

Taśmociąg wykrywa przedmiot

Sterownik decyzyjny zamienia sygnał taśmociągu na inny stały sygnał równy 1

Do zmiennej w komórce pamięci co 1 tki jest dodawane 1

Po 60 klatkach czyli po 1 sekundzie zmienna jest równa 60, więc lampa się zapala

Timer 2:Mamy taką sytuację, że chcemy stworzyć jakiś mechanizm, który będzie zapalał lampę co 1 sekundę na 1 klatkę. Poprzedni timer się nie nada, ponieważ jest "jednorazowy", tz. poprzedni timer działał tak, że po wykryciu jakiegoś przedmiotu na taśmociągu co klatkę do zmiennej w komórce pamięci zostawało dodawane 1, więc po przekroczeniu progu, po którym lampa się zapaliła do zmiennej dalej było dodawane 1, co skutkowało tym, że po zapaleniu lampy ona świeciłaby się już cały czas.

Ten timer zapobiega temu i ma w sobie wbudowany ogranicznik, który po przekroczeniu progu zapalenia lampy (czyli zmiennej równej 60) odejmie od zmiennej właśnie 60, dzięki temu powstanie nam coś w rodzaju metronomu, który z określoną częstotliwością będzie na chwilę zapalał lampę.

Na początku budujemy dokładnie to samo co poprzednio, czyli budujemy coś co wykryje sygnał z zewnątrz, czyli w tym przypadku ze sterownika stałych i przekaże stały sygnał równy 1 do komórki pamięci (na obrazku tym czymś co przekaże stały sygnał będzie prawy górny sterownik, a komórką pamięci jest lewy górny sterownik).

Następnie musimy wybudować coś co po przekroczeniu ustalonego progu (zmienna równa 60) od zmiennej w komórce pamięci odejmie 60. W tym celu budujemy sterownik decyzyjny (na obrazku prawy dolny sterownik), którego wejście łączymy z komórką pamięci. Na wejściu wstawiamy warunek Którykolwiek sygnał większy od 58, a na wyjściu Którykolwiek sygnał równy 1. Ten sterownik decyzyjny będzie wykrywał czy próg został przekroczony.

Kolejny krokiem będzie zbudowanie sterownika arytmetycznego (na obrazku lewy dolny sterownik), którego wejście łączymy z poprzednio wspomnianym sterownikiem decyzyjnym, a wyjście z komórką pamięci. Na wejściu wstawimy operację Dla każdego sygnału * -30, a na wyjściu Dla każdego sygnału. Ten sterownik będzie odejmował od zmiennej w komórce pamięci 60.

Na samym końcu budujemy lampę z warunkiem Którykolwiek sygnał równy czemuś z przedziału od 2 do 60.

Pewnie się zastanawiasz dlaczego w tej części timera odpowiedzialnej za odejmowanie 60 od zmiennej w sterownikach na wejściach jest akurat warunek > 58 oraz operacja * -30. Jest to spowodowane tym, że sterownik może wykonać tylko 1 obliczenie na klatkę i zanim sterownik arytmetyczny zacznie odejmować od zmiennej to minie 1 klatka podczas, której sterownik decyzyjny wykryje przekroczenie progu.

Poniżej jest zaprezentowane to jak zmienne zmieniają się z każdą kolejną klatką:

- Zmienna w komórce pamięci

- Zmienna na wyjściu prawego dolnego sterownika decyzyjnego

Sterowniki górne:

Sterowniki dolne:

Jeżeli chcesz możesz skorzystać z tego timera:

0eNrNlt2OmzAQhd9lLluzCv9ZpFbqc1QRcmCSjAQG2SYqinj32rAlmyzZLEHa7g3CGJ8Zf0c+8gm2RYO1JKEhOQFllVCQ/D6Bor3ghf2m2xohAdJYAgPBSzvikvShRE2Zk1XllgTXlYSOAYkc/0DiduyuRo4Z5SinBbxuwwCFJk04dNQP2lQ05RalqTDqqJIXhVPwsjbadaXMkkrYqkbGcePnp5BBa16j+Ck0BcwWtayKdIsHfiRT1PyZkcwa0qmZy8flO5JKp282cSSpG/PlXL//w+Gi1QcSexhqKM0tU9cOyprLfn8J/IBumBeY2ULKKrv2sZeI4vVOKTcY2NhbP+w2XWfRXsHw7hgzxSW+oJKTHBqCJJpmdFY+Y1IPcEKeHSwjhVYmPaNaMahqNKD6LuC7WVk1um5may8jzC6m/fenw7f+MPA+Wsy9UnNv2Ou/d2amvA1mevsiu8zY6QOwujoAPx+w9VK5bk2fjdDpTlZlSsJIQbLjhcJZxgfLvIqup6etC8a9/ENyzzv3Kq/uu7ejQqO8kdu3mP4aYDYvITXm9mYOQ/9jEMIF8RR+lXhyfPcyoL59TkBFCyNm2pLo0UgJ/3+khOuvmin+PK/CKa/Mvae/JyWvrmYMjuaA97i9tRvEz14crPzYC9Zd9xcID1og

Zakończenie

Dziękuję, że zechciałeś przeczytać mój poradnik oraz mam nadzieję, że zaprezentowane przykłady zastosowania sieci sterowniczych okazały się przydatne w rozwoju twojej fabryki, albo może zostałeś zainspirowany do zrobienia czegoś jeszcze ambitniejszego. Jeśli znalazłeś jakieś błędy w poradniku (broń boże ortograficzne), masz uwagi co do treści, chcesz zaproponować dodanie czegoś do poradnika, albo po prostu chcesz o coś zapytać to napisz komentarz.

Źródła informacji oraz inne wartościowe treści:

Factorio Circuit SR Latch, Counter and Edge Detection

Factorio - Tutorial - Combinator Clock with Display

Factorio wiki: Time[wiki.factorio.com]

Pozdrawiam Skamlo

Source: https://steamcommunity.com/sharedfiles/filedetails/?id=2532457202					

More Factorio guilds