This is topic Работа с bool и SINT in forum Языки программирования в TRACE MODE 6 / Algorithm Programming Languages at Форум TRACE MODE: техническая поддержка.
Некоторые атрибуты каналов имеют тип bool. Однако в описании, например программной достоверности, имеется следующее: "В атрибут могут быть посланы следующие значения: 0 – сбросить ErCode и признак аппаратной недостоверности; 1, 2, 3, 4 – установить соответствующее значение ErCode; 8 – установить 39,EXEC и сбросить Response и Request; 0x100 – инвертировать Request; 0x200 – инвертировать Response; 0x10000 – установить ForceUpdate;"
Как соотносится тип bool и биты в байте SINT? Какие биты характеризуют состояние true и false такой переменной типа bool?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
false = 0 true != 0
Никак с битами не соотносится.
Данные по типу атрибутов в IDE немного устарели, поэтому не следует им придавать такого значения. В документации информация более актуальная.
Posted by Aspect (Участник № / Member № 2995) on :
В документации отсутствует описание типа данных для атрибутов канала. Правильно ли я понимаю, что если в документации описывается передача значений 1,2,3, то это sint? Тип данных важен, так как атрибут программная достоверность обрабатывается программой.
Что в текущей версии 6.06.2 представляют собой атрибуты канала №4 и №52? Насколько корректно программно устанавливать атрибуту 52 значение 1 в случае несоблюдения некоторых условий и 0 - при соблюдении.
RTM устанавливает самостоятельно значения 52-му атрибуту?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Не обязательно SINT, это может быть и INT. Для работы с данными атрибутами из программы подойдет любой целочисленный аргумент.
Программно устанавливать 52 аргумент допустимо. RTM работает с 1-м битом данного атрибута только в канале Float, если стоит флажок контроль границ.
Posted by Aspect (Участник № / Member № 2995) on :
Сохранилась ли возможность записи в аргумент 52 в версии TM 6.07.7? По моим ощущениям несмотря на то, что контроль границ приравнивается нулю, запись в аргумент 52 недопустима.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Перепроверил. Управление через атрибут 52 сохранилось. Пришлите, пожалуйста, проект с пояснениями для анализа.