vb2005 МК210 это же модуль вывода? карта регистров в документации есть? какие претензии к Овен? он вам должен код на разных языках и разных погремушках предоставить?
vb2005 МК210 это же модуль вывода? карта регистров в документации есть? какие претензии к Овен? он вам должен код на разных языках и разных погремушках предоставить?
Ну, как бы да, это нормальная практика. В основном работаю с промышленными сенсорами (Usb/Ethernet) для каждого есть API под C++/C# + набор примеров по взаимодействию с ними. Изучать карту регистров, курить документацию ради того, чтобы изобрести велосипед, который уже неоднократно изобретался по меньшей мере странно в 21 веке. И очень бы хотелось увидеть реальные примеры, которые будут работать. Но, видимо, тут не принято выкладывать решения из серии "Возьми и используй", а все сводится к тому, что надо самому с нуля описать Modbus, перечитать кучу документации и изобрести точно такое же API, как и десятки других разработчиков, потому, что производитель не считает нужным выкладывать это в открытый доступ...
vb2005 вы таки не поняли, у прибора Modbus, ему не нужны примеры API на разных языках... берете спецификацию протокола и пишите, или берете готовые решения с Modbus, коим является EasyModbus и пишите.
В данном случае производитель вам ничего не обязан, потому что встроил в прибор Modbus, в отличии от промышленных сенсоров, где требуются примеры...
vb2005 Так ModBus - это и есть, образно говоря, API. Готовое и стандартное.
Оно позволяет читать и писать регистры. А сами регистры (их номера, назначения) - уникальны для каждого устройства.
Если перевести на WinAPI (я прогал на VC++6 давно), то это будет что-то типа функций SetWindowStyle(Ex) с кучей флагов, назначениме которых описано в документации на винду. Вот здесь - то же самое: открываем документацию на модуль и видим что-то типа (беру из головы): "Данные хранятся в виде битовой маски в регистре 1426, чтение командами 0х03 и 0х10 (любая)".
Дальше открываем либу и делаем что-то (образно) ModbusReadRegister(hDevice, 0x03, 1426) - и всё.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab
vb2005 еще раз для неразумных, у данного прибора Modbus, вам надо на программистких форумах искать как работать с Modbus. Тут производитель вам мало чем поможет или должен помогать... А все, что связано с Modbus указано в документации на прибор.
з.ы. и прежде чем записывать при помощи ИзиМодбас хотя бы им же прочитали один регистр из прибора....
Спасибо всем душным за помощь. Очень полезные советы (сарказм).
Проблема была в том, что требуется использовать не WriteSingleCoil, а WriteSingleRegister (за подсказку спасибо AlexandrGr). И использовать номера регистров 0x33 и 0x1D6. Собственно это все, что нужно, чтобы данный код заработал. В чем проблема была это подсказать - не понятно.
Для тех, кто не хочет изобретать велосипед и общаться с максимально душными людьми - вот готовое решение для МК210. Мне не жалко. Будем ломать сложившиеся устои на этом форуме.
Вам сразу сказали читайте документацию. Почему другие должны делать это за вас?
AlexandrGr а вы за меня еще и есть будете? - АГА!
vb2005 готовое решение это применение Scada системы где все из коробки и не надо программировать Modbus... это же не специфические протоколы, где реально надо писать код...
vb2005 В том, что мы не знаем что вы хотите.
Привожу пример такой. Например, вызывается функция CreateFileEx() из WinAPI, и вы нас всех ненавидите за то, что мы не можем подсказать название имени файла (L"FileName"). Так мы ж не знаем, какой вам файл надо открыть или создать...
так и тут.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab
Я написал название конкретного модуля, описал конкретную задачу. Скинул пример, который должен был реализовывать указанную задачу, но он ее не реализовывал. Спросил помощи, почему он может не работать. В ответ никакой конкретики. И пример с именем файла тут максимально не уместен. Просто кому-то хочется языком почесать, вместо того, чтобы реально помочь. За то время, пока господин melky расписывал свои трактаты, можно было написать 2 строки, которые позволяли бы читать и записывать значения. Для этого и нужны форумы, чтобы людям помогать. И когда ко мне обращаются с помощью, я не отправляю читать Страуструпа, а подсказываю как можно проблемы решить реальными примерами. Тем более, что спрашиваю я не что-то уникальное, а вполне реальную задачу с которой наверняка многие уже сталктвались и знают как ее решить