sPlan 8.0 - komponenty typu Rodzic-Potomek

Spis treści

Komponent typu Rodzic-Potomek

Silną stroną edytora schematów sPlan 8.0 jest elastyczna i intuicyjna "polityka" w zakresie operowania bibliotekami symboli elementów elektronicznych, czyli komponentów.

IMO ważną jego właściwością jest to, że elementem bibliotek symboli mogą być nie tylko układy proste (1 struktura = 1 symbol), ale również elementy (symbole) "strukturalne" typu Rodzic-Potomek.

Możliwość ta istniała już we wcześniejszych wersjach programu. Jednak w domyślnych bibliotekach sPlan-u nie znajdziemy zbyt wielu praktycznych przykładów.

Dobrym wyjściem jest stworzyć własne symbole. "Szyte na miarę". ;) Korzystając z przygotowanych komponentów prostych, zawartych w istniejących bibliotekach.

Spróbowałem. Oprócz funkcji poznawczej okazało się, że wbrew obawom nie jest to trudne. I nie zabiera zbyt wiele czasu.

Wprowadzenie

Układy scalone (struktury) zawierają wewnątrz kilka(naście) funkcjonalnych modułów. Każdy z nich ma swoje np. wejście, wyjście, wyprowadzenia sterujące, itd. Tym co je wiąże (oprócz fizycznej obudowy) najczęściej jest… wspólne zasilanie.

W klasycznym symbolu elementu bibliotecznego zawiera się (w graficznym prezentacji) wszystkie jego składniki wraz z wyprowadzeniami i zasilaniem. Topologia wyprowadzeń symbolu jest stała. Niektórzy określają taką strukturę mianem „płaskiej”.

Okazuje się, że rysowanie schematu w oparciu o takie symbole nie jest proste. Wygląd schematu (sieć połączeń) bywa „zagmatwany”, mało czytelny. By utworzyć inny ich układ – bardziej przejrzysty czy korzystniejszy dla tworzonego projektu - musimy (w przypadku symboli "płaskich") po prostu stworzyć nowy symbol.

Co jednak jeśli chcemy zaprojektować kilka kart (schematu), gdzie każda z nich zawiera moduły funkcjonalne zbudowane w oparciu o różne struktury? Nie musimy zaczynać od zera! SKorzystajmy z istniejących symboli.

Możliwości "Rodziny"Dawniej poszczególne moduły (bloki) urządzenia rozgraniczano poprzez rysowanie na schemacie umownych granic pomiędzy nimi. Rolę granic dziś odgrywają wyodrębnione karty projektu. Okazuje się, że składniki używanych komponentów winny zapewniać większą swobodę w zakresie ich lokacji.

Edytory schematów, w tym sPlan 8.0 (dalej będę używał nazwy sPlan) dają możliwość sporządzenia odrębnej dokumentacji (karty) modułu czy bloku.

Składniki komponentów typu Rodzic-Potomek (ang.: Parent-Child) można lokować na więcej niż w jednej karcie, przemieszczać, kopiować, usuwać, itd.

Praktyka ta nie jest powszechnie stosowana (nie tylko) przez początkujących użytkowników sPlan 8.0. Trzeba pamiętać, by zachować: uwagę, rozsądek i… umiar! Obawa przed popełnieniem błędu stanowi dla wielu istotny hamulec. Ale tworzenie nowych komponentów nie powinno być jedynie "sztuką dla sztuki"

O czym mówimy? Dobrym przykładem komponentu (o złożonej strukturze) są np. układy TTL 7400 (4 bramki NAND) czy CD4066 (4 przełączniki analogowe). Można tu też wymienić przekaźniki: Rodzicem jest cewka sterująca, a zestaw styków to klasyczny Potomek.

Poszczególni Potomkowie różnią się: (czasami) funkcjami, numerem wyprowadzeń. Mogą realizować swoje funkcje niezależnie od pozostałych modułów zawartych w strukturze układu.

Dla prawidłowego funkcjonowania relacji Rodzic-Potomek komponentu w sPlan-ie muszą być przestrzegane następujące zasady:

  • wszystkie składniki potomne (Potomek) muszą zostać przypisane wyłącznie do 1 Rodzica,
  • choć Rodzic może zostać osadzony na dowolnej karcie projektu nie możemy (o ile nie jest to zamierzone) żadnego Potomka pozostawić w roli... sieroty. Bo nie tylko, że będzie mu "smutno" ;) to w wielu przypadkach układ nie będzie działał prawidłowo.

I tu trzeba podkreślić, że IMO sPlan nieźle wspiera użytkownika w przestrzeganiu tych zasad. Zwłaszcza w wersji 8.0

Co wcale nie oznacza, że zezwala na wyłączenie myślenia! :D

Dzięki "zaszytym" w sPlan funkcjonalnościom pewne dane dotyczące składników komponentów typu Rodzic-Potomek są automatycznie synchronizowane.Komponenty złożone (Rodzic-Potomek)

Ułatwia to panowanie nad "inwentarzem". I tak np. identyfikator Potomka może zawierać element identyfikujący Rodzica (zmienna: <PARENT_ID> - zmienne te zostaną omówione później).

Jeśli <PARENT_ID> ulegnie zmianie (np. w wyniku renumeracji elementów) identyfikator Potomka również automatycznie zostanie skorygowany (zsynchronizowany).

Jest to korzystne, gdyż swoboda w lokowaniu poszczególnych komponentów (Potomków) może powodować, że "na schemacie" nie „leżą” one obok siebie.

Należy jednak pamiętać, że np. usunięcie Rodzica spowoduje, że (przypisany do niego) komponent straci status Potomka. Jego identyfikator przyjmie widoczną na schemacie wartość np.  <PARENT_ID>- <CHILD_NO>. :/ 

Od przybytku głowa (czasami) boli...

Wspomniałem o tym, że w stosunku do poszczególnych elementów (składników) komponentu złożonego można stosować większość narzędzi edycyjnych jakimi dysponuje sPlan 8.0.

W "Oknie właściwości" (jeśli włączonona to prawa strona "Okna programu" sPlan) widzimy własności wyróżnionego elementu.

Można tam również znaleźć (formularz: "Rodzic-Potomek" > Status: Rodzic") informację: co do czego i gdzie jest przypisane?

Jeśli nie skorzystamy z pewnej drobnej, ale bardzo użytecznej funkcjonalności sPlan to trudno się połapać: do którego z komponentów odnoszą się prezentowane informacje.

Zwłaszcza jeśli składniki znajdą się na różnych kartach i (a gdy jest ich kilka) mogą być "wymieszane" (jak na obrazku z lewej).


Wyróżnienie kolorem komponentów typu Rodzic-Potomek

Kolorowanie wyłączonesPlan dysponuje narzędziem, który w prosty i skuteczny sposób pozwala zorientować się o statusie i roli składników komponentu złożonego.

W sPlan można wyróżnić kolorem wszystkie komponenty typu Rodzic-Potomek. Zdecydowanie ułatwia to zlokalizowanie na schemacie komponentów tego typu.Klik i... wszystko jasne!

Już na pierwszy rzut oka można ustalić, którzy Potomkowie przypisani są to konkretnych Rodziców.

Aby włączyć/wyłączyć tę funkcję, użyj tego przycisku w górnym pasku narzędzi sPlan (na rysunku wyróżniony ramką).

Wszyscy Rodzice mają niebieskie tło. Z kolei wszyscy Potomkowie mają jasnoczerwone tło.

Jeśli zaznaczysz (wybierzesz poprzez kliknięcie na nim) Rodzica (lub Potomka) to wszystkie komponenty stanowiące składnik tej struktury zostaną wyróżnione: kolor tła stanie się intensywniejszy. Odpowiednio: Rodzic – niebieski, Potomek – jasnoczerwony.

Drobna rzecz, a cieszy! :)

Komponent typu Rodzic-Potomek jako element biblioteki

Symbol konkretnego komponentu złożonego (typ Rodzic-Potomek) w oknie wyboru aktywnej biblioteki przedstawiany jest wyłącznie za pomocą symbolu elementu związanego z przypisanym Rodzicem.

Składnik, który został zapisany w bibliotece jako element złożony (Rodzic-Potomek) łatwo poznać. W prawym, dolnym rogu widać niewielki trójkąt.

Po najechaniu kursorem na ten trójkąt nastąpi rozwinięcie prezentacji pełnej struktury tego komponentu. Z kolei po skopiowaniu tego komponentu na kartę projektu nastąpi „rozwinięcie” komponentu do pełnej postaci (wraz z Potomkami) i przypisanymi do nich wyprowadzeniami (końcówkami).

Istotnym szczegółem jest to, że poszczególne elementy komponentu tego typu można niezależnie przemieszczać w obrębie karty i projektu.

Kopiowanie komponentu złożonegoKopiowanie na kartę komponentu złożonego odbywa się tak samo jak komponentu "płaskiego". W oknie wyboru komponentów wybierz wybierz symbol Rodzica komponentu (bo tylko on jest tam widoczny).

Przenosząc go (metodą uchwyć i upuść) na kartę przeniesiesz również wszystkich jego Potomków.

Jeśli stworzyłeś własny komponent typu Rodzic-Potomek – zaznacz go CAŁEGO(!) i kliknij go prawym przyciskiem myszy i wybierz opcję: „Skopiuj wybrany komponent (z Potomkami) do biblioteki”.

Do biblioteki zostanie dodany cały komponent, ale w oknie wyboru komponentów widoczny jest tylko symbol Rodzica. Zwróć uwagę na to, że symbol Rodzica w prawym, dolnym rogu ma (musi mieć!) mały trójkąt.

Po najechaniu na niego kursorem po prawej stronie symbolu Rodzica zostaną wyświetlone wszystkie powiązane z nim elementy komponentu (Potomkowie).

Uwaga: jeśli wybierzesz pojedynczy składnik komponentu złożonego (obojętnie: Rodzica czy Potomka) - zostanie on wyróżniony.

Po kliknięciu na wyróżnionym elemencie prawym przyciskiem myszy na dole okna będzie widoczna opcja: „Skopiuj zaznaczony komponent do biblioteki”.

Po wybraniu tej opcji do biblioteki zostanie skopiowany jedynie(!) zaznaczony element jako komponent „płaski”. Bez względu na to czy w komponencie złożonym pełnił funkcję Rodzica czy Potomka.

Co stanie się, gdy zaznaczymy jednocześnie (w całości) kilka komponentów typu Rodzic-Potomek i skopiujemy je do biblioteki?

Okazuje się, że każdy z komponentów (osobno!) zostanie skopiowany do biblioteki wraz ze wszystkimi Potomkami i ich własnościami.Jednoczesne kopiowanie do biblioteki wielu złożonych komponentów

IMO bardzo użyteczna funkcja przy "masowym" tworzeniu złożonych komponentów.

Ale pamiętaj: jeśli w którymkolwiek z komponentów złożonych pominiesz którykolwiek z jego składników kopiowanie może dać zaskakujący efekt. Np. taki jak opisany powyżej w kolorze czerwonym.


Zmienne komponentu typu Rodzic-Potomek

Zmienne komponentów złożonychZagadnienie przypisywania tekstom i treści pól tekstowych wartości zmiennych oraz stałych programu sPlan (ew. użytkownika) został szerzej omówiony w artykulesPlan 8.0 - stałe i zmienne.

Warto wiedzieć, że w sPlan 8.0 tekst stanowi bardzo istotny element warstwy informacyjnej. I program oferuje szereg funkcjonalności wspierające ich tworzenie.

Wspominałem, że dane dotyczące komponentów typu Rodzic-Potomek są automatycznie synchronizowane.

Element Potomek może automatycznie przyjąć identyfikator i wartość swojego Rodzica dzięki zastosowaniu specjalnych zmiennych (nazwy których zadeklarowano w programie).

Są one unikalne i występują wyłącznie dla komponentów typu Rodzic-Potomek:

  • <PARENT_ID> - identyfikator składnika wskazanego jako Rodzic,
  • <PARENT_VALUE> - wartość składnika wskazanego jako Rodzic,
  • <PARENT_PAGENO> - karta, na której występuje składnik wskazanego jako Rodzic,
  • <CHILDNO> - numer (np. 1, 2, 3, itd.) identyfikujący składnik wskazany jako Potomek,
  • <CHILDCHAR> - litera (np. a, b, c, itd.) identyfikująca składnik wskazany jako Potomek,
  • <CHILD_PAGENO> - karta, na której występuje składnik wskazanego jako Potomek.

Automatycznie składnikowi Potomek domyślnie przypisywane są: identyfikator <PARENT_ID> i wartość swojego rodzica <PARENT_VALUE>.

Choć identyfikator Potomka powiązany jest z identyfikatorem Rodzica to może on być rozszerzony o zmienną: <CHILDNO> (numeryczna) lub <CHILDCHAR> (literowa). Element wskazany jako Rodzic zarządza przypisanymi mu Potomkami nadając im kolejny „wyróżnik”.

Warto zdefiniować (i włączyć jego wyświetlanie!) identyfikator Potomka w następujący sposób: <PARENT_ID> - <CHILDNO> lub <PARENT_ID> - <CHILDCHAR>.

Zmienne: <CHILDNO>/<CHILDCHAR> określają kolejność Potomków wskazaną w złożonym komponencie bibliotecznym lub określonymi przez użytkownika.

Jeśli składnikowi typu Rodzic przypisano 4 Potomków, to każdy z nich ma przypisany numery: 1, 2, 3, 4 (<CHILDNO>) lub a, b, c, d (<CHILDCHAR>).

Identyfikatory Potomków na schemacie będą przedstawiane odpowiednio np. jako (<PARENT_ID>=IC1): IC1-1, IC1-2, IC1-3, IC1-4 lub IC1-a, IC1-b, IC1-c, IC1-d.

Kopiowanie (mnożenie) Rodziców

Mnożenie Rodziców"Mnożenie" potomstwa to sprawa znana. Jednak chciałbym opisać kopiowanie (powielanie) składnika komponentu typu Rodzic.

Oczywiście od razu pojawia się pytanie: po co? Nie jest to żadna fanaberia czy incydent. Często z tej opcji korzystam.

Gdy już mam symbol komponentu z ustawionym szeregiem parametrów (<PARENT_ID>, <PARENT_VALUE>, <PARENT_PAGENO>, opisów, itd. i zachodzi potrzeba zmiany np. "tylko układu nóżek" czy "wizerunku symbolu".

W przypadku prostych symboli łatwiej skopiować cały komponent. Bywa jednak, że łatwiej zacząć od Rodzica, a "resztę" dorysować :)

Zaczynam od skopiowania komponentu (złożonego) na kartę, a następnie (numery w nawiasach odnoszą się do oznaczeń na obrazku z lewej):

  • zaznaczam składnik typu Rodzic (1) - bo to ten element decyduje o szeregu parametrach i właściwościach komponentu złożonego typu Rodzic-Potomek. Warto przyjrzeć się wartościom wyświetlony po prawej stronie okna programu.
    W okienku opisu relacji Rodzic-Potomek widzimy, że możemy zmodyfikować listę przypisanych mu potomków lub nawet pozbawić ten składnik statusu Rodzica. Jego Potomek po pozbawieniu tego statusu utraci wiele własności więc trzeba uważać,
  • po upewnieniu się, że zaznaczyłem tylko "Rodzica" kopiuję go do schowka (Ctrl+C, 2) - istotne jest to, że do schowka kopiowany jest nie tylko sam symbol Rodzica, ale również wiele jego parametrów czy ustawień,
  • kopiujemy na kartę zawartość schowka (Ctrl+V, 3) - w oknie właściwości kopiowanego komponentu (tu typu Rodzic) znajdziemy szereg informacji.
    Zwróć uwagę, że już na tym etapie otrzymujemy informację, że Rodzic jest... bezdzietny (brak Potomków). Dostępne są również funkcje edycyjne komponentu, więc możemy zmieniać "do woli".,
  • tu (dla przykładu wykorzystamy Potomka pierwotnego układu, choć nic nie stoi na przeszkodzie by skopiować/utworzyć własny składnik typu Potomek. Zaznaczamy go. - Na dole, po lewej stronie okna programu w opisie relacji Rodzic-Potomek pojawiła się funkcja "Przypisz Rodzica". "Ptaszek" wskazuje na rozwijaną listę. Gdy ją klikniemy, okazuje się, że oprócz pierwotnie dostępnego Rodzica o oznaczeniu A1, pojawił się drugi - oznaczony jako A3,
  • Którego wybrać? - o tym winny decydować pomysły i potrzeby Autora projektu :),
  • Jeśli stworzony komponent nie jest "jednorazowym wyczynem" czy epizodem - po zaznaczeniu całości komponentu (Rodzic i Potomek) skopiuj go do odpowiedniej biblioteki.

Oczywiście zamiast "rzeźbić od zera" można skopiować gotowe składniki Rodzica i Potomka. Powybierać to "co się lubi podoba" i zapisać.Od frontu i od zaplecza

I tu sugeruję uważnie się przyjrzeć wpisom w niektóre pola własności składników czy ustawienia markerów. Wynika to z faktu, że jak już wiadomo Potomkowie dziedziczą, a parametry Rodziców bywają widoczne.

Czasami niekoniecznie w sposób oczekiwany przez użytkownika. Do dziś po takich mariażach niektóre schematy "odzywają się" do mnie w językach, których nie rozumiem. ;)

To efekt szybkiego kreowania relacji Rodzic-Potomek. Weryfikacja niektórych własności komponentów na tym cierpi.

Zakończenie

sPlan 8.0 - Edycja komponentówPierwotnie planowałem kontynuować wątek związany z tworzeniem nowych czy modyfikacją istniejących komponentów jeszcze w tym artykule. Tych typu Rodzic-Potomek również.

Jednakże spowodowałoby to "rozrośnięcie" się go do IMO nadmiernych rozmiarów.

Mnogość narzędzi i funkcji edytorskich udostępnianych przez sPlan 8.0 oraz pytania dotyczące (czasami prostej) edycji komponentów czy schematów spowodowały, że postanowiłem jednak wątek edycji przenieść do artykułu pt. sPlan 8.0 - Edytor.

Opis innych narzędzi czy funkcjonalności edytora sPlan 8.0 znajdziesz tutaj.

Inne artykuły o funkcjonalnościach i możliwościach sPlan 8.0 znajdziesz tutaj.

//