Тема / Topic: изменение адресов источников приемников модбас рту
AleksandrZIZ
Junior Member / Новичок
Участник № / Member № 5794
отправлено / posted
Добрый день, Адастра. я новичек в трасе моде, прошу пояснить некоторые вопросы:
Вопрос1): возможно ли привязать канал к нескольким источникам приемникам Modbus? например есть у меня 30 датчиков отдающих данные по модбас, но в единый момент времени я читаю данные только с одного, хотелось бы создать один канал и привязать его к 30 источникам и потом программно управлять с какого читать в данный момент. 2) Как наиболее правильно реализовать паузу в исполнении программы: есть датчик, на него надо подать команду начала измерений, подождать 20 секунд и подать команду еще раз, и так неопределенное количество раз? 3)Может быть есть возможность менять адрес\порт в источнике-приемнике модбас? есть функции в ST: чтения атрибутов канала и установка атрибутов канала, с каналом все понятно, а вот с источником-приемником- не понятно. хотелось бы программно изменять . 4) В какой последовательности происходит в мрв исполнение проекта: есть программка с циклом который считает до определенного значения и ряд каналов привязанных к источникам-приемникам. У меня создается впечатление что сначала запускается программа, выполняется, затем только начинается извлечение данных из источников-приемников.
Сообщения / Posts 7 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
1. и 3. Номер порта по Modbus RTU хранится в атрибуте С0 (93), номер устройства в атрибуте C1 (94), а адрес переменной - в атрибуте I1 (91) соответствующего канала. Все эти атрибуты доступны для изменения в реальном времени. Все COM-порты, предполагаемые для использования, должны быть инициализированы при загрузке. Поэтому должны быть созданы Источники/Приемники для каждого COM-порта, к ним должны быть привязапны каналы и соответствующие COM-порты должны быть заданы в узле. Менять настройки COM-портов в реальном времени нельзя. Управлять переадресацией каналов обмена можно программно или интерактивно.
2. Таймерная программа, которую можно написать на языке FBD, должна управлять атрибутом СОСТОЯНИЕ (3) канала обмена.
4. Программы считаются в основном потоке синхронно с заданными им периодами пересчета. Обмен по каналу последовательного интерфейса осуществляется в асинхронном потоке. Динамика обмена определяется не столько периодом обработки канала, сколько реальной производительностью последовательного канала, который работает в режиме полудуплекс.
Сообщения / Posts 17344 | Из / From: Россия
| IP / IP: IP адрес / IP address |
AleksandrZIZ
Junior Member / Новичок
Участник № / Member № 5794
отправлено / posted
2.Если я правильно понял, то состояние(3) 1-выключен канал, 0-включен. Могли бы вы выслать пример таймера на xxx@aaa.com? я посмотрел в блок схемах, но там только количество пересчетов программы, а не секунды. А если поставить в настройках канала салл программы(в программе считывание данных из канала и передача в него 1) период пересчета в 20 секунд, то как реализовать правильнее смену адреса? Скажем есть 5 датчиков в линии, надо спросить 1, подождать 20 секунд, считать данные, спросить 2, подождать 20 с, считать данные... Адресация путем указания в 94 атрибут канала номера датчика. Нужна какая то переменная, которая не будет обнуляться при пересчете программы. Как такую переменную создать?
[ 03.09.2012, 16:55: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Сообщения / Posts 7 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
С достаточной степенью временного квантования периодический опрос можно организовать соответствующим подбором периодов обработки каналов и программ.
Чтобы сформулировать рекомендации, надо более детально представлять себе задачу. Пришлите, пожалуйста, запрос на адрес hotline3@adastra.ru с предполагаемой циклограммой опроса и описанием варианта использования данных, которые будут получены в результате такого мониторинга.
Сообщения / Posts 17344 | Из / From: Россия
| IP / IP: IP адрес / IP address |