This is topic Передача массива по Modbus TCP с контролем in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/000622.html

Posted by Поляков Илья (Участник № / Member № 3358) on :
 
Задача: RTM передает массив в PLC, по одному элементу, дополнительно передает индекс элемента в массив - PLC должен восстановить массив у себя в памяти.

Протокол MOdbus.

Вопрос: как передать в PLC массив чисел, и при этом быть уверенным, что PLC данные принял верно, не считывая значение из PLC?

Иными словами, существует-ли способ узнать, что данные по Modbus доставлены адресату верно, не производя контрольные считывания тэга в PLC, куда были отправлены данные?

Использование числа Modbus тэгов по числу элементов массива нежелательно, т.к. размер массива может варьироваться и быть большим(в этом случае можно было-бы организовать групповую передачу, но это сильно увеличит количество каналов и источников, и не решает проблему контроля правильности. Вроде...).

Пока только один способ на ум приходит:
1. Отправляем число и индекс по Modbus;
2. Читаем в цикле эти же тэги, до совпадения значений с отправленными;
3. Шлем контроллеру в тэг флаг "Данные выставлены"
4. Ждем от PLC ответ (в тэге) "Данные получены"
5. Снимаем флаг "Данные выставлены";
6. Ждем снятия флага "Данные получены"
7. Цикл передачи с контролем закончен, на п. 1.

Смахивает на перевозку одной картошки "Камазом". [Пдмигивание / Wink]
Может можно проще?

З.Ы. Только не отсылайте меня к изучению спецификации на Модбас, пальцем покажите плиз [prey / молящийся] .
 
Posted by AI (Участник № / Member № 3594) on :
 
Я у себя проверяю по контрольной сумме. Со скады отправляю пакет информации и в двух регистрах - контрольную сумму и счетчик запросов. На контроллере считаю сумму и сравниваю с контрольной. Если совпадает, значит данные пришли верно и в обратную связь выставляю полученный счетчик.
Скада запускает таймер и смотрит, если за отведенное время пришел нужный счетчик в обратной связи, значит данные получены, если нет то -таймаут. (кроме счетчика пересылается и код ошибок, если конфигурационные данные были неверные).
 
Posted by Поляков Илья (Участник № / Member № 3358) on :
 
Как пакет отправляете?
 
Posted by AI (Участник № / Member № 3594) on :
 
Я для обмена информацией выделил десяток регистров для записи и для чтения (как на скаде, так и на контроллере). В зависимости от кода команды (чтение конфигурации оборудования/сигнала/регулятора и т.п., запись конфигурации) я записываю туда нужные данные, код команды, индекс переменной/оборудования, счетчик команд и контрольную сумму.
На контроллере читаю эти регистры, считаю контрольную сумму и сравниваю с контрольной, которая пришла со скады. Если всё ОК, распихиваю значения регистров в соответствующие переменные и посылаю в обратную связь на скаду счетчик, который пришел.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Справка
Обмен по протоколу MODBUS TCP/IP

файл IP_modBus

<произвольное_число> CSC

отработка пакетов ответа от контроллеров, формирующих контрольную сумму во фрагменте Modbus-пакета Modbus/TCP (по стандарту в части пакета TCP, отведенного под Modbus, контрольная сумма не формируется). По умолчанию, монитор не создает эту строку в файле IP_modBus.

Пример: 2 CSC
 
Posted by Поляков Илья (Участник № / Member № 3358) on :
 
AI! Спасибо! Все понятно.

Хелп изучаю, ответы на вопросы похоже нашел. Поторопился с постом. Спасибо!
 
Posted by siver.1998 (Участник № / Member № 9213) on :
 
Добрый день. имеется проект с графическим экраном, требуется попробовать передать с другого компьютера по TCP/ip данные. Не получается передать данные, хотя атрибут А изменяет значения и обнуляется
 
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
 
Уточните, по какому протоколу из какого ПО будут передаваться данные, какие данные? Опишите более подробно.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2