Стартовая страница › Форумы › Разработка и интеграция › инвертирование бит канала
Помечено: инверсия бит
- В этой теме 7 ответов, 3 участника, последнее обновление 8 лет, 3 месяца назад сделано
Mikhail.
-
АвторЗаписи
-
17.04.2018 в 09:17 #8939
denis_exciton
УчастникДобрый день.
Используем Rapid SCADA для управления городским освещением. Имеем приходящий с контроллера нормальнооткрытый контакт пускателя, необходимо инвертировать сигнал для корректного отображения сигнала на схеме и в журнале событий. какой функцией это возможно осуществить?17.04.2018 в 10:14 #8940
manjey73УчастникДля работы с битами есть GetBit и SetBit ну и формулу NOT можно применить.
Если нет необходимости использовать внутри других формул то простой вариант Михаил выкладывал.
Cnl > 0 ? 0: 117.04.2018 в 10:35 #8941denis_exciton
Участникиспользуем следующий код NOT(GetBit(Cnl,1)) не работает или что то не правильно ввели?
17.04.2018 в 11:39 #8946
manjey73УчастникНу так NOT надо добавить в формулы видимо. И если GetBit возвращает не double а bool то тоже может быть ошибка, так как внутри формулы нельзя использовать другие формулы, если они не используют на выходе double
я сейчас за другим ПК, тут нет scada, не помню, выкладывал NOT или нет в тему формул.
Используйте разные дорасчетные каналы. В одном выдергивайте бит, в другом простую формулу, которые выше приводил.18.04.2018 в 06:00 #8956denis_exciton
УчастникМы уважаем ваш продукт и что вы делаете, много полезных функций коротающих разработку системы, но элементарные задачи выделения битов и инверсии довольно частая задача, особенно когда нет возможности перевернуть состояние бита на другом этапе, а здесь нужно голову ломать. И почему у вас в мануале не полный список «формул», ведь я так понимаю что продукт уже распространяется.
18.04.2018 в 06:15 #8957denis_exciton
Участникзадача решена использовали следующую формулу: GetBit(Cnl,1) > 0 ? 0: 1
все работает. спасибо!18.04.2018 в 14:22 #8958
manjey73Участникdenis_exciton Просто вам дали удочку, а не сразу рыбу 🙂
Уже сам факто того, что внутри scada есть возможность писать формулы на C# есть хорошо. Просто у всех задачи разные. Я например Scada использую как ПЛК, поэтому и делал таймеры и другие функции с возможностью применять в разных каналах, а кому то просто достаточно мониторинга.
18.04.2018 в 20:05 #8963
MikhailМодераторв мануале не полный список «формул»
Это же open source проект — каждый может внести свой вклад, например, снять видео, написать статью или написать хорошую справку по формулам. Практически все переводы системы, а также многие драйвера сделаны нашими пользователями.
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.