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):
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:
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.
Die logo lust beide (ladder en FBD) maar de ladder implementatie is er duidelijk bij 'gehacked', NIET gebruiken!
R-Tronic
Easy come, easy go.
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.
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 (23%)]
R-Tronic
Easy come, easy go.
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.
R-Tronic
Easy come, easy go.
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
MGP
LDmicro user.
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.
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?)
R-Tronic
Easy come, easy go.
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.
R-Tronic
Easy come, easy go.
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?
Toeternietoe
Dubbelgeïsoleerd
Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)
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.
R-Tronic
Easy come, easy go.
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.
R-Tronic
Easy come, easy go.
Dag allen.
Ik wil dit topic toch ff weer oprakelen want mijn project is uiteindelijk goedgekeurd en ik heb alle delen besteld/laten maken. Inmiddels heb ik alles in een testopstelling samengebouwd en ben ik mijn programma aan het testen van de LOGO!
Dit werkt allemaal perfect, voor zover de bewegingen en een aantal andere dingen.
Nu ben ik bezig om er een paar veiligheden in te verwerken maar hier loop ik steeds ff vast...
Ik wil graag een lijntje van bijvoorbeeld Input 1 naar Output 5 onderbreken wanneer een Red Flag geactiveerd is. Maar ik kan er geen mooi functieblok voor vinden die dat makkelijk kan én die te resetten is door een andere input (resetknop extern).
Hebben jullie hier nog suggesties voor?
Bijgevoegd een voorbeeld van wat ik bedoel.
Mvg, R-Tronic
Een AND poortje?
-edit-
Je zegt veiligheden, denk er aan dat dingen als een noodstop niet via de PLC moeten lopen.
Je mag dat signaal uiteraard wel melden aan de PLC, maar blokkeren van aansturingen doe je in hardware.
[Bericht gewijzigd door Sine op (87%)]
R-Tronic
Easy come, easy go.
@Sine,
Ik zeg veiligheden maar het is meer een oplossing dat er geen producten ophopen bij mijn machientje
Een noodstop doe ik uiteraard in de hardware.
Maar misschien moet ik dit ook maar in de hardware regelen. Flag stuurt output en output stuurt relais zodat de bewegingen geblokkeerd worden.
Dan kom ik bij mijn volgende vraag:
Op dit moment heb ik een LOGO 8 met een uitbreiding met 8 transistor uitgangen. Die 8 uitgangen sturen 8 luchtventielen aan en dat werkt goed. 1 van de 4 relais outputs van de LOGO zelf schakelt een vrijgave voor een frequentieregelaar dus ik heb er 3 over. 1 daarvan word een rode storinglamp en de overige 2 zijn potentiaal vrije contacten die de machines links en rechts verteld dat er een storing is en dat het uitname apparaat van die betreffende kant moet stoppen na eind cyclus.
Hiermee heb ik dus alle outputs in gebruik. Kan ik nog een uitbreidingunit erbij aan knopen? en zo ja, mag dat er 1 zijn met gewone relais contacten?
remco_blom
altijd druk met de verkeerde dingen
Ik zit nu in de volle gang met mijn opleiding tot engineer,
de machine die ik nu met mijn project groep maak gebruikt ook een logo met maarliefst 2 uitbereidings modules en dat gaat prima.
je zou het type logo op kunnen zoeken en dan kijken welke modules hij accepteert, maar ik meen dat je er gewoon een relais module er aan kan hangen/klikken.
R-Tronic
Easy come, easy go.
Het is inmiddels gelukt. Had er nog 1 liggen met transistoruitgangen.
De storingafhandeling gebeurd nu in hardware en is te resetten door een resetknop. Alles werkt zover. Het echte noodstopcircuit gaat de 24V van de ventielen onderbreken zodat geen beweging meer mogelijk is én tegelijkertijd de perslucht afschakelen. Dat lijkt me veilig genoeg.
A.s. zaterdag voorbereidingen treffen voor het plaatsen van dit apparaat. Ik kan dan doordeweek afwerken en volgende week zaterdag nasr planning in bedrijf stellen...
Hierna zal ik er een korte presentatie van delen hier.
In een nieuwe log kun je zelf functieblokken maken
BV functieblok cilinder met bewakingen van de eindcontacten.
In een nieuwe logo zit ook een eenvoudige sequencer.
R-Tronic
Easy come, easy go.
@Peter112, die UserDefinedFunction bedoel je? Dan kun je toch nog steeds alleen gebruik maken van de beschikbare functies die je hebt? Om het overzichtelijker te houden?
Toeternietoe
Dubbelgeïsoleerd
Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)
Je LOGO (0BA8) heeft maximaal 20 digitale uitgangen.
Je kunt zelf eenvoudig zien hoeveel dat kan zijn.
a: dubbelklik op het icoontje rechtsonder, daar waar je de juiste LOGO kiest, en je krijgt een heel verhaal wat je LOGO aan boord heeft.
b: dubbelklik op een uitgang, en je kunt het uitgangsnummer wijzigen in een vrij nummer, dan heb je de keuze tot ....max 20
Kom je te kort? Met de 0BA8 geen ernstig probleem, je kunt 2 (of meer) LOGO's koppelen met een Ethernetkabeltje. Dan kun je een benodigde uitgang op de andere LOGO laten schakelen.
Zo kun je wel 100 uitgangen maken.
Op 12 september 2019 21:33:48 schreef R-Tronic:
@Peter112, die UserDefinedFunction bedoel je? Dan kun je toch nog steeds alleen gebruik maken van de beschikbare functies die je hebt? Om het overzichtelijker te houden?
Maar wordt er wel een stuk overzichtelijker van, ik vind dat FBD dan snel een brij worden als het programma groter wordt.
Als je zoveel in- uitgangen nodig bent kun je beter een "echte" plc nemen,een logo zie ik nog altijd als een net iets boven hobby nivo apparaat.
Als je graag met een if-then constructie werkt kun je bv een Siemens s7-1200 nemen deze kun je helemaal in scl programmeren.
Er zijn 10tallen andere plc smaken en soorten.
Ik werk nog wel eens met Mitsubishi GX-works 3 de maken ook mooie plc's
Zo bijzonder moeilijk lijkt me TIA portal nou ook weer niet als je al een tijd met Logo bezit bent.
Ben als eens eerder een 1200 plc tegen gekomen waarbij het hele programma in OB1 gezet was.
[Bericht gewijzigd door Peter112 op (43%)]
R-Tronic
Easy come, easy go.
Ik heb op dit moment zo'n 18 ingangen en 17 uitgangen in gebruik. 1 LOGO! en 2 uitbreidingsunits.
Het programma vond ik ook enorm onoverzichtelijk maar nu ik na advies ontdekt heb dat je het scherm in 4 kan delen, word het allemaal veel overzichtelijker. Elk deel handelt een ander ding af, en dat zijn er 3. het laatste deel ben ik nu bezig om alle tekst en tellers in het scherm weer te geven, alarmmeldingen enzovoorts.
Zojuist het TDE display erbij besteld voor uitlezing en bediening op afstand (buiten de veiligheidskooi).
Ik moet tot zaterdag wachten voordat ik een en ander kan gaan installeren op de uiteindelijke plek dus ik heb ff tijd om lekker in de materie te duiken.
Wat mij ook erg helpt, is tekstvakjes bij de meeste functieblokjes zetten met een beknopte beschrijving.
UDF heb ik al eens mee gespeeld maar op dat moment kwam ik er niet uit. Nu zie ik er de noodzaak (nog) niet van in.
@Toeternietoe, die typeringen van de LOGO heb ik nog niet echt onder de knie. Ik programmeer met Logosoft 8.2 maar de logo zelf is nog een 6 geloof ik. 6ED1052
Toeternietoe
Dubbelgeïsoleerd
Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)
Weet je ook dat je een verbinding (draadje) door kan knippen?
Vooral als de verbindingen veel en lang worden wordt het een onoverzichtelijke brij.
Ga op de verbinding staan en met de linkermuisknop en je kunt de verbinding "doorknippen" en ook weer aan elkaar m,aken.
De verbindingen krijgen automatisch een naam.
En dan merk je dat het handig is de functieblokken een naam te geven.
Die naam komt bij de verbindingen, maar ook als je eventueel parameters op het scherm van de LOGO (of TD scherm) aan wilt passen.
Je kunt in LOGOSoft net zoveel paginas maken als je zelf wilt.
Naast elkaar kan, niet zo makkelijk vind ik, en onder elkaar.
Probeer dan voor elk deel een aparte pagina te maken, blijft het overzichtelijk.
Bv een pagina voor storingen, een voor opstarten etc.
Als je programmeert in LOGOSoft dan moet je 1e stap zijn de keuze van de juiste LOGO versie. (Rechts onder in beeld)
Kies je een 0BA4 en je hebt een 0BA6 dan heb je in LOGOSoft helaas niet de beschikking over alle functies uit de 0BA6. Doe je het andersom dan kun je het programma (meestal) niet downloaden naar je LOGO!
[Bericht gewijzigd door Toeternietoe op (17%)]
R-Tronic
Easy come, easy go.
Ja, hoewel ik het doorknippen van lijntjes eerst enorm verwarrend vond, is het met de namen erbij geven een stuk beter.
Afijn, ik heb het project zover af dat het nu zinloos is om nog verder te programmeren dus ik moet even wachten tot morgen om verder te kunnen.
Inmiddels heb ik alle 20 beschikbare outputs gebruikt en op 4 na alle inputs.
Mijn apparaat word het hart van een productie"lijn". Ná mijn apparaat staat er nog een machine die de producten nog verder behandeld. Als die in storing valt, gaat dat er onder bepaalde voorwaarden voor zorgen dat uiteindelijk de hele lijn stil komt te staan. Behalve als de storing tijdig opgelost word.
In ieder geval is enorme ophoping van producten hopelijk verleden tijd want als iedereen ligt te trekken aan producten die aan sensoren haken is dat vaak niet zo goed.
We gaan het meemaken, mijn machientje zal 3,6 miljoen producten per jaar gaan behandelen dus hij krijgt wel een vuurdoop:P