Elektroda.pl
Elektroda.pl
X
Elektroda.pl
SterControlSterControl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

klopot z programowaniem w step7

15 Mar 2004 19:15 2785 14
  • Poziom 11  
    Witam.
    Jestem poczatkujacym samoukiem w programowaniu sterownikow SIEMENS.

    Mam taki klopot, chce zeby mi np. licznik ustawil sie na pewnej żądanej wartosci np. 3 (liczyl od 3 do 0). ale uzywam wartosci z db1. Nie ma problemu jesli to jest wpisane typ zmiennej INT ale ja tam dostaje typ REAL i jak ja wstawie tam 3.0 i zrobie konwersje na typ Double INT to kurcze nie liczy mi od 3 tylko od ....wogole mi nie liczy (4040 przy symulacji w tabelce standart). Czemu tak sie dzieje???

    I mam drugie pytanie wlasnie w mojej pracy dypl. mam panel i wpisuje tam wartosc i jest typu INT. Wartosc ta jest zadana wart. predkosci na karcie analogowej tego sterownika. Mam tam skalowanie i potrzebuje podzielic kilka wartosci m.in. 27648.0 i wlasnie ta wpisana z panelu. Wiec jak zrobie konwersje ITD i DTR to nie wyjda mi bzdury jak z tym licznikiem???


    Pewnie napisalem nie zroumiale ale prosze o pomoc.
  • SterControlSterControl
  • Poziom 12  
    Witam
    1.wartosc stratowa w BCD przyklad w helpie
    U e 2.3
    L c#3
    s z1
    2.Skad dosajesz typ real
    3.jaki panel
    Pozdrawiam
  • Poziom 11  
    to jest tak. mam panel op3 i zadaje mu predkosc np 90 mm/cm ( w panalu tag typu int). musze to poddac normalizacji czy te 90 to jest moje max. moze min. czy miedzy, wiec robie to na podstawie rownania. (Dla 12 bit. karty maks. rozdz. to 27648.0 ) Mam zrobiony taki gotowy blok na symb. lokalnych i tam dokonuje tych normalizacji - kilka razy. Zbieram dane z wej PIQ 256 konwertuje z int na di i na Real i tu wszystko gra ale jak to nie jest sterowanie automat a reczne wiec nie wiem jak tam zdeklarowac zeby nie bylo przekretow i dlatego wymyslilem taki banalny przyklad z licznikiem.
  • SterControlSterControl
  • Poziom 12  
    Witam
    Op3 poprzednio pisales
    Sterowanie autom ?OK
    Reczne ?
    Z opisu niewiem jak to dziala
    Wartosc zadana reczna z OP3 skalowanie wyjscie?
    Wartosc zadana auto wejscia skalowanie wyjscie?
    Gdzie ten licznik?
    Jeszcze raz od poczatku
    Problem z licznikiem
    Zeby licznik Ci liczyl musi dac mu wartosc w BCD a nie Dint (C#3 w przykladzie;do 9 nie ma problemu jesli jest to int bezposrednio ,dint jeszcze raz do int) w sumie prawidlowo Real->Dint i jeszcze raz do BCD musi Ci liczyc poprawnie,do 9 tez powinno dzialac real->dint->int ale powyzej 9 nie bedzie dzialac inny kod
    Pozdrawiam
  • Poziom 11  
    .............dint jeszcze raz do int)............
    a jest takie polecenie zeby z dint do int????

    ............... w sumie prawidlowo Real->Dint i jeszcze raz do BCD ...............
    a mam taka wlasnie sciage i jest ta konwersja real-dint-bcd(7dekad) RND DTB a zeby int do bcd-ITB(3-dekady) tylko dokladnie nie wiem o co chodzi z tymi dekadami czy konwersja do zapisu BCD 7 dek = BCD 3 dek.? Prosze o wyjasnienie tego.
  • Poziom 11  
    BCD 3 dekady co jest w helpie wyrażnie napisane.
    DI->BCD daje ci 7 dekad, wiec nie da rady tego tak zrobic, a wiec jak robisz Round na REAL'u to dostajesz DI :

    Zrob ytak a pózniej pokombinuj aby to uproscic:
    Real(MD200)->FLOR(MD204)->MOVE(MW208)->I-BCD(MW210) i do licznika wstawiasz w PV-MW210
    Wlasciwie MOVE jest dla przejzystosci(nadmiernej) , no i zajetosc rejestrow tez spora, ale to tylko przyklad - pokombinuj :))
  • Poziom 12  
    polecenia jako takiego nie ma
    patrz wyzej
    Pozdrawiam
  • Poziom 11  
    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 ??
  • Poziom 12  
    Hej KePeSiaN to co napisalem bylo do saZas27
    zeby spojrzal na to co Ty napisales
    Oczywiscie sie zgadzam prosze spojrz na MOVE w AWL
    Pozdrawiam
  • Poziom 11  
    Dziekuje jutro siade i pomajstruje
    Ale mam jeszcze pytanie do zb1010 i KePeSIaN

    "....wartosc stratowa w BCD przyklad w helpie ...."...BCD 3 dekady co jest w helpie wyrażnie napisane."

    o jakich helpach piszecie, u mnie jak wyswietlam w zakladce elementow znak zapytania i daje na licznik nie mam tam takich wiadomosci o jakich Wy piszecie?? w glownym helpie szukajac counter tez nie mam?


    i pytanie do KePeSIaN mam liste myslalem ze wszytkich instrukcji i nie znalazlem FLOR? i drugie pytanie co to znaczy ......spojrz na MOVE w AWL...?

    Jesli to sa banalne pytania to tymbardziej dziekuje za zrozumienie i odpowiedzi. Jednak bez braku porady od drugiej osoby bez wuymiany opini i braku typowych podrecznikow jest ciezko
  • Poziom 12  
    Witam
    Podstawa podstaw
    Help tworzac nowy blok musisz podac w czym w jakim jezyku chcesz go napisac masz trzy podstawowe drabinkowy KOP (eng nie wiem) logiczny FUP (eng nie wiem) lista instrukcji AWL (eng STL) Po podaniu nazwy i wybraniu jezyka twoj blok zostaje utworzony.Po dwukrotnym kliknieciu na owy otworzy Ci sie edytor (KOP/AWL/FUP) tam masz HELP wybierz dla AWL pozniej Zahler lub Counter pozniej np S dostaniesz pierwsza podpowiedz
    KePeSIaN napisal Ci gotowca w FUP-ie a ja poprosilem go zeby spojrzal jak to wyglada w liscie instrukcji
    Pozdrawiam
  • Poziom 11  
    Witam

    w angielskim to jest tak
    LAD-drabinkowy
    STL- lista instrukcji
    FBD -logiczny

    Ten MOVE dla LAD i FBD wyglada tak samo, tylko oczywiscie dla LAD trzeba go do czegos podpiac. Co do helpa - ja mam Step'a V5.1+SP6,ale to tylko dlatego z SP, ze nie bez niego nie widzial nowych 315-DP2, a help powinien byc ten sam. Jezeli zaczynasz zabawe to proponuje zaczac od jezyka LAD - (moim zdaniem najprostrzy).
    Dolaczam plik ze obrazami ze stepa, no i z helpa o floor i counter, oraz wyglad MOVE po translacji z LAD do STL.
    Mam nadzieje, ze to cos pomoze.
  • Poziom 11  
    Dzieki bardzo.
    Tzn troche znam mam tez kilka przykladow zrobionych programow i tak sie ucze. Sciagnąlem ostatnio sobie z sieci symulator do simatica i tak jakos mi sie udaje rozpracowywac. Gdyby nie ten symulator to taka nauka nic nie daje jak nie ma na czym ewentualnych bledow sprawdzac.
    Dziekuje za informacje. Napewno sie jeszcze odezwe bo musze zakonczyc swoja prace a duzo jeszcze przedemna.
    Pozdrawiam
  • Poziom 11  
    To i ja się podepnę. Mam proste pytanie, ale ni pierona nie mogę znaleźć odpowiedzi w sieci

    Jak porównywać wartość z countera z dowolną liczbą? Gdy biore komparator to wyświetla mi, że typ COUNTER nie może być wpisany tam gdzie powinien być wpisany typ WORD/INT. Jak to konwertować, żebym mógł sprawdzić np. COUNTER1>3 ?? Jeśli można w LAD.
  • Admin DIY, Automatyka
    Nie mam przed oczami stepa, ale może pomogę.

    W komparatorze (musisz wybrać odpowiedni) podaje się adres zmiennej w której jest wpisana wartość licznika np MW10 oraz wartość z którą ma porównać (w microwinie podawało się adres licznika np C48). JA zawsze tak robię i działa...

    Poza tym to nie powinno się raczej odgrzebywać tak starych tematów i nie wiem czy nie wyląduje w koszu..

    Paweł

    Jeśli ktoś by odpowiadał na post z przed 3, 4 lat, wtedy oczywiście byłby kosz. Tutaj widzę to trochę inaczej. [Akrzy]