Показано с 1 по 10 из 1243

Тема: ПЛК210 - новая линейка контроллеров ОВЕН

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от Ufolog Посмотреть сообщение
    Здравствуйте!
    ПЛК210-03
    Хочу 1 массив с переменными "Panel: ARRAY[0..350] OF WORD;" (которые взаимодействуют с панелью через библиотеку OwenCommunication) писать в файл при необходимости, а так же восстанавливать эти данные из файла в обратно массив.
    А то при глобальных изменениях конфигурации массив бывает обнуляется, несмотря на то что он объявлен как VAR_GLOBAL PERSISTENT RETAIN
    Какими средствами это можно реализовать, желательно самым простым способом? Если есть пример, буду очень благодарен
    Добрый день.

    несмотря на то что он объявлен как VAR_GLOBAL PERSISTENT RETAIN
    Если вы руками прописали этот "VAR_GLOBAL PERSISTENT RETAIN" в каком-то вашем списке глобальных переменных - то это ожидаемое поведение.
    Для использования PERSISTENT-переменных нужно создавать специальный объект и объявлять переменные именно в нем.

    Безымянный.png

    писать в файл при необходимости, а так же восстанавливать эти данные из файла в обратно массив. <...> Какими средствами это можно реализовать, желательно самым простым способом?
    См. библиотеку SysFile.
    Пример записи показан здесь:
    https://oscat.ru/wp-content/Video/Co...35_SysFile.mp4

    Чтение происходит аналогичным образом с помощью функции SysFileRead.

  2. #2

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день.



    Если вы руками прописали этот "VAR_GLOBAL PERSISTENT RETAIN" в каком-то вашем списке глобальных переменных - то это ожидаемое поведение.
    Для использования PERSISTENT-переменных нужно создавать специальный объект и объявлять переменные именно в нем.

    Безымянный.png



    См. библиотеку SysFile.
    Пример записи показан здесь:
    https://oscat.ru/wp-content/Video/Co...35_SysFile.mp4

    Чтение происходит аналогичным образом с помощью функции SysFileRead.
    PERSISTENT- переменные конечно созданны в специальном объекте, как вы показали

    Пробовал разобраться с библиотекой SysFile и CAA File - Оказалось для меня сложновато, нашел более простое решение в https://youtu.be/u3xxEx9WEts?si=CBtkXOy-ygm_o2aJ

    PROGRAM PLC_PRG
    VAR
    xSaveRetainToFile: BOOL;
    xRestoreRetainFromFile: BOOL;
    sPathToRetainFile: STRING:='Retain.bin';
    pApp: POINTER TO CmpApp.APPLICATION;
    udiResult: UDINT;
    END_VAR
    -------------------------------------------------------
    IF xSaveRetainToFile THEN

    pApp:=CmpApp.AppGetCurrent(ADR(udiResult));
    udiResult:= CmpApp.AppStoreRetainsInFile(pApp, sPathToRetainFile);
    xSaveRetainToFile:=FALSE;

    END_IF

    IF xRestoreRetainFromFile THEN

    pApp:= CmpApp.AppGetCurrent(ADR(udiResult));
    udiResult:= CmpApp.AppRestoreRetainsFromFile(pApp, sPathToRetainFile);
    xRestoreRetainFromFile:=FALSE;

    END_IF

    ***********
    2 кнопки и все работает! Если кто то искал решение то есть готовое

Похожие темы

  1. Обновленная линейка контроллеров СПК1хх [M01] с интерфейсом Ethernet
    от Ильнур Гибадуллин в разделе СПК210, СПК1xx [М01]
    Ответов: 509
    Последнее сообщение: 09.05.2026, 00:56
  2. Ответов: 57
    Последнее сообщение: 30.11.2017, 16:56
  3. Ответов: 163
    Последнее сообщение: 19.04.2016, 17:18
  4. СПК1хх - Линейка панельных контроллеров для локальных систем.
    от Александр Приходько в разделе СПК1xx (архив)
    Ответов: 333
    Последнее сообщение: 30.03.2015, 08:42

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •