'Inteligenty' dom ze sterownikiem PLC

 Language:
Szukanie zaawansowane  

Aktualności:

Powrót do strony głównej: www.edom-plc.pl

Autor Wątek: 750-881 Out Of Global Memory Data  (Przeczytany 4718 razy)

creim

  • Newbie
  • *
  • Wiadomości: 3
    • Zobacz profil
750-881 Out Of Global Memory Data
« dnia: Czerwca 22, 2017, 08:17:32 pm »

Witam wszystkich bardzo serdecznie,
do tej pory miałem styczność tylko ze sterownikami Beckhoffa serii CX.
Aktualnie rozpoczynam przygodę z automatyzacją swojego lokum i do tego celu zakupiłem na początek używane Wago 750-881 i pobrałem wersję demonstracyjną CoDeSys 2.3...

Na chwilę obecną w programie mam zainicjowanych około 120 zmiennych globalnych, kilkanaście banalnych bloków funkcyjnych obsługujących impulsowo przekaźniki bistabilne oraz połączenie z mysql rejestrujące każde przełączenie... można powiedzieć, że bardzo niewiele. Sam program to około 60kb.

Problem polega na tym, że gdy w programie miałem 4-5 FB (program poniżej 50kb) to wszystko działało, teraz gdy rozszerzyłem funkcjonalność o pozostałe pomieszczenia, otrzymałem komunikat o przekroczeniu przydzielonej pamięci na zmienne globalne (jak w tytule), która wynosi 512kb. Po zaczerpnięciu informacji z sieci spróbowałem zmienić tą wartość w target settings na wyższą, ale w zamian otrzymałem komunikat o zbyt dużej ilości danych dla PLC (Too much data for PLC) - raczej logiczne ponieważ seria 750-881 posiada 1024kb na program i 512kb na dane, jednakże 120 zmiennych typu BOOL nie powinno zajmować tyle miejsca.

Czy ktoś z Was spotkał się już z tego typu problemem? Raczej niemożliwe, by sterownik za 2tyś nie obsługiwał większych programów niż 50kb, szczególnie iż przeglądając Wasze projekty widze iż są znacznie bardziej rozbudowane..

W moich przypuszczeniach problem może leżeć w bibliotece WagoLibMySQL_03, która podciągnęła ze sobą kilka innych bibliotek


Pozdrawiam serdecznie :-)
Zapisane

vakul

  • Full Member
  • ***
  • Wiadomości: 149
    • Zobacz profil
Odp: 750-881 Out Of Global Memory Data
« Odpowiedź #1 dnia: Czerwca 22, 2017, 09:03:31 pm »

To może banalne, ale czy zaktualizowałeś sterownik do najnowszej wersji softu?
Miałem pewne problemy ze swoim 880, które po aktualizacji odeszły w niepamięć.
Zapisane

creim

  • Newbie
  • *
  • Wiadomości: 3
    • Zobacz profil
Odp: 750-881 Out Of Global Memory Data
« Odpowiedź #2 dnia: Czerwca 23, 2017, 04:01:57 pm »

Dziękuję za wskazówkę, być może w tym coś jest. Mam soft 01.05.15 (07), z wago otrzymałem dziś maila z dwoma linkami do aktualizacji i widzę, że update jedynie przez kabel. Zapowiada się poważny nieplanowany wydatek :-/

Czy da się jakoś podejrzeć które zmienne zajmują tak dużo miejsca w pamięci?
Zapisane

vakul

  • Full Member
  • ***
  • Wiadomości: 149
    • Zobacz profil
Odp: 750-881 Out Of Global Memory Data
« Odpowiedź #3 dnia: Czerwca 23, 2017, 06:24:14 pm »

Spróbuj kilka razy aktualizować, miałem to samo. Podjechałem do Wago, żeby mi to zaktualizowali. A u nich, co dziwne poszło normalnie przez Ethernet.
Zapisane

vakul

  • Full Member
  • ***
  • Wiadomości: 149
    • Zobacz profil
Odp: 750-881 Out Of Global Memory Data
« Odpowiedź #4 dnia: Czerwca 23, 2017, 06:24:53 pm »

Aktualna wersja to: Firmware revision   01.07.03 (10)
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 313
    • Zobacz profil
Odp: 750-881 Out Of Global Memory Data
« Odpowiedź #5 dnia: Czerwca 25, 2017, 02:58:08 pm »

Cześć,

Pomijając update firmwaru, który zapewne warto zrobić - skąd taka potrzeba na tyle globalnych zmiennych?  W moim programie mam tylko:
VAR_GLOBAL
CURRENT_TIME : DATE_AND_TIME;
END_VAR

VAR_GLOBAL CONSTANT
gcMySql_iSqlUpperBound :INT:=59;
gcMySql_iSqlLength :INT:=150;
END_VAR
i kropka... Czy na pewno potrzebujesz ich aż tyle?

Pozdrawiam :)
Zapisane

creim

  • Newbie
  • *
  • Wiadomości: 3
    • Zobacz profil
Odp: 750-881 Out Of Global Memory Data
« Odpowiedź #6 dnia: Czerwca 29, 2017, 02:13:42 am »

Zwyczajowo w zmiennych globalnych deklaruję wszystkie wejścia i wyjścia oraz zmienne z których będę korzystał np w wizualizacji,
 lub w wielu blokach funkcyjnych jednocześnie np Wyzwolenie alarmu (nawyk ze szkoleń beckhoff'a - deklaracje wszystkich I/O w jednym miejscu)

Przyczyna opisanego problemu była wręcz banalna.
Przez nieuwagę zmienną oMySql : MySql_Context; zadeklarowałem jako lokalną, tym samym korzystając z FB w różnych miejscach programu program z automatu wydzielał osobne miejsca w pamięci, dosłownie po 100kb na każdy.

Przypuszczam, że powyższa zasada również tyczy się deklarowania I/O jako zmienne lokalne, tyle że BOOL'e nie zajmują tyle co STRING'i, więc doprowadzić do przepełnienia jest bardzo trudno :-)
Zapisane

vakul

  • Full Member
  • ***
  • Wiadomości: 149
    • Zobacz profil
Odp: 750-881 Out Of Global Memory Data
« Odpowiedź #7 dnia: Czerwca 29, 2017, 09:14:05 am »

Ale do zmiennej lokalnej też możesz się odwołać przez Program.ZmiennaX gdzie "Program" to osobny POU.
W ten sposób do wizualizacji pobierasz sobie lokalną zmienną bez potrzeby tworzenia zmiennych globalnych.

Jeśli chodzi o zmienne dla modułów wejścia/wyjścia to stwórz sobie nazwy wejść i wyjść w Resources->PLC Configuration i wg tego się odwołuj. Dodatkowo zabezpiecza Ci to sytuację fizycznej zmiany położenia modułów (dołożenie czy odjęcie karty) wtedy zmienne są utrzymane tak jak przed zmianą konfiguracji mimo zmiany adresów w pamięci.
Zapisane