This is topic ModBus - передать значение in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Добрый день! Передача значения по команде 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 :