Всем привет.
Необходимо получать от сканера штрих-кодов значения. Но непонятно как передавать по Mod-Bus большие величины.
Объясню по подробнее:
1. Оператор сканирует штрих-код.
2. Т.к. сканнер не имеет своего протокола обмена высокого уровня, то он просто асинхронно выбрасывает распознанный штрих в символах 0..9 (!) и после эмулирует нажатие клавиши Enter (h0D).
3. Штрих-код ловится спец.устройством собственной разработки - "Bridge Scanner-PLC" - и хранится во временной памяти. Этот bridge может принимать асинхронно данные от 8 сканеров штрих-кодов.
4. Штрих-код преобразуется из последовательности символов 0..9 в последовательность цифр 0..9.
5. ПЛК сканирует регистры внутри Bridge через шину mod-bus. Тут возникает проблема - регистры в mod-bus двух-байтные. А Bridge хочет выдать гигантское число - 4811620472025 (штрих-код в формате EAN13).
6. Для совместимости с mod-bus сейчас реализовано так, что Bridge разделяет свое гигантское число на 4 регистра mod-bus со значениями: 0004, 8116, 2047 и 2025 соответственно (штрих-код из п.5).
Вопрос знатокам:
Как потом собрать это число в ПЛК в одно единое int64 ?
Правильно ли всё это? Может есть пути попроще?
Есть ли уже готовые решения?