Terring Modbus Tools Инструкция
Posted By admin On 22.07.19Появилась необходимость создать Slave устройство AVR с протоколом Modbus. Исходники модуля с сайта. Создал проект в AVR Studio 4.18, скомпилировал. Создал проект в протеусе. Понимаю, что нужно посылать в МК команду, по которой выдается результат. ТОлько как это грамотно сделать, используя функции Freemodbus? Есть функция eMBASCIISend( UCHAR ucSlaveAddress, const UCHAR.
Итак отвечу сам себе (как обычно), может кому интересно будет: Terring Modbus Tools. ИМХО режим ASCII попроще будет и нагляднее, и не надо эти интервалы считать и стартовый есть для отладки хорошая прога Terring modbus tools исходники.Missing.
pucFrame, USHORT usLength ). С помощью нее пробовал кидать элементы массива на выход. Терминал в Proteus пишет что-то типа:03F304. Понимаю, что надо сделать по-другому. Вопрос - в какой поседовательности какие функии вызывать и что им передавать? Похоже, несовместимость. Нашел Modbus Poll, разобрался как она работает, связался с микроконтроллером.
Tearing Modbus Tools Инструкция
Косяк в том, что я не понимаю пока что как работать с регистрами модбаса на самом микроконтроллере. Например, использую функцию 06 - Write Single Register. Пишу, к примеру, в 1200 регистр с помощью Modbus Poll, приходит ответ что данные записались. А как их забрать из регистра в микроконтроллере?
Я так понял, надо использовать eMBRegHoldingCB( UCHAR. pucRegBuffer, USHORT usAddress, USHORT usNRegs, eMBRegisterMode eMode )? Можете пояснить? Правильно люди советуют: если связываться с уже готовыми устройствами, то все их 'регистры' описаны в мануалке на устройство.
А если дивайс на МК собственного производства, и программа на РС к нему тоже собственная, то можно взять только оболочку, каркас от Модбаса и наполнить его такими командами и в таких форматах, как самому удобно. Пересылать, например, не один какой-то 'регистр', а целый блок параметров.
У меня была в практике необходимость выполнить быстрый, но устойчивый обмен. Как бы сделал по 'букварю'? Запрос - ответ - подсчет CRC - фиксируется ошибка - перезапрос. А время т`икает. Сделал в пакете тройное дублирование инфы с внутренней КС.
Если CRC битая, не заморачиваем себе бошку перезапросом, а смотрим, есть ли в принятой тройке совпадающая пара, да еще с правильной КС. Есть - значит приняли и исправили ошибку. Чуть более сложная обработка позволяла исправить и двойную ошибку. Работало без вопросов. Но если ожидаете инспекцию со Schneider-electric на предмет соответствия вашего протокола букварю - тогда я пас и ничего не советовал. Мне не понятно, где именно хранятся эти Holding регистры в самом МК.
Terring Modbus Tools Инструкция На Русском
В МК есть просто ОЗУ. Некоторый объём. Как вы эти ячейки назовёте при разработке программы, такими они и будут.
Все эти Holding Registers - это некий уровень абстракции, и к конкретному МК не имеет отношения. Выделяется некая область памяти и отмечам - это регистры. И занимаемся обработкой сами программно.
Судя по всему, вы очень далеки от понимания сути. Это вам не дельфи, где программу можно написать одной мышкой.
Как я уже говорил, без brain.dll вы не решите задачу. Ищите специалиста. Мне не понятно, где именно хранятся эти Holding регистры в самом МК.
В МК есть просто ОЗУ. Некоторый объём. Как вы эти ячейки назовёте при разработке программы, такими они и будут. Все эти Holding Registers - это некий уровень абстракции, и к конкретному МК не имеет отношения.
Выделяется некая область памяти и отмечам - это регистры. И занимаемся обработкой сами программно. Судя по всему, вы очень далеки от понимания сути. Это вам не дельфи, где программу можно написать одной мышкой. Как я уже говорил, без brain.dll вы не решите задачу. Ищите специалиста.
Я понимаю смысл ОЗУ, Holding Registers и т.п. Я не понимаю некоторых деталей, но я только учусь.
Я обращаюсь к тем,кто пользовалмя freemodbus. Мне нужно как-то вытащить данные из холдинг регистра, и грубо говоря, к примеру, выдать их на порт микроконтроллера. Я понимаю, что те же самые холдинги висят где-то в ОЗУ, я с компьютера связываюсь с МК, кидаю в них данные, забираю. Но мне хочется для начала, к примеру, отправить в 1201 холдинг регистр и зажечь светодиод на выходе. Если бы мне предоставили пример такого взаимодействия, я бы разобрался и решил бы любую задачу.