Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Правильная практика работы с параметрами в энергонезависимой памяти

  1. #1

    По умолчанию Правильная практика работы с параметрами в энергонезависимой памяти

    Добрый день!
    Есть ли у уважаемой аудитории проверенные методы работы с переменными, которые хранятся в энергонезависимой памяти?
    Проблема в том, что при перезагрузке контроллера ФБ накопителя (интегратор или счетчик) первым циклом записывает в переменную "0", затирая значение, которое было записано ранее.
    т.е. счетчик копит значения месяц, контроллер перезагрузился, значение (несмотря на энергонезависимость) обнулилось.
    Смысл тогда в таких переменных?

    пока пришлось соорудить костыль в виде скрипта на C, но это костыль.
    Есть какое-нибудь стандартное решение?

  2. #2
    Сергей Сисейкин
    Гость

    По умолчанию

    Цитата Сообщение от Dima.Silorov Посмотреть сообщение
    Добрый день!
    Есть ли у уважаемой аудитории проверенные методы работы с переменными, которые хранятся в энергонезависимой памяти?
    Проблема в том, что при перезагрузке контроллера ФБ накопителя (интегратор или счетчик) первым циклом записывает в переменную "0", затирая значение, которое было записано ранее.
    т.е. счетчик копит значения месяц, контроллер перезагрузился, значение (несмотря на энергонезависимость) обнулилось.
    Смысл тогда в таких переменных?

    пока пришлось соорудить костыль в виде скрипта на C, но это костыль.
    Есть какое-нибудь стандартное решение?
    Ставим галочку сохранять в энергонезависимой памяти. Используется для переменных, а не просто входов\выходов ФБ2018-05-28_112530.png

  3. #3

    По умолчанию

    Так интегратор в первом же цикле перезапишет эту переменную на текущее значение.. Обычно - в ноль.
    Приходится интегратор замыкать на самого себя через Cнач и Хнач
    Снимок.JPG
    Снимок2.JPG
    Последний раз редактировалось Dima.Silorov; 04.06.2018 в 20:36.

  4. #4

    По умолчанию

    При рестарте ПЛК для переменных которые хранятся в энергонезависимой памяти восстанавливается значение из памяти. В вашем случае значение обнуляется потому что это специфика работы непосредственно этого ФБ
    Описание данного блока в справочной системе:
    В ФБ предусматривается установка начального значения. Если дискретный сигнал на выходе Снач равен 0, то выполняется основная функция интегратора. При Снач равном 1 интегратор переходит в режим уставки начального значения, при этом выход Y=Xнач.
    Для того чтобы избавится от "костыля" используйте переменную, в которой будете хранить значение - ее привязывайте к выходу блоку и на вход Хнач. Вход Снач можно поставить по умолчанию в 1 и программно обнулять при начале расчета.
    для Переменной Счетчик установлено начальное значение и стоит галочка "энергонезависимая память"

    энергонезав переменная.jpgинтегратор.jpg
    Инженер направления "Энергетика"
    https://energy.owen.ru/

  5. #5

    По умолчанию

    Ошибку - игнорировать?
    ош.JPG

  6. #6

    По умолчанию

    Интересная вещь) в принципе можно игнорировать, а можжно чтоб не смущала все таки писать выход через промежуточный элемент,например такой ( можете скопировать код далее и вставить в область задач в своей программе)

    Код:
    <?xml version="1.0" encoding="windows-1251"?>
    <KLogicDocumentPart><ItemType7><FBNumber>150</FBNumber><Settings><Name>CopyInt 5</Name><Type>150</Type><ChannelCount>0</ChannelCount><Left>1202</Left><Top>590</Top></Settings><InOut Name="AI"><Settings><wKind>5</wKind><Connected></Connected><IVDefined0>True</IVDefined0><InitValue0>0,00000</InitValue0><KId>164</KId></Settings></InOut><InOut Name="AO"><Settings><KId>172</KId></Settings></InOut><ScriptSettings><Language>PascalScript</Language><Text>Var var1 : Real;
    {---------- main program -----------}
    begin
    ReadFloat(&apos;AI&apos;, var1);
    WriteFloat(&apos;AO&apos;,var1);
    end.
    </Text><Comments></Comments><DateTimeModifed>07.06.2018 11:10:58</DateTimeModifed></ScriptSettings></ItemType7></KLogicDocumentPart>
    Инженер направления "Энергетика"
    https://energy.owen.ru/

  7. #7

    По умолчанию

    Ну я так в своем скрипте и сделал Только на Си. Только еще обнуление прикрутил...

  8. #8

    По умолчанию

    Здравствуйте, существует ли конечный цикл перезаписи у энергонезависимой памяти? Например, в структуру, которая хранится в энергонезависимой памяти в 500 переменных 10 раз в секунду перезаписываются данные. Это не ушатает энергонезависимую память? В какой момент физически происходит запись?

  9. #9

    По умолчанию

    Добрый день.

    На данный момент в ИС контроллера заложен следующий алгоритм - значения копятся в ОЗУ и записываются раз в минуту. Если значение статично ,т.е оно не изменяется постоянно, оно пишется в энергонезависимую память только по изменению.
    Но чтобы поберечь ресурс контроллера рекомендуем все же не писать в энергонезависимую память 500 переменных изменяемых 10 раз в секунду, а оптимизировать программу или хранить эти значения на ВУ)
    Инженер направления "Энергетика"
    https://energy.owen.ru/

  10. #10

    По умолчанию

    Спасибо, полезная информация. И так все таки, какой конечный цикл перезаписи у энергонезависимой памяти? Очень не хочется ломать структуру.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Размер энергонезависимой памяти
    от Dima.Silorov в разделе Телемеханика ЛАЙТ
    Ответов: 2
    Последнее сообщение: 23.05.2018, 10:24
  2. плк304, размер энергонезависимой памяти
    от EvgenKinchin в разделе ПЛК3хх
    Ответов: 4
    Последнее сообщение: 04.10.2016, 14:31
  3. Ответов: 2
    Последнее сообщение: 07.05.2016, 21:21
  4. Ответов: 2
    Последнее сообщение: 23.06.2011, 14:22
  5. Ответов: 4
    Последнее сообщение: 15.02.2010, 06:55

Ваши права

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