MENU
    Как использовать универсальный драйвер последовательного интерфейса на шлюзе ввода/вывода
    • 31 Oct 2023
    • 3 Минуты для чтения
    • Авторы

    Как использовать универсальный драйвер последовательного интерфейса на шлюзе ввода/вывода


    Вводный текст

    Как использовать универсальный драйвер последовательных устройств на шлюзе ввода/вывода

    Узнайте, как обеспечить связь шлюза I/O Gateway с любым последовательным устройством.

    **С 1 ноября 2021 года компания Tulip прекращает продажу устройств I/O Gateway. Устройства Edge IO и Edge MC по-прежнему доступны. Узнать больше

    Руководство по последовательной настройке Edge IO

    Руководство по настройке последовательного интерфейсаEdge MC

    В этой статье объясняется, как использовать общий драйвер последовательного интерфейса на шлюзе ввода/вывода для связи с большинством последовательных устройств. Эта статья может быть использована и для других устройств Tulip Edge, таких как Edge MC и Edge IO.

    В данной статье предполагается, что вы уже завершили настройку шлюза ввода/вывода.

    Обратите внимание, что этот драйвер отличается от драйвера Serial Driver (Player Only), который в настоящее время доступен только для Windows Tulip Player.

    Что такое универсальный последовательный драйвер?

    Общий последовательный драйвер позволяет шлюзу ввода-вывода взаимодействовать с другими устройствами, используя общий последовательный протокол. Эти устройства могут быть такими, как:

    • Arduino
    • Raspberry Pi
    • Другие устройства Tulip Edge
    • Микроконтроллеры
    • Многие другие устройства

    Ввиду универсальности этого драйвера он имеет сложную конфигурацию. Эта конфигурация должна точно соответствовать конфигурации другого устройства.

    Этот драйвер может поддерживать связь с несколькими устройствами одновременно.

    Примечание: Tulip не пишет пользовательский код для устройств, которые вы подключаете к общему последовательному драйверу.

    Включение универсального последовательного драйвера

    Подключите компьютер к шлюзу ввода/вывода, войдя в созданную им локальную сеть.

    Откройте портал устройств. На странице приборных панелей нажмите на кнопку "Configure Drivers" в левой части страницы.

    На странице конфигурации драйвера щелкните на опции "Generic Serial".

    По умолчанию опция "Generic Serial" уже должна быть зеленой (включенной) и сконфигурированной с некоторыми общими настройками.

    Windows обычно использует \r для возврата каретки.

    Для включения драйвера Generic Serial требуется выполнить некоторые настройки.

    Ниже приведены параметры для каждого поля:

    Суффикс записи

    • Ожидаемый ввод: Любая строка - она добавляется к любому сообщению, которое шлюз ввода-вывода будет посылать устройству, и обычно представляет собой новую строку (\n) или возврат каретки (\n\r).
    • Требуется: Нет

    Сопоставитель путей

    • Ожидаемые данные: Системный путь к устройству - может быть * для сопоставления с любым неиспользуемым последовательным устройством (это полезно при использовании usb-to-serial адаптеров).
    • Требуется: да

    Имя

    • Ожидаемый ввод: Имя устройства (оно будет использоваться для ссылок на устройство в приложениях)
    • Требуется: да

    Разделитель

    • Ожидаемый ввод: Любая строка (используется для разделения сообщения с устройства на фрагменты для отправки на ваш аккаунт Tulip)
    • Требуется: да

    Бод

    • Ожидаемый ввод: Скорость передачи данных, которую устройство будет использовать для обмена данными
    • Требуется: да

    Родной порт DB9

    Если вы планируете использовать родной порт DB9 на шлюзе ввода-вывода, то вам необходимо использовать путь /dev/ttyO4 в устройстве сопоставления путей. То есть именно заглавную букву O, а не ноль.

    Создание приложения для работы с последовательным драйвером

    Вот как создать приложение для тестирования драйвера.

    Сначала создайте новое приложение и добавьте в него кнопку.

    Добавьте к этой кнопке триггер, вызывающий типовое последовательное устройство с именем, которое вы использовали при настройке драйвера.

    Вот поля, которые необходимо заполнить в операторе "Then":

    • "Run Device Function"
    • "Generic Serial Device"
    • "Отправить строку на последовательное устройство"
    • На "этой станции"
    • Устройство для отправки: "text" "RS232"
    • Сообщение для отправки: "text" "testing generic serial"

    Добавьте в это приложение триггер, который будет записывать данные в переменную, когда драйвер generic serial выдает данные. Используйте оператор "If", чтобы сохранять данные только в том случае, если их выдает нужное устройство.

    Когда

    • "Устройство" "Generic Serial Device" выдает данные на "этой станции"

    Если

    • "Выход устройства"
    • "имя"
    • "="
    • "текст" "RS232"

    Тогда

    • "Манипуляция данными"
    • "Хранить"
    • "Выход устройства" "данные"
    • местоположение: "generic serial" (это имя переменной).

    Добавьте эту переменную в приложение. Она будет представлять собой объект со свойствами "name" и "data".

    Протестируйте приложение

    Для тестирования приложения используйте нуль-модем и преобразователь USB в RS232.

    Подключите USB к компьютеру. Затем подключите нуль-модемный адаптер к адаптеру RS232 и порту DB9 шлюза ввода-вывода.

    Начните работу с:

    Если вы работаете под Windows, используйте Putty для проверки соединения. Получите номер порта с помощью Диспетчера устройств.

    Введите номер COM-порта в поле "Скорость" и выберите "Тип подключения" "Последовательный".

    Терминал Putty будет печатать сообщения на шлюз ввода-вывода только при нажатии кнопки в запущенном приложении.

    Отправьте сообщение 'Tulip' через Putty, набрав его и нажав клавишу Enter.

    Как протестировать универсальный последовательный драйвер на Linux или Mac с помощью Node.js

    Для этого требуется node.js и npm. Затем установите пакет serialport через npm.

    const SerialPort = require('serialport')

    const Readline = require('@serialport/parser-readline')

    const port = new SerialPort('/dev/ttyUSB0', { baudRate: 19200 })

    const parser = new Readline()

    port.pipe(parser)

    parser.on('data', line => {

    console.log(> ${line})

    });

    let test = false;

    setInterval(()=>{

    if (test){

    port.write('output\n');

    test = false

    }

    else {

    port.write('другой выход\n');

    test = true

    }

    },1000) ```


    Была ли эта статья полезной?