Температура в 1С


Внешняя компонента (для 7.7 и 8.хх) позволяющая работать с сетью microLAN и устройствами с интерфейсом 1-Wire а именно получать значения температуры от датчиков DS18B20 и DS18S20 непосредственно в 1С.

- 12.04.04

Новая версия компоненты. Теперь работает в среде 8.хх (и в 7.7), но в отличие от предидущей версии метод ПоискУстройств() возвращает не список значений а строку с разделителями в стиле 7.7, поиск ограничен десятью устройствами 1-Wire, что более чем достаточно т.к. обычно требуется обнаруживать только новые устройства (по одному) и сохранять их ID например в справочнике...

Компонента теперь называется OneWire1C78s.dll . В архиве OneWire1C78s.ZIP сама компонента и два внешних отчета для "7.7" и "8.2".

-12.03.31

Компонента OneWire1C.dll довольно специфична. Требовалось автоматически получать температуру на складе в момент отгрузки товара без участия оператора. Может быть использована для мониторинга температуры различных объектов на производстве и дома…

 

Для работы компоненты в системе должны быть установлены драйвера 1-Wire (в архиве для 32 разрядных версий Windows от Maxim/DALLAS) к компьютеру подключен какой либо адаптер шины а драйвер сконфигурирован для использования этого адаптера. Большинство адаптеров подключаются к COM порту или USB. Предложений готовых адаптеров и термометров с DS18b20 достаточно, поищите в сети («умный дом»). Стоимость довольно умеренная, кроме того адаптер можно изготовить самостоятельно – два возможных варианта принципиальной схемы в архиве. Если использовать адаптер «фирменный» то длина сети 1-Wire может быть до300 метрова количество датчиков более сотни. У меня прекрасно работает с тремя датчиками и адаптером собранным по схеме на КТ315Б транзисторах при длине кабеля около15 метров. Компьютер с Windows XP SP3, 1С:Предприятие 7.7 (с 8.ХХ работать не будет…)

 

В текущей версии компоненты реализовано всего четыре метода:

 

1. Инициализация()

                - передаваемых параметров нет

                - возвращаемые значения: ‘0’ – ок, ‘-1’,’-2’,’-3’– проблемы с адаптером или драйверами

 

2. ПоискУстройств()

                - передаваемых параметров нет

                - возвращает список значений, содержащий уникальные серийные номера всех устройств подключенных, на момент исполнения метода, к сети microLAN через адаптер интерфейса 1-Wire.

 

3. ПолучитьТемпературу(id)

                - id символьное представление (строка из 16 символов) уникального серийного номера термометра в HEX формате – одно из значений возвращаемых методом ПоискУстройств() или известное заранее.

                - возвращает строку формата '-xxx.xx' с температурой или код ошибки:

                               - '1000.00' – недействительный переданный серийный номер

                               - '1001.00' – попытка получить температуру не с термометра

                               - '1002.00' – нет ответа от термометра или неверный CRC

                               - '1003.00' – возможно не было инициализации

 

4. Опрограмме()

                - передаваемых параметров нет

                - возвращает строку с версией и выводит диалоговое окно с этой же информацией.

 

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

 

Перед использованием компоненту необходимо зарегистрировать – regsvr32 OneWire1C.dll

 

Как использовать:

                Установить драйвера 1-Wire, как показано на скриншоте выбрать тип адаптера подключено к компьютеру, собственно к адаптеру подключить какое либо устройство с интерфейсом 1-Wire – термометр DS18B20 или 'таблетку' домофона, поместить OneWire1C.dll в каталог bin или базы данных,  запустить 1С:Предприятие с любой конфигурацией, запустить обработку 1C-1WIRE.ert.

-