Василий Кашуба , программа точно не останавливается, но попробую проверить. Она неадекватно себя ведет даже в эмуляции.
Василий Кашуба , программа точно не останавливается, но попробую проверить. Она неадекватно себя ведет даже в эмуляции.
Вопрос думаю не в языке программирования, а в формальных методах написания программ для автоматизированных систем. LD и FBD - в принципе занимают одинаковый уровень иерархии языков MЭК 61131-3 и созданы для преемственности, на них легко и удобно написать небольшую программу (что и представлено в программируемых реле), ST и SFC - используются в большинстве для написания сложных и больших систем. Тем не менее SFC можно реализовать и через LD, FBD или ST, что и обеспечит удобство читаемости кода и дальнейшей поддержки.
Скриптовый язык и в среде разработки будет только плюсом.
Учитывая, что сам ОЛ написан на С# (если разработчики не врут, а не должны так как для работы требуется NET) то правильнее будет сделать на нем.
Опять же, пользователям можно предоставить механизмы, которые будут заложены в мозгах ПР.
з.ы. разобрался почему программу глючит на ПР114 в новых версиях - КОГДА разработчики ВЕРНУТ на место переменные по умолчанию для СЕТЕВЫХ переменных ??????????????????????????
народ пишет, но что то как то ...
Именно поэтому спор и не имеет смысла. Именно поэтому же 5 языков программирования МЭК. Кому коньяк, кому ликер, а кому минералочку.
До настоящего момента язык FBD в постсоветском пространстве самый распространенный, ну не считая тех, кто 2 часа книжку почитав скучает от квадратиков :) При этом выпускники профильных специальностей по определению им владеют. Даже в техникумах начинают учить языкам МЭК.
Эти же выпускники, в принципе, могут освоить и семейство Си и др. языков. Но только зачем, когда их уже научили FBD МЭК? Тем более что речь не просто об операторах и ООП. Здесь речь о философии создания проекта, организации цикла и т.д. Все, ВСЕ программисты, пришедшие не из отрасли, включая Ситникова, наступали на эти грабли.
К сожалению бросить все и начать делать данную задачу прямо сейчас невозможно. Мы все обычно работаем в режиме дефицита ресурсов. Ну у кого работа есть.
Но вопрос правда интересный, и варианты реализации (с возможностями реализации) мы обязательно обсудим.
При этом надо точно понимать, что отхода от МЭК мы точно не планируем. И программистам из 1С так же придется принимать эту философию.
А вот это звучит как необоснованные инсинуации. О каком-таком наступлении речь?
Обсудите вопрос написания макросов на C и кросс-компиляцией под конкретную версию ПР?
Мало того, что "не взлетит" (например, будет тяжело скрестить С блок с симуляцией), так на рынке уже есть подобный опыт. Есть славные приборы МЗТА, у которых среда программирования это FBD, и каждый может дописать ФБ на языке C.
При этом, на форуме там ни единого обсуждения на этот счёт, значит на C эти блоки никому не впились.
Вот тут соглашусь ,реле так реле ,а для остального есть ардуино и ПЛК ;) И значит и времени тратить на это не зачем ,есть уже озвученные хотелки ,которые прошли вопрос согласования ....Цитата:
Сообщение от
При этом, на форуме там ни единого обсуждения на этот счёт,[B
очень сильно сомневаюсь, что те кто пишет на Си не смогут грамотно писать в графических языках, не говоря уже о просто освоить. А если ты х@вый программист, то ни какой супер язык не поможет и когда в среде чего то нет, всегда есть шанс сослаться на это отсутствие, чтоб скрыть свою низкую подготовку
Ещё раз повторюсь - дело, скорее всего, не в неспособности, а в элементарном нежелании шевельнуть извилинами. Хотя, признаться, я встречал людей, генетически неспособных научиться читать схемы. Даже при их желании и стремлении. Видимо, мозги у них не так устроены. Так ведь и не факт, что они и на текстовых языках смогут чему-нибудь научится программировать.
Вообще нужно сразу понимать, что если у свободно программируемого прибора есть аналоговые входа и/или выхода, то это заведомо ПЛК, а не реле.
И запросы к таким приборам у пользователей будут как к ПЛК :)
ПР-200 это однозначно ПЛК. Какое из него реле, когда там даже кнопки и дисплей есть?
ЗЫ Был у нас один ардуинщик... Проработал месяца два) На производстве слово ардуино вообще ругательство, ибо там ни гальванразвязок, ни защиты, ничего.
Ну вот есть у Лого Сименс и аналог, и кнопки, и дисплей, но Сименс почему-то позиционирует их как реле...
Сименс их позиционирует как реле, потому что у них есть возможность программирования с экрана-кнопок. Это дает возможность достать прибор из коробки и прямо на объекте наколхозить систему управления, например оперативно заменив участок релейной схемы, вышедший из строя или нуждающийся в модернизации. Однако эта возможность ограничивает и число блоков, используемых для программирования, и их сложность - используются только относительно простые. А поскольку в итоге сложность программ получается искуственно ограниченной, то ограниченными получаются и вычислительные возможности и в итоге имеем реле, а не ПЛК. Поскольку в случае ПР200 подобного ограничения нет, и более того, ОЛ позволяет уже сейчас создание макросов, то ПР200 - это фактически ПЛК, а не реле, особенно с учетом того, что там стоит достаточно мощный микроконтроллер. Другое дело, что возможность использования ПР200 в настоящее время ограничивается ОЛ, в котором недостаточно гибкий набор блоков, который не позволяет создавать достаточно сложные макросы, точнее сложность есть, но в основном структурно-графическая. Поэтому и возникла просьба - дать возможность написания макросов на С, который имеет развитый набор операторов и функций. С учетом того, что и сам ОЛ и системный софт ПР200 наверняка написаны на С или его клонах - проблема не выглядит особенно трудоемкой. В ОВЕНЕ обещали подумать - что в общем уже хорошо.
Да, всё так. Итеративные вычисления, например, в текущем FBD выглядят как сами знаете что.
Интеграция C блоков и ОЛ-ПР это трудоёмкая задача.
Дело в следующем:
1) Само по себе ПР может быть устроено по-разному внутри. Например, ПР200 2017-го года выпуска и ПР2000 2016-го вообще могут иметь внутри разную разводку, разный процессор и т.п.
Для компиляции C кода в пригодный для ПР формат придётся точно знать модель и т.п.
Сейчас эта кухня скрыта внутри ОЛ, а светить её наружу непросто, ведь никто с первого раза не сможет правильно настроить C компилятор, а на второй раз окажется, что льёт программу от старого ПР в новое и беда-печаль.
2) В ПР нет online режима. А в ОЛ есть симуляция. Полагаю, они сделаны вообще независимо друг от друга. Допустим, вы как-то скомпилируете свой блок на C для выполнения в STM32 процессоре внутри ПР. Внимание, вопрос: как этот блок задействовать в симуляции? Компилировать его ещё раз для Intel процессора вашего ноутбука? См. пункт 1. И одного раза-то никто скомпилировать не сможет. Уж два и подавно.
Вспоминаем, что online режима нет, и получается что "при использовании C блоков программу нужно писать вслепую". Кому такое надо? Ни-ко-му.
3) Напомню, что online режима в ОЛ вообще нет. Сам по себе этот факт означает, что для ОВЕН сделать online это трудоёмкая задача.
А скрестить уж C блоки и online режим, значит, архитрудоёмкая.
4) Сам по себе язык С никак не защищает от опечаток, выходов за границы массива и т.п. Эти ошибки встречаются и у зубров, поэтому для массового применения голый C не подходит. Будет слишком много вопросов "у меня ПР зависло" или "у меня ОЛ не открывается", хотя формально дело в кривости C кода. Т.е. нужно как-то на уровне C кода запрещать криворукий код. Это непросто.
5) Возможность программировать ПР на C без ОЛ, скорее, время на ветер. Как-никак, сейчас есть армия ОЛ пользователей, и делать C программирование со своей симуляцией/online не укладывается в понятие "не выглядит особенно трудоемкой"
Вот не знаю хорошо это или плохо. Будут думать над интеграцией С в ПР, зря тратить время на непойми что...
Посмотрим, конечно, что в итоге не получится.
На мой взгляд, совершенно неочевидно как можно скрестить C и ОЛ.
С другой стороны, интеграцию C я никогда и не предлагал. Я предлагал провести интеграцию по p-code (~IL).
Если тов. Филоненко под словами "архитектура ПР совсем другая" имел ввиду то, что ОЛ генерирует бинарный код для STM32, то, конечно, соглашусь, что ситуация безнадёжна.
Еще раз повторяю - ЭТО РЕЛЕ!!!
Здесь пытаются сказать - переделайте ПР200 в ПЛК63. А что входы-выходы соизмеримы, экран по знакоместам одинаков, кнопки.... Вперед, только цена в 2 раза меньше ПЛК. А дальше я например потребую "мозги наружу" (онлайн отладка) и много ПЛК-шных финтюклюшек.
Поймите, это другой тип устройства.
Не пойму вашей логики - "поскольку ЗАЯВЛЕНО что это реле, то онлайн отладка по рангу не положена"? Существует какой-то список возможностей, которые реле должно иметь, а которые ни в коем случае не должно, а если аппаратно такая возможность есть, то её надо задушить? Всего лишь хочется взять по максимуму от архитектуры и да за вдвое меньшую чем у ПЛК63 цену. Возможно ПЛК63 имеет какие-то свои достоинства ЕЩЕ, но я не вижу причин на этом основании ограничивать возможности ПР200. Аппаратно-то все есть уже ведь. И да - онлайн отладка тоже бы не помешала, но я даже и не надеюсь, не до хорошего, пусть хотя бы повысят возможности в программировании.
Никаких, кроме затрат на НИОКР для платформы ПР200. В этом то все и дело.
Ну не просто же так в него не установили РТ КДС?
Я это предлагал еще для ПЛК. Для "особенных потребов" выпустить в продажу тушку с базовым софтом и бибками для считывания температур.... Принципиальной схемой.
Компилятор С потребитель приобретет самостоятельно.
Собственно, классическая процессорная плата с обвязкой.
ОВЕН отказался со ссылкой на нехватку рессурсов для поддержания этого. И я его понимаю и согласен.
и таки онлайн у Сименс есть, хоть LOGO! и реле, хоть с экраном хоть без...
Вы путаете прошивку контроллера с пользовательской программой.
Доступа к прошивке, где содержится конфигурация портов ввода-вывода, регистров, прерываний и всему прочему вы не получите 100%, ибо если дать юзеру такой доступ, то половина контроллеров будут доведены до состояния при котором он не сможет отвечать на запрос компьютера по USB в течении недели после ввода такой фичи.
То, насколько оно сложно реализуется зависит от используемой модели.
В простейшем случае в прошивке написан набор базовых функций, и пользовательская программа находящаяся на отдельной микросхеме флеш-памяти содержит информацию, какие из них и с какими параметрами нужно вызвать и куда положить результат.
В наиболее вероятном случае во внешней памяти установлен какой нибудь из эмбеддед-линукс и дрова на периферию и пользовательская программа представляет собой каноничную программу под линь.
Возможны и более сложные варианты, в общем, гадать думаю будет излишне.
Это по моему некогда не закончиться. Да не нужны здесь СИ и тому подобная дребедень. ЭТО РЕЛЕ. И все ваши внешние редакторы отладчики компиляторы и прочие в ОЛ НЕНУЖНЫ. Если не умеешь читать однолинейные схемы или не можешь отличит ТМ2 от ЛА3 то это не для тебя . Если я не хочу себе забивать голову ПЛК или СПК и разбираться в коде то я не лезу с советами на ветку по кодесис. Вон команда-аппарат на реле и кулачковых контактах начиная с ФАУ -2 и посей день в космос летает без всяких СИ. Потому что надежно.
От себя. Сделает ОВЕН как у немцев возможность сохранить прошивку в PDF формате с возможностью обратной конвертации замечательно. Не сможет ну что будем ездить на объекты или через ROVKIны железки будем делать это удаленно.
Сделает Овен как у француза всплывающие окошко где буду кнопочки (входа ) и лампочки (выхода) для режима симулятор хорошо. Нет сможет будем тыкать мышкой по экрану.
А если Овен в помощь Ревака Юрию посадит еще одного человека который будет за маленькую денежку при четком и нормальном ТЗ делать макросы для пользователя это будет вообще замечательно.
Вот на это ответьте, пожалуйста:
starmos верно сказал.
Сейчас же получается, что "политика партии" состоит в том, чтобы ОЛ было унылым. Хозяин-барин.
Перефразирую: если только и умеешь, что читать однолинейные схемы, то нечего говорить за архитектуру ПР-ОЛ.
Или так: создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться.
Для удобства можете считать и так.
Именно поэтому и появились "языки МЭК" как инструмент для инженера-ТЕХНОЛОГА, а не программиста.
Тем не менее, в той же промэлектронике во всю используют стандартные одноплатные компьютеры (начиная от ушедшего, но до сих пор используемого в нашей нефтянке micro PC == IBM/PC-XT, продолжая PC/104 и т.д.) но они программируются профессиональными программистами.
И что?
Уволился по общей несовместимости с остальным персоналом)
Взорвать ничего не успел, несмотря на то, что чего-то там даже понакрутил на котельной.
Тогда вы должны понимать, что пользовательская программа не зависит от версии разводки платы и тому подобного. И пользователь однозначно будет писать программу не под STM-контроллер, а под конкретную среду исполнения.Если это всё что там есть, тогда конечно полноценный линух не влезет. А так это вполне могут быть остатки от всей памяти, которые даны пользователю на свои нужды)Цитата:
32KiB RAM, 128KiB ROM и embedded linux?
Не верю (tm)
Я не знаю, конечно разные бывают предприятия, но по-моему, весьма маловероятно, чтобы ТЕХНОЛОГ занимался автоматизацией.
Он даст задачу АСУшнику, а АСУШник уже скажет, что нужно для этого купить и сам будет всё программировать.
У нас например, технологи вообще компьютером пользоваться не умеют)
После прочтения комментариев, у меня вот такой вопрос возник еще: откуда берутся такие специалисты, которые схемы читать умеют, а программировать нет настолько, что для них надо "костыли" придумывать, вроде языков МЭК? Слов нет - МЭК это стандарт для ПЛК, потребность в нем возникла в то время, когда ПЛК встречались не часто, а специалистов по релейно-контактным и логическим схемам было полно. Вот чтобы их вовлечь в процесс и потребовались языки МЭК. Но время-то прошло уже и немало, сейчас языки МЭК имеют смысл потому что устоялись в предметной области, но почему это ограничивает развитие? С 1993 года я 15 лет отработал преподавателем в ВУЗе по специальности "Автоматизация технологических процессов и производств". С 90-х годов студентам давались и программирование на C, в том числе для микроконтроллеров и схемы и логические и релейно-контактные и разработка печатных плат, в том числе микроконтроллерных - все это с практическими занятиями. Как раз ПЛК, что характерно, давались ограниченно, т.к. в ВУЗе современных не было, а новые были дороги, поэтому и был упор на разработку устройств на микроконтроллерах. Но в середине 2000-х появились и ПЛК и при этом С остался, такие задачи, как последовательный интерфейс и работа в сетях TCP/IP - в том числе для микроконтроллеров давались, понятие о работе с базами данных - давалось. Я не думаю что ВУЗ или кафедра в этом отношении уникальны - изучение опыта других вузов, их методичек, скорее говорит о том, что там кое где еще и круче все. Уже 8 лет я в ВУЗе не работаю, но знаю что основные элементы программы остались, за новинками и современными тенденция ми - следят. Очень многие мои студенты работают по специальности (больше чем я ожидал даже), хотя реально немногие сталкиваются с созданием своих микроконтроллерных устройств. Так откуда до сих пор берутся "специалисты", которые тут высказываются на тему - "нам С не нужен, мы в программировании не понимаем, а только в схемах"?
ASo
starmos
Сей спор ведётся ещё со времён Фон-Неймана, который шпынял и троллил коллег которые пользовались новомодным языком-ассемблером. "Что это за математики-программисты такие, что машинный код в голове удержать не могут?
Моё мнение - если на написание программы на FBD и её отладку+ПНР уйдёт неделя, а на то-же самое на С - месяц, то выбор очевиден даже при равных зарплатах инженера АСУ и программиста.
Оттуда-же, откуда и электрики не знающие закон Ома. И приводчики, которые на привод смотрят как баран на новые ворота.
Считал себя самым умным при нулевом опыте?
даже сименс беря неплохие деньги за обучение, выдает лишь бумажку прослушал курс лекций, какое преподование в ВУЗах языка? Прямо все досконально изучают, как Вы это определяли, каждым персонально сидели в общяге и репетиторствовали, если всё сводилось к сбору рефератов то у Вас ложно представление о своем курсе. Просто поражает слышать от одного и того же человека, что инженеры ОВЕНа не могут создать идеальный продукт, но в ВУЗах у нас выпускают каждый год гениев, вроде и те и те обычно заканчивают одни и те же институты
Позвольте тоже набросить на вентилятор.
Зачем всякие p-code и написание новых функциональных блоков на С?
Даёшь кроссплатформенный тулчейн, который можно прикрутить к любой из распространенных сред разработки, чтобы ни один программист обделенным не ушел... :cool:
Файл прошивки для ПР200 занимает 156 КиБ
Файл прошивки для ПР110 занимает 32 КиБ
См. выше. Ресурсов негусто и надеяться на богатую среду исполнения вряд ли придётся.
Ещё раз повторю свою мысль: едва ли сейчас прошивки ПР заточены под то, чтобы к ним можно было легко подключать самописные функции на C. Можно ли сделать такую "среду окружения"? Конечно, сделать можно почти что угодно, но сделать это непросто.
Я утверждал, что "добавить в ПР поддержку заливки написанных на C функций непросто". Возражения есть? Есть хотя бы пример "вон, у таких-то контроллеров легко совмещаются FBD и C программирование"?
Ежу понятно, что сделать "окружение" можно, если очень захотеть. Другое дело, что, если изначально такой цели не стояло, то прикрутить такое окружение пост-фактум непросто.
Про преподавание языка С я сказал - были и практические работы. Например, кроме работы преподавателем, я занимался разработкой систем на микроконтроллерах, у меня постоянно были готовые платы, которые я использовал для отладки софта - их же я использовал и для обучения. Группе выдавалось задание, они писали программу, прошивали в плату, я по индикаторам и кнопкам принимал итоги. Т.е. весь цикл разработки софта люди проходили на практике. Сейчас стендов для разработки/отладки еще больше и они в разы доступнее.
Когда я писал про "инженеров ОВЕНа" - я просто выражал удивление. Вполне возможно множества, вызывающие мое удивление, пересекаются - не вижу тут противоречия.
Не позволю!
Я приводил конкретные примеры как это поможет с обычными ОЛ проектами: формулы, итеративные вычисления (==ПИД с автонастройкой), автоматическое тестирование.
И, вполне вероятно, добавление подобного должно быть безболезненным для ОЛ.
Вариация же "добавить C" и более сложна в реализации, и менее надёжна, и непонятно какую задачу решает.
Как это позволит решить что-нибудь из АСУТП области?
Если в Новосибирске, приходи 4-го апреля на https://2017.jbreak.ru/ -- расскажу почему C для ПЛК это боль.