Передавайте на ИПП120(по сети) битовой маской в панели уже преобразуете как надо!
Я бы писал сразу название аварии, например с помощью динамического текста, чтобы голову не морочить и если аварий больше одной выводил их по очереди, кстати было много подобных тем!
И хочу Вас поздравить, такое впечатление, что Вам не дают форум смотреть и даже саму программу ОЛ, в смысле, там уже есть функция вставки бит и многое другое, зачем что-то придумывать, их заменяющее, тем более у Вас это не получается, в смысле, на много сложней!
Посмотрите эти темы, может чего почерпнёте:
https://owen.ru/forum/showthread.php?t=31076&page=2
https://owen.ru/forum/showthread.php?t=31113&page=7
https://owen.ru/forum/showthread.php?t=29865&page=8
Короче, если решите по очереди аварии выводить, я и проект выкладывал(по верхней ссылке), то и битовую маску даже не придётся на биты обратно разбивать, в смысле, там такой алгоритм, он данные сразу из битовой маски берёт!
И, вот здесь выкладывал макрос поиска максимального значения из 16 и номера входа с максимальным значением:
https://owen.ru/forum/showthread.php?t=25067&page=70
Так если на нескольких входах максимальные значения, то все номера таких входов отображаются по очереди, начиная с самого маленького входа по числовому значению, короче, как у Вас в макросе, но он проще вашего на порядок при большей функциональности.
MAX_3_2.PNG
Можно его использовать, в смысле, булевы сигналы преобразовать в целочисленные и подать на входа 1-10 макроса!
Вот, немного поправил старый проект(были небольшие косяки):
MAX_6.owle
Но все десять входов одновременно активировать нельзя, переменная переполнится, нужно ограничиваться девятью, в остальном вроде всё нормально работает:
MAX_6.PNG





Ответить с цитированием