Это вы зря, пропустили пару страниц))
А так же.
1) В языке ST будут поддержаны другие команды и функции, сейчас не поддержанные, например TIME( ).
2) Будут введены типы данных BYTE, INT, WORD, DINT, DWORD и TIME. И преобразование одного в другое.
Вид для печати
Это вы зря, пропустили пару страниц))
А так же.
1) В языке ST будут поддержаны другие команды и функции, сейчас не поддержанные, например TIME( ).
2) Будут введены типы данных BYTE, INT, WORD, DINT, DWORD и TIME. И преобразование одного в другое.
Структуры, без сомнения, будут.
Так и до поддержки Win10 дойдем :)
К вопросу о полезности текстового языка. Переделываю проект. В нем ПР200, панель и облако. Программа на ПР200 - жуть, черт ногу сломит. И при этом не все хотелки смогли в OL реализовать. Я предложил часть функционала перенести в панель и сделать в макросах на C. В макросах на C все получается просто и красиво. После редактирования проекта в OL от схемы остаются рожки да ножки. ;) Текстовый язык - это сила.
Может тогда логичней, если сложный алгоритм работы, сразу применить полноценный ПЛК, не надо было бы изощряться и перекладывать нагрузку на панель!
Здесь вопрос разумности конкретного решения, ни о чём другом это не говорит!
Можно найти гораздо больше обратных примеров замены ПР релейной логики, когда на ОЛ можно быстрей и лучше сделать!
Надо использовать преимущества тех или иных средств(а не их недостатки), по доступности программирования ОЛ нет равных в смысле, по сравнению с текстовыми языками!
А конкретный пример, как я понимаю, изначально не совсем продуманный, ни о чём не говорит, тем более о языках программирования!
Сахар, согласен. Вкусный и удобный. Не надо искать отдельно структуру и отдельно ее обработку. Даже если они имеют одинаковые номера.
Но сахар немного горчит, когда в обработку нужно передать 2-5 структур, которые используются другими 2-5 обработками.
Тут ФБ не только сахар.
Я в принципе не могу выступать за то, в чём абсолютно не разбираюсь, если Вы в этом разбираетесь и считаете нужным, то сами и пропагандируйте, меня увольте от вашей затеи! Не могут пчёлы выступать против мёда или хищники за вегетарианство! Короче, это естественно и предсказуемо, почему Вы от меня ждёте противоестественных действий?
Мне сразу всплывает, что не нужна мышь для редактирования программы. Что нет "проводочков", которые для понимания, нужно растащить по полю, что бы они не пересекались. Что можно легко выделить и вставить код туда куда хочется, не заботясь о том, как поведут себя соединения. На схему несложной логики, без автомата состояния - норм.
Препроцессор C - это отдельный язык. Но повсеместно использовать макросы - я бы не стал.
+1000!
Я тут для микроконтроллера код писал - модбас там, то, да се. Код с одну страницу, все наметанным взглядом просматривается, правится в мгновение ока.
Потом решил эту программу перенести на ПР200. Первое что обломало - отсутствие групповых запросов... Я на микроконтроллере не задумываясь просил слейва выдать мне сколько нужно регистров и получал все, что нужно. ПР200 - увы. Ну а хитросплетение проводов по экрану мало кого оставит равнодушным при желании переделать программу :)
Тут всего лишь культуру и порядок надо соблюдать. Комменты и оформление.
Даже свой код спустя короткое время можно не понять, если писать "на отвяжись".
В самом начале меня тоже занимал вопрос - как читать эту паутину (я в курсе, что вы не новичок :) ).
Если вы еще не дошли самостоятельно, подсказываю - комменты и оформление:
Вложение 58263
Читается отлично, особенно если переменные не называть X1, Y3
Вы поймите, в основном(чаще всего) возможности ПР зависят от возможностей(способностей) конкретного человека, есть конечно и объективные ограничения, типа невозможности работы на нестандартном протоколе по сетевому интерфейсу(и др.), но и здесь не всё однозначно, в смысле, что большинство и имея ПЛК не смогут это организовать!
Предложите что либо, что Вы считаете нельзя сделать на ПР по субъективным причинам(мне пока ничего в голову не приходит, в смысле логики, что я на ПР не смог бы сделать), только по-русски, в смысле, чтобы понятно было, без всяких там словечек, типа массивы или конечный автомат, надеюсь, понятно?!
K123, да, конечно, сейчас тоже оформляю так, чтобы не паутиной все перечеркивать :) Спорить бесмыссленно - больше дело привычки сказывается. И, поскольку ранее я писал на языках высокого уровня, к иным мозг еще не так адаптировался. Поэтому есть прекрасная возможность совмещать. Некоторые вещи мне, например, удобнее на FDB изобразить, другие гораздо быстрее и проще на ST описать. Овен однозначно молодцы!
Сергей0308, по объктивным причинам нужно решать по применяемости, а не субъективным :) И речь, конечно, не про логику, которую на ПР можно с успехом реализовать, а про что-либо нестандартное - реализация каких то интерфейсов, обработка скоростных сигналов, где ПР200 не успевает. Наверное, есть еще много того, что ПР не сможет (вспомнил - с модемом связаться еще), но дело в том, что я сам практически все появляющиеся задачи решаю с помощью ПР, хватает. Многие же закладывают ПЛК от непонимания возможностей ПР.
это будет немало квадратиков, но не меньше и текста. учитывая, что сейчас ст это только функция.
Бессмысленный спор. Полно причин работать с ПЛК, а не с ПР, несколько сотен переменных передавать надо, нет группового опроса, точность измерений, нужна структурная разветвлённая логика, скорость выполнения программ, быстрые входы-выходы, нет типов переменных стрингов, времени и других, не входит в реестр средств измерений. Лично мне достаточно 3-4 пунктов из перечисленного. Это далеко не все причины, которые можно назвать. Про структуры и файлы, массивы и остальное, даже не пишу.
И никто не будет ломать голову как вы, пытаясь передавать через 64 сетевые 192*8 регистров.
Я сам начинал с квадратиков, а потом изучив ST понял, какой иногда это маразм.
В некоторых случаях 10 листов квадратиков, можно превратить в 10 строк.
Это несложная задача для ОЛ, я бы сказал даже простая, возможно компактной и не получится, я этого и не обещал, короче, никаких проблем не вижу в плане реализации! По времени, думаю, пара часов уйдёт на создание. Для отсчёта(задания) шагов создаём счётчик с возможностью перехода на любой шаг, можно универсальный счётчик использовать с минимальным обвесом! Это наверно относительно самая сложная часть проекта, остальное попроще будет. Далее расписываем(реализуем) логику работы в каждом шаге и т. д., надеюсь суть понятна и я обычно логику выполняю в целочисленном виде, там схема проще получается, если логика достаточно сложная(мудрёная), типа какую Вам надо!
Собственно это и есть конечный автомат. Сложность в том что он получается громоздким и, если применять минимизации логических схем перехода состяний - интуитивно непонятным. И неудобство реализации записи из нескольких мест в один счетчик
Вот по сути то жесамое, но на основе флагов состояний.
http://window.edu.ru/resource/659/76...тодичка3_1.pdf
А вот подобное, но на текстовом языке, что проще вот вопрос...
http://is.ifmo.ru/download/1minute.pdf
Вот пример того что на ST в пару десятков строк поместится, но в FBD это целый лист
У низшей линейки Delta нет, как и в случае с программируемыми реле.
Нужно делать мультиплексор с количеством входов по числу состояний. Делал такое. Неудобно. Неудобство именно в том что запись в переменную возможен только в одном месте. В обычных языках есть ветвление алгоритма, и никто тебе не мешает писать в одну переменную в разных ветвях, да и вообще в разных шагах линейного алгоритма.
Если вы говорите не про Owen, а про Delta, то:
1. Вы не на том форуме.
2. Detla очень похожа на Mitsubishi, поищите в документации слово "STL", или прочитайте тут про STL и найдите похожее.
Сделал первую функцию на ST. Получилось легко и просто. Даже не ожидал такого. Настоящий подарок на Новый год всем почитателям текстовых языков программирования.
Огромный респект хорошим парням из фирмы ОВЕН. ;)
А внутри то что ? На FBD ни как ?
В макросы бы еще эти функции совать чтобы компактнее получилось на поле боя.
Кто-нибудь пробовал оператор CASE ? Что-то он у меня не работает как надо. Не понятно как можно использовать оператор CASE если в функции не сохраняются значения переменных.
Уже автомат состояний пробовал сделать, как сделать, описал почти в подробностях CORSAR1500 , в этой теме на 7 странице. Со скринами и частью кода)
Главное на выходе состояние вывести, для состояния, сделать задержку на цикл, и подать на вход, а таймеры все снаружи поставить. И главное ведь работает) хоть и делал просто для проверки.
Ждем нормальные толковые учебники оп st.
Можно с Паскаля начать. У нас в институте до сих пор об нем не забыли, наверное.