Запись в еепром в два слота, а чтение из 1-го слота? Зачем тогда записывать в 2-ва слота?Vitez писал(а):Добавлено (10.02.2017, 08:38)---------------------------------------------
Вот это интересно. А можно плату без условий поставить на первое место, будет также адекватно загружать переменные из памяти в Modbus?Boroda писал(а):если это отложить на потом, то работает некорректно (Скада видит ноль).
А если программа работает а Modbus подключается в процессе работы программы, или данные в память записани, то считать можно только после рестарта программы на ардуине?Boroda писал(а):Т.о. чтение из памяти происходит один раз при запуске программы.
Вы приложенную программу смотрели?CraCk писал(а):А если программа работает а Modbus подключается в процессе работы программы, или данные в память записани, то считать можно только после рестарта программы на ардуине?
3.Основной цикл программы представляет собой набор генераторов и переприсвоения переменных модбаса.
Переменные из EEPROM должны выдергиваться сразу же после запуска контроллера, и лучше сразу выгружать их в переменные Модбас. "Без условия": а зачем Вам в каждом цикле выполнять команду Val_modbus = EEPROM.readInt, это же отнимает время. Проще же сделать Val_modbus = Val.CraCk писал(а):А можно плату без условий поставить на первое место, будет также адекватно загружать переменные из памяти в Modbus?
У меня как раз задействованы все регистры, как чтения так и записи, аналоговые, и булеановские. Передаются туда-сюда. Записываются в EEPROM, считываются.Boroda писал(а):Max, если ваше устройство является Слейвом, то уставки (переменные, которые передаются туда/сюда readwrite) модбас должны быть присвоены сразу же при запуске программы. Переменные, которые передаются только в сторону скады (readonly) можно записывать в любом месте программы.
А Вашем примере переменная disp вообще чем управляет? Она даже с блоком дисплея не связана...Boroda писал(а):Max, самое главное - это из основного цикла программы выкинуть все лишнее, что не нужно выполнять каждый цикл. Обновление дисплея со всеми преобразованиями String только по необходимости. Все датчики разделить по платам с условием, а условие - генератор с RTrig в основном цикле.
Понял. Пользуюсь старой версией 2.1.1Boroda писал(а):Max, так проект в версии 2.3.1, условие на плате дисплея стоит.