Страница 44 из 46

Версия программы 4.х

Добавлено: 03.02.2019{, 17:31}
Ivan-07
Опять вылет при компиляции ((((
FL4.2.4.jpg

Версия программы 4.х

Добавлено: 03.02.2019{, 17:46}
Ingwar
Народ, у кого проблемы с не сохранением/вылетом/ошибками и т.д., в 99% случаев причина - пользовательские блоки (которые не на чистом коде) созданные в предыдущих версиях.
Гарантированное лечение - пересоздать нужный блок в актуальной версии.
Бывает и так, что файл содержащий ПБ на Си, созданный в ранних версиях заливается нормально, но не работает. В таком случае решение - пересобрать проект в актуальной версии.

З.Ы. про это уже много написано, читайте внимательнее.

Версия программы 4.х

Добавлено: 03.02.2019{, 18:36}
Golan
Я сохраняю файл блоков, ставлю новую версию и перезаливаю файл, все нормально, вылетов нет.

Версия программы 4.х

Добавлено: 03.02.2019{, 19:33}
vovka1973
Golan писал(а):
03.02.2019{, 18:36}
Я сохраняю файл блоков, ставлю новую версию и перезаливаю файл, все нормально, вылетов нет.
просто у вас нет блоков где участвует старый счетчик по идеи должен такой блок вылететь так как счетчик переработан

Версия программы 4.х

Добавлено: 03.02.2019{, 19:39}
Golan
Возможно.

Версия программы 4.х

Добавлено: 03.02.2019{, 23:11}
alexwalex
Начиная с версии программы 4.2.1 на контроллерах ESP8266 перестала отключаться точка доступа при подключении контроллера как клиента к роутеру. Для отключения точки доступа использовал запись "0" в системный параметр "WiFi точка доступа - Состояние".
0000.flp
(37.73 КБ) 90 скачиваний
До версии 4.2.0 включительно это работало.
При выводе в ArduinoIDE отсутствуют строки:
WiFi.softAPdisconnect(true);
if( ! ESP8266ControllerWifiAP_workStatus) { return;}

и
WiFi.disconnect(true);
if( ! ESP8266ControllerWifiClient_workStatus) { return;}

Версия программы 4.х

Добавлено: 05.02.2019{, 17:45}
com
версия программы 4.2.4, в настройках блока установка часов sd3231 ставлю год 2019, а устанавливается 2067 год. Установил в настройках 1971, в часах стало 2019. Не понятно, то ли в часах дело то ли в программе.
Очень хочу в 1971 :smile171:

Версия программы 4.х

Добавлено: 05.02.2019{, 18:36}
Ivan-07
Ingwar писал(а):
03.02.2019{, 17:46}
Народ, у кого проблемы с не сохранением/вылетом/ошибками и т.д., в 99% случаев причина - пользовательские блоки (которые не на чистом коде) созданные в предыдущих версиях.
Гарантированное лечение - пересоздать нужный блок в актуальной версии.
Бывает и так, что файл содержащий ПБ на Си, созданный в ранних версиях заливается нормально, но не работает. В таком случае решение - пересобрать проект в актуальной версии.

З.Ы. про это уже много написано, читайте внимательнее.
Пробовал. Создавал с самого начала. До определённого количества блоков внутри пользовательского блока работает нормально. Если их внутри много - вылетает.

Отправлено спустя 6 минут 20 секунд:
com писал(а):
05.02.2019{, 17:45}
#870 Сообщение com » 48 минут назад
версия программы 4.2.4, в настройках блока установка часов sd3231 ставлю год 20219, а устанавливается 2067 год. Установил в настройках 1971, в часах стало 2019. Не понятно, то ли в часах дело то ли в программе.
Очень хочу в 1971
20219 - зачем? Явное переполнение переменной, поэтому и сбрасывает

Версия программы 4.х

Добавлено: 06.02.2019{, 03:11}
com
Ivan-07, понятно же что опечатка, 2019

Версия программы 4.х

Добавлено: 06.02.2019{, 08:23}
Sancho
Ещё раз.
Блок установки часов реального времени.
Блок использует ВСЕ данные для времени и даты, независимо от того, используете Вы их или нет.
Не установленные Вами данные будут иметь значение 0.
Год устанавливается последними двумя цифрами. На данный момент - 19.

Версия программы 4.х

Добавлено: 06.02.2019{, 13:21}
whitevip
Sancho, где этот блок?

Версия программы 4.х

Добавлено: 06.02.2019{, 15:24}
Sancho
whitevip, Речь о стандартном блоке из программы.
"Установка времени для часов реального времени"

Отправлено спустя 13 минут 56 секунд:
Это недочёт Автора, надеюсь, исправит, а именно:
в функции

Код: Выделить всё

void set3231Date(int addres, struct _I2CRealRimeClockTime *timeStruct, byte sec, byte  minut, byte hou, byte dat, byte mo, byte ye, byte daW)
аргументы объявляются как байты, а потом проверяется на корректность и отправляется,
например:

Код: Выделить всё

if (sec < 0) {
    temp = timeStruct -> seconds;
  } else {
    temp = sec;
  }
  Wire.write(decToBcd(temp));
Учитывая, что байт по сути не может быть отрицательным, отправляется -1, т.е. 255
Вот когда Автор поменяет в функции byte на char, тогда и будет работать по Его задумке....

Версия программы 4.х

Добавлено: 06.02.2019{, 16:28}
magpit
support,
Вылез вот такой баг сразу не понял а потом разобрался.
Как лечил - просто пришлось удалить тег и создать новый.
Раньше, когда меняешь тег на другой всё сбрасывалось на исходный.
А тут что то не перестроился
СпойлерПоказать
баг в тегах.jpg

Версия программы 4.х

Добавлено: 07.02.2019{, 22:30}
ussrsrtru
Автору на заметку.
СпойлерПоказать
Screenshot_1.png
Просто опечатки в тексте FlProg. Автору на заметку.

Версия программы 4.х

Добавлено: 08.02.2019{, 15:03}
midnight1979
В общем сейчас решил попробовать создать на FLProg проект по мониторингу теплиц (больших, промышленных).
Все устройства обмениваются по протоколу Modbus
Суть вот в чем:
За пример берем один блок размером 100*100 метров.
На площади этого блока установлено:
1. 9 шт. датчиков (RS-485 Modbus) температуры-влажности - 2 тэга (HoldReg Float)
2. 1 комбинированный датчик газа (2 датчика пропана и 1 датчик СО) - 3 тэга (HoldReg ShortInt)
3. Модуль реле (2 реле в модуле) - 2 тэга. (Colis Bool)

Вышенаписанное для примера (тэгов на самом деле больше - адреса, еще кое какие служебные)

Окей - все эти датчики опрашивает мастер-контроллер, который одним интерфейсом RS-485 "смотрит" на датчики (т.е. является для них мастером), а на второй его интерфейс RS-485 смотрит OPC сервер (т.е. для него он Slave).
Ну и вот собственно один нюанс выскочил:
в flprog созданы проекты для мастера, слейвов, таблицы регистров для всех устройств естественно - всё работает за исключением того что если мы подтягиваем в OPC больше 14 тэгов - начинаются проблемы с контрольной суммой пакетов Modbus - об этом рапортует сам OPС.
Опрос мастер-контроллера становится не стабильным, различные игры со скоростью и таймаутами тоже эффекта не дают.
В итоге полез смотреть в Arduino IDE, что же получается после компиляции проекта.

Посмотрел на массивы с адресами и данными регистров - вроде всё адекватно.
Ну а потом нашел вот такую вещь в глобальных переменных: byte _modbusSlaveBuffer[64];
Собственно увеличил этот буфер РОВНО в два раза: byte _modbusSlaveBuffer[128];
И всё встало на свои места!!!

Собственно это косячок самой библиотеки Mobus которая сидит в FLProg - наверное нужно исправлять....

Немного еще добавлю - на данный момент добавил еще тэги и опрашиваю с мастер-контроллера 51 тэг (из них 36 тэгов Float, остальные int и Bool) - пришлось _modbusSlaveBuffer до 256 расширить (128 тоже с контрольными суммами при таком количестве тэгов начало бордачить...)

Версия программы 4.х

Добавлено: 10.02.2019{, 15:05}
dizzyy
заметил непонятку в создании пользовательского блока в коде ..флпрог последняя
я оглашаю переменную , далее в теле делаю операции ... в иде присваивается нижняя черточка, переменная и куча цифр - вроде все нормально..
но когда пробовал усреднить 10 значений (сумирую и делю на 10) в таком виде x=y/10 то переменная х нормально записывается (_х14676646555), а вот y записывается просто одной буквой y , и при проверке выскакивает что она не декларируется .
что делаю не так?
СпойлерПоказать
ZMPT101B_(CODE).ubi
(129.65 КБ) 84 скачивания
здесть я декларирую float tenvals и в иде в формате tenvals_137100616_1= 0.0
но строчка деления так получается float Avg_137100616_1= tenvals/10.0;

Отправлено спустя 20 минут 47 секунд:
получилось обойти, проблема в делении , обновил код в таком формате и все в порядке float Avg= tenvals*0.10;

Версия программы 4.х

Добавлено: 10.02.2019{, 15:50}
RedSky
Было что то похожее. К переменной не дописывался уникальный идентификатор. Помогало добавление пробелов в начале строки, до/после скобок и операторов.

Версия программы 4.х

Добавлено: 10.02.2019{, 16:24}
Sancho
dizzyy, когда пишешь код прямо в flp, не набирай переменную, а нажимай пкм, вставить..., или
RedSky писал(а):
10.02.2019{, 15:50}
Помогало добавление пробелов в начале строки, до/после скобок и операторов.
В первом случае прога сама добавляет пробелы с двух сторон, и всё хоккей.

Версия программы 4.х

Добавлено: 11.02.2019{, 19:40}
golloper
Скажите пожалуйста, когда починят встроенные в программу модули для RFID меток и модуль работы с CD картами. Ошибка при компиляции с вылетом из программы.

Отправлено спустя 39 секунд:
на 3.0 всё это прекрасно работает

Версия программы 4.х

Добавлено: 16.02.2019{, 16:35}
aidar_i
Сегодня заметил, при компиляции программа автоматически добавляет строки (попробуйте скомпилировать пустой проект, плата ESP8266):
СпойлерПоказать
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}
Вопрос, зачем?