Vraag ik teveel van een Logo! ?

Goedemiddag allen,

Ik ben de laatste tijd steeds meer aan het stoeien met LOGO!.
Nu ben ik met een machine bezig te ontwerpen en ik heb de tekening al klaar, het perslucht schema ook en nu wil ik graag de besturing vast programmeren.

Ik kies hierbij voor een LOGO! omdat ik geen jota snap van Step7 of iets dergelijks. Het ziet me er gewoon niet logisch uit.

Voorheen heb ik veel geprogrammeerd in PIC Basic, wat dus voor industrie geen optie is, maar als die mogelijkheid er zou zijn, was ik met een uurtje wel klaar geweest. Zo'n simpel programma is het wel.

In de Logo software ben ik met de functie blokken aan het plaatsen en lijntjes verbinden en al gauw word het weer een wirwar aan lijnen en blokken waarbij ik snel het overzicht kwijt ben. Vooral het ontbreken van if/then instructie vind een ik probleem.

Zou het dan aan mij liggen dat ik teveel van de LOGO vraag?

Het gaat om in totaal 4 luchtcilinders, met elk 2 positieopnemers, 2 lichtsluis sensoren en 2 vacuumschakelaars.

Situatie is dat er tussen 2 machines een overpakker staat die producten van links en rechts op een centrale band zet.
Om het simpel te houden zal ik het eerst bij 1 kant houden.

Het product komt aanlopen dmv een extern aangestuurde lopende band en die stopt onder een luchtcilinder die beschikt over een zuignap.
De sensor detecteert het product en de cilinder word naar beneden gestuurd. Vacuüm (venturi) zal ingeschakeld worden. Eenmaal beneden zal vacuum hoog & cilinder laag binnenkomen zodat de cilinder weer teruggestuurd wordt. Cilinder hoog & vacuum hoog zal ervoor zorgen dat de 2de cilinder word aangestuurd. Het hele zwikkie schuift nu 35 cm op. Daar moet het omgekeerde gebeuren. Dus cilinder naar beneden, vacuum uit, cilinder naar boven. Vervolgens moet cilinder 2 weer teruggestuurd worden. De centrale band moet dan een instelbare tijd draaien.

Eigenlijk dus simpel pick and place.

dit verhaal word al een enorme wirwar van functieblokken en lijntjes.
Dan moet je je voorstellen dat dit dus 2 keer in de software moet komen.
Verder moet er nog natuurlijk de ene cilinder geblokkeerd worden wanneer de andere boven de centrale band staat. En vice versa.

Als kers op de taart moet er zelfs nog een home return functie inkomen die alle cilinders terugstuurt en het programma reset als er wat mis is gegaan.

Wat is jullie advies? Doe ik te moeilijk of is dit overkill voor een Logo?

Mvg, R-Tronic

In de bijlage het ontwerpje m'n machientje. Hier zie je hem eigenlijk op de kop hangen maar zo kun je beter zien wat de bedoeling is.
Je ziet dat de linker cilinder "boven" de centrale band staat en de rechter op de opname positie.

Samenstelling.PDF

Beste,

Naar mijn mening zijn er twee redenen om een logo te kiezen:

1) Een paar tientjes besparen op de aanschaf van de PLC. Dat kan interessant zijn voor seriebouw, of een hobbymatig project.

2) Het niet hoeven aanschaffen van Step-7 (TIA-Portal).

Als u wel over TIA-Portal beschikt en de PLC mag een maar tientjes extra kosten, dan zou ik een PLC uit de S7-1200 serie nemen. Puur om de door u genoemde reden: de mogelijkheid tot het structureren van programma's.

Volgens mij is het echt de moeite om u Step-7 eigen te maken. Ik vermoed dat u affiniteit heeft met hogere programmeertalen (PIC Basic, if/then instructies). In dat geval zal de taal Structured Text u goed liggen. Deze is beschikbaar in TIA-Portal i.c.m. de S7-1200.

Sine

Moderator

Dat moet makkelijk kunnen, zo heftig is je toepassing niet.

Werk met tekenen altijd van links naar rechts en van boven naar beneden.

Vaste spacing tussen je blokken is ook fijn, gebruik connectors op plaatsen waar je teveel geharrewar krijgt.

Angaben sind wie immer ohne Gewähr.
Lambiek

Special Member

Op 26 juni 2019 15:45:37 schreef R-Tronic:
dit verhaal word al een enorme wirwar van functieblokken en lijntjes.

Ik denk dat dat komt omdat je er net mee begint, dus alles is nieuw voor je. Je kunt er makkelijk een gestructureerd programma mee maken En als je dat netjes opzet, blijft het ook leesbaar.

Als je haar maar goed zit, GROETEN LAMBIEK.

Ik denk dat het een gebrek aan programmeerervaring is.
Zo groot en moeilijk moet het niet zijn.
En in LOGOSoft kun je kopieren en plakken.
1 besturing klaar, werk het? alle selecteren, kopieren,
en op een nieuwe bladzijde zetten.
Hier en daar wat aanpassen, en......

Als er “draden” of lijntjes door je schema lopen dan kun je deze lijntjes ook doorknippen (in LOGOSoft) , ze krijgen dat een begin en een eindpijl met bijbehorende code. Dan blijft het overzichtelijker.

Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)

Een Logo is natuurlijk simpel in vergelijking van een S7 of een S5 PLC.
Maar idd, ik programmeer ook makkelijker in STL, dan dat ik een Logo ga doen..

u=ir betekent niet :U bent ingenieur..

Goedemiddag,

Excuus voor mijn late reactie, druk met andere werkzaamheden.

Het zal zeker aan mijn gebrek aan ervaring liggen, want zoals Toeternietoe zegt dat je kunt kopieren en plakken en dat vervolgens op een andere bladzijde plaatsen is mij volledig onduidelijk. Wil dit zeggen dat niet alles op 1 pagina hoeft?

Kan ik dus 1 stap als het ware op een pagina zetten en de volgende stap op een andere pagina? Ik moet nog veel leren.

Ik begin netjes links bovenin met ingangen en uitgangen rechts. Ik probeer ook de blokken onderling te ordenen en een soort van systeem erin te krijgen maar het lukt niet.

Ik denk wellicht ook verkeerd.
Ik begin bijvoorbeeld met 1 sensor als start. Sensor geactiveerd? Zo ja, dan stuur cilinder A naar beneden & zet vacuum aan. Als A beneden is, kijk of vacuumingang hoog is. Zo ja, cilinder A omhoog.

Dit is niet moeilijk, maar vervolgens moet ik de uitgang die deze cilinder A aanstuurt hetzelfde laten doen als hij eenmaal is opgeschoven.
En daar kom ik aan t zoeken en stoeien. Maar dit kan ik dus op een andere pagina doen?

Mvg,

R-Tronic

Ook al is het maar een kleine toepassing, ik zou dit in een stappenprogramma programmeren. Dit kun je eerst uitwerken in een grafcetdiagram. Vervolgens bestaat de uitwerking van het programma uit twee onderdelen: de stapovergangen en de aansturing van uitgangen. In uw geval ongeveer als volgt:

Definitie van de stappen:
0: "Init"
1: "Wacht op product"
2: "Grijper neer"
3: "Vacuum aan"
4: etc. etc.

Dan het volgende vertalen naar ladder/functieblok (of wat die logo ook lust):

code:

IF I_Reset THEN
 Stap := 0;
END_IF;

CASE Stap OF:
 0: IF Not I_Reset THEN
      Stap := 1;
    END_IF;

 1: IF I_Product_Aanwezig THEN
     Stap := 2;
    END_IF;

 2: IF I_Grijper_Neer THEN
     Stap := 3;
    END_IF;

 3:  etc. etc.
END_CASE;

Vervolgens programmering van de uitgangen:

code:

Q_Grijper_Neer := Stap = 2;
Q_Vacuum_Aan   := Stap = 3 OR Stap = 4 OR Stap = 5;
Etc. Etc.

Hopelijk maakt dit het concept van een stappenprogramma helder. Zoek maar eens op grafcetdiagram.

Sine

Moderator

Die logo lust beide (ladder en FBD) maar de ladder implementatie is er duidelijk bij 'gehacked', NIET gebruiken!

Angaben sind wie immer ohne Gewähr.

Goed,

Na een drukke tijd nu weer even tijd over om dit weer op te pakken.

Nu heb ik even een opzetje gemaakt wat op zich wel werkt tot zo ver, maar hier loop ik even vast.

Het loopt als volgt:
Transportcilinder (heen en weer) is retour.
Opnamecilinder (op en neer) is retour.
Vacuum is uit.
Sensor product op band niet geactiveerd.

Bovenstaande is ruststand.

Nu komt er voor I1 een emmer te staan. Dit zorgt ervoor dat de uitgang van opnamecilinder geschakeld word en dus gaat die naar beneden. Ook het vacuum word aangezet dus eenmaal beneden gaan we er even van uit dat de emmer vastgepakt word.
Eenmaal beneden zal het reedcontact opnamecilinder opnamepositie ervoor zorgen dat de uitgang gereset word en de cilinder gaat met de emmer omhoog. Het vacuum blijft aan door het latching relay.

Als de opnamecilinder boven is, zal reedcontact opnamecilinder retour ervoor zorgen dat de uitgang van transportcilinder (heen en weer) geschakeld word. Nu zal dus de emmer boven de afzetpositie komen te staan.

Dit werkt in simulatie allemaal wel, maar nu komt het punt dat ik de uitgang van opnamecilinder opnieuw moet schakelen om de emmer te kunnen afzetten. Maar dat kan niet zonder meer, je kunt immers niet 2 lijnen aan 1 kant van de uitgang knopen. Moet ik dan toch met een OR blokje gaan werken? of is hier een andere wellicht betere manier voor.

Als ik dat overwonnen heb, is het vacuum resetten en alles terug in de ruststand krijgen niet zo heel moeilijk denk ik.

Van daaruit moet ik dan nog kijken hoe ik ervoor zorg dat de 2 transportcilinders elkaar niet gaan raken (voorrang geven) en het programma zo slim te maken dat er een soort van watchdog in komt die na bepaalde tijd of wachten op ingangen automatisch terug in ruststand gaat.

Ben ik op de goede weg zo?

Mvg,

R-Tronic

Edit: Ook PDF bijgevoegd. Programma wou niet laden na download.

Sine

Moderator

Als je een uitgang met meerdere signalen hoog wil sturen zal er inderdaad een ORretje voor moeten.

Ook zul je die RS moeten Resetten als je wilt dat Q3 of Q2 nog een keer terug komen.

Nog een tip voor het overzicht, zet alle ingangen links, en alle uitgangen rechts. Q1 en Q2 zo zwevend midden in je programma is niet echt overzichtelijk.
Werk (zoveel mogelijk) van links naar rechts en van boven naar beneden. B006 en de aansluitingen ernaartoe staan wat vreemd.
Het lijkt nu net alsof I1 naar beide poortjes van B004 gaat en naar B006

[Bericht gewijzigd door Sine op 11 juli 2019 14:29:38 (23%)]

Angaben sind wie immer ohne Gewähr.

Duidelijk Sine,

Normaal doe ik ook echt wel de uitgangen rechts en ingangen links en probeer zoveel mogelijk lijntjes goed zichtbaar te houden maar dit was echt even om te laten zien waar ik even vast kwam te staan. Ik ga even met een OR kijken hoe ik het verder ga uitwerken.
Die RS resetten voor het vacuum, zo ver was ik nog niet. Daarvoor moet immers de opnamecilinder op afzetpositie zijn. Het reedcontact opnamecilinder "heen" AND transportcilinder op afzetpositie zal de RS gaan resetten.

Ik ga even verder puzzelen.

Bedankt!

Edit:

Zie bijlage voor een werkend programma in simulatie. Nu het 2de verhaal erbij wat gewoon knip/plak werk is, het voorrang geven en dan de bandsturing nog.
Kom er wel zo... :)

Op 11 juli 2019 14:15:38 schreef R-Tronic:
Ben ik op de goede weg zo?

Je gebruikt je uitgangen als geheugenplaats om de machinetoestand te onthouden. En als je er tijdens het programmeren achterkomt dat er nog een extra geheugen nodig is, wordt er een flag toegevoegd. Een ervaren programmeur krijgt het op deze "quick and dirty" manier wellicht snel aan de gang. Bij de wat minder ervarene onder ons gaat dit al snel over op "puzzelen", totdat het het "toevallig" (ongeveer) doet wat het moet doen.

Daarom toch nogmaals mijn advies om het uit te werken in een stappenprogramma. Dit advies werd je in een topic van 3 jaar geleden ook door meerdere CO-ers gegeven. En dat is niet voor niks: je zult zien dat je daardoor beter de baas wordt over je programma's.

Hallo (nog) amateur,

Ik begrijp uw opbouwende kritiek. Maar het werkt niet "toevallig" want ik snap echt wel van elk blokje wát het doet en waarom ik die daar neerzet.

Wat ik niet snap is dat ik een uitgang die hoog/laag is, niet als voorwaarde mag gebruiken in een programma. Waarom kán ik er wel een lijntje op "aansluiten" als dit niet de bedoeling is?

Ik ben juist begonnen vanuit een stappenprogramma (in m'n hoofd)...

Als er een emmer komt voor I1, dan moet uitgang opnamecilinder gestuurd worden. Maar, alleen als reedcontact transportcilinder retour AND reedcontact opnamecilinder retour is. Dus, komt er een AND blokje voor. Zo word het programma steeds uitgebreider.
Dit is wellicht niet de beste manier en je zult een expert moeten zijn om direct alle blokken neer te zetten die je nodig bent, maar ik leer hier ook van.

Op een gegeven moment zal ik bij het maken van een programma toch "aanvoelen" dat ik voor een uitgang te schakelen in een vergelijkbare situatie al meerdere blokken nodig ga zijn en dan kan ik daar op anticiperen.

Zijn er voorbeelden van een grafcetdiagram gemaakt om te vertalen naar LOGO! ?

Mvg,

R-Tronic

Op 12 juli 2019 09:23:01 schreef R-Tronic:
Wat ik niet snap is dat ik een uitgang die hoog/laag is, niet als voorwaarde mag gebruiken in een programma. Waarom kán ik er wel een lijntje op "aansluiten" als dit niet de bedoeling is?

Dat mag wel maar is niet gebruikelijk.
Je kunt bv ook aftakken aan de ingang van een output en dat is veel duidelijker op lange termijn.
Maak uw schakeling wat leesbaarder zoals in die voorbeeld maar let wel ik heb niks aan uw schakeling veranderd en er staan nog fouten in.

LDmicro user.
Sine

Moderator

Hou het overzichtelijk, anders zie je zelf niet meer wat je aan het doen bent. Laat staan dat iemand er later nog eens naar moet kijken en moet kunnen begrijpen hoe het werkt. (en die 'iemand' zou je best wel eens zelf kunnen zijn over een paar jaar)

Ik heb dit

Eens opnieuw getekend

Al je er een beetje structuur in houdt is het een stuk beter leesbaar.

Ook wat namen betreft, zorg dat een standmelding van een cilinder de zelfde naam heeft als de aansturing ervan.
Noem een uitgang niet 'in/uit' maar in of uit afhankelijk van wat hij doet. (gaat de cilinder nou in of uit als de uitgang hoog wordt?)

Angaben sind wie immer ohne Gewähr.

Ah oke,

Dat is inderdaad een stuk overzichtelijker. De afkortingen schelen ook alweer een stuk ruimte:)
Wat betreft de naamgeving van uitgangen, in dit geval ga ik werken met 5/2 ventielen dus uitgang hoog = cilinder uit, uitgang laag = cilinder in. Dit heeft betrekking op de standaard benamingen uit het pneumatiek verhaal. Uitsturen en insturen. Uitgaande slag/ingaande slag.

Dit zal met alleen dit LOGO! programma niet zo duidelijk zijn maar met het pneumatiek schema erbij wel. En die maak ik ook netjes in een boekwerkje erbij.

Ik heb nu voor 1 kant alles werkend, inclusief band sturing.

Nu verder om de andere kant erbij in te zetten en de blokkering van de 1 naar de ander.

Als ik het zover heb, wat toch wel weer wat langer zal duren ivm werkzaamheden, dan post ik het zeker hier.

Bedankt voor alle moeite, ideeën en medewerking.

Dat kopiëren en plakken is wel superhandig:)

Afijn, ik heb een in simulatie werkende versie van het completen programma en ik heb hem voor mijn gevoel overzichtelijker en duidelijker gemaakt.

Er zal vast hier en daar misschien nog een tijdvertraging o.i.d. in moeten om het wat soepeler te laten lopen maar dat zie ik tijdens de eerste testen wel.

Zie bijlage voor programma.

Tijdens het uploaden van de PDF word ook wel duidelijk dat ik een veel groter canvas tot m'n beschikking heb. Dat zal vast aan het kleine scherm van m'n laptop liggen denk ik?

Tijdens het uploaden van de PDF word ook wel duidelijk dat ik een veel groter canvas tot m'n beschikking heb. Dat zal vast aan het kleine scherm van m'n laptop liggen denk ik?

Je kunt natuurlijk altijd met CTRL en je scrollwieltje de schermgroote aanpassen
En er zitten schuifbalken onder en rechts
En je kunt meerdere pagina's onder (of naast, maar dat is vaak niet handig) maken.

Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)

Oke, na mijn enthousiaste mededeling dat het programma af was kwam ik erachter dat het nooit kan werken. Ik heb geen rekening gehouden met de hoogte van het product die na het optillen tegen het frame aankomt.
Dus ik moest er wat bij verzinnen. Een extra korte slag cilinder geïntegreerd in de opnamecilinder die het product maar een 15 mm optilt.

Dus de stappen moesten veranderen. Uiteindelijk werd dit toch een bijna helemaal nieuw programma en ik ben maar overnieuw begonnen.

Binnenkort zal ik beginnen met het bouwen van het apparaat en ik hoop snel te kunnen testen om te zien of het programma ook in de praktijk doet wat het moet.

Iedereen bedankt voor de reacties.