IVM потому что если человек пишет сам, уже многое написано и работает, осталось добавить плюшку, другим меньше работы
я тоже пишу и в том числе бесплатно выкладываю, но на все тупо не хватает времени. Где-то разработчик scada прислушивается и дорабатывает по просьбам, надеюсь еще одни ребята прислушаются. Но опять же, на все это требуется масса времени, которого всегда не хватает.
Вопрпос странный, ответ простой: МОЖНОВ СПТ962 кривой модбас рту протокол, а именно:
1 регистр (4 байта)
2 регистр (4 байта) адрес именно 2, а не 3
У вас такое можно провернуть?
Какой адрес задали, тот и будет считан. Сколько регистров надо, столько и будет считано. Например, можно считать int64 (8 регистров), начиная с 0, 1, 2,3,4 и т.д. адреса. Никаких ограничений. Если ПЛК/девайс такую адресацию не поймет - будет выведено сообщение об ошибке, все по правилам.
Вопрос может и странный, но ситуация интересная.
Т.е. 1,2,3,4,5,6,7,8 байты у данного прибора, если смотреть по порядку, это 1ый флоат, а 2,3,4,5,6,7,8,9, это уже 2ой флоат. И групповой запрос тут неприменим, я вот к чему.
Это не только не очевидно, но и, судя по вашим словам, не верно!
Мастер что-то просит и получает, а затем интерпретирует полученное для показа в человекочитаемом виде. Где тут слейв? Слейв кончился, когда выдал байты.
Слейв нужен, когда, например, у вас есть СКАДА-проект, но нет ПЛК с исполняемым кодом, который бы что-то в СКАДу выдавал. Вот тут вы и берете имитатор слейва, заставляя его что-то выдавать, прикидываясь ПЛК. Или в процессе разработки проекта ПЛК нужны для отладки модули ввода-вывода, а их физически нет - тут тоже нужен слейв-имитатор модуля, чтобюы там ошибки формировать или значения...
У меня была мысль сделать и продвинутого слейва, чтобы можно было даже скрипты запускать по принятым запросам... Типа имитировать работу реальной программы ПЛК. Но я так для себя и не решил, насколько это востребовано и будет ли удобно для конечного пользователя, ведь скрипт - это программирование, а многие ли "простые киповцы" любят/умеют программировать?! И оно им надо?!
Поэтому проект слейва дальше этих размышлений не сдвинулся.
Последний раз редактировалось Забодай тебя комар; 02.06.2025 в 08:33.
Смотрите: в Modbus Guru концептуально вы видите ПЕРЕМЕННЫЕ, а не регистры. Если вы назначили переменной адрес 0 и размер переменной 4 байта - будет считано 2 регистра групповым запросом. Если вы сделали еще одну переменную с адреса 1 и задали её размер 8 байт - будет другой групповой запрос с соответствующего адреса на соответствующее количество регистров. И так далее.
Но если вы сделали 10 однорегистровых (или там 5 двухрегистровых) переменных с последовательными адресами, они все будут считаны одним запросом - для оптимизации запросов
Я не знаю, что там у вас за устройство, но 2 разных флоата должны иметь возможность их независимого считывания, т.е. не хочу первого читать - читаю только второй, и ничего не должно ломаться. Если так и есть - проблем нет, Modbus Guru разберется.
Последний раз редактировалось Забодай тебя комар; 02.06.2025 в 08:41.
Забодай тебя комар Hardella IDE. но вам это не грозит, IVM ошибся
еще раз, чтение из прибора по ДРУГИМ командам Modbus, которые большинство scada или OPC не понимают.Это не только не очевидно, но и, судя по вашим словам, не верно!
Надо их считать, и перенести в обычные регистры Inputs или Holdings, чтобы те, кто не умеют эти регистры читать могли получить данные.
Ведь когда у людей MasterScada, купленная за ХХХ бабла, никто не будет ее менять ради одного прибора. И такая плюшка в виде вашего ПО очень бы помогла.
з.ы. ну по общению я уже понял, придется в итоге писать самому, когда появится время. Сейчас я модернизю драйвер счетчиков Меркурий, попросили добавить возможность задавать дату поверки прибора прямо в драйвер...
Последний раз редактировалось melky; 02.06.2025 в 09:57.
imaex да там Логика примудрила, типа задает в запросе адрес памяти, потом вычитывает... Вроде же тогда с МихаилГл разбирались с этим. В общем не важно. В общем плюшкой в программе могло бы быть зеркалирование нестандартных опросов в обычные регистры Modbus чтобы это могли понять все.