Difference between revisions of "Beremiz"

From ArmadeusWiki
Jump to: navigation, search
(Target connection)
(Target connection)
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Under_Construction}}
 
 
 
== Introduction ==
 
== Introduction ==
  
Beremiz is free software toolkit for automation. It's conform with [http://en.wikipedia.org/wiki/IEC_61131 IEC61131] languages and can drive graphicaly your system.
+
Beremiz is a Free Software toolkit for automation. It conforms with [http://en.wikipedia.org/wiki/IEC_61131 IEC61131] languages and can graphically drive your system.
 
+
Beremiz is divided in two softwares:
+
  
* '''Beremiz.py''': The Graphical toolkit that run on the Host to drive the target.
+
Beremiz is divided in two software:
* '''Beremiz_service.py''': The target runtime that execute the code compiled by Beremiz.py and sent by network to its.
+
  
Then there are two triky things to do to use beremiz on APF* platforms :
+
* '''Beremiz.py''': the graphical toolkit that run on the Host to drive the target,
 +
* '''Beremiz_service.py''': the target runtime that execute the code compiled by Beremiz.py and sent to it through network.
  
* Configure Beremiz.py to cross-compile binary for ARM
+
There are two tricky things to do to use Beremiz on APF* platforms :
* Run python program Beremiz_service.py on apf.
+
* configure Beremiz.py to cross-compile binary for ARM,
 +
* run Beremiz_service.py on APF.
  
 
== Installation ==
 
== Installation ==
Line 19: Line 16:
 
=== Host ===
 
=== Host ===
  
To see how to install Beremiz on your host, please see the [http://www.beremiz.org/doc official website] (How to build with Linux).
+
Host part of Beremiz is installable through Armadeus Buildroot menuconfig :
  
=== Target ===
+
<pre class="host">
 +
$ make menuconfig
 +
</pre>
  
==== APF28 ====
+
Then select:
 +
<pre class="config">
 +
Target packages  --->
 +
    Development tools  --->
 +
        [*] matiec
 +
    ...
 +
    Graphic libraries and applications (graphic/text)  --->
 +
        [*] beremiz framework
 +
</pre>
  
Python 2.7 and Pyro are required to run Beremiz_service.py.
+
* Build/install it:
 +
<pre class="host">
 +
$ make
 +
</pre>
  
===== install python 2.7 =====
+
* Then to launch it:
run
+
 
<pre class="host">
 
<pre class="host">
make menuconfig
+
$ python buildroot/output/host/opt/beremiz/Beremiz.py
 
</pre>
 
</pre>
On up to date armadeus trunk view, then select :
+
 
 +
=== Target ===
 +
Python 2.7 and Pyro are required to run Beremiz_service.py:
 +
 
 +
<pre class="host">
 +
$ make menuconfig
 +
</pre>
 +
 
 
<pre class="config">
 
<pre class="config">
Package Selection for the target --->
+
Target packages --->
 +
    ...
 
     Interpreter languages and scripting  --->
 
     Interpreter languages and scripting  --->
 +
        ...
 
         [*] python
 
         [*] python
            python module format to install (.py sources only) --->
+
        external python modules --->
                          (X) .py sources only
+
            ...
        core python modules  --->
+
            [*] python-pyro
                    [*] bzip2 module
+
                    [*] bsddb module     
+
                    [*] codecscjk module 
+
                    [*] curses module     
+
                    [*] pyexpat           
+
                    [*] readline         
+
                    [*] ssl               
+
                    [*] unicodedata module
+
                    [*] sqlite module     
+
                    [*] zlib module       
+
                    [*] hashlib module   
+
 
</pre>
 
</pre>
then make :
+
* then:
 
<pre class="host">
 
<pre class="host">
 
$ make
 
$ make
 
</pre>
 
</pre>
  
===== Install Pyro3.14 =====
+
===== Install Beremiz_service.py =====
The tricky method is:
+
 
* download Pyro3.14 tarball [https://pypi.python.org/packages/source/P/Pyro/Pyro-3.14.tar.gz#md5=2101230425e6c76f5aa2e9d5167cbd3b here] and decompress it in your [[nfs]] directory.
+
 
<pre class="host">
 
<pre class="host">
cd /local/export
+
$ make menuconfig
wget https://pypi.python.org/packages/source/P/Pyro/Pyro-3.14.tar.gz#md5=2101230425e6c76f5aa2e9d5167cbd3b
+
tar -zxvf Pyro-3.14.tar.gz
+
 
</pre>
 
</pre>
  
* Then once on your target (APF28) with python 2.7 installed go to your nfs directory and install it :
+
<pre class="config">
<pre class="apf">
+
Target packages  --->
cd /mnt/nfs/Pyro3.14
+
    ...
python setup.py install
+
    Graphic libraries and applications (graphic/text)  --->
</pre>
+
        ...
 
+
        [*] Beremiz runtime
===== Install Beremiz_service.py =====
+
 
+
The tricky method is nearly the same than Pyro.
+
 
+
* copy your beremiz directory under your nfs directory.
+
* launch it with python on your target:
+
<pre class="apf">
+
# cd /mnt/nfs
+
# python Beremiz_service.py
+
Wx unavailable !
+
Twisted unavailable !
+
Pyro port : 3000
+
Pyro object's uri : PYRO://127.0.1.1:3000/7f00010102d100069fec101918092f7c
+
Current working directory : /mnt/nfs/beremiz
+
 
</pre>
 
</pre>
  
Line 93: Line 83:
  
 
* When Beremiz.py is launched on your Host, create or open a project then save it.
 
* When Beremiz.py is launched on your Host, create or open a project then save it.
* With your favorite editor edit the file beremiz.xml then change the URI line:
+
* in project "Config" tab set the correct "URI_location":
 
+
URI_location: PYRO://192.168.0.33:3000
<source lang="xml">
+
<BeremizRoot URI_location="PYRO://192.168.0.33:3000">
+
</source>
+
  
 
Replace 192.168.0.33 by the IP of your APF28.
 
Replace 192.168.0.33 by the IP of your APF28.
  
* Re-open your project then clic on «connect» icon.
+
* then clic on «connect» icon.
 
* You can compile your project and try to send it...
 
* You can compile your project and try to send it...
* ... but you will have this error :
 
<pre class="apf">
 
PLCobject : OFF LOG :NewPLC (d8ad51386680f2337309dc55eddb4383)
 
python: '/mnt/nfs/beremiz/d8ad51386680f2337309dc55eddb4383.so' is not an ELF executable for ARM
 
PLCobject : Traceback (most recent call last):
 
  File "/mnt/nfs/beremiz/runtime/PLCObject.py", line 135, in LoadPLC
 
    self._PLClibraryHandle = dlopen(self._GetLibFileName())
 
OSError: File not found
 
</pre>
 
 
* Because the defaut compliler for Beremiz.py is not for arm ...
 
 
 
* To configure your compiler, go to project configuration (double clic on head of hierarchy) and adding the path of your compiled armgcc :
 
* To configure your compiler, go to project configuration (double clic on head of hierarchy) and adding the path of your compiled armgcc :
 
  YOUR_ARMADEUS_PATH/buildroot/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc
 
  YOUR_ARMADEUS_PATH/buildroot/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc
 
for linker and compiler.
 
for linker and compiler.
  
== Links ==
+
* You can then compile and transfer the program to the APF...
  
 +
== Links ==
 
* [http://www.beremiz.org/ Home page of project].
 
* [http://www.beremiz.org/ Home page of project].
 +
 +
[[Category:Automation]]

Latest revision as of 17:11, 31 July 2014

Introduction

Beremiz is a Free Software toolkit for automation. It conforms with IEC61131 languages and can graphically drive your system.

Beremiz is divided in two software:

  • Beremiz.py: the graphical toolkit that run on the Host to drive the target,
  • Beremiz_service.py: the target runtime that execute the code compiled by Beremiz.py and sent to it through network.

There are two tricky things to do to use Beremiz on APF* platforms :

  • configure Beremiz.py to cross-compile binary for ARM,
  • run Beremiz_service.py on APF.

Installation

Host

Host part of Beremiz is installable through Armadeus Buildroot menuconfig :

$ make menuconfig

Then select:

Target packages  --->
    Development tools  --->
        [*] matiec 
    ...
    Graphic libraries and applications (graphic/text)  --->
        [*] beremiz framework
  • Build/install it:
$ make
  • Then to launch it:
$ python buildroot/output/host/opt/beremiz/Beremiz.py 

Target

Python 2.7 and Pyro are required to run Beremiz_service.py:

$ make menuconfig
Target packages  --->
    ...
    Interpreter languages and scripting  --->
        ...
        [*] python
        external python modules  --->
            ...
            [*] python-pyro
  • then:
$ make
Install Beremiz_service.py
$ make menuconfig
Target packages  --->
    ...
    Graphic libraries and applications (graphic/text)  --->
        ...
        [*] Beremiz runtime

Simple usage

Target connection

  • When Beremiz.py is launched on your Host, create or open a project then save it.
  • in project "Config" tab set the correct "URI_location":
URI_location: PYRO://192.168.0.33:3000

Replace 192.168.0.33 by the IP of your APF28.

  • then clic on «connect» icon.
  • You can compile your project and try to send it...
  • To configure your compiler, go to project configuration (double clic on head of hierarchy) and adding the path of your compiled armgcc :
YOUR_ARMADEUS_PATH/buildroot/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc

for linker and compiler.

  • You can then compile and transfer the program to the APF...

Links