Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 30 из 32

Тема: еще раз про аккумулятор или как сохранить ретайн

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    что возвращает функция записи? Отсюда и найдете ответ как контролировать записаны ли все подготовленные для этого данные
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  2. #2
    Пользователь
    Регистрация
    09.02.2014
    Адрес
    Брест, Беларусь
    Сообщений
    31

    По умолчанию

    Точно!!! Спасибо!

  3. #3
    Пользователь
    Регистрация
    10.04.2010
    Адрес
    Алтайский край,г.Рубцовск
    Сообщений
    967

    По умолчанию

    Честно сказать уже столько раз поднимался этот вопрос что наверное набил аскомину и уважаемой техподержке и всем мною глубоуважаемым старожилам сего форума.Я понимаю что судьбу можно обмануть писать эти переменные куда угодно, но почему не зля сделать это стартдными для кодесус методами зачем все эти танцы с бубнами,я специально в последних проектах вывел с модуля статистики ресурс аккумулятора и тут произошло чудо он показывает 600 а переменные не сохраняются,а то прекрасно понял что панечка померла а как это объяснить начальству и всем остальным заинтеросавын лицам

  4. #4
    Пользователь
    Регистрация
    20.07.2011
    Адрес
    Новосибирск
    Сообщений
    38

    По умолчанию

    жекон, из модуля статистики нормально работает только температура процессора )
    Цитата Сообщение от Максим Tomahawk
    2) Сейчас стоит ПЛК на объекте без аккумулятора, и что показывает наш Time to backup power down, s? (Время до разряда аккумулятора) 600 либо 588 секунд. А ничего, что он уже выпаян?
    Можете задействовать вход под контакт от реле, сидящего на основном питании, и по пропаже этого сигнала записывать в память то, что вы хотели.
    Автоматизирую, как завещал нам Генри Форд

  5. #5
    Пользователь
    Регистрация
    11.05.2012
    Адрес
    Москва
    Сообщений
    66

    По умолчанию

    что возвращает функция записи? Отсюда и найдете ответ как контролировать записаны ли все подготовленные для этого данные
    Скиньте пожалуйста пример правильной работы с SysLibFile. Как правильно записывать и читать?

  6. #6
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,623

    По умолчанию

    При замене аккумуляторов в 2-ух ПЛК160 выяснилось, что установленные на заводе аккумуляторы раздуло. И почему-то в паспорте к ПЛК160 пишут, что установлен LIR2477, на самом деле там LIR2466.

  7. #7

    По умолчанию

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    При замене аккумуляторов в 2-ух ПЛК160 выяснилось, что установленные на заводе аккумуляторы раздуло. И почему-то в паспорте к ПЛК160 пишут, что установлен LIR2477, на самом деле там LIR2466.
    Вздутие аккумулятора говорит о том, что не соблюдаются режимы заряд/разряд. Аккумулятор или перезаряжается или глубоко разряжается. Разработчикам ПЛК надо думать над этим.

  8. #8
    Пользователь Аватар для murdemon
    Регистрация
    03.02.2014
    Адрес
    Санкт-Петербург
    Сообщений
    848

    По умолчанию

    сохраняй просто в файл и обратно считывай
    + CmpChecksum.lib
    Просто вызываешь данный блок в программе и все Retain сохраняются в файл а при запуске берутся из него (это для Codesys V3 для Raspberry PI)
    PROGRAM RetainManager
    VAR_INPUT
    RetainFilePathName : STRING := '/tmp/extend/pccard/SD_MMC0_1/Retain';
    SaveFilterTime : TIME := T#5S;
    ForceSave : BOOL;
    END_VAR
    VAR
    Init: BOOL;
    pRetainFilePathName : POINTER TO STRING;
    pCurrentApp : POINTER TO APPLICATION;
    RetainAreaSize: __XWORD;
    pRetainArea: POINTER TO BYTE;
    dwCRCSave: DWORD;
    dwCRC: DWORD;
    TOF1 : TOF := (PT := SaveFilterTime);
    R_TRIG1: R_TRIG;
    END_VAR
    VAR_OUTPUT
    RTSIECResult : RTS_IEC_RESULT;
    AttemptSaveCounter: INT;
    END_VAR

    IF NOT Init THEN
    pCurrentApp := AppGetCurrent(ADR(RTSIECResult));
    IF RTSIECResult<>0 THEN RETURN; END_IF
    RetainAreaSize := AppGetAreaSize(pApp:= pCurrentApp, uiType:= DA_RETAIN, pResult:= ADR(RTSIECResult));
    IF RTSIECResult<>0 THEN RETURN; END_IF
    pRetainArea := AppGetAreaAddress(pApp:= pCurrentApp, uiType:= DA_RETAIN, pResult:= ADR(RTSIECResult));
    IF RTSIECResult<>0 THEN RETURN; END_IF
    IF LEN(RetainFilePathName) <> 0 THEN
    pRetainFilePathName := ADR(RetainFilePathName);
    ELSE
    pRetainFilePathName := ADR(pCurrentApp^.szName);
    END_IF
    RTSIECResult := AppRestoreRetainsFromFile(pCurrentApp, pRetainFilePathName^);
    CASE RTSIECResult OF
    0: // #define ERR_OK 0x0000
    16#1E: // #define ERR_SIGNATURE_MISMATCH 0x001E /* Signature mismatch of an api function */
    16#32: // #define ERR_FILE_ERROR 0x0032 /* File error. e.g. cannot open a file for writing because it could be write protected */
    ELSE RETURN;
    END_CASE
    dwCRCSave := CRC32Finish(ulCRC:= CRC32Update(ulCRC:= CRC32Init(), pData:= pRetainArea, ulSize:= RetainAreaSize));
    Init := TRUE;
    END_IF

    R_TRIG1(CLK := ForceSave);

    dwCRC := CRC32Finish(ulCRC:= CRC32Update(ulCRC:= CRC32Init(), pData:= pRetainArea, ulSize:= RetainAreaSize));

    IF dwCRC <> dwCRCSave OR R_TRIG1.Q THEN
    IF NOT TOF1.Q OR R_TRIG1.Q THEN
    RTSIECResult := AppStoreRetainsInFile(pCurrentApp, pRetainFilePathName^); // записасать в файл
    IF RTSIECResult = 0 THEN
    dwCRCSave := dwCRC;
    END_IF
    AttemptSaveCounter := AttemptSaveCounter + 1;
    TOF1(IN := TRUE);
    END_IF
    END_IF

    IF TOF1.Q THEN
    TOF1(IN := FALSE);
    END_IF
    Последний раз редактировалось murdemon; 12.03.2015 в 22:12.

  9. #9

    По умолчанию

    я пробовал менять родной аккумулятор на оригинальный но тот тоже долго не протянул, сейчас припаял литиевый от телефона филипс и приклеил к низу верхней платы на 2х стор скотч, по сравнению со штатным очень емкий получился, успевает ретайны записать и еще через неделю остановки правильно время считает, с штатным через пару дней все обнулялось

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. Аккумулятор в ПЛК
    от Sergey666 в разделе ПЛК1хх
    Ответов: 28
    Последнее сообщение: 19.09.2018, 22:34
  2. Ретайн
    от BETEP в разделе Трёп (Курилка)
    Ответов: 25
    Последнее сообщение: 09.05.2014, 07:50
  3. Как сохранить проект в контроллер
    от Constanta в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 26.04.2011, 11:40
  4. аккумулятор на длительное время
    от Леонид в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 26.11.2010, 16:49
  5. Аккумулятор в ПЛК
    от Николаев Андрей в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 13.11.2008, 15:49

Ваши права

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