Oprogramowanie inżynieryjne MOVITOOLS MotionStudio

Automatyzacja odgrywa w technologii maszyn coraz ważniejszą rolę, ponieważ jedynie dzięki automatyzacji można osiągnąć wyższą produktywność. Aby zapewnić kompleksowe wsparcie w tym zakresie, nasze oprogramowanie modułowe MOVITOOLS ® MotionStudio oferuje naszym klientom wszystkie niezbędne narzędzia.

MOVITOOLS® MotionStudio - wszystkie niezbędne narzędzia do projektowania maszyn w ramach jednego oprogramowania MOVITOOLS® MotionStudio - wszystkie niezbędne narzędzia do projektowania maszyn w ramach jednego oprogramowania

Wzrost stopnia zautomatyzowania powinien bezwzględnie znajdować się w centrum uwagi konstruktorów oraz administratorów maszyn, jeżeli ich zakłady mają pozostać konkurencyjnymi. Wynika to z tego, że procesy produkcyjne wymuszają coraz większą przepustowość oraz podwyższoną jakość produktów przy obniżonych kosztach eksploatacyjnych. Można to osiągnąć wyłącznie przy zastosowaniu nowoczesnych maszyn i urządzeń. Aby nasi klienci mogli również w przyszłości wydajnie wytwarzać swoje produkty zachowując wysoką produktywność procesu i równocześnie poprawiając swoją pozycję na rynku, oferujemy im nasze kompleksowe rozwiązania w zakresie techniki napędowej.

Kluczem do Państwa sukcesu jest nasze oprogramowanie inżynieryjne MOVITOOLS® MotionStudio. Zawiera ono wszystkie niezbędne narzędzia, które od samego początku zapewniają optymalne wsparcie i wspomagają idealną eksploatację maszyn. Narzędzia te są nieodzowne w procesie szybkiej i efektywnej automatyzacji - niezależnie od tego, czy wykorzystywane są pojedynczo, czy wspólnie.

Oprogramowanie MOVITOOLS® MotionStudio to także korzyści płynące z niezależności urządzeń. W ramach skanowania urządzeń oprogramowanie rozpoznaje wszystkie elementy instalacji podłączone do konfigurowanego złącza i wyświetla je w postaci węzła w drzewie urządzeń. W menu kontekstowym każdego węzła można komfortowo wybierać i uruchamiać odpowiednie narzędzia. W ten oto sposób dzięki jednemu modułowi oprogramowania możliwe jest parametryzowanie, programowanie i diagnozowanie większości naszych falowników.

Również w zakresie kanałów komunikacyjnych obowiązuje wolny wybór. MOVITOOLS® MotionStudio umożliwia za pośrednictwem naszego serwera komunikacyjnego konfigurację różnych mediów komunikacyjnych przy obsłudze aż do czterech kanałów komunikacyjnych. Serwer udostępnia też możliwość centralnej rejestracji danych oraz zastosowania nowoczesnych technologii do realizacji zdalnych zadań konserwacyjnych.

Programowanie

Programowanie jest to tworzenie ciągu operacji, których celem jest rozwiązanie konkretnego problemu w takiej postaci by była ona zaakceptowana przez komputer. Możemy również definiować jako proces tworzenia program lub oprogramowania komputerowego, który składa się na takie etapy jak: określenie i opracowanie założeń, kodowanie oraz testowanie[1].

Algorytm

Jest to sposób postępowania określony jednoznacznie, który pozwala na rozwiązanie danego problemu w zbiorze wydanych poleceń wraz z uwzględnieniem kolejności, w jakiej mają one być realizowane. Algorytm jest opisem sposobu działania (podaniem składników potrzebnych do rozwiązania zadania). Aby można było rozwiązać występujący problem niezbędna jest implementacja algorytmu. W programowaniu proces ten polega na napisaniu programu, którego przeznaczeniem będzie realizacja wszystkich czynności, opisanych wcześniej w instrukcji, przewidzianych w algorytmie.

Język programowania

Definiuje się jak zbiór określonych zasad, wskazówek, operatorów, które wspólnie tworzą kod źródłowy opracowywanego programu komputerowego. Składa się on ze zbioru zasad, które regulują jak poprawnie tworzyć wyrażenia, aby komputer mógł je prawidłowo odczytać. Język programowania służy do przekazywania poleceń maszynie (komputerowi). Istnieje możliwość, że może on również zawierać konstrukcje składniowe, których przeznaczeniem jest kontrola nad strukturami danych oraz zarządzanie systemem sterowania.

Kod źródłowy i wynikowy

Kod źródłowy jest to zapis programu komputerowego, który za pomocą języku programowania definiuje operacje, jakie powinny zostać zrealizowane przez komputer na zebranych lub przekazanych danych. Powstaje on jako efekt pracy programisty zapisany zazwyczaj w pliku tekstowym. Kod wynikowy jest natomiast wynikiem pracy translatora (interpretera, kompilatora), który może zostać użyty bezpośrednio do wydania polecenia komputerowi. Jest to ciąg poleceń i danych procesora, umieszczonych i zapisanych w pamięci komputera w kodzie binarnym.

Kompilacja

Jest to program, którego zadaniem jest automatycznie przetłumaczenie polecenia napisanego kodem źródłowym na równoważny kod w innym języku (kod wynikowy). Jest ot tłumacz języka o wysokim poziomie, co oznacza, że programy przez nie tłumaczone mogą zostać umieszczone w pamięci i zrealizowane po zakończeniu całego procesu tłumaczenia, co wyróżnia go od interpretora, w którym czynności te są wykonane na bieżąco.

Zmienne i ich typy

Zmienna jest definiowana w programowaniu jako konstrukcja programistyczna, która pozwala na przechowywanie danej. Można on posiadać kilka atrybutów takich jak: nazwa, wartość, typ oraz adres- miejsce, w którym przechowywana jest zapisana dana. W programowaniu możemy rozróżnić dwa typy danych: wartościowe oraz referencyjne[2].

Typ wartościowy

Jest podstawowym typem, którego możemy znaleźć we wszystkich językach programowania m.in. w C#. podczas gdy określamy typ wartościowy komputer umieszcza należytą ilość miejsca w pamięci, gdzie zostanie zapisana dana zmienna. Typ wartościowy jest domyślnie powierzany przez wartość, co można rozumieć jako dostarczanie do funkcji ich kopii. W języku C# możemy wyróżnić takie typy wartościowe jak: double, long, byte, int, float, bool, char. Zmienna posiadająca typ wartościowy jest miejscem pamięci i przestaje istnieć, jeżeli opuści się klamry zasięgu.

Typ referencyjny

Jest to typ, który możemy znaleźć w języku programowania C++. W przeciwieństwie do typu wartościowego, który jest umieszczany na stosie programu ten typ danych posiada obszar pamięci, który znajduje się na jego stercie. W języki C# typami referencyjnymi są: interfejsy, tablice, delegacje czy klasy. Nie ma możliwości ich kopiowania przy wykorzystaniu operatora przypisania. W przeciwieństwie do typu wartościowego nie możemy określić jak wiele miejsca w pamięci będzie zajmować interfejs.

Język C oraz C++

W programowaniu są to najbardziej popularne języki używane przez programistów. Co jakiś czas pojawiają się coraz to nowe języki tworzone na potrzeby danego projektu, jednak zazwyczaj po pewnym czasie zostają one zapamiętane[3]. Język C jest nierozłącznie powiązany z systemem Unix. Natomiast język C++ został stworzony jako obiektowa wersja języka C. Większość znaczących oprogramowani na rynku napisane jest właśnie w tym języku. Dlatego programista, który nie opanował języka C/C++ ma niewielkie szanse na rynku pracy, ponieważ zazwyczaj ich znajomość jest wymagana i niezbędna do pracy. Obecnie programiści przy tworzeniu aplikacji korzystają głównie z języka C++, dla którego zostały stworzone dedykowane pakiety jak na przykład Visual C++, wyprodukowany przez firmę Microsoft.

Programowanie obiektowe

Jest to model programowania, który bazuje na przygotowywaniu aplikacji, które są jak najlepszym odzwierciedleniem rzeczywistości. Jego celem jest pomoc w usprawnieniu pisania programów lub ich fragmentów[4]. Programowanie obiektowe początkowo można znaleźć w Simuli 67, czyli języku programowania, który został stworzony i zaprojektowany przez Ole-Johana Dahla i Kristena Nygaarda w Oslo. W programowaniu obiektowym możemy wyróżnić dwa podtypy: programowanie oparte na klasach- definiowane są typy zmiennych, a później tworzone są obiekty oraz programowanie oparte na prototypach- obiekty projektuje się w oparciu o prototyp (spotykany w JavaScript). Elementem, który wyróżnia programowanie obiektowe od proceduralnego są dane oraz procedury, które nie są ze sobą ściśle połączone.

Program komputerowy

Jest to zapis algorytmu, w którym znajdują się polecenia do wykonania dla komputera. Program zostaje zapisany w języku programowania. Program komputerowy może być tworzony w sposób bezpośredni, jeżeli zapisany jest językiem programowania, który jest zrozumiały dla komputera lub w sposób pośredni, kiedy realizowany jest przez interpreter poprzez wnikliwą analizę kodu źródłowego celem wykonania polecenia. Program komputerowy może pojawić się w postaci kodu źródłowego lub kodu wynikowego.

Bibliografia

Przypisy

↑ Arsoba R. 2010, s. 3-16 ↑ Kempa A., Staś T. 2018, s. 25-29 ↑ Mikołajczyk P. 2011, s. 2-24 ↑ Jabłonowski J. 2012, s. 15-21

Autor: Karolina Przewoźnik

Programowanie w parach. Czy warto?

Pair programming to nic nowego i zdążył już zdobyć wielu zwolenników. Ma też przeciwników, którzy twierdzą, że właściwie nie jest do niczego potrzebny. Co przemawia za wprowadzeniem w firmie tej metody pracy?

Programowanie w parach to jedna z praktyk programowania ekstremalnego (eXtreme Programming, XP), które coraz częściej zalicza się do zwinnych metodyk tworzenia oprogramowania. Kodowanie w parach od początku fascynuje badaczy. Już w 1998 roku John Noska przeprowadził eksperyment, z którego wynikało, że pary potrzebują o 30% mniej czasu na napisanie kodu niż pojedynczy programista, ale za to pracochłonność programowania w parach jest większa o 40%. Kilka lat później Laurie Williams z North Carolina State University opublikował badania dowodzące, że pracochłonność jest tylko o 20% wyższa niż u pojedynczego programisty, a do tego oprogramowanie powstaje o 40% szybciej. Z jeszcze innych badań wynikało, że oprogramowanie, które powstało w parach, ma o 15% mniej błędów, a 95% tak pracujących programistów jest bardziej pewnych swoich rozwiązań niż przy pracy samodzielnej. Najwyraźniej programowanie w parach ma swoje zalety, ale na początek klika słów wyjaśnienia.

Jak to działa?

Autor The Mythical Man Month, Fred Brooks, programował w ten sposób już na studiach w latach 50. W 1992 roku Larry Constantine opisał Dynamiczne Duo, które stosowane było pod koniec lat 80. w firmie Whitesmiths: przy każdym komputerze jeden z programistów pisał na klawiaturze, a drugi patrzył na monitor. 3 lata później programowanie w parach omawiał Jim Coplien w jednym z rozdziałów książki Pattern Languages of Program Design. W 2000 roku w artykule Pair programming and the mysterious role of the navigator Sallyann Bryant wprowadziła nazwy nawigatora i drivera. 2 lata później pojawiła się pierwsza książka na ten temat - Pair Programming Illuminated Laurie Williamsa i Roberta Kesslera, a w 2015 roku James Coplien wydał Two Heads are Better than One na temat idei programowania w parach opisując, jak to wszystko się zaczęło.

Pair programming to nic innego jak wspólna praca dwóch programistów. Jeden z nich to driver, który jest głównym koderem, wklepuje linijki kodu, a drugi to nawigator. Jego zadaniem jest obserwowanie powstającego kodu, wyłapywanie błędów, zadawanie pytań i proponowanie własnych rozwiązań. Co kilkadziesiąt minut programiści zamieniają się rolami. Taki duet pracuje przy jednym komputerze. Co daje taki sposób tworzenia oprogramowania?

Zalety programowania w parach

Programowanie w parach to nie ekstrawagancja czy szalony eksperyment. Ten sposób pracy ma wiele zalet:

Eliminowanie głupich błędów, które potrafią być bardzo irytujące. Dwie osoby mają szansę szybciej je wyłapać dzięki nawigatorowi, który powinien szczególnie uważać nawet na drobne pomyłki. To pozwala tworzyć lepsze oprogramowanie.

Nowe spojrzenie na problem. Czasem pojawia się podczas kodowania trudność, która wstrzymuje całą pracę, a poszukiwanie rozwiązania się przeciąga. Patrząc na kod z boku, nawigator może wpaść na rozwiązanie szybciej niż driver.

Swoboda podczas kodowania. Czujemy się pewniej wiedząc, że ubezpiecza nas przychylna osoba. W takim tandemie można płynnie wymieniać się wiedzą.

Programowanie w parach to również doskonała okazja, aby rozwijać umiejętności komunikacyjne, rozwijać dobre praktyki interpersonalne, a tym samym nabywać nowe umiejętności miękkie.

Oszczędność czasu – przytaczane wyżej badania potwierdzają, że oprogramowanie jest szybciej wytwarzane.

Oszczędność pieniędzy – krótszy czas pracy i mniej błędów to mniej wydanych pieniędzy.

Lepsze poznawanie się członków zespołu – praca w parach niewątpliwie sprzyja nawiązywaniu kontaktu.

Budowanie zaufania pomiędzy współpracującymi programistami.

To jednak nie wszystko, ponieważ programowanie w parach to także doskonały sposób na przekazywanie wiedzy.

Mentoring dla kodera

Programowanie w parach można także traktować jako technikę mentoringu. To wręcz idealne rozwiązanie, jeśli chodzi o uczenie młodych adeptów programowania przez doświadczonych koderów. Osoba, która chce zdobyć wiedzę, siedzi przy klawiaturze i pełni rolę drivera, mentor jest nawigatorem. Driver musi w tym przypadku samodzielnie szukać rozwiązania, a rola mentora sprowadza się do dawania wskazówek i przykładów. Co jakiś czas mentor może przejąć klawiaturę, napisać fragment kodu, przeanalizować go i wyjaśnić, ale nie należy z tym przesadzać. Driver powinien szukać sam rozwiązania korzystając z podpowiedzi. Programowanie w parach może przyspieszyć przekazywanie wiedzy, a także ułatwia wdrażanie nowych pracowników.

Rekrutacja

Programowanie w parach jest czasami wykorzystywane także w procesie rekrutacji. To jeden ze sposobów, aby sprawdzić umiejętności kandydata. Osoba szukająca zatrudnienia łączona jest w parę z doświadczonym programistą, siadają przy jednym komputerze. Kandydat otrzymuje do rozwiązania zadanie programistyczne, natomiast specjalista z rekrutującej firmy ocenia jego biegłość w programowaniu, posługiwaniu się określonymi narzędziami i technologiami. To pozwala szybko i gruntownie ocenić, czy kandydat ma wystarczającą wiedzę. W ten sposób można uzyskać więcej informacji niż przy teście umiejętności technicznych. Rekruter będzie mógł ocenić, jak kandydat potrafi się komunikować, czy gotowy jest prosić o feedback, czy umie przejąć inicjatywę w czasie pracy.

Pair programming dla wszystkich?

Oczywiście naiwnie byłoby myśleć, że programowanie w parach jest dla wszystkich. Nie jest z prostych powodów: nie każdy jest w stanie pokonać barierę intymną. Przyjmuje się, że to przestrzeń wokół nas w odległości do 45 cm. Ta strefa intymna zwykle zarezerwowana jest dla najbliższych nam osób, członków rodziny, dzieci. Naruszenie tej strefy przez kolegę z pracy może prowadzić do dyskomfortu, a nawet wywoływać różnego rodzaju reakcje obronne. To całkiem naturalne. Programowanie w parach jest oczywistym przykładem takiego naruszenia strefy intymnej. Dla niektórych programistów to duży problem i nie potrafią odnaleźć się w takiej sytuacji, nie wspominając już o produktywnej pracy. Dlatego pair programming najlepiej sprawdza się, gdy członkowie zespołu mają ze sobą silne relacje, są przyjaciółmi, a przynajmniej bardzo dobrymi kolegami i ufają sobie nawzajem.

Niestety, nie zawsze tak jest. Dlatego warto budować zaufanie w zespole również w kontekście programowania w parach, przygotowywać do tego psychicznie programistów. Osoby pracujące w parach muszą być zaangażowane, skupione na pracy, a nie na myśleniu „Ktoś zagląda mi przez ramię, kontroluje mnie”. Wtedy programowanie w parach nie ma sensu.

Jarosław Kułak
Jarosław Kułak

Leave a Comment