Вход

Просмотр полной версии : запись переменной в флеш память плк



alexval2006
04.03.2012, 10:24
подскажите как записать переменную в флеш память плк а потом прочитать ее оттуда или может по другому как то может в файл текстовый сохранить а потом оттуда прочитать состояние переменных или как то по другому

nalnik
04.03.2012, 11:04
Плк 150 запись и чтение.
Создается файл с именем переменной.
Постоянно перезаписывать файл нельзя-- упорите флеш.

зап:
dwHandle := SysFileOpen('Pr_XX.t','

alexval2006
04.03.2012, 11:12
спасибо попробую

Yegor
06.03.2012, 11:47
См. в справке RETAIN.

mkhm
13.12.2012, 14:12
Плк 150 запись и чтение.
Создается файл с именем переменной.
Постоянно перезаписывать файл нельзя-- упорите флеш.

зап:
dwHandle := SysFileOpen('Pr_XX.t','w');
SysFileWrite(dwHandle,ADR(Pr_XX),SIZEOF(Pr_XX));
SysFileClose(dwHandle);

Чтение:
dwHandle := SysFileOpen('Pr_XX.t','r');
SysFileRead(dwHandle,ADR(Pr_XXf),SIZEOF(Pr_XXf)-1);
SysFileClose(dwHandle);


Работает.
Pr_XX --- имя переменной
SysLibFile.lib --- добавь библиотеку.

SysFileRead(dwHandle,ADR(Pr_XXf),SIZEOF(Pr_XXf)); - минус один, видимо, по ошибке

nalnik
13.12.2012, 20:13
нет это не ошибка!

mkhm
13.12.2012, 20:47
нет это не ошибка!
Сегодня проверял на ПЛК 100. Без -1 - работает, написал список переменных в файл. С -1 например UInt,Word работает до 255, так как из двух записанных байт восстанавливает один (из 4 -3, из 8 -7). Есть варианты когда можно проигнорировать целый байт?

S.A.D.
19.12.2012, 22:39
объясните тупому, что здесь делает переменная dwHandle? Какая-то индикация то файл открылся? Тогда зачем её пихать в функцию записи?
И еще, может кто подскажет как единоразово при включении ПЛК считать значение переменной из файла? откуда взять индикацию того что ПЛК включился после пропадания питания? Мне нужно примерно раз в 12 часов писать значение наработки двигателей во флеш и в случае пропадания питания или перезаливки проекта\сброса плк (когда RETAIN переменные слетают или могут слететь) восстанавливать это значение в программе.

capzap
20.12.2012, 07:00
объясните тупому, что здесь делает переменная dwHandle? Какая-то индикация то файл открылся? Тогда зачем её пихать в функцию записи?
А вообще читали документацию на библиотеку.
У Вас есть пластиковая карта, по её идентификатору Вам банкомат выдает деньги и принимает, так же и с переменной
И по поводу единовременно, ну полистайте форум, в этом же месяце обсуждалось это

Penni
12.05.2020, 11:59
Доброго времени суток!
Да простит меня модератор за поднятие темы, но чтобы не создавать новой спрошу тут.
Есть ли возможность прямого доступа к внутреннему флеш-диску? Можно по произвольному адресу писать?
Или внутренний флеш-диск предназначен только для работы с файловой системой?
Спасибо!

Cs-Cs
12.05.2020, 12:16
Точно с файловой системой.
Так тут уже говорили... RETAIN не помогут разве? Там что угодно можно хранить: да хоть массив байтов.

Penni
12.05.2020, 12:18
Точно с файловой системой.
Так тут уже говорили... RETAIN не помогут разве? Там что угодно можно хранить: да хоть массив байтов.

RETAIN мало по объему. Буду обдумывать другое решение.