Siemens LOGO programmering

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
teljemo
Inlägg: 1622
Blev medlem: 5 februari 2011, 12:08:13
Ort: Getinge
Kontakt:

Re: Siemens LOGO programmering

Inlägg av teljemo »

Med en nod menar jag en "instruction". Alltså en av ikonerna man drar ut ifrån instructions menyn till höger till diagram editorn.
Jag programmerar en Omron Cobot (collaborativ robot) genom att dra noder.
(Det är säkert därför jag inte ser det klart i dessa program för att det liknar ett annat programmeringsätt jag hållit på med innan)

Jag kollade igenom dina program nu (Palle500) och det är super kul att du visar flera sätt att åstadkomma resultatet. Ska försöka fördjupa mig lite mer innan jag talar om att jag fortfarande inte fattar det bara! 8)
Du får gärna kommentera sönder shift register 3. Hur läser LOGO instruktionen? Vad gör det olika... instruktionerna. Varför är en flagga blå och vad gör flaggan? Det är så mycket jag vill veta om shift register 3 :happy:

Exempel på ett cobot program som jag nämnde ovan så ni kan se vad jag menar med att jag tänker på fel sätt pga detta.
  • Varje liten ruta/block kallas nod. Man går in i noderna och justerar parametrar och skapar kod. Programmet startar på start noden. (duh)
  • Programmet kan bara gå i pilens riktning. Alltså går roboten till en Point nod. (StartPoint2_Center)
  • Efter det har vi en SET nod som jag använder för att definiera en variabel.
  • Nästa steg är ett antal move noder (holeAdjust och Move2, 3, 4, 5) som talar om för armen att röra sig inkrementellt i olika riktningar. En ensam display nod (Display1) ligger även med ibland dessa. I den har jag lagt in lite info som ska visas på en datorskärm när programmet kör förbi.
  • Efter raden med move noder kommer en if nod som kontrollerar armens koordinater för att se om vi nåt vårt mål. Om inte sänker vi armen 5mm och adderar "1" till en räknare och man gör ett nytt försök med move noderna.
  • Om man gått i mål nollar en set nod föregående räknare innan en annan set nod förändrar en variabel.
  • En Comliance nod släpper sedan ner armen med sin egen vikt under en bestämt tid innan en ny set nod sparar den aktuella z positionen på nytt.
  • Med en if nod gör vi en jämför vi z värdet mot ett bestämt värde och om det är ok visas ett meddelande genom display 2 noden innan armen pausas.
  • Om det inte är ok adderas en 1a i en räknare som sedan den efterföljande if noden kontrollerar.
  • Om räknaren inte är färdig görs ett nytt försök med compliance noden.
  • Om räknaren är färdig visad det på skärmen med Display 1 noden innan roboten pausas.
rotateMoveDown.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Rick81
Inlägg: 746
Blev medlem: 30 december 2005, 13:07:09

Re: Siemens LOGO programmering

Inlägg av Rick81 »

Ojojoj..tacka vet jag C :rofl
Palle500
Inlägg: 4484
Blev medlem: 6 juni 2015, 14:53:06

Siemens LOGO programmering

Inlägg av Palle500 »

Ok, intressant om roboten, men så fungerar absolut inte en PLC.
Äldre programmeringssätt var i reläscheman och även enklare PLC:er sk reläersättare kan "endast" programmeras i grafiskt reläschema. Sen kan man ju beskriva ett program på många sätt, även växla mellan olika presentationssätt i vissa program.
Här kan du läsa grunderna på 10 sidor.
Sök på "Ladderprogrammering steg för steg" om länken krånglar.
https://www.iea.lth.se/aut/literature/L ... 20steg.pdf

Tex denna bild från texten:
IMG_1293.jpg
Övre kopplingen visar vanligt reläschema. Om kontakt A och B är slutna så drar reläspole L.
Nedre kopplingen är ju likadan men presenterad som en "linje" från vänster till höger, dvs plus till minus med kontakter som avsluts med en förbrukare tex reläspole, glödlampa, motor, pump...

På detta sätt ritas s.k relälogik även idag. Tex för hur en motor styrs av olika kontakter och gränslägesbrytare.
Detta sätt att rita funktionerna följde historiskt med in i början av PLC:ernas intåg i industrin. PLC var ju en reläersättare i början och är så fortfarande tex är Siemens LOGO! en avancerad reläersättare och därför helt naturligt används till detta av elektriker.
I barndomen så handritade man reläscheman som sen översattes till logiska kommandolistor som matades in i PLCn via en handhållen terminal.

Edit klipper in en bra förklaring från nätet
Ladder, LD eller LAD är ett grafiskt programspråk för att programmera logik till främst PLC. Ladderkoden ser ut som en stege där den vänstra vertikala pinnen motsvarar elektrisk plus och den högra elektrisk minus. Stegpinnarna innehåller olika logiska grindar som styr olika funktioner i programmet. Koden påminner mycket om elscheman eller reläscheman, vilket gjorde det populärt då elektriker ofta utför enklare programmeringsuppgifter inom automation.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Palle500
Inlägg: 4484
Blev medlem: 6 juni 2015, 14:53:06

Re: Siemens LOGO programmering

Inlägg av Palle500 »

Skillnaden Ladder v.s Instruction list (logiska operationer)
IMG_1295.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
teljemo
Inlägg: 1622
Blev medlem: 5 februari 2011, 12:08:13
Ort: Getinge
Kontakt:

Re: Siemens LOGO programmering

Inlägg av teljemo »

Oh! Tack för länken!
Printar ut på jobbet imorn så har jag fredagsunderhållnigen klar :D
(Det ska vara i pappersform när man ska läsa mer än en handfull sidor) :)

Dina tidigare exempel på instruktioner är skapade med FBD instruktioner. (Det som LOGO!Soft Comfort är inställt på som default)
Den senaste här nu är LAD...
Man kan ju växla mellan dessa 2 i "LOGO!Soft Comfort".
Är LAD att föredra då det verkar vara det vanligare av de 2 "metoderna"?
Palle500
Inlägg: 4484
Blev medlem: 6 juni 2015, 14:53:06

Re: Siemens LOGO programmering

Inlägg av Palle500 »

Ladder är värdelöst att använda i LOGO! Soft jag tog med detta för att det ökar förståelsen. Visst något mycket enkelt kan man köra i Ladder format, men inte med shiftregister, räknare m.m.
Du har en symbol som i övre raden som växlar mellan Ladder och FBD (Function Block Diagram) men den förstör layouten man har på FBD programmet, men spara först sen växla till Ladder så ser du hur det blir, rörigt!
Så jag rekommenderar att du kör i FBD och placerar villkoren som ladder logiken. Ingångar längst till vänster och avsluta med utgångar till höger.
Sen kör du nästa FBD kedja under så du får lite struktur.
Palle500
Inlägg: 4484
Blev medlem: 6 juni 2015, 14:53:06

Re: Siemens LOGO programmering

Inlägg av Palle500 »

Här har du första övningen i hur ett shift register fungerar.
Tänkte mig 4 steg där det sista exemplet utför det du vill åstadkomma. Men lite annorlunda mot tidigare exempel.
tre tryckningar på knappen skall ge följande
S0 = startup läge. lampan är off.
S1 = Lampan blinkar
S2 = Lampan luyser
(nästa tryckning (nr 3) på knappen ger återgång till läge "S0"

#1 Exempel "Shift register 4a" visar hur du kan få in en "1" i shift registret och få den att flytta sig i shift registret. (detta exempel)
#2 Exempel "Shift register 4b" då lägger vi till automatisk inmatning av en "etta" vid start av PLC och hur vi kan räkna till 3 knapptrycktryckningar (eller flera).
#3 Exempel "Shift register 4C" då lägger vi till själva utgången Q1 som tänder lampan.
#4 Exempel "Shift register 4d" då lägger vi still en asynkron pulsgenerator som skapar blinket av lampan i läge 2 (S1.2)

Shift register 4a.JPG
EDIT
Shift register används ofta för att peta bort felaktiga saker som kommer åkande på ett transportband. Du shiftar in en "etta" (S1.1) vid fel och längre fram tex vid (S1.6) så petar du bort den felaktiga saken om (S1.6) är en "etta".

Shift register 4a.zip
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Palle500
Inlägg: 4484
Blev medlem: 6 juni 2015, 14:53:06

Re: Siemens LOGO programmering

Inlägg av Palle500 »

Ang Ladder (stege) program. Det jag menar är att Siemens aldrig lagt mycket energi på att supporta Ladder programmering. Så därför är det urdåligt interface i LOGO! Soft för Ladder.
Men det gör inget för att det är mycket enklare att köra i FBD.
Men på en Omron ZEN PLC (liten rackare) fungerar det endast i reläschema alt Ladder diagram och där är det klart bättre att använda Ladder (om nu ladder är bra).
Man har en blockcursor (blåa rutan) som man väljer funktion för och kan senare även ändra till valfri funktion. Man måste ställa sig på det gröna bandet för att skapa en utgång.
Sen blir det alltid "äkta" ladder diagram som måste gå från vänster linje till den högra linjen. Inte som i LOGO! Soft där det är flytande.

Exempel där (I0) sätter (Q0) och skapar självhållning via (I1) och (Q0). som man avbryter genom att trycka på (I1).
Nästa rad sätter man (Q1) via (I2) och nollställer (Q1) via (I3) alltså samma utgång (Q1) finns på flera ställen, bra ibland värre ibland!
Omron ZEN Ladder.JPG
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Palle500
Inlägg: 4484
Blev medlem: 6 juni 2015, 14:53:06

Re: Siemens LOGO programmering

Inlägg av Palle500 »

Så var det dags för lektion #2 (av 4) där vi fixar så att shift registret kan räkna till 3 och alltid statar i ett väl definierat läge "Lampa OFF"
Ni som vill testa programmet men inte har en LOGO! kan hämta programmet gratis hos Siemens och köra i simulatorn. Men gratisversionen kan inte ladda till PLCn.

#1 Exempel "Shift register 4a" visar hur du kan få in en "1" i shift registret och få den att flytta sig i shift registret.
#2 Exempel "Shift register 4b" då lägger vi till automatisk inmatning av en "etta" vid start av PLC och hur vi kan räkna till 3 knapptrycktryckningar (eller flera).
#3 Exempel "Shift register 4C" då lägger vi till själva utgången Q1 som tänder lampan.
#4 Exempel "Shift register 4d" då lägger vi till en asynkron pulsgenerator som skapar blinket av lampan i läge 2 (S1.2)

Lösningen bygger på att man "återkopplar" shift registrets utgång via (M1). Man kan inte koppla shift registrets utgång Q direkt till en ingång utan måste gå via en intern utgång (M1).
Denna (M1) sätts alltså hög när det finns en "etta" på position 3 (S1.3) i shift registret och shiftas alltså in i shift registret på pos 1 (S1.1) vilket ger att man kan "räkna" till tre.
.
Shift register 4b.JPG
och som tidigare själva PLC programmet:
Shift register 4b.zip
Edit: rättat stavfel
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Palle500
Inlägg: 4484
Blev medlem: 6 juni 2015, 14:53:06

Re: Siemens LOGO programmering

Inlägg av Palle500 »

Nu närmar vi oss den färdiga funktionen via lektion #3 (av 4) där vi även tänder lampan genom att trycka på knappen "Switch".

Ni som vill testa programmet men inte har en LOGO! kan hämta programmet gratis hos Siemens och köra i simulatorn.
Scrolla ned en bit och välj flik "Demosoftware" (gratisversionen kan inte ladda till PLCn)
https://new.siemens.com/global/en/produ ... tware.html

#1 Exempel "Shift register 4a" visar hur du kan få in en "1" i shift registret och få den att flytta sig i shift registret.
#2 Exempel "Shift register 4b" då lägger vi till automatisk inmatning av en "etta" vid start av PLC och hur vi kan räkna till 3 knapptrycktryckningar (eller flera).
#3 Exempel "Shift register 4C" då lägger vi till själva utgången Q1 som tänder lampan.
#4 Exempel "Shift register 4d" då lägger vi till en asynkron pulsgenerator som skapar blinket av lampan i läge 2 (S1.2)

För att tända en utgång (Q1) via olika villkor så använder man AND och OR funktioner som kopplar ihop de olika logiska villkoren. I vårt fall (S1.2) OR (S1.3).
.
Shift register 4c.JPG
Och som PLC program:
Shift register 4c.zip
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Palle500
Inlägg: 4484
Blev medlem: 6 juni 2015, 14:53:06

Re: Siemens LOGO programmering

Inlägg av Palle500 »

Och här är den färdiga funktionen via lektion #4 (av 4) där vi även får lampan att blinka via en asynkron pulsgenerator.

Ni som vill testa programmet men inte har en LOGO! kan hämta programmet gratis hos Siemens och köra i simulatorn.
Scrolla ned en bit och välj flik "Demosoftware" (gratisversionen kan inte ladda till PLCn)
https://new.siemens.com/global/en/produ ... tware.html

#1 Exempel "Shift register 4a" visar hur du kan få in en "1" i shift registret och få den att flytta sig i shift registret.
#2 Exempel "Shift register 4b" då lägger vi till automatisk inmatning av en "etta" vid start av PLC och hur vi kan räkna till 3 knapptrycktryckningar (eller flera).
#3 Exempel "Shift register 4C" då lägger vi till själva utgången Q1 som tänder lampan.
#4 Exempel "Shift register 4d" då lägger vi till en asynkron pulsgenerator som skapar blinket av lampan i läge 2 (S1.2)

För att skapa ett asymmetriskt pulståg som får lampan (Q1) att blinka använder vi en "Asynchronous pulse generator" där vi sätter on/off tiderna till 0,5 sek.
Så när (S1.2) är aktiv så blinkar lampan (Q1).
.
Shift register 4d.JPG
PLC programmet:
Shift register 4d.zip
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Palle500
Inlägg: 4484
Blev medlem: 6 juni 2015, 14:53:06

Re: Siemens LOGO programmering

Inlägg av Palle500 »

Som bonus får TS ett program som kan sköta ytterlyset automatiskt enligt solens upp och nedgång samt villkorat med olika tider som det skall vara tänt.
Under sommaren kommer i princip inte lyset att tändas för att succesivt tändas under hösten och vara tänt länge på vintern för att minskas under våren (solklart eller?) :vissla:

Tänd lyset på morgon mellan 6:00-9:00 (8:00-10:00 för lördag-söndag) om solen inte redan gått upp (30 min fördröjning så det hinner bli ljust innan det släckts).
Tänd lyset på kvällen mellan 14:00-21:30 (14:00-23:00) för lördag-söndag) när solen har gått ned (30 min tidigarelagt så det inte hinner bli mörkt innan lyset tänds).

Man kan även stänga av automatiken och manuellt tända lampan. När tex TS har varit ute och festat via "Auto/Man läge".
För att hitta sina egna koordinater använd tex:
https://www.google.se/maps
.
Astronomical_clock_Getinge2.jpg
PLC kod (den PLC man kör det på måste ha en realtidsklocka vilket de flesta LOGO! med display har):
Astronomical_clock_Getinge2.zip
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
teljemo
Inlägg: 1622
Blev medlem: 5 februari 2011, 12:08:13
Ort: Getinge
Kontakt:

Re: Siemens LOGO programmering

Inlägg av teljemo »

Alltså!!!
Det här är ju helt magiskt :D


Tusen tack alla för detta engagemang!
Extra stora tack till:
Palle500 för att ha lagt ner sån tid och skrivit en hel lärobok i den här tråden.
ojkroken för att ha demonstrerat programmeringen live över fjärrskrivbord och telefon.

Det fungerade också. Polletten har trillat ner :wink:
Länge leve elektronikforumet :jimmyhacker:
Palle500
Inlägg: 4484
Blev medlem: 6 juni 2015, 14:53:06

Siemens LOGO programmering

Inlägg av Palle500 »

Tack själv, nu fick jag friska upp mina avdankade PLC kunskaper. Blev sugen på att ev ersätta min ljussensor och timer som tänt ytterlyset felfritt i 25år. Med en LOGO! och astrokalendern.
Just detta är en PLC överlägsen tex Arduino. Den är redan kapslad och har relä samt 230 Vac ingångar och passar direkt i en gruppcentral. Samt är otroligt driftsäker.
Användarvisningsbild
teljemo
Inlägg: 1622
Blev medlem: 5 februari 2011, 12:08:13
Ort: Getinge
Kontakt:

Re: Siemens LOGO programmering

Inlägg av teljemo »

Sitter och skriver ett litet program som jag tänkte prova på en maskin på jobbet.
Det är en tvätt i början av en pulverlacklinje.
Man ska mäta pH värdet med jämna mellanrum så detta kunde vara ett bra sätt att påminna de som står där att göra det.

Tanken är att varje gång man trycker start på maskinen adderas 1 till en räknare.
När räknaren nått sitt satta mål börjar en annan knapp vi kan kalla reset knapp att, att blinka.
När man trycker in resetknappen nollställs räknaren och man kan starta igen.

Jag har lagt in funktionen så att man inte kan starta igen utan att reseta.
Jag har lagt in en funktion så att man inte kan reseta genom att trycke reset innan målet är nåt.
Jag har lagt in en funktion så att man kan "force reseta" genom att hålla in reset i 5 sekunder.

Det fungerar och jag är super nöjd över att lyckats med detta så långt.
Jag använder en av blinkfunktionerna jag fått lära mig i den här tråden btw.

En sak jag inte lyckas med dock!
På själva LOGOn kan man hålla in esc knappen 5 sek för att direkt ändra parametrar i displayen. Detta är en inbygg funktion i LOGOn.
Så, jag har gjort en display som visar räknaren och tanken är att man ska kunna ändra max värdet enkelt ifrån den skärmen.
Problemet är att man kan ändra från 0 - 999999 vilket känns dåligt.
Jag vill begränsa till 0 - 10.

Jag hittade en liknande fråga på google men jag har inte lyckats implementera de blocken i mitt program..
När jag försöker dra linjer mellan de analoga blocken som google fyndet består av, till min message display är det incorrect.

Här är länk till de jag hittade via google: https://support.industry.siemens.com/tf ... ageSize=10

Här är en skärmdump på mitt program. (Program filen är även bifogad om nån vill ge det ett försök)
Startknappen på "tvättmaskinen" och resetknappen rödmarkerade.
Kode ifrån länken ovan som jag hittade via google inramar med orange.
Min display med en grön ring runt
Blink kod från SEF grönmarkerad
Skärmbild 2021-01-28 192031.png
Så här ser programmet jag hittade via google ut direkt när man öppnad det.
Skärmbild 2021-01-29 052347.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar