Средство для программирования контроллера: Си или МЭК 61131? |
Ответить | Страница <1 2425262728 53> |
Автор | ||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 29 Сентябрь 2003 Категория: Isle Of Man Online Status: Offline Публикации: 119 |
Опубликовано: 13 Октябрь 2003 10:58 |
|||||
Владимир Е. Зюбин человек, написавший "Sructured Text (ST) - A high level textual language that encourages structured programming." , не понимает, что такое структурное программирование Чья бы корова мычала... ... It is possible to do structured programming in almost any procedural programming language, but since about 1970 when structured programming began to gain popularity as a technique, most new procedural programming languages have included features to encourage structured programming, (and sometimes have left out features that would make unstructured programming easy). Some of the better known structured programming languages are
At the level of relatively small pieces of code, structured programming typically recommends simple, hierarchical program flow structures. These can be obtained in most modern languages by using only structured looping constructs, often named "while", "repeat", "for". Often it is recommended that each loop should only have one entry point and one exit point, and a few languages enforce this. http://www.searcheng.co.uk/selection/control/Articles/IEC61131/main.htm Structured Text (ST) - A high level textual language that encourages structured programming. It has a language structure (syntax) that strongly resembles PASCAL and supports a wide range of standard functions and operators. |
||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||||
Паскаль с можно назвать языком структурного
программирования... а ST - нет... Надо просто отдавать себе отчет, что язык типа ST, - язык, где невозможно создать процедуру/функцию, - вообще не может иметь никакого отношения к структурному программированию. Такие вот пироги. Удачи.
|
||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 29 Сентябрь 2003 Категория: Isle Of Man Online Status: Offline Публикации: 119 |
||||||
Владимир Е. Зюбин ...ST, - язык, где невозможно создать процедуру/функцию... Выдержки их хелп-файла ISaGRAF: ST (Structured text) - это структурный язык высокого уровня разработанный для процессов автоматизации. Этот язык, в основном, используется для создания сложных процедур, которые не могут быть легко выражены при помощи графических языков. По умолчанию ST является языком для описания действий внутри шагов и условий языка SFC. Основные операторы языка ST: Стандартные ST вызовы функций могут быть использованы для каждого из следующих объектов: Имя: имя вызываемой подпрограммы или библиотечной функции написанной на IEC языке или C Пример 2: Вызов функции |
||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||||
Вы не кипятитесь, а еще раз внимательно почитайте то, что в той же Википедии написано...
ST - очень убогий язык, никакой структуры (иерархической программной структуры) на нем создать в принципе нельзя. Если хотите по существу возражать - приводите пример описания структурной единицы на языке ST. Описания, подчеркиваю, а не вызова... В Си, например, структурной единицей является функция. Описывается функция в Си, например, так: int MAX (int a, int b) { if (a > b) return (a); return (b); } в ортодоксально структурном виде будет что-то типа такого: int MAX (int a, int b) { if (a > b) b = a; return (b); } Сюда опять же посмотрите: structured language <programming> A programming language where the program may be broken down into blocks or procedures which can be written without detailed knowledge of the inner workings of other blocks, thus allowing a top-down design approach. http://www.InstantWeb.com/D/dictionary/foldoc.cgi?structured+language top-down design <programming> (Or "stepwise refinement"). The software design technique which aims to describe functionality at a very high level, then partition it repeatedly into more detailed levels one level at a time until the detail is sufficient to allow coding. This approach to software design probably originated at IBM, and grew out of structured programming practices. http://www.InstantWeb.com/D/dictionary/foldoc.cgi?top-down+design Ну и т.д.
|
||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
||||||
Конечно смешно. Слово "controller" в буржуйском языке имеет множество значений, часть из которых относится к computer science, и одно из которых вы привели. В переводе на простой русский язык - контроллер - это фиговина, которая занимается управлением других фиговин и может иметь размер от мелкой микросхемы до неслабого шкафа.
Вот у меня есть немалое количество separate circuit boards, для computer и ни для одной из них в документации почему-то ничего не говорится ни про PLC, ни про языки для PLC. Наверное, - неправильные какие-то платы. И их произодители - неправильные. И компьютер тоже неправильный И "микро"контроллеры работающие на "микро"процессорах -тоже совершенно неправильные
Ну кто вам доктор, если вы сужаете область АСУТП до уровня ПЛК, а потом кричите "не могу" ?
Человеко-машинный интерфейс: датчики, которые могут сказать, какая сейчас температура, подъемный кран, орущий: "Иванов! Не стой под стрелой, твою мать!" и т.п. Всякая информация о начале/завершении процесса или аварийной ситуации.
Почитайте на досуге об ограничениях интернет адресов. И для чего ее расширяют - чтоб каждый прибор, каждый выключатель имел свой ip-адрес.
Я ссылаюсь на то, на что облизываюсь. Цены дешевых 32-битных DSP уже вполне приемлемые. А область, в которой я работаю действительно далека от "кирки и лопаты" - там все больше лазеры, микроны и микросекунды SY, EK |
||||||
SY,
EK |
||||||
Новичок Присоединился: 26 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 22 |
||||||
???? FUNCTION WEIGH : WORD (* BCD encoded *) VAR_INPUT weigh_command : BOOL; gross_weight : WORD ; (* BCD encoded *) tare_weight : INT ; END_VAR IF weigh_command THEN WEIGH := INT_TO_BCD (BCD_TO_INT(gross_weight) END_IF ; END_FUNCTION (этот пример прямо из IEC 61131-3, 2nd Ed. (Proposed Working draft 1998)), F.1. так что функции есть. И функциональные блоки есть. Чего действительно нет - это блоков внутри функций, где было бы можно завести локальные для блока переменные, то есть недостаточная возможность структурирования ВНУТРИ функции (нет { } или BEGIN END). Но, мне кажется, это недосточное основание отказать ST в структурности. |
||||||
С уважением,
Дмитрий Теркель |
||||||
Новичок Присоединился: 14 Октябрь 2003 Online Status: Offline Публикации: 25 |
||||||
Язык ST позволяет создавать и вызывать функции написанные на ST. Все прибамбасы типа объявления функции и ее переменных скрыты либо объявляются отдельно.
С этим я надеюсь спорить никто не будет. Если кто то не создавал функции на ST и не вызывал их, то можно с уверенностью сказать, что он на ST просто не работал. Функции можно вызывать из функций, что подразумевает большую вложенность и достаточную структурированность. Чего ДЕЙСТВИТЕЛЬНО нельзя, так это вызывать функцию (рекурсивно) из самой себя . Что на мой взгляд правильно. Вся проблема на мой взляд в том, что некоторые люди привыкли все описывать на одном листе и теперь им трудно привыкнуть, что программа может быть структурирована не только как отдельные функции и блоки на одном листе, но и как функции и блоки написанные на одельных листах. Жесткое условие каждой функции свой Unit(файл) более структурирует программу, чем все в одном. :) |
||||||
Новичок Присоединился: 14 Октябрь 2003 Online Status: Offline Публикации: 25 |
||||||
Владимир Е. Зюбин :
Скажите пожалуйста, как Вы себе представляете ВЫЗОВ функции без ЕЕ ОПИСАНИЯ? Извините, но так можно договориться до вызова функции без наличия в природе самой функции. Если есть ВЫЗОВ и он работает, то значит есть ОПИСАНИЕ функции и ее (функции) ТЕЛО. Иначе получается фигня какая-то. С уважением. VSerg. |
||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||||
Спасибо за поправку.
Забираю свои слова обратно относительно ST. Доктор Q, Вы правы, язык ST в изложении МЭК действительно является языком структурного программирования... как и Си, как и Фортран, как и Паскаль. В свое оправдание могу сказать, что в главе стандарта, описывающем ST все упоминания об этой возможности ST отсутствуют... и в документации на ISaGRAF версии 2.10 эти возможности ST также не реализованы... (или опять же описание этого зарыты чрезвычайно глубоко) Но в любом случае, ST в версии МЭК позволяет применять технику структурного программирования. Пойду с Lewis-ом пообщаюсь, попрошу прощения...
|
||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||||
Новичок Присоединился: 14 Октябрь 2003 Online Status: Offline Публикации: 25 |
||||||
В настоящий момент последней сущуствующей версией продукта ISaGRAF является версия ISaGRAF PRO 4.20. :) |
||||||
Ответить | Страница <1 2425262728 53> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |