logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Upload z PLC Siemens S7 315-2DP celem wykonania opisów - dlaczego nie działa

Marek_t3 14 Sty 2019 12:42 1137 13
  • #1 17699971
    Marek_t3
    Poziom 14  
    Posty: 59
    Pomógł: 13
    Ocena: 10
    Witam.

    Przyszła kryska na matyska. Myślałem że o PLC co nieco wiem, ale się myliłem. Ostatnio "znalazłem" na moim zakładzie pracy sterownik PLC zabudowany w systemie filtrów do którego nie było projektu PLC. Zrobiłem upload programu ze sterownika, zmieniłem nazwy symboliczne wejść, wyjść, niektórych markerów i niby było ok. Problem pojawił się gdy zacząłem zmieniać nazwy w sekcji Interface bloków FB. Zmienić można, ale nie można zapisać bloku FB. Wywala komunikat save 30:17 (screen).
    Upload z PLC Siemens S7 315-2DP celem wykonania opisów - dlaczego nie działa
    Poszedłem jeszcze raz na maszynę i ponownie zrobiłem upload ze sterownika i.... po otwarciu bloku FB i próbie zapisania "gołego" bloku FB bez żadnej ingerencji prosto po zgraniu z PLC wyskakuje ten sam błąd. Program PLC działa i jest wgrany w sterownik przez producenta maszyny.

    W sekcji stats bloku FB są liczne odwołania do struktur innych bloków FB (screen).
    Upload z PLC Siemens S7 315-2DP celem wykonania opisów - dlaczego nie działa
    Po ich usunięciu blok spokojnie da się zapisać. Bloki FB do których struktury odwołuje się ten nieszczęsny bloczek FB są oczywiście w projekcie a struktura ich sekcji interface jest spójna z interface bloku z którym mam problem.

    Pousuwałem wszystkie dane typu "stat" z bloku a następnie odtworzyłem je zgodnie z tym co było wcześniej. Błąd przy zapisie nadal występuje.

    Na kopii tego FB sprawdziłem czy problem występuje gdy usunę część z tych zmiennych lokalnych typu stat (i powiązanych z nimi networków). Blok zapisał się bez problemów (no jeszcze z pointerami problem, ale o tym później będę myślał).

    Wszyscy wiemy jak ciężko cokolwiek zrobić w takim projekcie gdy wszystkie używane zmienne mają nazwy "stat" i "temp". Chcę ten projekt jakoś wyprowadzić, dlatego zwracam się do was z prośbą o pomoc, bo mi się pomysły kończą.

    Czy możliwe że obszar danych typu stat jest za duży? Ostatni adres to 778.0 + jeszcze obszar samej struktury czyli około 50 bajtów. Jeśli tak to jak udało się stworzyć taki blok FB producentowi maszyny?
  • #2 17700035
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Próbowałeś kompilować całość? Prawym na Blocks -> Check Block Consistency. Jakie błędy wtedy zgłasza?
    Jeśli możesz to zamieść program.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #3 17700096
    Marek_t3
    Poziom 14  
    Posty: 59
    Pomógł: 13
    Ocena: 10
    Nawet nie pomyślałem o skompilowaniu całości ;)

    Wywala błędy jak na screenie:
    Upload z PLC Siemens S7 315-2DP celem wykonania opisów - dlaczego nie działa

    2019_01_05 - projekt z zapisanymi zmianami (tablica symboli)
    RSM_1 - niemal goły projekt, ten co ściągałem z PLC jest na innym PG i dziś nie mam dostępu. Tego znalazłem gdzieś na dysku, bo chyba ktoś przede mną już się do tego przymierzał.
    Załączniki:
    • RSM1_1.rar (318.99 KB) Musisz być zalogowany, aby pobrać ten załącznik.
    • 2019_01_05_Filtr_raf.rar (366.09 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #4 17700101
    Marek_t3
    Poziom 14  
    Posty: 59
    Pomógł: 13
    Ocena: 10
    Będę jutro od 6, bo zmiana mi się kończy ;)
  • #5 17700734
    Telex
    Poziom 28  
    Posty: 962
    Pomógł: 106
    Ocena: 100
    Witam,

    Czasami multiinstancje się dają do wiwatu i trzeba uważać. Taki wsteczny Enginering daje sobie znać. Czasami też nie ma możliwości się cofnięcia z STL do FBD i też pojawiają się "schody".
  • #6 17701926
    Marek_t3
    Poziom 14  
    Posty: 59
    Pomógł: 13
    Ocena: 10
    Poszedłem na obiekt i ponownie zrobiłem upload sterownika. Od razu zrobiłem kompilację całości. Błędy wywaliło, ale w zupełnie innych blokach FB niż poprzednio (jest na screenie)
    Upload z PLC Siemens S7 315-2DP celem wykonania opisów - dlaczego nie działa

    Jako załącznik zrobiony upload.
    Załączniki:
    • filtr.rar (802.79 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #7 17701927
    Marek_t3
    Poziom 14  
    Posty: 59
    Pomógł: 13
    Ocena: 10
    Bloku FB1 nadal nie można zapisać, mimo że kompilator w nim akurat błędu się nie dopatrzył.

    Dodano po 6 [godziny] 6 [minuty]:

    Na razie walczę z opisami w tych blokach w których błędów nie ma, ale jak ktoś ma pomysł jak to działa to chętnie przyjmę wszelkie rady włącznie z tymi typu "po ch.... pan to robisz?" (takie w pracy słyszę od niektórych co bardzo się znają na rzeczy).
  • Pomocny post
    #8 17702653
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Marek_t3 napisał:
    chętnie przyjmę wszelkie rady włącznie z tymi typu "po ch.... pan to robisz?"
    Dla sportu i dla pokoleń ;) No i jakby sterownik spłonął razem z kartą.
    Do rzeczy. Wrzuciłem do Twojego projektu bloki standardowe FB41, FB42 oraz FC105 z biblioteki i wygląda, że się da coś z tym zrobić.
    Czasem, jeśli blok używa innego, który nie posiada danych o symbolach (podczas otwierania wyskakuje okienko z informacją). Wtedy trzeba otworzyć i zapisać ten blok, żeby info nie wyskakiwało. Odbudowuje się wtedy dane w wersji offline i "naprawiają się" niektóre zależności.
    Załączniki:
    • 2019_01_Filtr_raf.zip (1.45 MB) Musisz być zalogowany, aby pobrać ten załącznik.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #9 17704648
    Marek_t3
    Poziom 14  
    Posty: 59
    Pomógł: 13
    Ocena: 10
    Pięknie dziękuję.

    Blok zapisuje się jak należy ;)

    Nigdy bym nie wpadł na to by otwierać inne bloki tylko po to by je zapisać ;)

    Dodano po 1 [minuty]:

    Temat zostawię jeszcze jako otwarty, bo coś widzę że jeszcze parę kwiatków się urodzi związanych z tym projektem. Już widzę co najmniej dwa, ale najpierw sam pokombinuję i poproóbuję.
  • #10 17711445
    Marek_t3
    Poziom 14  
    Posty: 59
    Pomógł: 13
    Ocena: 10
    Teraz inne pytanko. Jak producent to zrobił że zmienna typu OUT w insterfaces w bloczku FB jest używana jako wejście i przeszło im to przez kompilator. Mi nie przechodzi.
    Oczywiście mogę to obejść dodając nową zmienną w STAT typu bool i nią się posługiwać w tych miejscach zaznaczonych na rysunku. Mogę też te OUT8 przenieść do sekcji InOut, lub jeśli ten blok FB jest wywoływany tylko raz równolegle do wysterowania OUT8 dorzucić wysterowanie markera i tam gdzie OUT8 jest użyte jako dana wejściowa podpiąć tego markera. Ale mnie po prostu ciekawi jak oni to zrobili.

    Upload z PLC Siemens S7 315-2DP celem wykonania opisów - dlaczego nie działa

    Dodano po 1 [godziny] 14 [minuty]:

    No i coś nowego mam ;)

    Na warsztacie mam taki sterownik CPU o numerze zamówieniowym 315-1AF3-0AB0.

    Robię na nim różne próby wgrywając kawałki softu itd. Przy jednej z prób coś nie pykło. No i teraz mam problem, bo nie idzie do sterownika wgrać bloku.. OB1...

    Upload z PLC Siemens S7 315-2DP celem wykonania opisów - dlaczego nie działa

    Inne bloki można bez problemu wgrywać. Tylko OB1 nie chce się wgrać. Zrobiłem procedurę Clear/reset dostępną w menu PLC/diagnostic/setting, wyczyściłem kartę MMC, wgrałem na kartę program... Nic to nie dało. W dispay accessibles nodes widać wszystkie wgrane bloczki, ale OB1 nie istnieje i nie daje rady go wgrać.

    Upload z PLC Siemens S7 315-2DP celem wykonania opisów - dlaczego nie działa

    Zastanawiam się czy nie uziemiłem sterownika ;))
  • Pomocny post
    #11 17711729
    Markos80

    Specjalista Automatyk
    Posty: 1860
    Pomógł: 474
    Ocena: 214
    Marek_t3 napisał:
    Teraz inne pytanko. Jak producent to zrobił że zmienna typu OUT w insterfaces w bloczku FB jest używana jako wejście i przeszło im to przez kompilator. Mi nie przechodzi.
    Teoretycznie taka konstrukcja jest możliwa, ale ja osobiście nigdy nie czytam wejść z zasady.
    Co do Twojego kodu to ciekawe z czego to wynika, ale ten blok kompiluje się tylko w STL (z resztą w widoku STL zobaczysz, że z LAD i FBD niejawnie wykonane jest kopiowanie OUT8 na L1.0, a dopiero ta zmienna tymczasowa wchodzi na wejście FC).
    Co jeszcze ciekawsze, to po zapisaniu bloku w STL, można przełączyć widok do LAD lub FBD i wszystko wygląda dobrze i można zapisywać zmiany. Dopiero po kompilacji bloku w Check consistency się rozpada, ale tylko pod warunkiem, że kompiluje coś innego niż STL ;)
    Można to obejść podając na wejście tego FC np.: OUT8 & OUT8.

    Co do OB1, to czy przypadkiem nie zdefiniowałeś w nim czegoś dużego w obszarze Temp? Ogólnie dobrą praktyką jest nie ingerować w obszary bloków OB.
    Jeśli nie jesteś pewny to skopiuj OB1 z biblioteki standardowej. Po rozmiarze Twojego wnioskuję, że nie jest to puste OB1.
    Konto firmowe:
    PUMPA
    Widok 7, Łuczyce, 32-010 | Tel.: 502XXXXXX (Pokaż) | Strona WWW: www.pumpa.pl
  • #12 17711917
    Marek_t3
    Poziom 14  
    Posty: 59
    Pomógł: 13
    Ocena: 10
    Masz rację. W ogóle nie wziąłem pod uwagę tego że w moim ob1 w projekcie może być przyczyną problemu. Jutro popróbuję, bo dziś już wracam do domu.

    Ja też z reguły nie czytam wyjść, ale nie ja to programowałem ;) Pracuję w utrzymaniu ruchu i na różne "kwiatki" trafiam i często się zastanawiam jak to może działać... Gdy już sam nie umiem dojść czemu jest tak a nie inaczej zadaję pytanie mądrzejszym.
  • #13 17745623
    Konto nie istnieje
    Poziom 1  
  • #14 17746233
    Marek_t3
    Poziom 14  
    Posty: 59
    Pomógł: 13
    Ocena: 10
    Tak. Membramowy.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik napotkał problem z zapisywaniem bloków FB po załadowaniu programu z PLC Siemens S7 315-2DP. Po zmianie nazw symbolicznych w sekcji Interface bloków FB, pojawił się błąd zapisu (save 30:17). Po skompilowaniu całości, błędy wystąpiły w innych blokach FB. Użytkownik odkrył, że otwieranie i zapisywanie standardowych bloków z biblioteki może pomóc w rozwiązaniu problemu. Dodatkowo, pojawiły się pytania dotyczące użycia zmiennych OUT jako wejść oraz problem z wgrywaniem bloku OB1, co może być spowodowane nieprawidłową definicją w obszarze Temp. Użytkownik planuje dalsze próby i poszukiwanie rozwiązań.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA