Как можно сделать программно чтобы перезапустить систему? есть ли такая функция либо макрос какой нить? У меня с модулями ПР200 зависает после перезагрузки снова начинает работать по модбас 485.
Как можно сделать программно чтобы перезапустить систему? есть ли такая функция либо макрос какой нить? У меня с модулями ПР200 зависает после перезагрузки снова начинает работать по модбас 485.
легче наверное найти причину зависания...
Может как вариант применить так называемый WatchDog. На одном их выходов ПР делать всегда контролируемый параметр, к примеру блинком, и при его пропадании выкл/вкл питание, каким нибудь внешним реле.
Вообщем стоит ПР200 и модуль ФМР пару штук, интервал между опросами поставил 3000мс, опрос слейв устройства поставил 1000мси тайм аут ответа 500мс. После нескольких часов он перестает считать данные. Передача по модбас 115200 скорость, 8N1.
А куда вы такую дикую скорость накрутили, если у вас такие редкие и медленные опросы?
1. попробуйте снизить скорость хотя бы до 19200, а то и вообще 9600
2. опрашивайте чаще. ничего страшного в этом не вижу, а вот редкие опросы могут приводить к тупняку (см. п.4)
3. проверьте настройки таймаутов в FMR
4. я сталкивался на ИПП120 (а она не далеко ушла от ПРки), которая была слейвом! с тем, что если в ее регистры никто ничего не пишет, она со связи отваливается. у меня мастером был другой контроллер, который иногда прерывал потоковую передачу на пару секунд для передачи параметрирующих данных в другие приборы (да, такая вот черезпопочная конфигурация). и ИПП120 наглухо залипала, так что просмотрите все внимательно.
5. напишите разработчикам FMR, что их модули гуано и они вас забанят
У меня около 130 переменных. поэтому опросы поставил больше. Чем больше скорость тем быстрее нет?
Чем больше скорость, тем выше требования к монтажу сети и выше вероятность ошибок связи по физическим причинам. Задирать выше необходимой - снижать стабильность связи.
Спасибо большое.
Если регистры подряд идут-включайте в мастере групповые запросы, тогда скорость значительно возрастает. Если вы ставите период 3 секунды, то у вас и на 9600 даже по одной все переменные успеют несколько раз отпроситься. Если не ошибаюсь, то на 1 переменную 16 бит вместе с запросом нужно 14 бит, плюс паузы. В итоге грубо со всеми запасами мне кажется около 500 переменных можно опросить за 1 секунду. Поправьте если не прав. Ну только если асинхронно со сканом все это работает.