Из написаного выше думаю и так понятно откуда. Банальность в том что в обратном направлении всё рабоатет, тобиж VAR PERSISTENT RETAIN > FLASH. А обратно нет.
Из написаного выше думаю и так понятно откуда. Банальность в том что в обратном направлении всё рабоатет, тобиж VAR PERSISTENT RETAIN > FLASH. А обратно нет.
Вообще-то, если посмотреть на скриншот- просто кончилась память Retain. Уменьшите размер данных и всё.
Тролль-наседка, добрый, нежный и ласковый
Я извиняюсь, но про какую 8-ю строку разговор, может я что-то пропустил. Подетальней пожалуйста, что и где работает? Оператор присваивания в вашем примере точно работает сомнений нет.
упрощенная реализация для наглядности. Код работает, когда элемент sDb лежит в GLOBAL VAR и НЕ РАБОТАЕТ, когда в GLOBAL VAR PERSISTENT RETAIN.
CASE Step OF
0: IF ReadStart THEN
Step := 1;
END_IF
ReadStart := FALSE;
1: dwReadBytes := 0;
SysFileClose (dwFileIndex);
Step := 2;
2: dwFileIndex := SysFileOpen ('sDb_n.txt' , 'r');
Step := 3;
3: dwReadBytes := SysFileRead (dwFileIndex , ADR(sDb) , SIZEOF(sDb));
SysFileSetPos (dwFileIndex, 0 );
IF dwReadBytes <> 0 THEN
Step := 4;
END_IF
4: SysFileClose (dwFileIndex);
Step := 0;
END_CASE
Каким х.. прочитать куда надо?
Последний раз редактировалось saniyo; 12.04.2018 в 23:20.
Когда заболит зуб, стоматологу пришлите его макет (как упрощеный релиз) - пусть лечит. Хрен ли
Последний раз редактировалось Валенок; 14.04.2018 в 02:13.
Залил тотже проект в другой плк на прошывке 1.0.72 - работает.
Попоробую продаунгрейтить рабочий плк.
тоже макет )
3: dwReadBytes := dwReadBytes + SysFileRead (dwFileIndex , ADR(sDb) + dwReadBytes , SIZEOF(sDb) - dwReadBytes );
IF dwReadBytes = SIZEOF(sDb) THEN
SysFileSetPos (dwFileIndex, 0 ); (* зачем здесь? *)
Step := 4;
END_IF
На всякий случай чтоб наверняка , типа обнуление всех условий, на сименсе я конечно так не делаю надобности нет, с овном тут другие обстоятельства.
Подтверждаю то что прошивка 67,73 не работает флеш в вар персистент ретайн, а 72 работает вопрос нахрена такую хрень писать
Где здесь вобще что-то написано про изменения. Вакханалия.0.3.73 - Исправлено обнуление RETAIN переменных при включении ПЛК с тумблером в положении STOP
0.3.72 - Исправлена работа с RETAIN переменными
- Увеличен RAM-диск до 256кб
- Улучшен обмен по RS-485
0.3.67 - Исправлен обмен при групповых запросах RS-485
- Исправлено появление ошибки 81 на RS-485-1 при корректном опросе
0.3.66 - Исправлена работа с TCP сокетами через библиотеку SysLibSocket.lib
- Добавлена поддержка OwenCloud
0.3.65 - Исправлена возможность перезагрузки ПЛК при работе по RS-485 при нестабильном соединении
0.3.64 - Улучшен обмен по RS-485
0.3.57 - Исправлен механизм Network Variables при обмене между ПЛК на Codesys v2 и v3
- Добавлена поддержка функций побитового чтения/записи в Modbus
0.3.56 - Улучшен обмен по RS-485
0.3.55 - Улучшена работа Modbus TCP при работе с несколькими slave при обрывах связи
- Поправлен функционал сетевых переменных (режим приемника)
0.3.53 - Исправлено чтение файлов при использовании 20 функции Modbus
0.3.52 - Исправлена невозможность повторного подключения к ПЛК при отключении опроса OPC сервера по Modbus TCP
0.3.51 - Добавлена поддержка чипов FTDI2322, подключаемых по USB
- Улучшена совместимость с библиотекой UNM
Последний раз редактировалось Екатерина Аладышева; 13.04.2018 в 18:29.