PDA

Просмотр полной версии : Редактирование энергонезависимых уставок по Slave 485



lagutin
10.12.2021, 10:55
Вот такая схема работает. Но если 10 уставок, то городить на каждую такое не хочется. Да
и наверняка "лайфак" есть, а не мой велосипед...... Но я что то не нашел. Собственно загвоздка, чтобы при включении запретить опрос по порту и дать возможность назначить переменные назначенные умолчанию при перепрошивке. Они назначаются нулями.58274 На мастере можно переменные опросу назначить, а на слейве что то я не увидел...

Ревака Юрий
10.12.2021, 11:18
Вот такая схема работает. Но если 10 уставок, то городить на каждую такое не хочется. Да
и наверняка "лайфак" есть, а не мой велосипед...... Но я что то не нашел. Собственно загвоздка, чтобы при включении запретить опрос по порту и дать возможность назначить переменные назначенные умолчанию при перепрошивке. Они назначаются нулями.58274 На мастере можно переменные опросу назначить, а на слейве что то я не увидел...

А через SelChgI не проще будет?, на входе и выходе макроса по 2 переменных сетевая и энергонезависимая.

lagutin
10.12.2021, 14:19
А через SelChgI не проще будет?
Да, с этим макросом работает тоже. Но не проще:) В макросе на 4 элемента больше..... А задержать опрос по слоту слейва никак нельзя получается????

Ревака Юрий
10.12.2021, 14:23
Да, с этим макросом работает тоже. Но не проще:) В макросе на 4 элемента больше..... А задержать опрос по слоту слейва никак нельзя получается????

Кол-во элементов я не считал, но на вид конструкция явно проще.

Слейв подневольное существо;), когда спросят, тогда и отвечает, это только в мастере что-то такое возможно.

dan75
10.12.2021, 15:29
Да, с этим макросом работает тоже. Но не проще:) В макросе на 4 элемента больше..... А задержать опрос по слоту слейва никак нельзя получается????

Задержать опрос можно, но в мастере. Вообще, мастер, имхо, должен писать переменные в слейв только тогда, когда это действительно нужно, а не по умолчанию. Тогда и в слейве дополнительные макросы не понадобятся. Ежели мастер -- тоже ПР, то можно завести переменную, которая становится в 1 при установлении связи со слейвом. И отсчитывать время от момента установления связи.

keysansa
10.12.2021, 18:43
Да, с этим макросом работает тоже. Но не проще:) В макросе на 4 элемента больше..... А задержать опрос по слоту слейва никак нельзя получается????

Поищите мои сообщения по форуму (я не смог быстро найти), я с похожей проблемой в этом году столкнулся. Мне Sergey0308 помог. Но да, только в сторону макроса. Могу предложить "макрос завернуть в макрос" и сделать 1 на 8/16 шт.

Dimensy
10.12.2021, 19:32
был на форуме макрос, который задавал сетевым переменным при первой загрузке значения по-умолчанию. Set_Def назывался. Искать пост лень, вот пример

petera
10.12.2021, 21:33
Вот такая схема работает. Но если 10 уставок, то городить на каждую такое не хочется. Да
и наверняка "лайфак" есть, а не мой велосипед...... Но я что то не нашел. Собственно загвоздка, чтобы при включении запретить опрос по порту и дать возможность назначить переменные назначенные умолчанию при перепрошивке. Они назначаются нулями.58274 На мастере можно переменные опросу назначить, а на слейве что то я не увидел...

Проблема на пустом месте.
Сетевые переменные в слейве ПРки и так энэргонезависимые.
По этому не нужно никаких доп. переменных, прямо сетевую переменную используете в программе без доп.макросов, в том числе и для ввода/вывода на экран ПРки
58287

Единственное неудобство - начальные значения задать на прямую нельзя, нужен макрос + 1 энергонезависимая BOOL переменная, одна для всех макросов


был на форуме макрос, который задавал сетевым переменным при первой загрузке значения по-умолчанию. Set_Def назывался. Искать пост лень, вот пример
Это макрос предложил я https://owen.ru/forum/showthread.php?t=35184&p=361851&viewfull=1#post361851

58290 58291

dan75
11.12.2021, 10:08
petera, т.е., грубо говоря, вместо энергонезависимых переменных предлагается использовать константы. Ну, такоэ себе... С одной стороны, уставки точно не слетят от помехи (на что на форуме неоднократно жаловались). Но с другой -- их не удастся поменять без перезаливки программы в ПР.

kondor3000
11.12.2021, 13:57
petera, т.е., грубо говоря, вместо энергонезависимых переменных предлагается использовать константы. Ну, такоэ себе... С одной стороны, уставки точно не слетят от помехи (на что на форуме неоднократно жаловались). Но с другой -- их не удастся поменять без перезаливки программы в ПР.

Константы сработают только при включении ПР или при перезагрузке. Это как бы безопасные значения при сбое питания.
Во время работы вы можете переменные менять без проблем.

petera
11.12.2021, 14:16
Константы сработают только при включении ПР или при перезагрузке. Это как бы безопасные значения при сбое питания.
Во время работы вы можете переменные менять без проблем.
При сбое питания это не работает, только при первом старте после загрузки проекта в ПРку!


petera, т.е., грубо говоря, вместо энергонезависимых переменных предлагается использовать константы. Ну, такоэ себе... С одной стороны, уставки точно не слетят от помехи (на что на форуме неоднократно жаловались). Но с другой -- их не удастся поменять без перезаливки программы в ПР.
Сначала нужно попробовать, а потом критиковать.

Константы записываются в сетевые переменные ТОЛЬКО ОДИН РАЗ- ПОСЛЕ ЗАГРУЗКИ ПРОЕКТА В ПР!!!
В дальнейшем они меняются по сети и сохраняют последнее состояние

kondor3000
11.12.2021, 14:36
При сбое питания это не работает, только при первом старте после загрузки проекта в ПРку!


А если сделать импульс при включении? Так например: 58300

petera
11.12.2021, 14:43
А если сделать импульс при включении? Так например: 58300

Мне и вопрошающему ТС так не надо
Требовалось - начальные значения как у энергонезависимых переменных. Однократные, действуют только при загрузке проекта.

keysansa
12.12.2021, 17:26
Это макрос предложил я
Сергей3060 предложил его ранее. У меня в конце мая проблема возникла.

keysansa
12.12.2021, 17:31
При сбое питания это не работает, только при первом старте после загрузки проекта в ПРку!


Сначала нужно попробовать, а потом критиковать.

Константы записываются в сетевые переменные ТОЛЬКО ОДИН РАЗ- ПОСЛЕ ЗАГРУЗКИ ПРОЕКТА В ПР!!!
В дальнейшем они меняются по сети и сохраняют последнее состояние

Проверка параметров нужна всегда. И при загрузке системы и при первом старте и во время использования. Я храню в параметрах так же, их контрольную сумму. Если не старт системы (1 с при 200мс цикле, например) и контрольная сумма параметров не сходится 3 цикла программы (время на то, что параметры изменили с панели управления) - останов, иначе не пойми чего система наделает.

lagutin
13.12.2021, 08:52
Есть над чем подумать... Надо все пересобрать в голове. Спасибо всем. А вот уточняющий вопрос?? Выходит для ПР есть разница выключение питания и перепрошивка. А в чем она? На переменную этот момент можно повесить? Ведь почему при выключении питания первыми энергонезависимые переменные прописываются и слейв уже их считывает и не меняет. А при перепрошивке уставки прописываются нулями. Ну или что там в значениях сетевых переменных, при эмуляции нули. И вроде как, если в инструкции прописать, что после перепрошивки необходимо выкл. и вкл. питание ПР - тоже, хоть и так себе, но вариант решения проблемы. Хотя с другой стороны мы же перегружаем комп после обновлений. И ничего...

kondor3000
13.12.2021, 09:20
Есть над чем подумать... Надо все пересобрать в голове. Спасибо всем. А вот уточняющий вопрос?? Выходит для ПР есть разница выключение питания и перепрошивка. А в чем она? На переменную этот момент можно повесить? Ведь почему при выключении питания первыми энергонезависимые переменные прописываются и слейв уже их считывает и не меняет. А при перепрошивке уставки прописываются нулями. Ну или что там в значениях сетевых переменных, при эмуляции нули. И вроде как, если в инструкции прописать, что после перепрошивки необходимо выкл. и вкл. питание ПР - тоже, хоть и так себе, но вариант решения проблемы. Хотя с другой стороны мы же перегружаем комп после обновлений. И ничего...

Вы внимательно прочитали что написано? Похоже что нет. Сетевые переменные при загрузке, всегда в нуле. Потом вы их прописываете и они сохраняются, но при сбое могут слететь. Если вы уверены, что бросков питания не будет (поставили бесперебойник), можете не заморачиваться.
Выложенный макрос записывает сетевые переменные при загрузке, я добавил вариант, при любом включении (но тут есть минус, при включении запишутся безопасные значения из констант, а не последние сохранённые). Вы программируете и решаете как вам сделать.

Можно сделать ещё круче, проверять сетевые на 0 и в случае сбоя, записывать уставки безопасными значениями.

melky
13.12.2021, 10:04
Значение по умолчанию для сетевых переменных при перепрошивке УБИЛИ после версии 1.8 или около. Потом заявили что не так что-то с ПР200 и с тех пор приходится пользоваться костылями в виде SelChg.

А изменить что-то в прошивке ПР видимо не получается... Как говорится, смиритесь с этим...

lagutin
13.12.2021, 10:09
Я в процессе. Видимо не все еще уловил. Но мне не надо писать сетевые переменные при загрузке?? При всех сбоях и пропадании питания и т.п должны прописываться переменные, которые в ПР забиты в энергонезависимую память. А при перепрошивке - те которые по умолчанию.Или нет? Ведь в общем случае то слейв порт вообще может не будет использоваться и никаких значений там не будет.. Короче сделаю ка я пока на слейв только чтение. "Подрасту умишком", тогда.

lagutin
13.12.2021, 10:13
Значение по умолчанию для сетевых переменных при перепрошивке УБИЛИ после версии 1.8
Но пунктик в свойствах то остался, может когда опять станет редактируемым.....

melky
13.12.2021, 12:28
lagutin очень надеюсь, ибо достало... приходится тратить 2 переменных для этого, вместо одной сетевой, так как она тоже энергонезависимая.
Ну и FBD на поле лишних валяется из-за этого, если надо после прошивки сразу проинициализировать нужные сетевые переменные.

keysansa
17.12.2021, 22:08
Если вы уверены, что бросков питания не будет (поставили бесперебойник), можете не заморачиваться.

Не всегда получается отследить бесперебойник (2-5 лет, и батареи скажут, что устали и уходят). Поэтому, не стоит его закладывать как аргумент "не заморачиваться"