Wednesday, January 27, 2010

Jan. 27 - Application Testing and HW mapping

Application Testing
HW mapping determines what applications will be run during deployment.
Usually just 1 application, so can unmap all but 1 application to test.
OR connect the INIT of next application to be tested to output event of previous application.
Then they run at same time.


4DIAC-IDE preferences FORTE location:
default with no additions: C:\...\4DIAC-IDE_0.3\runtime\FORTE\FORTE_0.3.6.exe
with applications compiled into: 
C:\...\FORTE-0.3.6\FORTE_0.3.6\bin\pc\src\forte.exe


HW mapping
STD mapped to: FBDK.VIS_IN
BFB mapped to: FBDK.VIS_IN; FORTE.EMB_RES; FBDK.VIS_OUT
CFB mapped to: FBDK.VIS_IN; FORTE.EMB_RES; FBDK.VIS_OUT
SFB mapped to: FBDK.VIS_IN; FORTE.EMB_RES; (out via fprintf on bash console)


4DIAC Export:
Only Function Block types are exported.
When Export there is an option to merge old and new source.


Testing via Deployment:
STD: Launch FBDK  (FORTE not used)
BFB: Have input but not used for output
CFB: (will be similar to BFB)
SFB: not sure how / where C++ code gets/ has values of x and y variables
What is OUT.operator ? Why not just OUT like in the calculation.


Given a 4DIAC-IDE 3.7 bug fix pre-release 


Common Error: Event not connected to variable so don't see input.


Etc.
cygwin bash had problems finding the dll?? Thought might be from install of the RCX simulator, but restart of windows seems to have fixed the problem.

Tuesday, January 26, 2010

Jan. 26 - X2Y2 Tutorial


Finished working through the X2Y2 tutorial using standard, basic, composite, and service interface function blocks. The idea is good. The last 3 didn't differ much, but still enough to start seeing the use of the various types. Still havn't done an example with sequence.

BFB and CFB - Device mapping needed?
BFB, CFB, SFB vs STD - How do you tell 4DIAC-IDE which of the 4 applications you are testing? [Tutorial doesn't have How to test yet]

Updated 4DIAC quick install while working through the tutorials.

Lego Mindstorms - playing with a simple application that uses variables and displays results, so can set values via display rather than downloading for small changes.


General:
http://www.fb61499.com/
Material slides easier to read than book

Open Office for MS Office Users:
http://www.taming-openoffice-org.com/newsite/?page_id=25
Tracking changes:
under Tools/Options/Change
and
under edit/ changes/ record

Comments:
edit / changes / comment (if on a change)
otherwise
insert/ note

Monday, January 25, 2010

. Jan. - Current Plans - Copied from Email 19. Jan.



Line follower and color sorter I will build and test in part at home and on Fri (testing) - since the school has a color sensor.  
They are using Java.
I will start the assembly line at home and then see. 


----
I am adding to my TODO list to try Legos with C or C++, since ECOS may not be possible. 
(Change: Looks like ECOS will be running soon on LEGO NXT)



Most useful idea from visiting HTL on Friday related to this is for Line follower - Why use just 1 light sensor (other than only 1 comes with kit)  Why not 2 or 3 light sensors?
Seems like it would be good for 1499. May need to use some other sensor instead.  Its a Matura class and they seem like a good group to try out 4DIAC on. They are doing what we did in the TU Lego Robolab class with Lejos at the moment. They will be doing a Lego robot that balances on 2 wheels as part of some matura project.


Prioritized "TODO" list
1. Line follower in 4DIAC
2. LEGO models
3. Other models in 4DIAC
4. Interfaces between 4DIAC and LEGO
Need 1 - originally EOS (Did I leave out a letter?)
Options - (ECOS; C/C++ Legos; Java to FBDK; with Greenfoot simulation; Lego simulator)


End goal: Tutorial 
Related Side item:  Quick installation
Can start after finishing Line follower in 4 DIAC, But want to "beat it to death"  so dont lose the student/ user.

Nov Notes


Nov. 17
Problem was = statt :=  in Structured Text language
better if confirm  (alle Falle)  so weiss wenn Lost

Motor (interface)
(mindesten?) 1 Fn / Sensor  (2 gleichseitig oder 2 verschiedene)
 vergleichen mit Lego zu Weihnachten  (Lego - Labview is dataview)

LED output

Review get started docs

Getting Started:

Dependencies
(install beforehand)
- Java  http://java.sun.com/javase/downloads/index.jsp
- cvgwin
- Eclipse with C++  http://www.eclipse.org/downloads/

(Note: Ubuntu Synaptic Package finds both, but you must chose your Java JDK)

- Download 4DIAC and extract  http://www.fordiac.org/14.0.html

- FBDK www.holobloc.com/doc/fbdk/gettingstarted.htm

Nov.11
Appl so change to System View
Application and System model

-------
Nov.10
FORTE_0.3.6
  src --> arch (platform specfic wie PC, n
etos (RT O/S); eCos(kommt))
  core  (intern)
  fblib  (basis Klassen,
     put your own fn blks (c++ code) here (in own dir)

Testing:
Export
File - import - root dir FORTE

FORTE make (right)
  1st time - make setupPC
  make all

goes into bin dir




Comment: better application code not in transition condition (pros/cons)

For testing: Export FORTE
add cpp file to makefile.am in src dir
compile it either eclipse import as project or gcc


Overview IEC61499
Standard / Book by Robert Lewis older version of this std

Lab 1: Give them instructions to build the robot
Position control = 1 unit forward/backward
Optional/extra tasks


Very well described mechanical set-up - Building plan or "plant" there.
All labs: Fn Description missing - what should the final behavior be. = acceptance test

Lego CAD tools:
Lego CAD - mlcad http://www.lm-software.com/mlcad/




http://ldd.lego.com/ Lego designer


------
LEGO (project) --> LegoDA--> Hysteresis
(Sept. was exported so also under typelibrary--> LegoDA-->PIcntlr)

Hysteresis:
&((y=false) AND (x > xmax))  ((y=true) AND (x < xmin))
y = !y
Current Frage




On Tue, Nov 3, 2009 at 8:34 PM, Carolyn Oates <traisenstp@gmail.com> wrote:
Treffen Protokol:
Termine - Di (13 Uhr) 11/10  11/17 12/1
Wahrscheinlich Do. 11/3 13 Uhr  um Testing


Aufgabe für 11/10
Beschreibung die Aufgabestellung (für Schul Aufbau/ Fn = Spezification)

Beachten: Gleich beschreiben /strukturien
Line Follower--> Car Wash
                   --> Sorter(?)--> Assembly Line (group/station)


Wiederholung - Forte (Fn Blks in FORTE; applications mit devices)


PI Beispiel - Wiederholung; Erklaren ECC


Steuerdesign grob design in 4DIAC
   Festlegen wie mit HW bzw. welche Sensor
Service Interface Design
Block der Motor Geschwindigkeit / position


----
1. Create or find block(s) need for application and import/ convert into C++ type in the Forte type library.


4DIAC-IDE under Tool Library --> typelibrary --> LEGO_DA
1 Library pro Project
   (Tipp: Aufpassen Blocke kommen in richtige Project)
   zB. PIcntlr in LEGO_DA
    exportiern zu C++ (*.h *.cpp)
  Compile new FORTE mit deine Files und link mit Forte


Applications can be distributed on multiple devices (via resources in/on device)


Deployment mgr (=downloads) configure TCP/IP port (default port: 61499; IP addr: local host or IP addr of device)
 (see attached drawing)




-----
Explain PI ECC
ECC see p.73 Basic Fn Blks
Trigger=event or condition based not time based
Action is algo & /or event
       only executed on state entry
       trigger is after all actions are finished/completed.
Service Interface Fn Blks should have INIT and INITO
But Events no naming stds like Large letters after Init whatever


2. Neue Aufgabe: Hysteresis Regler


Gut Erklarung von Hysteresis:
http://euclid.ucc.ie/hysteresis/node10.htm

Thursday, January 21, 2010

Jan.21 Further X2Y2 Testing

X2Y2 application always should return x^2+y^2

Basis is X2X2 Tutorial
Goals:
  • to understand 61499 Function Blocks / 4DIAC-IDE details
  • to test the tutorial contents.
Observations / Questions / Problems:
Data or data flow:

IN_ANY / OUT_ANY from hmi.FBRT Pallete:
Output is not like in tutorial? Why?
(System section may be for all 4 examples so you don't have to keep changing user interface details, which are a side issue.)

1. Output for 3 fields is 2 1/2 fields high
Easiest Solution:
   re-size with mouse and forget it
Easiest correction:
in X2Y2. System Configuration
in VIS_IN (panel resource) set ROWS value to 2
GRID variable can be empty for now.

2. Also after cold start the old y value is used, but not shown.
Solution: Feedback from OUT_ANY

Ingo noticed FORTE is not mapped to anything, so if don't check FORTE it won't be downloaded and does not have to be launched for this simple first example.

I/O notes:
W: width is ignored if in System Configuration the GRID variable is used.

Tables.xls : EventStds
shows standard mapping of in to out events and in to out  Data variables. (Ref: Std. Table 2)

X2Y2_BFB started.

Hints:
Accidentally via right click selected unmap (hardware) for OUT_ANY and lost the output field.

Jan.20 After Christmas

Forgot power for labtop, so copied to a dept PC. This allowed checking/documenting what changes to quick install by adding when a copy of 4DIAC is used. In turn was Fordiac Quick Install updated (preferences) and Using a Copy added to it. Also probably fixed the reason X2Y2 wouldn't deploy correctly.

Proofing X2Y2 Tutorial:

1.System:
  • define and configure devices working together for 61499
  • mapping
Testing X2Y2 tutorial:
Launch: (with port defined in project System Configuration)
  • FBDK   - started when see
    • cmd window for rmt_frame_arg.bat with IP:localhost:ipaddr
    • RMT_FRAME
  • FORTE  - started when see
    • cmd window for rmt_frame_arg.bat with IP:localhost:ipaddr ..............
Download: check applications 


Error in in_any palette 
INDication event occurs from enter
REQ goes with CNF (confirm)
RSP(response) goes INDicate
problem with palette used


Miscellaneous
Open Office-->  Manage changes  (is hidden well) so google:  open office turn off track changes

Links found that could generalize preferences with window system environment variables,  
However 4DIAC-IDE doesn't recognize system variables.

http://kennethhunt.com/archives/000933.html 
  %xx% variable names like %username%

http://www.codeguru.com/cpp/w-p/win32/tutorials/article.php/c10849/#more
     C++ src code example link at bottom


Tuesday, January 19, 2010

Follow the process

This blog is keep notes in one place and documents/ follow the process to prepare the tutorial 
using Lego Mindstorms and 4DIAC (TU ACIN) to explain IEC41699.


The major ideas and end results of a tutorial using Lego Mindstorms and 4DIAC (TU ACIN) to  
explain EC41699 are in a separate blog Robots61499.
Posts will include weekly status meetings as well as links and papers that seem interesting at 
the time. Some links and ideas will turn out to be rabbit trails. Others would otherwise be lost 
before time to write up the project. Here both useful and random ideas notes will be kept.
Since the project is in already in progress, beginning entries will be a mixture of past notes and current notes.
Entries with * are collections of notes for a specific topic. 

(May 4 update - started adding labels to posts.)