Перейти к содержанию
    

Посоветуйте новичку для старта

54 минуты назад, haker_fox сказал:

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

Разумеется за советом. Если Вам комфортнее, скажу так:

Если второе - то можно ли с тем же успехом воткнуть по диммеру Z-Wave на каждую лампочку и переконфигурировать группы хоть в зависимости от времени суток / сцены?

Изменено пользователем maxz.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, maxz.php said:

Разумеется за советом. Если Вам комфортнее, скажу так:

Если второе - то можно ли с тем же успехом воткнуть по диммеру Z-Wave на каждую лампочку и переконфигурировать группы хоть в зависимости от времени суток / сцены?

Конечно можно. 

4 hours ago, maxz.php said:

А как у Вас выглядит переконфирурирование в группы? Залез в щиток и перебрал проводку на нужные каналы управления PLC? Или у вас каждая лампочка на своём канале?.

Каждая лампочка на своем канале? Нет, не думаю - для PLC это излишество, так как каждый канал стоит денег и места. Поэтому они будут приходить в шкаф и подключаться к одному каналу. А когда придет время поуправлять ими отдельно, то придется выключить электричество во всем доме, втыкнуть новый модуль, расключить кабеля и запрограммировать. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/12/2020 at 9:53 AM, syoma said:

Было бы интересно посмотреть на реальный алгоритм управления температуры FuzzyLogic, сделанный в Matlabe. Раз это так элементарно, не поделитесь? Глядишь, я себе такой поставлю, а то у меня тоже примитивная релейщина сейчас стоит. 

FuzzyLogic достойно отдельной темы, здесь не вижу смысла обсуждать. 

А тут просто покажу нарезку иерархии при разработке алгоритма управления лампочкой с одной нефиксируемой кнопки для PLC
и с учетом безконфликтного управления с HMI:

Light_control_by_one_button.PNG

Здесь на верхнем уровне структура для тестирования. 

Я просто представляю во что выльется похожая технология при использовании птичьего языка сценариев и как придется бегать чтобы просто этот сценарий отладить.

Ну да, можно вместо копеечной нефиксируеморй кнопки поставить недешевый такой модуль Z-wave и получить не то что хотел, а то что навязали разработчики модуля.
Потом еще не забывать там следить за аккумуляторами, и менять эти модули когда в них  по разу в год будут залипать или обгорать реле. 
Но я не спорю что это тоже может доставлять удовольствие. 

А мне доставляет удовольствие делать безупречно надежную систему. 
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 hours ago, syoma said:

Нет, не думаю - для PLC это излишество

Поскольку "умный дом", это штука индивидуальное, то PLC могли достаться и на халяву) А для себя любимого лишних каналов не жаль) Но это уже дело каждого)

10 minutes ago, AlexandrY said:

А мне доставляет удовольствие делать безупречно надежную систему.

@AlexandrY, не могу понять, а как это залить в ПЛК? А... матлаб умеет это конвертировать не только в Си/Си++, но и в другие языки вроде бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, haker_fox said:

, не могу понять, а как это залить в ПЛК? А... матлаб умеет это конвертировать не только в Си/Си++, но и в другие языки вроде бы.

В разных IDE PLC по разному, но в e!COCKPIT от Wago делается одной кнопкой - export. 
Экспортируется вот такой файл 

Spoiler

<?xml version="1.0" encoding="ISO-8859-1"?>
<project><!--(*
 *
 * File: Light_control.xml
 *
 * IEC 61131-3 Structured Text (ST) code generated for subsystem "Light_control/Light_control"
 *
 * Model name                      : Light_control
 * Model version                   : 1.104
 * Model creator                   : Developer
 * Model last modified by          : Developer
 * Model last modified on          : Mon Jun 15 10:52:22 2020
 * Model sample time               : 0.01s
 * Subsystem name                  : Light_control/Light_control
 * Subsystem sample time           : 0.01s
 * Simulink PLC Coder version      : 3.2 (R2020a) 18-Nov-2019
 * ST code generated on            : Mon Jun 15 10:53:06 2020
 *
 * Target IDE selection            : 3S CoDeSys 3.5
 * Test Bench included             : No
 *
 *)
-->
   <fileHeader companyName="The Mathworks, Inc." companyURL="www.mathworks.com" contentDescription="" creationDateTime="2020-06-15T10:53:06" productName="Simulink PLC Coder" productRelease="(R2020a)" productVersion="3.2"/>
   <contentHeader name="Light_control">
      <coordinateInfo>
         <fbd>
            <scaling x="0" y="0"/>
         </fbd>
         <ld>
            <scaling x="0" y="0"/>
         </ld>
         <sfc>
            <scaling x="0" y="0"/>
         </sfc>
      </coordinateInfo>
   </contentHeader>
   <types>
      <dataTypes/>
      <pous>
         <pou name="Light_control0" pouType="functionBlock">
            <interface>
               <inputVars>
                  <variable name="ssMethodType">
                     <type>
                        <SINT/>
                     </type>
                  </variable>
                  <variable name="Btn_1">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
                  <variable name="Btn_2">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
                  <variable name="Btn_mode">
                     <type>
                        <DINT/>
                     </type>
                  </variable>
                  <variable name="HMI_Btn_On">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
                  <variable name="HMI_Btn_Off">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
               </inputVars>
               <outputVars>
                  <variable name="PWR">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
               </outputVars>
               <localVars>
                  <variable name="DelayInput1_DSTATE">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
                  <variable name="DelayInput1_DSTATE_p">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
                  <variable name="DelayInput1_DSTATE_c">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
                  <variable name="DelayInput1_DSTATE_pq">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
                  <variable name="is_active_c3_Light_control0">
                     <type>
                        <USINT/>
                     </type>
                  </variable>
                  <variable name="is_Button">
                     <type>
                        <USINT/>
                     </type>
                  </variable>
                  <variable name="was_Button">
                     <type>
                        <USINT/>
                     </type>
                  </variable>
                  <variable name="is_Mode01">
                     <type>
                        <USINT/>
                     </type>
                  </variable>
                  <variable name="is_Remote">
                     <type>
                        <USINT/>
                     </type>
                  </variable>
                  <variable name="is_Local">
                     <type>
                        <USINT/>
                     </type>
                  </variable>
                  <variable name="rtb_FixPtRelationalOperator">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
                  <variable name="b_rtb_FixPtRelationalOperat">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
                  <variable name="c_rtb_FixPtRelationalOperat">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
                  <variable name="d_rtb_FixPtRelationalOperat">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
                  <variable name="temp1">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
                  <variable name="temp2">
                     <type>
                        <BOOL/>
                     </type>
                  </variable>
               </localVars>
            </interface>
            <body>
               <ST>
                  <xhtml xmlns="http://www.w3.org/1999/xhtml">
<![CDATA[
CASE ssMethodType OF
    SS_INITIALIZE: 
        DelayInput1_DSTATE := FALSE;
        DelayInput1_DSTATE_p := FALSE;
        DelayInput1_DSTATE_c := FALSE;
        DelayInput1_DSTATE_pq := FALSE;
        is_Button := c_Light_contro_IN_NO_ACTIVE;
        was_Button := c_Light_contro_IN_NO_ACTIVE;
        is_Mode01 := c_Light_contro_IN_NO_ACTIVE;
        is_Local := c_Light_contro_IN_NO_ACTIVE;
        is_Remote := c_Light_contro_IN_NO_ACTIVE;
        is_active_c3_Light_control0 := 0;
    SS_STEP: 
        rtb_FixPtRelationalOperator := BOOL_TO_DINT(HMI_Btn_Off) > BOOL_TO_DINT(DelayInput1_DSTATE);
        b_rtb_FixPtRelationalOperat := BOOL_TO_DINT(HMI_Btn_On) > BOOL_TO_DINT(DelayInput1_DSTATE_p);
        c_rtb_FixPtRelationalOperat := BOOL_TO_DINT(Btn_1) > BOOL_TO_DINT(DelayInput1_DSTATE_c);
        d_rtb_FixPtRelationalOperat := BOOL_TO_DINT(Btn_2) > BOOL_TO_DINT(DelayInput1_DSTATE_pq);

        IF is_active_c3_Light_control0 = 0 THEN 
            is_active_c3_Light_control0 := 1;

            CASE was_Button OF
                Light_control0_IN_Begin: 
                    is_Button := Light_control0_IN_Begin;
                    was_Button := Light_control0_IN_Begin;
                    PWR := FALSE;
                Light_control0_IN_Mode01: 
                    is_Button := Light_control0_IN_Mode01;
                    was_Button := Light_control0_IN_Mode01;
                    is_Mode01 := Light_control0_IN_Begin;
                Light_control0_IN_Mode1: 
                    is_Button := Light_control0_IN_Mode1;
                    was_Button := Light_control0_IN_Mode1;
                    is_Remote := Light_control0_IN_OFF;
                    PWR := FALSE;
                    is_Local := Light_control0_IN_Start;
                ELSE
                    is_Button := Light_control0_IN_Begin;
                    was_Button := Light_control0_IN_Begin;
                    PWR := FALSE;
            END_CASE;

        ELSE 
            temp1 := FALSE;
            temp2 := FALSE;

            CASE is_Button OF
                Light_control0_IN_Begin: 

                    CASE Btn_mode OF
                        1: 
                            is_Button := Light_control0_IN_Mode1;
                            was_Button := Light_control0_IN_Mode1;
                            is_Remote := Light_control0_IN_OFF;
                            PWR := FALSE;
                            is_Local := Light_control0_IN_Start;
                        0: 
                            is_Button := Light_control0_IN_Mode01;
                            was_Button := Light_control0_IN_Mode01;
                            is_Mode01 := Light_control0_IN_Begin;
                    END_CASE;

                Light_control0_IN_Mode01: 

                    IF Btn_mode <> 0 THEN 
                        is_Mode01 := c_Light_contro_IN_NO_ACTIVE;
                        is_Button := Light_control0_IN_Begin;
                        was_Button := Light_control0_IN_Begin;
                        PWR := FALSE;
                    ELSE 

                        CASE is_Mode01 OF
                            Light_control0_IN_Begin: 

                                IF c_rtb_FixPtRelationalOperat THEN 
                                    temp1 := TRUE;
                                ELSIF d_rtb_FixPtRelationalOperat THEN 
                                    temp2 := TRUE;
                                ELSIF b_rtb_FixPtRelationalOperat THEN 
                                    temp1 := TRUE;
                                ELSIF rtb_FixPtRelationalOperator THEN 
                                    temp2 := TRUE;
                                END_IF;

                            c_Light_control0_IN_Pressed: 

                                IF ( NOT c_rtb_FixPtRelationalOperat) OR ( NOT b_rtb_FixPtRelationalOperat) THEN 
                                    is_Mode01 := Light_control0_IN_Begin;
                                END_IF;

                            ELSE
                                (* case IN_Pressed_Btn2: *)

                                IF ( NOT d_rtb_FixPtRelationalOperat) OR ( NOT rtb_FixPtRelationalOperator) THEN 
                                    is_Mode01 := Light_control0_IN_Begin;
                                END_IF;

                        END_CASE;

                    END_IF;

                ELSE
                    (* case IN_Mode1: *)

                    IF Btn_mode <> 1 THEN 
                        is_Local := c_Light_contro_IN_NO_ACTIVE;
                        is_Remote := c_Light_contro_IN_NO_ACTIVE;
                        is_Button := Light_control0_IN_Begin;
                        was_Button := Light_control0_IN_Begin;
                        PWR := FALSE;
                    ELSE 

                        CASE is_Remote OF
                            Light_control0_IN_OFF: 

                                IF b_rtb_FixPtRelationalOperat THEN 
                                    is_Remote := Light_control0_IN_ON;
                                    PWR := TRUE;
                                END_IF;

                            ELSE
                                (* case IN_ON: *)

                                IF rtb_FixPtRelationalOperator THEN 
                                    is_Remote := Light_control0_IN_OFF;
                                    PWR := FALSE;
                                END_IF;

                        END_CASE;


                        CASE is_Local OF
                            Light_control0_IN_Start: 

                                IF c_rtb_FixPtRelationalOperat THEN 

                                    IF  NOT PWR THEN 
                                        is_Local := Light_control0_IN_Sw_ON;
                                        PWR := TRUE;
                                    ELSE 
                                        is_Local := Light_control0_IN_Sw_OFF;
                                        PWR := FALSE;
                                    END_IF;

                                END_IF;

                            Light_control0_IN_Sw_OFF: 

                                IF  NOT c_rtb_FixPtRelationalOperat THEN 
                                    is_Local := Light_control0_IN_Start;
                                END_IF;

                            ELSE
                                (* case IN_Sw_ON: *)

                                IF  NOT c_rtb_FixPtRelationalOperat THEN 
                                    is_Local := Light_control0_IN_Start;
                                END_IF;

                        END_CASE;

                    END_IF;

            END_CASE;


            IF temp2 THEN 
                is_Mode01 := d_Light_control0_IN_Pressed;
                PWR := FALSE;
            END_IF;


            IF temp1 THEN 
                is_Mode01 := c_Light_control0_IN_Pressed;
                PWR := TRUE;
            END_IF;

        END_IF;

        DelayInput1_DSTATE := HMI_Btn_Off;
        DelayInput1_DSTATE_p := HMI_Btn_On;
        DelayInput1_DSTATE_c := Btn_1;
        DelayInput1_DSTATE_pq := Btn_2;
END_CASE;

]]>
</xhtml>
               </ST>
            </body>
         </pou>
      </pous>
   </types>
   <instances>
      <configurations/>
   </instances>
   <addData>
      <data handleUnknown="implementation" name="http://www.3s-software.com/plcopenxml/globalvars">
         <globalVars constant="true" name="GVL_CONSTS">
            <variable name="c_Light_contro_IN_NO_ACTIVE">
               <type>
                  <USINT/>
               </type>
               <initialValue>
                  <simpleValue value="0"/>
               </initialValue>
            </variable>
            <variable name="Light_control0_IN_Begin">
               <type>
                  <USINT/>
               </type>
               <initialValue>
                  <simpleValue value="1"/>
               </initialValue>
            </variable>
            <variable name="Light_control0_IN_Mode01">
               <type>
                  <USINT/>
               </type>
               <initialValue>
                  <simpleValue value="2"/>
               </initialValue>
            </variable>
            <variable name="Light_control0_IN_Mode1">
               <type>
                  <USINT/>
               </type>
               <initialValue>
                  <simpleValue value="3"/>
               </initialValue>
            </variable>
            <variable name="c_Light_control0_IN_Pressed">
               <type>
                  <USINT/>
               </type>
               <initialValue>
                  <simpleValue value="2"/>
               </initialValue>
            </variable>
            <variable name="d_Light_control0_IN_Pressed">
               <type>
                  <USINT/>
               </type>
               <initialValue>
                  <simpleValue value="3"/>
               </initialValue>
            </variable>
            <variable name="Light_control0_IN_Start">
               <type>
                  <USINT/>
               </type>
               <initialValue>
                  <simpleValue value="1"/>
               </initialValue>
            </variable>
            <variable name="Light_control0_IN_Sw_OFF">
               <type>
                  <USINT/>
               </type>
               <initialValue>
                  <simpleValue value="2"/>
               </initialValue>
            </variable>
            <variable name="Light_control0_IN_Sw_ON">
               <type>
                  <USINT/>
               </type>
               <initialValue>
                  <simpleValue value="3"/>
               </initialValue>
            </variable>
            <variable name="Light_control0_IN_OFF">
               <type>
                  <USINT/>
               </type>
               <initialValue>
                  <simpleValue value="1"/>
               </initialValue>
            </variable>
            <variable name="Light_control0_IN_ON">
               <type>
                  <USINT/>
               </type>
               <initialValue>
                  <simpleValue value="2"/>
               </initialValue>
            </variable>
            <variable name="SS_INITIALIZE">
               <type>
                  <SINT/>
               </type>
               <initialValue>
                  <simpleValue value="0"/>
               </initialValue>
            </variable>
            <variable name="SS_STEP">
               <type>
                  <SINT/>
               </type>
               <initialValue>
                  <simpleValue value="1"/>
               </initialValue>
            </variable>
         </globalVars>
      </data>
      <data handleUnknown="implementation" name="http://www.3s-software.com/plcopenxml/globalvars">
         <globalVars name="GVL_VARS"/>
      </data>
   </addData>
   <addData>
      <data handleUnknown="discard" name="http://www.3s-software.com/plcopenxml/projectstructure">
         <ProjectStructure>
            <Object Name="GVL_CONSTS"/>
            <Object Name="GVL_VARS"/>
            <Object Name="Light_control0"/>
         </ProjectStructure>
      </data>
   </addData>
</project>

 

Он генерится из MATLAB тоже нажатием одной кнопки. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, AlexandrY said:

А тут просто покажу нарезку иерархии при разработке алгоритма управления лампочкой с одной нефиксируемой кнопки для PLC
и с учетом безконфликтного управления с HMI:

Я просто представляю во что выльется похожая технология при использовании птичьего языка сценариев и как придется бегать чтобы просто этот сценарий отладить.

Извините, но чего-то я не пойму смысл данной логики. У меня за все время работы с моим УД никогда не возникало таких проблем, чтобы их вот таким образом решать, хотя у меня одной и той же лампочкой можно управлять и с локального планшета и с удаленного, и с телефона,  и с Google Home, и с календаря по расписанию. И никаких конфликтов - то есть с "птичьими" языками она выливается в... ноль.

Очень похоже на костыли, которые вы сами своим ПЛК себе и создали. Объясните, плиз.

1 hour ago, AlexandrY said:

и менять эти модули когда в них  по разу в год будут залипать или обгорать реле. 

Опять вы без причин упрекаете в надежности то, что никогда не использовали. Зачем? Эти модули CE сертифицированы, стоят в своих подрозетниках, греются, запитанные от сети и ничего им не делается. Я из своих 30 штук пока еще ни один не менял за 5 лет, а у меня тоже LED и прочая не очень хорошая нагрузка. Причем пара из них у меня стоит на улице и явно работает не в диапазоне своих рабочих температур - ничего, тоже пока живые.

А в ПЛКшных I/O модулях стоят те же самые реле, которые точно также от плохой нагрузки будут залипать и обгорать и которые тоже придется менять по раз в год. Так что маш на маш.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

36 minutes ago, syoma said:

И никаких конфликтов - то есть с "птичьими" языками она выливается в... ноль.

Очень похоже на костыли, которые вы сами своим ПЛК себе и создали. Объясните, плиз.

Ну так покажите все скрипты, конфиги, файлы, которые вам пришлось править и создавать, а также тесты.  
И даже после этого я не стал бы утверждать что ваши кнопки работают так как надо. Вы просто не докажете!
А моя модель самодоказывающаяся, кроме нее ничего знать не надо.  

Реле не в PLC, а в ящике стоят отдельно на почетном месте. Сбой какого либо мгновенно идентифицируется и реле мгновенно заменяется.
Естественно реле сбоят любые и где угодно. Разница лишь в том как легче с этим справляться. 
Скажем повторно включив реле на короткозамнуту нагрузку или конденсатор (о котором не знаете) сразу получаете залипание, и это обычная ситуация.    

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

28 minutes ago, AlexandrY said:

Ну так покажите все скрипты, конфиги, файлы, которые вам пришлось править и создавать, а также тесты.  
И даже после этого я не стал бы утверждать что ваши кнопки работают так как надо. Вы просто не докажете!
А моя модель самодоказывающаяся, кроме нее ничего знать не надо.

Подождите. Вы для начала озвучьте проблему, которую вы хотите решить. А то я даже не знаю, какую часть конфигурации вам показывать. Когда кнопки должны работать "как надо", а когда это считается дефектом? Так сказать требования верхнего уровня. Ваша тестовая модель их не раскрывает.

28 minutes ago, AlexandrY said:

Сбой какого либо мгновенно идентифицируется и реле мгновенно заменяется.

Как идентифицируется? Кто заменяет реле?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, syoma said:

Подождите. Вы для начала озвучьте проблему, которую вы хотите решить. А то я даже не знаю, какую часть конфигурации вам показывать. Когда кнопки должны работать "как надо", а когда это считается дефектом? Так сказать требования верхнего уровня. Ваша тестовая модель их не раскрывает.

Как идентифицируется? Кто заменяет реле?

Не, пока дискутируем на общесистемную тему, а то ударимся в детали и за деревьями не увидим леса. 
Мои кнопки все равно TC-у не подойдут, и вообще мы же делаем сенсорный дисплей в подразетник в соседней теме. 
А моя просьба скорее риторическая, я же видел как это делается в https://www.openhab.org/ и в той же zipato.

Мысль в том что центальный тулс с мощной поддержкой языка диаграмм состояний и центральный ящик с PLCs в которых заключено все - это проще и дешевле в поддержке и разработке чем распределенная гетерогенная сеть с ограниченными физическми распределенными в пространстве нодами и скриптовый движок к ней на базе GPOS (General Purpose Operating System)   

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, AlexandrY said:

Мысль в том что центальный тулс с мощной поддержкой языка диаграмм состояний и центральный ящик с PLCs в которых заключено все - это проще и дешевле в поддержке и разработке чем распределенная гетерогенная сеть с ограниченными физическми распределенными в пространстве нодами и скриптовый движок к ней на базе GPOS (General Purpose Operating System) 

Сложно сформулированный вывод с ярко выраженной профессиональной деформацией :-)

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

))))

 

4 часа назад, AlexandrY сказал:

Не, пока дискутируем на общесистемную тему, а то ударимся в детали и за деревьями не увидим леса.

Это верно, лучше не ударяться от греха в детали лишний раз))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, AlexandrY сказал:

Мысль в том что центальный тулс с мощной поддержкой языка диаграмм состояний и центральный ящик с PLCs в которых заключено все - это проще и дешевле в поддержке и разработке чем распределенная гетерогенная сеть с ограниченными физическми распределенными в пространстве нодами и скриптовый движок к ней на базе GPOS (General Purpose Operating System)   

На правах новичка-дилетанта всё-таки уточню:

  1. Центральный ваш тулс в какой части? Датчики у нас, надеюсь, не в щитке?
  2. В чём целесообразность иметь реле в одном щитке не на производстве (где грязь, влажность, высокие температуры и большие расстояния), а в условиях квартиры/дома?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13.07.2020 в 14:42, AlexandrY сказал:

Не, пока дискутируем на общесистемную тему, а то ударимся в детали и за деревьями не увидим леса. 
Мои кнопки все равно TC-у не подойдут, и вообще мы же делаем сенсорный дисплей в подразетник в соседней теме. 
А моя просьба скорее риторическая, я же видел как это делается в https://www.openhab.org/ и в той же zipato.

Мысль в том что центальный тулс с мощной поддержкой языка диаграмм состояний и центральный ящик с PLCs в которых заключено все - это проще и дешевле в поддержке и разработке чем распределенная гетерогенная сеть с ограниченными физическми распределенными в пространстве нодами и скриптовый движок к ней на базе GPOS (General Purpose Operating System)

Удивительно, как люди могут усложнить себе жизнь на относительно несложной задаче. Сначала по каким-то никому не известным причинам заменить простейший RS485 на радио, причем в полностью стационарном исполнении, оправдываясь тем, что раскладывая кучу проводов от нагрузок к щитку им сложно протащить одну витую пару, затем установив какие-то контроллеры с софтом, о котором скорее всего что-то где-то слышали, без ТЗ, с хотелками "маркетолога" - "хочу, чтобы все было управляемым...", только вопрос - зачем? И да, резервное управление всем "умным" хозяйством с помощью обычного "механического" выключателя должно быть обязательно, особенно если используется всякое опенсорсное оборудование и облачные навороты. Начинать героически преодолевать эти трудности без какого-либо плана, постановки задачи и алгоритма решения. Удачи! Без всего вышеперечисленного дров столько наломаете, что лесопилка позавидует. Что тут еще можно сказать :dirol:

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, mantech said:

Удивительно, как люди могут усложнить себе жизнь на относительно несложной задаче. Сначала по каким-то никому не известным причинам заменить простейший RS485 на радио, причем в полностью стационарном исполнении, оправдываясь тем, что раскладывая кучу проводов от нагрузок к щитку им сложно протащить одну витую пару, затем установив какие-то контроллеры с софтом, о котором скорее всего что-то где-то слышали, без ТЗ, с хотелками "маркетолога" - "хочу, чтобы все было управляемым...", только вопрос - зачем?

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

Что тут сказать? Тут уж действительно дрова ломаются сразу и без лишних разговоров. Но это уже не удивительно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, syoma сказал:

даже не разобравшись до конца с условиями задачи, неправильно оценив ее сложность,

Разбирался и оценивал, причем неоднократно, и сказать могу точно, что большинство, кто приходит и говорит "хочу то, хочу это" с умным видом, а при детальном обсуждении выяснялось, что большинство этих хотелок просто взято из статеек инета, типа "круто-же"... По факту оказывалось нафиг не нужно (например всякие вычурные управления жалюзи и пр...) Так же моментально отсевались всякие навороченные контроллеры бытовой техники или сама техника с наворотами управления, все делалось через простейшие ИК трансмиттеры, как правило, оказывалось что нафиг не нужно радиоуправление и умные лампочки - все прекрасно делалось диммерами на RS-485, причем этот интерфейс и был основным в системе, еще надо продолжать?

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...