четверг, 11 марта 2021 г.

Тензо-М ТВ-003/05Д: весоизмерительная поделка

Сегодняшняя тема будет про преобразование сигналов тензодатчиков с помощью приборов "ТВ-003/05Д" от компании "Тензо-М". Хочу сразу обратить внимание, что речь идёт не в целом о компании - производителе тензодатчиков, а о конкретном устройстве, потому что если говорить о датчиках, то, в принципе, у меня с ними никогда проблем не было, работают на разных объектах без нареканий. Тут речь о том, что не надо делать то, чего не умеешь: если ты делаешь хорошо тензодатчики, ну так и делай их, и не надо начинать производство каких-то глючных приборов для их подключения. 

Так вот перейдем теперь к ТВ-003/05Д. Это поистине весоизмерительное чудовище - огромное, тяжелое, глючное. В общем-то, чтобы понять, насколько оно неудобное в использовании, достаточно просто заглянуть в инструкции к этим приборам. 

Хочу обратить внимание на несколько моментов, с которыми пришлось столкнуться мне лично при работе с этим оборудованием.

1. Разные модификации. Если кто-то всерьёз думает, что совсем недешёвый, тяжеленный и неудобный в использовании прибор должен быть хотя бы универсальным - это заблуждение. На каждом таком приборе есть специальная наклейка, где производитель ставит пометки напротив опций, которые включены в конкретную модификацию. Т.е. делать просто универсальные приборы, которые имеют на борту интерфейсные выходы RS485, RS232 и аналоговый выход - это слишком сложная задача для отечественного производителя (который и без того неконкурентоспособен по цене, и, казалось бы, ну почему бы не постараться хоть что-то сделать хорошо? но нет...) , поэтому не нужно удивляться, что именно необходимый вам для вашей конкретной задачи способ считывания информации с вашего конкретного прибора ТВ-003 поддерживаться не будет.

2. Кривой интерфейс RS485. Очень долгое  время ответа прибора при опросе. Нет возможности задавать проверку четности или нечетности, параметры - 8N1, других нет, настраивается только скорость передачи данных и адрес. Мало того, дополняя пункт 1, следует также обратить внимание на то, что на приборах разных прошивок еще и скорости доступны разные (!), например на каких-то одних прошивках можно устанавливать скорость (параметр №13 меню прибора) от 1.2 до 9.6 кбит/с, а, например, на версии прошивки dd-107 есть всего два варианта: 9.6. и 19.2 кбит/с.

3. Свой собственный протокол. Данный прибор не поддерживает стандартные протоколы передачи данных. Вместо этого у них собственный протокол, который можно преобразовать в Modbus RTU только при помощи преобразователя стороннего производителя. Называется ДПИ-МТ-1, преобразователь крутой, настраивается через веб-интерфейс, даже имеет на борту wifi для этой самой настройки и... стоит в полтора раза дороже, чем ТВ-003/05Д.

3. Кривой OPC-сервер. Продолжая историю собственного протокола Тензо-М, следует вспомнить и их собственный OPC-сервер. Работает он ужасно, не имеет никаких настроек тегов и не отображает никаких значений (т.е. нет таблицы тегов и значений как в обычном пользовательском интерфейсе любых OPC-серверов). Вы даже не поймёте, что OPC-сервер подключился к устройству, потому что это никак не отображается. Всё, что вы увидите, - это количество клиентов OPC-сервера в данный момент времени (ну, т.е. самую ненужную информацию по сути). Устройства и теги не имеют иерархии, посмотрите инструкцию, что они пишут:

Данный OPC-сервер имеет плоскую структуру, т.е. теги расположены на одной,
главной ветви. Для того чтобы идентифицировать местоположение тега (items), номер
дозатора, которому принадлежит тег, и номер линии, на которой расположен дозатор,
предусмотрена специальная маркировка для всех тегов (items):
LX_DY_имя тега
где X - Номер линии; Y - номер (порядковый) дозатора.
Так, например имя тега принадлежащего 3 дозатору который расположен на 1
линии будет выглядеть как: L1_D1_имя тега.

(о, Господи!) Т.е. они не в состоянии были сделать даже элементарную древовидную структуру, вместо этого они сделали кучу тэгов, которым по именам надо различать, к какому устройству они относятся! Да, можно понять, что производитель делает тензодатчики, это его основное направление деятельности, но неужели так сложно нанять одно-единственного программиста, который сделает нормальный OPC-сервер?

Лично я не смог нормально пользоваться этим OPC-сервером, потому что после подключения к нему мой OPC-клиент на базе wtclient.dll, отлично работающий с любыми OPC-серверами (и Siemens, и InSat, и Овен) просто загнал загрузку CPU компьютера чуть ли не на максимум.

4. Разные меню прибора и способы перехода в него в зависимости от версии прошивки. 

Ну, т.е., по всей видимости, производитель изначально сделал, как ему показалось, не самое удобное меню, и решил его поменять. А потом опять поменять. А потом ОПЯТЬ! Спрашивается, ребята, вы в своем вообще уме? Т.е. на одном предприятии в одном цеху висят одни и те же приборы и настраиваются они все по-разному. У операторов мозг закипает каждый раз, как надо оттарировать ёмкости или выполнить еще какие-то операции, требующие перехода в меню, а также заменить один прибор другим.

Значит, по печатной инструкции от Тензо-М, которая есть у меня, для перехода в меню следует выполнить такие действия:

Вход в режим программирования
Для входа в режим программирования 
1) нажмите клавишу "Ф", при этом на индикаторе высветится "Func"
2) нажмите клавишу "0", при этом на индикаторе высветится приглашение к вводу пароля "oooooo"
3) последователь нажимая цифровые клавиши, введите шестизначный пароль...
4) после безошибочного ввода последнего (шестого) знака пароля терминал перейдет в редим программирования (при этом на индикаторе высвечивается "SEL")...

На половине моих проборов такое нажатие кнопок не давало нужного эффекта.

Теперь почитаем инструкцию, которая называется "Преобразователь весоизмерительный TВ-003/05Д. Версия программного обеспечения 10.13АХ. Руководство по эксплуатации и калибровке" (инструкция с сайта Тензо-М). Там мы узнаем, что все функции выполняются простым нажатием кнопки "Ф" и кнопки с цифрой, но при этом там не указаны такие сочетания как "Ф" + "0" (из предыдущей инструкции") и "Ф" + 2 (о чем речь пойдет ниже). В сервисное меню по этой инструкции надо заходить, нажимая "Ф" + "ВВОД". Такое сочетание кнопок ни на одном приборе не давало у меня эффекта. Наверно, потому что это для прошивки 10.13АX, ну да...

Идём дальше. Методом "научного тыка" я определил, как же мне настроить остальные приборы, для которых первый способ не сработал. Последовательность действий такая:

1. Жмём кнопку "СБР". Загорается номер прошивки (как при включении прибора): dd-107

2. Ждём, пока первый раз проморгает лампа "КОНТР" (промаргивает она два раза)

3. Нажимаем в этот момент кнопку "Ф"

4. Появляется приглашение ввести пароль "оооооо"

5. Вводим 535160. Появляется надпись "SEL"

6. Нажимаем кнопку "2". Итак, мы в меню.

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

Если же нажать "Ф" слишком поздно, то вместо "оооооо" появляется "Func" (как из печатной инструкции), вот только нажатие после этого любой кнопки (в том числе "0") приводит лишь к тому, что на экране просто отображается текущее значение тензодатчика, т.е. перехода в меню или запроса на ввод пароля не происходит.

 

5. Распиновка 25-контактного штекера. 

В упомянутой выше инструкции (той, которая для прошивки 10.13АХ) мы можем увидеть такую распиновку для интерфейсов RS485 и RS232:

2 -- RXD (rs232)

3 -- TXD (rs232)

5 -- GND (rs232)

7 -- Data+ (rs485)

8 -- Data- (rs485)

9 -- GND (rs485)

А потом оказывается, что это распиновка не DB25, а DB9. Вот как хочешь, так и догадайся! Может быть у них есть модификации с DB9 или типа того, но неужто так сложно написать в инструкции три символа: "D", "B", "9"?? 

Короче, подключать RS485 надо так:

13 -- Data-

25* -- Data+

9 -- GND

* на штекерах, которые установлены на моём предприятии (какие-то необычные штекеры под шлейфы), этот пин пронумерован как 14-ый, а не 25-ый, т.е. нумерация идет "змейкой" от конца первого ряда контактов вниз на второй ряд и потом в обратную сторону (14-ый оказывается под 13-ым), а не так, как это нумеруется стандартно на разъемах DB25 (где 14-ый контакт расположен под 1-ым).

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

 Правильная нумерация DB25 (на всякий случай):


ДПИ-МТ-1

Теперь насчёт преобразователей ДПИ-МТ-1. Делает томская компания "Фактор Кода", выглядит в общем и целом как заводское устройство, нареканий по работе нет. ПРЕДНАЗНАЧЕН ТОЛЬКО ДЛЯ ОДНОГО УСТРОЙСТВА ТЕНЗО-М. Т.е. если Тензо-М несколько - то и ДПИ-МТ-1 нужно тоже несколько. Как я уже сказал, стоит это устройство дороже, чем сам Тензо-М (больше $200).  

Что не понравилось - это то, что, во-первых, нельзя выбрать скорость 1.2 kbit/s для Тензо-М (хотя сам прибор работает на такой скорости - кроме прошивки dd-107, где почему-то оставили только две скорости: 9.6 и 19.2) и, что самое главное, нельзя установить проверку четности/нечетности, задать число стоп-битов и количество бит данных. Т.е. подключая прибор к существующей сети RS485, сразу необходимо переводить эту сеть на 8N1, что, конечно, может быть неудобным: нацепляешь в одну сеть таких приборов вместе с каким-нибудь овеновским ТРМ202 (у которого 8N2, число стоп-бит нельзя поменять) -- и "добрый вечер"...

Настраивается через web-интерфейс (IP: 192.168.4.1), подключается по wifi. Для протокола Тензо-М можно задавать скорость (от 2.4 kbps) и адрес, тоже самое и для протокола Modbus на выходе. Опрос данных производится по регистрам:

#400

0x0190

40401

FLOAT

Масса нетто

#406

0x0196

40407

FLOAT

Масса брутто

#206

0x00CE

40207

BCD

Масса нетто

#208

0x00D0

40209

BCD

Масса брутто

(!) Для типа данных FLOAT необходимо осуществлять перестановку байт старшим словом вперёд (Кстати! Именно такая последовательность установлена для протокола Modicon Modbus панелей оператора Siemens, так что можно эти приборчики цеплять напрямую к любой панели оператора Siemens, где есть RS485, включая Smart-панели)



В общем, вот так. Как мне кажется, чем покупать глючную чудо-поделку от Тензо-М, которая крайне неудобна для эксплуатации и которой требуется дорогущий преобразователь для диспетчеризации для перехода на нормальный протокол, лучше за те же деньги купить, например, вот это на четыре канала тензодатчиков и какой-нибудь дешевенький PLC и панель оператора к нему (я бы купил китайский S7-200 и Smart-панель к нему на Aliexpress, но есть и более дешевые решения), чтобы сделать всю настройку по-человечески и удобной для использования. 

Ну, и еще раз скажу, что к самим тензодатчикам Тензо-М претензий нет. Такое впечатление, что ребята просто попробовали делать то, что не умеют. Я не знаю, как там обстоят дела с последними моделями - возможно, они что-то в них исправили, улучшили, но в любом случае инструкций нормальных нет, OPC-сервера нормального нет, ценник рядом с китайцами - неадекватный. В компании "Фактор Кода", которая делает преобразователи в Modbus, аргументируют использование приборов Тензо-М с той точки зрения, что они со всех сторон сертифицированные. Возможно, что и так. Поскольку все мы знаем, насколько априори бутафорская, никчёмная и бессмысленная (для потребителя) в нашей стране любая сертификация, то наличие сертификата соответствия - это в 99% случаев просто попытка набить цену на некачественный продукт. Хотя, там, где государство требует все эти филькины грамоты, там без сертификатов не обойтись.


P.S. Кому нужна инструкция к прибору на прошивку DD-107 (или DD-10.7, как она обозначена на некоторых устройствах) - можно скачать тут.

суббота, 6 марта 2021 г.

Запретить Firefox использовать адресную строку для поиска

Сегодня вспомнилась одна совершенно ненужная функция браузера - использование адресной строки как строки поисковика. Т.е. достаточно совершить опечатку при наборе сайта, и сразу браузер начинает искать введённый текст через очередной яндекс. Чтобы этого не было, в Firefox делается так:

1. открыть страницу about:config

2. найти пункт keyword.enabled

3. установить его в состояние false

 

Как отключить открытие PDF-файлов в Firefox вместо их нормального скачивания - см. тут.