Вверх ↑
Этот топик читают: Гость
Этот топик был перемещен из раздела "Делаем компоненты"
Ответов: 7
Рейтинг: 0
#1: 2018-06-08 13:49:09 ЛС | профиль | цитата
Доброго времени суток товарищи !
Хочу заказать у кого-либо на платной основе готовый блокмодуль для работы с Modbus rtu asci протоколом по Com и Ethernet протоколу .
Пошастал по форуму , есть прилично тем которые вокруг да около обсуждают нюансы и реализации этого дела .
Так почему бы и не сделать готовый модуль и не оставить его в отдельную веточку на общее пользование ?

многомилионов не обещаю . но и задача не является чем то космическим .
Да и смысл в отдельной ветви есть .



Пыво отдано.
Проект остаётся в общее развитие.

Редактировалось 2 раз(а), последний 2019-04-11 23:11:28
карма: 0

0
Ответов: 43
Рейтинг: -2
#2: 2018-06-08 19:46:10 ЛС | профиль | цитата
Krendeleev, в 2011 имел опыт с модбусом от для контроллеров термодата (приложил т.д в прищепке), та ещё песня (не знаю на тот момент зрелая или нет контора была но мне казалось что опытные партии их ПО я испытывал на глючность регулярно, как минимум 4-5 версий с разными GUI интерфейсами) В отделе ПТО предприятия сдавали нервы у матёрых пенсионерок. Задача у них была простая отчётность, считать показания со счётчиков в таблицу за период и отдать в бухгалтерию. Запарили они меня меня да я и сам задолбался баг-репорты писать производителям сделал считывание данных в Ecxel через VBA. 3 счётчика три кнопки, два календаря для даты и всё, отчёт на выходе (прое...ся пару дней правда) зато все были довольны и счастливы
В 2015 имел опыт с настройкой OPC серверов по протоколу модбус, занятная хрень их синхонизировать, геморой еще тот...

Короче причитать нечего, (да и ждать особо нет от кого, тем более за пару банок пива) тут либо сам либо к фрилансерам на поклон.
Есть готовые решение под Free (dll, ActiveX SDK) но Вы пассивные пользователи даже их не напрягаетесь искать, очевидно что и Вам помочь никто спешит.
карма: -2

0
файлы: 1modbus.zip [28.5KB] [912]
Ответов: 7
Рейтинг: 0
#3: 2018-06-08 20:56:29 ЛС | профиль | цитата
andrestudioEX, Спасибо . Зря ты на нас так , пассивные. Да и пара банок пива бывает разная. (угораздило однажды гинес попробовать. так вот для меня сейчас пара банок это 900 рублей . потому и не пью раз в год гдета )
На модбасе и сейчас много странного железа . Вроде заявлен модбас - да не тот . Но со своим софтом работает.

А вообще за какую сумму можно заделать этот модуль ? в пределах 1000 рублей думаю реально более или менее . Опять же не для единоличного пользования а в общую копилку модулей хочу таксказать заспонсировать.
Вы поймите верно . сам буду долго разбираться . А на выходе микроскаду хочется. Да и не мне одному.

Как я это вижу.. два блока 1) для ethernet 2) rs485
ethernet входные блоки 1) IPадрес 2) номерустройства 3) типданных 4) данные (в зависимости от типа разные типы bit real string )
rs485 1)номерСОМпорта 2)номерустройства 3)типданных 4)данные (в зависимости от типа разные типы bit real string )
Как принимать тут вопрос. скорее всего этим же блоком ждать посылку . Паузу между посылками думаю разруливать отдельно от этого блока.
Вообще думать нужно как правильно замутить эту штуку , ибо посылки бывают поштучно а бывают и по несколько точек за раз .
Количество точек ограничено . но 1ой функции есть возможность дёргать и по 16 точек.
А вот 3 и 4 функции сомневаюсь что выйдет более двух точек за раз , хотя ....
Так же есть ограничение на транспортный протокол. Если точек 20-100 то задержки на передачу-получение становятся приличными. тут мозговать опять же нужно.


Описание протокола https://ipc2u.ru/articles/prostye-resheniya/modbus-rtu/

Программы для эмуляции и работы с модбас устройствами попытаюсь приложить . https://yadi.sk/d/FIrsTMHn3XUvxh
Программа хоть и страшненькая но свои функции выполняет отменно.

На время создания/активной работы если какая либо информация нужна будет предоставлю. Да хоть в том же скайпе телеграмме с ватсапом.

Редактировалось 3 раз(а), последний 2018-06-08 21:13:07
карма: 0

0
Ответов: 43
Рейтинг: -2
#4: 2018-06-09 04:54:56 ЛС | профиль | цитата
Krendeleev, тут найдёшь всё для самостоятельной работы https://kandiral.ru/
Желаю удачи!
карма: -2

0
Ответов: 168
Рейтинг: 7
#5: 2018-09-14 14:37:00 ЛС | профиль | цитата
Здравствуй Krendeleev
Ну как, работа за 3 месяца продвинулась?
-по поводу затруднений опроса и ожидания
я писал на специфические протоколы ,profibus,fc-drive,ppi и ничего более умного чем последовательный опрос всех устройств не придумано.
-broadcoast сообщения есть во всех протоколах, но привязываться думаю будет неправильно,разве что на стадии начальной инициализации.
я могу сбросить тебе как у меня реализовано но требуется пояснение
-по профибасу небольшая преамбула
профибас синхронный протокол, и ни какие хищрения с программной реализацией опроса не помогали,ведомые ус-ва все равно отваливались по времени.
Помогла реализация цикла опроса записи-чтения вынесенная в dll, работает по принципу зеркалирования памяти от ведомых ус-в. Таким способом удалось держать синхрон на 187.5/500/1м.
Так как библиотека запускается при старте- ей нужны параметры: адреса слейвов, адреса переменных,таймауты итд. Все это запихано в текстовом файле .GSD как требует того стандарт 10220(EN или DIN не помню).
Конечно цикл можно сделать в теле программы потоком, но удобнее что-бы в хайасм было всего 3 модуля: ini,read,write.

[ini] имеет 2 входа doOpen,doClose параметров не имеет.
При старте основной формы -> ini(doOpen) ->dll ->[чтение .GSD]->[распределение памяти]->[пуск потока]->[вечный цикл опроса].
При закрытии формы ->ini(doClose) ->dll ->[стоп потока].

[read] имеет 3 входа Type,Slave,Address,одна нижняя точка Result и выход onRead.
Type - бит (V), байт (VB), word (VW), word (VD), real (32bit)
Slave - адрес ведомого для чтения
Address - адрес переменной внутри ведомого Slave
Result - легитимность данных (ответ/неответ)
onRead - выход данных.
При работе read(Type)(Slave)(Address])->dll->[чтение зеркала памяти по адресу()()()] ->Result

write имеет 3 входа Type,Slave,Address,одна верхняя точка Data и выход onWrite.
все то-же что при чтении + вход данных сверху.

по поводу модбаса помню этот "ужасный" полином a002.
Если не бросил затею, выложу тут с пустым циклом и исходники.
И еще - библиотека ориентирована на чипы FTDI, то-есть работает непосредственно с драйверами
FTDI, не с ком портами!, благо преобразователей масса да-же на телефоны.
карма: 1

0
Ответов: 7
Рейтинг: 0
#6: 2018-09-16 17:42:37 ЛС | профиль | цитата
flash1103, выложи будь добр . ручки дойдут буду заниматься . интересная ведь штука да и польза какая может образоваться.
на сейчас прилепил контроллер на esp который иногда дёргает нужную мне меременную . на этом пока остановился , другие проблемы были.

Редактировалось 1 раз(а), последний 2018-09-16 17:46:44
карма: 0

0
Ответов: 168
Рейтинг: 7
#7: 2018-09-17 13:11:26 ЛС | профиль | цитата
освобожусь чуть погодя выложу
карма: 1

0
Ответов: 168
Рейтинг: 7
#8: 2018-09-17 18:31:11 ЛС | профиль | цитата
как и обещал переделал блоки верхнего уровня hiOpenM,hiReadM,hiReadM
для установки запусти instM.his
библиотека UsbModbus.dll и .dpr исходник
к ней файл настроек setting.gsd откроеш в блокноте там все понятно
для работы должно быть подключено любое уст-во на ftdi чипе, если будет несколько подключено
запускает первое по перечислителю.Драйвера должны быть установлены
в цикле будет долбать профибас протокол для наглядности.
все что есть в п/п цикла procedure READ_WRITE_PROCEDURE( lpParam : Pointer ); можеш выкинуть,это все к профибасу относится,то-же относится и к п/п mediaread,mediawrite это кодировщики/раскодировщик протокола.
твои внешние экспортируемые функции:
PluginOpen( p : dword ) : Boolean;запустить
PluginClose(p: pointer) : Boolean;остановить
PluginRead( DeviceID : Byte; iCount : Integer; var aVars : Array of TVarInfo ) : BOOLean; читать из зеркала
PluginWrite( DeviceID : Byte; iCount : Integer; var aVars : Array of TVarInfo ) : BOOLean; писать в зеркало
PluginINI(DeviceID:byte; flag: byte ): boolean ; инициализация ftdi usb ус-ва установка скорости итд.

--- Добавлено в 2018-09-17 18:31:51

блин, как сюда добавить файлы забыл.

Редактировалось 1 раз(а), последний 2018-09-17 18:31:51
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#9: 2018-09-17 18:40:44 ЛС | профиль | цитата
flash1103 писал(а):
как сюда добавить файлы

Меню > Пользователи > Файлы
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 168
Рейтинг: 7
#10: 2018-09-17 18:43:37 ЛС | профиль | цитата
не получается как у других

--- Добавлено в 2018-09-17 18:51:04

Tad спасибо

Редактировалось 5 раз(а), последний 2018-09-17 18:51:04
карма: 1

0
файлы: 1MODBUS.rar [163.7KB] [1157]
Ответов: 168
Рейтинг: 7
#11: 2018-09-19 18:08:20 ЛС | профиль | цитата
уже 7 закачек,ау отзовитесь хоть кто, что, либо понял.
может перенести топик в разработку, думаю продолжить пока в отпуске.
карма: 1

0
Ответов: 203
Рейтинг: 2
#12: 2018-09-20 13:54:24 ЛС | профиль | цитата
а проще нельзя ? А если не на чипе ftdi ?
карма: 0

0
Ответов: 168
Рейтинг: 7
#13: 2018-09-20 15:53:50 ЛС | профиль | цитата
что-то древнее по моему осталось,но я делал на 9x
давайте так-отладка пока на ftdi, а потом когда модбас заработает тогда дружно перенесем
на ком порты.
карма: 1

0
Ответов: 168
Рейтинг: 7
#14: 2018-09-21 16:32:55 ЛС | профиль | цитата
сейчас описываю чтение-запись битовых входов выходов
посему вопрос знатокам/любителям модбас:
-при запросе битовых значений DI/DO как лучше выдавать
1) значение позиционного номера бита
(например запрос входа х.7 = 1/0 на выходе 80h/0h, при х.0 соответственно 01h/0h)
2) или фиксированное значение
( при любом номере бита х.x = 1/0 на выходе ffh/0h)
пока выбрал второй вариант как более легкий для обработки
карма: 1

0
Ответов: 6
Рейтинг: 0
#15: 2018-11-07 23:00:53 ЛС | профиль | цитата
Живые есть?
Присоединяюсь к числу нуждающихся в компоненте Modbus rtu В Delphi я не разбираюсь((
Надеюсь тем кто с Delphi дружит будет полезно https://github.com/proffix4/ModBusRTU Коментарии на русском

Редактировалось 4 раз(а), последний 2018-11-07 23:02:59
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)