0588 - OrCAD Cz.4

Czwarta, ostatnia już runda walki z OrCAD-em powinna być zatytułowana "Tylko dla leniwych". Kierujemy ją do osób, które mając już za sobą pewną praktykę w posługiwaniu się tym pakietem programów, szukają sposobów ułatwienia czy uprzyjemnienia sobie rysowania schematów. Najprościej byłoby stwierdzić, że należy dążyć do uzyskania maksimum efektów przy minimum nakładów jednak spełnienie tego postulatu wymaga dodatkowej pracy. Aby efektywnie posługiwać się programem DRAFT, trzeba zaznajomić się ze zleceniami, które na pierwszy rzut oka wydają się niejasne. Uchylamy rąbka tajemnicy. O efektywnym rysowaniu.

Najczęściej używanym zleceniem programu DRAFT jest Place (umieść). Często, zwłaszcza w przypadku układów cyfrowych, zachodzi potrzeba narysowania grupy kilku czy nawet kilkunastu przewodów o tej samej długości, dołączonych do kolejnych wyprowadzeń układu scalonego. Podobnie przedstawia się sprawa z etykietami - nazwy poszczególnych linii adresowych, czy linii danych, różnią się zazwyczaj tylko indeksem. Aby uniknąć konieczności wielokrotnego odmieniania takich samych kawałków przewodu czy pracochłonnego wstukiwania niemal identycznych etykiet, wygodnie jest posłużyć się zleceniem Repeat (powtórz). Powoduje ono powtórne narysowanie obiektu, który został ostatnio umieszczony na schemacie za pomocą zlecenia Place. Miejsce, w którym pojawi się ten obiekt, zależy od wartości parametrów, które można zmienić posługując się zleceniem Set \ Repeat parameters \ ... . Warunkiem przyjmowanym "na dzień dobry" (default) jest umieszczenie nowego obiektu "piętro niżej". Set \ Repeat parameters \ ... pozwala także określić różnicę pomiędzy kolejnymi indeksami etykiet (tu wartością przyjmowaną przez domniemanie jest +1).

Rys.1

Zakres stosowania zlecenia Repeat ogranicza się na ogół do bezpośredniego otoczenia jednego układu scalonego. Gdy schemat zawiera większe powtarzalne fragmenty, wystarczy narysować jeden z nich, a następnie fragment ten skopiować posługując się zleceniami Block \ Save \ ... i Block \ Get \ ... . Warto również wiedzieć, że istnieje możliwość wymiany bloków pomiędzy oddzielnymi schematami, które jako całość nie mają ze sobą nic wspólnego (Block \ Export \ ... , Block \ Import \ ...). Zastosowanie opisanych wyżej zleceń ilustruje Rys.1. Przedstawiony tam schemat powstawał w następujący sposób. Do pobranego z biblioteki symbolu układu 27C256 (Rys.1.a) dorysowano przedłużenie wyprowadzenia A0, po czym z pomocą zlecenia Repeat dołączono identyczne odcinki przewodu do pozostałych linii adresowych. Następnie umieszczono na rysunku etykietę A0, Symbole A1, ... , A14 powstały w wyniku ponownego użycia zlecenia Repeat. Nietrudno zgadnąć, że w podobny sposób naniesione zostały na rysunek przewody dołączone do linii danych, pozostałe etykiety oraz ukośne kreski stanowiące odgałęzienia magistrali. Uzupełniając omawiany fragment schematu o odpowiednio ukształtowane magistrale utworzono blok (Rys.1.b), który można wygodnie powielać. Rys.1.c pokazuje efekt złożenia trzech takich bloków.

Omówione wyżej właściwości programu DRAFT są związane ze zleceniem Place. Teraz pragniemy przedstawić znacznie bardziej uniwersalny mechanizm, przydatny zawsze wówczas, gdy zachodzi potrzeba kilkakrotnego wykonania tej samej, złożonej operacji.

Makrozlecenia

W programie DRAFT istnieje możliwość definiowania sekwencji zleceń, które są wykonywane po naciśnięciu odpowiednich klawiszy funkcyjnych.

Tworzenie makrozleceń, które podczas wykonania nie wymagają ingerencji użytkownika, jest na tyle łatwe, że ograniczymy się tutaj do przedstawienia przykładu. Oto wygodna metoda rysowania... .schodów (coś dla projektantów generatorów napięcia schodkowego), że każdy schodek ma być rysowany w wyniku wciśnięcia klawisza F1. Aby zainicjować definicję tego makrozlecenia, należy wprowadzić z klawiatury : Macro \ Capture \ F1 <Enter>. W linii informacyjnej pojawi się wówczas napis <macro>. Narysujmy teraz schodek posługując się zleceniami Place \ Wire \ Begin ..., przesuw kursora w prawo i w górę, ... \ End. Powtórne podanie zlecenia Macro spowoduje wygaszenie linii informacyjnej - oznacza to koniec definicji makrozlecenia. Począwszy od tej chwili każde wciśnięcie klawisza F1 spowoduje narysowanie uprzednio zdefiniowanego schodka.

Nieco bardziej skomplikowane jest tworzenie makrozleceń ??? których wykonanie wymaga udziału użytkownika. Aby dokładniej przyjrzeć się temu zagadnieniu spróbujmy zautomatyzować umieszczanie na schemacie rezystorów. Wykonanie makrozlecenia realizującego to zadanie musi być dwukrotnie wstrzymywane: najpierw w celu określenia położenia rezystora, a następnie po to, aby rezystorowi można było nadać odpowiednią wartość. Szczególną funkcję pełnią w tym przypadku klawisze CTRL i Home. Ich jednoczesne wciśnięcie powoduje, że w treści makrozlecenia umieszczany jest rozkaz wstrzymania realizacji makrozlecenia {MACROBREAK} do chwili wciśnięcia klawisza <Enter>. Aby ułatwić sobie rysowanie rezystorów możemy posłużyć się definicją:

Macro \ <F2> \ <Enter> \ Get \ R \ <Enter> \ <CTRL+Home> \ <Enter> \ Place \ <Esc> \ Edit \ Edit \ Part_value \ Name \ <BackSpace> \ <CTRL+Home> \ <Enter> \ <Esc> \ <Esc> \ Macro.

Rebus, ale bardzo przydatny - spróbujmy go rozszyfrować. Po wprowadzeniu podanej definicji wciśnięcie klawisza F2 spowoduje pobranie symbolu rezystora z biblioteki - na ekranie zobaczymy go tam, gdzie znajduje się kursor. Do chwili wciśnięcia klawisza <Enter> można skorzystać z menu wyświetlonego na górze ekranu (obrót, przesunięcie itp.). Gdy rezystor jest odpowiednio ustawiony, należy wcisnąć <Enter>, przechodząc tym samym do dalszej części makrozlecenia.

Kolejne wstrzymanie realizacji umożliwia wprowadzenie wartości rezystora. Wciśnięcie klawisza <Enter> po podaniu tej wartości powoduje zakończenie makrozlecenia. Zwróćmy jeszcze uwagę na funkcję, jaką pełni w podanej definicji klawisz <BackSpace>. Pozwala on usunąć literę R, która stanowi "domniemaną wartość" rezystora (uwaga: w niektórych wersjach bibliotek zamiast litery R występuje w tym miejscu napis "RESISTOR" - podaną definicję trzeba wówczas uzupełnić - klawisz <BackSpace> musi zostać wciśnięty kilkakrotnie).

Definicję makrozleceń można zapisać w zbiorze dyskowym (Macro \ Write \ ...), a także odczytać je z takiego zbioru (Macro \ Read \ ...). Łatwo jest więc utworzyć własną bibliotekę makrozleceń, która na dodatek może być automatycznie dołączana do programu DRAFT, jeżeli taki warunek zostanie podany w konfiguracji.  Zapis nowego zbioru makrorozkazów powoduje zniszczenie poprzedniej wersji bez utworzenia kopii zapasowej. Postać omawianych zbiorów  jest na tyle czytelna, że można je łatwo modyfikować posługując się dowolnym edytorem tekstu. Na poparcie tego ostatniego stwierdzenia załączamy "dyskową postać" obu prezentowanych wyżej definicji, uzupełnioną o makrozlecenie, które - aczkolwiek krótkie - jest dosyć efektowne...

 {F1} = pwb{R} {U} e {}
 {f2} = gr{ENTER} {MACROBREAK} p {ESC} eepn {RUBOUT}
 {MACROBREAK} {ESC} {ESC} {}
 {MMB} = qay{}

Ostatnia z podanych definicji zawiera tajemniczy symbol {MMB}. Śpieszymy wyjaśnić, że oznacza on środkowy klawisz myszki, któremu także można przyporządkować makrozlecenie.

Schematy hierarchiczne

Rozmiar arkusza na którym jest rysowany schemat można zmieniać posługując się zleceniem Set \ Worksheet size. Często jednak wygodnie jest podzielić jedno duże nieszczęście na kilka mniejszych. W programie DRAFT istnieje możliwość tworzenia schematów o strukturze hierarchicznej, w której np. najwyższy poziom stanowi schemat blokowy, a niższe poziomy - schematy ideowe. Uproszczony przykład takiego schematu blokowego zawiera Rys.2. Bloki przedstawione na rysunku tworzy się za pomocą zlecenia Place \ Sheet \ ..., kazdy z nich reprezentuje pewien schemat, zapisany w oddzielnym zbiorem. Skojarzenia bloku ze zbiorem dyskowym dokonuje się za pośrednictwem parametru Filename (Place \ Sheet \ Filename lub Edit \ Edit \ Filename). Dla tak powstałej struktury można następnie utworzyć wspólną listę połączeń, czy wykaz podzespołów. Podejrzewamy, że niewielu spośród Czytelników pozbawionych dostępu do pełnej dokumentacji OrCAD-a zdecyduje się tworzyć schematy hierarchiczne. Dlatego poprzestajemy na zasygnalizowaniu tej interesującej właściwości programu DRAFT.

Podsumowanie

Nie ukrywamy, że OrCAD zaskarbił sobie naszą sympatię. Jest to w głównej mierze zasługa programu DRAFT, a zwłaszcza sposobu organizacji Współpracy tego programu z użytkownikiem. Przejrzysta organizacja hierarchicznego menu, istnienie trzech równoprawnych sposobów wprowadzania zleceń, a także szybkie działanie procedur graficznych sprawiają, że posługiwać się tym programem jest po prostu przyjemnie. Nieco gorsze wrażenie robią programy usługowe, zwłaszcza ERCHECK, NETLIST i PRINTALL. Dwa pierwsze - ze względu na nieprecyzyjne, a nawet mylące komunikaty o błędach, ostatni - z uwagi na bardzo oszczędny opis, co sprawia, że wiedzę na temat liczby fragmentów, na jakie podzielony zostanie schemat podczas drukowania oraz formatu tych fragmentów trzeba zdobywać eksperymentalnie.

Marek Matuszczak, Mariusz Dec, "Komputer" Maj 1988r.