Wbe2-i-rs232

Добрый день!
Купил контроллер WB7+WBE2-I-RS232 для решения задачи сбора данных с электронных весов на производстве - Прибор весоизмерительный МИ ВДА/7Я и инструкция

В документации WB я не нашел подробной информации как работать с RS232, через скрипт или еще что-то, чтобы открыть порт и читать данные. На весах включен режим непрерывной отсылки устоявшегося веса. Через утилиту на самом контроллер minicom подключился и проверил, что данные на порт приходят.

Нужно читать вес и записывать его в переменную, чтобы далее работать через mqtt.

Добрый день.
В вашем случае придется использовать средства линукса, в частности необходимо написать скрипт, который можно вызывать из командной строки или из движка правил. Способы отправки запроса и получения данных обсуждались в похожих темах. Например, здесь:

Правильно я понимаю в самом линукс нужно оформить данный скрипт и он должен крутиться в системе:

#!/bin/bash
#Инициализируем порт /dev/ttyMOD3
stty -F /dev/ttyMOD3 ospeed 9600 ispeed 9600 raw clocal -parenb -echo cs8
CR=“$(echo -e ‘\r’)”
exec 4<> /dev/ttyMOD3
cat <&4 | while :
do
IFS=“$CR” read -r line
case “$line” in
quit*)
break
;;
*)

if [[ -n “$line” ]]; then
echo $line
#Полученные строки шлём в MQTT
mosquitto_pub -t /devices/port/controls/raw/meta/type -r -m text
mosquitto_pub -t /devices/port/controls/raw/on -r -m “$line”
fi

    ;;
esac

done

А вызов его делается из правил вот такой строкой?

echo -en "Тест для отправки вчерез порт " > /dev/ttyMOD3

Да, правильно.

Нет, здесь происходит отправка строки в порт. Это может пригодиться, если вы будете использовать командный протокол обмена (стр.17-21 в иструкции).
Вызов скрипта можно сделать просто из командной строки.

script_name.sh

Так командный мне не нужен, мне нужно из rs232 получать данные которые туда летят и писать их в параметр.
Получается этот скрипт не подойдет?
Кстати оформил скприт и запустил его:

root@wirenboard-AFVXDICD:~# wb-scale.sh
-bash: /usr/bin/wb-scale.sh: Permission denied
root@wirenboard-AFVXDICD:~# wb-scale.sh
: No such file or directory
root@wirenboard-AFVXDICD:~# /usr/bin/wb-scale.sh
: No such file or directory

Сначала не было разрешений, поправил, а потом ругается на файл и дерикторию.

Должен подойти. Только топик свой нужно указать. Нужно через движок правил создать виртуальное устройство с контролом и взять его mqtt топик.

bash wb-scale.sh

1 лайк

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.