CODESYS форум

Добро пожаловать на официальный форум CODESYS
Deutsche Version English version russian version 
Текущее время: Вс июл 23, 2017 5:35 am

Часовой пояс: UTC+01:00




Начать новую тему  Ответить на тему  [ 5 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Новый встроенный язык скриптов V3
СообщениеДобавлено: Ср май 11, 2011 7:37 am 
Не в сети
Site Admin

Зарегистрирован: Ср июл 20, 2005 2:32 pm
Сообщения: 153
Вместо ограниченного набора команд командных файлов V2.3, в CoDeSys начиная с V3.4 SP3 поддержан встроенный язык скриптов Python.

Подробнее см. тему Маркуса Шабера и примеры на Английской части форума.

Для Российских пользователей CoDeSys возможности и примеры применения скриптов будут разбираться на конференции 24-25 мая. Регистрация участников пока еще открыта.

Часть материала выложим в этой теме позднее.


Вернуться к началу
 Заголовок сообщения: Новый встроенный язык скриптов V3
СообщениеДобавлено: Ср фев 15, 2012 4:05 pm 
Не в сети

Зарегистрирован: Пт фев 03, 2012 10:16 am
Сообщения: 3
Впервые CoDeSys версии 3.4 SP3 предлагает встроенный язык сценариев.
Вместо развития собственного языка, как в пакетном режиме (BatchMode) в CoDeSys V2, CoDeSys третьей версии позволяет использовать широко распространённый язык сценариев Python путём вложения основанного на технологии .NET IronPython.
Благодаря этому, вы можете воспользоваться следующими преимуществами:
• Python – лёгкий в использовании и обучении язык, позволяющий писать простые сценарии построчно.
• Для продвинутых пользователей Python может предложить такие возможности современных языков программирования, как циклы, функции, модули, объекты, классы и функциональные элементы.
• Разработка высококачественного языка программирования – очень сложная задача. Python развивается уже больше 20 лет, что указывает на его определённую зрелость.
• Модуль Python Standard Library предлагает множество полезных функций, таких как доступ к сети и файловой системе, XML обработка и E-Mail рассылка.
• Благодаря широкой распространённости Python вы можете воспользоваться большим количеством готовых модулей и примеров типовых задач, которые легко найти в интернете. Так же к вашим услугам множество различных форумов.

Начинающий изучать новый язык программирования, как правило, сталкивается с различного рода трудностями. Что бы вам было легче сделать в этом изучении свои первые шаги, мы перечислим несколько полезных ссылок и приведём примеры кода с комментариями. Наши образцы могут быть полезны вам при решении многих задач. И, конечно же, вы всегда можете обратиться за помощью на этом форуме.
Как пользователь CoDeSys, имевший опыт работы в МЭК-языках, вы, вероятно, знаете, как работать с переменными, циклами и функциями и как использовать эти знания в языке Python.
Тем, кто намерен углубить свои познания в Python’е и провести собственные эксперименты, необходимо загрузить Python Standard Package, который обеспечит всё необходимое для начала работы и содержит простую среду разработки IDLE.
Полезные ссылки:
http://wiki.python.org/moin/BeginnersGuide - руководство для начинающих.
http://docs.python.org/release/2.6.7/ - документация по используемой сейчас версии языка Python
http://pytools.codeplex.com/ - Python Tools для Visual Studio, добавляющий поддержку Python в Visual Studio 2010
http://eric-ide.python-projects.org/ - широко известная IDE для Python.
http://wiki.python.org/moin/PythonWin - Windows-расширения и прочие IDE.
http://blog.python.org/ - официальный блог Python. Позволит вам всегда быть в курсе последних событий.


Вернуться к началу
 Заголовок сообщения: Новый встроенный язык скриптов V3
СообщениеДобавлено: Ср фев 15, 2012 4:09 pm 
Не в сети

Зарегистрирован: Пт фев 03, 2012 10:16 am
Сообщения: 3
Сейчас Python находится в переходном состоянии. Впервые за 20 лет его развития разработчики решили отказаться от некоторых функций. Таким образом, это первое (и, в обозримом будущем, единственное) обновление языка, которое является не полностью обратно совместимым.
Так как выход 3-й версия .NET варианта IronPhyton ожидается в конце этого года, сейчас мы встроили текущий релиз версии 2.6.7. Но мы планируем перейти на новую версию, как только она станет доступной, если это будет возможно. Пока могут возникать проблемы в несовместимости некоторых сценариев.
У нас пока ещё нет чёткой стратегии перехода, но, в любом случае, мы постараемся сделать его плавным. К счастью, существует конвертер, автоматически переводящий скрипты Python’а на новый синтаксис, и ожидается, что мы сможем встроить в CoDeSys обе версии языка параллельно - по крайней мере, на переходный период.
Основные изменения связаны с устаревшими функциями (например, “классы старого стиля”) и устаревшие модули стандартной библиотеки. В любом случае, начинающим программистам не стоит пользоваться ими, что бы не было в дальнейшем проблем с миграцией. Некоторые другие вещи, как, например, перевод типов строк, не влияет на используемую нами реализацию IronPython.
Но есть некоторые изменения, влияющие на написание новых сценариев.
Print может быть как выражением, так и функцией
Код вида:
Код:
print ‘hello’

должен быть преобразован к виду:
Код:
print('hello')

Новый синтаксис обеспечивает ряд преимуществ по сравнению со старым и может быть активирован в текущем Python 2.6:
Код:
from __future__ import print_function

- будет принят только новый синтаксис. Желательно активировать эту функцию по умолчанию для новых сценариев.
Оператор деления по умолчанию возвращает результат с плавающей точкой.
Деление двух целых чисел оператором “/” возвращает округлённое целое, “1/2" вернёт “0”. В Python 3 будет возвращён результат с плавающей точкой, поэтому “1/2” вернёт 0.5. В обеих версия Python доступен оператор “//”, который ведёт себя как старый оператор “/”. Используя выражение
Код:
from __future__ import division

будет активировано новое поведение оператора “/”.
Некоторые функции в стандартной библиотеке теперь возвращают значение итератора вместо списка.
Если вы просто перебираете значения функций в цикле, то не требуется никаких изменений. Но если вам понадобится список этих значений, вам нужно будет соответственно упаковать их в список. Это можно сделать с помощью конструктора, вместо:
Код:
foo = map(...)

написать
Код:
foo = list(map(...))

Это работает в обеих версиях Python.
Более подробное описание можно найти здесь:
http://wiki.python.org/moin/Python2orPython3
http://docs.python.org/release/3.1.2/whatsnew/3.0.html


Вернуться к началу
 Заголовок сообщения: Новый встроенный язык скриптов V3
СообщениеДобавлено: Ср фев 15, 2012 4:18 pm 
Не в сети

Зарегистрирован: Пт фев 03, 2012 10:16 am
Сообщения: 3
Из-за нехватки времени документация по командам скриптов будет доступна несколько позднее. В папке установки CoDeSys в подпапке Online Help находится файл ScriptEngine.chm, в который задокументированы все CoDeSys-особенности Python. Этот файл создаётся непосредственно из C#-исходников, но его нет в онлайн справке и он в большей степени похож на нашу внутреннюю организацию [1], чем на простую структуру, виденную Python-программистами.
Пространство имён _3S.CoDeSys.ScriptEngine.BasicFunctionality содержит объекты, которые мы предоставляем для сценариев. Другие пространства имен содержат только некоторые перечисления значений, которые импортируются из других областей CoDeSys.
Для сценариев предназначены следующие точки входа:
system: Базовые возможности для интеграции с CoDeSys. Этот объект предоставляет все функции, описанные в разделе "ISystem Interface", например, выход из CoDeSys, доступ к окну сообщений, или запрос через ui_present, запущен ли сейчас CoDeSys в режиме –noUI
projects: Основные возможности управления проектами. Этот объект предоставляет все функции, описанные в разделе "IScriptProjects Interface", например, загрузка проектов и их архивирование. Кроме того, это точка входа в конкретные проекты.
online: Основные возможности для онлайн доступа к ПЛК. С помощью метода "create_online_application" можно получить в Интернете объект для конкретного приложения. Они описаны в разделе "IScriptOnlineApplication" и могут быть использованы для входа в ПЛК, запуска приложений и чтения значений переменных.
Project:
Функции проектов описаны в "IScriptProject Interface" и "IScriptProjectDeviceExtension Interface". Проекты – корни дерева проектов, которое содержит устройства и POU.
Объекты описаны в "IScriptObject Interface". Кроме того, все проекты имеют по два свойства-маркера: "is_libman" и "is_device". Для менеджера библиотек первое возвращает «True» как показатель предоставления объектами всех команд "IScriptLibManObject". Аналогично, объекты устройств возвращают “True” от "is_device", показывая, что они поддерживают методы "IScriptDeviceObject".
Примеры использования свойств-маркеров можно найти в теме “Примеры и Рецепты”.
Надеемся, что это всё поможет вам войти в мир скриптов.
Наилучшей стратегией будет чтение примеров здесь, на форуме, и сравнение их с документацией, а в случае каких-либо проблем всегда можно обратиться сюда, на форум.
Примечания:
[1] CoDeSys – модульный продукт с порядка 200 плагинов, которые могут быть расширены и заменены нашими OEM-клиентами в соответствии с нашей «Платформой Автоматизации». По этой причине, наша реализация сценариев также модульна. Главный плагин "ScriptEngine" предоставляет инфраструктуру (интерпретатор сценариев, команды, параметры командной строки). Еще пять плагинов, так называемые ScriptDrivers, обеспечивают команды [2] для скриптов, разделенные на группы "System", "Project", "Online", "LibraryManager" и "Device". Такие драйверы скриптов могут обеспечить объекты и типы (классы, интерфейсы, перечисления) и даже расширить объекты других драйверов скриптов своей функциональностью. Эта модульная архитектура гарантирует, что наш ScriptDriver не использует какие-либо внутренние ярлыки, так что наши производители могут интегрировать свои плагины в ScriptEngine без проблем.
[2] "Команда" - немного упрощённое название этой функции. Интерфейс для скриптов объектно-ориентированный (как и питон - объектно-ориентированный язык). По сравнению со старым пакетным режимом V2 он значительно более мощный и гибкий.


Вернуться к началу
СообщениеДобавлено: Чт дек 05, 2013 10:44 am 
Не в сети

Зарегистрирован: Ср окт 16, 2013 4:47 am
Сообщения: 4
Здравствуйте! Возникла идея создавать скомпилированные библиотеки при помощи python и заполнять их необходимыми типами данных. Реализуемо ли это средствами ScriptEngine? Если да, то подскажите с чего начать? Или, если есть, приведите пример.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 5 сообщений ] 

Часовой пояс: UTC+01:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB