Добрый день. Мне нужно управлять неким устройством, путем посылки в COM-порт двухсимвольных ASCII команд. Обратно от устройства никакого ответа не приходит. То есть, задача - просто отправить в порт два произвольных символа. Подскажите, пожалуйста, как это лучше реализовать.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Можно попробовать "Обмен по произвольному протоколу по RS" (см. документацию).
Posted by Alex210271 (Участник № / Member № 4421) on :
Я попробовал. Но, у меня не получилось. Получилось сделать как у вас в учебном видео "Бесплатный драйвер Modbus ASCII" используя CALL.VECTOR и SENDCMD в поле "дополнительно" источника. Посылкой управляю включая и отключая канал CALL. Мне только не нравится что при включенном канале посылка символов ASCII в порт идет постоянно, хотелось бы послать одну команду. Ну и что канал не получая ответа показывает недостоверность. В принципе работает, но я думал может вы предложите более простое и красивое решение.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Сделайте "Источник" OUT, канал Vector - OUT и задайте у канала Vector после SENDCMD=<команда> ключ BYTESREAD=<сколько байтов читать>, равный 0.
Posted by Alex210271 (Участник № / Member № 4421) on :
Если источник сделать OUT, вообще в порт ничего не посылается (при любом типе канала Vector). Монитор портов показывает что порт открыт и на этом все. Ни одного символа. Если источник типа INPUT, то канал Vector - OUT работает так же в точности как и IN. Никакой разницы не заметил. Ключ BYTESREAD=0 действительно помог - канал остается достоверным. Думаю меня это пока устроит. Большое спасибо.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Канал OUT отрабатывает только при взведении атрибута EXEC (39). Проверено.
Posted by Alex210271 (Участник № / Member № 4421) on :
Спасибо. Вы правы. Я так и проверял, но где-то, видать, ошибся. Не знаю, почему у меня сразу не заработало. Еще раз перепроверил, все работает идеально.