Programmable logic controller (genomgång av sw på s. 6)

Berätta om dina pågående projekt.
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

baron3d: vad är det för projekt? Har det med 3d-motorn att göra?

TERdON: jag lägger förmodligen ut programmet i tråden tillsammans med
en "getting started guide". Då får du gärna prova!

Jag har nu fått ordning på översättningen från fbd till c-kod. Ett exempel:

I följande projekt har ett nytt bibliotek med namnet NewLibrary skapats.
I biblioteket har jag skapat ett nytt funktionsblock med namnet SR.
Bild

I funktionsblocket SR har tre stycken parametrar deklarerats, S, R och Q.
Funktionsblocken OR och AND är instanser av samma block från system-
biblioteket. De har instansnamn som inte visas, nämligen AND_1 och
OR_1. Den svarta fyrkaten vid in2-parametern på AND-blocket indikerar att
anslutningen är inverterad.

Att anslutningen mellan blocken inte visas som ett streck beror på att jag
strukturerat om koden ganska mycket för anslutningshanteringen och inte
har fixat till det än.
Bild

Översättningen av biblioteket NewLibary som endast innehåller funktionsblocket SR blir då så här:

c-fil

Kod: Markera allt

//-------------------------------------------------------------------------
// Includes
//-------------------------------------------------------------------------
#include "project.h"


//-------------------------------------------------------------------------
// Functionblock: SR
//-------------------------------------------------------------------------
void SR( SR_Type *fbdata, bool R, bool S )
{
	OR( fbdata->fbi_OR_1, fbdata->Q, S );
	AND( fbdata->fbi_AND_1, !R, fbdata->OR_1.out );
}//SR()
h-fil

Kod: Markera allt

#ifndef NEWLIBRARY_H
#define NEWLIBRARY_H

//-------------------------------------------------------------------------
// Functionblock: SR
//-------------------------------------------------------------------------
typedef struct {
	// Output parameters
	bool Q,
	// FB instances
	AND_Type fbi_AND_1,
	OR_Type fbi_OR_1
} SR_Type;

void SR( SR_Type *fbdata, bool R, bool S );

#endif
Senast redigerad av pheer 23 mars 2008, 23:52:34, redigerad totalt 3 gånger.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1353
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Inlägg av baron3d »

Nej, det har inte med 3D-motorn att göra(, än).
Projektet är ett grafiskt programspråk för PIC. Det ser ut som vi har ungefär samma mål men jag har en helt annan infallsvinkel. Har jobbat med programmet lite av och till.

Mycket spännande att se kodgenereringen. Provar gärna.
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Var är projekttråden då? Eller ska det bli kommersiellt?

Men detta kommer inte bli ett generellt sätt att programmera pic-kretsar på
utan det kommer att bli en PLC med alla begränsningar och möjligheter det ger.

Glömde ju en sak:
Lines of code: 4565 (+335)
Maintainability index: 77 (+1)
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1353
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Inlägg av baron3d »

Projekttråd !? Har enormt massa projekt igång samtidigt. Jobbar ibland med det ena ibland med det andra osv.. beroende på lust, inspiration, ork och tid. Under vissa perioder har jag bara inte ork och tid.
Skulle jag börja en projekttråd skulle jag ju för skam skull vara tvungen att göra projektet klart!
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Nu börjar programmet bli användbart. Programeditorn är funktionell och
genererar kod.

Nästa steg blir det fixa till något bra för den sista ikonen i projektträdet,
nämligen hårdvaran. Det som främst behöver göras är en editor där man
kan knyta in- och utgångar till variabler.

När det är gjort ska jag prova att manuellt lägga in den genererade koden i
ett mplab-projekt och ladda ner det i en pic och prova av på ett
kopplingsdäck. Det blir spännande! :)

Lines of code: 5243 4565 (+678)
Maintainability index: 76 (-1)
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg av thepirateboy »

Mycket, mycket imponerande. :bravo: :bravo:
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Tack! :D


Så här ser I/O-anslutningseditor ut nu. all kod är dock inte färdig ännu.
Kodgenereringen saknas t.ex. och så ska jag se till att man inte behöver
skriva in variablenamnen manuellt utan kan bläddra precis som när man
knyter variabler till funktionsblock (se bild några inlägg tidigare).
Bild
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Nu har jag trimmat kodgenerering lite här och där så att den genererade
koden kompileras utan fel och varningar i mplab med c30-kompilatorn.

Nästa steg blir att koppla upp en PIC på kopplingaplattan och provade den
genererade koden. Det hoppas jag kunna göra i helgen. Återkommer med bilder och info.

Lines of code: 6101 (+858)
Maintainability index: 76 (+-0)
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Förra helgen provade jag att infoga de genererade filerna i ett mplab-
projekt och laddade ner i en dsPIC30. Jag använde hårdvaran som jag
hade till ledmatris-projektet.

Istället för att löda dit knappar och lysdioder för in- och utgångar mappade
jag om I/O till variabler istället. Dessa kan hämtas av mitt styrprogram
som bygger på programmet som skapades i frekvemsomformarprojektet.

Resultatet då? Det fungerade perfekt från början. Till och med mitt egna
SR-funktionsblock som är uppbyggt av AND och OR fungerade!
:happy:

Fortsättningsvis ska jag fortsätta utveckla programmeringsverktyget lite,
det börjar kännas ganska moget även om det inte har så många finesser.

Ang. hårdvara har jag nästan bestämt mig för att använda den värsta
modellen av dsPIC33. Den har 256kB programminne, 30kB RAM och en
massa finesser.

Hårdvaran med en dsPIC30F4013 i spetsen. Ethernet-modulen används inte i detta projekt än.
Bild

I programmet kan ingångarn påverkas. In- och utgångarna indikeras med röd(0) och grön(1).
Bild

Så här såg det nedladdade programmet ut. Väldigt enkelt men det fyllde
sin funktion som proof of concept.
Bild

Lines of code: 6583 (+482)
Maintainability index: 79 (+3)
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Sen sist har jag haft några rejäla duster med de elaka linkskripten till C30.
Lyckligtvis gick jag segrande ur striden och har nu kommit såpass långt att
programmet kan gå ändra från fbd till hex-fil.

"Operativsystemet" har förpassats till en del av program- och ramminne,
resten är reserverat till använderapplikationen (lite programminne till
bootloadern också).

Sista steget i kedjan är att få ner hex-filen till PIC, även där har jag fått en
del gjort. Jag har skrivit/skrivit om en bootloader till dsPIC30, men
eftersom jag tänkt använda en dsPIC33 måste jag göra lite justeringar i
den koden samt skriva om VB6-koden som GUIt består av till C#-kod för
att kunna integrera i projektet.

Lines of code: 6780 (+197)
Maintainability index: 80 (+1)
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Nu börjar det likna något!

Inlägg av pheer »

Nu har jag fixat så att det går att ladda ner den kompilerade koden.

När de svåraste bitarna nu är överstökade har intresset sjunkit lite och jag
kommer inte att köra på i samma takt som det känns just nu.

Men det som jag kommer att fortsätta med är att cadda hårdvara och
bygga ut systembiblioteket med timers och andra viktiga block.

Lines of code: 7552 (+772)
Maintainability index: 80 (+-0)

Bild
sdujolo2
Inlägg: 158
Blev medlem: 2 oktober 2007, 13:50:35
Ort: Sundsvall

Inlägg av sdujolo2 »

Bra jobb:D
cosmox
EF Sponsor
Inlägg: 3856
Blev medlem: 6 januari 2004, 02:11:54
Ort: Hjälteby - Tjörn

Inlägg av cosmox »

:bravo:

Kul att det funkar!
Du verkar ha lagt ned en hel del tid på detta.
Imponerande!
Användarvisningsbild
JimmyAndersson
Inlägg: 26568
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Instämmer med föregående skrivare.
Imponerande! :tumupp: :tumupp:

Du gör alltid så unika och intressanta projekt. :)
Jag läser allt som skrivs i den här tråden, även om jag inte skrivit så mycket.
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

sdujolo2: tack!

cosmox: tack, jo det har blivit ganska många timmar tror jag

JimmyAndersson: kul att du tycker det :)
Skriv svar