Musisz chyba jeszcze raz przeczytać to co napisałeś i zastanowić się, o co Ci chodzi :-> Mogę się zabawić we wróżkę i wywróżyć, że zapewne chodzi Ci o wskaźniki. Wskaźnik to 4-bajtowy adres (podwójne słowo). Jeśli masz kilka bloków takich samych danych, to możesz posługiwać się numerem bloku, wyliczać adres bloku i dobierać się do danych. Pod wyliczonym...
Wie ktoś może jak zamienić normalny wskaźnik w step7 na any? pozdrawiam Łukasz
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...
Witam, proszę o pomoc w wyjaśnieniu następującego fragmentu kodu w STL , wrzuconego jako pierwsza sieć w kodzie LD: L zmienna typu DINT DB1.DBD1 T #Zmienna - interesuje mnie ten zapis, standardowo oznaczający zmienną lokalną W którym miejscu powinna być zadeklarowana, jeśli w ogóle ? Kolejna sprawa to kwestia wywoływania zmiennych systemowych, takich...
Mam następujący problem: W dość dużym projekcie sporo bloków jest napisanych w SCL. Prawie wszystkie po otwarciu są automatycznie kompilowane na STL a tylko dwa mogę otworzyć i widzieć w SCL-u. Co więc trzeba zrobić aby wszystkie bloki napisane w SCL można było widzieć w SCL-u ? Po skompilowaniu pojawiają się instrukcje w STL które dotychczas nie występowały...
Sprawdzałeś to w PLC? Wg mnie pójdzie w stop tak samo jak program z wiadomości [url=]#1. W nawiasie kwadratowym trzeba podać wskaźnik. Żeby z liczby zrobić wskaźnik trzeba ją przesunąć SLD o 3.
Witam. Mam kłopoty z zainstalowaniem programu WinCC v6.0. Program Simatic Step7 v5.4+SP3+HF1 zainstalowałem wcześniej bez problemów. Natomiast instalując potem WinCC v6.0, po około 60% przeprowadzonej instalacji, wyświetlił się komunikat, że niepotrzebna jest instalacja składnika "Automation License Manager", bo w systemie Windows XP istnieje już nowsza...
Dzięki za odzew. Jeszcze raz przedstawię problem. Funkcja FC daje mi 8 wyjść typu BOOL od P0 do P7, a ja chce to złożyć w jeden bajt PM. Co musze zrobić? 1. Zamiast wyjść zrobic TEMP, to jasne . 2. Zrobić sobie zmienną PM_tmp typu byte, jasne 3. Network1: MOVE PM do PM_tmp OK, rozumiem. 4. Network2: |---|L0.0|---(L0.1) i tu nie rozumiem. Jeżeli L(0.0)=1...
Witam, Chciałbym wrócić jeszcze raz do tematu zapisywania wyników do bloków danych z wykorzystaniem wskaźnika. W moim programie chciałbym zapisywać aktualną prędkość obrotową silnika do DB tylko jakoś nie udaje mi się tego zrobić. Przy wywołaniu funkcji zapisującej do DB OPN DB 10 L MW 12 T DBD [DBD 2] L DBD 2 L P#2.0 +D T DBD 2 zostaje wykonany...
Witam, Niestety nie podałeś wszystkiego. Operacja "DO" jest to otwarcie wskaźnika zawartego w tym wypadku w FW 226. Według opisu chodzi o przerzucanie słów w bloku DB. Istotne jest jeszcze co jest ładowane do FW226 i FW228. Podaj cały bloczek a ja go przepiszę na S7. Pozdrawiam,
Witam Kod jest ok. To że w cross-ref. pokazuje jako wolne to nic nie znaczy :-) Jest jeszcze takie coś jak wskaźnik Any i adresowanie pośrednie. Tego nie wykryje żadne cross-ref bez analizy programu. Możesz przekazywać do funkcji numer DB,M,T,C jako liczbę int. I takie coś musisz już poszukać sam w programie. Pozdrawiam
Powinieneś poczytać o adresowaniu pośrednim, wtedy byś zrobił ten program tak na szybko. Wskaźnik do adresowania mamy 16 bitowy (do timerów, liczników, bloków danych) - liczba INT. Drugi mamy 32 bitowy. jak widzisz mamy na 3 ostatnich bitach nr bitu, dalej nr bajtu. Najprościej, wpisując np 7 to dostaniesz adres 0.7 Jeżeli zrobisz SLD 3 to 7.0 to tyle....
Witam, mam nietypowy problem dotyczący dostępu do danych zapisanych w DB. Mam stworzoną strukturę z tablicą 70 elementową, w której zapisane mam pozycje na osi liniowej, do których dojechać ma napęd. Chciałbym uzyskać dostęp do dowolnego elementu tablicy adresując zmienną po indeksie (np. pozycja 7 to 7 element tablicy) tak, abym mógł podmieniać pozycję...
------------------------ L DIB Aby w pełni zrozumieć, o co tu chodzi, musisz sobie przyswoić informacje na temat wskaźników w Step7. Ten kod to nic innego jak kopiowanie bajtu z bloku danych DI do bloku danych globalnego i dodanie do niego offsetu o wartości 8 . ------------------------ OPN DB Otworzenie Bloku DB o numerze zawartym po zmienna #localS_DB...
Problem w pewnym stopniu rozwiązałem tzn. nastawy wyliczone prostymi metodami czyli m.in. Zieglera-Nicholsa nie nadawały się do regulatora umieszczone w PLCsim (blok FB41) prawdopodobnie problem z opóźnieniami wynikającymi z komunikacją między matlabem, a PLCSim. Nastawy wyliczyłem minimalizując wskaźnik jakości (całka z kwadratu uchybu). Jednak i one...
Nie wiem na jakim poziomie w Step7 jesteś. Po zapisaniu tych pięciu mam komendę która pozwala mi nadpisać już zapisane dane od początku A ta komenda nie robi przypadkiem wyzerowania wskaźnika? Chcę mieć wybór ilości zapisywanych "komórek" No to wywołuj komendę która pozwala Ci nadpisać już zapisane dane od początku dopiero jak wskaźnik będzie na elemencie,...
Zmieniło się coś w temacie ? Przykładowo jeśli mam blok w którym na wejściu mam zadeklarowaną tablicę typu INt to w starym step7 dla s7-300 bez problemu jak podam wskaźnik do tablicy to ten numer przejdzie czyli np. P#DB1.DBX2.0 ale jeśli chcę to samo powtórzyć dla s7-1200 to niestety już to nie przechodzi. Czy poza peek/poke można jakoś inaczej podać...