-
- кажись придумал... ассоциативные связанные списки IBAH(1025 знак., 18.11.2021 14:20)
- Нужно еще как-то учитывать, какие теги уже прочитаны, а какие нет. В некоторых применениях бывает полезно иметь флаг востребованности данных - вычитывание того, что сейчас не используется ведет к растягиванию цикла опроса. Допустимых функций считывания для одного регистра может быть до трех разных, поэтому у меня для хранения этой информации используется битовое поле. - AlexG(18.11.2021 14:28)
- Я писал, но проприетарное. - evgeniy1294(17.11.2021 17:53)
- пора написать новое, но gpl =) - Constantin24(18.11.2021 08:27)
- Краткое содержание GPL - Вам надо. Вы и пишите :) - symbions(18.11.2021 16:42)
- в смысле? не модбас? - IBAH(17.11.2021 20:50)
- Человек, наверное, писал проприетарный код под ModBus, и в честь
этого вложить его не может. - Evgeny_CD(17.11.2021 21:02)
- Угу - evgeniy1294(17.11.2021 23:12)
- Человек, наверное, писал проприетарный код под ModBus, и в честь
этого вложить его не может. - Evgeny_CD(17.11.2021 21:02)
- пора написать новое, но gpl =) - Constantin24(18.11.2021 08:27)
- А в чем прикол? Думаю, каждый первый бедуин писал. Cкpипaч(107 знак., 17.11.2021 15:27)
- Ключевые слова "Чтобы все как в ОРС-сервере, заполнил иерархическую
табличку с тегами (Канал->Устройство->Тег), стартанул и
он все сам делает..." - IBAH(17.11.2021 17:40)
- А непосредственно ОРС-сервер, щитаеца? :) Только мы "без таблички"
сделали. Каналы - в виндовом ini-файле, а все остальное на лету, по
факту запроса. Cкpипaч(63 знак., 17.11.2021 21:01)
- Я правильно понял? клиент делает запрос к ОРС-серверу, поток
выполнения клиента приостанавливается, ОРС сервер делает запрос по
модбас и отдает данные клиенту - IBAH(17.11.2021 21:30)
- Нет. ОРС-сервер сканирует шину "так часто, как это возможно" и
хранит данные в промежуточной таблице. Если прочитать не удалось -
хранить спец.значение None. Cкpипaч(237 знак., 17.11.2021 21:38)
- "она создается и добавляется в опрос" Круто! а оптимизация запросов
модбас? Если адреса тегов, сопрягаются и/или пересекаются? - IBAH(17.11.2021 21:50)
- За более чем 20-летний стаж "модбасовода" не помню ни одного случая необходимости делать сопрягающиеся/пересекающиеся теги. - Cкpипaч(17.11.2021 22:17)
- Хуйнёй не страдали. Хочешь создать кривой тег - получаешь отлуп.
Опрос большими блоками - плохо сочетается с помехоустойчивостью. Cкpипaч(243 знак., 17.11.2021 22:00)
- это как то неспортивно... - IBAH(17.11.2021 22:07)
- "она создается и добавляется в опрос" Круто! а оптимизация запросов
модбас? Если адреса тегов, сопрягаются и/или пересекаются? - IBAH(17.11.2021 21:50)
- Нет. ОРС-сервер сканирует шину "так часто, как это возможно" и
хранит данные в промежуточной таблице. Если прочитать не удалось -
хранить спец.значение None. Cкpипaч(237 знак., 17.11.2021 21:38)
- Я правильно понял? клиент делает запрос к ОРС-серверу, поток
выполнения клиента приостанавливается, ОРС сервер делает запрос по
модбас и отдает данные клиенту - IBAH(17.11.2021 21:30)
- А непосредственно ОРС-сервер, щитаеца? :) Только мы "без таблички"
сделали. Каналы - в виндовом ini-файле, а все остальное на лету, по
факту запроса. Cкpипaч(63 знак., 17.11.2021 21:01)
- Ключевые слова "Чтобы все как в ОРС-сервере, заполнил иерархическую
табличку с тегами (Канал->Устройство->Тег), стартанул и
он все сам делает..." - IBAH(17.11.2021 17:40)
- Писал (не с нуля). С оптимизацией запросов - если нужно прочитать
несколько соседних регистров, они будут прочитаны одним запросом. - AlexG(17.11.2021 14:33)
- Вах! а структура данных какая? Создается статически или
динамически, если динамически то как? "связанные списки"? - IBAH(17.11.2021 15:14)
- Все довольно примитивно: AlexG(1728 знак., 17.11.2021 15:24)
- Очень похоже на FreeModbus. - Звepoящep(25.11.2021 09:10)
- Оно основано на библиотеке modbuspw от protocessor AlexG(136 знак., 25.11.2021 15:51, ссылка)
- register_map[MX_REG] похоже это самый легкий способ. Я так понимаю
все данные одного типа, int16? у меня сложнее - IBAH(17.11.2021 21:45)
- Там, откуда взят код, в других частях программы было бы крайне неудобно не иметь фиксированного ограничения на количество регистров, поэтому - MX_REG. Регистры при опросе надо перебирать один за другим - поэтому одномерный массив. Этот код работает именно с регистрами Modbus, без интерпретации их содержимого, поэтому какой-нибудь uint32_t нужно будет прописывать как два регистра. - AlexG(18.11.2021 07:33)
- Ничего не понял, но очень интересно... - IBAH(17.11.2021 20:55)
- Очень похоже на FreeModbus. - Звepoящep(25.11.2021 09:10)
- Все довольно примитивно: AlexG(1728 знак., 17.11.2021 15:24)
- Вах! а структура данных какая? Создается статически или
динамически, если динамически то как? "связанные списки"? - IBAH(17.11.2021 15:14)
- В сетке есть китайская реализация мастера для МК STM32 на базе
фримодбаса. - michas(17.11.2021 14:19)
- Побольше бы данных... - IBAH(17.11.2021 15:15)
- кажись придумал... ассоциативные связанные списки IBAH(1025 знак., 18.11.2021 14:20)