реклама на сайте
подробности

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


инженер
****

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



Так как автор поста http://electronix.ru/forum/index.php?showtopic=12972
загубил на корню возможность обсуждения, я и открыла новую тему.

Вопрос может быть поставлен так - автору скорее всего и не нужна ОС РВ. Кругу задач его предметной области (ЦОС) свойственна - цикличность (каждый такт - ввод+обработка+вывод), жесткое РВ, работа с аппаратурой возможна на уровне конфигуривания специализированной библиотеки. Намерено так написала smile.gif . Чем тогда это не "IsaGraf" (или любой другой пакет языков программирования ПЛК), скажем так "IsaGraf для жесткого реального времени"? Или по другому - нельзя ли применить подход МЭК к АСУТП для другой предметной области (которые также трудоемки, также требуют высокой надежности ПО и у которых уже виден базис свойств). Например, к таким задачам - ЦОС, алгоритмы функционирования информационно-измерительных систем, ...
Будет ли при этом этот новый case-инструмент альтернативой ОС РВ? Это возможно только на базе ОС РВ или самостоятельный путь развития программных технологий?

Приглашаю всех к дискуссии. smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
=AK=
сообщение Mar 5 2006, 07:15
Сообщение #2


pontificator
******

Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483



Чтобы лучше понять суть МЭК-овских языков, настоятельно рекомендую ознакомиться с историей создания ПЛК. Лучше всего читать первоисточник, http://www.barn.org/FILES/historyofplc.html

Я бы выделил следующие существенные моменты:
-- ПЛК изначально создавался как средство замены релейных шкафов автоматики. Первые языки программирования ПЛК "имитировали" релейные схемы. Our customers treated the programmable controller as a box of relays, and well they should. Language theory is neither necessary not desirable for most of the customers to know. The customers, instead, understand their problem, and are indeed much smarter than the design engineers because the dimensions of their problem far exceed the relatively simple problem of designing a computer software system and language. Языки ST и SFR - это более поздние добавки.
-- Языки создавались на сравнительно бедной базе вычислительной техники 70-х ... 80-х годов, как аппаратной, так и программной. "Если нет гербовой бумаги - пишем на простой" (с) Поэтому имитация релейных схем изначально была достаточно условной.

Элементы настоящих релейных схем работают параллельно и одновременно. Для полноценной их имитации был бы необходим язык наподобие VHDL, или что-то вроде функционального языка, где последовательность написания операторов (в VHDL - процессов) не играет роли. А МЭК-овские языки реализованы намного проще, они несут в себе "родимые пятна" императивного программирования, где последовательность написания операторов все-таки играет роль. Вернее, сам МЭК-стандарт не требует этой "императивности", но из прагматических соображений допускает ее. Поэтому критика МЭК-овских языков с позиций императивного программирования в сущности не имеет под собой оснований.

Программы на МЭК-овских языках надежны прежде всего потому, что представляют пользователю очень простую и понятную модель поведения: все операторы в идеале исполняются "одновременно". А заморочки неодновременного исполнения - это уже нюансы реализации, исторические "родимые пятна". В конечном счете, надежность программ зависит прежде всего от человека, а именно - от того, насколько он хорошо представляет, что делается, и насколько он "держит в голове" что происходит в его программе. То есть, насколько хорошо он моделирует систему. Если порядок исполнения операторов неважен (пусть даже условно), это сильно упрощает моделирование и, соответственно, повышает надежность программы. Средства программирования ПЛК являются тому подтверждением.
Go to the top of the page
 
+Quote Post
Olej
сообщение Mar 6 2006, 16:14
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 11-09-05
Из: Харьков
Пользователь №: 8 458



Цитата(=AK= @ Mar 5 2006, 11:15) *
Я бы выделил следующие существенные моменты:
-- ПЛК изначально создавался как средство замены релейных шкафов автоматики. Первые языки программирования ПЛК "имитировали" релейные схемы. Our customers treated the programmable controller as a box of relays, and well they should. Language theory is neither necessary not desirable for most of the customers to know. The customers, instead, understand their problem, and are indeed much smarter than the design engineers because the dimensions of their problem far exceed the relatively simple problem of designing a computer software system and language. Языки ST и SFR - это более поздние добавки.
-- Языки создавались на сравнительно бедной базе вычислительной техники 70-х ... 80-х годов, как аппаратной, так и программной. "Если нет гербовой бумаги - пишем на простой" (с) Поэтому имитация релейных схем изначально была достаточно условной.


Если уж быть совсем точным, то таких "эпох" было не 2: релейные - PLC, а 3: релейные (...50-60г.г.) - жёсткая логика (70-е) - PLC ...
Я по-молодости ещё участвовал в разработке 1-й (потом были новые поколения) СССР-ской АСУ управления пуском-остановом турбин АЭС, которые многие годы экспортировались в массу стран мира... Там было ... миллион wink.gif элементов И-ИЛИ-НЕ, которые "кроссировались" на разъёмных колодках (чем и "программировались") под алгоритм регулирования - это нам сейчас пригодится... wink.gif

Цитата(=AK= @ Mar 5 2006, 11:15) *
Элементы настоящих релейных схем работают параллельно и одновременно. Для полноценной их имитации был бы необходим язык наподобие VHDL, или что-то вроде функционального языка, где последовательность написания операторов (в VHDL - процессов) не играет роли. А МЭК-овские языки реализованы намного проще, они несут в себе "родимые пятна" императивного программирования, где последовательность написания операторов все-таки играет роль. Вернее, сам МЭК-стандарт не требует этой "императивности", но из прагматических соображений допускает ее. Поэтому критика МЭК-овских языков с позиций императивного программирования в сущности не имеет под собой оснований.

Программы на МЭК-овских языках надежны прежде всего потому, что представляют пользователю очень простую и понятную модель поведения: все операторы в идеале исполняются "одновременно". А заморочки неодновременного исполнения - это уже нюансы реализации, исторические "родимые пятна". В конечном счете, надежность программ зависит прежде всего от человека, а именно - от того, насколько он хорошо представляет, что делается, и насколько он "держит в голове" что происходит в его программе. То есть, насколько хорошо он моделирует систему. Если порядок исполнения операторов неважен (пусть даже условно), это сильно упрощает моделирование и, соответственно, повышает надежность программы. Средства программирования ПЛК являются тому подтверждением.


Модель "одновременного" выполнения предоставляют никак не сами МЭК-овские языки, а циклическая организация процесса - ввод - обработка - вывод - ... особенно хорошо это видно, если эти циклы "разбить" вот так: - обаботка - вывод - ввод - ... Идея в том, что все N входных и M выходных локализованных переменных должны сменить свои значения одномоментно... а потом может идти, скажем, 1 сек. обработки, и если сигнал Ni сменит своё значение через 1мкс. после "ввод" - то это новое его значение никак не отразится на "обработка", и даже не станет этой фазе доступно ... а если до следующей фазы "ввод" Ni восстановит своё прежнее значение - то мы никогда и не узнаем, что значение "мигнуло"...

Я не случайно упомянул раньше логические элементы И-ИЛИ-НЕ... Все логические схемы (большие) могли строится на 2-х принципах: потенциальные и синхронные. Нас здесь интересуют именно синхронные реализации: все логические входя всей схемы - фиксировались (считывались) только на момент фронта синхроимпульса. Этим и достигалась "одномоментность" и и сильно снижалась вероятность "гонок" (хотя потенциальные схемы, в принципе - производительнее).

Так вот "классическое" программирование, а большинство участников разговора, мне кажется, принадлежат именно к этому миру - подобно потенциальной реализации логики: мы привыкли, что когда нам нужно значение переменной - тогда мы её и считываем (или когда оно изменяется - нас уведомляют прерыванием, и мы всё равно считываем wink.gif). Системы АСУТП, PLC, всё, что напрограммировано в МЭК языках... - ведёт себя (и должно!) как синхронные логические схемы: только в 1 момент синхроимпулься обновляются все внешние (локализованные) переменные.

И это - обязательное условие, но никто не обязывает вас реализовывать логику на языках МЭК ... рисуйте её на здоровье на С/С++ или чём хотите - обеспечьте только синхронное обновление всех внешних данных. И вы получите надёжность не хуже, чем обещанную производителями PLC (нет там других аргументов для надёжности!), а на самом деле - лучшую, потому как в смысле семантики и "тонких" неожиданностей - классические языки программирования проанализированы и проработаны на порядки лучше!

Цитата(Evgeny_CD @ Mar 5 2006, 14:24) *
Думаю, в свете всех этих PLC языков программирования будет интересна эта книга
http://www.natahaus.ru/2006/03/05/SWITCH__tekhnologija.html
А.А. Шалыто
SWITCH - технология
Алгоритмизация и программирование задач логического управления
Издательство: Наука
Год: 1998
Формат: DjVu
http://rapidshare.de/files/14697466/SWITCH.rar.html
без пароля


Вот, кстати, "школа Шалыто" (НПО "Аврора") и предложенная ими SWITCH-технология - это действительно одна из блестящих техник для классического программирования по обеспечению надёжности (которая на самом то деле является - безошибочностью wink.gif). И не только эта книга ... там где-то на сайте НПО "Аврора" было много интереснейших статей с примерами реализации всеми привычных программных подсистем в SWITCH-технологии (и это именно не "программирование", а "сквозная технология": и документирование, и верификация, и ... - готовый продукт). Так что вот здесь вы:

Цитата(=AK= @ Mar 5 2006, 15:55) *
"Излашается технология алгоритмизации и программирования задач логического управления на основе теории автоматов." Ладно, пускай "излашается" biggrin.gif


- в корне не правы!

Цитата(=AK= @ Mar 6 2006, 15:42) *
Первыми производителями ПЛК были Модикон и Аллен-Брэдли, Сименс стал делать ПЛК на несколько лет позже (когда точно - не знаю, но позже, это точно). Поэтому еще до того как появился Step5, контроллеры Модикон и Аллен-Брэдли использовали нечто подобное IL. Пусть они в отличие от Step5 не оформляли свой промежуточный код как язык, на котором пользователь мог бы писать программы, но он был.


Я вот как-раз знаю состояние с МЭК по Modicon (сейчас это Schneider Electric) и их tools программирования в МЭК Concept & Unity Pro ... и образца не "первых производителей", а в версиях 2005 года... Да-а-а-а ... это "что-то с чем-то"(с) wink.gif. Кстати, сами они и не пропогандируют "одновременность" происходящего (в техдокументации), а отчётливо объясняют "слева-направо и сверху-вниз" ... Когда я смотрю на несколькоэкранные диаграммы, понарисованные проектировщиками ... я просто балдею - так всё таки левее или выше? находится эта переменная от той? Не говоря уже о том, что о каких-то там возможностях синхронизаций разработчики просто не слышали (а возможны ли вообще синхронизации? ... того, что слева вверху, с тем что справа вверху ...).

P.S. Вот те парни, которых я "наблюдаю" проектируют системы СПД (системы обеспечения безопасности движения) в метрополитене, и эти системы уже внедрены на 3-х крупных станциях ... Хорошо, я знаю на каких - с тех пор меня не заманишь на ветку, проходящую черех них.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
- - Vic1   Olej ЦитатаГоворить о том, что PLC работают ...   Mar 3 2006, 15:22
|- - Evgeny_CD   Цитата(Vic1 @ Mar 3 2006, 18:22) ...Упоми...   Mar 3 2006, 15:58
|- - Olej   Цитата(Vic1 @ Mar 3 2006, 19:22) Насчет я...   Mar 4 2006, 13:24
|- - 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
|- - 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
4 страниц V   1 2 3 > » 


Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 12:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.0151 секунд с 7
ELECTRONIX ©2004-2016