Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Архив
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Средство для программирования контроллера: Си или МЭК 61131?

 Ответить Ответить Страница  <1 3536373839 53>
Автор
Сообщение
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Средство для программирования контроллера: Си или МЭК 61131?
    Опубликовано: 21 Октябрь 2003 21:13

Первоначально опубликовано Владимир Е. Зюбин

1. Мультиязыковое программирование - это минус. В первую очередь это означает пониженные надежностные
характеристики (см. соответств. исследования)

какие исследования? Мультиязыковое программирование позволяет выбирать инструменты, адекватные задаче, и описывать алгоритмы в наиболее удобном представлении. Что ведет к меньшему количеству ошибок, помогает при отладке и, в результате, ведет к более надежному коду. Если, разумеется, языки органично связаны между собой, как это сделано в МЭК.

Первоначально опубликовано Владимир Е. Зюбин

До шиз. интерпретации МЭК 61131.3 в ИЗоГРАФе, такого в области автоматизации не наблюдалось... если
программировали на релейных схемах, так это была полностью программа на релейных схемах...

Так вот кого нужно за все благодарить... :)))

Инженер-системотехник
+7 (916) 477 3925
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Октябрь 2003 21:25

Первоначально опубликовано Владимир Е. Зюбин

[
Судя по всему, Вы полагаете, что для этого контроллер не нужен. И для диагностики, и для формирования исходных данных, и для фиксации событий в системе, и для упреждения аварийных ситуаций... без контроллера тут, увы не обойтись...

Просто нужно четко разделять, какие действия производятся на нижнем уровне, а какие на верхнем.

Первоначально опубликовано Владимир Е. Зюбин


Если вся логика - это пара релюшек, крайне глупо для этого ISaGRAF покупать, надо прямо релюшки и покупать. Дешево и сердито. :-)

Да и Си не нужен с Паскалем, кто ж спорит... :-)

Инженер-системотехник
+7 (916) 477 3925
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Октябрь 2003 21:33

Первоначально опубликовано Владимир Е. Зюбин

Убогость выразительных
средств это норма для ЛЮБОГО из т.н. графических языков.
В каких-то случаях это допустимо, например в UML, а в
каких-то случаях является ограничением на применение,
как в случае МЭКовских SFC, LD, FBD. Не понимаю, какой смысл эти научные факты оспаривать...
Действительно, если лично для Вас "проблеммно-ориентированый" автоматически значит "убогий", какой смысл спорить - проще просто привыкнуть к жаргону :) И только лишь справедливости ради, хочу заметить, что существуют и графические языки общего назначения.

Инженер-системотехник
+7 (916) 477 3925
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 21 Октябрь 2003 21:54

Первоначально опубликовано Владимир Е. Зюбин

Вот и я про это говорю. LD sucks... когда дело касается регуляторов, средних, и пр. Также реле непригодны при
организации событийных алгоритмов...

Эх, жаль, негде выложить картинку...

|  event1     +-----------+
|---| |-------| handler1  +--
|             |           |
|      param1-+           +--out1
|             |           |
|             +-----------+
|
|  event2  event3      +-----------+
|---| |-----| |--------| handler2  +--
|                      |           |
|               param2-+           +--out2
|                      |           |
|                      +-----------+
|
Чем это не событийный алгоритм?

Первоначально опубликовано Владимир Е. Зюбин

 также "играя" с реле можно заработать рак мозга

Так не стоит это делать, если не знаешь, кто "играл" с ним до этого... Иначе и не такое можно подхватить! :))

Инженер-системотехник
+7 (916) 477 3925
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Октябрь 2003 11:02
Первоначально опубликовано Максим Ананских


Указатели - великая вещь, а в сишной реализации - вдвойне. Не помню, как дело обстояло с 8080, давно это было... Пример навскидку:


int x = 0x0102;


printf ("%d", (int)*((char*)&x));


На интеловских процессорах это будет 2. А на Мотороле?



Пример, кстати - действующий, но "плохой": он ни на грамм не подтверждает (как и не опровергает) тезис об машинной приближённости C:
- это игрища с big/litle endian, которые давно известны, надоели, и разрешены в сетевом программировании...
- это - особенности машинного представления, не имеющие никакого отношения к языкам: нечто аналогичное можно написать на любом языке, поддерживающем указатели, том же Pascal..., более того - на языке, вообще не имеющего понятия "указатель", а только ссылки - Java, напр. ... но и этого мало ;-) - если уж очень хочется, то точно то же можно через COMMON выписать на дремучем FORTRAN, не знающем вообще понятий об указателях, ссылках, и являющимся "пользовательски" ориентированным на вычисления.

Так что - такой пример "в зачёт" принят быть не может... ;-).

P.S. Более того: если вы станете опираться на стандарт языков, а не особенности конкретных реализаций (DOS Borland C 3.1, как пример) - то не найдёте вы машиннозависимых особенностей в C...
Хотя, мне так и не понятно... - это же не имеет ровно никакого значения в контексте разговора, который вы ведёте!


Наверх
Владимир Е. Зюбин Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 247
Свойства публикации Свойства публикации   Ответить, цитируя автора - Владимир Е. Зюбин Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Октябрь 2003 11:46
Диагностика, события и языки программирования при том,
что разговор идет о проблемах создания ПО для
сложных промышленных объектов, которые имеют свойство ломаться.

Первоначально опубликовано Дмитрий Милосер

Владимир, при чем тут диагностика, события и языки программирования? :) Каким боком это связано? Только тем, что ЭТО живет в контроллере?


А вообще конечно, если смотреть сверху, то снизу кажется, что сбоку гораздо виднее. ;)


 

Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК
http://reflex-language.narod.ru/
Наверх
Владимир Е. Зюбин Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 247
Свойства публикации Свойства публикации   Ответить, цитируя автора - Владимир Е. Зюбин Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Октябрь 2003 11:47
Первоначально опубликовано Дмитрий Милосер

Первоначально опубликовано bessonov

Первоначально опубликовано Владимир Е. Зюбин


А в общем случае мультиязыковое программирование - это
всегда снижение таких качеств программы как надежность и
сопровождаемость. Даже когда речь идет об использовании
ассемблера в Си.


Отличный перл.
:)


:)) Никогда не делайте ничего простого и практичного, если есть способ сделать это сложным и прекрасным.


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


 


  

Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК
http://reflex-language.narod.ru/
Наверх
Владимир Е. Зюбин Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 247
Свойства публикации Свойства публикации   Ответить, цитируя автора - Владимир Е. Зюбин Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Октябрь 2003 12:04
Поскольку мы с Вами согласны, что описываемые Вами
клоны Си, в частности понятие моделей памяти, не
являются стандартными в Си, то мое исходное утверждение
остается в силе... Лично я far и near не использую,
впрочем, не вижу ничего зазорного использовать эти
возможности в заведомо аппаратно-зависимых приложениях...

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

Первоначально опубликовано Sergey Sorokin

Первоначально опубликовано Владимир Е. Зюбин

Указатели великая вещь, только они никак не связаны с архитектурой целевой платформы.

Если хотите опровергнуть тезис, приведите операцию Си,
которая зависит от архитектуры выч.платформы. Скажем,
для 32-х разрядного Пентиум и 8-ми разрядного 8080.

Можно, конечно, ссылаться на различие длины int, но это
вопрос традиции, а не архитектуры.




Почему же они не начали традицию с 32 разрядных int? Такого рода неопределенности в спецификациях С вызывают проблемы переносимости ПО. При переходе на 64 разрядные платформы история начнется заново.


Что касается указателей, то far и near указатели классическая зависимость от x86 архитектуры. Это конечно не часть стандарта ANSI C, но часть любого компилятора для данной платформы. Когда в Small модели нужно использовать длинные указатели приходилось использовать far (и наоборот в large модели при необходимости использовать near). Библиотечные функции (скажем malloc) так же имели разные версии в зависимости от того аллокировался ближний или дальний блок. Ближний блок не мог быть по размеру больше сегмента x86 (64кбайта). MAKE_FP и т.п.


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


С Уважением,


Сергей Сорокин


 

Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК
http://reflex-language.narod.ru/
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Октябрь 2003 12:22
Первоначально опубликовано Владимир Е. Зюбин

Поскольку мы с Вами согласны, что описываемые Вами клоны Си, в частности понятие моделей памяти, не являются стандартными в Си, то мое исходное утверждение остается в силе... Лично я far и near не использую, впрочем, не вижу ничего зазорного использовать эти возможности в заведомо аппаратно-зависимых приложениях...

Да не зацикливайтесь вы на этих платформенно зависимых дополнениях языковых средств, в частности far & near - ну нет их, нет! в стандарте языков - это только чисто реализационные добавки (всё тот же DOS Borland C 3.1), навязанные ограничениями конкретной платформы x86 real mode!


Наверх
Guests Смотреть выпадающим
Гость
Гость
Свойства публикации Свойства публикации   Ответить, цитируя автора - Guests Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Октябрь 2003 12:50

Первоначально опубликовано Владимир Е. Зюбин

Диагностика, события и языки программирования при том,
что разговор идет о проблемах создания ПО для
сложных промышленных объектов, которые имеют свойство ломаться.

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

Т.е. еще раз - FBD, LD и пр. и диагностика, алармы и пр. "навороты" - не одно и то же.

 

Наверх
 Ответить Ответить Страница  <1 3536373839 53>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz