PDA

Просмотр полной версии : Проект CoDeSys в виде текстовых файлов?



Herzog
30.05.2011, 11:30
Возможно ли сохранять проект не единственным монолитным файлом, а в виде комплекта текстовых файлов?

Зачем это?
Есть очень удобная программа контроля версий Tortoise SVN, которой я давно и активно пользуюсь и всем рекомендую. Даже не представляю, как я жил без нее раньше... На мой взгляд это одна из самых необходимых программ для программиста.
Однако максимум ее преимуществ достигается на текстовых файлах. Очень удобно в ней смотреть, чем текст одной версии отличается от другой.
Можно ее использовать, конечно, и для контроля версий бинарных файлов, таких как проект CoDeSys. Но эффективность уже не та...

Как я понимаю, в CodeSys есть встроенная программа контроля версий (не разбирался). Но очень не хочется в одной и той же задаче контроля версий использовать для одного приложения одну программу, для всех остальных - другую.

Так можно ли сохранять проект в виде набора исходных тестов?

С Уважением,
Herzog

swerder
30.05.2011, 12:06
а зачем такие пляски если в кдс все это уже есть? не хочется разбираться в кодесисовском контроле версий - сохраняете проект с новым именем после каких-либо переделок, а потом Проект->Сравнить

Николаев Андрей
30.05.2011, 12:54
Если есть необходимость контроля версий - в CoDeSys есть платное приложение - ENI сервер

Игорь Петров
30.05.2011, 14:26
CoDeSys V2.3 Проект – Экспорт. Получим текстовые файлы. Однако, визуализация, взаимосвязи, координаты графических элементов и пр. будут потеряны. Обратно будет тяжело.

CoDeSys V3.4 поддержан новый формат PLCopen XML.

ИМХО контроль версий без поддержки графики имеет мало смысла. ENI сервер это решает хорошо.

Herzog
30.05.2011, 14:27
а зачем такие пляски если в кдс все это уже есть?Пляски как раз в CoDeSys.
Причем как я понимаю, именно из-за платности собственной системы контроля версий.

Зачем я хочу пользоваться обычной системой контроля версий, вроде Tortoise SVN?
Во-первых, она появилась гораздо раньше, давно отлажена и у нее нет ограничений на применимость в конкретных приложениях.

ВО-вторых переходить на встроенную неудобно.
В CodeSys предлагают пользоваться встроенной, что ненормально. Представьте себе, что Вы работаете на компи своей любимой мышкой, а при входе в MS Word Вам принудительно предлагают пользоваться отдельной, специализировнной мелкомягкой мышкой - при том, что дополнительных преимуществ по сравнению с обычной она не имеет. Зато еще и платная.
Абсурд? но ведь CoDeSys именно так и поступает.

В-третьих, Tortoise SVN знают во всем мире, на ней можно писать совместные проекты, не задаваясь вопросом, где далекий напарник ее достанет - проблем скачать нет. Пользоваться же встроенной ENI можно только в рамках этого проекта. Мне, например, нужно писать код для ПЛК, и программу сервера, скачивающего из моего ПЛК данные на компи, пишет совсем другой человек, системный программист, не имеющий представления о микроконтроллерах, для него мой контроллер - коробочка на конце кабеля TCP - его задача набить из моих измерений базу данных. Как я ему передам историю контроля моих версий, если ему некуда воткнуть мою ENI?


P.S. ENI у меня стоит, но из соображений совместимости я не могу ее использовать.

С уважением,
Herzog

Herzog
30.05.2011, 14:38
CoDeSys V2.3 Проект – Экспорт. Получим текстовые файлы..Можно...
Но как же гемморойно.

К тому же потеряна для истории связь задач, не экспортировались в текст мои подпрограммы записи\восстановления оперативных данных в retain-памяти при выключении\подаче сетевого питания...

Это не вариант, Игорь

C уважением,
Herzog

swerder
30.05.2011, 15:09
В CodeSys предлагают пользоваться встроенной, что ненормально. Представьте себе, что Вы работаете на компи своей любимой мышкой, а при входе в MS Word Вам принудительно предлагают пользоваться отдельной, специализировнной мелкомягкой мышкой - при том, что дополнительных преимуществ по сравнению с обычной она не имеет. Зато еще и платная.
Абсурд? но ведь CoDeSys именно так и поступает.
сравнение с мышкой довольно странно. мышки давно стандартизированы и в основе своей ничем друг от друга не отличаются. увы проект для кдс 2,3 это проект для кдс 2,3 а не для Tortoise SVN, о котором я например впервые слышу (знают во всем мире - 1). сомневаюсь что разработчики сред программирования в первую очередь думают о том, чтоб эта тулза воспринимала их проекты.

именно из-за платности собственной системы контроля версий
так и сама среда программирования платная. или вы думаете, что кдс развивается на добровольных началах?:)

Herzog
30.05.2011, 15:18
мне кажется Herzog Вы сами себе проблемы пытаетесь найти, зачем кому то кроме Вас знать о версии программы и изменениях.Не поняли? а ведь я написл подробно.

Мой контроллер собирает информацию с многоканального устройства, архивирует, что-то коммутирует и включает... Далее по TCP я оправляют собранную информацию в контроллер-сервер на базе стандартного PC, с негои получаю команды, что делать дальше.
Программу контроллера пишу я, программу на PC пишет совсем другой человек (хотя для отладки я написал свою упрощенную панель).
Общими у нас являются переменные обмена по сети, размерность и число каналов, ряд массивов, временные константы...
Все эти переменные в ходе отладки и по уточнении самой задачи разработки меняются и я должен согласовывать свои изменения с написанием программы системщиком. Если он видит мои файлы переменных, констант размерности и имена массивов, то по ним и корректирует свой проект на Си Бильдере.
У него стандартная система контроля версий стоит и, если бы я мог себе на проект поставить такую же - согласование происходило бы без проблем.

А куда теперь ему ставить узкоспециализированную ENI?


swerder!

Если Вы не сталкивались с системой контроля версий, то это не значит, что ее нет вообще.
Если у Вас нет хобота, то это не значит, что слоны не существуют.
Систем контроля версий (СКВ) в мире много (например, CSV, Subversion, Arch, OpenCM, Aegis, Monotone и Bitkeeper), и разработаны они уже давным-давно. Большая часть из них независимы от приложения, что делает их широко и универсально используемыми. Наиболее известной и распространенной является Tortoise SVN - оболочка системы SVN.
На их фоне специализированная СКВ типа ENI - смотрится изобретанием собственной паровой машины, когда весь мир уже давно ездит на стандартных карбюраторных движках и дизелях.

P.S. "так и сама среда программирования платная. или вы думаете, что кдс развивается на добровольных началах?" - я получил в комплекте с купленным контроллером.
Полагаю, что цена включена в стоимость.

Я вообще не понимаю, почему оказалось так сложно сделать два варианта сохранения проекта - в виде файл-проекта и в виде текстовых исходников? На выбор...

С уважением,
Herzog

Herzog
30.05.2011, 16:17
а сейчас я правильно Вас понял что Вы ушли от стандартных решений и протоколов. Для сети TCP есть протокол ModbusТСР со своими регистрами, любой язык программирования может с ними работать, любой ПЛК в КДС может добавить ModbusSlave.Неправильно понимаете.
Модбас я использую, но не в качестве средства прямого обращения к оконечным исполнительным устройствам - по моему проекту такое и не требуется. Входные данные я перерабатыва, вырабатываю логику и выходные сигналы управления. А в PC передаю уже обработанные данные.
Я использую modbus только как средство связи - чтобы не задумываться над адресацией, потерей данных, направлении пердачи, выключении PC и т.д. Все это modbus обеспечивает в теневом режиме.

Данные обмена с PC - обработанные данные, а не набор входных и выходных сигналов. Они разделены на записи состояний каналов, таблицу допусков и правил работы каждого канала. В modbus'е они лежат скопом и чтиобы разложить их в PC "по полочкам", программист сервера должен знать их формат, количество, временные характеристики и т.д. Сейчас мы согласуем на уровне - "карандашом на бумажке" - что, разумееется, очень противно.

Без обид.Да что Вы - о чем речь?
Просто раздражает немного необходимость тратить время на очевидные неприятные мелочи, которые разработчики пакета CoDeSys вполне могли бы и предусмотреть.
Неужели сложно было предвидеть, что придется согласовывать разноуровневые среды разработки - контроллерную и PC части - и добавить в пакет общие и давно уже существующие для этого средства СКВ?
Разработка аналогичных вещей на 51-м контроллере в стыке с PC не вызывали подобных проблем на ровном месте.

А по поводу предложенных Вами в самом начале текстовых файлов интересно как должны выглядеть CFC и SFC схемы, чтобы сравнить с языком С++Кроме ST (на нем и написал проект) я не вижу языка программирования ПЛК, на котором можно было бы написать достаточно сложный проект.
У меня - сложный. Язык релейных схем меня не интересует.

С уважением,
Herzog

swerder
30.05.2011, 16:19
Мой контроллер собирает информацию с многоканального устройства, архивирует, что-то коммутирует и включает... Далее по TCP я оправляют собранную информацию в контроллер-сервер на базе стандартного PC, с негои получаю команды, что делать дальше.
странно у вас построена система управления производством - если этот ваш PC решит зависнуть, у вас ничего не сломается в цехе?




Если Вы не сталкивались с системой контроля версий, то это не значит, что ее нет вообще.
я этого не говорил


Систем контроля версий (СКВ) в мире много (например, CSV, Subversion, Arch, OpenCM, Aegis, Monotone и Bitkeeper), и разработаны они уже давным-давно. Большая часть из них независимы от приложения, что делает их широко и универсально используемыми. Наиболее известной и распространенной является Tortoise SVN - оболочка системы SVN.
вот, сами говорите, что их много, все чудесно универсальны. так какой из них отдать предпочтение фирме 3s? самой лучшей Tortoise? а если пользователи других СКВ начнут хотеть поддержки своей?
на их фоне как раз ENI самое правильное решение - не надо распыляться на поддержку тучи универсальных СКВ, просто надо вылизать 1 свою.


P.S. "так и сама среда программирования платная. или вы думаете, что кдс развивается на добровольных началах?" - я получил в комплекте с купленным контроллером.
Полагаю, что цена включена в стоимость.
так и есть. я имел ввиду, что вами выше сказанное похоже на ругание конторы мелкомягких - ах они плохие, выпускают пакет "офис", зарабатывают на нас, бедных, честных... 3s такая же корпорация, также зарабатывает деньги, за дешево продает кдс, за дорого ени

Herzog
30.05.2011, 16:34
странно у вас построена система управления производством - если этот ваш PC решит зависнуть, у вас ничего не сломается в цехе?Нет.
У меня не система управления производством (хотя отдельные ее элементы есть), а система контроля производста. Производство не остановится, а перестанет собираться контрольная информация.

вот, сами говорите, что их много, все чудесно универсальны. так какой из них отдать предпочтение фирме 3s? самой лучшей Tortoise? а если пользователи других СКВ начнут хотеть поддержки своей?У всех существующих систем контроля версий есть одна общая деталь - они в основном работают с текстовыми файлами. Здесь их преимущества колоссальны.
Бинарные файлы пишутся, фиксируются, но не сравниваются.
И если бы разработчики CodeSys сохраняли проект в виде текстовых файлов, можно было бы использовать любую систему контроля версия, не выдумывая свою уникальную.

3s такая же корпорация, также зарабатывает деньги, за дешево продает кдс, за дорого ениМожно, я не буду комментировать такую политику?
На форуме неприлично ругаться матом...

С уважанием,
Herzog

Herzog
30.05.2011, 16:49
На любой прибор ОВЕНа выступающий в роли slave-устройства в документации идет таблица регистров модбас,На область регистров modbus я последовательно отражаю таблицу записей состояний. Например, массив Records[0..25][0..40] - 25 каналов, 40 состояний на канал. А может быть - Records[0..32][0..30]. Как системщик на PC может понять, что за поток идет - 24*40 или 32*30?
Я ему должен передать из своей разработки формат массива, который есть на текущий момент в моей разработке. Если бы я сбросил файл констант проекта в СКВ, то он просто включил бы его в свой С-проект с такой же СКВ - все просто.
А сейчас что мне делать? писать на бумажке - "каналов 25, состояний 30" - каждый раз при изменении моей программы? Так если бы всего две константы менялись!

а теперь посмотрим в сторону разработчиков КДС, нужно им это заниматься поддержкой контроля версий, для одного из пяти языков потому что Вам так хочетсяПрежде всего для ST не нужно выдумывать отдельную СКВ, достаточно включить возможность сохранять проект в текстовом виде из текстового редактора - в этом нет никаких проблем. Если текст уже есть в виде текста, то какая сложность его сохранить в этом виде?
Ну и если уж они включили текстовый язык программирования, то можно было бы предвидеть, что исходный текст может понадобиться. Хотя бы для системы контроля версий. Особого ума, да и напряжения программистских сил для этого явно не требуется.

С уважением,
Herzog

Игорь Петров
30.05.2011, 16:54
Пляски как раз в CoDeSys. Причем как я понимаю, именно из-за платности собственной системы контроля версий.
:confused: Вы это серьезно? Если бы вдруг мозги у 3S закрутились в эту сторону, то давно бы сделали платную среду программирования. Бизнес схема 3S проста и логична, никаких задних мыслей в ней заложено. На рантайм CoDeSys продается 300 тыс. лицензий в год. С позиции голой прибыли нужно заниматься только этим. Но, иногда возникают потребности на отдельные сервисы и компоненты, требующие доп. работы. В V2.3 ENI излишне универсален и сложноват в установке и конфигурировании. Все серьезные заказчики просили сделать под ключ. Отсюда исторически и сложилась модель его распространения. Сейчас стоит задача упростить ENI и включить в дистрибутив V3. Это обсуждалось на прошедшей конференции.

Игорь Петров
30.05.2011, 17:00
Особого ума, да и напряжения программистских сил для этого явно не требуется.
Поддерживать один текст было бы баловством. Если делать, так серьезно. Нужен единый формат. Куча умных людей, ведущих разработчиков ПЛК со всей планеты пытаются это сделать уже больше 10 лет в рабочей группе PLCopen. В МЭК системах есть специфика, которая не желает лезть в текст никаким боком. Сейчас формируется такой стандарт на базе схем XML. Они открыты для обсуждения. Пожалуйста, примите участие в этой работе, если знаете решение. В CoDeSys новый формат уже поддержан. Если его поддержат все, то проблемы действительно не будет.

Для удобного сравнения не только текстов программ, но и всего, что входит в проект, включая графические объекты, нужно глубоко интегрировать в CoDeSys специальный графический интерфейс. Это и есть оболочка ENI. Это не ‘свой паровоз’, а только заказной тюнинг, типа сиденья с запоминанием настроек под машиниста. Он ставится на существующие системы управления версиями, в том числе на Subversion . Система многопользовательская. Пользоваться можно в рамках многих проектов. Наборы POU могут входить во много проектов. Удаленный программист может править блоки, за которые он отвечает, удаленно подключившись к базе данных из своей системы.

Herzog
30.05.2011, 17:25
:) ну ладно, это может слишком надолго затянутся, Hezog попробуйте следующее и успокойтесь. Выделяете необходимый ФБ на ST, в меню выбираете Проект -> Объект -> TODO:Exportieren... сохраняете предлагаемый файл. Открываете этот файл в любом редакторе и вуаля наслаждаетесь текстовой формой Вашего исходникаЭто поштучный перебор POU. У меня сейчас в проекте текстовых файлов шесть. Перебирать каждый раз все шесть?

Лучше открыть Project->Import. В этом случае сохранятся все документы разом. Нет риска пропустить.
Теперь осталось освоить макросы, чтобы делать это одной кнопкой.

С уважением,
Herzog

Herzog
30.05.2011, 17:39
Если делать, так серьезно. Нужен единый формат.А зачем?
Зачем делать единое колесо для автомобиля и самолета?
Зачем делать единый формат сохранения и сравнения для графического языка релейных схем и текстового ST?

Для удобного сравнения не только текстов программ, но и всего, что входит в проект, включая графические объекты, нужно глубоко интегрировать в CoDeSys специальный графический интерфейс. Это и есть оболочка ENI. Это не ‘свой паровоз’, а только заказной тюнинг, типа сиденья с запоминанием настроек под машиниста.Не вижу никакой надобности объединять уже существующий текстовый исходник вместе с графическими файлами, да еще и выдумывать узкоспециализированный инструмент для сравнения этого монстра.
Зачем удалять гланды через задницу?

Есть отработанная еще с египетских пирамид система сравнения текстовых файлов - ну и сравнивать ею исходники текстов CoDeSys, сохраняемые в том текстовом виде, как они были написаны.
А графику сравнивать другим способом.

Впрочем ладно, буду импортировать....
Специальной командой.
Текст редактора в текст файла.

С уважением,
Herzog

Herzog
30.05.2011, 17:42
А как же Ваш изначально заданный вопрос, по моему я на него ответил :) и что Вы за человек Вам даже лишних 30 раз мышкой кликнуть лень :)Вам плюсик. Распишитесь и получите.
Только кликните 30 раз...

С уважением,
Herzog

BETEP
30.05.2011, 17:59
наконец-то до меня дошло зачем в омроне проект можно как текстовик сохранить, ну не понимал зачем эта бесполезная на мой взгляд возможность.:)
------------------------------
и абсолютно никакой разницы как выглядит в тексте кусочек в виде блока, главное как этот кусочек отличается от кусочка в другом файле, сгенеренным этой же программой.

неужели никто из Вас никогда не путал версии своих прог? я путал, заказчики которые тиражируют, путают постоянно.
Как графику убогой визуализации привязать к тексту? да никак, Herzog этого и не просит. неужели кто-то пользует визуализацию кодесиса? (не для отладки) признавайтесь кто так низко пал, скрины приложить.

Отношение кодесиса к стандартным протоколам доставляет...
отказались от жесткой адресации на "благо" пользователя, получили дополнительный геморой для пользователя, а ведь как просто отдать на верхний уровень таблицу массивов по адресам и форматам и не напрягать верхний уровень контролем версий.

Система CoDeSys v.3 все больше и больше поворачивается лицом к специалистам.
+1 этой фразе. достойно башорга.

Игорь Петров
31.05.2011, 11:14
Не вижу никакой надобности объединять уже существующий текстовый исходник вместе с графическими файлами, да еще и выдумывать узкоспециализированный инструмент для сравнения этого монстра.
:eek: В CoDeSys есть графические языки программирования и не только. Тексты составляют малую часть объектов. В проекте сохраняется все, даже координаты элементов на экране и трассировка соединений. Вы предлагаете взять отдельные текстовые шмотки от полноценного проекта и на них поставить СКВ. Оставшиеся объекты просто бросить. При открытии проекта из СКВ большая часть информации будет утрачена. Допустим, делаю красивую CFC программу. Затем сохраняю проект и бац, вижу безобразные перемешанные куски. Мне это надо? Без мата такую СКВ никто использовать не будет. Это несерьезное предложение.

Серьезный подход состоит во внедрении в среду программирования оболочки над СКВ, которая позволит нормально хранить весь проект, без потерь, удобно и красиво. Это и есть ENI.

Существует старинный текстовый формат PLCopen (как в Омроне). Ветер правильно заметил, что он практически бесполезен. Поэтому, PLCopen проводит работы по новому открытому стандарту на основе XML (http://www.plcopen.org/pages/tc6_xml/). Он позволит использовать проект в разных средах, разных компаний. В CoDeSys V3 он уже поддержан. Ждем поддержки в других средах.

BETEP
31.05.2011, 15:18
это координаты, размеры, шрифты двух блочков и линии между ними в омроновском CFS,
XML не напоминает?

<Elements>
<SFCStep N="Step1" X="40" Y="40" O="Trans1" T="Initial" />
<SFCTransition N="Trans1" Y="80" O="Step2" />
<SFCStep N="Step2" X="160" Y="160" H="120" />
</Elements>
<Font Name="Arial" Size="8" Height="13" />$?St$Bk?_#[15]

в текстовике есть и бинарные вставки

Herzog
31.05.2011, 15:51
Я не пытаюсь заявлять, что нужно использовать из всех СКВ только ту, которая нравится мне лично.
Если:
1. Вы рисуете программу графически и Вам нравится специализировано для этого спроектированная ENI,
2. Вы тратите время на красивую визуализацию,
2. Ваш проект суть "вещь в себе", не имеющий выхода на другие программные средства и стандартные средства разработки других программных вещей,
- то ради бога, пишите и пользуйтесь именно и только специализированной ENI.
Это будет лучший выбор.
Для Вас.

А я вот такой странный - хочу, чтобы текст сохранялся в текстовом виде. И анализировался и сравнивался - методами анализа текста.
Мое пристрастие к здравому смыслу не лечится.
Поэтому, Игорь, не тратьте на меня столько времени.

Предлагаю тему закрыть. Дальше может пойти только обсуждение личных пристрастий и шаблонов мышления, логике не подлежащих.
Ответ на свой вопрос я получил - буду экспортировать текст в текст, даже если придется каждый раз для рутинной операции сохранения исходников проекта нажимать пять раз мышку. Наверное, это рационально с точки зрения разработчиков CoDeSys, может быть нравится, чтобы их при этом поминали каждый раз "незлым тихим словом".
Идеала в мире вообще нет.

С уважением,
Herzog

Игорь Петров
31.05.2011, 17:10
.проект суть "вещь в себе", не имеющий выхода на другие программные средства и стандартные средства разработки других программных вещей..
Нет. ENI просто удобный интерфейс СКВ для МЭК программ. Он позволяет работать не только с выборочными текстовыми объектами, а со всем проектом по-человечески. Я могу работать с деревом объектов в нормальной графической форме, не надрывая мозг. Проект не вещь в себе. Другие программистские и конструкторские инструменты работают с этой же базой данных одновременно.



..хочу, чтобы текст сохранялся в текстовом виде. И анализировался и сравнивался - методами анализа текста. Мое пристрастие к здравому смыслу не лечится.
Это правильно. Одновременно должны работать аналогичные удобные штуки и для всех графических языков, объектов, 3D SoftMotion и др. и пр. Логично чтобы СКВ для МЭК системы решала проблему целиком, без каких либо условий или ограничений. Применять СКВ только к текстовым объектам странная полумера-недоделка. Если освоить езду на 2х колесах, то можно не чинить пробитое колесо целый год - здравый смысл есть, но ИМХО это кино не для всех.

Игорь Петров
31.05.2011, 17:11
это координаты, размеры, шрифты двух блочков и линии между ними в омроновском CFS, XML не напоминает?
Спасибо, супер! Омрон работает в PLCopen. Отлично если они поддержали новый стандарт XML. Можете небольшой пример на CFC записать в файл? Попробую импортировать его в CoDeSys. Теоретически, должно быть без проблем.

Herzog
31.05.2011, 17:36
Проект не вещь в себе.Как Вы предполагаете передавать свои изменения версий в разработку внешней программу, созданную на другой платформе?
Например, в программу на PC, которая работает во взаимодействии с ПЛК?
Никак? на бумажке? И после этого Вы спорите, что ENI не делает из проекта CoDeSys "вещь в себе"?

Если уж Вас потянуло на автомобильные сравнения, то ENI напоминает авто с горловиной заправочного бака настолько фасонной работы, что подходит к ней только собственный уникальный шланг. Причем - изнутри бака.
А вот любой другой внешний стандартный заправочный шланг - засунуть невозможно.

Применять СКВ только к текстовым объектам странная полумера-недоделка.Никто этого и не предлагает. Не встраивать СКВ типа SVN в CoDeSys, а дать возможность программеру выбирать - какой СКВ пользоваться, встроенной или внешней. Это же так просто!
Достаточно было в меню "File" добавить одну строку - "Сохранить как исходный текст". Еще лучше - в настройках проекта поставить разовый переключатель "Сохранять как файл проекта (*.pro) или файлы исходников (Да/нет)"
Для этого даже писать в оболочке дополнительно ничего не надо, ничего не надо преобразовывать - стандартная функция в Дельфи или СиБильдере "save all".

Если освоить езду на 2х колесах, то можно не чинить пробитое колесо целый год - здравый смысл есть, но ИМХО это кино не для всех.ENI предлагает ездить на автомобиле с колесами разного диаметра, специально вытесав для этого монстра колеи разной глубины. Одни для грязи, другие для асфальта.
А между тем гораздо проще ездить на танке по грязи, а на линкольне - по автостраде. Чем навешивать (а вдруг понадобятся?) траки гусеницы на лимузин.

С уважением,
Herzog

Andy
01.06.2011, 15:07
неужели кто-то пользует визуализацию кодесиса? (не для отладки) признавайтесь кто так низко пал, скрины приложить.

Я использую. Прилагаю. К сожалению, ограничения большие на размер :(

Игорь Петров
01.06.2011, 17:00
Как Вы предполагаете передавать свои изменения версий в разработку внешней программу, созданную на другой платформе? … Не встраивать СКВ типа SVN в CoDeSys, а дать возможность программеру выбирать - какой СКВ пользоваться, встроенной или внешней.
В CoDeSys нет никакой встроенной СКВ! ENI только обеспечивает удобный унифицированный интерфейс. Он хранит данные в той же внешней Subversion. В чем проблемы?


в настройках проекта поставить разовый переключатель "Сохранять как файл проекта (*.pro) или файлы исходников (Да/нет)
Внутри МЭК проекта не все вещи можно представить текстом. Как поступать с ними? Фотографировать? Сохранить проект с утратой дерева конфигураций контроллера, сетей, графических языков и визуализации? Как гарантировать, что никто потом не поменял часть переменных в тексте и назад ничего не склеится? Правильный формат проекта обязан гарантировать его целостность и защиту от лишних проблем. Зачем создавать себе лишние трудности?

В V2.3 есть командные файлы. См. хелп. Вы можете сделать запись в текст всего, что надо одной иконкой, а не давать кучу команд руками.


ENI предлагает ездить на автомобиле . . .
Еще говорят он волосы делает шелковистыми ;)

Вы навыдумывали про ENI всякой фантастики и успешно раскритиковали выдуманные свойства, как противоречащие здравому смыслу.

Демо версия ENI эмулирует СКВ на файловой системе Win. Внешнюю базу подцепить нельзя. Видимо это служит источником заблуждений.

Herzog
01.06.2011, 17:35
Игорь, давайте не будем зря забивать форум и остановимся.
Поговорим о чем-нибудь другом - у нас еще будут вопросы к друг другу...
Хорошо?

P.S. "Неужели слушателей не интересует мое мнение о несравненной Гвади Мюллер?" (С) Стругацкие-братья

Спасибо, Игорь
Herzog

BETEP
02.06.2011, 10:05
Andy, графика и возможности очень сильно отстают от современных тайваньских панелек, не говоря уже о скадах.


Можете небольшой пример на CFC записать в файл?
Не перевариваю я эти квадратики и не использую, поэтому с примером и не получится.

Игорь Петров
02.06.2011, 14:56
Andy, графика и возможности очень сильно отстают от современных тайваньских панелек, не говоря уже о скадах

ВЕТЕР постоянно трудится над разнообразными предложениями по улучшению CoDeSys. Дело полезное.

В некоторых панельках есть встроенный язык программирования. Его сравнивать с CoDeSys смешно. Это довольно разные вещи, разные области применения.

Кратко - техническая задача CoDeSys Visu работать в РВ и на дешевых встраиваемых проц. 16 бит, который обязан тянуть логику ПЛК и графику одновременно. Никакую скаду туда не воткнуть. Графика должна быть минимально необходимой для снижения требований к проц. Такова была задача на разработку для V2.3. Применение – машиностроение, транспорт. Нечто типа панели автомобиля, трактора, погрузчика, крана, трамвая – 5 стрелок, 10 кнопок. Таких применений CoDeSys Visu десятки тысяч. Все это серийные продукты (кроме ходовой панели яхты Абрамовича). Естественно, по графике CoDeSys Visu глупо сравнивать со спец. панелями или скадами, созданными для работы на более мощных проц.

Встроенная визуализация CoDeSys как водка. По вкусовым качествам уступает рому, коньку, марочному вину и много еще чему, но от этого область уместного применения не уменьшается ;)

Игорь Петров
02.06.2011, 14:58
Игорь, давайте не будем зря забивать форум и остановимся.
Спасибо за поднятую тему! Пару лет назад это было вообще никому не интересно. Похоже, вопрос постепенно созрел. Будет желание попробовать ENI на Subversion, пишите в личку.

Andy
02.06.2011, 15:32
Andy, графика и возможности очень сильно отстают от современных тайваньских панелек, не говоря уже о скадах.


Для этой задачи хватает. На СКАДУ денег не выделили, довольствуемся малым :) Не хватает только архивирования (хотя можно обрабатывать логи), люди обходятся скриншотами. Зато единая среда, можно заглянуть "вовнутрь" в отладочных целях. Понимаю, что это избыточная возможность для оператора, но для "телефонной" отладки достаточно немного соображающего в компьютерах оператора.

pike
02.06.2011, 16:09
Спасибо, супер! Омрон работает в PLCopen. Отлично если они поддержали новый стандарт XML. Можете небольшой пример на CFC записать в файл? Попробую импортировать его в CoDeSys. Теоретически, должно быть без проблем.

Светофор SFC для CJ1M-CPU11:

Herzog
03.06.2011, 11:11
Спасибо за поднятую тему! Пару лет назад это было вообще никому не интересно.На Owen'ах я делаю первый проект. Всего два месяца работы. Историю их развития не знаю.
Однако опыт микроконтроллерный есть - на 51-ой серии Atmel'ов я пишу уже лет двадцать.

Пока с СКВ давайте остановимся. Это дело очень нужное, просто необходимое - если можете, попробуйте здесь что-то сделать...
Но у меня сейчас время не учиться точить нож, а начинать им активно работать.

С уважением,
Herzog

Игорь Петров
03.06.2011, 14:09
Однако опыт микроконтроллерный есть - на 51-ой серии Atmel'ов я пишу уже лет двадцать.
Это же микросхема – микроконтроллер. Их часто путают с контроллерами - ПЛК. Это небо и земля! Подходы к программированию с разных концов. Мне опыт с 8051 сильно мешал с ПЛК. Года 2 я плевался и ругался на стандарт МЭК, бился головой в стену. Потом оказалось, что просто главный вход с другой стороны.

Игорь Петров
03.06.2011, 14:16
Светофор SFC для CJ1M-CPU11:
Спасибо! Увы, это свой формат. Он довольно легко читается глазами. Файл стандарта PLCopen XML с такой же диаграммой, записанный их CoDeSys V3.4 больше в 4 раза. Для SFC туда попадают объявления переменных + конфигурация проекта + связанные подпрограммы.

Формат нацелен не только на обмен программами между разными ПЛК, но и другими необходимыми инструментами:
http://www.plcopen.org/pages/images/tc6/progr_in_env.gif

Например, возьмем математический пакет MATLAB. MathWorks в Simulink PLC Coder (http://soft.softline.ru/mathworks/mathworks-simulink-plc-coder/) поддержала PLCopen XML. В их ранней версии была только интеграция с CoDeSys. С XML этого ограничения нет.

Кстати, одной из главных задач PLCopen XML называется интеграция с СКВ.

На его основе уже проектируется новый открытый формат проектов, перекрывающий CAD системы AutomationML (http://www.automationml.org/)

Herzog
04.06.2011, 06:16
Это же микросхема – микроконтроллер. Их часто путают с контроллерами - ПЛК. Это небо и земля!Вы мне хотите рассказать что такое 51?!
Я знаю сейчас и ПЛК - не в совершенстве, разумеется, но мой первый проект уже работает вполне успешно. Глюки детских болезней понемногу устраняются

Herzog

Игорь Петров
06.06.2011, 12:31
Вы мне хотите рассказать что такое 51?!
:eek: Напротив, имею свою проблему по этому поводу. Мы ведем учебные курсы по ПЛК. Люди с нуля начинают эффективно программировать ПЛК интуитивно. У тех, кто имел опыт с однокристаллками, МЭК языки идут против ветра. Как показать им красоту LD или CFC большой вопрос? Не первый год пытаемся придумать подходящую методику и понятные примеры. Пишут только на ST тяжелый код :(

pike
06.06.2011, 12:55
Спасибо! Увы, это свой формат. Он довольно легко читается глазами. Файл стандарта PLCopen XML с такой же диаграммой, записанный их CoDeSys V3.4 больше в 4 раза. Для SFC туда попадают объявления переменных + конфигурация проекта + связанные подпрограммы.

Формат нацелен не только на обмен программами между разными ПЛК, но и другими необходимыми инструментами:


Не, это не свой формат - этот через функцию импорт/экспорт получается (соотвественно обрезается конфигурация и т.п.), для строннего софта. Кто-то мне расказывал про какой-то софт для описания/документирования технологического процесса и что там используются SFC и XML, но не помню - 2008 год был.

Andy
06.06.2011, 14:31
Как показать им красоту LD...
Это шутка? По крайней мере, в моих задачах LD мало применим. Или я его недопонял, но для программных автоматов я применяю SFC, для объединения ФБ в задачу - FBD, для написания остального - ST. LD же мне казался атавизмом для простоты миграции с языка РКС.

Игорь Петров
06.06.2011, 15:20
Это шутка? По крайней мере, в моих задачах LD мало применим...
Нет. LD самый распространенный язык ПЛК в мире.

ST:
xYellow := (tProcessTime > T#1S AND tProcessTime < T#2S) OR tProcessTime > T#3S;
Время осознания смысла 1 сек.

См. ниже рис. на LD (CoDeSys V3.4). Время осознания смысла 0.1 сек.

Изучал большой, как Война и мир, немецкий проект в CoDeSys (автопром). Все на SFC+ST. Однако, PLC_PRG – селектор задач, режимов и защиты на LD. В онлайне сразу видно что работает и почему, без напряга.

Andy
07.06.2011, 16:42
Ну, я про красивость, а не распространенность (с ней не поспоришь).
А насчет примера у меня такая строчка может быть в цикле (20 одинаковых объектов), плюс расчетные задачи (выход целое или плавающее, а не логическое; тот же ПИД). Мне удобнее изменить в одном месте, чем в 20 сразу при изменении логики. Или приведенный пример; он тоже на LD реализуется?

tim3(in:=TRUE,pt:=t#5s);
IF tim3.Q THEN
time4:=DINT_TO_WORD(TIME_TO_DINT(tim2.ET)/60000);
IF tp1c<>tp1co THEN
n:=n+1;
ss:=ss+tp1;
ELSE
tp1:=t;
END_IF;
IF tp2c<>tp2co THEN
n:=n+1;
ss:=ss+tp2;
ELSE
tp2:=t;
END_IF;
IF tp3c<>tp3co THEN
n:=n+1;
ss:=ss+tp3;
ELSE
tp3:=t;
END_IF;
IF tp4c<>tp4co THEN
n:=n+1;
ss:=ss+tp4;
ELSE
tp4:=t;
END_IF;
IF tp5c<>tp5co THEN
n:=n+1;
ss:=ss+tp5;
(* ELSE
tp5:=t; *)
END_IF;
tim3(in:=FALSE);
tp1co:=tp1c; tp2co:=tp2c; tp3co:=tp3c; tp4co:=tp4c; tp5co:=tp5c;
IF n<>0 THEN
t:=ss/n;
END_IF;
ttemp:=t;
END_IF;

Herzog
08.06.2011, 10:00
Andy!

Может проще завести массивы:
tpc[0..20]
tpc0[0..20]
tp[0..20]

и в цикле опрашивать функцию, в которой входной переменной будет индекс массива i и выполняется:


IF tpc[i]<>tpco[i] THEN
n:=n+1;
ss:=ss+tp[i];
ELSE
tp[i]:=t;
END_IF;

Да и саму двадцатку объявить глобальной константой и менять при увеличении числа объектов.

С уважением,
Herzog

Andy
08.06.2011, 10:52
Нет, это разные случаи. В приведенном примере используются переменные из области ВВ, для массива надо их переприсваивать и т.д.

Игорь Петров
08.06.2011, 15:25
Или приведенный пример; он тоже на LD реализуется?
Почему нет? Правой кнопкой мышки щелкаете, Конвертировать объект… в LD. Получится зуб в зуб с ветвлениями. Руками с нуля будет красивее.

Все языки приводятся препроцессором в один собственный формат. Это значит: 1. Любую программу можно перевести на любой язык. 2. Машинный код при этом не изменится. 3. Выбор языка исключительно дело вкуса.

Переделывать тут нет никакого смысла. Если думать в IF ELSE и так писать на LD, то получается жуть. Поэтому и говорю, что красиво писать на LD нужно уметь и думать не так как на текстовых языках. Мне лично ST ближе. Есть мастера, которые делают на LD изящные программы.

* Область ВВ позволяет объявлять переменные ‘внахлест’. Можно положить массив поверх входов. Будет типа union в Си.

* ; после END_IF в ST не нужна, дает пустой оператор.

Andy
09.06.2011, 13:54
Насчет "внахлест" - это ж надо описывать переменные не в дереве конфигурации; хотя, когда проект устоялся (не добавляются внешние переменные), можно и переделать под такой вариант.
Про "думать на LD" - наверное, да, мешает опыт программирования на процедурных языках. Может, когда-нибудь прозрею?

Зуйков Александр
09.06.2011, 15:21
Как это внахлёст адреса? Подскажите

Игорь Петров
10.06.2011, 13:18
В области в/в и в маркерной (M) переменные кладутся на определенные адреса по AT. Никто не запрещает положить 2 или более переменных на один адрес. Компилятор выдаст предупреждение. Оно опционально отключаемое.

Например, можно объявить текстовую строку в М памяти и на этот же адрес положить байтовый массив. Получим легкий побайтовый доступ к строке.

Зуйков Александр
10.06.2011, 23:31
Пока смутно представляю, как например все 8 входов от МВА8 на модбасе в массив загнать без присвоения, чтоб не плодить переменные и не копировать строчки с однотипными операциями. Попробую. Спасибо за идею.

Thorn
05.08.2011, 15:31
Некропост в поддержку Herzog'a:
Заходим в Simatic Manager/Sources, нажимаем Ctrl+A, правый клик - Export Source... И получаем пачку текстовых файлов имя_функции.SCL. - Это библиотека, причём полностью совместимая с CoDeSys (ну разве что END_FUNCTION_BLOCK в конце каждой функции, но это не смертельно). Вот только поддерживать её синхронизированной между S7 и КДС можно только при помощи копипасты каждой функции в КДС ручками...

Сименс не парился, - просто сделал простейшую фичу и всё. Я уж не говорю что эти файлы можно пихать и в SVN и в GIT и куда угодно бесплатно.

Herzog
08.08.2011, 11:16
НекропостНе дождетесь.

Я делаю импорт, сохраняя текстовые файлы для системы контроля версий. Чтобы не тыкать "yes" на каждый файл - использовал макрос.
Противно, конечно, но это самый простой выход.

С уважением,
Herzog

stskr
23.06.2017, 13:16
Herzog, А можете выложить здесь макрос?

SuP
14.09.2017, 16:12
Вот некро, так некро! :) Тоже заглянул в эту ветку, так как в очередной раз возжелал прикрутить контроль версий. Но у меня не очень сложные проекты (на ST, я тоже "из этих": PIC16F84, 51, Atmega, ARM... Вот только до VHDL не добрался, сменились задачи, там всё в графике делал и на Альтере, и на Xilinx).

keysansa
12.05.2021, 15:16
Вроде с 3.5.16 наконец то появился Subversion
https://store.codesys.com/codesys-svn.html
Сам еще не пробовал, только скачал, но хоть какое-то начало...

Евгений Кислов
12.05.2021, 16:24
Вроде с 3.5.16 наконец то появился Subversion
https://store.codesys.com/codesys-svn.html
Сам еще не пробовал, только скачал, но хоть какое-то начало...

Он там был уже лет 7-8, кажется. Это вообще не новость.
В этом году обещают интеграцию с Git, наконец, сделать.

keysansa
12.05.2021, 16:48
3.5.16 в требованиях. Эта версия разве 7-8 лет назад появилась?
ЗЫ. Да и сообщения этой ветки от 2017 года об отсутствии поддержки, так же, говорят обратное.

Евгений Кислов
12.05.2021, 17:23
3.5.16 в требованиях. Эта версия разве 7-8 лет назад появилась?
ЗЫ. Да и сообщения этой ветки от 2017 года об отсутствии поддержки, так же, говорят обратное.

https://www.codesys.com/fileadmin/data/News_Files/ETZ_RUS_03_2014.pdf

А эта ветка - вообще-то в разделе CoDeSys V2.3, а не V3.5.

keysansa
12.05.2021, 18:04
https://www.codesys.com/fileadmin/data/News_Files/ETZ_RUS_03_2014.pdf

А эта ветка - вообще-то в разделе CoDeSys V2.3, а не V3.5.

Да, спасибо. Она (ветка) просто единственная про CVS и CodeSys.