А чего ты так суетишься, если тебе это не нужно. Человек выложил бесплатно что-то полезное. Это второй значимый случай со времён Владимира Ситникова. Побольше бы таких толковых бессеребренников.
Вид для печати
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ой флоат. И групповой запрос тут неприменим, я вот к чему.
Это не только не очевидно, но и, судя по вашим словам, не верно!
Мастер что-то просит и получает, а затем интерпретирует полученное для показа в человекочитаемом виде. Где тут слейв? Слейв кончился, когда выдал байты.
Слейв нужен, когда, например, у вас есть СКАДА-проект, но нет ПЛК с исполняемым кодом, который бы что-то в СКАДу выдавал. Вот тут вы и берете имитатор слейва, заставляя его что-то выдавать, прикидываясь ПЛК. Или в процессе разработки проекта ПЛК нужны для отладки модули ввода-вывода, а их физически нет - тут тоже нужен слейв-имитатор модуля, чтобюы там ошибки формировать или значения...
У меня была мысль сделать и продвинутого слейва, чтобы можно было даже скрипты запускать по принятым запросам... Типа имитировать работу реальной программы ПЛК. Но я так для себя и не решил, насколько это востребовано и будет ли удобно для конечного пользователя, ведь скрипт - это программирование, а многие ли "простые киповцы" любят/умеют программировать?! И оно им надо?!
Поэтому проект слейва дальше этих размышлений не сдвинулся.
Смотрите: в Modbus Guru концептуально вы видите ПЕРЕМЕННЫЕ, а не регистры. Если вы назначили переменной адрес 0 и размер переменной 4 байта - будет считано 2 регистра групповым запросом. Если вы сделали еще одну переменную с адреса 1 и задали её размер 8 байт - будет другой групповой запрос с соответствующего адреса на соответствующее количество регистров. И так далее.
Но если вы сделали 10 однорегистровых (или там 5 двухрегистровых) переменных с последовательными адресами, они все будут считаны одним запросом - для оптимизации запросов
Я не знаю, что там у вас за устройство, но 2 разных флоата должны иметь возможность их независимого считывания, т.е. не хочу первого читать - читаю только второй, и ничего не должно ломаться. Если так и есть - проблем нет, Modbus Guru разберется.
Забодай тебя комар Hardella IDE. но вам это не грозит, IVM ошибся :)
еще раз, чтение из прибора по ДРУГИМ командам Modbus, которые большинство scada или OPC не понимают.Цитата:
Это не только не очевидно, но и, судя по вашим словам, не верно!
Надо их считать, и перенести в обычные регистры Inputs или Holdings, чтобы те, кто не умеют эти регистры читать могли получить данные.
Ведь когда у людей MasterScada, купленная за ХХХ бабла, никто не будет ее менять ради одного прибора. И такая плюшка в виде вашего ПО очень бы помогла.
з.ы. ну по общению я уже понял, придется в итоге писать самому, когда появится время. Сейчас я модернизю драйвер счетчиков Меркурий, попросили добавить возможность задавать дату поверки прибора прямо в драйвер...
imaex да там Логика примудрила, типа задает в запросе адрес памяти, потом вычитывает... Вроде же тогда с МихаилГл разбирались с этим. В общем не важно. В общем плюшкой в программе могло бы быть зеркалирование нестандартных опросов в обычные регистры Modbus чтобы это могли понять все.