This is topic Не записывается значение в дискретный параметр 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/001584.html

Posted by fenestarh (Участник № / Member № 6982) on :
 
Доброго времени!
Использую W_Word(16) для чтения значений по MBE.
Работаю с битами, для записи использую следующую конструкцию:
в кнопке, по нажатию передаю по XOR некую маску (maska = 2^n, где n - номер бита) в качестве источника использую Rout_Word(3) привязанный к этому же адресу что и приёмник, а приёмником выступает W_Word(16). Такая конструкция необходима для переключения 1-го бита.

Всё прекрасно работает, я могу менять состояния битов и всё прекрасно отображается до тех пор, пока в контроллере не поменяется значение этого регистра. Отображается всё корректно, в Rout_Word(3) лежит корректное число, а вот изменить состояния бита вышеуказанным способом, не получается. Складывается ощущение, что TRM думает, что бит не поменялся и не пишет новое значение в W_Word(16).
Подскажите, как мне обойти это ограничение на запись, или может быть, есть иной способ с инвертированием битов? [Недоумение / Confused]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Надо каналу, связанному с приемником W_Word(16), в настройках периода пересчета "Единица измерения" = CALC EXE.
 
Posted by fenestarh (Участник № / Member № 6982) on :
 
quote:
Отправитель / Originally posted by AdAstra Technical Support:
Надо каналу, связанному с приемником W_Word(16), в настройках периода пересчета "Единица измерения" = CALC EXE.

Спасибо Вам огромное, помогло!!! [prey / молящийся]
 
Posted by fenestarh (Участник № / Member № 6982) on :
 
Интересная ситуация получается.

Если я выставляю у канала Период пересчета (единицы) (38, FRQ_D) в CALC EXE, то при попытке записи в него из программы, следующие регистры (передаваемые аргумантами в программу и имеющие Период пересчёта CALC EXE) инициализируются 0-ми. Версия TRM 6.10.2

Да и сами каналы работают очень странно. Переключаю XOR-ом биты из кнопки. При "быстром" нажатии на кнопки могут не "переключаться", а могут и взводиться/слетать рядом стоящие биты.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Пришлите, пожалуйста, Ваш тестовый проект (файл *.prj, в котором наблюдаются описанные эффекты) со ссылкой на этот пост и описанием порядка воспроизведения конфликтных ситуаций.
 
Posted by fenestarh (Участник № / Member № 6982) on :
 
Прошу прощения за столь долгий ответ. Письмо с проектом отправил на hotline@adastra.ru.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если Вы задали в программе аргументы OUT и используете их значения в проекте, надо задать и функции их формирования, например,


DO01 := DI01 XOR 16;
DO02 := DI02 XOR 16;
DO03 := DI03 XOR 16;
DO04 := DI04 XOR 16;
 
Posted by fenestarh (Участник № / Member № 6982) on :
 
quote:
Отправитель / Originally posted by AdAstra Technical Support:
Если Вы задали в программе аргументы OUT и используете их значения в проекте, надо задать и функции их формирования, например,

Не совсем понял. Дело в том, что в функции я как раз и не могу работать с ними. При попытке записи в один из каналов, остальные заполняются нулями, хотя я их не трогаю. [Недоумение / Confused]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Программа при каждом своем вызове генерирует сигналы на всех OUT-аргументах.
Если для какого-либо OUT-аргумента в программе нет функции, на нем генерируется то же значение, которое было на нем до текущего вызова программы. В Вашем случае "0".

Если функция есть, соответствующее значение вычисляется и передается на выход.

ДЛЯ ВСЕХ OUT-АРГУМЕНТОВ ДОЛЖНЫ БЫТЬ ФУНКЦИИ В ЭТОЙ ПРОГРАММЕ.
Если в данной программе какие-то сигналы не должны формироваться, их надо формировать в другой программе.

В присланном Вами примере были введены указанные Выше дополнения и проведена проверка на эмуляторе ModSim32. Никаких нарушений не обнаружено.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Вам отправлен модифицированный проект с различными вариантами обеспечения необходимого функционала.
Вам следует вернуть в примере IP-адрес Modbus-источника к Вашему.
 


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



Powered by Infopop Corporation
UBB.classic™ 6.7.2