This is topic ModBus - передать значение 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/000186.html

Posted by DEA (Участник № / Member № 1572) on :
 
Добрый день!
Передача значения по команде W_SingleCoil(5)происходит только если предыдущее значение отлично от передаваемого. Как сделать так чтобы передача происходила всегда при вызове этой команды
Решил проблему так: отключал от источника обнулял, присваивал старое значение и подключал к источнику. Есть ли вариант попроще.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Есть вариант попроще.
У канала есть атрибут EXEC (39). Задайте ему в реальном времени значение "1". Канал передаст принудительно то значение, которое у него есть.
 
Posted by Selya (Участник № / Member № 6591) on :
 
Тоже столкнулся с этой проблемой. Если делать, как вы посоветовали, то канал принудительно передаст значение, которое установлено в атрибуте (39)EXEC (галочка "Отработать" в поле "На старте"). Там устанавливаю "0" или "1".
Но как бы мне указать там значение, которое действительно сейчас там есть? Это значение я считываю другим каналом HEX16 бит 1.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Канал HEX16-OUT, связанный с "Приемником" W_SingleCoil(5), передаст значение атрибута РЕАЛЬНОЕ_ЗНАЧЕНИЕ, а не "значение атрибута (39)EXEC".

"Но как бы мне указать там значение, которое действительно сейчас там есть? Это значение я считываю другим каналом HEX16 бит 1. "

Уточните, пожалуйста, откуда Вы "считываете другим каналом" и куда хотите записать то значение, которое Вы считали?
 
Posted by Selya (Участник № / Member № 6591) on :
 
Модуль М-7002. 4 аналоговых и 4 цифровых канала.
Считываю состояние цифровых каналов через Rout_Byte(1). Адрес 1, Канал 0, Input, Discret. Отображаю в ГЭ "Текст", формат бинарный.
Хочу управлять состоянием первого канала через W_SingleCoil(5) Адрес 1, Канал 0, Output, Discret.

Первый раз запускаю профайлер, устанавливаю в канале 1. Выключаю и выгружаю профайлер. Снова его запускаю. Вижу через Rout_Byte(1) эту единичку. Но в W_SingleCoil(5) у меня 0 реальное и входное значение. Снова послать туда 0 не могу (из-за проблемы, описанной в первом сообщении), чтобы сбросить эту единичку.

Простите за сумбур. Могу выслать пример.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Чтобы послать "0", надо в атрибут 39 (Exec) послать "1". Канал отработает, пошлет в "Приемник" "0" и сбросит автоматически свой атрибут 39.

Если задать каналу W_SingleCoil(5)-OUT в настройках периода "CALC EXE", то при передаче любого значения во ВХОДНОЕ значение этого канала с экрана или из программы этот канал отработает свою функцию, даже если его значение не изменилось.
 
Posted by Selya (Участник № / Member № 6591) on :
 
Спасибо, с "CALC EXE" получилось.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2