--------------------------------------CoMod wrote:Выделил из темы про стендик http://plc.net.ru/viewtopic.php?t=9553
в эту отдельную филосовскую тему
Может быть и путаю.
Я не настаиваю.
Про switch-технологию я так неуважительно сказанул, т.к. мне не нравится, когда (по моему мнению) уж через чур замусоливают тему каким-то одним термином, показывая его "исключительность".
Свитч - то, свитч - сё, туда посмотри - свитч, назад прикинь - свитч.
Можно было б и по проще.
То, что я новичок в проектировании и программировании для ПЛК, вовсе не означает , что я вообще новичок в программировании.
А посему, мне знакомы такие вещи как:
- жизненный цикл программы;
- конечные автоматы (и некоторые другие);
- с десяток языков программирования, включая машинный код для x86 ЦПУ и даже для МК61 калькуляторов;
- куча сред IDE
- ну и с нашими старинными ГОСТами мне встречаться приходилось и даже ТЗ писать и для программ, и для систем АСУТП;
- ...
В общем широк кругозор, а куда деваться?
Как снискать хлеб насущный?
Менеджером идти?
Неа, не охота. Заржавею.
Я тут не так давно мудрость вычитал, что мол все вещи нас старят, акромя учёбы.
То бишь, если будешь учиться всю жизнь, то мозги не заплесневеют и будешь всегда молодым.
Вот хочу проверить так это или не так?
Люблю экспериментировать. Учится, конечно, не только проектированию систем АСУ.
Я отвлёкся. Ну раз на Ваш взгляд путаю, то пускай.
Может я сказанул чего не так или лишнего, может не поняли меня правильно, кто его знает?
Потому видать надо мне точней изъясниться.
Я более практик нежели теоретик, потому покажу пример.
Итак, что я понимаю под методой итальянцев. Для начала вот обозрите один их участок:
http://i013.radikal.ru/0901/ed/54378a5e7aff.jpg
Сие - кадр из документального фильма "Делание катанки - вид со стороны операторов". InTouch 9.5, честно говоря, после визуальных сред ЯВУ или там 3DMax, или хотя бы Photoshop смотрится убого, но ведь это не главное. Картинка получена путём следующего шаманства:
1) Создана специальная виртуальная машина, где запущен проект с интачём
2) Виртуальная машина клонирована. Дело в том, что интач не может показать сразу два экрана на расширенном рабочем столе. Такое в голову им вряд ли приходило, хотя кто их знает. Доку я только начал читать.
3) Обе виртуалки запущены на одной машине и включены в промышленную сеть, т.е. показывают реальную картинку происходящего.
4) Запущена тулза удалённого управления DameWare в двух экземплярах, каждая подключена к "своей" вируалке. Это сделано для того, чтобы можно было менять размер окна интерфейса оператора (ИЧМ). Так просто ведь это не сделать, учитывая дефицит мониторного места.
5) К этому могучему компу подрублен второй монитор. Рабочий стол расширен. DameWare окна расположены рядом и показывают экран оператора - их там два. Поэтому и две виртуалки и всего по две.
6) Запускаем uvScreenCamera, задаём область этих двух виртуалок и снимаем кино "Делание катанки - вид со стороны операторов"
О как. Видно, что я не любитель проторенных путей-дорог. Мне просто нужно было освоить с десяток прог одновременно, вот я и придумал такой финт. Люблю бить сразу с десяток зайцев. Кроме хлеба насущного, мясца тож не помешало б, а потом, конечно, и икорки... но это пока только мечты.
Я отвлёкся. Значит метода итальянцев. Всего шесть буков LANDEF. Если отбросить пока всю нужную документную последовательность, начиная с ТЗ и т.д. сквозь цикл, практически данная фирма проповедует набор файлов XLS формата, которые зовутся файлами описания сети. Как мне они сами сказали: "всё у нас начинается с формирования такого файла". Посмотрев на этот файл Вы сразу смекнёте в чём дело: http://slil.ru/26511488
Это проект в миниатюре, причём эти файлы сопровождают проект до самой наладки и включая её. Даже больше, они используются в процессе эксплуатации для быстрого ориентирования в коде. Вкладки каждая за что-то отвечает.
Сам файл за один ПЛК, за данные для связи с другими ПЛК, алармы, статусы для ИЧМ.
Также файл - есть своего рода ТЗ для составления программы для ПЛК и ТЗ для ИЧМ, т.к. в нём прописаны все необходимые теги.
Увы, но этот файл - лишь компиляция той технологии проектирования, которую я хотел бы освоить. Эти файлы используются на всех стадиях от самого начала до наладки и работы включительно. Это своего рода бухгалтерский баланс, который помогает удерживать в одном месте (в "самолётике" дебет-кредит) всю необходимую инфу по проекту.
Автоматный подход - это ниже по методике, на мой взгляд. Я для расширения кругозора прошёл курс создания компиляторов на интуит.ру. Хоть компилятор свой я ещё не написал, но общее представление о том, что такое автоматы и откуда они берутся я получил.
Вообще, способ создания программы из дерева состояний или чего-то похожего не нов. Есть такая штука как АлгоритБилдер для AVR контроллеров. Там прямо рисуешь алгоритм программы в виде блок схемы и получаешь код на ассемблере. Есть другие вещи, например, по описанию классов можно получить шаблон программы на С++. Забыл как эти программные продукты называются.
А есть совсем старые вещи: компиляторы.
Увы, но на нашей Родине очень туго проникают в мозг эти знания, тогда как на западе уже вовсю практически полностью автоматически(!) создаются компиляторы, т.к. теория развита очень хорошо, американские математики постарались, совместно с программистами и Кнута тут стоит упомянуть хорошими словами, также как и других известных создателей языков и компиляторов, наравне с создателями первых осей.
Это всё взаимосвязано.
Практически все утилиты юникса созданы с использованием автоматного подхода, где входной язык (любой, тектовый, омысленный, упорядоченный ... там есть спец название - грамматика) разбирается при помощи конечного автомата.
Есть специальные компиляторы компиляторов, которым на вход даёшь описание языка, а на выходе получаешь программный код компилятора для этого языка - ЭТО ТО, что делает программа из одной из вышеупомянутых статей про SWITCH-технологию.
Там просто описан какой-то компилятор компилятора.
Тока и всего. Вещь уже лет 30 как обычная, разве что сейчас есть разновидности в связи с появлением графического интерфейса.
Во блин написал. Жду продолжения дискуссии.
Делитесь знаниями.
Я их люблю и мгновенно поглощаю.
CHANt, спасибо за ссылку, учту.
Это примерно то, что хотел сделать я.
Только мне пока нужно для квартиры, но с прицелом на будущее.
П.С. Надеюсь, я админа не слишком напрягаю своими познаниями в русском и опусами.