Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники ELECTRONIX.ru _ Программирование _ Beremiz

Автор: yanvasiij Dec 2 2015, 04:40

Доброго времени суток!

Несколько слов о том, что я делаю и что получается.
Озадачился портированием вышеупомянутого ПО. Идея была такая: поскольку Beremiz компилирует входные исходники на языках IEC в Си, то эти исходники можно далее компилировать на чем угодно в том числе и под микроконтроллеры. Тогда я взял GCC под ARM embed (GNU Tools ARM Embedded), написал несложный рантайм (если это так можно назвать), который вызывает апи беремиза в задачах ртос. Делал по аналогии с тем как это сделано под платформу Xenomai (.\bremiz\targets\Xenomai). Далее организовал папочку STM32 в .\bremiz\targets c необходимыми питонячими файлами, задача которых прилинковывать при компиляции мой рантайм, плюс несколько несложных манипуляций над исходниками самого Beremizа, чтобы он при компиляции использовался gcc. Теперь в результате компиляции программы на IEC в Beremiz получаю hex готовый для зашивки в микроконтроллер.

Теперь собственно проблема. Для того, чтобы появилась связка между конкретным железом и программой, нужно в beremizу написать плагин и разместить его в папочке plugins, в котором и будет описание связки с "железом". Запустить эти плагины у меня так и не вышло. Я уже не раз видел упоминание Beremiza на этом форуме. Кто-нибудь писал эти плагины? Я бы был очень признателен, если бы мне ответили на несколько вопросов.

Автор: unkier Dec 8 2015, 16:05

немножко копнул беремиз. давай вместе подумаем. у меня такие же хотелки.

Автор: yanvasiij Dec 9 2015, 14:31

Вытащил все из официального репозитраия и посмотрел по коммитам: начиная с определенной версии исчезла папка plugins. Плагины теперь не так добавляются. Поэтому начал курить исходники. Я не силен питоне, поэтому удалось придумать пока только следующее: добавил еще одну папку STM32, покидал туда мною созданные питонячие файлы, в которых планирую привязваться к железу. Теперь в дереве проекта можно добавлять еще один тип:



Пока уперся в то, что не совсем понимаю, как делать привязку гуя к плагину.

Автор: unkier Jan 5 2016, 16:24

мне про matiec больше интересно. всё равно всё потом им кампилится в C. как сделать вызов сишной функции из кода на IEC языках. вообще не понятно.

Автор: yanvasiij Jan 14 2016, 09:22

Цитата(unkier @ Jan 5 2016, 21:24) *
мне про matiec больше интересно. всё равно всё потом им кампилится в C. как сделать вызов сишной функции из кода на IEC языках. вообще не понятно.


Очень просто: matiec генерирует С файл, в котором производится вызов, например, Вашей функции в которой происходит связь с железом. А эту функция реализована в другом сишном файле. Потом нужно взять все эти сишные файл скомпилить, например в GCC и слинковать. У меня все это делает Beremiz - сначала передает все необходимые данные matiec'y далее берет результат его работы компилирует в gcc и силнковывает с файлом, где реализована привязка с железом.

Автор: unkier Jan 16 2016, 20:38

точно, всё оказалось просто )

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


Автор: voodoojah Feb 17 2016, 07:38

Извините, конечно, не в тему, но вопрос очень волнует.
Вам не приходилось сталкиваться с проблемами при написании в Beremiz функционального блока с передачей массива в качестве параметра?
Я имею в виду ФБ, написанный на C, и подключаемый на target-платформе в виде shared object library. А его описание в виде .xml и .py файла добавленное в beremiz.

Объявить массив переменных в xml файле, описывающем функциональный блок не получается, или я не знаю как. Никакой документации по этому вопросу найти не смог.
Если я правильно все понял, разработчики поддержки такой возможности не делали. На вопросы отвечают очень долго, месяцами.

Пробовал объявить в ФБ параметр, такого же типа как элемент моего массива и передавать первый член массива как аргумент. Предполагалось, что раз массив все равно указатель, а в ФБ передается тоже указатель, то в своем сишном коде я его спокойно разименую и буду использовать.
Но схитрить не получается, при вызове функционального блока, передается не указатель на массив, а указатель на структуру data__, которая перед этим инициализируется значениями из local и global переменных. Таким образом первый член массива передается по значению, как добраться до остальных, непонятно.

Если сталкивались, то как решали? Если я сам что то по глупости упустил, укажите, пожалуйста)

Автор: yanvasiij Apr 6 2016, 06:25

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

Автор: yanvasiij Apr 6 2016, 12:04

После беседы в http://electronix.ru/redirect.php?https://sourceforge.net/p/beremiz/mailman/beremiz-devel/ было "официально" признано, что это бага в matiec. Имейте ввиду, если вы сами это не исправляли, то это бага у вас есть.

Автор: yanvasiij Apr 7 2016, 05:41

Аналогичная ошибка при передаче массивов параметрами в функции и функциональные блоки.

Автор: yanvasiij Apr 7 2016, 11:54

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

Автор: griabig Apr 19 2016, 11:17

Цитата(yanvasiij @ Apr 7 2016, 14:54) *
Нашел еще несколько очень неприятных ошибок в самом беремизе и matiec, касающиеся пользовательских типов данных.
Без исправления всех вышеперечисленных ошибок использовать беремиз+matiec для компляции более или менее серьезных АСУшных проектов невозможно. Я перенес на беремиз один реальный АСУшный проект (написанный для шнайдеровского контроллера), который использовал большое количество переменных, функциональных блоков, функций, пользовательских типов и т.п. После адаптации обнаружились все эти неприятности. Напрашивается печальный вывод: либо ждать когда исправления появятся в официальном репозитарии, либо обзавестись терпением и самому начать курить исходники matiec, либо не использовать вообще.


Предлагаю объединить усилия и допилить Beremiz/matiec до рабочего состояния. Я исправил некоторые ошибки, которые мне попались в работе в своем http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz. Кстати, там сделана русская локализация пользовательского интерфейса. Есть части, которые не переведены еще. Но это части кода, которые вообще без поддержки локализации написаны. Это я поправлю, как буду на них натыкаться.

По поводу matiec ничего не могу сказать. Только белгло просмотрел код. Там надо разбираться.
Кстати проблемы, касающиеся matiec, мне кажется, что лучше описывать еще на http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/matiec/issues.



Автор: yanvasiij Apr 21 2016, 04:36

Цитата(griabig @ Apr 19 2016, 16:17) *
Предлагаю объединить усилия и допилить Beremiz/matiec до рабочего состояния. Я исправил некоторые ошибки, которые мне попались в работе в своем http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz. Кстати, там сделана русская локализация пользовательского интерфейса. Есть части, которые не переведены еще. Но это части кода, которые вообще без поддержки локализации написаны. Это я поправлю, как буду на них натыкаться.

По поводу matiec ничего не могу сказать. Только белгло просмотрел код. Там надо разбираться.
Кстати проблемы, касающиеся matiec, мне кажется, что лучше описывать еще на http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/matiec/issues.


Поддерживаю Ваше предложение! По поводу баги в matiec я писал Марио на личную почту, он мне ответил обещал исправить.

Автор: griabig Apr 21 2016, 14:58

Цитата(yanvasiij @ Apr 21 2016, 07:36) *
Поддерживаю Ваше предложение! По поводу баги в matiec я писал Марио на личную почту, он мне ответил обещал исправить.

Замечательно! Но если забудет, то тогда добавим в баг-трекер. Так надежней, уже точно не потеряется.

Автор: paulbell Jul 18 2016, 06:33

Цитата(yanvasiij @ Apr 6 2016, 11:25) *
Обнаружил багу в matiec. При использовании функциональных блоков внутри функций или других функциональных блоков генерируется код, который присваивает структурам целочисленные значения. При компиляции в gcc это приводит к ошибкам. Очень жаль (((


Здравствуйте, глянул IEC 61131-3:
> 2.5.1 Functions
>...
>Functions shall contain no internal state information, i.e., invocation of a function with the same
>arguments (input variables VAR_INPUT and in-out variables VAR_IN_OUT) shall always yield
>the same values (output variables VAR_OUTPUT, in-out variables VAR_IN_OUT and function
>result).
> It shall be an error if external variables as defined in 2.4.3 cause the violation of this rule.
>...
> 2.5.2 Function blocks
>...
>All the values of the output variables and the necessary internal variables of this data structure
>shall persist from one execution of the function block to the next; therefore, invocation of a
>function block with the same arguments (input variables) need not always yield the same output
>values
>...


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

Относится ли это к использованию ФБ в качестве входного параметра, не поняно...


Автор: yanvasiij Jul 18 2016, 11:41

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

Но момент с функциональными блоками не такой неприятный, как ошибки вроде той, что проявляется при работе со вложенными CASE'ми. http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/matiec/issues/46/bug-in-case-statement-processing я об этом писал.

А это не Вы, тот самый Paul, что выложил ссылку в майлинг листе на свой http://electronix.ru/redirect.php?https://github.com/nucleron/yaplc? (была неверная ссылка, отредактировал)

Автор: paulbell Jul 19 2016, 05:59

Цитата(yanvasiij @ Jul 18 2016, 16:41) *
А это не Вы, тот самый Paul, что выложил ссылку в майлинг листе на свой http://electronix.ru/redirect.php?https://github.com/nucleron/yaplc? (была неверная ссылка, отредактировал)


Да, это я.

Цитата(yanvasiij @ Jul 18 2016, 16:41) *
Но момент с функциональными блоками не такой неприятный, как ошибки вроде той, что проявляется при работе со вложенными CASE'ми. http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/matiec/issues/46/bug-in-case-statement-processing я об этом писал.


Ооо, вот это уже более серёзно.

Код компилятора я смотрел, сам код написан довольно качественно, даже недоделки задокументированы, что не часто встретишь.

Там есть одна беда: тестовая инфраструктура не проработана, совсем.

Если сейчас начать править код, то нет гарантий, что я что-нибудь не поломаю, а проверить это возможности нет...

А ещё я не спец по пром автоматизации, я системный программист, связку Beremiz/matiec использовал только потому, что это единственный живой FLOSS-проект.

Соответственно если что-то делать нужны:
а) тестовые файлы (для регрессионного тестирования)
б) кто-то, кто сможет проконсультировать по МЭКовским языкам.
в) время, которого мало, ибо мне надо писать прошивки для трёх приборов...
г) специалист по питону, ибо в)







Автор: yanvasiij Jul 19 2016, 06:15

Что касается matiec, там действительно все сложно. Это компилятор писался с помощью yacc и bison (инструменты для написания собственных компиляторов). Я сам в этом не шибко силен, насколько я это все понимаю вручную там пишутся только так называемые обработчики токенов, остальное автогенериться с помощью yacc и bison. Поэтому половина кода из репозитария matiec автогенерённая и разобраться там очень сложно.

Консультации по МЭК-овским языкам это вообще отдельный разговор. Я сам работаю на АСУшною компанию, которая делает свой контроллер, поэтому общения с программистами АСУшниками мне хватает. И с их разговоров понял, что от контроллера к контроллеру различия в реализации МЭКовских языков настолько сильны, что люди много времени тратят на портирование проектов со шнайдера на сименс, с сименса на аланбредли и т.д. Базовые вещи конечно же совпадают, но в деталях много различий. Так что строго говоря IEC 61131-3 не такой уж и стандарт.

Касательно питона, по самому Beremiz'y очень активное участие проявляет Андрей Скворцов (здесь он griabig). Если есть какие-то замечания, баги рекомендую писать в его http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz, он достаточно оперативно реагирует.

А вот ваши наработки по поводу пошаговой отладки STM32F из беремиза очень интересны. Я так понял отладку вы реализовали через последовательный порт?

Автор: paulbell Jul 19 2016, 06:52

Цитата(yanvasiij @ Jul 19 2016, 11:15) *
Касательно питона, по самому Beremiz'y очень активное участие проявляет Андрей Скворцов (здесь он griabig). Если есть какие-то замечания, баги рекомендую писать в его http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz, он достаточно оперативно реагирует.

А вот ваши наработки по поводу пошаговой отладки STM32F из беремиза очень интересны. Я так понял отладку вы реализовали через последовательный порт?


Да, через последовательный порт.

Только пошаговой отладки (в смысле прошагивание инструкций) там нет, есть просмотр переменных и лога,
насколько я понял, в Beremiz всё этим и ограничивается, я не видел там свидетельств возможность "шагать", как в том же Си.

Хотя я текстовые языки там не тыкал, могу ошибаться...




Цитата(yanvasiij @ Jul 18 2016, 16:41) *
Но момент с функциональными блоками не такой неприятный, как ошибки вроде той, что проявляется при работе со вложенными CASE'ми. http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/matiec/issues/46/bug-in-case-statement-processing я об этом писал.



Кстати, а тот код пробовали обрабаывать с помощью iec2iec? Что генерируется в этом случае?

Автор: yanvasiij Jul 19 2016, 07:02

Цитата(paulbell @ Jul 19 2016, 11:52) *
Кстати, а тот код пробовали обрабаывать с помощью iec2iec? Что генерируется в этом случае?


Я если честно не совсем понимаю что делает iec2iec, поэтому и не пробовал. Если не затруднит растолкуйте для чего он? Я пробовал через консоль отправлять тот код в iec2c.exe, в генерированном им коде и была та злосчастная ошибка.

Автор: paulbell Jul 19 2016, 07:25

Цитата(yanvasiij @ Jul 19 2016, 12:02) *
Я если честно не совсем понимаю что делает iec2iec, поэтому и не пробовал. Если не затруднит растолкуйте для чего он? Я пробовал через консоль отправлять тот код в iec2c.exe, в генерированном им коде и была та злосчастная ошибка.



По задумке автора, он нужен для контроля корректности работы парсера (как раз той самой части, которая на bison и yacc/flex ):
берем исходник на ST/LD/SFC, преобразуем в ST, сравниваем с оригиналом, если парсер отработал корректно, - должен получиться оригинал, или что-то близкое к нему.

То есть это нужно для проверки корректности генерации AST и символьных таблиц, из которых в последствии генерируется код на Си.

Такой подход позволяет отделить баги прасера и баги кодогенератора.

Автор: yanvasiij Jul 19 2016, 07:57

Только что сделал следующее:

Код
..\..\matiec\iec2iec.exe -I ..\..\matiec\lib generated_plc.st > output.txt


В файле generated_plc.st было следующее

CODE
PROGRAM casetest
VAR
LocalVar0 : DINT;
LocalVar1 : DINT;
END_VAR

case LocalVar0 of
0..127:
localvar0 := 1;
case LocalVar1 of
600:
localvar0 := 1;
else
localvar0 := 1;
END_CASE;
end_case;
END_PROGRAM


CONFIGURATION config

RESOURCE resource1 ON PLC
TASK tast1(INTERVAL := T#100ms,PRIORITY := 0);
PROGRAM ubs1 WITH tast1 : casetest;
END_RESOURCE
END_CONFIGURATION


В файле output.txt оказало дофига отладочной информации, но в самом конце было следующее:

CODE
{enable code generation}PROGRAM casetest
VAR
LocalVar0 : DINT;
LocalVar1 : DINT;
END_VAR

CASE LocalVar0 OF
0 .. 127:
localvar0 := 1;
CASE LocalVar1 OF
600:
localvar0 := 1;
ELSE
localvar0 := 1;
END_CASE;
END_CASE;
END_PROGRAM


CONFIGURATION config
RESOURCE resource1 ON PLC
TASK tast1 (INTERVAL := TIME#100ms, PRIORITY := 0);
PROGRAM ubs1 WITH tast1 : casetest;
END_RESOURCE
END_CONFIGURATION


Смею предположить, что парсер отработал все верно.

Автор: paulbell Jul 19 2016, 08:29

Цитата(yanvasiij @ Jul 19 2016, 12:57) *
Смею предположить, что парсер отработал все верно.



Похоже на то, значит баг в кодогенераторе...


Марио не говорил, какой IDE он пользуется для отладки?

Судя по всему Eclipse, но я не наблюдаю некоторых файлов...



Цитата(yanvasiij @ Jul 19 2016, 12:57) *
Только что сделал следующее:

Код
..\..\matiec\iec2iec.exe -I ..\..\matiec\lib generated_plc.st > output.txt



ОПАЧКИ!

Судя по путям к iecstdlib, у Вас старая версия matiec, скорее всего из Beremiz 1.1,
после этого Марио переписал часть кодогенератора, в частности переписывалась обработка кейсов:
http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/matiec/commits/dd50a82ae8daae34efe84319f360f35e3de7e31e?at=default

Дома вечером попробую скомпилить это же код более новой версии iec2c.


А нет, перепутал с сишной частью.

А все таки какая у Вас версия matiec?

Автор: yanvasiij Jul 19 2016, 09:08

Код
iec2iec.exe -v
matiec version 0.1
changeset id: 7518955c875a


Мы форкнулись http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/matiec. Уже успели внести некоторые поправки кастельно глобальных переменных. Но изменения из основного репозитария время от времени вытаскиваем.

По-поводу IDE у Марио я не спрашивал, мы редактировали в NetBeans. Но Вы можете ему написать, он достаточно отзывчивый товарищ.

Автор: paulbell Jul 19 2016, 09:52

Цитата(yanvasiij @ Jul 19 2016, 14:08) *
Код
iec2iec.exe -v
matiec version 0.1
changeset id: 7518955c875a


Мы форкнулись http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/matiec. Уже успели внести некоторые поправки кастельно глобальных переменных. Но изменения из основного репозитария время от времени вытаскиваем.

По-поводу IDE у Марио я не спрашивал, мы редактировали в NetBeans. Но Вы можете ему написать, он достаточно отзывчивый товарищ.


Это не с битведра, это с http://electronix.ru/redirect.php?http://dev.automforge.net/matiec/rev/7518955c875a, изменения http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/matiec/commits/dd50a82ae8daae34efe84319f360f35e3de7e31e?at=default были на месяц позже, в комментарии к коммиту с кейсами говорится, что пофиксили два бага в обработке кейсов.


Автор: yanvasiij Jul 19 2016, 10:12

Этот комит в моей сборке есть.

Ого! Вы правы! Сейчас выкачал последние комиты пересобрал матик и попробовал собрать это код - собралось, работает!

Автор: paulbell Jul 19 2016, 14:56

Цитата(yanvasiij @ Jul 19 2016, 15:12) *
Этот комит в моей сборке есть.

Ого! Вы правы! Сейчас выкачал последние комиты пересобрал матик и попробовал собрать это код - собралось, работает!



Ну вот и славненько!

А то я сначала прочитал свежие исходники matiec, там все в порядке со скобочками, а потом оказалось, что прасер работает нормально,
следовательно, либо у Вас устаревшая версия, либо в matiec жестокие косяки с архитектурой...

А какие там ещё баги? Ну которые мешают переносу проектов?

Автор: yanvasiij Jul 20 2016, 04:23

Был еще один баг, но мы его исправили самостоятельно: было невозможно вызывать глобальный функциональный блок из простого экземпляра функционального блока. Я вот сейчас смотрю и не уверен исправлял ли этот баг сам Марио. К сожалению мы поторопились и коментарий к комиту написали по-русски. Поэтому сделать запрос на пуш в оффициальный репозитарий думаю пока не получится, но если надо можем просто открыть свой.

Автор: paulbell Jul 22 2016, 07:39

Цитата(yanvasiij @ Jul 20 2016, 09:23) *
Был еще один баг, но мы его исправили самостоятельно: было невозможно вызывать глобальный функциональный блок из простого экземпляра функционального блока. Я вот сейчас смотрю и не уверен исправлял ли этот баг сам Марио. К сожалению мы поторопились и коментарий к комиту написали по-русски. Поэтому сделать запрос на пуш в оффициальный репозитарий думаю пока не получится, но если надо можем просто открыть свой.



Я считаю, что лучше открыть issue и добавить патч с исправлением в комменты.

С другой стороны в трекере есть закрытые "незакрытые" баги, так что лучше куда-то форкнуть репозиторий Марио, пропатчить его и проветсти регрессионное тестирование,
по результатам создать все issue, где будут только актуальные баги.

Кстати, я смотрю тут уже есть три организации, заинтересованные в развитии Beremiz/matiec, может объединить усилия?

Автор: yanvasiij Jul 22 2016, 10:16

Я добавлю issue и патч на днях; и по-поводу "незакрытых" баг - согласен.

По-поводу объединения усилия мы только ЗА. Андрей уже предлагал выше объединиться и отчасти нам это удалось, по мере обнаружения багов в самом Beremiz'e я пишу ему в баг-трекер. Я сам сейчас веду одновременно несколько проектов и в свободное от них время пишу, что-то вроде рантайма для STM32f4xx под беремиз (так же как это делаете Вы, если верить вашему репозитарию) и плагины для этого рантайма в Beremiz'e. У нас была попытка залезть глубоко в потороха matiec для испралления найденных багов, что-то даже удалось, то программист занятый этим переключился сейчас на другой проект, поэтому тут работа стоит.

А, да у Beremiz'a есть IRC чат, Андрей там уже сидит, я все никак не могу поставить на рабочую машину IRC-клиент, поэтому бываю там редко, когда подключусь с телефона только.

Автор: paulbell Aug 19 2016, 05:33

Цитата(yanvasiij @ Jul 22 2016, 15:16) *
Я добавлю issue и патч на днях; и по-поводу "незакрытых" баг - согласен.

По-поводу объединения усилия мы только ЗА. Андрей уже предлагал выше объединиться и отчасти нам это удалось, по мере обнаружения багов в самом Beremiz'e я пишу ему в баг-трекер. Я сам сейчас веду одновременно несколько проектов и в свободное от них время пишу, что-то вроде рантайма для STM32f4xx под беремиз (так же как это делаете Вы, если верить вашему репозитарию) и плагины для этого рантайма в Beremiz'e. У нас была попытка залезть глубоко в потороха matiec для испралления найденных багов, что-то даже удалось, то программист занятый этим переключился сейчас на другой проект, поэтому тут работа стоит.

А, да у Beremiz'a есть IRC чат, Андрей там уже сидит, я все никак не могу поставить на рабочую машину IRC-клиент, поэтому бываю там редко, когда подключусь с телефона только.



Ну IRС у меня нет, так что там я вряяд ли скоро появлюсь.

Форкнул репозитрий Андрея, исправил один баг в Beremiz, сделал пул-реквест, реакции пока нет.

Андрей часто появляется у себя в bitbucket?

Автор: yanvasiij Aug 21 2016, 05:32

Я если честно сам редко сижу в ирке, мне не очень удобно там - на работе у меня блокируют туда доступ, поэтому я там либо через телефон, либо из дома. Можно попробовать создать чат в другом мессенджере.

Андрей обычно реагирует очень быстро, практически сразу. Наверно сейчас обстоятельства какие...

Автор: paulbell Aug 22 2016, 05:47

Цитата(yanvasiij @ Aug 21 2016, 10:32) *
Я если честно сам редко сижу в ирке, мне не очень удобно там - на работе у меня блокируют туда доступ, поэтому я там либо через телефон, либо из дома. Можно попробовать создать чат в другом мессенджере.

Андрей обычно реагирует очень быстро, практически сразу. Наверно сейчас обстоятельства какие...


Уже связались, познакомились, спасибо.

Хорошо бы втроем пообщаться в online-режиме, если интересно сотрудничество, конечно.

Автор: yanvasiij Aug 22 2016, 07:38

Цитата(paulbell @ Aug 22 2016, 10:47) *
Хорошо бы втроем пообщаться в online-режиме, если интересно сотрудничество, конечно.


Ну вот, что я предлагаю: cвои контакты я отправил Вам в личку, контакты Андрея у Вас тоже есть, я так понимаю, создайте чат (раз уж Вы инициатор online-режима) в мессенджере, который посчитаете удобным, и пригласите в него нас. Я на приглашение точно откликнусь. Да и вообще, все кто хочет поучаствовать думаю смогут туда подключиться через Вас.

Автор: griabig Aug 24 2016, 08:09

Цитата(yanvasiij @ Aug 22 2016, 10:38) *
Ну вот, что я предлагаю: cвои контакты я отправил Вам в личку, контакты Андрея у Вас тоже есть, я так понимаю, создайте чат (раз уж Вы инициатор online-режима) в мессенджере, который посчитаете удобным, и пригласите в него нас. Я на приглашение точно откликнусь. Да и вообще, все кто хочет поучаствовать думаю смогут туда подключиться через Вас.


Если блокируют сам протокол IRC или нет возможности установить IRC-клиент, то всегда есть возможно войти в IRC чат через вэб.
Например, вот здесь
http://electronix.ru/redirect.php?https://webchat.freenode.net/

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

Автор: bullit Feb 6 2017, 10:14

Всем Здрасте!

Сразу описание проблемы: в генерируемых исходниках (Си), для доступа (чтение/запись) к объектам Словаря CANOpen в Беремизе используются указатели на переменные. Проблема заключается в том, что доступ к объектам словаря хорошо было бы сделать через функции CANFestival: set/get ODentry(...), так как они вызывают колбэк (если он есть) записи в словарь.
Кто нибудь решал эту проблему?

Была попытка поправить макросы, в accessor.h )) обломался.

Заранее Огромное спасибо!



Автор: yanvasiij Feb 7 2017, 05:27

Я эту проблему не решал. Но если я правильно все понял, нужно править не accessor.h, а сам модуль CANOpen в беремизе. Кодогенерацией занимается метод CTNGenerate_C(). Если переменные нужно записывать через методы set/get ODentry, а не напрямую, то можно, как вариант отслеживать изменение и производить запись в переменные объектного словаря в функциях __publish и __retrive, которые вызываются соответственно до и после пользовательского цикла. И еще, просто в качестве совета, такие вопросы эффективнее задавать mailing list - ответят быстрее и подробнее.

Автор: bullit Feb 9 2017, 12:59

Функции __publish и __retrive - используются для режима debug. Но можно переписать и под себя конечно!

Код
/*
* Retrieve input variables, run PLC and publish output variables
**/
void __run(void)
{
    __tick++;
    if (greatest_tick_count__)
        __tick %= greatest_tick_count__;
   /*__retrieve_debug();*/
    config_run__(__tick);
    __publish_debug();
}

Остаётся вопрос откуда взять список переменных, которые юзает код ПЛК, это раз!
И у меня возникает вопрос, а как генерится код ПЛК: не получится ли что код зациклится на ожидании какого нибудь флага, а он соответственно обновится только в следующем цикле! Может быть такой вариант событий?1
А функция CTNGenerate_C() всего лишь запускает iec2c

Автор: yanvasiij Feb 12 2017, 17:39

Цитата
Функции __publish и __retrive - используются для режима debug.


Нет. Я имел ввиду __publish_X и __retrive_X, которые реализует каждый модуль, при кодогерации. Признаться, после вашего сообщения, сам засомневался, что http://electronix.ru/redirect.php?https://sourceforge.net/p/beremiz/mailman/message/35659352/. Тот же Canfestival реализован, как модуль к Beremiz'у, поэтому и реализует свои __publish_X и __retrive_X при генерации исходников.

Автор: bullit Feb 14 2017, 05:39

Не удобно когда переменных много! Обновлять всё, чтоб использовать часть! накладно получается!
Пока рабочим вариантом используем переписанные макросы в заголовочных файлах iec_inc.

Автор: paulbell Feb 17 2017, 05:31

Цитата(bullit @ Feb 9 2017, 17:59) *
И у меня возникает вопрос, а как генерится код ПЛК: не получится ли что код зациклится на ожидании какого нибудь флага, а он соответственно обновится только в следующем цикле! Может быть такой вариант событий?1


Если __publish и __retrive реализовать без циклов, то такого быть не должно.
Iec2c генерирует конечные автоматы, которые работают кооперативно.
T.к. количество автоматов ограничено, то получается гарантия ограниченного WCET для кода,
генерируемого iec2c если он отработал без глюков.

Автор: bigmaxtor Mar 6 2017, 13:14

Приветствую всех! Сборка проекта matiec из репозитория прошла с незначительными варнингами. Сам beremiz запускается. Однако при попытке запуска его проекта из среды PyDev вываливается куча ошибок. В чем может быть моя ошибка?

Автор: yanvasiij Mar 8 2017, 16:07

Из какого репозитария Вы взяли Beremiz и matiec? В какой операционной системе Вы работаете? И что за ошибки в pydev, выложите лог? И еще, повторюсь, настоятельно рекомендую спрашивать в mailing list, так гораздо эффективнее поверьте.

Автор: bigmaxtor Mar 9 2017, 08:25

Цитата(yanvasiij @ Mar 8 2017, 21:07) *
Из какого репозитария Вы взяли Beremiz и matiec? В какой операционной системе Вы работаете? И что за ошибки в pydev, выложите лог? И еще, повторюсь, настоятельно рекомендую спрашивать в mailing list, так гораздо эффективнее поверьте.


Beremiz и matiec - из http://electronix.ru/redirect.php?https://github.com/nucleron. Нам требуется собрать минимально рабочую систему на плате F4Discovery. Из какого репозитория нам будет быстрее это сделать? Работаем в Linux/Ubuntu. IDE - Eclipse+PyDev. Логи соберу, укорочу и выложу.

Автор: bullit Mar 9 2017, 09:15

Может я чего не знаю или не понимаю. Вы хотите на STMке питоновские скрипты использовать?

Автор: yanvasiij Mar 9 2017, 09:21

Репозитарий правильный, если быть точным это один из форков официального репозитария (принадлежит paulbell). Если хотите просто развернуть среду Павла, то можно воспользоваться установщиком: http://electronix.ru/redirect.php?https://github.com/nucleron/YAPLC/releases. Под win7 он запускается без проблем, под linux не знаю. Если хотите развернуть все, склонировав его репозитарии то тут список всех необходимых репозитариев: http://electronix.ru/redirect.php?https://sourceforge.net/p/beremiz/mailman/message/35506039/. Один или несколько репозитариев (я уже не помню точно) нужно преварительно собрать разумеется. В качестве таргетов там есть платформы на базе stm32, какие именно лучше посмотреть в исходниках или спросить у автора, сам не помню.

Автор: bigmaxtor Mar 9 2017, 10:12

Цитата(bullit @ Mar 9 2017, 14:15) *
Может я чего не знаю или не понимаю. Вы хотите на STMке питоновские скрипты использовать?


Это было бы круто, но не сейчас. Сейчас STMка - всего лишь цель для беремиза.

Цитата(yanvasiij @ Mar 8 2017, 21:07) *
Из какого репозитария Вы взяли Beremiz и matiec? В какой операционной системе Вы работаете? И что за ошибки в pydev, выложите лог? И еще, повторюсь, настоятельно рекомендую спрашивать в mailing list, так гораздо эффективнее поверьте.


Видимо, что-то не так с нашей питоновской средой PyDev - похоже, она не видит определения самого беремиза и виджетов.
Мы ставили python-wxgtk2.8.
Мы не поставили какую-то библиотеку или для беремиза лучше другую IDE использовать ?

Наши логи:
Код
============================= ERRORS =============================
Traceback (most recent call last):
  File "/home/igor/.p2/pool/plugins/org.python.pydev_5.5.0.201701191708/pysrc/_pydev_runfiles/pydev_runfiles.py", line 468, in __get_module_from_str
    mod = __import__(modname)
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/Beremiz_service.py", line 88, in <module>
    sys.exit()
SystemExit
ERROR: Module: Beremiz_service could not be imported (file: /home/igor/acs/beremiz/beremiz_test/beremiz/Beremiz_service.py).

============================= ERRORS =============================
Traceback (most recent call last):
  File "/home/igor/.p2/pool/plugins/org.python.pydev_5.5.0.201701191708/pysrc/_pydev_runfiles/pydev_runfiles.py", line 468, in __get_module_from_str
    mod = __import__(modname)
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/PLCOpenEditor.py", line 80, in <module>
    from IDEFrame import IDEFrame, AppendMenu
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/IDEFrame.py", line 9, in <module>
    from editors.EditorPanel import EditorPanel
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/editors/EditorPanel.py", line 27, in <module>
    from controls import VariablePanel
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/controls/__init__.py", line 31, in <module>
    from DebugVariablePanel import DebugVariablePanel
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/controls/DebugVariablePanel/__init__.py", line 1, in <module>
    from DebugVariablePanel import DebugVariablePanel
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/controls/DebugVariablePanel/DebugVariablePanel.py", line 40, in <module>
    from DebugVariableTextViewer import DebugVariableTextViewer
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/controls/DebugVariablePanel/DebugVariableTextViewer.py", line 30, in <module>
    from DebugVariableViewer import DebugVariableViewer
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/controls/DebugVariablePanel/DebugVariableViewer.py", line 33, in <module>
    from dialogs.ForceVariableDialog import ForceVariableDialog
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/dialogs/__init__.py", line 30, in <module>
    from FBDVariableDialog import FBDVariableDialog
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/dialogs/FBDVariableDialog.py", line 37, in <module>
    VARIABLE_CLASSES_DICT = {INPUT : _("Input"),
NameError: name '_' is not defined
ERROR: Module: PLCOpenEditor could not be imported (file: /home/igor/acs/beremiz/beremiz_test/beremiz/PLCOpenEditor.py).

============================= ERRORS =============================
Traceback (most recent call last):
  File "/home/igor/.p2/pool/plugins/org.python.pydev_5.5.0.201701191708/pysrc/_pydev_runfiles/pydev_runfiles.py", line 468, in __get_module_from_str
    mod = __import__(modname)
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/svgui/__init__.py", line 1, in <module>
    from svgui import *
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/svgui/svgui.py", line 8, in <module>
    from py_ext import PythonFileCTNMixin
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/py_ext/__init__.py", line 1, in <module>
    from py_ext import *
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/py_ext/py_ext.py", line 3, in <module>
    from PythonFileCTNMixin import PythonFileCTNMixin
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/py_ext/PythonFileCTNMixin.py", line 6, in <module>
    from CodeFileTreeNode import CodeFile
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/CodeFileTreeNode.py", line 8, in <module>
    from ConfigTreeNode import XSDSchemaErrorMessage
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/ConfigTreeNode.py", line 18, in <module>
    from editors.ConfTreeNodeEditor import ConfTreeNodeEditor
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/editors/ConfTreeNodeEditor.py", line 7, in <module>
    from EditorPanel import EditorPanel
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/editors/EditorPanel.py", line 27, in <module>
    from controls import VariablePanel
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/controls/__init__.py", line 31, in <module>
    from DebugVariablePanel import DebugVariablePanel
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/controls/DebugVariablePanel/__init__.py", line 1, in <module>
    from DebugVariablePanel import DebugVariablePanel
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/controls/DebugVariablePanel/DebugVariablePanel.py", line 40, in <module>
    from DebugVariableTextViewer import DebugVariableTextViewer
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/controls/DebugVariablePanel/DebugVariableTextViewer.py", line 30, in <module>
    from DebugVariableViewer import DebugVariableViewer
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/controls/DebugVariablePanel/DebugVariableViewer.py", line 33, in <module>
    from dialogs.ForceVariableDialog import ForceVariableDialog
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/dialogs/__init__.py", line 30, in <module>
    from FBDVariableDialog import FBDVariableDialog
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/dialogs/FBDVariableDialog.py", line 37, in <module>
    VARIABLE_CLASSES_DICT = {INPUT : _("Input"),
NameError: name '_' is not defined
ERROR: Module: svgui.svgui could not be imported (file: /home/igor/acs/beremiz/beremiz_test/beremiz/svgui/svgui.py).

Автор: bullit Mar 9 2017, 10:34

Наверное трабла в неподключенных либах.
может поможет:
Pre-requisites
# Ubuntu/Debian :
sudo apt-get install build-essential bison flex autoconf
sudo apt-get install python-wxgtk2.8 pyro mercurial
sudo apt-get install python-numpy python-nevow python-matplotlib

Хотя не факт!
Попробуйте PyCharm.

Автор: yanvasiij Mar 9 2017, 11:28

Странные ошибки, он не жалуется на отсутствие пакетов, в одном случае он не распознал символ интернационализации, в другом не смог импортировать PLCOpenEditor.py, в третьем не смог импортировать svgui.py.

Какая версия питона у Вас? Какой файл вы запускаете? Если хотите запустить "голый" беремиз нужен Beremiz.py из папки Beremiz. Если хотите запустить среду Павла, со всеми ее возможностями под stm32, нужен файл yaplcide.py из папки IDE. В качестве среды я использую Pycharm, но вы попробуйте просто из под командной строки запустить для начала.

Автор: bigmaxtor Mar 10 2017, 05:58

Цитата(bullit @ Mar 9 2017, 15:34) *
Наверное трабла в неподключенных либах.
может поможет:
Pre-requisites
# Ubuntu/Debian :
sudo apt-get install build-essential bison flex autoconf
sudo apt-get install python-wxgtk2.8 pyro mercurial
sudo apt-get install python-numpy python-nevow python-matplotlib

Хотя не факт!
Попробуйте PyCharm.


Проверил
sudo apt-get install build-essential bison flex autoconf python-wxgtk2.8 pyro mercurial python-numpy python-nevow python-matplotlib
все установлено.
Попробуем PyCharm.

Автор: _Pasha Mar 10 2017, 06:48

Цитата(bigmaxtor @ Mar 6 2017, 16:14) *
Приветствую всех! Сборка проекта matiec из репозитория прошла с незначительными варнингами. Сам beremiz запускается. Однако при попытке запуска его проекта из среды PyDev вываливается куча ошибок. В чем может быть моя ошибка?


Чаще всего непонятки из-за неявного вызова python2/python3
PyDev универсальный, написан так что может хоститься и под 2 и под 3.

Я всегда в случаях использования pip install указываю явно pip2 или pip3, например.

Автор: griabig Mar 10 2017, 09:18

Цитата(bigmaxtor @ Mar 9 2017, 11:25) *
Beremiz и matiec - из http://electronix.ru/redirect.php?https://github.com/nucleron. Нам требуется собрать минимально рабочую систему на плате F4Discovery. Из какого репозитория нам будет быстрее это сделать? Работаем в Linux/Ubuntu. IDE - Eclipse+PyDev. Логи соберу, укорочу и выложу.


Репозиторий безусловно правильный, но часть надо брать с http://electronix.ru/redirect.php?https://github.com/nucleron, а часть нет.

Например, Matiec и Beremiz там уже давно неактуальные версии. Их надо брать по следующим адресам:
Beremiz - http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz (здесь ведется сейчас основная разработка),
http://electronix.ru/redirect.php?http://dev.automforge.net/beremiz/ (официальный репозиторий, который периодически синхронизируется с предыдущем)
Matiec - http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/matiec (официальный репозиторий).

По поводу CANFestival могу сказать, что официальный репозиторий сейчас не поддерживается, но есть активный форк библиотеки (https://bitbucket.org/Mongo/canfestival-3-asc).
Если вы используете CANOpen в Beremiz, то имеет смысл рассмотреть переход на поддерживаемую библиотеку.
Возможно, будут какие-то проблемы в Beremiz при обновлении библиотеки. С этими вопросами добро пожаловать в список рассылки beremiz-devel@lists.sourceforge.net.

В любом случае, если Вы занимаетесь разработкой продукта на базе Beremiz, то крайне рекомендую подписаться на список рассылки beremiz-devel@lists.sourceforge.net.
Все вопросы по поводу Beremiz лучше писать туда.




Цитата(bigmaxtor @ Mar 9 2017, 13:12) *
Это было бы круто, но не сейчас. Сейчас STMка - всего лишь цель для беремиза.



Видимо, что-то не так с нашей питоновской средой PyDev - похоже, она не видит определения самого беремиза и виджетов.
Мы ставили python-wxgtk2.8.
Мы не поставили какую-то библиотеку или для беремиза лучше другую IDE использовать ?

Наши логи:
Код
============================= ERRORS =============================
Traceback (most recent call last):
  File "/home/igor/.p2/pool/plugins/org.python.pydev_5.5.0.201701191708/pysrc/_pydev_runfiles/pydev_runfiles.py", line 468, in __get_module_from_str
    mod = __import__(modname)
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/Beremiz_service.py", line 88, in <module>
    sys.exit()
SystemExit
ERROR: Module: Beremiz_service could not be imported (file: /home/igor/acs/beremiz/beremiz_test/beremiz/Beremiz_service.py).

============================= ERRORS =============================
Traceback (most recent call last):
  File "/home/igor/.p2/pool/plugins/org.python.pydev_5.5.0.201701191708/pysrc/_pydev_runfiles/pydev_runfiles.py", line 468, in __get_module_from_str
    mod = __import__(modname)
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/PLCOpenEditor.py", line 80, in <module>
    from IDEFrame import IDEFrame, AppendMenu
...
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/dialogs/FBDVariableDialog.py", line 37, in <module>
    VARIABLE_CLASSES_DICT = {INPUT : _("Input"),
NameError: name '_' is not defined
ERROR: Module: PLCOpenEditor could not be imported (file: /home/igor/acs/beremiz/beremiz_test/beremiz/PLCOpenEditor.py).

============================= ERRORS =============================
Traceback (most recent call last):
  File "/home/igor/.p2/pool/plugins/org.python.pydev_5.5.0.201701191708/pysrc/_pydev_runfiles/pydev_runfiles.py", line 468, in __get_module_from_str
    mod = __import__(modname)
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/svgui/__init__.py", line 1, in <module>
    from svgui import *
  ...
  File "/home/igor/acs/beremiz/beremiz_test/beremiz/dialogs/FBDVariableDialog.py", line 37, in <module>
    VARIABLE_CLASSES_DICT = {INPUT : _("Input"),
NameError: name '_' is not defined
ERROR: Module: svgui.svgui could not be imported (file: /home/igor/acs/beremiz/beremiz_test/beremiz/svgui/svgui.py).


Имя '_' используется для локализации программ.
В принципе, можно (и рекомендуется) использовать python-wx3.0.

Автор: bigmaxtor Mar 12 2017, 19:28

Цитата(griabig @ Mar 10 2017, 14:18) *
Репозиторий безусловно правильный, но часть надо брать с http://electronix.ru/redirect.php?https://github.com/nucleron, а часть нет.
Например, Matiec и Beremiz там уже давно неактуальные версии. Их надо брать по следующим адресам:
Beremiz - http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz , http://electronix.ru/redirect.php?http://dev.automforge.net/beremiz/
Matiec - http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/matiec


В Ubuntu из командной строки запускаю:
igor@ThinkPad:~/acs/beremiz/Mario_Sousa/beremiz$ python Beremiz.py - запускается из репозитория bitbucket.org/mjsousa/beremiz.
Аналогично без проблем запускается из репозитория bitbucket.org/skvorl/beremiz

Но yaplcide выдает ошибку:
igor@ThinkPad:~/acs/beremiz/nucleron/IDE$ pycharm-community yaplcide.py
Traceback (most recent call last):
File "yaplcide.py", line 100, in <module>
from util.misc import InstallLocalRessources
ImportError: cannot import name InstallLocalRessources

Что-то я еще не установил?

Автор: griabig Mar 13 2017, 07:19

Цитата(bigmaxtor @ Mar 12 2017, 22:28) *
В Ubuntu из командной строки запускаю:
igor@ThinkPad:~/acs/beremiz/Mario_Sousa/beremiz$ python Beremiz.py - запускается из репозитория bitbucket.org/mjsousa/beremiz.
Аналогично без проблем запускается из репозитория bitbucket.org/skvorl/beremiz

Но yaplcide выдает ошибку:
igor@ThinkPad:~/acs/beremiz/nucleron/IDE$ pycharm-community yaplcide.py
Traceback (most recent call last):
File "yaplcide.py", line 100, in <module>
from util.misc import InstallLocalRessources
ImportError: cannot import name InstallLocalRessources

Что-то я еще не установил?


Опять же повторю, что с вопросами лучше в список рассылки beremiz-devel@lists.sourceforge.net.
Напишите туда, помогут. ;-)

Автор: bigmaxtor Mar 13 2017, 10:34

Цитата(griabig @ Mar 13 2017, 12:19) *
Опять же повторю, что с вопросами лучше в список рассылки beremiz-devel@lists.sourceforge.net.
Напишите туда, помогут. ;-)


Благодарю. Буду осваивать тамошний непростой интерфейс.

Автор: griabig Mar 13 2017, 10:44

Цитата(bigmaxtor @ Mar 13 2017, 13:34) *
Благодарю. Буду осваивать тамошний непростой интерфейс.


Я так понимаю, что Вы списками рассылки не пользовались.
Там всё просто. По сути Вашим интерфейсом является Ваш почтовый клиент.

Регистрируете свой почтовый адрес здесь: http://electronix.ru/redirect.php?https://lists.sourceforge.net/lists/listinfo/beremiz-devel
После этого Вам на почту будут приходить сообщения других людей, пишущих в рассылку (трафика не много)
Отправляете письмо на адрес рассылки и его получают другие подписчики. Кто может помочь, тот отвечает.


Автор: bigmaxtor Mar 16 2017, 07:51

Цитата(griabig @ Mar 10 2017, 14:18) *
Репозиторий безусловно правильный, но часть надо брать с http://electronix.ru/redirect.php?https://github.com/nucleron, а часть нет.

Например, Matiec и Beremiz там уже давно неактуальные версии. Их надо брать по следующим адресам:
Beremiz - http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz (здесь ведется сейчас основная разработка),
http://electronix.ru/redirect.php?http://dev.automforge.net/beremiz/ (официальный репозиторий, который периодически синхронизируется с предыдущем)
Matiec - http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/matiec (официальный репозиторий).

По поводу CANFestival могу сказать, что официальный репозиторий сейчас не поддерживается, но есть активный форк библиотеки (https://bitbucket.org/Mongo/canfestival-3-asc).
Если вы используете CANOpen в Beremiz, то имеет смысл рассмотреть переход на поддерживаемую библиотеку.
Возможно, будут какие-то проблемы в Beremiz при обновлении библиотеки. С этими вопросами добро пожаловать в список рассылки beremiz-devel@lists.sourceforge.net.

В любом случае, если Вы занимаетесь разработкой продукта на базе Beremiz, то крайне рекомендую подписаться на список рассылки beremiz-devel@lists.sourceforge.net.
Все вопросы по поводу Beremiz лучше писать туда.

Имя '_' используется для локализации программ.
В принципе, можно (и рекомендуется) использовать python-wx3.0.


Благодарю, IDE запустил. Работа началась.

Автор: griabig Mar 16 2017, 10:09

Цитата(bigmaxtor @ Mar 16 2017, 10:51) *
Благодарю, IDE запустил. Работа началась.


Отлично!

Автор: Ruslan.B Apr 6 2017, 05:37

Хотелось бы попробовать. Пока не понял как ставить под Linux, будем разбираться.

Автор: paulbell Apr 6 2017, 07:43

Цитата(Ruslan.B @ Apr 6 2017, 10:37) *
Хотелось бы попробовать. Пока не понял как ставить под Linux, будем разбираться.


Вот примерная инструкция:

Устанавливаем зависимости:
Цитата
sudo apt-get install codeblocks
sudo apt-get install build-essential bison flex autoconf
sudo apt-get install python-wxgtk2.8 pyro mercurial
sudo apt-get install python-numpy python-nevow python-matplotlib python-lxml


Для YAPLC/RTE и liopencm3 надо поставить
http://electronix.ru/redirect.php?https://launchpad.net/gcc-arm-embedded

Создаем каталог
Цитата
mkdir ~/YAPLC
cd ~/YAPLC


Клонируем репозитории:

Цитата
hg clone http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz/
hg clone http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/matiec

git clone http://electronix.ru/redirect.php?https://github.com/nucleron/RTE.git
git clone http://electronix.ru/redirect.php?https://github.com/nucleron/IDE.git
git clone http://electronix.ru/redirect.php?https://github.com/nucleron/freemodbus-v1.5.0.git
git clone http://electronix.ru/redirect.php?https://github.com/nucleron/stm32flash.git
git clone http://electronix.ru/redirect.php?https://github.com/nucleron/libopencm3.git
git clone http://electronix.ru/redirect.php?https://github.com/nucleron/YaPySerial.git


Собираем matiec:
Цитата
cd ~/YAPLC/matiec
autoreconf -i
./configure
make


Собираем libopencm3

Цитата
cd ~/YAPLC/libopencm3
make


Собираем stm32flash

Цитата
cd ~/YAPLC/stm32flash
make


Для сборки YaPySerial используем codeblocks, цель - POSIX
Для сборки рантаймов под девайсы так же надо codeblocks и gcc-arm-embedded, цель - Debug

Опционально собираем CanFestival-3:
Цитата
hg clone http://electronix.ru/redirect.php?http://dev.automforge.net/CanFestival-3
cd ~/YAPLC/CanFestival-3
./configure --can=virtual
make


Запуск

Цитата
cd ~/YAPLC/IDE
python yaplcide.py


Вроде ничего не забыл...

Автор: x83 Apr 6 2017, 14:46

Цитата(paulbell @ Apr 6 2017, 12:43) *
Вот примерная инструкция:

...
Собираем matiec:
autoreconf
./configure
make
....


autoreconf ругается
Код
configure.ac:22: error: required file 'config/compile' not found
configure.ac:22:   'automake --add-missing' can install 'compile'
autoreconf: automake failed with exit status: 1


соответственно ./configure выдает ошибку
Код
checking for strdup... yes
checking for strtoul... yes
checking for strtoull... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: error: cannot find input file: `Makefile.in'


Не могу понять чего не хватает? /config/compile вроде во всех репозиториях matiec отсутствует

Автор: psL Apr 6 2017, 14:50

Цитата(paulbell @ Apr 6 2017, 10:43) *
Вот примерная инструкция:

забавно, что на http://electronix.ru/redirect.php?https://github.com/nucleron/YAPLC только README.md

Автор: paulbell Apr 7 2017, 04:54

Цитата(x83 @ Apr 6 2017, 19:46) *
autoreconf ругается
Код
configure.ac:22: error: required file 'config/compile' not found
configure.ac:22:   'automake --add-missing' can install 'compile'
autoreconf: automake failed with exit status: 1


соответственно ./configure выдает ошибку
Код
checking for strdup... yes
checking for strtoul... yes
checking for strtoull... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: error: cannot find input file: `Makefile.in'


Не могу понять чего не хватает? /config/compile вроде во всех репозиториях matiec отсутствует



Только что скачал у matiec из репозитория Андрея, собирается именно этими командами. Система Debian Wheezy.


Цитата(psL @ Apr 6 2017, 19:50) *
забавно, что на http://electronix.ru/redirect.php?https://github.com/nucleron/YAPLC только README.md



Этот репозиторий сделан для бинарников и обратной связи с пользователями.

Автор: x83 Apr 7 2017, 05:14

Цитата(paulbell @ Apr 7 2017, 09:54) *
Только что скачал у matiec из репозитория Андрея, собирается именно этими командами. Система Debian Wheezy.


Система ubuntu 16.04.
Загрузил виртуалку с читым archlinux. Установил зависимы пакеты, получил те-же самые ошибки.

Upd:

Еще раз перечитал маны. Надо делать так:
Код
autoreconf -i

Автор: paulbell Apr 7 2017, 05:30

Цитата(x83 @ Apr 7 2017, 10:14) *
Система ubuntu 16.04.
Загрузил виртуалку с читым archlinux. Установил зависимы пакеты, получил те-же самые ошибки.

Upd:

Еще раз перечитал маны. Надо делать так:
Код
autoreconf -i



Странно! У меня по дефолту сработало!

Автор: griabig Apr 7 2017, 07:11

Цитата(x83 @ Apr 7 2017, 08:14) *
Система ubuntu 16.04.
Загрузил виртуалку с читым archlinux. Установил зависимы пакеты, получил те-же самые ошибки.

Upd:

Еще раз перечитал маны. Надо делать так:
Код
autoreconf -i

Все верно. Необходим ключ -i.
http://electronix.ru/redirect.php?http://www.beremiz.org/doc раздел "How To"

Автор: paulbell Apr 7 2017, 07:30

Цитата(griabig @ Apr 7 2017, 12:11) *
Все верно. Необходим ключ -i.
http://electronix.ru/redirect.php?http://www.beremiz.org/doc раздел "How To"


Поправил пост.

Автор: KelZen Apr 9 2017, 08:08

Стал изучать беремиз, скачал с beremiz.org "1.2 - Russian Release" и, кажется, обнаружил баг. При создании циклической задачи, если время повторения цикла задавать до 4 секунд, то все корректно работает, но если время цикла выставить 4.3 секунды и больше - то период выполнения задачи не соответствует заданному, а гораздо больше. Целевая платформа - windows. Свой тестовый беремиз проект прикрепляю.

 btest5.zip ( 1.7 килобайт ) : 18
 

Автор: griabig Apr 10 2017, 06:52

Цитата(KelZen @ Apr 9 2017, 11:08) *
Стал изучать беремиз, скачал с beremiz.org "1.2 - Russian Release" и, кажется, обнаружил баг. При создании циклической задачи, если время повторения цикла задавать до 4 секунд, то все корректно работает, но если время цикла выставить 4.3 секунды и больше - то период выполнения задачи не соответствует заданному, а гораздо больше. Целевая платформа - windows. Свой тестовый беремиз проект прикрепляю.


Все багрепорты лучше писать на http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz. Пожалуйста, опишите вашу проблему там.
Если сомневаетесь баг ли это, то лучше спросить сначала в списке рассылки beremiz-devel@lists.sourceforge.net.

Автор: griabig Apr 12 2017, 08:41

Цитата(KelZen @ Apr 9 2017, 11:08) *
Стал изучать беремиз, скачал с beremiz.org "1.2 - Russian Release" и, кажется, обнаружил баг. При создании циклической задачи, если время повторения цикла задавать до 4 секунд, то все корректно работает, но если время цикла выставить 4.3 секунды и больше - то период выполнения задачи не соответствует заданному, а гораздо больше. Целевая платформа - windows. Свой тестовый беремиз проект прикрепляю.

Это была проблема не в Beremiz, а в трансляторе matiec.
Исправление уже http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/matiec/commits/52f63e622604033da988c0ef1c2a5e06c678395c.
Спасибо.

Автор: Lost_byte May 30 2017, 07:08

Приветствую коллеги.
Извините за наглый поверхностный подход, но все-таки спрошу, а есть в Beremiz плагин (или еще что-то), для реализации Modbus-RTU/TCP в runtime?
Вчитывался в книгу "Руководство программиста" ИЭУМ им. Брука, увидел пачку интересных плагинов, развернул Beremiz - а их нет.
Понимаю что, наверное ИЭУМ делает свою сборку которая уже не совсем open-source.

Очень интересно было бы иметь в базе Modbus, как это сделано в http://electronix.ru/redirect.php?http://www.openplcproject.com/getting-started-modbus-io. Накрывает чуть ли не половину практических потребностей.

Сориентируйте пожалуйста, в каком направлении копнуть?

Автор: griabig May 30 2017, 10:18

Цитата(Lost_byte @ May 30 2017, 10:08) *
Приветствую коллеги.
Извините за наглый поверхностный подход, но все-таки спрошу, а есть в Beremiz плагин (или еще что-то), для реализации Modbus-RTU/TCP в runtime?
Вчитывался в книгу "Руководство программиста" ИЭУМ им. Брука, увидел пачку интересных плагинов, развернул Beremiz - а их нет.
Понимаю что, наверное ИЭУМ делает свою сборку которая уже не совсем open-source.

Очень интересно было бы иметь в базе Modbus, как это сделано в http://electronix.ru/redirect.php?http://www.openplcproject.com/getting-started-modbus-io. Накрывает чуть ли не половину практических потребностей.

Сориентируйте пожалуйста, в каком направлении копнуть?


Работа над интеграцией Modbus-RTU/TCP идёт. Когда-нибудь она обязательно появится в основном репозитории.
Сейчас для целевых платформ на базе GNU/Linux доступна реализация от http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/beremiz.
Используемая библиотека доступна http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/modbus.
Репозиторий Beremiz от Марио сильно отстаёт от текущей ветки разработки.
Поэтому рекомендуется к Beremiz из http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz, где сейчас в основном ведётся разработка, применить следующую http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/beremiz/commits/bb883e063175bd62bf9432ccea054f6c5575eedb из репозитория Марио.


Если интересует целевая платформа на базе Cortex-Mx, то можете посмотреть, как поддержка Modbus-RTU сделана в основанном на Beremiz http://electronix.ru/redirect.php?https://github.com/nucleron/YAPLC.

Автор: Lost_byte May 30 2017, 11:16

Уж простите новичка. Что-то не получается.
Итак:
1. http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/beremiz/commits/bb883e063175bd62bf9432ccea054f6c5575eedb скачал и наложил без проблем.
2. http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/modbus библиотеку клонировал и собрал, получил libmb.so
3. Что дальше? Куда-то libmb.so нужно положить? Ничего похожего в каталоге Beremiz не нашел.

В выпадающем меню дерева проектов появился компонент Modbus support Но клик по нему приводит к ошибке:

Код
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 14665, in <lambda>
    lambda event: event.callable(*event.args, **event.kw) )
  File "/home/master/Development/OpenPLC/beremiz/beremiz/BeremizIDE.py", line 1033, in AddConfNode
    self.CTR.CTNAddChild(ConfNodeName, ConfNodeType)
  File "/home/master/Development/OpenPLC/beremiz/beremiz/ConfigTreeNode.py", line 533, in CTNAddChild
    CTNClass = CTNClass()
  File "/home/master/Development/OpenPLC/beremiz/beremiz/util/misc.py", line 44, in fac
    mod=__import__(classpath.rsplit('.',1)[0])
ImportError: No module named modbus


Насчет посмотреть YaPLC - это конечно резонно... Смотрю, пытаю, на моей Win7 наблюдаю катастрофические глюки GUI (это при том что чистый PLCOpen Editor вполне вменяем).
Копать надо глубоко, а у меня задача - принять решение, рабочая такая задача, не хоббийная.

Что посоветуете, камраде?

Автор: Lost_byte May 30 2017, 12:28

Цитата(Lost_byte @ May 30 2017, 15:16) *
Уж простите новичка. Что-то не получается.
Итак:
1. http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/beremiz/commits/bb883e063175bd62bf9432ccea054f6c5575eedb скачал и наложил без проблем.
2. http://electronix.ru/redirect.php?https://bitbucket.org/mjsousa/modbus библиотеку клонировал и собрал, получил libmb.so
3. Что дальше? Куда-то libmb.so нужно положить? Ничего похожего в каталоге Beremiz не нашел.

В выпадающем меню дерева проектов появился компонент Modbus support Но клик по нему приводит к ошибке:
Код
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/_core.py", line 14665, in <lambda>
    lambda event: event.callable(*event.args, **event.kw) )
  File "/home/master/Development/OpenPLC/beremiz/beremiz/BeremizIDE.py", line 1033, in AddConfNode
    self.CTR.CTNAddChild(ConfNodeName, ConfNodeType)
  File "/home/master/Development/OpenPLC/beremiz/beremiz/ConfigTreeNode.py", line 533, in CTNAddChild
    CTNClass = CTNClass()
  File "/home/master/Development/OpenPLC/beremiz/beremiz/util/misc.py", line 44, in fac
    mod=__import__(classpath.rsplit('.',1)[0])
ImportError: No module named modbus


Насчет посмотреть YaPLC - это конечно резонно... Смотрю, пытаю, на моей Win7 наблюдаю катастрофические глюки GUI (это при том что чистый PLCOpen Editor вполне вменяем).
Копать надо глубоко, а у меня задача - принять решение, рабочая такая задача, не хоббийная.

Что посоветуете, камраде?


Все-таки патч лег не ровно...
Поведение вылечилось созданием папки modbus и переносом туда файлов:
__init__.py
__init__.pyc
mb_runtime.c
mb_runtime.h
mb_utils.py
mb_utils.pyc
modbus.py
modbus.pyc
README

... после патча они почему-то оказались в корне.

Теперь появляется интерфейс настройки modbus, с единственным редактируемым полем MaxRemoteTCPclients.
Как-то не совсем то что ожидалось. Эх печаль.

Автор: griabig May 30 2017, 14:23

Цитата(Lost_byte @ May 30 2017, 15:28) *
Все-таки патч лег не ровно...
Поведение вылечилось созданием папки modbus и переносом туда файлов:
__init__.py
__init__.pyc
mb_runtime.c
mb_runtime.h
mb_utils.py
mb_utils.pyc
modbus.py
modbus.pyc
README

... после патча они почему-то оказались в корне.

Теперь появляется интерфейс настройки modbus, с единственным редактируемым полем MaxRemoteTCPclients.
Как-то не совсем то что ожидалось. Эх печаль.



А ты пробовал добавлять дочерние узлы к интерфейсу настройки modbus в дереве проекта?
Вообще с вопросами лучше писать в список рассылки Beremiz. Лучше всего на вопросы по поводу этой библиотеки Modbus ответит её автор, который этот форум не читает. ;-)

Цитата(Lost_byte @ May 30 2017, 14:16) *
Насчет посмотреть YaPLC - это конечно резонно... Смотрю, пытаю, на моей Win7 наблюдаю катастрофические глюки GUI (это при том что чистый PLCOpen Editor вполне вменяем).
Копать надо глубоко, а у меня задача - принять решение, рабочая такая задача, не хоббийная.

Что посоветуете, камраде?


глюки GUI - что под этим конкретно подразумевается и у кого? Beremiz? YaPLC?
Автор YaPLC, кстати, список рассылки Beremiz тоже читает.

По поводу промышленного применения Beremiz: http://electronix.ru/redirect.php?http://beremiz.org/apps список тех, кто его уже использует.
У http://electronix.ru/redirect.php?http://www.smarteh.si/ вообще вся продукция основана на Beremiz.
На сайте Beremiz только про один их контроллер написано, но с тех пор у них уже несколько линеек контроллеров и панелей на Beremiz вышло.

Автор: Lost_byte May 31 2017, 06:04

Цитата(griabig @ May 30 2017, 18:23) *
А ты пробовал добавлять дочерние узлы к интерфейсу настройки modbus в дереве проекта?
Вообще с вопросами лучше писать в список рассылки Beremiz. Лучше всего на вопросы по поводу этой библиотеки Modbus ответит её автор, который этот форум не читает. ;-)


Пробовал, позднее чем написал этот пост. Да, видимо это то что надо. Насчет автора modbus - спасибо учту, но пока форум дал мне больше информации, и оперативнее.

Цитата(griabig @ May 30 2017, 18:23) *
глюки GUI - что под этим конкретно подразумевается и у кого? Beremiz? YaPLC?
Автор YaPLC, кстати, список рассылки Beremiz тоже читает.


Конечно YaPLC, контекст предложения однозначен.
Конкретно:
1. Добавляю релейную диаграмму (Ladder);
2. Рисую схему 2 входа - один выход, монтажное-ИЛИ (да в общем то не важно);
3. При копировании элементов произвольно с экрана пропадают то оригиналы то копии;
4. При перетаскивании элемент зрительно остается на месте, появляется в новом (будто ьы обновление экрана) если кликнуть вне области редактирования.
5. Выделенные элементы бывает остаются выделенными "навсегда".


Цитата(griabig @ May 30 2017, 18:23) *
По поводу промышленного применения Beremiz: http://electronix.ru/redirect.php?http://beremiz.org/apps список тех, кто его уже использует.
У http://electronix.ru/redirect.php?http://www.smarteh.si/ вообще вся продукция основана на Beremiz.
На сайте Beremiz только про один их контроллер написано, но с тех пор у них уже несколько линеек контроллеров и панелей на Beremiz вышло.


Здорово, спасибо, да я уже "проехался" по этому списку, жаль что у Нуклерона нет в данный момент инфы о выпускаемых ПЛК, а ИЭУМ им. Брука не предлагает скачать свою сборку Beremiz.

Есть предложение. А может сделать русскоязычную Wiki для Beremiz? Подозреваю что не я один такой интересующийся новичок. В целях популяризации проекта и роста сообщества толковых разработчиков стоило бы снизить порог входимости, например таким вот нехитрым способом.
Сам я готов написать статью по результатам своих изысканий в части Modbus, ну и в общем поставить эдакий начальный "каркас" Wiki. Нужно решить вопрос с размещением ресурса. Наверное самое простое и бесплатное - прямо в битбакете. Вопрос, рядом с основным репозиторием или в отдельном? По опыту вики рядом с репозиторием разработки должны быть посвящены теме именно разработки а не практического использования.

Автор: griabig May 31 2017, 06:51

Цитата(Lost_byte @ May 31 2017, 09:04) *
Пробовал, позднее чем написал этот пост. Да, видимо это то что надо. Насчет автора modbus - спасибо учту, но пока форум дал мне больше информации, и оперативнее.

Почтовая рассылка однозначно оперативнее. Потому что форум этот я проверяю крайне редко. Все актуальные обсуждения ведутся там. В любом случае, если занимаетесь Beremiz, то подписаться на список рассылки крайне рекомендуется.

Цитата(Lost_byte @ May 31 2017, 09:04) *
Конечно YaPLC, контекст предложения однозначен.
Конкретно:
1. Добавляю релейную диаграмму (Ladder);
2. Рисую схему 2 входа - один выход, монтажное-ИЛИ (да в общем то не важно);
3. При копировании элементов произвольно с экрана пропадают то оригиналы то копии;
4. При перетаскивании элемент зрительно остается на месте, появляется в новом (будто ьы обновление экрана) если кликнуть вне области редактирования.
5. Выделенные элементы бывает остаются выделенными "навсегда".

Вообще эта проблема должна повторяться и на Beremiz. YaPLC эту часть кода не затрагивает, поэтому проблема должно присутствовать и в Beremiz и в PLCOpen Editor.
Код они используют один и тот же. Пытался повторить проблему у себя, но что-то не вышло.
Кстати, принудительная перерисовка есть по Ctrl-R.

Цитата(Lost_byte @ May 31 2017, 09:04) *
Здорово, спасибо, да я уже "проехался" по этому списку, жаль что у Нуклерона нет в данный момент инфы о выпускаемых ПЛК,

А спросить?

Цитата(Lost_byte @ May 31 2017, 09:04) *
а ИЭУМ им. Брука не предлагает скачать свою сборку Beremiz.

А спросить? Вдруг вышлют по запросу.

Цитата(Lost_byte @ May 31 2017, 09:04) *
Есть предложение. А может сделать русскоязычную Wiki для Beremiz? Подозреваю что не я один такой интересующийся новичок. В целях популяризации проекта и роста сообщества толковых разработчиков стоило бы снизить порог входимости, например таким вот нехитрым способом.
Сам я готов написать статью по результатам своих изысканий в части Modbus, ну и в общем поставить эдакий начальный "каркас" Wiki. Нужно решить вопрос с размещением ресурса. Наверное самое простое и бесплатное - прямо в битбакете. Вопрос, рядом с основным репозиторием или в отдельном? По опыту вики рядом с репозиторием разработки должны быть посвящены теме именно разработки а не практического использования.

Wiki есть http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz/wiki/Home
Информации там, правда, пока немного. Пишите туда. Абсолютно не вижу проблемы сделать два раздела в вики для разработки и для использования. Сейчас информации не так много, чтобы делать для неё отдельную Wiki. Если понадобится, то часть вики всегда можно вынести в отдельное место.

Автор: paulbell Jun 1 2017, 06:57

Добрый день.

Цитата(Lost_byte @ May 31 2017, 11:04) *
Конечно YaPLC, контекст предложения однозначен.
Конкретно:
1. Добавляю релейную диаграмму (Ladder);
2. Рисую схему 2 входа - один выход, монтажное-ИЛИ (да в общем то не важно);
3. При копировании элементов произвольно с экрана пропадают то оригиналы то копии;
4. При перетаскивании элемент зрительно остается на месте, появляется в новом (будто ьы обновление экрана) если кликнуть вне области редактирования.
5. Выделенные элементы бывает остаются выделенными "навсегда".


У себя воспроизвести не могу, система Win 7 Pro 32bit.

Как сказал griabig, YAPLC/IDE использует код Beremiz, по сути - это запускалка Beremiz с плагинами для, конфигурации, сборки проекта, связи.

Сборка под win основана на http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz_public_dist

Автор: Lost_byte Jun 1 2017, 11:43

Цитата
У себя воспроизвести не могу, система Win 7 Pro 32bit.


У меня Win7 64bit.

А вот PLCOpen Editor использовал с приставкой v2, видимо был когда-то и v1...

Попробую на днях затестить под виртуалкой в Debian.

Вообще не первый раз встречаю "залипания" WxWidget-python проектов, навскидку примеры не приведу, но было точно.
При всем при том что старый добрый Code::Blocks (тоже Wx но на чистом C) работает как часики и порой по удобству/скорости уделывает таких мастодонтов как Eclipse.

P.S. для пруфов могу попробовать записать видосик с экрана и выложить куда-нибудь в облако. Нужно?

Автор: griabig Jun 1 2017, 11:52

Цитата(Lost_byte @ Jun 1 2017, 14:43) *
У меня Win7 64bit.

А вот PLCOpen Editor использовал с приставкой v2, видимо был когда-то и v1...

А где вы такой вообще взяли??? Текущая версия PLCOpen Editor совпадает с текущей версией Beremiz - 1.2-85fdcc04da25.

Цитата(Lost_byte @ Jun 1 2017, 14:43) *
Попробую на днях затестить под виртуалкой в Debian.

Вообще не первый раз встречаю "залипания" WxWidget-python проектов, навскидку примеры не приведу, но было точно.
При всем при том что старый добрый Code::Blocks (тоже Wx но на чистом C) работает как часики и порой по удобству/скорости уделывает таких мастодонтов как Eclipse.

P.S. для пруфов могу попробовать записать видосик с экрана и выложить куда-нибудь в облако. Нужно?

Я пробовал на виртуалке Win7 64bit, не смог воспроизвести.
На моей основной системе, Debian , тоже не получилось.

Автор: Lost_byte Jun 1 2017, 11:59

Цитата(griabig @ Jun 1 2017, 14:52) *
А где вы такой вообще взяли??? Текущая версия PLCOpen Editor совпадает с текущей версией Beremiz - 1.2-85fdcc04da25.


Ваша правда, действительно v1.2. Видимо-где-то я ошибся при сортировке по папочкам и потерял "1."

Автор: Lost_byte Jun 1 2017, 13:17

ну вот захватил небольшой http://electronix.ru/redirect.php?https://yadi.sk/i/xFJ1d2Sl3JjNFB. Жаль что не нашел фревую совтинку с отображением нажатий клавиатуры.
Поэтому напишу здесь: глюки начинаются при попытках сделать Ctrl+C-Ctrl+V. Копипаста может сработать, сработать с окном ошибки (после этого Ctrl-V не работает можно вставить через правый клик), или не сработать вообще, или же привести к порче всего уже нарисованного.


Автор: paulbell Jun 2 2017, 07:14

Цитата(Lost_byte @ Jun 1 2017, 18:17) *
ну вот захватил небольшой http://electronix.ru/redirect.php?https://yadi.sk/i/xFJ1d2Sl3JjNFB. Жаль что не нашел фревую совтинку с отображением нажатий клавиатуры.
Поэтому напишу здесь: глюки начинаются при попытках сделать Ctrl+C-Ctrl+V. Копипаста может сработать, сработать с окном ошибки (после этого Ctrl-V не работает можно вставить через правый клик), или не сработать вообще, или же привести к порче всего уже нарисованного.



У вас в видео на 59 секунде сгенерировался отчет об ошибке, путь к файлу отчета читаем, сможете создать issue здесь : http://electronix.ru/redirect.php?https://bitbucket.org/skvorl/beremiz/issues?status=new&status=open и приложить отчет об ошибке?
Насколько я помню, это можно сделать без регистрации...

Автор: yanvasiij Jun 2 2017, 07:42

Цитата
Насчет посмотреть YaPLC - это конечно резонно... Смотрю, пытаю, на моей Win7 наблюдаю катастрофические глюки GUI (это при том что чистый PLCOpen Editor вполне вменяем).
Копать надо глубоко, а у меня задача - принять решение, рабочая такая задача, не хоббийная.


Мы тут недавно осваивали среду для контроллеров B&R. По сравнению с ней, Beremiz очень даже неплох, при том, что B&R это очень крупная контора (в России конечно они плохо распространены по сравнению с теми же сименсами, бредлями и шнайдерами). Я имею ввиду не дизайн (с дизайном там то в отличии от беремиза все в порядке), а функционал и степень глючности. А по поводу принять решение - какие собственно варианты - codesys, да isagraph? Так там, простите, та еще борода...

Автор: Lost_byte Jun 2 2017, 08:03

Цитата(yanvasiij @ Jun 2 2017, 10:42) *
А по поводу принять решение - какие собственно варианты - codesys, да isagraf? Так там, простите, та еще борода...


Вопрос стоит несколько иначе. Иначе в плане выбора. Если кратко то: писать самим или присоединиться к сообществу open-source?
Третьим элементом вроде как рассматривается "делать оборудование совместимым с...". Но я на своем уровне ответственности выступаю категорически "против" такого пункта выбора.

Автор: griabig Jun 2 2017, 08:10

Цитата(Lost_byte @ Jun 2 2017, 11:03) *
Вопрос стоит несколько иначе. Иначе в плане выбора. Если кратко то: писать самим или присоединиться к сообществу open-source?
Третьим элементом вроде как рассматривается "делать оборудование совместимым с...". Но я на своем уровне ответственности выступаю категорически "против" такого пункта выбора.


Если вы собираетесь писать самим, скажите сколько программистов у вас в штате планирует работать над этим проектом и как долго?

"Делать оборудование совместимым с..." с чем вы хотите сделать его совместимым? В этом случае если у вас не будет письменной договорённости (она будет скорее всего стоить денег),
то к вам рано или поздно могут придти с претензиями.

Автор: Lost_byte Jun 2 2017, 08:28

Цитата(griabig @ Jun 2 2017, 11:10) *
Если вы собираетесь писать самим, скажите сколько программистов у вас в штате планирует работать над этим проектом и как долго?

"Делать оборудование совместимым с..." с чем вы хотите сделать его совместимым? В этом случае если у вас не будет письменной договорённости (она будет скорее всего стоить денег),
то к вам рано или поздно могут придти с претензиями.


Все считается и решается. Лицензии CoDeSys или IsaGraph стоят вполне определенных денег, как и штат специалистов в пересчете на зарплаты/годы.


Есть вопрос. Напишу здесь ибо наверное это не формат mailing-list.
Коллеги, а кто-нибудь видел руководство или примерчик разработки формы wxglade? Что-то я кроме обрывков текста на корейском и пары скриншотов ничего не нагуглил. Может контакт есть с кем можно на эту тему ненавязчиво проконсультироваться?

Автор: griabig Jun 2 2017, 08:33

Цитата(Lost_byte @ Jun 2 2017, 11:24) *
Все считается и решается. Лицензии CoDeSys или IsaGraph стоят вполне определенных денег, как и штат специалистов в пересчете на зарплаты/годы.

Да, в этом-то и дело. Единственно, что писать с нуля своё я бы точно не стал.

Автор: Lost_byte Jun 2 2017, 08:40

Цитата(griabig @ Jun 2 2017, 11:33) *
Да, в этом-то и дело. Единственно, что писать с нуля своё я бы точно не стал.


Да, "давайте перепишем все с нуля" - это порочная практика программирования.

Андрей, чем помочь? Проект действительно интересный. Я не силен в питоне, но вот на С, линукс что-то могу пособить. Ну в плане документирования уже вроде как договорились, тут мне самому бы поднатореть во владении проектом.

Автор: griabig Jun 2 2017, 08:56

Цитата(Lost_byte @ Jun 2 2017, 11:40) *
Да, "давайте перепишем все с нуля" - это порочная практика программирования.

Андрей, чем помочь? Проект действительно интересный. Я не силен в питоне, но вот на С, линукс что-то могу пособить. Ну в плане документирования уже вроде как договорились, тут мне самому бы поднатореть во владении проектом.

С python скорее всего придётся познакомиться, но это не сильно большая проблема, если вы уже опытный программист и знакомы с объектно-ориентированным подходом.
Документация - это была бы огромнейшая помощь. Багрепорты - это тоже хорошо. Присланный код вообще замечательно.
Лучше подписаться на список рассылки и писать текущие вопросы по Beremiz туда.

Автор: Lost_byte Jun 2 2017, 09:03

Цитата(griabig @ Jun 2 2017, 11:56) *
Лучше подписаться на список рассылки и писать текущие вопросы по Beremiz туда.


Дык уже...

Так что с wxGlade? Есть какая инфа? примеры?

Автор: yanvasiij Jun 2 2017, 09:20

Цитата(Lost_byte @ Jun 2 2017, 14:03) *
Так что с wxGlade? Есть какая инфа? примеры?


Если Вы скачали Beremiz с оффициального сайта, то в директории \beremiz\tests, есть папка wxGlade, а в ней пример проекта.

Цитата(Lost_byte @ Jun 2 2017, 13:03) *
Третьим элементом вроде как рассматривается "делать оборудование совместимым с...". Но я на своем уровне ответственности выступаю категорически "против" такого пункта выбора.


Этот вариант не http://electronix.ru/redirect.php?http://www.masterscada.ru/ ли случаем?

Автор: griabig Jun 2 2017, 09:26

Цитата(Lost_byte @ Jun 2 2017, 12:03) *
Дык уже...

Так что с wxGlade? Есть какая инфа? примеры?

примеры, в том числе и по работе с wxGlade, есть в самом Beremiz в директории tests и устанавливаются на рабочий стол в папку BeremizExamples.
Единственно, что я их не смотрел, не было необходимости. Возможно в этой части присутствуют баги.
А вам нужен функционал wxGlade в ПЛК?
Если так, то постараемся в ближайшее время поправить это.

Автор: Lost_byte Jun 2 2017, 10:15

Цитата(griabig @ Jun 2 2017, 12:26) *
А вам нужен функционал wxGlade в ПЛК?


Да, это видится мне весьма полезной фичей при определенных критериях проекта (автоматизации).
Ведь что у нас есть в плане HMI:
- Аварийные лампы, и прочие семафоры не рассматриваем, это отдельная песенка, древняя как сама ПА и решается непосредственно средствами автоматизации;
- Web - интерфейс, самое универсальное и мобильное что можно придумать, но! Для этого нужен web-сервер, а на "панели" нужен браузер, да еще новомодный, с поддержкой javascript и прочими плюхами. В эпоху встраиваемого linux и андроид-планшетов по цене ужина в ресторане уже не проблема, но не всегда это то, что хочет заказчик.
- HMI - панель непосредственно привязанная к ПЛК, то что раньше являлось пультом оператора. Это снимает с платформы ПЛК требования по наличию WEB-сервера, а сама панель может быть например USB-монитором (есть такие, да без видеоинтерфейса вообще, за то с кнопками или тачскрином). А ПЛК по функционалу в таком случае опускается в категорию "программируемое реле", соответственно и ось режется по самое "это вот"... Такие решения очень нравятся заказчикам помешанным на безопасности, ибо бытует мнение что "Если есть Web - значит можно хакнуть". Увы, это мнение, даже при самом критическом рассмотрении, не так далеко от истины. Лучший способ защититься от атаки - не предоставлять лишнего сервиса.

Цитата(yanvasiij @ Jun 2 2017, 12:20) *
Этот вариант не http://electronix.ru/redirect.php?http://www.masterscada.ru/ ли случаем?


Нет. Это самые что ни на есть CoDeSys с IsaGraf'ом. Если хотите вот вам примеры отечественных компаний, идущих по такому пути: http://electronix.ru/redirect.php?https://ipc2u.ru/catalog/promyshlennaya-avtomatizaciya/promyshlennye-kontrollery/pc-kontrollery-linpac-8000/linpac-8000-isagraf-6/, http://electronix.ru/redirect.php?http://www.owen.ru/catalog/codesys_v3/opisanie

Автор: yanvasiij Jun 2 2017, 11:00

Цитата(Lost_byte @ Jun 2 2017, 15:15) *
Нет. Это самые что ни на есть CoDeSys с IsaGraf'ом. Если хотите вот вам примеры отечественных компаний, идущих по такому пути...


Не примеры я хотел, просто Вы не сразу упомянули с кем собираетесь работать "совместно". Поэтому я подумал про MasterScada. У них появился отдел, который пилит свое ядро и среду разработки к нему соответственно. Эти ребята, якобы (не знаю насколько успешно), портировали весь этот набор http://electronix.ru/redirect.php?http://www.prosoftsystems.ru/catalog/show/programmiruemyj-logicheskij-kontroller-regul-r500. После этого начали активно искать еще заказчиков, которые тоже хотят свой контроллер. Парят, что у них все готово, кроме фолловера (который тоже типа скоро будет), так же говорят, что помогут с портированием, забрав часть работы на себя.

Автор: Lost_byte Jun 2 2017, 11:20

Цитата(yanvasiij @ Jun 2 2017, 14:00) *
Не примеры я хотел, просто Вы не сразу упомянули с кем собираетесь работать "совместно". Поэтому я подумал про MasterScada. У них появился отдел, который пилит свое ядро и среду разработки к нему соответственно. Эти ребята, якобы (не знаю насколько успешно), портировали весь этот набор http://electronix.ru/redirect.php?http://www.prosoftsystems.ru/catalog/show/programmiruemyj-logicheskij-kontroller-regul-r500. После этого начали активно искать еще заказчиков, которые тоже хотят свой контроллер. Парят, что у них все готово, кроме фолловера (который тоже типа скоро будет), так же говорят, что помогут с портированием, забрав часть работы на себя.


Нет, я не "оттуда" laughing.gif

Автор: paulbell Jun 2 2017, 11:21

Цитата(Lost_byte @ Jun 2 2017, 15:15) *
- HMI - панель непосредственно привязанная к ПЛК, то что раньше являлось пультом оператора. Это снимает с платформы ПЛК требования по наличию WEB-сервера, а сама панель может быть например USB-монитором (есть такие, да без видеоинтерфейса вообще, за то с кнопками или тачскрином). А ПЛК по функционалу в таком случае опускается в категорию "программируемое реле", соответственно и ось режется по самое "это вот"... Такие решения очень нравятся заказчикам помешанным на безопасности, ибо бытует мнение что "Если есть Web - значит можно хакнуть". Увы, это мнение, даже при самом критическом рассмотрении, не так далеко от истины. Лучший способ защититься от атаки - не предоставлять лишнего сервиса.



THIS!!1



Я считаю, что оптимальный вариант, - панель с 485/Ethernet, на котором, например, Modbus-Master и система HMI, для которой код генерируется в графическом конфигураторе.

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

Автор: griabig Jun 6 2017, 14:17

Цитата(Lost_byte @ Jun 2 2017, 12:03) *
Дык уже...

Так что с wxGlade? Есть какая инфа? примеры?

Обновил примеры в репозитории. Выложил http://electronix.ru/redirect.php?https://www.youtube.com/channel/UCcE4KYI0p1f6CmSwtzyg-ZA. Можешь смотреть.

Автор: bullit Dec 1 2017, 09:01

Всем Здравствуйте!

Помогите разобраться с Beremiz + CANopen в режиме Debug.
Хочу чтоб Beremiz выступал в качестве мастера и "опрашивал" через SDO слейв.
С проектом Beremiz слейв (проект canopen _slave) - всё хорошо: через кан шину опросить беремиз через сдо получается.

Интересно как сделать, чтоб беремиз через sdo запрашивал данные у слейва?))

Заранее спасибо.

С подключением проблем нет: Linux + slcan.

Автор: bullit Dec 4 2017, 08:05

Вопрос снят!

Автор: griabig Dec 4 2017, 08:15

Цитата(bullit @ Dec 1 2017, 12:01) *
Всем Здравствуйте!

Помогите разобраться с Beremiz + CANopen в режиме Debug.
Хочу чтоб Beremiz выступал в качестве мастера и "опрашивал" через SDO слейв.
С проектом Beremiz слейв (проект canopen _slave) - всё хорошо: через кан шину опросить беремиз через сдо получается.

Интересно как сделать, чтоб беремиз через sdo запрашивал данные у слейва?))

Заранее спасибо.

С подключением проблем нет: Linux + slcan.

Спрашивать лучше в списке рассылки beremiz-devel
http://electronix.ru/redirect.php?https://sourceforge.net/projects/beremiz/lists/beremiz-devel

Там выше вероятность, что дадут ответ.

Автор: Ekka Mar 21 2018, 12:08

Здравствуйте) Тоже пытаюсь запустить Beremiz для Stm32f4, ОС - Win7.
У меня почему-то не создается yaplcconfig_0, вернее создается, но ошибка

Код
Невозможно импортировать старый файл yaplcconfig_0.


Что я делаю не так?

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)