Wcale ci nie odpada. Bo jak mówiłem każdy string i tak kończy się zerem. A widzę za za dużo zaczynam teoretyzować i kombinować. Weź jakiś kurs przykłady i je realizuj bo inaczej do niczego nie dojdziesz.
Zobacz tutaj: https://support.automation.siemens.com/W... a w załączniku ZIP z trzema dokumentami i przykładami. Niestety wszystko w języku angielskim, ale mam nadzieję że i tak pomoże.
Tutaj znajdziesz niezły opis adresowania pośredniego - Rkarcz [url=http://www.elektroda.pl/rtvforum/vi... Opcji jest kilka wystarczy poszukać :) Takie FC na szybko, myślę, że sobie coś dopasujesz.
Mam wrażenie ze nie rozumiesz idei adresowania pośredniego. Nie wiem czy będę w stanie to dogłębnie wytłumaczyć. Adresowanie pośrednie stasujemy generalnie tam gdzie wygodniej jest nam nie podawać adresacji w formie jawnej (wiem ze to trochę zagmatwane ale nie da się wyczerpać wszystkich przykładów gdzie stosować). Oczywiście często można zastąpić adresacje...
nie wiem jak codevision ale w gcc chyba nie da sie tak nisko zejsc zeby wybierac tryb adresowania w instrukcjach, to juz kompilator wybiera sobie , w kodzie mozna sobie tylko napisac cos w stylu: a = *wsk++; *(--wsk) = a; i miec nadziej ze skompiluje sie tak jak chcemy lub gdzie potrzeba szybkiej procedury to w asmie napisac. Ja tam pamiec wewn/zewn...
Ładuj bit przesunięty o 2 bity w górę od adresu znajdującego się w rejestrze adresowym AR1 w chwili wykonywania instrukcji. Czyli praktycznie ładuj bit 02 ze słowa wskazanego przez AR1. (rejestr wskazuje co prawda na bit, ale zawsze się tak go ustawia, aby był to bit zerowy kolejnego słowa lub bajtu) Numer DB jest również wskazany przez ten rejestr.
Tak, jak w załączonym wycinku z instrukcji, dodając (at) przed nazwą zmiennej. RX to PACSystem CPU i też obsługuje adresowanie pośrednie.
STL: http://support.automation.siemens.com/WW... Adresowanie pośrednie: http://support.automation.siemens.com/WW...
adresowanie pośrednie z użyciem wskaźnika Pointer np. A M[AR1, P#0.0] Używasz w wielu miejscach bity od 150.0 do 150.7 a do żadnego nie ustawiasz. Czy te bity nie robią za taktowanie z pewną częstotliwością?
IMHO przyczyna leży całkiem gdzie indziej. Może procek się nie wyrabia. W przypadku zmiennej globalnej, na etapie konsolidacji jej adres jest znany, a więc dostęp może być przez adresowanie bezpośrednie. W przypadku zmiennej na stosie prawdopodobnie (nie wiem, domyślam się, nie chce mi się sprawdzać) zachodzi adresowanie pośrednie. Być może z dodatkowym...
Szkoda, że nie chciałeś się dokładnie zapoznać z data sheet dla xx8xC52... 1. Licznik T2 może zliczać impulsy z wejścia T2 (P1.0), a wejście T2EX (P1.1) może służyć do zmiany kierunku liczenia lub generowania przerwania na opadającym zboczu. T2EX może też być wyjściem sygnału o programowanej częstotliwości. 2. Tak, dostęp do górnych 128 bajtów RAM jest...
Do takich rzeczy najlepszy jest [url=http://iat.fs.cvut.cz/109/files/S7/... Na początku wydaje się ciężki ale warto. Jedziesz po wszystkich wartościach i porównujesz z wartością do tej pory maksymalną. Możesz wykorzystać wskaźnik albo adresowanie pośrednie. I w takich przypadkach jak ten można(należy) wykorzystać skok do tyłu.
mov wX, [wY+wZ] adresowanie pośrednie z offsetem. Wcześniej musisz do wY załadować adres RxBuf, a do wZ - RxPtr offset (bajtowy!) w tablicy. Co do wykorzystania zmiennych z C w assemblerze, to - jak już zauważyłeś jest to problematyczne, ale gdy próbowałem to zrobić, to nie było problemu... Lektura dokumentacji do kompilatora C30 wystarczyła. 4\/3!!
Najlepiej użyć do tego jeden z rejestrów indeksowych (R0, R1). Najpierw ustawiasz sobie adres bufora RAM, w rejestrze np. R0: MOV R0,#50 ;WPISZ DO REJESTRU INDEXOWEGO ADRES RAM W programie obsługi przerwania od szeregowego piszesz: MOV (at)R0,SBUF ;ZAPISZ ODEBRANY BAJT DO RAM INC R0 ;ZWIEKSZ ADRES RAM CJNE R0,#58,PR_GOTOWE ;JESLI TO BYL 8 BAJT, TO GOTOWE...
Bo, moim zdaniem, powinieneś adresować bufor pośrednio. Np. tworzysz sobie bufor od danego adresu. Adres zapisujesz do R0 i potem adresujesz np. mov A,SBUF mov (at)R0,A inc R0 Wówczas R0 jest Twoim wskaźnikiem do danej komórki bufora. Można zdefiniować jeszcze stałe np. BUFFER_START i BUFFER_END, które będą adresami początkowym i końcowym bufora, co...
L DBNO // zaladuj do akumulatora numer aktywnego (otworzonego) globalnego DB T MW20 //zapamietaj w MW 20 otworzenie odpowiedniego DB (adresowanie pośrednie) L 20 T "DB Nr." //np. MW100 AUF DB ["DB Nr."] // otworzenie DB 20 Zapoznaj się również z: TDB // zamień global z instanz L DBLG //długość DB globalnego L DILG // długość DB instanz L DINO // numer...
------------------------ 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...
Witam, potrzebuje napisac blok funkcyjny (FB) ktory bedzie zbieral dane z wejscia analogowego i zapisywal je do kolejnych obszarow pamieci w bloku danych (DB), przewaznie takie cos robi sie przez adresowanie posrednie; w sterownikach s7-300 wiedzialbym jak to zrobic ale w s7-1200 sa jakies dziwne wskazniki i nie moge znalezc nigdzie przykladu jak by...
Jaki masz typ procka ?
jak wyżej w temacie. Na czym to polega w sterownikach PLC??
Witam. Rn oznacza nazwę rejestru np. R1, R2, R3. Rejestr znajduje się pod jakimś adresem w pamięci uC. MOV Rn, #dana powoduje wpisanie do rejestru o nazwie Rn danej o nazwie dana np. Mov R5, #22h. A to akumulator, symboliczna nazwa rejestru tak samo jak R1. Nie jest to zmienna Mov A, Rn oznacza wpisanie do rejestru A (akumulatora) zawartości rejestru...
Ok dzięki, poczytam o tym. Rozumiem że poprzez adresowanie pośrednie odnosimy się do pamięci. Czyli np. dana w r0 wskazuje na miejsce w pamięci. Nie za bardzo rozumiem jak pozapisywać te dane w pamięci a potem je poprawnie odczytać. Przecież jak odczytam dane wskazane przez r0 to będzie jeden bajt (czyli moja jedna liczba), gdzie przechować resztę...
Witaj, jeżeli masz w oknie wartość typu byte to do bloku zwracana jest liczbowa 0-15. Na dole przykład z konfiguracją dla zmiennej w bloku typu string. http://obrazki.elektroda.pl/1358429400_1...
Moze wiecej informacji na temat PLC uzyskasz na forum elektrody zatytuowanym AUTOMATYKA. pozdrawiam
poprawnie jest: LAR1 P#1.0 // adres źródłowy L #zakres_danych skok: T #zakres_danych ........ ....... ....... L #zakres_danych LOOP Skok
o ile sterowanie Mitsubishi programuję metodą drabinkową (mam zresztą do wyboru drabinka lub ST) to w Step7 mogę się "wyżyć". Zaczynając w S7Graph - główny przebieg procesu, AWL=ST obliczenia,adresowanie pośrednie,transfery,skoki, FUP- proste układy RS,& > itp. oraz niekiedy SCL-okrojony Pascal- logiczne powiązania (np. winda) oraz konwertowania liczb...
Rozumiem że chcesz złożyć charakterystykę z linii prostych o współrzędnych zapisanych w DB. No to generalnie nie ma większego problemu. Wyznaczenie charakterystyki z dwóch punktów nie stanowi problemu. Znalezienie w której części charakterystyki jesteś też nie jest problemem. Jakbyś chciał zrobić to ładnie z automatu żeby program sam wybierał odpowiednią...
poszukaj na forum - "adresowanie pośrednie"
Masz do niej dostęp poprzez adresowanie pośrednie ((at)Rn).
ale możesz przeanalizować tworzenie ANY-pointera w podanym przykładzie albo zastosować LOOP oraz adresowanie pośrednie.
No i jak wspomniałem jest rewelacja :D . Dzięki. Właśnie takie adresowanie pośrednie potrzebowałem . Dzięki.
Podstawowy Zaawansowany Na którym kursie było dokładnie omówione adresowanie pośrednie ?
A,B,C w porządku. odp D: C to jest akumulator bitowy i nie ma wpływu na A. mov 1, #ah do komórki o adresie 1 wpisuje liczbę Ahex mov R0, #1h do rejestru R0 wpsiuje 1 mov A, (at)R0 przepisuje wartość danej która znajduje się pod adresem zawartym w rejestrze R0 do akumulatora. Czyli a akumulatorze pod koniec mamy 0x0A. (at) oznacza adresowanie pośrednie....
Poszukaj na forum "adresowanie pośrednie". Chociażby to [url=http://www.elektroda.pl/rtvforum/to...
zasadniczą różnicą jest to, że przez rejestry jest możliwe adresowanie pośrednie, czyli wartość w rejestrze wskazuje adres danej, są to rozkazy z (at)
AAA i jak pisać językiem ST w stepie. Jak mam miec go ustawiony na STL?? Czy może jakoś inaczej się go uruchamia? Musisz posiadać Step7 Pro lub rozszerzenie do Stepa (dotyczy to również S7Graph i S7HiGraph). Reszty dowiesz się z filmu. Co do timera to wyczytasz z pliku pdf (jest to wyciąg z manuala,który jest instalowany standardowo z programem -rozszerzeniem.Możesz...
W pytaniu chodziło chyba o co innego (tryby adresowania). Sposoby adresowania to np. natychmiastowe, bezpośrednie, pośrednie i rejestrowe.
Witaj. Opisz dokładniej krok po kroku co te rozkazy mają robić. Napisz do czego to potrzebne i w czym chcesz to wykorzystać.
sprawdzałeś ? Pomyśl jeszcze raz Sprawdziłem przed chwilą i działa. Nie wiem jak funkcjonuje reszta programu, ale adresowanie pośrednie jest rozwiązane poprawnie. Nawiasem mówiąc, wydaje mi się, że kolega mariusz.sek nie zauważyłby błedu w kodzie, gdyby kolejność bajtów nie była w Simaticu zamieniana. Tak wynika z opisanego zachowania sterownika.
Jeśli zmienne nie są zadeklarowane jako tablica to nie można ich indeksować. W pętli pokazujesz nazwę zmiennej w cudzysłowach, więc to jest po prostu nazwa (TIA dopuszcza znaki specjalne w nazwach zmiennych). Pozostaje Ci przebudowanie bazy na tablice albo adresowanie pośrednie. Pokaż wygląd tej bazy, jak sugeruje elektryku5 i się może coś wymyśli.
Jak wyżej. Popieram. Ale jeżeli chcesz uparcie trzymać się swojej formułki czy.tekst() to w niej też zastosuj adresowanie pośrednie jak w przykładzie kolegi marek003
W 10.5 można tylko pisać bodajże w LAD i FDB. Nie ma obsługi tablicy jako takiej. Tylko powyższe bloczki zapewniają adresowanie pośrednie. Bloczki zresztą są w kompilatorze przez pomyłkę i nie ma ich w helpie.
Witam Jeżeli wyjścia są wykorzystane przez adresowanie pośrednie np: = Q [AR1,P#12.0] to w cross-references ich nie zobaczysz niestety. Trzeba ręcznie je wyszukać w programie. Pozdrawiam
ad. 2. W asmemblerze MC68k :], a co? jak dowolny, to dowolny :] (asm x86 nie znam za bardzo) Założenia: argument funkcji podawany jest przez stos (wskaźnik stosu - rejestr A7, stos rośnie w dół) Wartość (wskaźnik) zwracana jest w rejestrze D0. Reszta rejestrów pozostaje niezmieniona. Za obsługę stosu odpowiada funkcja wywołująca, więc po powrocie z...
O kurcze, lata świetlne już nie miałem do czynienia z asemblerem dla 68K. :) I zdążyłem zapomnieć o "zakresach rejestrów"... 68K to jest procesor/rdzeń klasy CISC i niektóre instrukcje mają dość rozbudowaną funkcjonalność. Szukając dokumentacji asemblera, szukaj dla całej rodziny MC68K; tu masz przykłady: [url=https://www.google.com/url?sa=t&rct...
ciekawe jak zrobić w LAD adresowanie pośrednie. albo jak zrobić przeszukiwanie tablicy elementów. myślę, że jak ktoś programuje w Siemensie S7 rzeczy bardziej zaawansowane to używa STL lub innych języków i importuje do S7
87C52 miał 256B RAM a SAB 80C515A 1KB RAM. Oba obszary SFR i RAM są rozróżniane poprzez sposób adresowania. W 87C52 obszar SFR 0x80h...0xFFh pokrywa się z dodatkowymi 128B RAM. Rozróżnienie gdzie trafi dana odbywa się za pomocą trybu adresowania: RAM poprzez adresowanie pośrednie z adresem w rejestrach R0,R1 a do SFR poprzez adresowanie bezpośrednie....
Fakt, teraz zatrybiłem! Dobrze mówisz, używa się tylko podobno jest to niewskazane, chyba ze względu na możliwość jakichś niekontrolowanych zmian w komórkach pamięci? A jeżeli mówisz o asm pewnie chodzi Ci o użycie 3 trybów adresowania: pośrednie, bezpośrednie i natychmiastowe.
Witam Mam prośbe czy ktoś z kolegow doświadczonych w programowaniu s7 300 mogłby mi jakoś w miarę prosto wyjaśnić adresowanie pośrednie, oraz lokalne i globalne. A może ktoś ma dostęp do jakiś materiałów. Jakie są zatety takiego adresowania i kiedy i jakie sie stosuje.Z góry bardzo dziękuje za wszelkie wskazówki w tym temacie. Pozdrawiam
Moim zdaniem najlepiej wykonywać operacje na zmiennych pośrednio przez któryś z rejestrów-to z powodu możliwości dostępu do każdej komórki RAM-u, także tych ≥128÷256 (niektóre typy 51' posiadają taki właśnie obszar RAM-u, dostępny jedynie przez adresowanie pośrednie) Fajfer2
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ć...
Co masz na myśli mówiąc o zadeklarowaniu punktu jest to wpisanie go z palca czy wyliczenie z jakiś wartości, i czy kolejne wartości punktu służyły by do określenia trajektorii czy do informacji o ruchach jakie zostały wykonane? w stepie można by było stworzyć blok danych db do których można by pisać poprzez adresowanie pośrednie w języku stl.
wiesz, to wszystko zależy od asemblera, jakiego używasz - to zawsze jest szczegółowo opisane w dokumentacji. Wiem, że w asemblerze na C64 był używany symbol $, tylko już nie pamiętam, czy oznaczał adres, czy wartość (chyba wartość). Z gwiazdką spotkałem się raz i miała znaczenie dokładnie takie jak w języku C, czyli adresowanie pośrednie.
Witam, Dokładnie tak, miałeś błąd, bo zapisywałeś zero do nieistniejącego obszaru w bloku DB. Pozdrawiam. PS: We wskazanym przez Ciebie przykładzie masz wykorzystane adresowanie pośrednie, wskazujesz, gdzie zaczyna się blok DB lub od którego miejsca chcesz wpisać daną liczbę, oraz podajesz do ilu kolejnych słów chcesz wpisać to samo, i tyle :)
Stos może być "u góry". Nawet być tam powinien. Zwykle ustawiałem go na E0h, ale to oczywiście zależy od programu. Nie "wjedziesz" w SFR, ponieważ RAM od 80H może być tylko adresowana pośrednio (czyli przez rejestry R0 i R1). Nie dzieliłbym RAM'u na "banki" bo w 51'ce masz już 4 banki rejestrów i może Ci się mieszać. Zmienne można "upychać" pomiędzy...
Do przenosnika idzie dodatkowe zlacze ktore ma swoje odnosne wejscia cyfrowe. Niestety jest ich 16 i teraz nie wiem ktore powinny byc zwarte a ktore nie. To nie jest takie proste: "powinny być zwarte lub nie". Te sygnały niosą ze sobą jakąś informację i dobrze by było wiedzieć, jaką. Prawdopodobnie jest co najmniej: jadę/stoję, gotowy do jazdy/awaria,...
Adresowanie pośrednie. Ale to raczej nie w LAD, a w STL-u. Musisz mieć zmienną indeksową tablicy. Następnie ustawiać ją na odpowiednim miejscu w pamięci. A następnie wpisywać wartość pośrednio do pamięci poprzez zmienną indeksową. Są odpowiednie polecenie w STL. Zajrzyj do manuala. Szukaj po słowach kluczowych "indirect addressing".
Witam! DO to chyba jedna z "najlepszych" instrukcji w S5. Tak jak kolega powyższej napisał generalnie jest to adresowanie pośrednie. Np: DO DW15 - Oblicza adres pośredni na podstawie zawartości DW 15 np niech w niej jest 10 L DW 0 - oznacza załadowanie akumulatora zawartością DW obliczoną jako suma w tym przypadku 0 + 10 czyli tak naprawdę DW10.
Stosujesz adresowanie pośrednie mov r0,#mlodsza ;zaladowanie adresu młodszej mov a,(at)r0 ;pbranie wartosci zmiennej mov r0,#starsza ;załadowanie adresu starszej mov a,(at)r0 A jeżeli "młodzsz i starsza" są obok siebie to wtedy wystarczy inc r0
Witam Najsensowniejszym rozwiązaniem jest tu adresowanie pośrednie. Jednakże jeśli posiadasz dodatek SCL to jest tam możliwe proste odwołanie się do danego elementu tablicy przy pomocy indeksu np.: function FC10:void var tab : ARRAY[1..30] OF INT; index : INT; end_var begin index := 2; tab[index] := 5; end_function
Komunikacja: - Cała tablica będzie znajdowała się na sterowniku pierwszym - Sterownik drugi będzie pobierał ze sterownika 1 tylko jeden element z konkretnym indeksem (ten, który zgłosi chęć wyjazdu) - Sterownik ‘WJAZD’ będzie pobierał czas funkcją RTIME i przesyłał go do sterownika ‘WYJAZD’ aby zainicjować czasy na obu sterownikach...
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
1. Ten kod zeruje pamięć wewnętrzną. 2. Adresowanie pośrednie nie zezwala na dostęp do SFR 3. Jeśli procesor ma więcej niż 128 bajtów RAM to podane rozkazy bedą operować na tej dodatkowej pamięci. Np. procesory 8052 4. Jeśli nie ma tej pamięci to rezultat jest niezdefiniowany. To znaczy, że inaczej może się zachować procesor Atmela a inaczej Philipsa...
Xdata i pdata to obszary pamięci zewnętzrnej, adresowane odpowiednio 16 i 8-bitowo. Natomiast pamięć wewnętrzna to obszar data - pierwsze 128 bajtów (adresowanie bezpośrednie), oraz idata - całe 256 bajtów wewnętrznego RAMu (adresowanie pośrednie). Tak więc użyj idata a nie pdata.
Nie oczekuję zrzucania rejestrów na stos. Ale gdybym mógł zdefiniować dany SUBUNIT używając wirtualnych wejść wyjść i markerów zadanych parametrem (coś ala $1 $2 $3) to potem można by go wielokrotnie wykorzystywać nawet jeżeli by to było bardziej na zasadzie funkcji #INLINE niż podprogramu ... Także trzeba uczciwie napisać "FATEK nie ma podprogramów"...
Bardzo ogólnie to opisałeś. Który PIC, który kompilator, dołącz kod sprawiający problemy. W praktyce dla PIC16/18 wskaźniki do ROM są kosztowne, lepiej unikać gdy cienko z FLASH. Wskaźniki do RAM dla PIC 8-bit mogą ale nie muszą zwiększyć wydajność kodu. Dla PIC24/32 temat nie istnieje, te procki mają wydajne adresowanie pośrednie indeksowe i wskaźniki...
Najlepiej byłoby użyć do tego SCL'a. Możesz wtedy indeksować tablicę jakąś zmienną, np.: tablica[i]. W pozostałych językach musisz to zrobić statycznie lub skorzystać z adresowania pośredniego (indirect addressing). Przy czym w przypadku dodatkowych struktur UDT jest to trochę uciążliwe, bo trzeba dobrze liczyć bajty.
Ustaw tam narazie max 108 (6C) albo 6F a jak ci kiedyś zabraknie miejsca to sobie dodasz. Teoretycznie jak masz procka z dodatkowym 128B ramu to mozna tam ustawić nawet FF - bascom i tak odwołuje się do zmiennych poprzez adresowanie pośrednie (dla wtajemniczonych (at)r0 lub (at)r1) i dlatego program działa wolniej niz w asm. N aile masz nastawionego...
A rozumiesz, jak działa [url=http://pl.wikipedia.org/wiki/Intel_... adresowanie pamięci? Tutaj masz wariant zwany adresowaniem [url=http://pl.wikipedia.org/wiki/Intel_...
Może trochę nie w temacie ale: Ja złapałem sie za głowę gdy zobaczyłem assemblera AVR. Wydawał mi sie udziwniony, zagmatwany, no i ta liczba instrukcji ! A assembler AVR zobaczyłem znając dość dobrze assemblera MSP430. W MSP430 gdy chce załadować stałą do rejestru R4 pisze: MOV #2,R4 skopiować rejestr: MOV R5,R4 załadować do R4 zmienną z ramu: MOV Zmienna,R4...
W końcu sobie poradziłem bez kolumny pomocniczej - fajna łamigłówka W jednym arkuszu dwa przykłady z indeks'em i adresowaniem pośrednim ale zasada ta sama zaokrąglenie w góre podzielonego na pół numeru wiersza a później wyszukania. Mam nadzieje że to nie jest twoja praca domowa. :)
Witam, Wg mojej wiedzy nie da się wysłać bezpośrednio całego DB tak jak np. DP_SEND. W HW dodajesz GSD, gdzie deklarujesz sobie we/wy i jeśli DB jest mały to spróbuj dodać tyle QW/QD aby cały blok się "zmieścił" i kopiuj wszystko movem albo blkmov, jeśli DB jest za duży to spróbuj wysyłać np po bajcie albo wordzie wraz z indexem przez adresowanie pośrednie,...
Witam! Do tego typu „myków” służy adresowanie pośrednie za pomocą pointerów. Na stronach siemensa znajdziesz opisy i przykłady. http://support.automation.siemens.com/WW...
No to jest trochę zabawy. Rzeczywiście nie ma jawnie miejsca gdzie do DW7 byłoby wpisywane KH0040 ale jest blok FB20z takimi fajnymi instrukcjami jak DO (w wersji angielskiej) To tzw adresowanie pośrednie. Tak na pierwszy rzut oka po wywołaniu tego bloku (przez M98.3) następuje „przetasowanie” to znaczy krok po kroku przerzucane są wartość...
Wydaje mi się, że dyskusja jest dość akademicka. Języki do programowania w przemyśle nie powstały tylko po to, żeby było wygodnie na etapie projektowania. Ale też w fazie rozruchu, a najbardziej serwisu. Konia z rzędem temu, kto szybciej oceni czemu coś nie działa w jednym tylko networku napisanym nawet nie w C, ale w STL i dla porównania to samo w...
Wielkie dzięki!!! Na początku próbowałem robić przez adresowanie pośrednie i bezpośrednie, ale źle tworzyłem formułę. Piwko o 100% się należy. Edit: jeszcze bardzo proszę o wyjaśnienie co oznacza w formule [ WIERSZ()*3-4 ] lub [ WIERSZ()*3-3 ] w miejscu formuły 'nr.wiersza' (domyślam się, że pierwsza liczba określa 'skok co ile' ale jeszcze nie kojarzę...
kurcze, nie mam tego programu tutaj bo bym wkleił. Chodzi o to że bawie się tylko R0...R3(4?), potem zmienne i bity od 20h do 39h. reszta do samego SFR to bufor danych- wiec ten stos nie bardzo mam gdzie dać (procek to 2051). Tablice mam,ale jeżdze po nich tak jak mówiłem- conajwyżej bawie się R4. Byczek jest bardzo subtelny. Gdyby to był typowy bład...
Do "górnych" bajtów RAM-u , masz dostęp przez adresowanie pośrednie rejestrami R0 i R1. Np. chcesz odczytać/zapisać komórkę o adresie A0H. mov r0,#A0H ;wpisanie adresu do rejestru R0 mov a,(at)r0 ;przesłanie zawartości komórki o adresie A0H do akumulatora mov (at)r0,a ;przesłanie zawartości akumulatora do komórki o adresie A0H Natomiast używając adresowania...
Cześć, chciałbym poruszyć tutaj na forum pewne zagadnienie, myślę że jest to ABC każdego programisty. Mianowicie - w jaki sposób realizujecie funkcję programowania kroków procesu w sterownikach które np nie obsługują S7-GRAPH ? Zastanawiam się nad tym ponieważ mam do wykonania projekt o dosyć dużej liczbie kroków i do tego w pełni powtarzalny, problem...
Akumulatory to rejestry wewnętrzne procesora logicznego, do których ładujesz dane na których chcesz operować, a następnie wykonujesz na tych danych instrukcje. Są to operacje bardzo niskiego poziomu, sprowadzające się w zasadzie do samej konstrukcji procesora i wykonywania w nim operacji arytmetyczno-logicznych. Zmienne MD itd to obszary pamięci w których...
Witam Ostatnim czasem zgłębiam w ramach studiów język programowania SCL. Jeden z prowadzących zasugerował mi że w przewadze tego języka(nad LAD/STL/FBD) jest np prosta implementacja funkcji która ma następujące zadanie: -kopiuje stany wejść na wyjścia a ma wyglądać to mniej więcej tak jako parametr wejściowy funkcji podajemy rejestr od którego ma rozpocząć...
Witam, W S7 300/400 można "ustawić" wejścia w programie jeżeli fizycznie na wejściach modułu jest zero (dioda nie świeci). Jeśli w Networku 1 OB1 ustawisz dowolne wejście np: SET =I0.0 to począwszy od Networku 2, w programie wejście będzie ustawione na 1 pomimo, że w podglądzie zmiennych będzie 0 i fizycznie na wejściu też. Może ktoś "coś" namieszał...
Może chodzi o ortogonalność architektury (każda instrukcja może być wykonana na dowolnym rejestrze, nieważne czy to jest rejestr I/O, SP (Stack Pointer), PC (Program Counter) czy też rejestr ogólnego przeznaczenia (tak samo każdy rejestr może być adresowany pośrednio). Texas w swoim MSP chwali się taką architekturą dowodząc że ma najmniejszy kod wynikowy...
Pułapki nie powinno być :-) Pamięć M - to obszar markerów (flag) - dostępne są bezpośrednio w każdym sterowniku. Bloki danych DB należy wpierw zadeklarować i stworzyć ich strukturę, która może zawierać dowolne zmienne (od bitów, poprzez bajty, słowa, tablice itp. także różnych typów: int, real, string, time). Jest to tak jakby dodatkowy obszar pamięci....
Witam Jeżeli adresujesz pośrednio to musisz podać dać MOV R0,#01 wtedy zaczniesz adresować od R1. Nie możesz jednocześnie trzymać adres w R0 i daną z portu rs. Czytaj posty napisałem gdzie leżą rejestry Rx :D. Nie mam pojęcia co się zmienia w R3 i dalej, z programu wynika że nic nie powinno się zmieniać w tych rejestrach. Co do stosu to masz rację nie...
Jak coś jest zabezpieczonego to jest ikonka bloku z kłódeczką w eksploratorze i to się tyczy też bloków systemowych. Problem jest w tym że kod programu odwołuje się do funkcji, których nie ma napisanych przez twórcę ani nie są dostępne w grupie funkcji systemowych. A jeśli aplikacja działa czyli muszą być wgrane do sterownika. Co do wyjść i wejść to...
Nie jestem pewien co do tej ilości dysz, z testu wynika że jest 300dysz, natomiast w kolorze 78 liczyłem na teście i jest ich 120 na kolor. Co do hp45 to jest to dość dziwne, ponieważ jest 14 grup i nijak nie da się podzielić 300 na 14, poza tym skoro jest 300 dysz to adresowanie musi być pośrednie.
Witam! W projekcie, nad którym obecnie pracuję mam za zadanie zmienić system S5-135U z CPU 928B na S7 z CPU serii 400. W trakcie prac pojawiło się kilka problemów. 1. Oryginalny system S5 współpracował ze stacjami ET200U po sieci Profibus DP. Podczas konfiguracji sieci z jednostką S7, nie mam możliwości przypisania adresów 1:1 - karty wejść/wyjść w...
...procek to atmega8, rozdzielczość mam 8bit, taktowanie ADC 1000kHz, na dokładności mi tak bardzo nie zależy, jest wystarczająca ;) ważniejsza jest szybkość. Narazie stoję na takim algorytmie po wejściu do funkcji pomiaru: 1.Uruchom ADC w trybie ciągłym 2.Czekaj na wynik konwersji 3.Przenieś wynik z ADCH do którejś komórki SRAM 4.Czekaj na wynik konwersji...
Witam Z analizy programu wynika że jeśli chodzi o wyjścia używane są następujące: QB 0 QB 1 (również jako QW0 i współpracują z instrukcją „DO”) Q5.3, Q5.4, Q5.5, Q5.6, Q5.7 Q8.0, Q8.1, Q8.4 Q12.7 QW24 QB60 QB100 QB110 Nie ma więc w programie sterowania jawnie wyjściem Q7.7. Jednak zastosowano tu manewr adresowania pośredniego poprzez instrukcje...
Dzięki wszystkim za pomoc, ale postanowiłem obejść tą sprawę tworząc po prostu osobny arkusz. Niestety mimo tego nie osiągnąłem celu, który chciałem. Poprzez funkcje tablicowe wyszukuję zadanych dat, te zwracają mi numery przypisane odpowiednio do dat i zwracają mi odpowiednie dane, które następnie są możliwe do rozdzielenia na listy. Listy odpowiednio...
Witam Jeżeli program ma być wykonywany w przerwaniu cyklicznym OB35 i ma być to 10 pomiarów to można go uprościć: Sposób 1. Wskaźnik przechowywany jest w merkerze MD20 (musisz pamiętać , że przy ustawieniach domyślnych CPU merkery powyżej adresu 16 (włącznie) nie są podtrzymywane po restarcie CPU): OPN DB XX //Otworz Blok Danych pośrednio //Sprawdzenie...
No właśnie - ciekawe czy "prawdziwi programiści" też panują nad każdym taktem procesorów, które mają cache, 10 buforów sciągających 5 rozkazów do przodu, kolejne 10 buforów które sciągają dane asynchronicznie do 10 poprzednich i 5 poziomowego pipeline'a. W takich procesorach okazuje się na przykład, że specyficzne ułożenie rozkazów jest wydajniejsze...
Witam. Napisałem już trochę programów w życiu, ale -aż wstyd się przyznać- do dzisiaj nie rozumiem roli jaką odgrywają wskaźniki, nie potrafię ich używać, nie wiem do czego one służą, czemu z nich korzystać itd. Marcin Wskaźniki - no cóż, to takie twory, które potrafią bardzo ułatwić życie (czytaj programowanie), albo doprowadzić załamania nerwowego....
chciałbyś dynamicznie rozszerzać DB np. poprzez pośrednie adresowanie ARRAY. Niestety ,prostego rozwiązania nie znam. Możliwe by było: DB skopiować do temp_DB ---- SFC20 BLMOV DB zmazać ---- SFC23 DEL_DB nowy (rozszerzony) DB wygenerować ---- SFC22 CREAT_DB skopiować z Temp DB do DB ---- SFC20 BLMOV Temp DB löschen ---- SFC23 DEL_DB Należy przy tym...
Dziękuję serdecznie. Wiedziałem że jest to związane z adresowaniem pośrednim, ale nie dawałem formuły w cudzysłów i mi błąd wyskakiwał. Dzięki serdeczne jeszce raz. Pomogło!
Poczytaj o adresowaniu pośrednim.
Witam, Dotąd sobie radziłam z Excelem pisząc formuły, niestety nie mam zielonego pojęcia jak mogę usprawnić mój dotychczasowy plik. Wydaje mi się, że pozostaje tylko makro, a z tym niestety miałam niewiele do czynienia. Załączony plik składa się z dwóch zakładek. Pierwsza zakładka zawiera raport, druga stawki za przewóz. Kolumny od A do D to są własnie...
Witam, mam takowe 2 programy do napisania. Nie chce pisac głupot w programie, a ze zaczynam sie uczyc tego jezyka nie wszystko do konca umiem. Z góry dzieki za pomoc. Oto pierwszy program: 1) Zapisz dowolne liczby (najlepiej np. z zakresu od 2 do 10) do rejestru R3, R4, R5.Następnie dodaj zapisane rejestry do siebie i wynik zapisz w rejestrze R7 i na...
Myślę,że bez paru linijek z adresowaniem pośrednim się nie obejdzie.
pomiary pośrednie punkty pośrednie kanały pośrednie
schemat deutz agrotron mercedes rozdzielacz wtrysk skrzynka przekaźników
harman kardon firmware harman kardon firmware
Tacens Mars MP 500 - opinie i specyfikacja zasilacza Skuter inwalidzki nie działa - przyczyny i diagnostyka