УкраїнськаEnglishmRussian
Вход/Новый
В теме много сообщений

OpenSCADA+RaspberryPi


Автор Сообщение
Сообщение создано: 25. 02. 2016 [13:32]
Athlocatle
Vyatcheslav Perevalov
Создатель темы
Зарегистрирован(а) с: 21.10.2008
Сообщения: 8
Имеется Raspberry Pi Type: Model B, Revision: 2, Memory: 512MB
Также имеется плата PiFace Digital ( http://www.piface.org.uk/ ).
Появилось желание из этого сделать PLC.

На Raspberry поставил OpenSCADA, создал контроллер DAQ.JavaLikeCalc.PiFace, параметр PinsState.

Поля данных параметра :
JAVASCRIPT
In:Inputs:Дискретные входы
OutState:DiscreteOutputsState:Состояние Дискретных выходов
In0:DI0:Дискретный вход 0
In1:DI1:Дискретный вход 1
In2:DI2:Дискретный вход 2
In3:DI3:Дискретный вход 3
In4:DI4:Дискретный вход 4
In5:DI5:Дискретный вход 5
In6:DI6:Дискретный вход 6
In7:DI7:Дискретный вход 7
OutState0:OutState0:Значение дискретного выхода 0
OutState1:OutState1:Значение дискретного выхода 1
OutState2:OutState2:Значение дискретного выхода 2
OutState3:OutState3:Значение дискретного выхода 3
OutState4:OutState4:Значение дискретного выхода 4
OutState5:OutState5:Значение дискретного выхода 5
OutState6:OutState6:Значение дискретного выхода 6
OutState7:OutState7:Значение дискретного выхода 7
ByteToWrite:ByteToWrite:Byte To Write


Функция контроллера sys_compile.PiFace_ReadPins:
JAVASCRIPT
/*struct 	{
			unsigned In0 : 1;
			unsigned In1 : 1;
			unsigned In2 : 1;
			unsigned In3 : 1;
			unsigned In4 : 1;
			unsigned In5 : 1;
			unsigned In6 : 1;
			unsigned In7 : 1;
			} In;*/
 
using Special.FLibSYS;
In=sysCall("pifacedigital read input");
OutState=sysCall("pifacedigital read output");
//
In0=In&1;
In1=(In&2)>>1;
In2=(In&4)>>2;
In3=(In&8)>>3;
In4=(In&16)>>4;
In5=(In&32)>>5;
In6=(In&64)>>6;
In7=(In&128)>>7;
//
OutState0=OutState&1;
OutState1=(OutState&2)>>1;
OutState2=(OutState&4)>>2;
OutState3=(OutState&8)>>3;
OutState4=(OutState&16)>>4;
OutState5=(OutState&32)>>5;
OutState6=(OutState&64)>>6;
OutState7=(OutState&128)>>7;
 
message="pifacedigital write output "+ByteToWrite;
OutSet=sysCall(message);


Утилита pifacedigital взята отсюда: https://github.com/piface/libpifacedigital/archive/master.zip
Для её сборки необходима библиотека https://github.com/piface/libmcp23s17/archive/master.zip

Всё работает (вродебы, более точно будет известно, когда рядом с испытательным стендом будет человек; железки сейчас от меня в 400 км).
Но есть небольшое "НО". Время исполнения порядка 60-80-100 мс. Связано это с тем, что используется функция sysCall().
Пока не мешает, но "неаккуратненько как-то". Может ли кто-нить на основании изложенных данных сваять модуль подсистемы DAQ ибо сам я не осилю?
И второй вопрос: Почему программа не ест объявление структуры (закомментарено в начале приведённой программы)?

[Сообщение редактировалось 1 раз(а), в последний раз 25.02.2016 в 13:58.]
Сообщение создано: 25. 02. 2016 [16:41]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"Athlocatle" wrote:

Всё работает (вродебы, более точно будет известно, когда рядом с испытательным стендом будет человек; железки сейчас от меня в 400 км).
Но есть небольшое "НО". Время исполнения порядка 60-80-100 мс. Связано это с тем, что используется функция sysCall().

Ну да, конечно, а сам "pifacedigital" дважды просто мгновенно исполняется. :)

"Athlocatle" wrote:

И второй вопрос: Почему программа не ест объявление структуры (закомментарено в начале приведённой программы)?

Почему должна и где написано об этом?

Learn, learn and learn better than work, work and work.
Сообщение создано: 26. 02. 2016 [04:54]
Athlocatle
Vyatcheslav Perevalov
Создатель темы
Зарегистрирован(а) с: 21.10.2008
Сообщения: 8
"roman" wrote:

"Athlocatle" wrote:

Всё работает (вродебы, более точно будет известно, когда рядом с испытательным стендом будет человек; железки сейчас от меня в 400 км).
Но есть небольшое "НО". Время исполнения порядка 60-80-100 мс. Связано это с тем, что используется функция sysCall().

Ну да, конечно, а сам "pifacedigital" дважды просто мгновенно исполняется. :)

Нет конечно, но время исполнения на пару порядков всё-таки меньше. Видел описание, как набортными релюшками исполняли ноту "ми". Софтинка как-то так и называлась, не то "метроном", не то "камертон". Стало быть время исполнения много меньше миллисекунды.

И не дважды, а трижды.


"Athlocatle" wrote:

И второй вопрос: Почему программа не ест объявление структуры (закомментарено в начале приведённой программы)?

Почему должна и где написано об этом?

Не сказать, чтобы должна, и скорее всего не написано нигде, но хочется. :)

[Сообщение редактировалось 1 раз(а), в последний раз 26.02.2016 в 05:02.]
Сообщение создано: 26. 04. 2016 [11:24]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"Athlocatle" wrote:

Но есть небольшое "НО". Время исполнения порядка 60-80-100 мс. Связано это с тем, что используется функция sysCall().
Пока не мешает, но "неаккуратненько как-то". Может ли кто-нить на основании изложенных данных сваять модуль подсистемы DAQ ибо сам я не осилю?

http://wiki.oscada.org/Using/PLC#h1086-13

Learn, learn and learn better than work, work and work.
Сообщение создано: 26. 03. 2017 [11:20]
arcsin
Аркадий Кисель
Contributor
Зарегистрирован(а) с: 17.02.2017
Сообщения: 77
"Athlocatle" wrote:

Имеется Raspberry Pi Type: Model B, Revision: 2, Memory: 512MB

у меня такая же. ставили из пакетов или собирали прямо на плате? по вики понял, что можно поставить только для PI2 и PI3 из репозитория, а именно для первой версии собирать прямо на ней. подключил репозиторий, попробовал установить: вроде бы стала, но openscada_start стартует и показыват стартовое окно выбора проекта, но при выборе проекта падает с ошибкой "$pCmd $@ Program rezult: 132. "
ЗЫ к монитору не подключена, запускаю через ssh -X. может с этим проблема? основной интерес к WebVision.
Сообщение создано: 26. 03. 2017 [13:01]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"arcsin" wrote:

"Athlocatle" wrote:

Имеется Raspberry Pi Type: Model B, Revision: 2, Memory: 512MB

у меня такая же. ставили из пакетов или собирали прямо на плате? по вики понял, что можно поставить только для PI2 и PI3 из репозитория,

Неправильно поняли, для первой-ранней модели репозитория ещё в принципе не было, а когда он появился уже были 2, 3 и Raspbian Wheezy (Debian 7 ARMHF) . Если Вы на первую таки поставите текущий Raspbian Jessie (Debian 8 ARMHF), то можно и там с репозитория.

"arcsin" wrote:

подключил репозиторий, попробовал установить: вроде бы стала, но openscada_start стартует и показыват стартовое окно выбора проекта, но при выборе проекта падает с ошибкой "$pCmd $@ Program rezult: 132. "

Похоже на отсутствия HardFloat на первой с ARMv6 или там инструкции VFP сильно свежие подтянулись, может даже NEON:
В POSIX-системах, SIGILL — сигнал, посылаемый процессу при попытке выполнить неправильно сформированную, несуществующую или привилегированную инструкцию.


Ну да:
Debian 8 armhf: --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb
Raspbian 7,8: --with-arch=armv6 --with-fpu=vfp --with-float=hard

Learn, learn and learn better than work, work and work.
Сообщение создано: 27. 03. 2017 [08:27]
arcsin
Аркадий Кисель
Contributor
Зарегистрирован(а) с: 17.02.2017
Сообщения: 77
"roman" wrote:

Если Вы на первую таки поставите текущий Raspbian Jessie (Debian 8 ARMHF), то можно и там с репозитория.

Да, операционка такая. что можете посоветовать в этой ситуации? сборка из исходников решит вопрос?
Сообщение создано: 27. 03. 2017 [08:46]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"arcsin" wrote:

"roman" wrote:

Если Вы на первую таки поставите текущий Raspbian Jessie (Debian 8 ARMHF), то можно и там с репозитория.

Да, операционка такая. что можете посоветовать в этой ситуации? сборка из исходников решит вопрос?

Да, только локальная пересборка на Raspbian 7,8 и любом из Raspberry Pi 1,2,3.
Поскольку кросскомпилятор ARMHF в Debian 8 отказывается принимать иные опции про плавающую точку:
configure:4114: arm-linux-gnueabihf-gcc -g -O2 --with-fpu=vfp --with-float=hard conftest.c >&5
arm-linux-gnueabihf-gcc: error: unrecognized command line option '--with-fpu=vfp'
arm-linux-gnueabihf-gcc: error: unrecognized command line option '--with-float=hard'


Хотя вторая у него встроена, а первой достаточно и VFP2(--with-fpu=vfp) поскольку всякие VFP4, NEON на производительность уже несильно влияют.

Learn, learn and learn better than work, work and work.
Сообщение создано: 27. 05. 2018 [23:02]
Specar
Александр Антуганов
Зарегистрирован(а) с: 04.07.2014
Сообщения: 20
Доброго дня!
Ставлю на Raspberry pi 3
из исходников
скачал openscada-0.9+r2550
ln -s data/debian_mod debian
dpkg-buildpackage

прерывается с ошибкой
recipe for target 'liboscada_la-tarchval.lo' failedrecipe for target 'liboscada_la-tarchval.lo' failed
^CMakefile:652: recipe for target 'ui_Vision_la-vis_devel_widgs.lo' failed
make[4]: *** [ui_Vision_la-vis_devel_widgs.lo] Error 1
Makefile:638: recipe for target 'ui_Vision_la-vis_devel_dlgs.lo' failed
make[4]: *** [ui_Vision_la-vis_devel_dlgs.lo] Error 1
Makefile:610: recipe for target 'ui_Vision_la-vis_shapes.lo' failed
make[4]: *** [ui_Vision_la-vis_shapes.lo] Error 1
Makefile:624: recipe for target 'ui_Vision_la-vis_devel.lo' failed
make[4]: *** [ui_Vision_la-vis_devel.lo] Error 1
Makefile:857: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Interrupt
Makefile:491: recipe for target 'all' failed
make[2]: *** [all] Interrupt
Makefile:728: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Interrupt
debian/rules:41: recipe for target 'build-stamp' failed
make: *** [build-stamp] Interrupt
dpkg-buildpackage: error: debian/rules build died from signal 2


не могу разобраться с проблемой

[Сообщение редактировалось 1 раз(а), в последний раз 27.05.2018 в 23:04.]
Сообщение создано: 28. 05. 2018 [08:01]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"Specar" wrote:

Ставлю на Raspberry pi 3
из исходников

Зачем, если есть готовые сборки?
Которые, кроме всего прочего, сами по себе подтверждают, что в корректно настроенном сборочном окружении всё собирается!
Ну и раз граблей сборки так сильно захотелось, то зачем их теперь сюда выносить и разделять "удовольствие" с другими? :)

Learn, learn and learn better than work, work and work.



20521