PDA

Просмотр полной версии : ПЛК63 и MODBUS переменные



Alex989
27.03.2011, 17:29
В программе есть несколько переменных (счетчики с максимально возможной частотой обновления раз в секунду) объявленные как Retain (необходимо сохранение значений при пропадении питания)
Как получить к ним доступ по Modbus в режиме Slave ПЛК?

Вриант 1 - объявить параметр в конфигурации с запретом отображения и с разрешением доступа по сети с типом Конфигурационный - и использовать его непосредственно как счетчик

Вриант 2 - объявить параметр в конфигурации с запретом отображения и с разрешением доступа по сети с типом Оперативный - и где-то в программе отображать значение из Retain переменной счетчика в этот параметр.

Какой вариант правильный? Есть еще варианты?

PS в описании отсутствует: количество перезаписи EEPROM?
в какой памяти находится область из 448 байт Retain переменных?

ASo
27.03.2011, 17:34
Вариант 1 категорически запрещен - вы протрете Flash. Запись во Flash - при каждом изменении.
Пользуйтесь вариантом 2.
P.S. Число перезаписей - считайте что не более 50тыс.
Область Retain из программы не доступна.

Alex989
27.03.2011, 18:01
Тогда вопрос - в какой памяти сохраняется параметр конфигурации, объявленный как Оперативный и как правильно осуществлять запись в него?
var retain
count1 : uint;

параметр конфигурации
mdb_count1 : AT %QW4.3.54.0 UINT Оперативный, адрес modbus 332

правильно ли
if (событие)
count1:=count1+1;
mdb_count1:=count1;
end_if;

ASo
27.03.2011, 18:07
Тогда вопрос - в какой памяти сохраняется параметр конфигурации, объявленный как Оперативный и как правильно осуществлять запись в него?Оперативный параметр не сохраняется в EEPROM. Именно поэтому он оперативный.

Ваш пример правилен.
К нему надо только одно дополнение. При старте контроллера Retain копируются в оперативные параметры. Для синхронизации. Во избежание...

Alex989
27.03.2011, 18:10
Это понятно :)
Спасибо за исчерпывающий ответ!


ps .. непонятно только почему не изменяется количество байт использованной оперативной памяти ("Использованно данных: 597 из 10240 Байт" - статистика из CoDeSys) при добавление n-ного количества оперативных параметров... Куда по его мнению они добавляются, блин..

ASo
27.03.2011, 18:25
ps .. непонятно только почему не изменяется количество байт использованной оперативной памяти ("Использованно данных: 597 из 10240 Байт" - статистика из CoDeSys) при добавление n-ного количества оперативных параметров... Куда по его мнению они добавляются, блин..Почитайте в РП (не РЭ!) о размещении параметров.
Для этого выделена отдельная область памяти, куда нет размещения обычных переменных. По ее величине и производится лицензирование RTM данного контроллера.

Alex989
27.03.2011, 18:29
Срасибо. Точно. Торможу.
Кстати, описание корявое до нельзя.
Нет бы сразу, в начале, описать все типы памяти и их распределение и адресацию. Все урывками и в разных местах..