Элементы "умного дома" на Beckhoff

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Heathen
Сообщения: 5
Зарегистрирован: 02 фев 2014, 22:32

Re: Элементы "умного дома" на Beckhoff

Сообщение Heathen » 02 фев 2014, 23:22

Ali писал(а):
Roman_K писал(а): Куда копать, подскажите, плиз :)

...Заходим в KS2000...
Устанавливаю сию прогу, а она ругается и просит пароль :( где взять не подскажете ???

Ali
Сообщения: 263
Зарегистрирован: 23 мар 2011, 16:14

Re: Элементы "умного дома" на Beckhoff

Сообщение Ali » 02 фев 2014, 23:42

Он просит не пароль, а серийный номер. За серийными номерами - google подаст... На первой же странице поиска.

cyb650
Сообщения: 47
Зарегистрирован: 08 янв 2013, 15:28
Откуда: СПб

Re: 11. Пометки на полях о программировании Beckhoff

Сообщение cyb650 » 03 фев 2014, 15:38

Ali писал(а):Некоторые мысли, которые могут быть полезны при программировании контроллера
1) Remanent и Persistent переменные
Ali, расскажите пожалуйста как у вас заработали Remanent и Persistent переменные.
У меня выдает ошибку при компиляции: "The current target does not support the 'PERSISTENT' flag".
В "TwinCAT System Manager" активен checkbox "Store Retain Data" и размер 64 байта - все по умолчанию.
Есть лишние модули Beckhoff. Пишите в личку.

Ali
Сообщения: 263
Зарегистрирован: 23 мар 2011, 16:14

Re: Элементы "умного дома" на Beckhoff

Сообщение Ali » 03 фев 2014, 16:06

Cyb650. Напишите какой у вас контроллер - и сразу расскажу :)

cyb650
Сообщения: 47
Зарегистрирован: 08 янв 2013, 15:28
Откуда: СПб

Re: Элементы "умного дома" на Beckhoff

Сообщение cyb650 » 03 фев 2014, 16:12

Ali писал(а):Cyb650. Напишите какой у вас контроллер - и сразу расскажу :)
У меня их 2 - BC9000 и BC9100 - оба не работают в этом смысле)
Кстати, в ваших примерах видел использование "VAR_GLOBAL" для определения глобальных переменных - у меня тоже выдает ошибку компиляции (предлагает использовать VAR, VAR_INPUT, VAR_OUTPUT или VAR_IN_OUT)...
Есть лишние модули Beckhoff. Пишите в личку.

Ali
Сообщения: 263
Зарегистрирован: 23 мар 2011, 16:14

Re: Элементы "умного дома" на Beckhoff

Сообщение Ali » 03 фев 2014, 16:19

Про серию BC9000 я вроде писал в своем посте, что там не надо применять в тектсе программы слово PERSISTENT. В контроллере BC9000 они явно выделяются в памяти. И если переменная попала в эту область, то хош-не-хош а она будет PERSISTENT... Вечерком почитаю, что я там в прошлый раз написал и попробую расписать еще раз более подробно.

Ali
Сообщения: 263
Зарегистрирован: 23 мар 2011, 16:14

Re: Элементы "умного дома" на Beckhoff

Сообщение Ali » 03 фев 2014, 16:20

По поводу ругани на VAR_GLOBAL. Если не сложно, сделайте какой нибудь тестовою прогу где это ругается, я у себя скомпилирую и отвечу. Ок?

cyb650
Сообщения: 47
Зарегистрирован: 08 янв 2013, 15:28
Откуда: СПб

Re: Элементы "умного дома" на Beckhoff

Сообщение cyb650 » 03 фев 2014, 16:37

Ali писал(а):По поводу ругани на VAR_GLOBAL. Если не сложно, сделайте какой нибудь тестовою прогу где это ругается, я у себя скомпилирую и отвечу. Ок?
Вот, например:

Код: Выделить всё

PROGRAM MAIN
VAR_GLOBAL
	OUT_H2_R1_L       AT %QX0.0:   BOOL;
END_VAR

Код: Выделить всё

OUT_H2_R1_L := FALSE;
Error 3780: MAIN(2): 'VAR', 'VAR_INPUT', 'VAR_OUTPUT' or 'VAR_IN_OUT' expected
Есть лишние модули Beckhoff. Пишите в личку.

Ali
Сообщения: 263
Зарегистрирован: 23 мар 2011, 16:14

Re: Элементы "умного дома" на Beckhoff

Сообщение Ali » 03 фев 2014, 16:47

А почему в разделе PROGRAM MAIN. Я описываю глобальные переменные в отдельном месте - в разделе глобальнызх переменных. В PLC Control на левом блоке внизу выбираю самую последнюю закладку. Это блок Resources. В нем раздел Global Variables. Там и объявляем переменные глобальные.
global.jpg
Global Variables
global.jpg (246.59 КБ) 12488 просмотров

cyb650
Сообщения: 47
Зарегистрирован: 08 янв 2013, 15:28
Откуда: СПб

Re: Элементы "умного дома" на Beckhoff

Сообщение cyb650 » 03 фев 2014, 17:08

Ali писал(а):А почему в разделе PROGRAM MAIN. Я описываю глобальные переменные в отдельном месте - в разделе глобальнызх переменных.
Так работает.
Ali писал(а):Про серию BC9000 я вроде писал в своем посте, что там не надо применять в тектсе программы слово PERSISTENT.
Да, на практике оказалось, что переменные вида "%MB.." сохраняются после перезагрузки и без флага.

Спасибо!
Есть лишние модули Beckhoff. Пишите в личку.

Ali
Сообщения: 263
Зарегистрирован: 23 мар 2011, 16:14

Re: Элементы "умного дома" на Beckhoff

Сообщение Ali » 03 фев 2014, 17:16

Это не практика, это так заложено в системе. Есть область переменных. В ней можно выделить сколько ПЕРВЫХ байт являются PERSISTENT. По умолчанию 64. Это настраивается через программу KS2000. Там есть специальный раздел для этого. Потом, в области PERSISTENT можно указать, сколько ПЕРВЫХ байт являются REMANENT. Это делается также через KS2000 но более сложным способом. Таким образом PERSISTENT и REMANENT переменные в серии BC9000 могут быть ТОЛЬКО в первых байтах памяти. Это надо помнить при написании программы. Обычно все начинают писать и начинают размещать по порядку данные. А надо их сразу выносить за зону 64 байт. А потом потихоньку переносить те переменные которые достойны быть PERSISTENT или REMANENT

MerryKaze
Сообщения: 42
Зарегистрирован: 18 окт 2012, 20:03

Re: Элементы "умного дома" на Beckhoff

Сообщение MerryKaze » 05 фев 2014, 19:18

Похоже моя очередная идея - сделать из нашего контроллера считыватель Wiegand протокола, используемый в СКУД - практически накрылась медным тазом.

В чем она состояла: сигнал виганд-протокола представляет из себя последовательность импульсов по 2 проводам, которые нужно определять, а затем декодировать. Если в 1 проводе логическая единица, т.е. 5В относительно земли, а во втором логический ноль, то передалась часть кода, содержащая единицу "1" в двоичной системе счисления, если наоборот - "0". Считывая последовательность сигналов, собираем всю "посылку", например что-то вроде "011110011011011010001010110". В общем в теории все было просто. На практике, поначалу, тоже. Была закуплена ардуина, для которой был уже готовый написанный код, который я разобрал и понял суть алгоритма. После этого нужно было перенести это на бекхофф. Считыватель SmartTec ST-PR170MK, который я хотел использовать для того, чтобы по RFID метке открывать замок дома, выдает сигнал 5В, поэтому на ибэе был найден модуль KL1124 - 4х канальный модуль дискретных сигналов 5В. К нему KL9505, чтобы обеспечить эти самые 5В....

Поначалу все шло хорошо, немного помучавшись с общей "землей" (считывателю требуется 6-14В для работы, на 5 не работает) все это хозяйство было подключено. В момент нажатия кнопок на считывателе и при поднесении RFID метке, светодиод на модуле 1124 весело моргал, сообщая о том, что сигнал до него доходит. Однако разочарования ждало меня чуть позже. Оказывается, контроллер работает в своем цикле и считывает показания с модуля только в тот момент, когда доходит до места в программе, где мы это показание берем. Если же данные "прилетают" в контроллер в момент, когда он обсчитывает что-то другое, то они просто "теряются". Причем, посылка виганд-протокола состоит из 34 бит и соответственно 34 передних и задних фронтов. А контроллер ловит ~15-20% от количества посылок! Не говоря уже об отдельных битах этих посылок.

Короче говоря, не хватает скорости опроса. На ардуино используется подсчет фронтов, а инициализируются прерывания. Оно работает так: когда приходит очередной бит, основной цикл останавливается, запускается прерывание и выполняется его обработка. Времени около 20-250 мкс, которое требуется по стандарту между битами посылки, ардуине хватает на обработку этого прерывания и получения всех данных.

Гуглеж в интернетах с целью найти способ использовать прерывания на контроллере не увенчался успехом. Вот теперь сижу и думаю, что же делать, неужели все так печально закончится и придется покупать обычный виганд-контроллер за многоденег с релейными выходами, или все же что-то можно сделать?

Спасибо всем, кто осилил многобукав и мой стиль письма.

Ali
Сообщения: 263
Зарегистрирован: 23 мар 2011, 16:14

Re: Элементы "умного дома" на Beckhoff

Сообщение Ali » 05 фев 2014, 20:02

MerryKaze, спасибо за опыт. Он всегда полезен, тем более чужой ;) но не унываем!!! Сколько, еще раз, между битами данных по стандарту времени проходит? Чтобы можно было прикинуть что можно сделать.

MerryKaze
Сообщения: 42
Зарегистрирован: 18 окт 2012, 20:03

Re: Элементы "умного дома" на Beckhoff

Сообщение MerryKaze » 06 фев 2014, 06:22

Али,
Википедия говорит, что в зависимости от устройства, интервал составляет от 20 мкс до 250 мкс.
В характеристиках входных модулей бекхофа есть параметр "входной фильтр", который у KL1124 составляет 0,2 мс = 200 мкс. Насколько я понимаю, он нужен для фильтрации различных помех в линии, таких как дребезг контактов кнопок. Вот, видимо, он и фильтрует практически все сигнальные импульсы.

cyb650
Сообщения: 47
Зарегистрирован: 08 янв 2013, 15:28
Откуда: СПб

Re: Элементы "умного дома" на Beckhoff

Сообщение cyb650 » 06 фев 2014, 12:32

MerryKaze, как вариант, оставьте ардуину в качестве интерфейсного модуля, а бекхофу выдавайте декодированный результат по модбасу.
Также можно попробовать покопать в сторону бекхофовского RS232 модуля.
Есть лишние модули Beckhoff. Пишите в личку.

Ali
Сообщения: 263
Зарегистрирован: 23 мар 2011, 16:14

Re: Элементы "умного дома" на Beckhoff

Сообщение Ali » 06 фев 2014, 14:07

Да, FILTER TIME в маркировке модуля - это фильтрация помех на входе. То есть если время сигнала меньше чем время вильтра, то модуль данный сигнал не пропускает. 0,2 ms - это минимальный фильтр, меньше нет. Но на сам деле наверное проблема не только в этом... Контроллер не работате по прерыванию, то есть у него совершенно четкое время исполнения. И я прикинул, что даже если его зажать по максимуму (есть параметр в KS2000) то вероятность пропустить сигнал очень высокая... Так что действительно печалька... Я в конце февраля в Китай по делам поеду. Вот думаю знакомым там забросить удочку поискать дешевый wiegand controller или преобразователь, чтобы его можно было с Beckhoff поженить... Надо посмотреть на таобао, куда китайская мысль смотрит в этом плане...

Fizik
Сообщения: 7
Зарегистрирован: 25 ноя 2013, 15:50

Re: Элементы "умного дома" на Beckhoff

Сообщение Fizik » 10 фев 2014, 11:50

Подскажите есть ли эмулятор какой-нибудь оборудования? Еще не пришло оборудование, а уже хочу как-то поиграться с кодом, чтобы когда собрал, уже можно было написать быстро плюсовый код для обращения к оборудованию

nau
Сообщения: 4
Зарегистрирован: 05 фев 2014, 23:16

Re: Элементы "умного дома" на Beckhoff

Сообщение nau » 10 фев 2014, 20:05

Fizik писал(а):Подскажите есть ли эмулятор какой-нибудь оборудования? Еще не пришло оборудование, а уже хочу как-то поиграться с кодом, чтобы когда собрал, уже можно было написать быстро плюсовый код для обращения к оборудованию
Да, можно. Рисуете в разделе Визуализация, затем Онлайн-режим эмуляции-подключение. На рутрекере есть короткий видео курс-введение Кодесис (правда про Овен, но разницы большой нет, Beckhoff/Wago или Овен).

nau
Сообщения: 4
Зарегистрирован: 05 фев 2014, 23:16

Re: Элементы "умного дома" на Beckhoff

Сообщение nau » 17 фев 2014, 20:18

Нашел неплохой вариант реле на дин рейку для сабжевого дела:
75$ за 10А*16
118$ за 16А*16
отдельно реле по 3-5$
http://www.ebay.com/itm/DIN-Rail-Mount- ... 5660dbf7fa
http://www.ebay.com/itm/DIN-Rail-Mount- ... 5660dbf7d1

что скажет общественность?

MerryKaze
Сообщения: 42
Зарегистрирован: 18 окт 2012, 20:03

Re: Элементы "умного дома" на Beckhoff

Сообщение MerryKaze » 18 фев 2014, 07:01

Наверное, неплохой вариант, 1 реле 16А получается 260 р.
Себе брал реле Finder - довольно известная компания. У меня получилось меньше 250 за 16А реле с колодкой на дин-рейку. Реле с индикатором и механическим переключателем. Кроме того, ширина модуля в сборе (реле+колодка) составляет всего 16мм, что немаловажно, на мой взгляд.

Ответить