Просмотр полной версии : Многопоточность
Smith2007
14.08.2013, 09:24
Существует ли возможность запуска одновременно нескольких потоков на ПЛК (многозадачность)?
Как это реализуется в CodeSys?
Предположим есть ряд несвязанных задач. Каждая задача опрашивает свою группу входных сигналов и управляет своими выходами.
Если из одной задачи нужно передать данные в другую?
Николаев Андрей
14.08.2013, 10:54
МНогопоточность\читай многозадачность - вообще вещь условная.
Особенно на одноядерных процессорах :).
То, что Вас интересует - в наших контроллерах поддержана функция многозадачности.
Вы можете отказаться от PLC_PRG, и использовать Конфигуратор задач (Task Configurations).
Примеры есть на форуме. Лично делал.
Так же есть возможность делать подпрограммы, и вызывать их в основной программе.
Так же есть примеры в разделе примеров. Тоже делал лично.
Если говорить по сути - то используется псевдомногозадачность, с учетом приоритета подпрограммы, последней вызываемой подпрограммы и прерываний.
Филоненко Владислав
14.08.2013, 11:37
Все зависит от типа CoDeSys-а. В CoDeSys 2.3 кооперативная многозадачность, в 3-м - вытясняющая.
Есть на ПЛК поточная многозадачность, но в отличие от ПК она там всего лишь костыль. Вся ваша программа будет исполняться от начала и до конца сотни раз в секунду — просто пишите свои задачи в разных подпрограммах, вызывайте эти подпрограммы в каком угодно порядке из главной PLC_PRG и считайте, что они работают одновременно как будто в разных потоках. Вопрос синхронизации в правильно написанной проге отпадёт, т.к. технически вы остаётесь в одном потоке.
Другими словами, на ПЛК многозадачность не поточная. В подпрограмме prog1 вы пишете out1 := in1, в пп prog2 пишете out2 := in2 + in3, в PLC_PRG пишете prog1(); prog2(); и вуаля — prog1 и prog2 выполняются одновременно.
Smith2007
14.08.2013, 12:17
Предположу, что на контроллерах с линухом дела обстоят иначе, а именно - "вытесняющая" многозадачность.
Впрочем как написал Егор, можно и последовательно.
позабавили своими рассуждениями. купите два плк и будет у Вас проект на двухядерном процессоре :)
плк с линуксом с мин.циклом 20 мс останутся далеко позади, если выполнять последовательно все задачи на том же плк100 с циклом в 1-2 мс
Sergey666
14.08.2013, 15:41
Есть на ПЛК поточная многозадачность, но в отличие от ПК она там всего лишь костыль. Вся ваша программа будет исполняться от начала и до конца сотни раз в секунду — просто пишите свои задачи в разных подпрограммах, вызывайте эти подпрограммы в каком угодно порядке из главной PLC_PRG и считайте, что они работают одновременно как будто в разных потоках. Вопрос синхронизации в правильно написанной проге отпадёт, т.к. технически вы остаётесь в одном потоке.
Другими словами, на ПЛК многозадачность не поточная. В подпрограмме prog1 вы пишете out1 := in1, в пп prog2 пишете out2 := in2 + in3, в PLC_PRG пишете prog1(); prog2(); и вуаля — prog1 и prog2 выполняются одновременно.
Выполнятся будет по очереди порядка записи вызовов. Актуальными будут значения , обработанные в последнем вызове. Этим можно неплохо пользоватся .
Выполнятся будет по очереди порядка записи вызовов.При независимых наборах переменных порядок исполнения внутри цикла не имеет значения.
При независимых наборах переменных порядок исполнения внутри цикла не имеет значения.
да, но тем не менее, как правильно сказал Sergey666 выполняться подпрограммы будут в порядке написания (слева направо, сверху вниз). А то, что за счет времени цикла человек воспринимает выполнение этих POU как мгновенные говорит лишь о быстроте работы контроллера, а не о многозадачности.
Николаев Андрей, пользуясь конфигуратором задач я так понимаю процессор будет работать по прерываниям и уделять больше времени тому POU у которого приоритет выше? Просто цикл получится рваный(в одном цикле процессора выполнили чуть-чуть одного POU, в другом чуть-чуть второго)? В данном случае удается ли сократить время цикла ПЛК(затрачиваемое на выполнение всего проекта)? Мне кажется что нет, но может я не прав? Удается лишь создать иллюзию многопоточности и более ровное выполнение независимых частей программы.
Николаев Андрей
15.08.2013, 14:06
Ну я таки рекомендовал бы посмотреть этот раздел.
Если в кратце - есть несколько типов вызовов программ. Именно программ - тут они уже не подпрограммы. Хотя обмениваться переменными вполне себе могут.
Так вот их 3 основных:
1. В свободное время. Это когда у ПЛК есть время - тогда и выполнит один раз.
2. По событию. Например замкнулся вход, и я один раз выполняю программу, которая по замыканию данного входа что-то обсчитает\включит\выключит.
3. По таймеру. Это когда каждая программа имеет свой приоритет и частоту вызова. Например отслеживать концевики или перепадник дискретный надо крайне часто, ну скажем раз в 10 мс. А вот программу, в которой обсчитываются ПИД регуляторы вызывать чаще чем раз в 100-300 мс и смысла никакого нет, по большому счету...
Вообще то, вопрос многозадачности намного глубже и, наверное разработчикам нужно как то более подробно его осветить. Ну с поточной многозадачностью вроде понятно - задачи выполняются последовательно. Если циклы разные, то тоже можно задачу с меньшим циклом прокручивать несколько раз в более долго играющей, но если у нас несколько таких программ (для наглядности штук 20) и все с разными циклами как поведет себя контроллер? И, наверное более актуальный вопрос: а как при разных циклах программ происходит считывание и запись входов-выходов? Для каждой задачи по отдельности или все вместе? А если данные из одной задачи используются в другой?
А какое максимальное количество задач можно формировать в проекте?
Smith2007
17.08.2013, 19:50
Если у меня выполняется программа по таймеру с приоритетом 2 и она довольно длительная. Во время ее выполнения произойдут 2 события (с дискретных входов) и еще одно по таймеру с приоритетом 1. Все события в т.ч. события от таймера ставятся в очередь и выполнятся в любом случае или могут быть пропущены?
Что вы называете событиями с дискретных входов? Если их срабатывания - то опрос состояния входов производится перед выполнением программы - это основы ПЛК.
Smith2007
18.08.2013, 08:01
А если "сработавшие" дискретные входы используются в другой программе? И при этом в настоящее время выполняется длительная программа со 2 приоритетом и сработал таймер программы с первым приоритетом.
Расскажите пожалуйста новичку алгоритм обработки событий и приоритетов.
А если "сработавшие" дискретные входы используются в другой программе? И при этом в настоящее время выполняется длительная программа со 2 приоритетом и сработал таймер программы с первым приоритетом.
Расскажите пожалуйста новичку алгоритм обработки событий и приоритетов.
а Вы бы выложили тех.задание сюда, там может окажется что и многозадачность в Вашем понимании излишняя, да и тому кто будет объяснять станет легче раскрыть вопрос
Smith2007
18.08.2013, 12:24
http://www.owen.ru/forum/showthread.php?t=15602&p=116902&viewfull=1#post116902
Кроме этого есть еще задача мониторинга температуры, протечки (5 датчиков), авария электропитания. Не могу быть уверенным, что на этом все закончится :)
Видимо только во вкус вхожу. Понравилась мне идея смски отправлять при возникновении нештатной ситуации.
один плк160 справиться и в одном потоке
Филоненко Владислав
19.08.2013, 13:53
Многозадачность требуется если есть ряд задач, к-е большую часть времени ничего не делают (ждут события), но при этом следующее время запуска неизвестно, т.е.нельзя использовать таймер.
Если же у вас 2 (3, 5, 1000) задач, которые надо вызывать по расписанию - просто вызывайте их по расписанию, желательно составив его так, чтобы нагрузка была равномернее.
P.S. "А если "сработавшие" дискретные входы используются в другой программе? И при этом в настоящее время выполняется длительная программа со 2 приоритетом и сработал таймер программы с первым приоритетом." - Какая "длинная задача", которую нельзя прервать? Разбейте длинную задачу на 1000 мелких - и в промежутках проверяйте состояние критических высокоприоритетных задач. Так будет надёжнее и предсказуемей.
Не нужно так категорично про основы ПЛК. На сегодняшний день есть т.н. бстрые входы, которые могут изменять данные не подчиняясь законам цикла. И у ПЛК Овен они тоже есть, но в документации написано, что независимо от времени цикла они обрабатывают сигналы от счетчиков и энкодера, а вот о возможности запуска от них задач - ни слова! Скорее всего, нельзя. Хотелось бы услышать версию разработчиков!
К слову сказать, Господа Разработчики, а существует ли возможность на ПЛК Овен создать полноценное аппаратное прерывание по сигналу с любого входа со временем реакции, ну хотя бы 10мкс?
Куда вам такая реакция? И встречный вопрос: "Используя ПЛК с временем цикла равным миллисекундам откуда вы возьмете микросекунды?"
Используя ПЛК с временем цикла равным миллисекундам откуда вы возьмете микросекунды?Аппаратное прерывание — когда процессор при некотором событии в железе забывает про всё на свете и бежит исполнять кусок кода (обработчик), который зарегистрирован на это прерывание, а уже потом возвращается к рутине. В автоматизации фишка часто встречается урезанной до «тупого» счётчика импульсов, который нужен, например, для энкодера.
Только Вы понимаете, что при написании такой программы обработки прерывания должны выполнятся весьма жесткие требования?
а существует ли возможность на ПЛК Овен создать полноценное аппаратное прерывание по сигналу с любого входа со временем реакции, ну хотя бы 10мкс?
Я это понял так: от момента появления сигнала на DI вызвать кусок кода, обработать его и отдать управляющий сигнал на DO. И все это за 10мкс. Если не прав, ок, учту.
термины не путаете?
http://social.msdn.microsoft.com/Search/ru-RU?query=%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%B E%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C&ac=4
Я это понял так: от момента появления сигнала на DI вызвать кусок кода, обработать его и отдать управляющий сигнал на DO. И все это за 10мкс. Если не прав, ок, учту.Конечно же без быстрых выходов в такое время не уложиться. Но реакция это не обязательно вывод сигнала на выход ПЛК — вполне может быть и просто регистрация событий с высоким разрешением по времени.
Очень приятно услышать столько интересных и разнообразных мнений по поводу прерывания! Однако, хотелось бы услышать и разработчиков. Повторюсь: ВОЗМОЖНО ЛИ НА ПЛК ОВЕН РЕАЛИЗОВАТЬ ПРЕРЫВАНИЕ ПО ВНЕШНЕМУ СОБЫТИЮ.
И что за странная строка в планировщике событий "TASK_I01"?
Дмитрий Артюховский
20.08.2013, 17:27
ПЛК110 - "быстрый таймер" - прерывания с периодом от 20 мкс.... опрашивайте свои внешние события и реагируйте на них...
Филоненко Владислав
21.08.2013, 17:17
К сожалению, языки CoDeSys (а скорее сам компилятор), не предназначены для написания прерываний. Очень уж неоптимизированный код получается.
Плюс большие накладные расходы на сам вызов программы CoDeSys из прерывания.
Поэтому 20 мкс - это тот предел, ниже которого ПЛК будет выполнять только код прерывания. Даже на простой программе.
Поэтому в ПЛК110 новой редакции мы применили 2 сопроцессора для обработки быстрых входов/выходов.
И высокоскоростная обработка буде происходить внутри сопроцесоров. На текущий момент поддержан весь "быстрый" функционал ПЛК110, в дальнейшем функционал будет расширен, Для реализациии типовых высокоскоростных задач.
Достигнутый цикл обработки = 1 мкс и не подвержен джиттеру.
Писать в CoDeSys обработчик прерывания - неблагодарное занятие, да и ненужное. В самом языке поддерживается идея вытесняющей многозадачности и для контроллеров имеющих быстрые входы можно реализовать переход к более приоритетной задаче при наличии события на таком входе (по сути это и есть прерывание) но при одном условии - если разработчики заложили такую функцию в свое изделие. У Овена есть быстрые входы, в планировщике задач есть вызов задачи по внешнему событию, и даже в этих событиях заложены две позиции TASK_Т01 и TASK_I01, первая из которых - вызов задачи по сигналу таймера. Что означает вторая - похоже военная тайна (ну, или я не заметил ее расшифровки между строк всей документации) хотя судя по написанию - это и есть физический вход, но тогда какой?И самое главное - непонятно, как работает вызов такой задачи, по принципу вытесняющей многозадачности или не вытесняющей. Собственно вот те несколько вопросов на которые я хотел бы услышать ответ.
Или, хотя бы, "...в током-то и таком-то контроллере такая функция реализована...", но в ответ - тишина....
Простите, не тишина, а куча идей на отвлеченную тему.
Кстати, Владислав, судя по вашей фразе
в ПЛК110 новой редакции мы применили 2 сопроцессора для обработки быстрых входов/выходов.
И высокоскоростная обработка буде происходить внутри сопроцесоров. На текущий момент поддержан весь "быстрый" функционал ПЛК110 в ранних версиях ПЛК110 и, наверное ПЛК100 эти функции должны "хромать"?
Дмитрий Артюховский
21.08.2013, 23:00
Идея прерываний противоречит концепции ПЛК в принципе. Однако она удобна, поэтому в ПЛК110 сделан параллельный циклик, который много быстрее основного. Это позволяет эмулировать прерывания, с запаздыванием отклика на время не более этого самого циклика. В ПЛК100 это совсем не реализовано. У меня наворочено довольно много функционала при быстром прерывании 40 мкс и основным циклом 4 мс. Быстрый таймер написан на IL, что быстрее чем аналог на ST процентов на 30, хотя это возможно от способа мышления зависит ))
ЗЫ. а чему там хромать? прошло 20 мкс - прогоняется циклик, кончился - происходит возврат к выполнению основного.... если в основном много работы - он не вложится в свои рамки... но это уже проблемы программера.... отличие от классических прерываний в том, что основной цикл нормально увидит результаты быстрых, только в начале следующего.... пробрасывать через общие переменные можно, но тогда такооой бардак при выполнении....
Филоненко Владислав
22.08.2013, 18:55
Писать в CoDeSys обработчик прерывания - неблагодарное занятие, да и ненужное.
Хм. А кто будет делать полезную работу?
В самом языке поддерживается идея вытесняющей многозадачности и для контроллеров имеющих быстрые входы можно реализовать переход к более приоритетной задаче при наличии события на таком входе (по сути это и есть прерывание) но при одном условии - если разработчики заложили такую функцию в свое изделие.
Давайте не будем фантазировать. В языке ничего не поддерживается. Это все дело ОС и соответствующего ПО обработки прерываний.
Что прерывание таймера в ПЛК110, что вызов задачи по событию в том же СПК - внутри всё одинаковое :) И очень неоптимальное, к сожалению. В 3-м CODeSys-е еще хуже стало.
У Овена есть быстрые входы, в планировщике задач есть вызов задачи по внешнему событию, и даже в этих событиях заложены две позиции TASK_Т01 и TASK_I01, первая из которых - вызов задачи по сигналу таймера. Что означает вторая - похоже военная тайна (ну, или я не заметил ее расшифровки между строк всей документации) хотя судя по написанию - это и есть физический вход, но тогда какой?И самое главное - непонятно, как работает вызов такой задачи, по принципу вытесняющей многозадачности или не вытесняющей. Собственно вот те несколько вопросов на которые я хотел бы услышать ответ.
Или, хотя бы, "...в током-то и таком-то контроллере такая функция реализована...", но в ответ - тишина....
Простите, не тишина, а куча идей на отвлеченную тему.
TASK_Т01 и TASK_I01с - в первый раз такие аббревиатуры вижу. Сриншотик сохранился? Даже стало интересно.
Филоненко Владислав
22.08.2013, 18:56
Кстати, Владислав, судя по вашей фразе в ранних версиях ПЛК110 и, наверное ПЛК100 эти функции должны "хромать"?
Заданные скоростные параметры были реализованы. Но хотелось большего - поставили сопроцессоры.
Филоненко Владислав
22.08.2013, 18:57
Идея прерываний противоречит концепции ПЛК в принципе. Однако она удобна, поэтому в ПЛК110 сделан параллельный циклик, который много быстрее основного. Это позволяет эмулировать прерывания, с запаздыванием отклика на время не более этого самого циклика. В ПЛК100 это совсем не реализовано. У меня наворочено довольно много функционала при быстром прерывании 40 мкс и основным циклом 4 мс. Быстрый таймер написан на IL, что быстрее чем аналог на ST процентов на 30, хотя это возможно от способа мышления зависит ))
ЗЫ. а чему там хромать? прошло 20 мкс - прогоняется циклик, кончился - происходит возврат к выполнению основного.... если в основном много работы - он не вложится в свои рамки... но это уже проблемы программера.... отличие от классических прерываний в том, что основной цикл нормально увидит результаты быстрых, только в начале следующего.... пробрасывать через общие переменные можно, но тогда такооой бардак при выполнении....
Всё верно, кроме того, что прерывание не эмулируется, Код обработчика именно в нем и работает.
TASK_Т01 и TASK_I01с - в первый раз такие аббревиатуры вижу. Сриншотик сохранился? Даже стало интересно.
9689
Пожалуйста, Владислав!
Пополните свои знания о CoDeSys/
9689
Пожалуйста, Владислав!
Пополните свои знания о CoDeSys/
Вот Вы бы лучше Владиславу напомнили эту тему http://www.owen.ru/forum/showthread.php?t=1855 может он бы и вспомнил, а может и Вы бы не задали этот вопрос :)
Идея прерываний противоречит концепции ПЛК в принципе..
Дмитрий, давайте не будем углубляться в дебри концепций и принципов ПЛК...
Ваша идея маленького цикла - это просто выход из положения при отсутствии нормального решения. Тем более, что ее можно реализовать только в случае вытесняющей многозадачности, если многозадачность поточная, то результат будет весьма любопытный...
А если уж в ПЛК реализована вытесняющая многозадачность, то зачем такие сложности с обработкой входа, если можно просто реагировать на событие этого входа? Отсюда собственно и возник вопрос, повторюсь, а ВОЗМОЖНО ЛИ НА КАКОМ НИБУДЬ КОНТРОЛЛЕРЕ ОВЕН РЕАЛИЗОВАТЬ ПРИОРИТЕТНОЕ ВЫПОЛНЕНИЕ ЗАДАЧИ ПО СОБЫТИЮ НА ФИЗИЧЕСКОМ ВХОДЕ?
По моему это не слишком сложный вопрос для тех кто разрабатывал и создавал такой контроллер, но почему-то, вместо ответа ухе несколько страниц переливания из пустого в порожнее. Мне кажется, разработчикам должно быть стыдно, если они не знают что сказать... Да и не только им, но и всем кто связан с продвижение этого продукта на рынке. Вывеска красивая, а что под ней..., - да какая разница! Пипл хавает!
Ничего личного.... Просто - мысли вслух.
Вот Вы бы лучше Владиславу напомнили эту тему http://www.owen.ru/forum/showthread.php?t=1855 может он бы и вспомнил, а может и Вы бы не задали этот вопрос :)
Спасибо за подсказку. Сам не нашел.
Надо же, как все запущено... Уже пять лет вопрос висит в воздухе и ничего кроме фырканья в ответ не слышно!
Спасибо за подсказку. Сам не нашел.
Надо же, как все запущено... Уже пять лет вопрос висит в воздухе и ничего кроме фырканья в ответ не слышно!
там четко сказано что внешнее событие в контроллерах овен не поддерживается
по поводу собитий от физ.входа приоритетом может служить грамотно составленный код используя if else
Дмитрий Артюховский
23.08.2013, 12:10
"ВОЗМОЖНО ЛИ НА КАКОМ НИБУДЬ КОНТРОЛЛЕРЕ ОВЕН РЕАЛИЗОВАТЬ ПРИОРИТЕТНОЕ ВЫПОЛНЕНИЕ ЗАДАЧИ ПО СОБЫТИЮ НА ФИЗИЧЕСКОМ ВХОДЕ?"
дык, вам же четко ответили - НЕТ. и никто этого делать не будет, поскольку это нарушает концепцию ПКЛ : "считывание входов - обработка - установка выходов"
желаемое вами устройство сделать разумеется несложно, но это будет не ПЛК....
Или я не стой ноги сегодня встал, или в воздухе какие-то флюиды...
... это нарушает концепцию ПКЛ : "считывание входов - обработка - установка выходов"
желаемое вами устройство сделать разумеется несложно, но это будет не ПЛК....
Дмитрий, не надо рссказывать о концепции ПЛК! Это нескромно! Вы не являетесь отцом-основателем ни ПЛК, ни его концепции.
Для общего развития очень рекомендую почитать ГОСТ Р 51840-2001 (он же МЭК 61131-1-92) , и когда его досконально изучите обратите внимание на п.4.2 Таблица 1 вторая строка снизу "Управление исполнением...",
и после этого попробуйте вновь повторить фразу о концепции... уверен она будет звучать по другому!
Ваша концепция никак не стыкуется, ни с работой сторожевого таймере, ни с работой быстрых счетчиков, ШИМ выводов... и т.д. и сами Вы используете прерывание от таймера, которое тоже не вписывается в эту "концепцию"!
Или Вы хотите блеснуть пиком своего творчества, опрашивая по 40 000 раз в секунду вход с целью получить от туда сигнал, который, возможно приходит один раз в год?...
Повторяю, не цитируйте концепции всуе...
Филоненко Владислав
23.08.2013, 13:42
Вот Вы бы лучше Владиславу напомнили эту тему http://www.owen.ru/forum/showthread.php?t=1855 может он бы и вспомнил, а может и Вы бы не задали этот вопрос :)
Займусь самоцитированием:
1. External event не работает.
Спасибо!
В общем то именно такой простой ответ и хотелось бы услышать, ведь он не сильно сложный, наверное можно еще добавить что"...ни в одном из контроллеров..", В общемто такая мысль уже звучала в посте #10, но как то сильно завуалированно. А цитата имеет солидный возраст. Я надеялся что что нибудь поменялось.
Советую руководству ОВЕНа обратить внимание на "Руководсто по программированию ПКЛ110 и ПЛК160" стр.50 рис4.13, г) и подпись под им. Это все таки документ!
Николаев Андрей
23.08.2013, 14:46
Прекращу холивар:
1. Данный вид прерываний "External event" в контроллерах ОВЕН не поддерживается.
2. Поддерживается прерывание "по событию".
Теперь по реакции на срабатывание входов.
Обновление памяти входов-выходов на данный момент происходит в основном цикле контроллера.
Работа с быстрыми входами-выходами будет реализована немного по другому - через прямую работу с сопроцессорами.
Теперь о грустном. Господин (жа) KGB - прошу Вас в течение суток предоставить информацию о себе: где работаете, Ваши персональные и контактные данные. Можно в личку.
Иначе я буду рассматривать Вашу деятельность как подрывную на форуме, с соответствующими вытекающими :)
За ошибку в руководстве спасибо, поправим.
Андрей!
Свои личные данные я даю только при личном знакомстве, и не выкладываю их в Интернет. Это моя принципиальная позиция! И уж тем более, если такая просьба поступает в ультимативной форме! Если Вы считаете, что моя деятельность носит подрывной характер - делайте "соответствующие вытекающие" это ваше право. Хотя что подрывного Вы находите в попытке получить ответ на простой вопрос? Тем более что ответ Вы знали, но придерживали давая страстям накалиться, или это осознанная провокация?
По теме: в посте #14 прозвучал еще один интересный вопрос который, на мой взгляд осознано не воспринимается большинством пользователей контроллеров ОВЕН, но для нормальной работы требующий понимания. Но вопрос не мой, и отвечать на него или нет зависит только от уровня культуры тех, кто может на него ответить.
Дмитрий Артюховский
23.08.2013, 22:39
Почитал упомянутый гост, не нашел в нем противоречий концепции. Именно она там и описана. Магическое слово "прерывание" означает совершенно не тоже самое что в мире микроконтроллеров и больших компьютеров. Оно в данном контексте означает не более как прерывание цикла ожидания. Задача выполняется ПЕРИОДИЧЕСКИ, причем основное время это ожидание начала следующего такта, если нужно сократить цикл ожидания - его "прерывают". Если установлено малое (недостаточное) время выполнения основного цикла - "прерывание" теряет физический смысл. Упоминавшийся где-то буржуйский контроллер (серии F), имеющий "прерывания" по физическому сигналу - требует импульс этого сигнала не менее 200 мкс. Это не более чем рекламное извращение, малоприменимое в реальной практике.
Так что, малое время основного цикла, и программа, "размазывающая" свое выполнение по многим тактам......
Николаев Андрей
26.08.2013, 11:02
Андрей!
Свои личные данные я даю только при личном знакомстве, и не выкладываю их в Интернет. Это моя принципиальная позиция! И уж тем более, если такая просьба поступает в ультимативной форме! Если Вы считаете, что моя деятельность носит подрывной характер - делайте "соответствующие вытекающие" это ваше право. Хотя что подрывного Вы находите в попытке получить ответ на простой вопрос? Тем более что ответ Вы знали, но придерживали давая страстям накалиться, или это осознанная провокация?
Так я и предлагал Вам личное знакомство :) Хотите в личку, хотите на почту, хотите в офис приезжайте. Я общедоступен и все это знают. :)
Надо объяснять почему меня смущают Ваши сообщения? Извольте - нет ни одного вопроса по существу, или ни одного описания что же сделали именно Вы на оборудовании ОВЕН, или с какими вопросами по оборудованию ОВЕН Вы столкнулись. Нет ни одной конструктивной консультации по оборудованию ОВЕН. Да и неконструктивной нет... Скрытая реклама некоторых конкурентных компаний. и т.д.
Мы рады всем специалистам, готовым общаться. Мы открыты для критики. С конкурентами и провокаторами все будет достаточно просто. И быстро.
И так как я не хочу считать Вас таковым и предлагал Вам познакомиться. На что Вы ответили не сильно корректно по отношению к супермодератору.
Мое предложение все-еще в силе.
Однако предлагаю дальнейшее знакомство перевести в личку. Скажу проще - тут сообщения, не относящиеся к теме буду удалять.
По теме: в посте #14 прозвучал еще один интересный вопрос который, на мой взгляд осознано не воспринимается большинством пользователей контроллеров ОВЕН, но для нормальной работы требующий понимания. Но вопрос не мой, и отвечать на него или нет зависит только от уровня культуры тех, кто может на него ответить.
Я ответил на данный вопрос. Выходы управляются в основном цикле (это как раз по принципам работы цикла ПЛК). Прерывания могут быть чаще.
Логично, что реле перейдет в то состояние, которое будет для него в области выходов в момент передачи сигнала на физическое реле.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot