Температура в 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.

13 Comments

  1. pophmail

    Компонента будет работать и в среде 1С 8.хх, но не полностью, всё кроме метода «ПоискУстройств()». Если возникнет необходимость в этом методе под «8» могу немного доработать — например будет возвращать строку с ID устройств разделённых запятыми а не список значений.

    Компонента так же может быть использована для идентификации пользователей если использовать устройтва DS1990 (iButton) т.е. «таблетки» для домофона — система получиться очень простой и относительно недорогой, а при использовании самодельных адаптеров вобще копеечной (если есть возможность их изготовить). Подтврждение критически важных действий, вход в систему, система учета рабочего времени и т.д.

    Можно расширть функциональность компоненты, разнообразных устройств 1-Wire довольно много, например ключ DS2413 — можно из «1С» что либо включать/выключать, настольную лампу к примеру…

    Ссылка по теме: http://www.ab-log.ru/smart-house/1-wire-modules/shop

    — v120404 Метод ПоискУстройств() теперь работает и в «8» и в «7» возвращая строку с ID устройств.

    Reply
  2. AvtoBuhgalter

    (1) Конечно было бы интересно и для 8-ки всё испробовать.

    Reply
  3. pophmail

    Пробуйте…

    Reply
  4. pupkinSana

    Интересно конечно… Потом составлять отчеты по списку температур в разрезе плана счетов:)))) Думаю умный дом — один из шагов к виртуальной женщине — хозяйке этого дома. Самому мониторить дом глупо, для кого-то писать проги мониторинга еще глупее. Работать на работе, а дома нужно отдыхать: замерз — иди подкинь дровишек в печку. Перемерзла вода — иди отогревай. А вот так управлять датчиками и писать проги самостоятельно — велика вероятность на суммируюмую ошибку — запорешь один раз всю систему где не учел параметр (не дай Бог будут дети дома). На производстве (на работе) наверняка незаменимая вещь будет. Опыты может ставить какие.

    Reply
  5. flashorl

    спасибо за статью, утопал пробовать)

    Reply
  6. pophmail

    (4) pupkinSana, <к виртуальной женщине> говорите, Фрейда в детстве читали? :-))) Словосочетание «Умный дом» придумано маркетологами продвигающими соответствующую продукцию к которой ими причислены часть изделий фирмы Dallas/Maxim (распространённый слоган в сети). Термометры DS18x20, калиброванные и допущенные на территории РФ в качестве средств измерения и имеющие соответствующие сертификаты, очень широко применяются для различных систем мониторинга, при автоматизации производственных процессов и т.д., ввиду относительной «простоты» (организация шины) используются где только можно и даже в «быту». Я нигде не предлагал с помощью «1С» управлять каким либо оборудованием в реальном времени (хотя в принципе и это возможно) а вот мониторить какую либо систему и собирать данные вполне реально, в вкупе с простотой реализации решений в «1С:Предприятие», например мониторинг температуры в холодильных камерах для хранения товара, продукции исключительно для информационно-аналитических целей. А вот регулировка температуры в этих же камерах это уже другой класс задач — тут оптимальное решение система на базе микроконтроллера с теми же датчиками DS18x20…

    Reply
  7. It-developer

    Стиль дат 1с-ки — жесть :))

    Reply
  8. AlexO

    (6)

    Я нигде не предлагал с помощью «1С» управлять каким либо оборудованием в реальном времени

    Вы хотите, чтобы «умный дом» сошел с ума и бросился с обрыва в реку? 🙂

    Reply
  9. pophmail

    (7)(8) — Вроде не вечер пятницы, вы это о чём?

    Reply
  10. tango

    usb-порт в 1се кто-нибудь разбирал?

    Reply
  11. pophmail

    Ээээ, а что нужно, работать с HID устройствами напрямую из 1С без доп. компонент ;-)?

    Reply
  12. tango

    (11) да хоть с собственной виндовой — примерчик бы или доку. или ссылу где копать

    Reply
  13. pophmail

    Посмотрите ссылки ниже, возможно направит на путь правильный…:

    http://microsin.net/programming/PC/usb-hid-libraries.html

    http://microsin.ru/content/view/1084/

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *