ADAM 400x Modbus

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

ADAM 400x Modbus

Сообщение Vasiliy Baev »

Всем привет!

В версии :labview: >2012 появилась поддержка Modbus протокола (для этого необходимо установить DSC).
В работе со "Старой" библиотекой проблем не возникает, а вот новый функционал освоить не получается.
Помогите разобраться.

Есть Адам 4019+:
ADAM.jpg
Пытаюсь добавить ModBus server в :labview: и создать необходимые переменные, но ничего хорошего из этого не выходит.
Снимок_экрана_101514_040408_PM.jpg
Как выбрать адрес при создании переменной, чтоб всё заработало?
Пока ничего не получилось из этого.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: ADAM 400x Modbus

Сообщение Borjomy_1 »

А вы ничего не путаете? Сам Adam является сервером (Slave), он отвечает на запросы. А вам нужно настроить клиента. Нет?

Но вообще Address - это адрес устройства на шине. По стандартам протокола на порте может сидеть несколько устройств с различными адресами. Соответственно, вы должны знать адрес вашего adam. Обычно этот адрес = 0. Но бывает и равным 1.
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

Re: ADAM 400x Modbus

Сообщение Vasiliy Baev »

Borjomy_1, Нет, не путаю. АDAM - клиент (Slave), его спросили - он ответил. Адрес его в сети 1. Настраиваем Сервер (опрос датчиков).

Проблема в том, что после создания Сервера, при создании переменной, выбрать подходящее значение адреса(-ов) из предложенных не получается...
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: ADAM 400x Modbus

Сообщение Borjomy_1 »

А зачем сервер-то создавать? Slave и есть сервер.

P.s поддержка ModBus, которую вы мучаете, есть и в LV2009
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

Re: ADAM 400x Modbus

Сообщение Vasiliy Baev »

Конец дня... я уже начинаю всё путать, но всё же Мастер (сервер), Клиен (Слэйв). Разве не так?
Вот что примерно я хочу изобразить: http://www.ni.com/white-paper/13911/en/

ПиСи
Контроллеры на шине Modbus взаимодействуют, используя master-slave модель, основанную на транзакциях, состоящих из запроса и ответа.
Обычно в сети есть только одно ведущее, так называемое, «главное» (англ. master) устройство, и несколько ведомых — «подчинённых» (англ. slaves) устройств. Главное устройство (мастер) инициирует транзакции (передаёт запросы). Мастер может адресовать запрос индивидуально любому подчиненному или инициировать передачу широковещательного сообщения для всех подчиненных устройств. Подчинённое устройство, опознав свой адрес, отвечает на запрос, адресованный именно ему. При получении широковещательного запроса ответ подчинёнными устройствами не формируется.
WiKi (C)
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: ADAM 400x Modbus

Сообщение Borjomy_1 »

Мастер выдает запрос (в клиент-серверной терминологии это клиент). Slave - оконечное устройство, обрабатывает запрос и выдает ответ (это сервер).
Аватара пользователя
Viktor

Activity Professionalism Tutorials Black
expert
expert
Сообщения: 1408
Зарегистрирован: 23 мар 2008, 10:56
Награды: 4
Версия LabVIEW: 2020
Откуда: Санкт-Петербург
Благодарил (а): 17 раз
Поблагодарили: 3 раза
Контактная информация:

Re: ADAM 400x Modbus

Сообщение Viktor »

выбрать подходящее значение адреса(-ов) из предложенных не получается
Адрес модуля можно поменять с помощью Utility for ADAM-4000, ADAM-5000/485 series
и, конечно же, ADAM является сервером (Slave).
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

Re: ADAM 400x Modbus

Сообщение Vasiliy Baev »

Borjomy_1, Спасибо. С терминологией разобрались.
Viktor, не в адресе проблема. Проблема в том, чтобы создать Переменную, которая обращается к адресу данных в ADAM, как это показано в примере: http://www.ni.com/white-paper/13911/en/
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: ADAM 400x Modbus

Сообщение Borjomy_1 »

Напишите тип переменной, адрес и банк, попробую вам сгенерировать путь.
Сразу скажу, обращение к массивам - быстрее. И одновременно, с массивами есть нюанс. Если заказали, что пишется например 10 элементов, то ни 9, ни 11 - не запишутся и одновременно ошибки не покажут. Надо четко соблюдать размеры.
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

Re: ADAM 400x Modbus

Сообщение Vasiliy Baev »

На скриншоте выше из программы AdamApax.NET Utility приведены адреса для каждого модуля, хотелось бы достучаться как к группе, так к каждому каналу отдельно.
На данный момент всё прекрасно работает через Modbus 1.2.1 библиотеку. В 14 версии :labview: уже новая библиотека? http://www.ni.com/white-paper/7675/en/
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: ADAM 400x Modbus

Сообщение Borjomy_1 »

На сервере Modbus1 ПКМ->Create Bound Variables
Потом появившуюся переменную редактировать. Необходимо изменить имя переменной (Name) по вашему желанию и путь (на рисунке выделен)
Обратите различие в адресации банка. У адама это число 40000. В стандартной нотации MB - это 400000, так как максимальный размер банка 65536 ячеек.
Вложения
Создание переменной.PNG
Создание переменной2.PNG
Создание переменной3.PNG
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

Re: ADAM 400x Modbus

Сообщение Vasiliy Baev »

Borjomy_1, спасибо, заработало!
Я так всё и делал, но в первый раз выставил неправильные параметры порта и только сейчас увидел, что у меня на машине 2 библиотеки работают с одним портом, удалил лишнюю и всё заработало. Спасибо, ваш ответ мне помог снять сомнения по адресному пространству.
Инструмент оказался удобный, буду использовать на контроллерах.
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

Re: ADAM 400x Modbus

Сообщение Vasiliy Baev »

С массивом пока не получается, как получить все или первые 4 канала? В массиве пока приходит только первый канал.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: ADAM 400x Modbus

Сообщение Borjomy_1 »

Для массива - в строке адреса указывается число ячеек (например, L30 - это 30 ячеек). По умолчанию L1, т.е одна ячейка
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 9 раз
Поблагодарили: 10 раз
Контактная информация:

Re: ADAM 400x Modbus

Сообщение Vasiliy Baev »

Borjomy_1,
Спасибо большое. :super:

Решил опробовать это на cRio c 9071 (4xRS485) и помочь коллеге в соседней ветке, но не тут-то было. Без настройки порта (установки Wire Mode: 2-wire Auto) мне не удаётся реализовать данный приём работs по modbus, с установкой данной настройки работает старая библиотека Modbus 1.2.1. При подключении к ADAM использую 2 проводное соединение.
(Выходные контакты TXD - и TXD + перемычки TXD - и RXD - ; TXD+ и RXD+; RTS+ и CTS+; RTS- и CTS-; )
Какие тут могут быть варианты решения?
Ошибка при создании провода, но вроде все перемычки на месте?


Настройки MAX этого сделать не позволяют:
Снимок_экрана_101614_044456_PM.jpg
Снимок_экрана_101614_044510_PM.jpg
Настройки создаваемого сервера тоже не позволяют настроить порт:
Снимок_экрана_101614_044927_PM.jpg
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»