Страница 3 из 5
Re: WiFi-шлюз для опроса MODBUS RTU устройств
Добавлено: Пт май 12, 2017 1:10 pm
THK
Добрый день!
Спасибо за отличную идею. Второй день занимаюсь с Вашим скриптом, сделал некоторые доработки, также появился один вопрос. Как побороть ошибку
Код: Выделить всё
PANIC: unprotected error in call to Lua API (init.lua:173: address in use)
Вот эта строка:
Код: Выделить всё
MBserver:listen(MODBUS_ServerPort, function(c)
Возникает не часто и в основном после перезаливки скрипта в ESP. Гугл побороть проблему не помог...
ElectronicsInFocus писал(а):integer или float - без разницы
Нужна прошивка с поддержкой float, иначе возникает ошибка в строке
Код: Выделить всё
elseif (RS485_StopBits == uart.STOPBITS_1_5) then Bits = Bits + 1.5
Re: WiFi-шлюз для опроса MODBUS RTU устройств
Добавлено: Ср май 17, 2017 11:57 am
ElectronicsInFocus
THK писал(а):Код: Выделить всё
PANIC: unprotected error in call to Lua API (init.lua:173: address in use)
Вот эта строка:
Код: Выделить всё
MBserver:listen(MODBUS_ServerPort, function(c)
Возникает не часто и в основном после перезаливки скрипта в ESP. Гугл побороть проблему не помог...
Видимо если сервер уже был запущен (при прошлом запуске скрипта), то при новом запуске выдаётся эта ошибка, т.к. этот порт уже прослушивается
THK писал(а):ElectronicsInFocus писал(а):integer или float - без разницы
Нужна прошивка с поддержкой float, иначе возникает ошибка в строке
Код: Выделить всё
elseif (RS485_StopBits == uart.STOPBITS_1_5) then Bits = Bits + 1.5
init.rar
Согласен
Re: WiFi-шлюз для опроса MODBUS RTU устройств
Добавлено: Пн янв 08, 2018 9:11 pm
Vasily7
Собрал сборку с float
(модули bit file GPIO net node timer UART WiFi). Залил скрипт. Пробовал оба ElectronicsInFocus и THK
В обоих вариантах выдает ошибку на строке
wifi.sta.config(WIFI_SSID, WIFI_PASS)
WIFI_SSID, WIFI_PASS забил свои
WIFI_SSID = "Vvv"
WIFI_PASS = "Togetho2388217"
init.lua:33: bad argument #1 to 'config' (config table not found!)
stack traceback:
[C]: in function 'config'
init.lua:33: in main chunk
[C]: in function 'dofile'
stdin:1: in main chunk
Библиотечная фунция поменялась? Про NodeMCU узнал 2 дня назад.
Как правильно?
Re: WiFi-шлюз для опроса MODBUS RTU устройств
Добавлено: Вт янв 09, 2018 1:40 pm
ElectronicsInFocus
Vasily7 писал(а):Собрал сборку с float
(модули bit file GPIO net node timer UART WiFi). Залил скрипт. Пробовал оба ElectronicsInFocus и THK
В обоих вариантах выдает ошибку на строке
wifi.sta.config(WIFI_SSID, WIFI_PASS)
WIFI_SSID, WIFI_PASS забил свои
WIFI_SSID = "Vvv"
WIFI_PASS = "Togetho2388217"
init.lua:33: bad argument #1 to 'config' (config table not found!)
stack traceback:
[C]: in function 'config'
init.lua:33: in main chunk
[C]: in function 'dofile'
stdin:1: in main chunk
Библиотечная фунция поменялась? Про NodeMCU узнал 2 дня назад.
Как правильно?
Да, в nodemcu поменяли API
В документации есть пример как теперь инициализировать wifi:
https://nodemcu.readthedocs.io/en/maste ... ules/wifi/
См. примеры к команде wifi.sta.config()
Re: WiFi-шлюз для опроса MODBUS RTU устройств
Добавлено: Вс июн 24, 2018 11:50 pm
Anton
Вылетает ошибка на строчке
local rtu_body = string.sub(paket, 7, #paket)
что необходимо поправить???
Re: WiFi-шлюз для опроса MODBUS RTU устройств
Добавлено: Пн июн 25, 2018 8:12 am
ElectronicsInFocus
Anton писал(а): ↑Вс июн 24, 2018 11:50 pm
Вылетает ошибка на строчке
local rtu_body = string.sub(paket, 7, #paket)
что необходимо поправить???
Текст ошибки можете привести?
Re: WiFi-шлюз для опроса MODBUS RTU устройств
Добавлено: Вс июл 01, 2018 3:09 pm
Vasily7
Сборка на SDK 2.2.1(cfd48f3). В версии с float.
при загрузке
tmr0 255 255 с интервалом в 5 сек
видимо срабатывает строка tmr.alarm(0, 5000, tmr.ALARM_AUTO, function()
Точка присутствует пароль проверял несколько раз.Пробовалось на двух esp результаты аналогичны.
Скрипт
https://cloud.mail.ru/public/4kec/heqQxWEfi
Что не так делаю?
Re: WiFi-шлюз для опроса MODBUS RTU устройств
Добавлено: Вс июл 01, 2018 4:30 pm
ElectronicsInFocus
Vasily7 писал(а): ↑Вс июл 01, 2018 3:09 pm
Сборка на SDK 2.2.1(cfd48f3). В версии с float.
при загрузке
tmr0 255 255 с интервалом в 5 сек
видимо срабатывает строка tmr.alarm(0, 5000, tmr.ALARM_AUTO, function()
Точка присутствует пароль проверял несколько раз.Пробовалось на двух esp результаты аналогичны.
Скрипт
https://cloud.mail.ru/public/4kec/heqQxWEfi
Что не так делаю?
код 255, который возвращает wifi.sta.status() означает, что WiFi в статусе "Not in STATION mode"
wifi.setmode(wifi.STATION) не забыли?
Re: WiFi-шлюз для опроса MODBUS RTU устройств
Добавлено: Пн июл 02, 2018 10:39 am
Vasily7
Действительно, вставил
wifi.setmode(wifi.STATION)
esp подключился. На пинг отвечает.
Но почему-то, ответ от слейва ошибочный.
Конвертер подключен к слейву через драйвер rs485. На ногах драйвера импульсы нормальные. Управление приемом-передачей драйвера присутствует.
Использую 3,4 функцию для опроса устройства. Запрос верный, (смотрю в буфере микроконтроллера из под отладчика) слейв отвечает, но ответ через конвертер приходит неверный. Хотя параллельно сниффером на rs485 смотрю - ответ слейвом формируется верный. По RS485 (без конвертера) на таких же запросах (адреса и количество регистров идентичны) слейв нормально опрашивается. Пробовал на двух esp.
лог
мастер (MODBUS-TCP) 0a 31 00 00 00 06 01 03 00 00 00 01
ответ 0a 0a 00 00 00 05 и не меняется.
При выключении слейва ответа нет .
Пробовал менять задержки между приемом запроса и выдачей ответа у слейва. Результат аналогичный. Пробовал на скоростях 2400 и 9600.
Re: WiFi-шлюз для опроса MODBUS RTU устройств
Добавлено: Пн июл 02, 2018 10:42 am
Vasily7
На каких функциях модбаса тестировалось?