Cześć, Musisz wyznaczyć sobie współczynnik przeliczania jednego bitu na cm. Np: na jeden bit przypada 1.8cm. Zakres użyteczny Twojej zmiennej mieści się w przedziale 40-255. Myślę, że dobrym pomysłem było była by zamiana wartości na przeciwne wtedy dla 10cm będziesz miał 0 a dla 80 będzie to wartość 215. Wystarczy później tylko przemnożyć przez uzyskany...
Witam. ... Freddy - twój plik też testowałem i wszystko ładnie wyświetla (litery) natomianst nie wiem jak za pomocą tego programu wyświetlić jakąś zmienną typu byte. Tak jak wcześniej pisałem wskakiwanie do podprogramu powoduje zbyt wolne zwiększanie wartości zmiennej którą zmieniam z przycisku. Czy można ten cały podprogram przenieś do głównego programu...
Witam, W panelu definiujesz Tag-a o typie zmiennej "Timer", adresie interesującego Cię timera z CPU, a następnie na jakimś ekranie wyświetlasz tego tag-a. Jeśli będzie problem z jednostkami, będziesz musiał zastosować skalowanie tag-a. Powinno działać. Pozdrawiam.
Jeśli to nie Ty dokonywałeś zmian w kodzie to odpuść. Widocznie to autor przesiadał się na 20 MHz z 8. Ale w takim razie prawdopodobieństwo błędu w tym miejscu jest dość małe. Wartości 1V, 4V i środkowe 2,5V to założenia projektowe - charakterystyka tego co ma dostarczać tor analogowy do MCU. Z nich plus ilość próbek, plus skalowanie wartości ADC, plus...
Jakie masz typy tych zmiennych? pom powinna mieć 32 bity - uint32_t albo unsigned long.
ET można czytać jako podwójne słowo (DWORD milisekundy), a w HMI zrobić skalowanie zmiennej.
Aktualizacja 12-09-2020 • poprawiłem sekcję dotyczącą pomiarów w HolmImpulse na bardziej kanoniczną • połączyłem sekcję dotyczącą dodatkowych uwag dotyczących tweetera • nowa sekcja dodatkowa dotycząca woofera i pułapek rezonansowych • kilka innych poprawek w starym tekście W kilku słowach, w związku z moimi próbami w kategorii DIY audio, dostaje różnorakie...
Twoje milisekundy razy 1000 i masz sekundy. Dla uściślenia, żeby z milisekund otrzymać sekundy, trzeba podzielić przez 1000 ;) Do każdej zmiennej w panelu można przypisać skalowanie liniowe. Można to zrobić w jej właściwościach.
Właśnie w swoim projekcie też bazuję na tym przykładzie, czyli mam ustawić dwa (chyba najlepiej) progi załączenia i wyłączenia przekaźnika w zależności od wartości zmiennej (int16_t)ret? Jeszcze moje wątpliwości budzi stała dosłowna SCALING_FACTOR 128. Co to jest i jak powinno się ją dobierać? Gdyż jej dobranie rzutuje na rezultat regulacji w dość istotny...
Ustaw potencjometr na "0", odczytaj wartość "Potencjometr" Ustaw potencjometr na "10", odczytaj wartość "Potencjometr" Przelicz tą wartość tak, aby dla "10" dała 5000, a dla "0" dała 0 Dodaj wartość, jaką chcesz, aby czasówka miała przy "0" na potencjometrze Wpisz tą wartość do zmiennej w IEC_Timer_0_DB_1.PT
PS. do drugiego kanału wystarczy zdublować zmienne mn. czas aktualny itp. oczywiście z dopiskiem na przykład ''czas aktualny 2 '' ? W najprostszym rozwiązaniu tak, na upartego można by korzystać z wspólnych przy założeniu że nie będziemy używać wielu przycisków jednocześnie, wtedy zaoszczędzimy te kilka bajtów w pamięci (cóż za herezja w 2021 roku...
https://obrazki.elektroda.pl/8472234500_... Masz konstrukcje zmiennej S5Time , na podstawie tego możesz wprowadzać zmienna z HMI. Pierwsze 12 bitów to wartość czasu zapisana w BCD, następne dwa to podstawa czasu 00 - 0.01s 01 - 0.1s 10 - 1s 11 - 10s
Nie za bardzo rozumiem o braku jakiedo polecenia Ci chodzi - sądze, że o konwersje DINT->INT - to fakt takiego nie ma, ale jak dasz MOVE z parametrem wejsciowym np. MD100 i wyjsciowym np. MW200, to dostaniesz w MW200 INT'a - czyli młodszą część MD100, a co przy wartościach DINT do wartości INT oznacza, ze zmieni ci się typ zmiennej Czy o to chodzi ??
Witam, Trzeba stworzyć Tag-a o adresie timera jaki Cię interesuje (format zmiennej TIMER), a następnie wyświetlić go w polu na ekranie. Oczywiście będzie to czas w ms. Aby mieć czas w s trzeba zastosować skalowanie Tag-a. Pozdrawiam.
Witam. Nazwa zmiennej sugeruje użycie wizualizacji w projekcie. Jeśli używasz np jakiegoś panelu (HMI) to zmienna jest pobierana z niego w postaci tagu i zapisywana w wymienionym bloku. Musisz zmodyfikować tag w wizualizacji, tam określa się limity. Pozdrawiam.
Przepraszam panowie że tak długo się nie odzywałem ale właśnie byłem na uruchomieniu tego mojego programu z kolegą który robił wizualizacje na in touchu no i linia prawie działa ale jest kilka problemów które wynikają z mojej słabej znajomości siemens i nadal mam parę pytań podsyłam też załącznik do mojego postu a nawet dwa i proszę o parę porad a konkretnie...
Nie rozumiem problemu: 100/1024= 0,09765625 wg mojego kalkulatora... czyli 0,09765625% to 1 próbka , mówiąc prościej liczba którą odczytuje Ci atmega z przetwornika razy to co wyliczyłem da Ci liczbę procent. Dokładność zawsze będzie ograniczona chyba że wyświetlisz 8 miejsc po przecinku... a w jakiej zmiennej chcesz trzymac ta wartosc ? chcialbym...
Ja rozumiem D, że to jest iloczyn stałej Kd i różnicy (błąd - błąd poprzedni). Jednak dalej nie rozumiem gdzie jest błąd w tym co ja napisałem:/ Nawet wgrałem to do procesora i chyba działa tak jak powinno. Gdy płytka z czujnikami jest w poziomie to wartość zmiennej output wynosi 126-128, gdy przechylę w którąś stronę to zmierza do 0 lub do 255, tak...
Jakiś fizyczny sposób załączenia przerwania timera przerwaniem od INT0 . Szukam i nie mogę znaleźć żadnych przykładów ani bardziej szczegółowego opisu jak to ugryźć , we wcześniejszych odpowiedziach nikt nie napisał dlaczego nie można używać delay w przerwaniu a w prostej wersji programu nie wpływało to na działanie. Teraz mam bardziej rozwinięta wersje...
Zadanie skalowanie wartości analogowej Do skalowania wartości analogowej służy standardowy blok funkcji SCALE CONVERT. Przykład Poziom wody w zbiorniku jest mierzony w litrach. Przetwornik pomiarowy przekształca wartość 500 litrów na wartość analogową 0-10 V. Następnie moduł analogowy przekształca wartość analogową na liczbę 0...27648. Ta liczba ma...
Przepływność 921600 można ustawić dla wyświetlaczy z DGUS. Model z Mini DGUS obsługuje do 115200. Dla modeli z pełnym DGUS można ustawić cykl pracy na 80ms co daje 12,5fps. Więc jest to wartość całkiem przyzwoita. Jeśli chodzi o zrobienie oscyloskopu to mini DGUS obsługuje do dwóch wykresów liniowcyh natomiast DGUS do 8. Jeśli byśmy chcieli robić FFT...
Czym i jaka wersją kompilowałeś, bo mi w WinAVR wyskakują same błędy!! :-( Najnowszą wersją WinAVR. W załączniku jeszcze raz to samo, ale kompletny projekt z Programmers Notepad. Przed chwilą sprawdziłem i kompiluje się tak jak powinno ('Make All' z menu Tools). Te procedury FFT mogą stwarzać problemy przy kompilacji, jak próbowałem ich pierwszy raz...
Witam, czy może mi ktoś wytłumaczyć jaka jest różnica pomiędzy wykonywaniem operacji na liczbach zmiennoprzecinkowych w przypadku procesora stałoprzecinkowego i zmiennoprzecinkowego gdy piszę program w C? Czy cos takiego jak "skalowanie zmiennych" dostępne jest z poziomu C czy to sprawa asemblera? Wiem tylko tyle ze problemy pojawiają się gdy chcę dodać...
Witam, Do poprawnego wyświetlania zmiennej typu Timer najlepiej użyć skalowania Tag-a i wtedy będziemy mieli czas w sekundach, a nie w ms. Pozdrawiam.
tak jest skalowanie zmiennych w wincc, tylko jako min i max mozna wpisywac liczby calkowite...
Witam !!! Do OP7 wystarczy wersja Lite ProTool'a. Jeżeli chodzi o programowanie to jest prawie intuicyjne :)) pod warunkiem, ze przebrniesz skalowanie zmiennych analogowych ( na starcie troche sie mozna zakrecic), przyznawanie ilości miejsc na wyswietlenie przeskalowanej zmiennej. W zasadzie jak zdobedziesz program to wszystko jest w helpie
Wszystkie wejściowe rejestry analogowe w sterownikach Horner (%AI) przechowują wartości całkowite, 32-bitowe (INT). Na screenie widać, że interpretujesz zmienną %AI2 jako liczbę typu REAL (zmiennoprzecinkowa, 64-bitowa). Stąd biorą się problemy z wyświetlaną wartością. Zadeklaruj zmienne jako INT i w bloku skalowania wybierz pracę na liczbach INT, a...
Ok. Zacznijmy więc od podstaw. Napisałeś ze Step 5 widzi to jako S5-115H (czyli wersja redundantna) ale czy tak jest naprawdę, jakiego procesora używasz. Blok wygląda na zabezpieczony jak blok Siemensa. Jednak wszystko zależy od typu procesora. Generalnie wygląda to na blok skalujący zmienną miedzy PLC a jakąś wizualizacją (może na PC) z tego też względu...
Użyj funkcji Scaling Values: FC105 ze standardowej biblioteki, z zakładki TI-S7 Converting Blocks. We wbudowanej pomocy znajdziesz opis jak działa i ogólnie takie takie. Na WinCCFlex, jeśli masz panel połączony ze sterownikiem w jednym projekcie, to po prostu tworzysz pole do wyświetlania, a zmienną można wyklikać z dowolnego miejsca w PLC.
Przecież w C jest dzielenie na integerach. Możesz pomnożyc okres przez np. 100 (jak chcesz w procentach), lub 128 czy cokolwiek innego, jak ci tzreba skalować i dzielić przez czas stanu. Uwaga na przekroczenei zakresów!! Być może zmienna przejściowa typu long.
Jakbyś mógł podać więcej szczegółów: -Stałe czasowe serwozaworu (ewentualnie charakterystyki częstotliwościowe powinieneś mieć) -czas próbkowania -wszystko na temat skalowania - typ zmiennych PIDa zakres możliwych wartosci. -czy istnieje zabezpieczenie przed WINDUP. - czas cyklu sterownika. Pytam bo siedzę głównie w Simensie i po prostu nie orientuje...
Witam. Pisze w asm ale idea taka sama: przykład dla wyświetlenia zmiennej z zakresu 0-32 na wyświetlaczu 16 znaków: 1. skalujesz zmienną "a" do postaci z zakresu 0-32 2. dzielisz "a/2" ( w assemblerze komenda div ab przy b=2 ) 3. wyświetlasz a pełnych kwadratów 4. jeśli była reszta z dzielenia (w asm b<>0) to wyświetlasz jeszcze pół kwadratu 5....
Rozwiązać to jedno ułożyć to drugie, jak widze zmienne a nie liczby to mi ciężko ruszyć
Ustawienia monitora. Wszystkie korekty czerni, wszystkie automaty, wszystkie boosty, skalowania, kontrasty, upłynniacze, wyostrzenia itp. Problem był też na Xboxie i PS5 więc to nie sterownik. Wyłącz wszystko, potem włączaj po jednej dodatkowej funkcji i będziesz widział kiedy problem się pojawi albo co z czym się gryzie. U mnie konkretnie problem był...
Ale Ty kombinujesz :) Ustaw wszystko w HW ( st. Celsjusza) i użyj SCALE!! :) http://obrazki.elektroda.pl/8142568600_1... PIW336 (PIW337) to wejście analogowe jednego z czujników zajmujące dwa rejestry. Potem dwa wejścia skalujące. (Ja wpisałem dla przykładowej termopary Typ. J) MD100 to cztery bajty przechowujące aktualna temperaturę...
W tagach nie ma żadnego skalowania włączonego. Poprzez podgląd zmiennych też pokazuje źle. Program do CPU i OP w załączniku. Jak co możesz popatrzeć. Może ty coś znajdziesz.
Sorki (at)rs6000 ale to fragment większego projektu który robiłem i nie bardzo mogę dać całość, zresztą jest w CAD i bez wektorowej grafiki będzie nieczytelny ze względu na zmienne skalowanie poszczególnych fragmentów. Jeśli chodzi o tranzystory to przy 5A/25V w zupełności wystarczą BD281 i KD502 tylko radiator na KD musisz dać.
Przebrnąłem przez ten kod :) Co do ogólnej organizacji kodu, to nie będę się wypowiadał, bo jest to rzecz subiektywna i nieco drażliwa ;) W mojej opinii nadużywasz typu float oraz operacji na tego typu zmiennych. W wielu miejscach można byłoby użyć typu uint32_t z odpowiednio skalowanymi wartościami - to nieco komplikuje kod, ale przynosi wymierne korzyści...
Adresuję %IW272 zmienną typu Int. Mam też napisany program w OB1 do skalowania, ale wydaje mi się, że już w tagach powinny się pojawiać jakieś wartości. Chyba że trzeba jeszcze dodać jakiś blok do wywołania wejścia analogowego? Mam tylko OB1 w tej chwili.
Wszystko jest w porządku - tak powinno być. Tylko ty wyświetlasz wartości w reprezentacji DEC, a powinieneś w w FloatingPoint (najedź nad monitorowaną wartość, prawy klawisz > representation > floating-point). Zobaczysz że jest dobrze. Ponieważ chciałeś przeskalować do zakresu ułamkowego, to dalej musisz się posługiwać tym co masz w MD30 za pomocą operacji...
[syntax=c]uint32_t newsample = (volume_coefficient *newbuffer[i] + (100 - volume_coefficient) *127)/100;[/syntax] [syntax=c]mainbuffer[0][i] = (2*newsample + mainbuffer[0][i])/3 ;[/syntax] Trzeba tak dobierać mnożniki żeby dzielniki były potęgą dwójki. Czyli w tym przypadku zwiększyć dzielnik ze 100 na 128, i tle samo razy zwiększyć mnożnik, czyli ze...
No to właśnie napiszę wprost - algorytm ten jest obecnie dosyć prosty właśnie dlatego, że rozmiar tablicy jest potęgą dwójki i X może mieć dowolną wartość z całego zakresu 32-bitowej zmiennej. Dzięki temu przeliczenia ("skalowanie") kroku na indeks i odwrotnie są bardzo proste.
Wygląda jakbyś miał błąd w założeniach, jeżeli piszesz 4-6 to nie powinno być więcej. Jak się spodziewasz więcej to musisz albo zmienić skałe, albo to co teraz daje Ci 1000 porównać czy jest większe niż 1000 i jeśli tak to nadpisać / obciąć / użyć dodatkową zmienną i ustawić 1000 (czy inne twoje maximum).
Witajcie Regulator PID świetnie się sprawdza. Na tronach Atmel’a można znaleźć przykładowy kod - Google: „Atmel ATMEGA PID”. W tym przykładzie kod regulatora proporcjonalnego jest błędny, można zmienić skalowanie na rzecz zmiennych np. typu float, które dla większych ARM nie stanowią problemu. Regulator PID włączam dopiero gdy temperatura...
Witam! Odświeżam temat. Hmm nie mam możliwości edycji biblioteki scale.mwl by zmienić wewnętrzną formułę czyli nazwać inaczej zmienne. Czym ewentualnie zedytować ten bloczek?
Przykladowo jak bym musial obnizyc napiecie 10 razy to wtedy zgodnie z rysunkiem bym musial zastosowac rezystory R1 - 10kohm R2-1Kohm. Dobrze mysle? Tak, mniej więcej to jest zrobione w ten sposób. I jeszcze pytanie po ile wat maja miec takie rezystory? Moim zdaniem 1/4W bez problemu starczą, ale na wszelki wypadek proszę użyć 1/2W. Wedle tego rysunku...
Witam potrzebuje pomocy z tym programem.Ponieważ się kompletnie nie znam jak zacząć rysować a raczej już mam jakiś rysunek w formie JPG i teraz mam go zeskalować i zwymiarować. Mozna zeskalowac i zwymiarowac, ale nie jakis rysunek w formie JPG lecz o znanych wymiarach. Wtedy wstawiasz obraz JPG a na nowej warstwie tworzysz po prostu rysunek obrysowujac...
(...) 0/1023)*VoltageMsmt; Vcalc = Vcalc*2.995; lcd.setCursor(0,0); lcd.print("V1="); lcd.print(Vcalc); lcd.setCursor(8,0); lcd.print("V2="); lcd.print(Vcalc); lcd.setCursor(0,1); lcd.print("V3="); lcd.print(Vcalc); lcd.setCursor(8,1); lcd.print("V4="); lcd.print(Vcalc); } (at)ElektrodaBot Wstępna ocena dostępnych informacji Pytanie dotyczy kodu na...
O ile mi wiadomo to Bascom w jednym wierszu potrafi wykonać tylko jedno działanie i tylko na dwóch zmiennych i tak też jest napisane u mnie to równanie.
A musisz tą drugą pętlę zamykać przez moduł. Nie można "na krótko"? W zasadzie to nie bardzo wiem co chcesz mierzyć - dwie temperatury czy temperaturę i wilgotność? Co do skalowania to może pomyśl chwilę :-) Skoro 4mA/20mA całego zakresu to -30st a cały zakres to 80 st -> to dostajemy śmieszny układ całych dwóch równań: -300=(4/20)*a+b 800=1*a+b A stad...
skalowanie woltomierza pt100 skalowanie skalowanie termometru
bezpiecznik bateria lenovo centralka biały żółty pomarańczowy system fanuc
medion md30445 arduino projekty
Mercedes W202 C180 automat – brak wstecznego biegu po odpaleniu silnika, skrzynia 722.6/722.4 Zasilacz do lampy UV-C 11W – parametry, dobór, trzonki G23, 2G7, G5, Philips, Osram