Arduino и Trace Mode 6
- Войдите на сайт для отправки комментариев
Пнд, 05/11/2012 - 18:17
Никто не пробовал связать Trace Mode 6 по ком порту с ардуино??? Может у кого есть подробная информация??? или ето невозможно?
Никто не пробовал связать Trace Mode 6 по ком порту с ардуино??? Может у кого есть подробная информация??? или ето невозможно?
http://code.google.com/p/simple-modbus/
http://www.adastra.ru/products/drivers/modbus/
Спасибо))) буду разбираться!
В Trace Mode разобрался а вот как организовать ModBus на Arduino не могу((( Помогите.
НАшол вот ету библиотеку ... http://www.arduino.cc/playground/Code/ModbusMaster Попробую
Я не понимаю, в чем проблема? Качаете архив по ссылке которую я дал выше, кладете папки SimpleModbusMaster и SimpleModbusSlave в папку \arduino-1.0\libraries, запускаете ИДЕ, выбираете пример наверное SimpleModbusSlave, а там всего две функции:
с modbus_configure я думаю все ясно, 9600 - это скорость, чо такое 1, 2 не знаю почитайте и TOTAL_REGS_SIZE - количество элементов массива, который будет передаваться/приниматься.
Ну а modbus_update собственно и обновляет (передает/принимает) тот самый массив, а в ответ еще и ошибку вовзвращает, если таковая имеется.
В этом стандартном примере передаются по modbus данные с 6 аналоговых выводов с А0 по А5, с одного цифрового вывода 7 и принимаются данные для светодиода на 13 выводе.
НАшол вот ету библиотеку ... http://www.arduino.cc/playground/Code/ModbusMaster Попробую
Когда компилирую пример выдает ошибку((( Помогите с ModBus на Arduino
У меня все замечательно компилится.
SimpleModbus has been updated to support Arduino V1.0.
скачайте Arduino IDE 1.0
У меня 1.0.1
Я за вас рад )
скачайте Arduino IDE 1.0
или редактируйте библиотеку под 1.0.1
Версия 1.0.1 а плата Leonardo ...в 1.0 нет Leonardo((((
Тогда только редактировать или искать другую, но мне кажется с поиском будут проблемы...
ошибки покажите
и еще а попробуйте выбрать например Уну и просто скомпилировать
А сейчас сам гляну, у меня ж есть 1.0.1
Выбрал Уно. Скомпилировало без ошибок.
Компиляция на 1.0.1 Leonardo Ошибка:
Не знаю в чем у вас проблема у меня компилится без проблем в 1.0.1 с леонардо.
На 1.0.1 выбрал плату не Leonardo а UNO и все скомпилило без ошибок! Проблема в плате Leonardo(((( ???
а попробуйте так modbus_configure(9600, 1, 1, TOTAL_REGS_SIZE);
Так стоп, я компилю Slave, а вы Master, хотя и мастер у меня компилится с Леонардой, так я так и не понял, вы зачем пытаетесь мастер запустить? Или так и должно быть?
на 1.0.2 тоже самое. Добавил в сетап modbus_configure(9600, 1, 1, TOTAL_REGS_SIZE);
Ошибки
Basic.pde: In function 'void setup()':
Куда добавили? в Мастер? так естественно не заработает. Еще раз откройте пример SimpleModbusSlave и попробуйте скомпилировать.
По ссылке http://www.adastra.ru/products/drivers/modbus/ первое видео Подключение оборудования через посследовательный порт RS 232/485 по протоколу MODBUS RTU а на ардуино потенциометр передает значение через аналог в трейсмод через ModBus но для начала пытаюсь розобратся в ModBus Arduino но даже пример не компилит(
У меня только два примера Basic и PhoenixContact_nanoLC
Я не понимаю, в чем проблема? Качаете архив по ссылке которую я дал выше, кладете папки SimpleModbusMaster и SimpleModbusSlave в папку \arduino-1.0\libraries, запускаете ИДЕ, выбираете пример наверное SimpleModbusSlave, а там всего две функции:
с modbus_configure я думаю все ясно, 9600 - это скорость, чо такое 1, 2 не знаю почитайте и TOTAL_REGS_SIZE - количество элементов массива, который будет передаваться/приниматься.
Ну а modbus_update собственно и обновляет (передает/принимает) тот самый массив, а в ответ еще и ошибку вовзвращает, если таковая имеется.
В этом стандартном примере передаются по modbus данные с 6 аналоговых выводов с А0 по А5, с одного цифрового вывода 7 и принимаются данные для светодиода на 13 выводе.
Скомпилил. Гдето выпало ето сообщение! Я мучался с той библиотекой что я скинул. Извините!
По ссылке http://www.adastra.ru/products/drivers/modbus/ первое видео Подключение оборудования через посследовательный порт RS 232/485 по протоколу MODBUS RTU а на ардуино потенциометр передает значение через аналог в трейсмод через ModBus.
Помогите. Я с Modbus никогда не работал.
Я тоже, ну так чем вам помоч? в чем проблема то? На видео же все показано и там как раз Trace Mode выстапает как Мастер.
Откомпилировал скеч с примера на Ардуино. Подключил потенциометр на А0. В трейсмод зделал как на видео. В результате запускаю программу в трейсмод на ардуино мигает RX (чтото оправляэт) но окне графика 0. Может както нужно настроить адрес и канал соответственно с ардуино?
Добрый вечер, скажите так удалось трей связать с ардуинкой, я тоже столько инфы перелопатил и скетчей и все глухо
Все просто: 1,2 Это один стартовый бит, 2-стоповых бита.
Это формат передачи данных байта через последовательный порт... самый распространенный...
2 стоповых бита нужно чтобы понять что передача байта закончилась. Ну а стортовый, для внутренней синхронизации UART под начало ее приема....
Не заморачивайся, просто ставь и все
Не удалось... дуина отправляет данные... но трейс не может понять что ето((( Нужно настроить сам Трейсмод. Делал на Visual C# даные получает с дуины только по запросу... в реал тайм когда дуина всегда шльот данные программа просто виснет(((
Пока не будет нормальной роботы ModBus RTU о любих SCADA можно забыть(((
nmi ...наведите пример будьте добры
Не удалось... дуина отправляет данные... но трейс не может понять что ето((( Нужно настроить сам Трейсмод. Делал на Visual C# даные получает с дуины только по запросу... в реал тайм когда дуина всегда шльот данные программа просто виснет(((
Частенько так бывает если пытаетесь обновлять визуальные элементы не из UI-шного потока.
Если в обработчике событий Serial напрямую попытатся вывести что-то в TextBox и ему подобных. Сделать что-то TextBox1.Text=recivedData;
То, скорее всего, закончится "горем". Так как обработчик - запускается в отдельном потоке. Как это корректно сделать - зависит от того на чем у вас Морда построена на WinForms или WPF. Ищите что-то типа "update ui thread" и добавляете на чем вы построили интерфейс.
Если с потоками уже корректно, то возможно просто "не успевает отображать". Данные приходят быстрее чем обновляется интерфейс (вот он и уходит в "вечное обновление"). Попробуйте снизить частоту и слать, к примеру от ардуины данные раз в секунду.
С помощью библиотеки http://code.google.com/p/simple-modbus/ и функции READ_HOLDING_REGISTERS удалось опросить терморегулятор с определённым адресом. Правда в режиме RTU, но проблема в другом. Где теперь в скетче (SimpleModbusMaster), найти ответ? Я так понимаю, в скетче должна быть переменная дл хранения ответа с опрошенных регистров, но как она называется, ничего похожего не нашёл. Вот есть переменная, regs[5], в ней хранится количество ошибок (неотвеченных запросов). При нарушеннии в цепи RS485, regs[5] увеличивается на единцу после каждого запроса.
Куда копать дальше? Где найти данные ответа?
Всем доброго времени суток! И все таки они они общаются Trace Mode 6 и Ардуино по протоколу ModBus RTU ))) И довольно таки неплохо цифровые вх/вых работают отлично и псевдо - аналоговый выход PWM тоже пашет норм, на аналоговых входах наблюдаются шумы так что фильтры делать прийдется. А вообще желательно на все вх/вых поставить что б потом тараканов не ловить в схеме )))) Единственное что у меня пока неполучилось так это отобразить температуру на ТМ-6 я использовал термистор, но так как Ардуино работает в режиме модуля I/O лишний код пихать туда нестал просто сделал трансфер в тм значений, а там написал блоками формулу перевода значений в реальную температуру. В итоге поймал огромного таракана! После выходных куплю далас и аналоговый термометр LM ))) буду пробывать. Но вернемся к насущьному вопросу Скетч Мод баса брал здесь, но немного доработал.
напишите ваш имейл, пожалуйста.
xp007@rambler.ru
#include <Modbusino.h>
Библиотека "Modbusino" может работать с МАХ485? Если да то как прописать управляющий пин?
Есть еще библиотека для Arduino OPC. А через OPC сервер уже можно связываться с любыми скадами.
http://www.st4makers.com/
Для связи с Trace Mode использую библиотеку SimpleModBusSlave, не получается разобраться в трейс моде, точнее с приемом данных я разобрался, а с отправкой нет. Подскажите пожалуйста, как мне отправить данные с трейс моде в ардуину?
В "источники/приемники" создал группу Modbus и компонент W_Float(16) (input), далее перетащил этот компонент во вкладку каналы, что делать дальше не знаю. Может кто-нибудь опишет пошагово что к чему привязать и как настроить что бы передавать данные (в моем случае число 100)?