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

Berätta om dina pågående projekt.
TERdON
EF Sponsor
Inlägg: 295
Blev medlem: 15 november 2006, 04:38:29
Ort: Solna/Laholm
Kontakt:

Inlägg av TERdON »

Trevligt trevligt. Har upp över öronen med jobb, har inte ens varit i närheten av några privatprojekt senaste året. Får ta och titta vidare på det här senare, verkar ha blivit najs i alla fall. :-)
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Nu har jag skrivit kod för det viktigaste funktionsblocken. Kan för tillfället
inte komma på något mer, men jag har säkert glömt något. Förslag?

Dessa har jag gjort:
AND
FTrig - falling edge
NOT - inverterare
OR
RS - set RESET
RTrig - rising edge
SR - SET reset
TOff - frånslagsfördröjd timer
TOn - tillslagsfördröjd timer
TP - tidsbestämd pulsutgång

XOR har jag inte gjort då det är så sällan den används.

CADningen har jag inte påbörjat då det är så himla trökigt.
Användarvisningsbild
Purre
EF Sponsor
Inlägg: 5132
Blev medlem: 7 januari 2006, 18:19:15
Ort: Eskilstuna

Inlägg av Purre »

Cad är ju trevligt skulle jag snarare vilja säga :)
Annars räknare kanske du vill ha?
Mindmapper
Inlägg: 7101
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Inlägg av Mindmapper »

Shiftregister kan vara bra ibland!
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Jag hade egentligen bara tänkt mig digital signaler men det är klart, man
kan ju ha nytta av analog värden även om inte har analoga I/O. Det tänkte
jag inte på.

Då gör vi en lista:

Datatyper
int16
uint16
int32
uint32
float

Funktionsblock
ct - räknare (upp, ned, reset & preset)
sl, sr - shift left/right
fifo

abs
add
sub
mul
div

eq - EQual
ne - Not Equal
gt - Greater Then
ge - Greater then or Equal
le - Less then or Equal
lt - Less Then

sel - väljare
min
max
Senast redigerad av pheer 12 juni 2008, 19:05:33, redigerad totalt 1 gång.
Användarvisningsbild
bonecrime
Inlägg: 575
Blev medlem: 23 januari 2007, 18:35:49
Kontakt:

Inlägg av bonecrime »

En FIFO funktion kanske vore bra att ha med? Om jag inte missat att du skrivit det då vill säga.
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Jag lägger till FIFO på listan. Själv har jag aldrig använt en FIFO i PLC-
sammanhang, i vilka situatuiner kan den vara bra att ha?

Efter att hållt mest i MPLAB den sista tiden har jag återgått till Visual
Studio. Har nu fått till "layoten" i programeditorn så att arbetsytan blir som
man ställer in under utskriftsformat, samt fixat utskriftsunktion och
förhandsgranskning, se bild.

Sen har jag börjat lite smått att rita ett schema för cpu-kortet.

Lines of code: 7754 (+201)
Maintainability index: 80 (+-0)

Programmet för den som vill prova 080612_indcont_setup.exe (425kB)
Rapportera gärna ev. buggar som ni stöter på. .NET framework 2.0 krävs.

Bild
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Det var ju ett tag sen sista uppdateringen. Jag har mest sysslat med
programmering/konsolidering (fint ord va? :) ) av befintlig kod/funktioner.
Macgyver på forumet har hjälpt till och hittat ett antal buggar.

Online-läge har kommit till där man kan se värden på variabler i variabel-
och i/o-listor. Se bild nedan

Bild

Koden för anslutningsdragning i programeditorn har fixats och optimeras så
att anslutningarna blir skapliga, ibland händer det dock att de får en
trappform.

Bild

Det schema jag hade påbörjat för CPU-kort har jag kasta för länge sedan
då jag inte fick ihop det något bra p.g.a. alla anslutningar. Jag tänker nu
använda en mindre dsPIC som förhoppninvsvis blir enklare att cadda.

Denna kapsling tänkte jag använda. 1st för cpu-kort och 2st för i/o-kort.
Jag funderar på 2st alternativ, antingen göra ett DI-kort (10-16 digital
ingångar) och ett DO-kort(10-16 digitala utgångar) eller göra 2st DI/DO-
kort, med 8st DI och 8st DO på.

Bild

De digitala ingångarna ska bestå av optokopplare. De digital utgångarna
ska bestå av relän.
Norpan
Inlägg: 2229
Blev medlem: 12 april 2008, 18:20:27
Ort: Småland

Inlägg av Norpan »

En funktion som ofta inte finns men är trevlig när den gör det, och som dessutom är lite knölig att göra, är ALT eller TOGGLE.
Den gör så att man kan få tillslag och frånslag varannan gång en ingång blir påverkad.
Joe
Inlägg: 1804
Blev medlem: 3 mars 2006, 17:00:50
Ort: Södermanland

Inlägg av Joe »

Precis vad jag tänkte skriva!
En JK flip flop funkar som en toggle men kräver oftast en rising edge trig innan.

Sen finns det ju NAND, NOR, XOR + word funktioner WAND, WNAND osv osv..


Och sen är det alltid trevligt med färdiga block att använda såsom PID controller, veckour, osv...
bara_hence
Inlägg: 79
Blev medlem: 16 maj 2006, 23:04:41
Ort: Bollnäs

Inlägg av bara_hence »

Tänkte tipsa om oscat.de där finns det en massa funktionsblock skrivna i scl.. Kan ju ladda ner källkoden och översätta till ditt språk vore ju inte så svårt då får du ju en massa funktionsblock utan att kanske behöva tänka så värst mycket.. Funktionerna är beskrivna på tyska men det är inte omöjligt att förstå iaf..
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

Norpan: den går att realisera med 1 RTrig, 2 And och en SR. I mitt program
kan användaren själv skapa egna bibliotek med egna funktionsblock. En
toggle skulle då kunna se ut så här:
Bild
Bild


Joe: bra att du påminde mig, datum och tid hade jag glömt bort. Ska pilla
dit en 32kHz-kristall på nästa cpu-pcb. PID ska jag göra i samband att jag
gör ai- och ao-kort.


hence: Oscat verkar ju intressant men jag lyckas inte ladda ner något,
varken i Opera eller ie.

Det här med bibliotek och funktionsblock är inget jag lägger någon tid på i
det här skedet av projektet. Prioritet ett är att få ett väl fungerande system
först.

Sen sist har jag etsat tre st. kort. Nedan visas cpu-kortet. Det har plats för
en dsPIC30F4011, en MAX232 för rs232-anslutning och en FT232 för usb-
anslutning. Både rs232 och usb är dock kopplade till samma uart, vilken
man vill använda väljer man med två byglar på kortet.

Den stora kontakten upp till höger är för anslutning av 16st di, den mindre
kontakten för anslutning av 8st do. På 6-poliga kontakten ansluter man ICD2 för programmering av bootloader.

Bild

Så här ser kapslingen ut med en anslutningsplint nertill. Men lappen ska
jag försöka designa om så att den får ett lite mer proffsigt/industriellt
utseende.

Bild

Så här kan det se ut i online-läge.
* I bakgrunden syns det lilla testprogrammet med några logikgrindar.
* Till höger syns huvudfönstret varifrån man startar/stoppar exekveringen.
* Nere till vänster visas variabellistan för globala variabler i online-läge. Värdet i current value-kolumnen uppdateras kontinuerligt.
* De små rutorna symboliserar i/o. De är knutna till respektive global variabel som heter bInX och bOutX.
Bild

Nu ska jag beställa lite smågrejer från Elfa som behövs för att göra di- och
do-kortet kompletta.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Detta är ju skrämmande seriöst! Jag önskar att jag kunde göra lika snygga/avancerade program! *Springer genast till labbdatorn och fortsätter att programmera och drömma om framtiden* :D
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1353
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Inlägg av baron3d »

Vad sägs om ett sekvens register.
När en sak är klar ger den signal till registret och nästa sak startar.
Alltså en in och en ut för varje register del.
pheer
EF Sponsor
Inlägg: 1283
Blev medlem: 16 januari 2005, 18:05:21

Inlägg av pheer »

squiz3r: :D du verkar ju ha intresset för elektronik och programmering,
då är det bara en tidsfråga innan du gör lika grymma program som jag 8)

baron3d: typ nåt sånt? För att få till fina sekvenser tänkte jag göra en sfc
editor. Men det dröjer nog innan jag kommer dit. Det återstår fortfarande
en hel del småpyssel i fbd-editorn.
Bild

Lines of code: 9911 (+2157)
Maintainability index: 83 (+3)
Skriv svar