Я о количестве текста в секции объявлений. немного со зла, конечно. Но очень неудобно.
Вид для печати
Ок, с TON'ом погорячился, там действительно побольше двух строк.
Но вот R_TRIG / F_TRIG уж точно 2 строки: https://bitbucket.org/mjsousa/matiec...e-view-default
И я не агитирую каждые 2 блока в новый ФБ выделять.
Я просто к тому, что иногда имеет смысл даже 2 строки выделить в ФБ, чтобы упростить понимание.
имеет, только если это законченный блок, который выполняет определенную функциональность. Как минимум должна быть необходимость воспользоваться сохраненным значением с предыдущей итерации. Сам TON по себе конечно ФБ, но если уж его выносить отдельно, то я бы обрабатывал его работу через функцию, а не ФБ
"Импорт библиотек": http://recordit.co/kSuJuPbMSA
Указываем lib файл, и оно загружает блоки оттуда.
Для начала нужно со 110-ым разобраться.
А для Simatic подобное актуально?
Вот такая штука недавно приехала:
Вложение 22078
О, это хороший вопрос. Я, конечно, ожидал такого, но пока это первый вопрос "на попробовать".
Да, постараюсь сделать версию.
Буду пробовать такую комбинацию: MeanWell ELG-150-24B + диодную ленту на основе 5630 Ultra.
На кухне 5x5м 3 двухметровых фрагмента (на высоте 2.5м, между лентами -- 1м) такой ленты показали хорошую яркость.
Планирую быстрый выход соединять с ELG и ШИМ сигналом диммировать. Главное, чтобы не жужжало.
Вот она, рыба моей мечты: https://github.com/vlsi/ide61131/releases/tag/v1.0.0
Инструкция по употреблению:
1) Качаем https://github.com/vlsi/ide61131/rel...APSHOT-win.zip
2) Качаем (это будет тестовый проект) https://github.com/vlsi/ide61131/archive/v1.0.0.zip
3) Распаковываем 1 и 2
4) Запускаем mps.bat. Выбираем "open project", указываем #2
5) View -> Tool Windows -> Project (Alt+1)
6) Разворачиваем com.github.vlsi.iec61131.st.sandbox и там видим PLC_PRG
7) profit!
Чтобы посмотреть "во что генерируется код", нужно нажать правой кнопкой и выбрать "preview generated text".
Чтобы сгенерировать codesys проект, нужно в sandboxRunConfiguration поправить пути, нажать правой кнопкой и выбрать "run .."
Если на шаге #4 не получилось, то качаем и устанавливаем JRE 8 (или JDK 8): http://www.oracle.com/technetwork/ja...ads/index.html
Если всё равно не получилось -- пишем сюда.
Вот тут помучился)) через буфер обмена не получилось вставить путь, пришлось установить кодесис в более короткий.
Вложение 22562
а тут должно быть красным?
Вложение 22564
Добавил
указатели: http://recordit.co/U6TTCkqOI4
массивы, структуры, перечисления: http://recordit.co/ijjFqJuiZv
CASE
Тут: https://github.com/vlsi/ide61131/releases/tag/v1.1.0
Активнее, товарищи!
Особенно, в части "как должно выглядеть PLC configuration вашей мечты"
Вот, сделал CFC: http://recordit.co/2Itr7umnlo
Картинка для привлечения внимания: Вложение 22637
в чем преимущество? Теперь еще кроме(заместо) КДС нужно будет рисовать в стороннем проукте нечто, которое компильнется и это можно будет посмотреть в КДС, если надо подправить и залить в плк, избавление от рутины в чем?
Лучше бы свои силы направили на написание подобие jdbc для плк, вот это была бы реальная помощь многим форумчанам
Это изыскания на тему развитого редактора. Пока не стоит рассматривать как боевой продукт и сравнивать с кодесисом по части кодогенерации и отладки — можно необоснованно разочароваться. Избавление от рутины в том, что эта штука потенциально может очень много подсказывать и проверять во время написания кода. Редактор такого типа позволяет вводить только синтаксически корректные программы и на ходу проверяет типизацию.
Вечером гляну чего там нового.
Кдс 2.3 умирает потихоньку, как бы это не зря всё было.
1) В том, что многие ошибки выявляются до компиляции/заливки в ПЛК. И не просто выявляются, а появляются подсказки "как исправлять".
2) В том, что можно будет делать тесты. Например: задаём диаграмму значений на входах и проверяем значения на выходах. Понятно, что для каких-то случаев нужно подключать "игровой движок". Но для случаев "куча кнопок" должно на ура пойти.
3) В том, что не опечатаешься в имени переменной. Вон в том же КДС: значения ENUM глобальны. По-моему, это жесть. Логичнее Colors.RED и States.ENABLED
4) В том, что можно в сам язык встроить работу с сетью: "классическая проблема" упаковки/распаковки переменных в буфер. С точки зрения языка может быть просто "буфер", который сам собой правильно укладывает значения в памяти, показывает как улеглось и т.п.
5) В том, что привязки языка к КДС как таковой нет. Взять, например, OwenLogic. Там можно перецепить связь на другой вход/выход? Можно заменить TON на TOF? Правильно, нельзя. А у меня можно :)
Или, может, git в OL поддерживается?
Можно было бы взять и скомпилировать CFC в программу для ПР200. Profit!
Но пока wal79 молчит, и неясно секретен ли протокол заливки программ в ПР или нет.
Это ещё как?
JDBC это же интерфейс для работы с базами данных.
"select di12 from plc110 where do15=1 and do16=0"? Смысл?
Есть же libmodbus.
Respect, vladimirisitnikov. Не пропадет твой скорбный труд.
А скептикам можно напомнить, что "Всякий труд, выполняемый честно, полезен, а, следовательно, достоин уважения".
а кто будет решать, что есть ощибка? IF foo=TRUE THEN считается ли такой код ошибкой, в КДС можно обойтись и более короткой схемой, а в вейнтеке от версии к версии бывает что нетЦитата:
В том, что многие ошибки выявляются до компиляции/заливки в ПЛК. И не просто выявляются, а появляются подсказки "как исправлять"
это есть и в самой КДСЦитата:
В том, что можно будет делать тесты. Например: задаём диаграмму значений на входах и проверяем значения на выходах. Понятно, что для каких-то случаев нужно подключать "игровой движок". Но для случаев "куча кнопок" должно на ура пойти
попробуйте в КДС написать "левое" имя переменной во время редактирования, так что тоже не аргумент. По поводу чего то там глобального, если Вам попался код не отвечающий Вашим требованиям, это не означает что это проблема среды, писать код логично ни кто не запрещаетЦитата:
В том, что не опечатаешься в имени переменной. Вон в том же КДС: значения ENUM глобальны. По-моему, это жесть. Логичнее Colors.RED и States.ENABLED
подобрали в КДС бибку, которая содержит функции работы с сетью и останется только "ложить" или "забирать" просто буфферЦитата:
В том, что можно в сам язык встроить работу с сетью: "классическая проблема" упаковки/распаковки переменных в буфер. С точки зрения языка может быть просто "буфер", который сам собой правильно укладывает значения в памяти, показывает как улеглось и т.п.
браться за работу то с плк, то с ПР это означает работать с мелкими, в основном разовыми проектами. По поводу смены связей, замены блоков, а где заявленные в начале поста инструменты подсказки, что не правильно пишешь, не туда связь ставишь, не тот блок применяешь?Цитата:
В том, что привязки языка к КДС как таковой нет. Взять, например, OwenLogic. Там можно перецепить связь на другой вход/выход? Можно заменить TON на TOF? Правильно, нельзя. А у меня можно
Или, может, git в OL поддерживается?
Чёт не могу запустить нормально.
Вложение 22662
А возможно ли встроить вон тот CFC-редактор с картинки в чисто текстовую среду на той же платформе (IntelliJ), если, скажем, текст уже будет распарсен?
Перемудрил я с версиями. Перевыложил https://github.com/vlsi/ide61131/releases/tag/v1.2.0, теперь всё по уму будет.
Можно.
1) Можно как MPS-based плагин. Я, например, могу рядом со standalone версией выложить IDEA plugin (со всем этим ST/CFC ну или что там нужно). Тут плюс в том, что MPS прозрачно хранит модель, поддерживает обновление и т.п.
2) Либо в отдельном IDEA-плагине сделать CFC редактор. Mbeddr опирается на http://www.adaptagrams.org, https://github.com/jgraph/jgraphx, и de.cau.cs.kieler.kiml.libavoid.jar. Но тогда придётся модель (хранение данных этой самой диаграммы) как-то вручную делать.
Сын ошибок трудных и будет решать что есть ошибка, и как сделать, чтобы "в вейнтеке" работало.
В конце концов, target'ом может и определяться. Выбираете target==ОВЕН -- показывает одно. Выбираете Weintek - другое.
Точно так же как "выбираете ПР100 -- оно ругается на REAL/LREAL, выбираете ПР200 -- перестаёт ругаться".
Вот пример: http://www.owen.ru/forum/showthread....l=1#post197149
КДС без проблем запустило "левый код": автор пытался структуру из 8-и BOOL'ов записать в один BOOL. И удивлялся: "А чойта не работает?"
По-моему, то, что КДС разрешает смешивать разные типы указателей это жесть просто. Если указатель на структуру, то и читать оттуда нужно структуру.
Если вместо структуры хочешь прочитать REAL, то будь бобр, ставь приведение типа, чтобы сразу всем было понятно: "тут потенциальная жесть".
Обсуждали же уже: http://www.owen.ru/forum/showthread.php?t=22898
Покажите, пожалуйста, как в КДС сделать тест.
Вот для примера: http://www.owen.ru/forum/showthread....l=1#post192580
Есть форма входного сигнала, есть желаемое значение на выходе.
Как сделать так, чтобы КДС проверил программу, и сказал, что "на шаге 4 значение выхода отличается от ожидаемого"?
Вот, если бы КДС умел тестировать, то можно было бы просто взять программу (например, этот ответ: http://www.owen.ru/forum/showthread....l=1#post192422), и посмотреть выдаёт ли она нужный ответ или нет.
Усложняем тестовый сигнал и легко проверяем, что программа ведёт себя так, как нужно.
Вы про то, что КДС показывает окно "определения переменной"?
Возможно, это на любителя, но я крайне не люблю лишних всплывающих окон. Логика простая: если я опечатался, то мне проще стереть пару букв. Всплывающее окно перехватывает внимание и отвлекает.
Аналогичный пример: MS Word же не показывает всплывающее окно "орфографии" когда находит опечатку? Так же и тут.
Если вам проще со всплывающим окном, не вопрос. Я вас не собираюсь переубеждать. Я просто говорю, что есть альтернативная точка зрения на всплывающие окна, и там нужно решение проблемы "несуществующих переменных".
Вы правы, никто не запрещает.
И, разумеется, все должны страдать, в уме вычисляя адреса.
Вот пара примеров: http://www.owen.ru/forum/showthread....l=1#post196473, http://www.owen.ru/forum/showthread....l=1#post194304
браться за работу то с плк, то с ПР это означает работать с мелкими, в основном разовыми проектами. По поводу смены связей, замены блоков, а где заявленные в начале поста инструменты подсказки, что не правильно пишешь, не туда связь ставишь, не тот блок применяешь?[/QUOTE]
И? Развивайте мысль. Пока не пойму о чём вы.
Вы правы, подсказок "не ту связь/не ту модель ПЛК ставишь" я не делал. Но это же дело нехитрое. Прямо посмотреть хотите как будет?
Основное что хотел проверить, так это то, что диаграммы/связи можно рисовать без матюгов. И оказалось, что "из коробки" оно рисует не хуже, чем библиотека, на которой основан OwenLogic. Связи можно перецеплять, расположение связей выглядит нормально, без проблем делается "подкрашивание красным неверных связей" и далее по списку.
На всю доработку CFC, включая создание видео (а это, знаете ли тоже время), я потратил меньше часа. Если ожидаете, что за это время появится полноценный CFC редактор с подкрашиванием ошибок, то, что ж, я очень рад. Без шуток. Моя цель как раз и есть в том, чтобы выстраивать ожидания от инструмента. Да, разумеется всё должно подкрашиваться, предугадывать какие блоки нужно, показывать "какую модель ПР лучше выбрать, чтобы был запас по выходам и т.п."
Уже как-то говорил, но лень искать... Короче, проблема в том, что в кодесисе вообще нет операции взятия указателя. Вместо неё реализовано неявное приведение чисел к указателю любого типа. И нетипизированных указателей для передачи в аргументы функций тоже нет. Вместо этого тоже сделано неявное приведение, но уже наоборот из указателей в число. В итоге имеем симметричное неявное приведение, которое позволяет мешать указатели разных типов. Скорее баг, чем фича.Цитата:
По-моему, то, что КДС разрешает смешивать разные типы указателей это жесть просто.
что тут тестировать, обычный антидребезг с временем в 10 секунд, код простейший, хоть заусложняйтесь с входным сигналом, результат будет всегда правильныйЦитата:
Покажите, пожалуйста, как в КДС сделать тест.
Вот для примера: http://www.owen.ru/forum/showthread....l=1#post192580
Есть форма входного сигнала, есть желаемое значение на выходе.
Как сделать так, чтобы КДС проверил программу, и сказал, что "на шаге 4 значение выхода отличается от ожидаемого"?
Вот, если бы КДС умел тестировать, то можно было бы просто взять программу (например, этот ответ: http://www.owen.ru/forum/showthread....l=1#post192422), и посмотреть выдаёт ли она нужный ответ или нет.
Усложняем тестовый сигнал и легко проверяем, что программа ведёт себя так, как нужно.
окно появиться если курсор переместится с проблемной строки, так что опечатались можете просто отредактировать без раздражающих оконЦитата:
Возможно, это на любителя, но я крайне не люблю лишних всплывающих окон. Логика простая: если я опечатался, то мне проще стереть пару букв. Всплывающее окно перехватывает внимание и отвлекает
почему разумеется, я задал начальный адрес и количество регистров, в буффере получил это количество, так же и с записью в слейв, в чем я должен страдать?Цитата:
И, разумеется, все должны страдать, в уме вычисляя адреса
А не пытались это просто отключить ?
Нравится слово 'все'. По себе что-ли судите ? )) Если кто в уме что-то считает - это его проблемы.Цитата:
И, разумеется, все должны страдать, в уме вычисляя адреса.
По-моему то, что кухонные ножи в свободной продаже - это жесть. Нужно обязательно ввести обязательное предъявление справки о наличии места для хранения и устройств гарантирующих отсутствие порезов пальцев.Цитата:
По-моему, то, что КДС разрешает смешивать разные типы указателей это жесть просто
Разумеется, я отключил.
Наоборот. Я привёл конкретные примеры: http://www.owen.ru/forum/showthread....l=1#post196473 и http://www.owen.ru/forum/showthread....l=1#post194304
Наверняка есть и другие -- просто эти были на моей памяти, а я на форуме совсем недавно.
Егор зря что-ли по-вашему утилиту рассчёта адресов делал?
Моё мнение -- рассчётами и проверкой должны заниматься среда программирования и компилятор. Человек лишь должен попивать то, что любит попивать, и высказывать своё "фи".
Давайте ближе к делу?
Вот лично вы https://github.com/vlsi/ide61131/rel...-1.2.0-win.zip скачали?
Посмотрели?
Ну вот и закрыли вопрос.
Это - "все" ?
Не зря - раз используют. Я мастера из конфигурации не юзаю.
Меня интересует - почему Вы в очередной раз кому-то что-то приписываете ? - ".. по-вашему ..."
И я всегда за попивать и всегда был против дурацких адресов когда есть имена, против регистров - когда есть поле структуры или массива и т.д. Но меня абсолютно не парит когда кто-то что-то делает не так я.
Не вижу смысла пока это промежуточное звено. Вот будет прямая компиляция в железо - тогда да.
В том-то и дело, что мне нужна сигнализация о несуществующих переменных.
В КДС её нет. Мне она нужна. Когда мне же capzap говорит, что "Владимир один такой, и никому она не нужна", так это странно.
Ещё раз: я тут не вижу смысла начинать/продолжать дискуссию.
А почему вы отвечаете вопросом на вопрос? == не понял что имелось ввиду под этим вопросом.
Ну уж, простите, читать мысли не умею.
Вот этоя понял как "Вы Владимир, по себе судите о необходимости нормального управления адресами. Реально же никому оно не впилось" и всё такое.
Ок, это уже ценный мех на пути к конфигуратору мечты.
1) Компиляция в железо -- это вопрос к ОВЕНу. Мне они пока не отвечают. Может, нужно как-то коллективную позицию проявить, и-таки узнать их мнение о "секретности" формата прошивок/протоколов их заливки.
2) А в чём проблема "промежуточного звена"?
Вы код напрямую из мозга в ПЛК заливаете в обход КДС?
У вас, может, КДС прямо на голом железе запущено, без Windows?
Или программы на вашем компьютере работают напрямую с микросхемами памяти, минуя процессор, TLB и всю эту муть?
Или информацией с железом вы обмениваетесь на физическом уровне, минуя канальный/сетевой и т.п.?
В общем,
3) На раннем этапе проще корректировать направление движения.Цитата:
Сообщение от wikipedia
Вот взять КДС. Управление адресами там сделано плохо. ХЗ как надо, но в КДС плохо.
И, по-моему, можно сделать лучше.
И это не случай "сделайте мне кухонный нож, чтобы острый был, чтобы резать удобно, и чтобы порезаться невозможно было".
Можно прикинуть, и сделать более лучшую балалайку.
Как раз для этого и полезно пощупать. Как теоретиками быть -- так все горазды. А как рассказать про "конфигуратор мечты" -- так в домик спрятались.
Вот попробую сдвинуть с мёртвой точки: http://recordit.co/ELu7Rm16Hg
Это, конечно, далековато от конфигуратора переменных, но, возможно, на какую-нибудь здравую мысль наведёт.
Ваши потуги не нужны, если это будет в КДС другой разговор, но Вы не разраб КДС-а или хотя бы вариант, как предложил Валенок, доведите свою разработку до загрузки в контроллер
Тот же Егор, Вас первый "съест" когда дело дойдет до соответствия стандарту, Вы в этом не сильны а пытаетесь что то создать и главное других учите, что так будет правильно
ЗЫвот что это, ведь тем кому требуется помощь должны будут сначала вникнуть в логику программирования Вашего продукта, затем всё же изучить основной стандарт языков, чтоб прочитать в КДС что получилось, помощь в правильности синтаксиса улетела в тартарыЦитата:
А не пытались включить то что отключили ?
Несколько тем (хоть тыща) <> "все".
Я не утверждал что работа Егора никому не нужна. Вы мне приписали эти слова.
В слове - "онлайн"Цитата:
А в чём проблема "промежуточного звена"? .. Вы код напрямую из мозга в ПЛК заливаете в обход КДС? ..У вас, может, КДС прямо на голом железе запущено, без Windows? ..Или программы на вашем компьютере работают напрямую с микросхемами памяти, минуя процессор, TLB и всю эту муть?
...
А в чём проблема "промежуточного звена"?
Я ничуть не отговариваю Вас от чего либо. Думаю что макс.эффект будет - если нечто обеспечит онлайн самостоятельно, или хотя бы на первый взгляд самостоятельно.
)) Не слышали как Ходжа вытащил Джафара ?Цитата:
Компиляция в железо -- это вопрос к ОВЕНу. Мне они пока не отвечают.
Как я его вижу :Цитата:
Ок, это уже ценный мех на пути к конфигуратору мечты.
"...Если бы губы Никанора Ивановича да приставить к носу Ивана Кузьмича, да взять сколь-нибудь развязанное, какая у Балтазара Балтазаровича, да, пожалуй, прибавить к этому еще дородности Ивана Павловича — я бы тогда тотчас же решилась. А теперь — поди подумай!" (C), Николай Васильевич