|
Когда не нужна ОС РВ?, навеяно постом "Я написал RTOS" |
|
|
|
Mar 2 2006, 15:58
|

инженер
   
Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701

|
Так как автор поста http://electronix.ru/forum/index.php?showtopic=12972загубил на корню возможность обсуждения, я и открыла новую тему. Вопрос может быть поставлен так - автору скорее всего и не нужна ОС РВ. Кругу задач его предметной области (ЦОС) свойственна - цикличность (каждый такт - ввод+обработка+вывод), жесткое РВ, работа с аппаратурой возможна на уровне конфигуривания специализированной библиотеки. Намерено так написала  . Чем тогда это не "IsaGraf" (или любой другой пакет языков программирования ПЛК), скажем так "IsaGraf для жесткого реального времени"? Или по другому - нельзя ли применить подход МЭК к АСУТП для другой предметной области (которые также трудоемки, также требуют высокой надежности ПО и у которых уже виден базис свойств). Например, к таким задачам - ЦОС, алгоритмы функционирования информационно-измерительных систем, ... Будет ли при этом этот новый case-инструмент альтернативой ОС РВ? Это возможно только на базе ОС РВ или самостоятельный путь развития программных технологий? Приглашаю всех к дискуссии.
|
|
|
|
|
 |
Ответов
|
Mar 3 2006, 15:22
|

инженер
   
Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701

|
Olej Цитата Говорить о том, что PLC работают "без ОС" - не приходится: там всегда присутствует runtime среда, присутствующая всегда сверх того, что написал, например, тот же технолог на языках МЭК, и именно и обеспечивающая функционирование "того ..." . Ну я это сразу отметила только другими терминами Target System или bios (хотела как термин, а SM обиделся слегка  ). Я за общность в определениях - пусть будет runtime среда и будем ее считать как ОС (с этим я согласна). Мою реплику Цитата Будет ли при этом этот новый case-инструмент альтернативой ОС РВ? Это возможно только на базе ОС РВ или самостоятельный путь развития программных технологий? трактуем только в отношении существующих ОС РВ общего назначения (QNX, OS-9, ...) Насчет языков программирования, если это тоже интересно (вообще то вопрос взаимосвязанный) мне кажется (крестится не буду  ) основное достоинство языков МЭК - введение новых элементов языка, отражающих специфику предметной области, причем не только новых структур данных, но и структур управления (если классически смотреть на язык высокого уровня (ЯВУ)). Сюда же еще одна мысль - естественно ОС тоже может отражать специфику предметной области, только это отражение на уровне концепций ОС, ее внутренней архитектуры, выражающееся через некоторые правила работы в среде ОС путем использования системных вызовов. И в первом, и во втором варианте - специфика предметной области может быть отражена в базисных примитивах. Зачем? -> Упрощение процесса разработки для конкретной области задач за счет технологичности программирования (вместо ручной дрели - электрическая), опять же за счет технологичности - повышение качества ПО в среднем (не ориентируясь на оч.умелые ручки), может быть немного спорная мысль - повышение эффективности самой программы (по известным критериям быстродействия/памяти или даже соответствия требованиям жесткого РВ и другим условиям исходной предметной области). Может быть немного и загнула Сомнения, конечно, всегда остаются насчет возвращения (этапа развития технологии) в предметно-ориентированное русло (всегда хочется универсальности ...) Упоминаемые здесь скриптовые языки (собственно это обсуждение началось ранее в посте "Java in AVR") - все это тоже очень интересно, но runtime самим с нуля писать под предметную область. А как там обстоит дело с возможностью введения новых управляющих конструкций языка, (часто требующих доступа к аппаратному уровню целевой системы)? Один простой пример управляющей конструкции из "PLC культуры" - отработка таймаута. И здесь в качестве runtime всегда используется интерпретатор  . А мне он не во всех предметных задачах нравится ... (предубеждение такое из-за ограничений по памяти/быстродействию). Хотя может это предубеждение в будущем и развеется само собой по объективным причинам. Цитата Там ещё интереснее, если быть совсем точным... Я не знаю как с CoDeSys (не было времени и случая), но с ISaGRAF покопался, и обстоятельно пообсуждал с парнями из "ФИОРД" С.-Петербург: система ISaGRAF может быть "заточена" (пересобрана) под разные исполняющие платформы (в их терминологии это называется "целевая функция"), и получается такая runtime среда исполнения, которая может крутиться: - под RTOS ... тот же "ФИОРД" собрали "целевую функцию" под QNX; - OS но не RT - одно из самых частых использований ISaGRAF это под Linux ... последнее время много пишут - под RT Linux, но RT Linux - это что-то вроде "осетрины второй свежести"... - без всякой операционной платформы - над голым железом...
И в той, и в другой, и в третьей конфигурации - в среде ISaGRAF runtime будет выполняться один и тот же TIC-кода реализующий одну программу. Интересно! Я знала только про портации CodeSys. Конечно, IsaGRAF сразу был ориентирован на различные ОС, а вот без ОС - это в какой-то мере новость.
|
|
|
|
|
Mar 4 2006, 13:24
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458

|
Цитата(Vic1 @ Mar 3 2006, 19:22)  Насчет языков программирования, если это тоже интересно (вообще то вопрос взаимосвязанный) мне кажется (крестится не буду  ) основное достоинство языков МЭК - введение новых элементов языка, отражающих специфику предметной области, причем не только новых структур данных, но и структур управления (если классически смотреть на язык высокого уровня (ЯВУ)). Сюда же еще одна мысль - естественно ОС тоже может отражать специфику предметной области, только это отражение на уровне концепций ОС, ее внутренней архитектуры, выражающееся через некоторые правила работы в среде ОС путем использования системных вызовов. И в первом, и во втором варианте - специфика предметной области может быть отражена в базисных примитивах. Зачем? -> Упрощение процесса разработки для конкретной области задач за счет технологичности программирования (вместо ручной дрели - электрическая), опять же за счет технологичности - повышение качества ПО в среднем (не ориентируясь на оч.умелые ручки), может быть немного спорная мысль - повышение эффективности самой программы (по известным критериям быстродействия/памяти или даже соответствия требованиям жесткого РВ и другим условиям исходной предметной области). Может быть немного и загнула  Языки МЭК вызывают у меня ... какие-то смутные ощущения  , не пойму пока: 1. в объяснение почему их 5 (да ещё ISaGRAF от себя 1 вводит, да ещё всё новые предлагаются, как здесь указывали...) я как-то в одном очень заслуживающем уважения месте вычитал примерно следующее: "... комитет долго спорил, чтоб не отдать предпочтение ни одному из уже установившихся поставщиков PLC в ущерб другим ... поэтому их 5 ..." - тут и задумаешься: мы хотим обсуждать высокотехнологическое средство, или кто, как, почём и больше продаст в рыночной стихии - тогда это мне совсем неинтересно. 2. кто их использует (здесь уже столкнулись с разночтениями в терминологии: технологи / программисты)? я перед собой ежедневно вижу парней, рисующих этими tools системы автоматики... и вот что я наблюдаю: - ни один настоящий технолог в это занятие не полезет ... это технологу - чуждо, потому как всё равно по сути деятельности требует ... мышления программистского; - заказчик всегда говорит: "с таким инструментом - мои эксплуатационщики всегда могут сесть и внести изменения в систему, подкорректировать её ... потом" - это полный бред: эксплуатационщик в принципе с таким инструментом, в силу его простоты, может "влезть" ... но единственным результатом такого влезания может быть только полное разрушение системы: исправляя в программе ошибку мы всегда вносим 3 новые, и бороться с этой прогрессией - нужно иметь навыки, и навыки эти - программистские. - но назвать этих парней, "пишущих" на МЭК языках, программистами ... у меня как-то язык не поворачивается: они, обычно, не сильно задумываются, что такое IP-адрес, и очень удивляются, почему IP-адрес записывается как x.y.z.w, а Modbus-адрес - как x.y  , я обычно этот персонал называю "проектанты" (чтоб каждую вещь хоть как-то называть - нельзя же их называть ни технологи ни программисты). - начитавшись предисловий, что "... работа такая не требует высокой квалификации и можно привлекать персонал невысокой квалификации..." - наши администраторы хотя бы задумались (хоть вообще об чём-то думали, например, зачем и в чьих интересах такое пишется?): это в наших то условиях? когда хлопчика ещё не закончившего институт и бегающего на занятия между работами - можно нанять за $400, а самого профессионального программиста-"волкодава" - $800 (цифры условные ... региональные  , но соотношение везде сохраняется). Цитата(Vic1 @ Mar 3 2006, 19:22)  Интересно! Я знала только про портации CodeSys. Конечно, IsaGRAF сразу был ориентирован на различные ОС, а вот без ОС - это в какой-то мере новость. Вот это интересное место. Дело то в том, что в циклической алгоритмике управляющего АСУТП процесса: - ввод - обработка - вывод - , когда это принципиально однонитевой циклический процесс - вполне достаточно на все случаи жизни MS-DOS! И никаких особо специфических функций OS (RT или не RT) - особенно не нужно. До тех пор, пока не привносится каким-то образом параллелизм. Это в точности та же история, когда при работе над MS-DOS v.2 компашка Билли Г., в силу своей невежественности к тому времени, молодости и задора - напрочь исключили возможности параллелизмов из ОС (когда в более ранней и лучше CP/M этому уже уделялось внимание, и уже создавались первые версии QNX). А потом все годы "триумфального шествия" MS-DOS - это была борьба и успешные победы тех трудностей, которых нагородили с самого начала: print-spooler, мультиплексор INT 2F, TSR-программирование кто и во что горазд... Я думаю, что успешная жизнь PLC (более 15 лет с ранних 90-х), когда в первоначальных моделях ничего управляющего более MS-DOS и быть не могло - определяется кажущейся сверхвысокой надёжностью и устойчивостью, обеспечиваемые, на самом деле, принципиально однонитевой цикличной природой вычислительного процесса АСУТП. Вот здесь косвенно тоже это прозвучало: Цитата(Andrew2000 @ Mar 3 2006, 21:57)  ISaGRAF-у ОС, собственно, и не нужна, ему нужен аппаратный таймер, по которому он будет следить за временем выполнения такта: ввод-обработка-вывод - wait, если быстро, ошибка, если переполнение такта - вот и все реальное время ... А вот когда появляется задача связи (по Ethernet, например), то тут удобнее ОС: 1 задача - задача связи, вторая задача - интерпретатор TIC-кода (хотя, никто не мешает организовать связь на прерываниях). Да, 1 принципиально требующая параллельности ветвь - всегда появляется при требовании сетевых средств, или, если шире - любых асинхронных обменных процессов. Но есть и другой скрытый механизм параллельности, и это гораздо серьёзнее... Когда рассматривают вот тот цикл работы АСУТП процесса: - ввод - обработка - вывод - часто неявно предполагается, что всё именно так и производится: по циклу ввод начинаются обменные операции, после завершения которых - начинается обработка полученных данных и т.д. Но такое может быть только в крайне примитивных реализациях (которые, кстати, производители нередко именно и стараются "протолкнуть" системному интегратору). Рассмотрим конкретный пример: 900 бинарных сигналов (это реально одна из последних задач, которую я "мозговал"), ввод каждого - не очень быстрый (RS-485 Modbus + не очень быстрая периферия) - скажем 1 мс. (это, кстати, и не так плохо)... По вот той схеме выше: начинаем читать сигнал 1, через 1 мс., получив данные - сигнал 2, ... i, ... i+1 - через чуть больше 900 мс. (1 сек.!) - начинаем логически перебирать эти сигналы, ещё 300 мс., скажем ... и т.д. Зачем? Мы можем: - параллельно с уже идущем циклом обработки (предыдущим)... - запустить операцию на 1-й переменной, и не дожидаясь её завершения - на 2-й и т.д. ... - через некоторое время операции 1, 2, ... i,i+1,... начнут завершаться, возможно совсем в другом порядке, чем они запускались... - и вот когда все 900 операций ввода завершатся - тогда мы имеем право обновить буфер входных переменных, и следующий цикл обработки выгребет эти обновлённые данные... - а все более ранние циклы обработки, которым придёт время начаться ранее полного завершения цикла ввода (здесь всё определяется соотношениями циклов ввода и обработки) - они спокойно возьмут себе старый комплект переменных, но только полный комплект! считанный предыдущим завершившимся циклом ввода (таким образом несколько последовательных циклов обработки могут работать с одним необновляемым набором входных переменных"). И вот здесь простейшая runtime исполняющая система PLC становится ... "просто беда"  .
|
|
|
|
Сообщений в этой теме
Vic1 Когда не нужна ОС РВ? Mar 2 2006, 15:58 SM Мое мнение однозначно - ОС РВ нужна тогда, когда л... Mar 2 2006, 16:35 Harbour Ну в пользу ОС РВ можно упомянуть переносимость пр... Mar 2 2006, 17:06 zltigo Цитата(SM @ Mar 2 2006, 18:35) Мое мнение... Mar 2 2006, 17:39 SM Цитата(zltigo @ Mar 2 2006, 20:39) А вот ... Mar 2 2006, 18:47  Olej Цитата(SM @ Mar 2 2006, 22:47) Нет. Это н... Mar 3 2006, 08:40   SM Цитата(Olej @ Mar 3 2006, 11:40) Почему э... Mar 3 2006, 11:59    Olej Цитата(SM @ Mar 3 2006, 15:59) Это я реши... Mar 3 2006, 12:50     SM Цитата(Olej @ Mar 3 2006, 15:50) Цитата(S... Mar 3 2006, 13:06      Olej Цитата(SM @ Mar 3 2006, 17:06) Да потому,... Mar 3 2006, 14:57       SM Цитата(Olej @ Mar 3 2006, 17:57) Цитата(S... Mar 3 2006, 15:40 Evgeny_CD IMHO по осям.
1. Ось - это совокупность стандарто... Mar 2 2006, 18:13 zltigo Цитата(SM @ Mar 2 2006, 20:47) Нет. Это н... Mar 2 2006, 20:06 SM Цитата(zltigo @ Mar 2 2006, 23:06) (конеч... Mar 2 2006, 21:30 Vic1 Всем, что такое языки программирования ПЛК (станда... Mar 3 2006, 06:11 Olej Цитата(Vic1 @ Mar 3 2006, 10:11) Всем, чт... Mar 3 2006, 09:24 Evgeny_CD Системы программировния PLC и ОС - это разные вещи... Mar 3 2006, 08:44 Olej Цитата(Evgeny_CD @ Mar 3 2006, 12:44) Сис... Mar 3 2006, 09:41  Evgeny_CD Цитата(Olej @ Mar 3 2006, 12:41) ...Весьм... Mar 3 2006, 10:02 Olej Цитата(Vic1 @ Mar 2 2006, 19:58) Будет ли... Mar 3 2006, 10:19 Vic1 ЦитатаЧтоб не повторяться - я об этом много писал,... Mar 3 2006, 10:53 Olej Цитата(Vic1 @ Mar 3 2006, 14:53) 2. тоже ... Mar 3 2006, 12:38 Evgeny_CD Цитата(Vic1 @ Mar 3 2006, 13:53) ...Собст... Mar 3 2006, 12:55  Olej Цитата(Evgeny_CD @ Mar 3 2006, 16:55) Я ч... Mar 3 2006, 15:14 Vic1 К сожалению смогу продолжить беседу только вечером... Mar 3 2006, 11:10 Evgeny_CD Цитата(Vic1 @ Mar 3 2006, 18:22) ...Упоми... Mar 3 2006, 15:58  Andrew2000 Цитата(Olej @ Mar 4 2006, 16:24) Языки МЭ... Mar 4 2006, 18:35   Olej Цитата(Andrew2000 @ Mar 4 2006, 22:35) МЭ... Mar 4 2006, 19:11 Vic1 Нет, Olej, я с Вами здесь не соглашусь
ЦитатаА это... Mar 3 2006, 15:44 SM Цитата(Vic1 @ Mar 3 2006, 18:44) Еще насч... Mar 3 2006, 15:59 Vic1 Evgeny_CD, спасибо почитаю. Если найду, что можно ... Mar 3 2006, 16:07 Evgeny_CD Цитата(Vic1 @ Mar 3 2006, 19:07) Evgeny_C... Mar 3 2006, 16:12 SM Цитата(Vic1 @ Mar 3 2006, 19:07) ЦитатаНо... Mar 3 2006, 16:19 Andrew2000 Маленькие замечания.
ISaGRAF - интерпретатор.
Дру... Mar 3 2006, 17:57 Olej Цитата(Andrew2000 @ Mar 3 2006, 21:57) IS... Mar 4 2006, 13:34 Olej Цитата(Andrew2000 @ Mar 3 2006, 21:57) ..... Mar 11 2006, 14:56  =AK= Цитата(Olej @ Mar 12 2006, 00:26) у них (... Mar 11 2006, 23:01   Olej Цитата(=AK= @ Mar 12 2006, 03:01) Прям-та... Mar 12 2006, 08:45    =AK= Цитата(Olej @ Mar 12 2006, 18:15) только ... Mar 12 2006, 09:18  Andrew2000 Цитата(Olej @ Mar 11 2006, 17:56) Цитата(... Mar 12 2006, 12:22 Andrew2000 Перечитал вниметельнее - выскажу свои мысли.
Evge... Mar 4 2006, 18:14 =AK= Чтобы лучше понять суть МЭК-овских языков, настоят... Mar 5 2006, 07:15 Olej Цитата(=AK= @ Mar 5 2006, 11:15) Я бы выд... Mar 6 2006, 16:14  Andrew2000 Цитата(Olej @ Mar 6 2006, 19:14) Модель ... Mar 7 2006, 16:16  =AK= Цитата(Olej @ Mar 7 2006, 01:44) Если уж ... Mar 8 2006, 12:27 Evgeny_CD Думаю, в свете всех этих PLC языков программирован... Mar 5 2006, 10:24 =AK= Цитата(Evgeny_CD @ Mar 5 2006, 19:54) Дум... Mar 5 2006, 11:55 Andrew2000 Цитата(Evgeny_CD @ Mar 5 2006, 13:24) Чит... Mar 5 2006, 21:07  =AK= Цитата(Andrew2000 @ Mar 6 2006, 06:37) На... Mar 5 2006, 21:35   Andrew2000 Цитата(=AK= @ Mar 6 2006, 00:35) ST проис... Mar 6 2006, 08:27 Evgeny_CD "Вредная" статья
http://www.msclub.ce.cc... Mar 6 2006, 08:48 =AK= Цитата(Andrew2000 @ Mar 6 2006, 17:57) А ... Mar 6 2006, 11:42 Evgeny_CD Цитата(=AK= @ Mar 6 2006, 14:42) PLC появ... Mar 6 2006, 12:16 Andrew2000 Цитата(=AK= @ Mar 6 2006, 14:42) Зюбин - ... Mar 6 2006, 14:04 Olej Цитата(=AK= @ Mar 6 2006, 15:42) Зюбин - ... Mar 11 2006, 13:49  =AK= Цитата(Olej @ Mar 11 2006, 23:19) объявит... Mar 11 2006, 15:08   Olej Цитата(=AK= @ Mar 11 2006, 19:08) Дык, кт... Mar 11 2006, 18:00 AlexandrY Я согласен с Evgeny_CD в плане его определения RTO... Mar 6 2006, 22:24 Vic1 To Andrew2000
Цитата"
Можно еще эту книгу поч... Mar 7 2006, 09:22 =AK= Цитата(Vic1 @ Mar 7 2006, 18:52) Но идея ... Mar 7 2006, 11:10 Andrew2000 Цитата(Vic1 @ Mar 7 2006, 12:22) ... (неп... Mar 7 2006, 16:36 Olej Цитата(Vic1 @ Mar 7 2006, 13:22) Я бы поо... Mar 8 2006, 12:10 Vic1 AlexandrY, а какими-нибудь ссылками на русскоязычн... Mar 7 2006, 11:31 AlexandrY To Vic1
http://aly.projektas.lt/Projects/OpenPLC/... Mar 8 2006, 08:25 Evgeny_CD AlexandrY, как всегда, на высоте.ЦитатаЕсли вы хот... Mar 8 2006, 09:45 one_man_show Совсем не желая подлить масло в огонь спора про РТ... Mar 9 2006, 09:52 Evgeny_CD Цитата(one_man_show @ Mar 9 2006, 12:52) ... Mar 9 2006, 16:45 Vic1 Цитата(one_man_show @ Mar 9 2006, 13:52) ... Mar 27 2006, 09:11 AlexandrY To Evgeny_CD
Ребята из Pro-Sign вообще-то до неда... Mar 9 2006, 15:46 zltigo ЦитатаПытаюсь ответить на вопрос "Когда не ну... Mar 9 2006, 16:48 Evgeny_CD Цитата(zltigo @ Mar 9 2006, 19:48) Цитата... Mar 9 2006, 16:58  SM Цитата(Evgeny_CD @ Mar 9 2006, 19:58) есл... Mar 12 2006, 08:02   Evgeny_CD Цитата(SM @ Mar 12 2006, 11:02) ...А если... Mar 12 2006, 11:08    SM Цитата(Evgeny_CD @ Mar 12 2006, 14:08) Ци... Mar 12 2006, 11:27     Evgeny_CD Цитата(SM @ Mar 12 2006, 14:27) ...Ну поч... Mar 12 2006, 12:48      Olej Цитата(Evgeny_CD @ Mar 12 2006, 16:48) Ин... Mar 12 2006, 13:58   Olej Цитата(SM @ Mar 12 2006, 12:02) И вот в э... Mar 12 2006, 11:50    SM Цитата(Olej @ Mar 12 2006, 14:50) Второй ... Mar 13 2006, 07:28     Evgeny_CD Цитата(SM @ Mar 13 2006, 10:28) Процессор... Mar 13 2006, 07:42     Olej Цитата(SM @ Mar 13 2006, 11:28) Цитата(Ol... Mar 13 2006, 08:42      SM Цитата(Olej @ Mar 13 2006, 11:42) Я не о ... Mar 13 2006, 11:20       Olej Цитата(SM @ Mar 13 2006, 15:20) Тем, что ... Mar 13 2006, 12:17        SM Цитата(Olej @ Mar 13 2006, 15:17) Это нев... Mar 13 2006, 12:26 Evgeny_CD В свете обсуждения это будет интересно
http://elec... Mar 13 2006, 05:29 Olej Цитата(Evgeny_CD @ Mar 13 2006, 09:29) В ... Mar 13 2006, 06:44 Vic1 Да ... И разрослась вроде ветка, но что то не по ... Mar 13 2006, 11:23 Olej Цитата(Vic1 @ Mar 13 2006, 15:23) Да ... ... Mar 13 2006, 12:26 Vic1 ЦитатаЭто потому, что нельзя тему обсуждения так р... Mar 13 2006, 14:06 Vic1 Готовлю выводы по обсуждению (потом, наверно, тему... Mar 16 2006, 13:13 Evgeny_CD Бука по промавтоматике - может кому пригодится в с... Mar 16 2006, 19:58 =AK= Че-то я там про МЭК языки не нашел. Собственно, не... Mar 18 2006, 12:09 yuri_t Понимаю, что тема несколько остыла, но тем не мене... Apr 21 2006, 20:32 Виктория ЦитатаПонимаю, что тема несколько остыла, но тем н... Apr 24 2006, 15:00 DogZ Цитата(Виктория @ Apr 24 2006, 18:00) Цит... Apr 26 2006, 00:32 Виктория ЦитатаПостановка вопроса более чем актуальна, с од... Apr 26 2006, 14:52 Владимир Е. Зюбин Всем привет! Отдельное спасибо Виктории за то,... May 4 2006, 07:35 Evgeny_CD Цитата(Владимир Е. Зюбин @ May 4 2006, 11... May 4 2006, 10:29  Olej Цитата(Evgeny_CD @ May 4 2006, 13:29) Я с... May 5 2006, 06:21
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|