Очень странно...
А в Serial Monitor что выдаёт??
Modbus, Ethernet, SCADA и прочие "излишества"
Tomat7
Магистр
Черноморская губинния
236 138
Отв.20 18 Февр. 18, 11:04
Tomat7
Магистр
Черноморская губинния
236 138
Отв.21 18 Февр. 18, 12:41
На всякий случай проверил "с нуля" - на чистый комп поставил Arduino IDE, добавил библиотеки и скетчи скачав из этой темы, откомпилил и залил в чистую Ардуино Нано без Ethernet шилда, но с LCD 16x2. Всё показывает - и оригинальный скетч регулятора тока и мой MB-reg-094.
baton
Доктор наук
Санкт-Петербург
648 230
Отв.22 18 Февр. 18, 13:31, через 50 мин
При компиляции пишет замечания типа таких
Добавлено через 22мин.:
Так, на рабочем компе попробовал, вобще никаких замечаний
Но на экране та же история.
Вечером попробую ещё поковыряться, посмотреть, что не так может быть.
Добавлено через 10ч. 55мин.:
Монитор порта показывает, что всё хорошо
Значит у меня что-то с подключением экрана. На двух экранах пробовал и на разных Arduino. A4 и A5 подключение?
In file included from sketchconfig.h:17:0,Я не придал им значения, раз не ошибка.
from D:Мои документушкиArduinoMB-reg-094MB-reg-094.ino:9:
D:Мои документыArduinolibrariesRegPower/RegPower.h:13:0: warning: "LIBVERSION" redefined
#define LIBVERSION "RegPower_v20171225 R="
Добавлено через 22мин.:
Так, на рабочем компе попробовал, вобще никаких замечаний
Но на экране та же история.
Вечером попробую ещё поковыряться, посмотреть, что не так может быть.
Добавлено через 10ч. 55мин.:
Монитор порта показывает, что всё хорошо
Free RAM: 973
MAC: DE:AD:BE:EF:30:1
WIZ5100 IP: 0.0.0.0
DStemp_v20180121 on pin 6
00
5446
Free RAM: 925
0: 0.00 | 1
Pnow=0
Pset=987
Pteh=0
0: 0.00 | 1
Pnow=0
Pset=0
Pteh=0
Значит у меня что-то с подключением экрана. На двух экранах пробовал и на разных Arduino. A4 и A5 подключение?
Tomat7
Магистр
Черноморская губинния
236 138
Отв.23 19 Февр. 18, 11:10
A4 и A5 подключение?Да конечно, стандартно для Arduino Nano - A4 SDA, A5 SCL. (Pro Mini так же)
На двух экранах пробовал и на разных Arduino.Мистика какая-то. :-\
baton
Доктор наук
Санкт-Петербург
648 230
Отв.24 19 Февр. 18, 12:41
С подключением экрана всё нормально.
Случайно в магазине напоролся на "Arduino Nano Sensor Shield" где уж точно ничего не спутаешь. Да и со скетчем регулятора работает.
Пробовал компилировать и с обновлёнными библиотеками - без разницы. И правда мистика...
Может конечно я каких-то тонкостей не знаю, которые всем кажутся очевидными, и что-то не так делаю
Случайно в магазине напоролся на "Arduino Nano Sensor Shield" где уж точно ничего не спутаешь. Да и со скетчем регулятора работает.
Пробовал компилировать и с обновлёнными библиотеками - без разницы. И правда мистика...
Может конечно я каких-то тонкостей не знаю, которые всем кажутся очевидными, и что-то не так делаю
Tomat7
Магистр
Черноморская губинния
236 138
Отв.25 19 Февр. 18, 15:38
Да нет там никаких хитростей - там всё "в лоб" сделано как раз для простоты.
Приложил один из старых скетчей без Ethernet'a - если не сложно, попробуй с ним дисплей "запустить".
Для него еще нужна библиотека Dallas Temperature https://github.com/...Control-Library
Еще можно попробовать без шилда (того что с желтыми контактами), то есть подключаться напрямую к ногам Ардуино.
Добавил i2c_scanner.ino для определения адреса дисплея.
Приложил один из старых скетчей без Ethernet'a - если не сложно, попробуй с ним дисплей "запустить".
Для него еще нужна библиотека Dallas Temperature https://github.com/...Control-Library
Еще можно попробовать без шилда (того что с желтыми контактами), то есть подключаться напрямую к ногам Ардуино.
Добавил i2c_scanner.ino для определения адреса дисплея.
сообщение удалено
baton
Доктор наук
Санкт-Петербург
648 230
Отв.26 20 Февр. 18, 18:01
Tomat7, пока детальки для второго блока идут из Китая пробую понять как компьютер-"базовый блок"-регулятор связываются между собой через сеть.
Вопрос возник потому, что вбив IP в config.h я не увидел его в сети.
Посмотрел на этом порту маршрутизатора и вижу только IP вида
MAC адреса
Попробовал раскомментировать
Посмотрел, что такое Modbus TCP, по идее для коммутаторов-маршрутизаторов это должно быть просто обычное сетевое устройство?
Вопрос возник потому, что вбив IP в config.h я не увидел его в сети.
Посмотрел на этом порту маршрутизатора и вижу только IP вида
130.0.0.0
224.0.0.0
...
MAC адреса
00:00:02:00:00:02на одном порту от одного устройства.
00:00:F2:00:00:00
00:02:00:00:00:96
00:02:02:00:00:96
00:02:F2:00:00:96
Попробовал раскомментировать
//#define ETHERNET_DHCPно тогда вобще никаких пакетов в сеть не идёт.
Посмотрел, что такое Modbus TCP, по идее для коммутаторов-маршрутизаторов это должно быть просто обычное сетевое устройство?
Tomat7
Магистр
Черноморская губинния
236 138
Отв.27 20 Февр. 18, 18:53, через 52 мин
При включении на экране на 5 секунд должен показываться адрес - не важно статически прописанный в скетче или полученный динамически от DHCP.
baton
Доктор наук
Санкт-Петербург
648 230
Отв.28 20 Февр. 18, 19:56
Там показывает абсолютно разное.
То просто 0.0.0.0, то IP из внешней сети... Когда DHCP, то просто показывает экран с датой и дальше не идёт.
Добавлено через 16мин.:
IP ведь здесь прописываем?
То просто 0.0.0.0, то IP из внешней сети... Когда DHCP, то просто показывает экран с датой и дальше не идёт.
Добавлено через 16мин.:
IP ведь здесь прописываем?
#ifdef ETHERNET_DHCP
mb.config(mac);
#else
const byte ip[] = { 192, 168, 1, 30 + macID };
mb.config(mac, ip);
#endif
Tomat7
Магистр
Черноморская губинния
236 138
Отв.29 20 Февр. 18, 22:27
IP ведь здесь прописываем?baton, 20 Февр. 18, 19:56да, macID = ETHERNET_MACID который равен в скетче регулятора 1 - то есть (без #define ETHERNET_DHCP): MAC: DE:AD:BE:EF:30:01 IP: 192.168.1.31
если раскомментировать #define ETHERNET_DHCP, то МАС должен быть тот же, IP от DHCP сервера (если есть к нему доступ можно посмотреть на нём)
1. какой скетч залит? MB-reg-094?
2. что за модуль/шилд Ethernet? WIZ5100?
3. огоньки на плате модуля светят/моргают?
4. огоньки на гнезде RJ45 модуля светят/моргают?
5. огоньки на гнезде RJ45 свитча к которому подсоединён модуль светят/моргают?
6. скетчи из примеров (File->Examples->Ethernet) работают корректно?
7. на компе подключенном и корректно работающем в сети в которой предполагается использовать модуль в командной строке дай команду "ipconfig /all" и её результат сюда (можно в личку)
Вывод монитора порта ты уже показывал, там IP только не правильно - так бывает если если скетч скомпилен под w5100, а сам шилд не найден.
Скетч скомпиленный под encXX без шилда подвисает на минуту примерно, а потом выдает ерунду.
Пиши, разберёмся!
то IP из внешней сетиВот про это даже не знаю в какую сторону думать... :o
Tomat7
Магистр
Черноморская губинния
236 138
Отв.30 20 Февр. 18, 23:15, через 48 мин
Прикладываю версию MB-reg-097.
В коде изменения нет, но добавил комментарии ко многим #define.
В коде изменения нет, но добавил комментарии ко многим #define.
baton
Доктор наук
Санкт-Петербург
648 230
Отв.31 20 Февр. 18, 23:17, через 3 мин
1. Да, скетч MB-reg-094.
2. Да, модуль WIZ5100. Как у тебя на фото красный.
3-5. Да
6. В течении 10-15 минут проверю.
7. Тут нормально
Имя компьютера . . . . . . . . . : BATON-main
Основной DNS-суффикс . . . . . . :
Тип узла. . . . . . . . . . . . . : Гибридный
IP-маршрутизация включена . . . . : Нет
WINS-прокси включен . . . . . . . : Нет
Адаптер Ethernet Ethernet:
DNS-суффикс подключения . . . . . :
Описание. . . . . . . . . . . . . : Контроллер семейства Realtek PCIe GBE
Физический адрес. . . . . . . . . : 48-5B-39-D4-30-55
DHCP включен. . . . . . . . . . . : Да
Автонастройка включена. . . . . . : Да
Локальный IPv6-адрес канала . . . : fe80::74a6:a763:b950:3990%10(Основной)
IPv4-адрес. . . . . . . . . . . . : 10.11.12.117(Основной)
Маска подсети . . . . . . . . . . : 255.255.255.0
Аренда получена. . . . . . . . . . : 20 февраля 2018 г. 11:06:23
Срок аренды истекает. . . . . . . . . . : 20 февраля 2018 г. 23:16:30
Основной шлюз. . . . . . . . . : 10.11.12.13
DHCP-сервер. . . . . . . . . . . : 10.11.12.13
IAID DHCPv6 . . . . . . . . . . . : 55073593
DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-1A-89-7B-18-48-5B-39-D4-30-55
DNS-серверы. . . . . . . . . . . : 10.11.12.13
8.8.8.8
8.8.4.4
NetBios через TCP/IP. . . . . . . . : Включен
Вот по поводу правильности подключения задумался.
Делал так
Питание и четыре проводника. Верно?
2. Да, модуль WIZ5100. Как у тебя на фото красный.
3-5. Да
6. В течении 10-15 минут проверю.
7. Тут нормально
Скрытый текст
Настройка протокола IP для WindowsИмя компьютера . . . . . . . . . : BATON-main
Основной DNS-суффикс . . . . . . :
Тип узла. . . . . . . . . . . . . : Гибридный
IP-маршрутизация включена . . . . : Нет
WINS-прокси включен . . . . . . . : Нет
Адаптер Ethernet Ethernet:
DNS-суффикс подключения . . . . . :
Описание. . . . . . . . . . . . . : Контроллер семейства Realtek PCIe GBE
Физический адрес. . . . . . . . . : 48-5B-39-D4-30-55
DHCP включен. . . . . . . . . . . : Да
Автонастройка включена. . . . . . : Да
Локальный IPv6-адрес канала . . . : fe80::74a6:a763:b950:3990%10(Основной)
IPv4-адрес. . . . . . . . . . . . : 10.11.12.117(Основной)
Маска подсети . . . . . . . . . . : 255.255.255.0
Аренда получена. . . . . . . . . . : 20 февраля 2018 г. 11:06:23
Срок аренды истекает. . . . . . . . . . : 20 февраля 2018 г. 23:16:30
Основной шлюз. . . . . . . . . : 10.11.12.13
DHCP-сервер. . . . . . . . . . . : 10.11.12.13
IAID DHCPv6 . . . . . . . . . . . : 55073593
DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-1A-89-7B-18-48-5B-39-D4-30-55
DNS-серверы. . . . . . . . . . . : 10.11.12.13
8.8.8.8
8.8.4.4
NetBios через TCP/IP. . . . . . . . : Включен
Вот по поводу правильности подключения задумался.
Делал так
Питание и четыре проводника. Верно?
Tomat7
Магистр
Черноморская губинния
236 138
Отв.32 20 Февр. 18, 23:32, через 15 мин
Подключение модуля верное. (reset не подключен)
Для твоей сети нужно в config.h поправить
#define IPBASE 10, 11, 12, 30
И тогда IP адрес модуля должен быть 10.11.12.31
Перед этим сделай с компа ping 10.11.12.31 чтобы убедиться что никакое устройство не отвечает и адрес не занят.
Можешь использовать MB-reg-097 из предыдущего поста, там понятнее коментарии, и MAC назначается чуть "правильнеe".
Если скетчи из примеров отработают корректно с шилдом, а мой скетч не заработает - пришли первые строки из монитора порта.
Для твоей сети нужно в config.h поправить
#define IPBASE 10, 11, 12, 30
И тогда IP адрес модуля должен быть 10.11.12.31
Перед этим сделай с компа ping 10.11.12.31 чтобы убедиться что никакое устройство не отвечает и адрес не занят.
Можешь использовать MB-reg-097 из предыдущего поста, там понятнее коментарии, и MAC назначается чуть "правильнеe".
Если скетчи из примеров отработают корректно с шилдом, а мой скетч не заработает - пришли первые строки из монитора порта.
baton
Доктор наук
Санкт-Петербург
648 230
Отв.33 20 Февр. 18, 23:42, через 11 мин
Попробовал из примеров WebServer - не вижу его. Меня смущает, что на порту маршрутизатора, куда подключен модуль нет MAC-адреса. Там всплывают какие-то странные.
Проводки поменяю
там IP только не правильно - так бывает если если скетч скомпилен под w5100, а сам шилд не найденTomat7, 20 Февр. 18, 22:27И вот это даёт повод задуматься
Проводки поменяю
Tomat7
Магистр
Черноморская губинния
236 138
Отв.34 20 Февр. 18, 23:51, через 9 мин
Попробуй пример File->Examples->Ethernet-> DhcpAddressPrinter
B посмотри что он в монитор порта выдает.
B посмотри что он в монитор порта выдает.
baton
Доктор наук
Санкт-Петербург
648 230
Отв.35 21 Февр. 18, 01:28
B посмотри что он в монитор порта выдаетTomat7, 20 Февр. 18, 23:51В мониторе: "Failed to configure Ethernet using DHCP". Проводки между Arduino и W5100 поменял. Поменял Arduino. Вероятнее всего что-то с модулем всё же.
Завтра ещё на другом сетевом оборудовании и кабеле попробую (бывало такое) и или дождусь китайскую посылку, или сбегаю в магазин
Tomat7
Магистр
Черноморская губинния
236 138
Отв.36 21 Февр. 18, 09:31
Попробуй кнопку Reset на Ардуино понажимать и посмотреть монитор порта...
Еще как вариант, подсоедини RST Ethernet модуля на Reset Arduino. Может этого ему не хватает?
По ссылкам ниже все Reset подключают, хотя у меня два таких модуля без резета работают вполне корректно.
http://arduino.ru/...e-mogu-zapustit
https://mysku.ru/blog/aliexpress/31727.html
https://arduino-info.wikispaces.com/Ethernet
http://devicter.blogspot.ru/2013/02/web.html
Кроме того, некоторые рекомендуют питать модуль от 3.3 вольта, вместо 5.
Если используешь Arduino Nano это попробовать не долго - у неё есть выход 3.3 рядом с D13.
Вообще, моргание "огоньков" (на плате и на RJ45) говорит что модуль технически исправен.
baton
Доктор наук
Санкт-Петербург
648 230
Отв.37 21 Февр. 18, 11:44
Кроме того, некоторые рекомендуют питать модуль от 3.3 вольта, вместо 5.Tomat7, 21 Февр. 18, 09:313.3 вольта помогло!
My IP address: 10.11.12.121.
Renewed success
My IP address: 10.11.12.121.
Tomat7
Магистр
Черноморская губинния
236 138
Отв.38 21 Февр. 18, 13:39
Прикладываю приукрашенную версию - MB-reg-098_beta2, алгоритм не трогал, только красоту немного навел и откоментировал #define.
Честно скажу, в Ардуину не заливал и не тестировал, только что скомпилил.
UPDATE: Уже и залил, и протестировал. Да и версия другая...
Tomat7
Магистр
Черноморская губинния
236 138
Отв.39 21 Февр. 18, 15:31
MBpoll
http://www.modbustools.com/download.html простая и удобная программа для опроса модбас устройств как по RS485, так и по TCP.
Можно конфигурить таймауты и интервал опроса, умеет считать ошибки что бывает крайне полезно.
Прикладываю несколько скринов. Подсветка имён вручную и имена регистров нужно прописывать самому (а как иначае то?:)).
Управление простое и понятное.
1. Connection->Connect (или "F3" ) - выбираем TCP/IP, и указываем IP address нашего устройства, остальное можно не трогать. Жмем ОК.
2. Setup->Read/Write Definition (или "F8" ) - ID не важно, Function нам нужна 03, address - адрес первого регистра (из тех что нам нужен), оставляем "0", Quantity - сколько регистров нам нужно получить, в скетче регулятора мощности заполняются только 6 первых. Жмём Apply.
3. Смотрим картинку. :-) Регистр что на картинке обозначен как dsTemp скорее всего будет содержать -9900, но если подключён ds18b20, то должен показать температуру умноженную на 100. secUptime скорее всего будет 50, это из-за того, что нет мастера Модбаса который должен записывать в этот регистр "0" подтверждая таким образом что он жив и "контролирует контроллер". По значению этого регистра можно дабл-кликнуть, появится окно, в Value вписать "0" и нажать Send. После этого контроллер должен в этот регистр отдать свой Uptime в секундах.
http://www.modbustools.com/download.html простая и удобная программа для опроса модбас устройств как по RS485, так и по TCP.
Можно конфигурить таймауты и интервал опроса, умеет считать ошибки что бывает крайне полезно.
Прикладываю несколько скринов. Подсветка имён вручную и имена регистров нужно прописывать самому (а как иначае то?:)).
Управление простое и понятное.
1. Connection->Connect (или "F3" ) - выбираем TCP/IP, и указываем IP address нашего устройства, остальное можно не трогать. Жмем ОК.
2. Setup->Read/Write Definition (или "F8" ) - ID не важно, Function нам нужна 03, address - адрес первого регистра (из тех что нам нужен), оставляем "0", Quantity - сколько регистров нам нужно получить, в скетче регулятора мощности заполняются только 6 первых. Жмём Apply.
3. Смотрим картинку. :-) Регистр что на картинке обозначен как dsTemp скорее всего будет содержать -9900, но если подключён ds18b20, то должен показать температуру умноженную на 100. secUptime скорее всего будет 50, это из-за того, что нет мастера Модбаса который должен записывать в этот регистр "0" подтверждая таким образом что он жив и "контролирует контроллер". По значению этого регистра можно дабл-кликнуть, появится окно, в Value вписать "0" и нажать Send. После этого контроллер должен в этот регистр отдать свой Uptime в секундах.