Sida 1 av 7

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

Postat: 28 november 2007, 21:57:43
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.

Postat: 28 november 2007, 22:22:30
av Landrash
Intressant:) Lycka till :D

Postat: 28 november 2007, 23:30:54
av Mindmapper
Skulle lägga till realtidsklocka i hårdvaran. Tycker att den hör till en enkel PLC.

Postat: 29 november 2007, 12:21:51
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?

Postat: 29 november 2007, 13:42:53
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.

Postat: 29 november 2007, 19:57:04
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

Postat: 29 november 2007, 20:56:36
av speakman
> "Task-egenskaper"

:rofl

Postat: 29 november 2007, 21:11:15
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.

Postat: 1 december 2007, 18:29:04
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.

Postat: 9 december 2007, 00:17:47
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

Postat: 9 december 2007, 21:07:47
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...

Postat: 10 december 2007, 18:38:29
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.

Postat: 16 december 2007, 19:38:41
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

Postat: 16 december 2007, 19:45:08
av Tekko
Typ lite hembyggd PLC ?

Postat: 17 december 2007, 17:55:53
av pheer
"Programmable Logic Controller" :whoho: