Difference between revisions of "Beremiz"

From ArmadeusWiki
Jump to: navigation, search
m (Target connection)
(Target connection)
Line 114: Line 114:
  
 
* Because the defaut compliler for Beremiz.py is not for arm ...
 
* Because the defaut compliler for Beremiz.py is not for arm ...
* ... to be continued
+
 
 +
* 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.
  
 
== Links ==
 
== Links ==
  
 
* [http://www.beremiz.org/ Home page of project].
 
* [http://www.beremiz.org/ Home page of project].

Revision as of 17:54, 11 July 2013

Page under construction... Construction.png Informations on this page are not guaranteed !!

Introduction

Beremiz is free software toolkit for automation. It's conform with IEC61131 languages and can drive graphicaly your system.

Beremiz is divided in two softwares:

  • 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 by network to its.

Then there are two triky things to do to use beremiz on APF* platforms :

  • Configure Beremiz.py to cross-compile binary for ARM
  • Run python program Beremiz_service.py on apf.

Installation

Host

To see how to install Beremiz on your host, please see the official website (How to build with Linux).

Target

APF28

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

install python 2.7

run

make menuconfig

On up to date armadeus trunk view, then select :

Package Selection for the target  --->
    Interpreter languages and scripting  --->
        [*] python
            python module format to install (.py sources only)  --->
                          (X) .py sources only
         core python modules  --->
                    [*] bzip2 module
                    [*] bsddb module       
                    [*] codecscjk module   
                    [*] curses module      
                    [*] pyexpat            
                    [*] readline           
                    [*] ssl                
                    [*] unicodedata module 
                    [*] sqlite module      
                    [*] zlib module        
                    [*] hashlib module     

then make :

$ make
Install Pyro3.14

The tricky method is:

  • download Pyro3.14 tarball here and decompress it in your nfs directory.
cd /local/export
wget https://pypi.python.org/packages/source/P/Pyro/Pyro-3.14.tar.gz#md5=2101230425e6c76f5aa2e9d5167cbd3b
tar -zxvf Pyro-3.14.tar.gz
  • Then once on your target (APF28) with python 2.7 installed go to your nfs directory and install it :
cd /mnt/nfs/Pyro3.14
python setup.py install
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:
# 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

Simple usage

Target connection

  • 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:
<BeremizRoot URI_location="PYRO://192.168.0.33:3000">

Replace 192.168.0.33 by the IP of your APF28.

  • Re-open your project then clic on «connect» icon.
  • You can compile your project and try to send it...
  • ... but you will have this error :
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
  • 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 :
YOUR_ARMADEUS_PATH/buildroot/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabi-gcc

for linker and compiler.

Links