PDA

Просмотр полной версии : Сменить IP у ПЛК100 "на ходу"



SlavikP
31.01.2018, 16:25
Добрый день!
На одном объекте нужно поставить несколько типовых шкафов с контроллерами. Все шкафы одинаковые, управляют одинаковым оборудованием. Все ПЛК находятся в одной сети. Разница только в IP контроллера.
Вопрос: можно ли на лету менять IP? Для унификации программы. Это даст возможность сделать шкаф типовым решением, без привязки к месту, что очень удобно.
Например на месте оператор мог с панели IP ввести, и не заморачиваться с возможными перепутками шкафов при монтаже.
Или я многого хочу?

monteg
31.01.2018, 20:14
Можно. Файл local_addres.dat.

Сергей Лысов
01.02.2018, 09:58
Можно. Файл local_addres.dat.

Изменение в local_addres.dat сработает только после перезагрузки контроллера.

monteg
01.02.2018, 10:17
Изменение в local_addres.dat сработает только после перезагрузки контроллера.

Главное, чтобы сработали ...

SlavikP
02.02.2018, 08:15
Главное, чтобы сработали ...
А что, бывают варианты несрабатывания? Подробности можете сказать?

monteg
02.02.2018, 20:48
А что, бывают варианты несрабатывания? Подробности можете сказать?

Да это я так. Если все правильно сделаете, то все будет хорошо. Там нет ничего сложного.
ЗЫ: сделайте копию local_addres.dat, например local_addres.bak, и файловые операции чтения/записи лучше отладить на нем
ЗЫЫ: не забывайте, что в ПЛК100 есть аккумулятор, а новые настройки вступят в силу только после окончательного выключения ПЛК.

murdemon
02.02.2018, 22:03
просто в бесконечный цикл вгоняешь в программе и он сам перегружается по вачдогу

monteg
02.02.2018, 22:33
просто в бесконечный цикл вгоняешь в программе и он сам перегружается по вачдогу

Можно и так конечно, но вообще-то енто плохая практика ...

SlavikP
03.02.2018, 07:11
просто в бесконечный цикл вгоняешь в программе и он сам перегружается по вачдогу
А как лучше такой трюк сделать? Можно пример на ST для понимания?

monteg
03.02.2018, 09:25
А как лучше такой трюк сделать? Можно пример на ST для понимания?

Дурное дело не хитрое


WHILE TRUE DO
;
END_WHILE

или так


REPEAT
;
UNTIL FALSE
END_REPEAT

или так


VAR
i : BYTE;
END_VAR
...
FOR i := 0 TO 16#FF DO
;
END_FOR

Но в результате таких действий могут появиться нехорошие побочные эффекты. Например, если изменились retain-ы, то после такой перезагрузки они не сохраняться. В коммерческих проектах такие вещи лучше не использовать. А в тестах да, можно побаловаться.

monteg
03.02.2018, 09:45
Я для изменения настроек ethernet пользовался вот этим.
ЗЫ: я описания не сделал, но там есть примеры, если захотите, то разберетесь