В библиотеках oscat есть прекрасный FB "message_8". По изменению состояния одного из входов, на выходе появляется заранее прописанная переменная типа "string". Дефолтные 8 входов легко расширяются до 16 и больше правкой библиотеки. Там же есть и FB "mirror". Как известно, байты в СМИ-2 летят в сегменты справа налево, а использование этого блока исправляет данную ситуацию. Если лениво использовать этот блок - чтобы сообщение нормально отобразилось, нужно задать значение переменной задом-наперед (DCBA, если нужно ABCD). Приоритет у ошибки с меньшим номером входа.
Задача по реализации, к примеру систем защиты котельной на уровне дискретных сигналов с выводом кода ошибки на СМИ-2 решается буквально за полдня.