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

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

Inlägg av pheer »

Då det kliar i programmeringstarmen tänkter jag börja på ett nytt
mastodontprojekt. Nämligen en enkel PLC. Till skillnad från
frekvensomformarprojektet tänkte jag gör detta lite mer strukturerat och
tänka till lite innan jag börjar koppla och programmera. Följande är
grundkonceptet som jag tänker mig.

Hårdvara
Ca 16st digitala utgångar, 24V extern matning. Ca 250mA/utgång.
Galvaniskt skilda från CPUn. Ev. valbara in eller ut.

Ca 16st digitala ingångar, 24V. Galvaniskt skilda från CPUn. Ev. valbara in
eller ut.

RTC

Galvaniskt skild RS232-kommunikation, alt. RS232 över USB.
Minst 115kbit/s.

Ingen I/O-bus. Inget stöd för fältbuss.


Projektstruktur
Ett projekt består av ett eller flera program, bibliotek och en hårdvarudefinition.

Program
Ett program innehåller den kod som ska exekveras av PLCn. Ett projekt
innehåller alltid minst ett program men kan innehålla flera program. Detta
för att man på ett enkelt sätt ska kunna dela upp koden på ett logiskt sätt
anpassat efter t.ex. anläggningens uppbyggnad. Varje program har en
egen prioritet och exekveringsinställningar.

Vidare innehåller varje program ett eller flera underprogram. Även detta för
att man ska kunna organisera koden på liknande sätt som de styrda
objekten existerar i verkligheten.

Koden i sig består av de inbyggda
datatyperna och funktionsblocken samt instanser av datatyper och
funktionsblock definierade i de knutna biblioteken. Det språk som stöds är
FBD (specificerat i IEC-61131-3).

Bibliotek
Under bibliotek i projektstrukturen knyter man de bibliotek man behöver
använda i projektet. Ett bibliotek innehåller definitioner av datatyper och
funktionsblock.

Hårdvara
I hårdvarudefinitionen gör man inställningar för hårdvaran.
Senast redigerad av pheer 14 januari 2009, 22:37:50, redigerad totalt 3 gånger.
Användarvisningsbild
Landrash
Inlägg: 366
Blev medlem: 6 mars 2007, 18:29:07
Ort: Stockhom

Inlägg av Landrash »

Intressant:) Lycka till :D
Mindmapper
Inlägg: 7012
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Inlägg av Mindmapper »

Skulle lägga till realtidsklocka i hårdvaran. Tycker att den hör till en enkel PLC.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

"Varje program har en egen prioritet"

Kanske jag missförstår vad du menar med "program" men varför skulle ett PLC program ha en prioritet? Alla paralella PLC program borde väl exekvera med högsta prioritet och om något av dem inte hinner utföra sin uppgift är det en felsituation... annars är det väl en lite haltande emulering av logikhårdvara?
Mindmapper
Inlägg: 7012
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Inlägg av Mindmapper »

Det är vanligt i större system. Där har man visa delar som kan köras t.ex. var 100e ms medans snabba delar i maskinen ska kollas varje programcykel. Sedan har man interuptdrivna rutiner som går in direkt. Men det är väl frågan om man kan säga att detta är ett enkelt PLC.
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Bra tips med klockan.

Helt korrekt av Mindmapper. Så här ser t.ex. task-inställningarna ut i ABBs Control Builder:

Bild
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

> "Task-egenskaper"

:rofl
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

Okay, så med interruptdrivna rutiner håller man sig inte mera till de periodiska samplingarna av ingångarna, utan kan reagera direkt på en händelse?
Det verkar som om det bara är "programmeringsspråket" som skiljer från en vanlig CPU som exekverar instruktioner sekventiellt.
n00bl0r14n
Inlägg: 129
Blev medlem: 16 november 2007, 13:19:24
Ort: Pedersöre-Finland
Kontakt:

Inlägg av n00bl0r14n »

Nice. Som jag har sett har alla nån sorts fancy program (gui), miniC (eller vad det hette) för att programmera olika kretsar. Vad ska du använda det till?

Föredrar själv assembler

main
btsfsz portb, 00000001
end
osv.

Så tycker jag att man har kontroll över allt man gör.
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

n00bl0r14n: jag hänger inte riktigt med i din fråga där? Undrar du vilken
utvecklingsmiljö jag använder till PIC? Isåfall är svaret MPLAB.

Projektet går SAKTA men säkert framåt. Jag har kommit så långt att jag
insett att det blir ganska omfattande programmering på PC-sidan men att
hårdvaran blir ganska enkel.

Ett litet smakprov på programmeringsverktyget.
Bild
TERdON
EF Sponsor
Inlägg: 295
Blev medlem: 15 november 2006, 04:38:29
Ort: Solna/Laholm
Kontakt:

Inlägg av TERdON »

Vad kör du utvecklingen av programmet i för mjukvara? Jag har haft funderingar på något liknande projekt någon gång, men det har inte blivit mer än just funderingar...
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Jag har precis bytt upp mig till Visual C# 2008 från VB6. Ångrar att jag inte
gjort det tidigare. Det finns en gratisversion, sök på C# express.
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

En lite kort uppdatering. Det har egentligen inte hänt jättemycket men
utseendet på programmet är mycket trevligare nu med lite ikoner.

Variabelhanteringen börjar bli färdig också. Sen tänkte jag ge mig på
bibliotek och skapande av datatyper och funktionsblock. En datatyp blir i
princip en variabellista så det borde gå ganska snabbt.

Även ett funktionsblock består mest "variabellistor", dels de ev. interna
variabler som används och dels parametrarna (in- och ut-anslutningarna).

Bild
Tekko
Inlägg: 9009
Blev medlem: 28 november 2004, 20:19:15

Inlägg av Tekko »

Typ lite hembyggd PLC ?
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

"Programmable Logic Controller" :whoho:
Skriv svar