Wtedy tego problemu nie ma, dlatego, że bloki FC nie mają pamięci w postaci bloku DB (tylko pamięć lokalna TEMP), w związku z tym, które wywołanie bloku FC podejrzysz, dla tego zobaczysz wartości. Am I right?
Tutaj bardziej chodzi o zmienną lokalną Prawdopodobnie masz też gdzieś w programie wywołany blok FC, w którym znalazłeś zmienną #wartość max W tym właśnie wywołanym bloku jedna ze zmienych IN powinna być przypisana do #wartość max, a dokładnie DB101.DBD564 o którym to pisałeś wcześniej. Nie ma się co rozwodzić na różnicami między initial i actual value,...
Okazuje się że cały program składa się z 7 bloków FC i w OB tylko wywołania tych siedmiu bloków. Wielokrotnie taką praktykę w PLC widziałem. zrobić drobną modyfikację i wgrać z powrotem całość ? Będzie ok ? Jak edytujesz/dodajesz pojedynczy blok, to da się go wgrać samodzielnie. HW lepiej nie wgrywać, jak nie będzie potrzeby. Coś mnie może zaskoczyć...
(at)wojciech chyba trochę zamieszałeś, bo wygląda, że FB2 nie ma nic wspólnego z FC13, w którym są wywołane bloki timer'ów. W FC nie da się użyć Multi instance, a z Parameter instance to już wchodzimy na wyższy poziom :) (at)pcichomski pokaż, jak wygląda baza DB37 w widoku online i czy na pewno nie jest użyta więcej niż raz.
Na FC tez da się zrobić tylko trzeba użyć do każdego wywołania innego Timera. Coś Ci się nie udała ta funkcja do wielokrotnego wywołania. Pierwszy błąd zdeklaruj wejścia dla TIMERA I COUNTERA, wyrzuć daną MD i zrób wewnętrzną. Czyli mniej więcej to co kolega wyżej opisał lepiej użyć FB. Drugi błąd to wywołanie Twojego bloku FC jak wygląda? Najlepiej...
W temp ustawiasz tylko te elementy, które będziesz odpytawac w dalszej części bloku FB, FC. Statyczne możesz raz opracować i wywołać w następnym cyklu: przykład od reki dla temp: U E1.0 U E1.1 FP #stat1 = #xTemp1 U #xTemp1 SPBN M001 call fc 100 M001: nop 0
Po prostu nie uzależniaj wywołania FC od statusu START
Masz odczyt i zapis napędów przy użyciu funkcji SFC14 DPRD_DAT i SFC15 DPWR_DAT. Obsługa w bloku FB60, którego wywołania są w FC63. W net.1 tego FC masz wpisane adresy IO do odpowiadającej bazy instance. Dla Twojego przykładu napęd 27 obsługuje baza DB70. W tym przypadku Cross reference niestety nie zadziała.
Mam scrin z db, do którego odwołuje sie mój regulator. W bloku FC wywołuje FB41 razem z odpowiednim DB. FC wywołany jest w bloku OB1
Witam, Za pomocą step7 pobrałem projekt z PLC S7-300. Jest w nim kilka bloków FC które wywołane są w OB1. Gdzie mogę sprawdzić które fizyczna wejścia/ wyjścia wykorzystane są w logice (chodzi o listę wykorzystanych IO) ?
Standardowym rozwiązaniem jest podział programu na logiczne części zawarte w blokach FC i FB. Następnie wywołania tych bloków umieszczasz w OB1. Są one wykonywane po kolei zgodnie z kolejnością networków OB1.
Ja nie widzę tu żadnego db-ka. FC nie przechowuje zmiennych w pamięci. Jeśli chcesz przechować wynik działania po wywołaniu funkcji to musisz użyć FB a nie FC i wywołać z blokiem DB, który przechowa zmienne po wyjściu z funkcji.
W OB1 możesz wywołać zarówno bloki FC jak i FB. Blok DB jest to blok danych, możesz w nich samemu sobie stworzyć dane (typ IND, WORD, BIT bądź inne) albo zostaną one utworzone automatycznie gdy wykorzystasz blok FB. Przy tworzeniu bloku FB zapyta Cię na jakim DB ma dla tego bloku utworzyć dane DB. W bloku FB tworzyć dane wejściowe i wyjściowe a one...
Witam, Czy funkcja FC "Block_2" z timerem jest wywoływana więcej niż raz? Zrób sobie FB z data blokiem instancji timera w tempie. Oczywiście osobny datablock dla każdego wywołania. Pozdrawiam
Niestety dany kod zamieszczony powyżej nie funkcjonuje. Zamieściłem go w bloku OB1, następnie spróbowałem wywołać funkcje FC1 i w bloku FC zamieściłem dany kod, także nie funkcjonuje. Proszę o dalszą pomoc w danym zagadnieniu. Jak poprawnie rozwiązać dany problem?
Zmienną typu BIT zadeklaruj w bloku FC jako INOUT. Następnie przy wywołaniu w OB1 przypisz do tego wejścia/wyjścia dowolną zmienną np. z bloku DB, warunek to że ta zmienna jest tego samego typu. Wyjaśniając Ci zasadę krótko: zmienna jest na początku wywołania bloku sczytywana ze zmiennej zewnętrznej do zmiennej wewnętrznej (czyli jej stan może być np....
no wiec tak przejrzałem soft. tak szybko przejrzałem masz stworzone FC do urządzeń i wywołane wielokrotnie. dlatego jest UDT ZE 30 << to jest komętaż następuje wywołanie bloku FC312 jak otworzysz FC 312 to wtedy masz dane wejściowe i dane wyjściowe do FC cła logika sterowania jest zaszytaw FC312 musisz pamiętać o tym ze jak idziesz w Online to...
marte: Da się to zrobić :), trzeba tylko wejść w testmode i wybrać blok danych, z którym połączone jest wywołanie które chcemy podglądać
W systemie s7300 i s7400 możliwe jest udostępnienie jednocześnie dwóch bloków danych. Aby tego dokonać bloki danych trzeba udostępnić poprzez rejestr DB1 jak i DB2. Bloki FC korzystają domyślnie z rejestru DB1 i na przykład udostępnienie DB poprzez ten rejestr : OPN DB8. Aby udostępnić jednocześnie dwa bloki np DB8 i DB10 należy jeden z nich udostępnić...
Zacznijmy od bloku organizacyjnego OB1 SET ustawia RLO =1 SAVE zachowuje zawartość RLO(stan operacji logicznej) w BR(wynik binarny) = L 22.1 przypisanie stanu RLO =1 do argumentu UC FC10 bezwarunkowe wywołanie bloku funkcyjnego FC10 FC10 SET ustawia RLO =1 SAVE zachowuje zawartość RLO w BR = L 2.1 przypisanie stanu RLO =1 do argumentu = L 2.2 przypisanie...
W takim razie spróbuj użyć FC80 TONR albo samemu zrobić licznik, bo wspomniane FC tak działa. W każdym cyklu sterownika zwiększa licznik o czas ostatniego wywołania podany na wejście DALTA_T. Można tam podać np.: czas trwania OB1 ze zmiennej OB1_PREV_CYCLE, która jest zmienną tymczasową w tym bloku organizacyjnym. Zeruje się po podaniu sygnału na wejście...
Witam! Sam właśnie zaczynam przygodę z s7 1200 i proszę o pomoc bo dosłownie na starcie mam już problem. Pamiętam z Sterownika S7-300 że jeżeli napiszę coś w bloku FC1 to należy wywołać go z OB1 żeby program był realizowany. I właśnie mam piękny projekt w którym założyłem sobie rozłożenie pracy na kroki i umieszczenie ich w FC - ale jak wywołać te bloki?...
Udało mi się usunąć problem chociaż wydaje mi się że w tia v15 coś siemens pozmieniał bo wcześniej w tia v13/14 miałem podobne rozwiązanie że jak miałem blok OB30 i OB31 ustawiony na 1ms (czas cyklicznego wykonania) W obydwu blokach były proste obliczenia j.w i błędów nie było Nie wiem jak używa się poprawnie bloku RUNTIME. Czy powinno się go użyć na...
Witam. Posiadam Tia portal V12. Zawsze jak pracowałem to używałem FC i potem ją wykonywałem w OB1. Teraz zwróciłem uwagę na FB. Wiem, że po wywołaniu FB mam DB blok danych. Jaka jest różnica między nimi i gdzie się je stosuje.
Witam, mam pytanie odnośnie programowania sterowników PLC Siemens. Szukam jakiś wzorców projektowych. Gdzie ewentualnie można takie znaleźć. Drugie pytanie np. w sterowniku s-1200, można ogółem wykorzystać około 1024 bloków. Mam na przykład uruchomić 40 napędów sterowanych 0-20ma. Przygotowałem sobie Funkcję, która umieściłem w bloku FB. Próbowałem...
Zmienne lokalne, zarówno w FB jak i w FC to zmienne tymczasowe, których wartość istnieje tylko w czasie wywołania funkcji. Blok FB posiada dodatkowo dane statyczne (STAT), które są przechowywane w bloku danych i są dostępne w kolejnych cyklach programu. Jeśli chcesz przekazywać wartości między FC, na wejścia i wyjścia wpinaj zmienne typu M - wtedy powinno...
Obrócenie bajtu ROR lub ROL o 8 pozycji raczej nie zmieni wartości tego bajtu wcale. Fakt lepiej nie komentować forum po sylwestrze :) Dodano po 40 Ale najlepiej nie ma co kombinować tylko stworzyć funkcję FC jak poniżej i w pętli FOR przemielić 20 razy przez nią te bajty. https://obrazki.elektroda.pl/8963796400_... https://obrazki.elektroda.pl/4013606500_...
Witam, Dokładnie tak, jak napisał Kolega powyżej. Numer timera musisz podawać jako zmienną wejściową Twojej uniwersalnej funkcji. Tak, aby przy każdym wywołaniu tej funkcji był wykorzystywany inny timer. Nie można używać jednego timera przy wszystkich wywołaniach funkcji. Pozdrawiam.
Tylko jak by to wyglądało w języku SCL? Nie musi być w SCL'u. W TIA można indeksować tablice zmienną w LAD i FBD. Wg mnie możesz wszystkie Twoje zmienne z numerkami zadeklarować jako tablice i całą logikę oblecieć pętlą albo użyć "prawdziwej" mocy FC lub FB i logikę zbiornika zamknąć w takim bloku (z wejściami i wyjściami) i wywołać kilka razy. Twoje...
W takim razie i zgodnie z tym co wcześniej napisałem, możesz go wywołać gdzie chcesz, bo służy tylko do włączania i wyłączania sprzętowego PWM. We zbudowanej pomocy znajdziesz dokładny opis (F1 na bloczku).
Parametr wejściowy funkcji to jest - DB_Vision-zmienna BLOCK_DB-TYP -Rozumiem że tutaj dać DB_ANY A co w takim razie z kodem poniżej ? wywołanie tej funkcji to -_Vision_db_1 to jest blok danych drugie wywołanie to np _Vision_db_2 Potem w kodzie funkcji mam napisane w scl #In.Prüf_LM := #DB_Vision.DX(114,3); co tu zmienić?
Po wcisnieciu monitor (ikonka-okulary) , pasek (prawy dolny róg) z zielonego staje sie szary.. i pojawia sie komunikat Instructions will not be processed... Tak jak kolega gagarin83 napisał, fc, fb, które chcesz podejrzeć nie jest wywołane w bloku OB1, OB 32-35. Albo ten fragment programu na którym umieściłeś kursor jest mijany przez skok w programie.
Ha, a jednak możesz zmienić: Prawym klawiszem myszki i wybieram "modify 0 to 1" Na chwilke zostanie zmieniony i po chwili wraca do ostatnich ustawien czyli symulator działa. A co do problemu markera: Spójrz jeszcze raz na swoje zdjęcie. Próbujesz "wymusić" działanie markera, ale jest on zarządzany przez Twój blok FC114. Najpierw przestudiuj działanie...
L P##IO4 ; Ładuj wskaźnik do argumentu #IO4 LAR1 ; Ładuj Address Register 1 aby wskazywał na #IO4 OPN #IN1 ; Otwórz blok danych (argument #IN1) ; przepisz dane z DBD0..DBD20 oraz DBW26 do pamięci lokalnej bloku L DBD 0 T LD 0 L DBD 4 T LD 4 L DBD 8 T LD 8 L DBD 12 T LD 12 L DBD 16 T LD 16 L DBD 20; uwaga: dalej DBW 20 i DBW 22 są używane osobno, ale...
Normalna praca sterownika PLC polega na cyklicznym wykonywaniu: odczytu wejść, sekwencji kolejnych rozkazów składających się na program oraz ustawieniu wyjść. Wyobraź sobie taki ciąg rozkazów umieszczony w OB1: 1. A = 1 2. B = 2 3. CALL FC1 4. B = 1 5. A = 2 6. CALL FC1 Wewnątrz FC1 zawsze zmienna A <> B. Podprogram (FC1) jest wykonywany tylko...
I co nie ma chętnych na odpowiedź ?, bo już mnie mierzi, i świerzbi ...:| Idzie długi weekend, weź się wyluzuj, wyjedź z "Warszawy" to ci nerwy przejdą.. Czy zamierzasz zapłacić za rozwiązanie twego zadania, za poświęcony czas i wytężanie umysłu, skoro nic nie kosztuje Twą Firmę pozyskanie stosownej wiedzy? Skoro jesteś nastawiony na płatności za wytężanie...
Witam, W zmiennych tymczasowych bloku OB1 masz datę i czas. Stwórz sobie funkcje FC ze zmiennymi wejściowymi, np: rok, miesiąc, dzień i wywołaj ją w OB1. Jako adresy wejściowe wykorzystaj zmienne tymczasowe z OB1. Tak będzie prościej. Pozdrawiam. PS: Co do Twojego sposobu, nie przepisuj z SFC do zmiennej tymczasowej, tylko wstaw w to miejsce zmienną...
O ile mi wiadomo, to takiego FC/FB nie ma, natomiast dość łatwo można coś takiego napisać samemu. W bloku OB35 wywoływanym np. co 100ms tworzysz rejestr przesuwny i w każdym wywołaniu usuwasz najstarszą wartość, i dodajesz najnowszą, a pozostałe przesuwasz o jeden indeks. Z takiego ciągu np 10 wartości (czyli 1s) liczysz średnią. Przesuwanie wartości...
Załączyłem program z 3 timerami do lamp oraz jednym pomocniczym do braku napięcia. Ten ostatni nietypowo, zanegowany i wogóle, bo nie chciało mi się robić bloku FB dla TOF. Jakkolwiek dla Ciebie najważniejszą informacją jest to, że wywołania różnią się od siebie blokiem DB-instance. Czyli blokiem (pamięcią, stosem) odpowiadającym danemu wywołaniu funkcji...
Mam prosty (wydawać by się mogło program) mam 8 czujników, kontrolujących np narzędzie podczas obróbki. Niektóre można dezaktywować (program z OP) i nie używać. Po zabraniu któregoś z narzędzi, winien się odliczyć czas po którym lampka zasygnalizuje, że czas operacji dobiegł końca. Z OB1 wywołuje blok FC1. W FC 1 w LAD jakieś warunki logiczne, np. początek...
Funkcja (u Siemensa FC) działa tylko na podstawie swoich argumentów wejściowych i wylicza argumenty wyjściowe. Nie przechowuje informacji (tzw. "stanu") pomiędzy wywołaniami w kolejnych cyklach. Ta sama funkcja może być użyta w wielu miejscach w programie jeśli jest taka potrzeba. Przykład: "Policz średnią z trzech liczb". Blok funkcyjny (u Siemensa...
W gwoli wyjaśnienia: Powyższy temat założyłem aby dowiedzieć ile czasu zajmuje sterownikowi dostęp do zmiennej tymczasowej (danego FC) , a ile dostęp do bloku danych DB. Dziękuje użytkownikowi Markos80 za szybko odpowiedz i link do dokumentu. Na stronie 60 znajduje się rozdział: "Loading the Addresses and Operands", który po części odpowiada na moje...
A jak stworzyć ten plik w sekcji data plc typ w odniesieniu do screenu 4 na wzór screenu 3 Sprawa się ma tak w jakieś tam funkcji która będzie wywoływana 7 razy jest wykorzystywany blok komunikacyjny np do wysyłania TSEND .Z każdym wywołaniem tej funkcji zmienia się cel wysyłania czyli np inne parametry inne dane do innego urządzenia. O ile w 300 można...
Witam Mamy w firmie problem z poniższym programem. Pisany w STEP7 v5.4 SP3, uruchamiany na S7-300 i VIPA 300. //NOWA DOSTAWA A( L "DB607 - DOSTAWA".MATERIAL L 0 >I ) A( L "DB607 - DOSTAWA".SILOS L 0 >I ) A( L "DB607 - DOSTAWA".ILOSC L 0.000000e+000 <>R ) = #DOSTAWY //BRAKI W DANYCH A(...
Witam. Pisze program w którym ma być obliczana kinematyka odwrotna manipulatora + mierzenie cykli sterownika. Program składa się z kilku funkcji (FC) , wszystkie zmienne umieszczone są w bloku DB1. Utworzona jest także funkcja w której są wywoływane pozostałe w odpowiedniej kolejności. Nie wiem jak sprawdzać poprawnie #OB1_PREV_CYCLE w SCL więc blok...
Sorki ale w tym temacie wymiękam. Możecie troszeczkę uściślić. Z tego co piszecie muszę wywołać funkcję w której jak odpalę ten bloczek to będą do podania dane które opisujecie wcześniej. Ja rozumem to tak. Dodaję w Blokach FC105. Następnie wywołuję ją w OB1 a jak wejdę w FC 105 to powinienem podać dane. W górnej części " interfejs" podaję IN, OUT,...
Witam, Czy da się ustawić wywoływanie bloku OB 35 na zadany czas? A dokładniej chciałbym ,aby wykonywana w nim funkcja wykonywała się cyklicznie w OB35 gdy spełniony jest jakiś warunek np: OB 35: Nw1: A Q125.7 Call ,,moje FC" Czyli na czas q125,7=1 chciałbym wykonywać FC. Zabronione jest publikowanie wpisów przedstawiających problem, bez podania wystarczającej...
Jak masz tą listę rozwijaną na górze w programie Interface (In, out, inout, stat, temp) Wiedz o tym że jeżeli chcesz mieć wyprowadzenia to na IN deklarujesz sygnały które są potrzebne zewnątrz na OUT sygnały które chcesz wysłać na zewnątrz INOUT to sygnały które zostaną odczytane, a następnie zapisane wewnątrz (FC,FB) i dalej wychodzą na zewnątrz STAT...
Witajcie! Zaczynam prace(nauke) na PLC (s7-300) i postawiłem przed sobą taki prosty problem. Chciałbym zrobić prosty układ reg temperatury i wykorzystać do tego algorytm PID. Układ będzie się składać z czujnika Pt100 i małego wiatraczka do komputera. Wiatrak będzie się włączał gdy temperatura z czujnika przekroczy wartość zadaną. Chciałbym, żebyście...
A czy można coś takiego zrealizować w inny sposób? Mam na myśli zrobienie np. funkcji FB i przekazanie do niej jakiegoś DB ? W dokumentacji widziałem, że można tak robić np. z obliczeniami, do jednej funkcji przekazywano w dwóch networkach dwa bloki z danymi do przeliczenia. Czy można coś takiego zrobić przy użyciu DB? Oczywiście, możesz zdefiniować...
Na piechotę wygląda to tak. Do FC1 wrzucasz dane wejściowe: DB_dane - blok danych MD_pomiar - wynik ostatniego pomiaru dobrze byłoby mieć też M_start - bit wywołania funkcji M_koniec - koniec zapisu danych Jeśli nie umiesz z funkcją to bierzesz przedostatnia wartość z DB_dane i zapisujesz jako ostatnia i tak analogicznie do początku gdzie będziesz miał...
Zmienna przypisana do cewki ma stan taki jak wynika z logiki całej lini. Jak 0 to 0, jak 1 to 1. Cewka ma 2 wady: - ostatnie wywołanie w skanie nadpisuje każdą inną akcję na danej zmiennej - szczególnie zmiennych fizycznych Q - użycie jej wewnątrz skoku lub w funkcji (FC, OB) wywoływanej acyklicznie nie gwarantuje skasowania ustawionej zmiennej. S,...
Do aktualizowania DB Instance, czy wywołań FB jest fajne narzędzie: Check and Update Accesses Command Po otwarciu OB,FC,FB w zakładce FILE masz tą funkcję. A co robi dokładnie - za helpem STEP7: This menu command allows you to check all addresses for type compatibility and highlight any errors in red. Instance data blocks are updated or restructured....
OK dzięki. Ja zrobiłem to trochę inaczej, na blokach. Napiszę, może komuś się przyda. Wstawiłem 3 bloki do programu FC1. OB100 darowałem sobie, nie wiem czemu ale po wykonaniu w OB100 utworzenia bloku kolejne funkcje nie widziały utworzonej struktury. Na pewno można to zrobic bardziej kompaktowo, na FB nie FC jednak mi tak było jakoś jaśniej na początek....
Rzecz w tym, że nie podejrzysz. Albo - będziesz do celów testowych blokował wywołania których nie podglądasz, a odblokujesz, kiedy będziesz pewien prawidłowego działania testowanego FB, albo - zmienisz strukturę programu, tak aby nie wywoływać FB2 z FB1 więcej, niż 1 raz. Z tego, co wiem, tego problemu się nie da inaczej obejść. Siemens w odróżnieniu...
przylacze sie do watku i zapytam jak ustawia sie generatory w step7/sterowniku s7-400 np.: gen_1hz, 2hz, 5hz itp do komorek pamieci M0.1 M0.2 ... u mnie w sterowniku jest takich generatorow podstawowych kilka i uzywam ich odczytujac te komorki pamieci. czy dobrze kojarze ze sterownik oferuje w swoim sprzecie takie podstawowe czasy? W HW Config, properties...
W S5 jest zawsze aktywny jeden DB. W funkcji masz DB10 i DB11. Wobec tego w zależności od miejsca w funkcji będziesz używał obu. Blok aktywny DB zaczyna się od instrukcji A DBxx. Następne A DBxx zmienia blok danych. Te instrukcje są dla mnie mało-czytelne, ponieważ zwykle używałem opisu "międzynarodowego" a nie odkryć czysto-niemieckich. Dla mnie za...
https://obrazki.elektroda.pl/3882937500_... WiFiManager to biblioteka oferująca gotowy system parowania z naszym WiFi a jej konfiguracja to raptem kilka linijek kodu. Parowania dokonuje się w trybie AP (sieci WiFi emitowanej przez ESP) a potem, po podaniu namiarów na naszą sieć, system sam je zapamiętuje i korzysta z nich przy kolejnych...
wywołanie vidos wywołanie userform unifon wywołanie
izolacja galwaniczna układ elektrownia wodna regulator lampa jarzeniowy
Dodatkowa blaszka w ładowarce RYOBI - funkcje i zastosowanie Jak wymienić proszek i chip w drukarce Lexmark E120 oraz zrobić reset?