Meest gebruikte plc software


Hoeben

Golden Member

In de USA zie je veel Allan Bradley. En hier in de EU zie je van alles, Siemens veel maar Beckhoff is sterk groeiend. En in Azië zie je weer wat anders.

Ik raad je aan om je aan om generieke talen te leren, Codesys lijkt me passend.

Verder is voor veel PLC-programmeurs hun PLC-merk heilig. Dàt moet je leren en niets anders. Kijk daar een beetje doorheen.

Misschien niet wat je wilt horen, maar als je nog geen ervaring met PLC's programmeren hebt, is het dan niet wat vroeg om dat als ZZP'er te gaan doen?
Begin maar eens met (veel)ervaring in het programmeren/in bedrijf stellen met PLC's op te doen en denk er dan nog eens over na of je dat misschien als ZZP'er wilt/kunt doen.
Helaas al heel vaak meegemaakt, ZZP PLC programmeurs die net Step7 op hun laptop op konden starten en in een VAT tabel konden kijken, daar ga je de oorlog niet mee winnen.

High met Henk

Special Member

De ervaring hier leert:

als je de opzet van een programma goed kent en je kan in
IL (instuction List)
LD (ladder diagram)
FBD (functie block diagram)
SFC (sequential Function chart)
ST (structured text)

een programma schrijven
Bij voorkeur in allemaal (ik heb zelf nog steeds moeite met IL)

dan maakt de omgeving FEITELIJK niet meer uit....

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???

Op 13 juni 2017 16:29:10 schreef High met Henk:
dan maakt de omgeving FEITELIJK niet meer uit....

Om code te kunnen compileren niet inderdaad. Maar om een professioneel programma te maken, en teleurstellingen tijdens het in bedrijf stellen te voorkomen, is er toch wel wat specifieke kennis per platform nodig. De verschillen zitten hem onder andere in:

  • Hoe aanpassingen doen zonder dataverlies
  • Hoe aanpassingen doen zonder dat de PLC in stop gaat
  • Hoe wordt een hardware storing afgehandeld
  • Hoe wordt een runtime error afgehandeld
  • Wat is het bereik van variabelen in een functiebouwsteen
  • Hoe gebruik te maken van een simulator
  • Hoe wordt een HMI aan de PLC gekoppeld
  • Hoe wordt er gecommuniceerd tussen PLC's onderling
  • Van welke systeemvariabelen kan ik gebruik maken
  • Hoe steekt het task-management in elkaar
  • Welke instellingen heeft de PLC en wat moet ik daarmee
  • Hoe gebruik te maken van pointers
  • Hoe kunnen variabelen online gemanipuleerd worden voor testdoeleinden
  • Onthoud de PLC automatisch het laatst gedownloade project

Bovenstaande factoren kunnen bij gebrek aan ervaring voor heel wat verdriet zorgen. Of juist voor vreugde, indien het wel allemaal goed gaat :)

Overigens is mij nooit gevraagd welk merk PLC ik wil programmeren. De klant heeft naar mijn ervaring vrijwel altijd eisen of wensen op dit gebied.

Op 13 juni 2017 16:29:10 schreef High met Henk:ik heb zelf nog steeds moeite met IL

Echt? Ik heb een paar jaar niets anders dan IL gedaan (de S7-200 serie kende geen structured text), en als je dat kan, en begrijpt hoe die logic stack werkt, is de rest (vooral LD) triviaal te bevatten. Ik vond het heerlijk, want je kunt dingen doen die in LD onmogelijk zijn, omdat je zelf de logic stack kunt manipuleren.

Complexe conditionele statements worden simpel, en ik kon op die manier met loops en pointers door state machines lopen en zo.

[Bericht gewijzigd door SparkyGSX op 13 juni 2017 19:01:25 (12%)]

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
buckfast_beekeeper

Golden Member

Vaak wordt er gespecialiseerd in een bepaalde sector omdat er specifieke eisen zijn. Je kan niet alle standaarden gaan leren en voor elk nieuw project weer opnieuw volledig vanaf 0 starten is niet zo efficiënt.

Voor overheid zit bijvoorbeeld heel veel in een standaardbestek en de rest is specifiek voor dat project. Het standaardbestek van binnen en van buiten kennen is dan wel heel handig voor een volgend project.

Van Lambiek wordt goede geuze gemaakt.

...Hoe wordt er gecommuniceerd tussen PLC's onderling...

...en tussen de besturingsonderdelen, freq drive's, regelkleppen, druk-,flow- en vele andere opnemers/actuators. Soms simpel, dikwijls verschillende protocollen.

Groetjes,
eSe

Het jammerlijkste aspect van het leven nu is dat de wetenschap sneller kennis vergaart dan de maatschappij wijsheid. Asimov, Isaac

puur het idee al dat je moet komen vragen wat iets kost, en wat er bij jou in de omtrek een beetje gebruikt wordt.
is voor mij al genoeg teken dat je eerst een aantal jaar werkervaring bij een bedrijf op moet gaan doen.

als je zo'n vragen moet gaan stellen heb je duidelijk niet de ervaring die nodig is om voor jezelf te beginnen, doe je omgeving een plezier en solliciteer gewoon binnen een team die wel weten waar ze mee bezig zijn

ook genoeg zzp'ers die ik ken hebben zelf nagenoeg geen spullen. genoeg bedrijven leveren de spullen die je nodig hebt als je daar per uur gaat zitten werken.
een krachtige laptop met VMware is in onze omtrek de enige tool die je echt nodig gaat hebben. alle virtuele machine's met de software/licenties kun je wel lenen. maar dat is onze omtrek. geen idee of er in andere delen van het land met andere virtualisatie tools gewerkt wordt.

Om terug te komen waarom ik het als ZZP'er wil proberen eventueel. Ik heb een paar keer gesolliciteerd en telkens vind men dat ik onvoldoende ervaring heb met PLC programmeren.
Mijn achtergrond is HBO elektrotechniek, daarna ben ik hardware engineer geweest en heb jarenlang in een technische dienst gewerkt waar ik zelf veel besturingen gebouwd heb. Als ik dan een besturing nodig had was een LOGO vaak voldoende. Een paar jaar geleden heb ik een cursus Siemens Step 7 gedaan, maar hier niet superveel mee gedaan. Momenteel ben ik weer hardware engineer, maar ik wil eigenlijk verder met programmeren. En aangezien dit blijkbaar niet zo makkelijk gaat overweeg ik als ZZPer te beginnen.

High met Henk

Special Member

@(nog) amateur: niet vervelend doen maar een HMI en een PLC aan elkaar koppelen hangt ook af van de HMI en de interface...

@sparky: nooit uitgelegd op school. ik snap het idee wel, maar ST kregen wij evenmin.. alleen ladder en SFC... waarbij die laatste een echte beperking is..
heb dus al 2 talen bijgeleerd.
Wij kregen VB, Java, JAL, C, en Pbasic (basic stamp) als talen...

ASM dus ook niet, wat dus ook niet echt mijn ding is...
Maar je zit wel korter op de HW.. Dus zie de voordelen wel

mijn betoog ging erover dat ik VEEL vaker iemand zie die WEL een omgeving kent en een taal, maar niet weet hoe hij dingen moet bouwen. Ook bij professionele programmeurs. een taal of omgeving is te leren een programma opzetten en een functioneel ontwerp maken is altijd gelijk en daar ligt de basis van programmeren.

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???

Kort samengevat:
Codesys is een universeel softwarepakket waar je veel PLCs kunt programmeren. Bovendien is het gratis. Welke plc's kun je hiermee programmeren.

Beckhof is ook interessant, want gratis rn in opmars.

Verder natuurlijk Siemens, want veel gebruikt. Step 7 of dan Tia Portal? Wat zin de prijzen voor deze software?

@HmH: daar ben ik het absoluut mee eens; begrijpen hoe je een probleem gestructureerd oplost is de belangrijkste skill, de taal is ondergeschikt, maar je moet ook verder komen dan "als deze ingang dan die uitgang" als je iets zinnigs wilt doen met een PLC.

Ik heb het ook nooit gehad op school hoor; sterker nog, ik had al machines in het veld staan voordat ik aan de HTS begon. Ik heb geleerd hoe dat werkt door de documentatie van Siemens te lezen, ermee te gaan spelen, en een state machine framework op te zetten waar ik jaren lol van heb gehad.

De grootste truc was state machines op vaste offsets in het geheugen maken, en dan met een apart output decoder netwerk de uitgangen bepalen afhankelijk van de state van alle state machines (met table lookups). Op die manier hoef je je nergens druk te maken over de uitgangen, je schrijft alleen netwerkjes voor transities naar andere states, en zo kun je dus ook nooit vergeten een uitgang te resetten of zo.

Damn, ik bedenk me nu dat dit allemaal al meer dan 10 jaar geleden is...

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Codesys kun je kosteloos downloaden:
https://www.codesys.com/download.html

Veel PLC fabrikanten ondersteunen codesys.
In codesys kun je met verschillende "talen""= programmere, FBD, KLadder etc.
Met deze kosteloze versie kun je wat gaan oefenen.
Als je het wilt gebruiken om een PLC van fabrikant X te willen programmeren dan moet bij deze fabrikant het officele pakket voor die PLC kopen.

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

De kunst is denk ik: zo makkelijk mogelijk uitleggen hoe het moet werken. Als een flinke combinatie van variabelen iets laat gebeuren (staptransitie, uitgangverandering) dan is dat niet zomaar een combinatie. Het is een bijzonder feit. Het is belangrijk om die feiten zo precies mogelijk te benoemen in een functioneel ontwerp.

Vervolgens is het de kunst om dat feit leesbaar te benoemen in een variabelenaam met niet te veel letters en speciale tekens e.d. Daar denk ik soms lang over na. Het commentaar achter de variabele moet zo overbodig mogelijk worden. (lees niet: achterwege gelaten worden :) )

Enfin, ik dwaal af..

High met Henk

Special Member

@sparky: daar zit mijn handycap: ik begon pas op de HTS!!!
mijn keuzes waren simpel: Motorvoertuigen, WTB, E of ICT
motorvoertuigen: wist ik al veel van af en zou erg saai zijn
WTB: vond TOEN constructie berekeningen saai, maar bewerken leuk (nu ook constructies)
ICT: de hele dag saai achter een scherm zitten? NEEE
E: Weet ik weinig van: laten we die maar doen...

nooit spijt gehad! Maar ben dus pas met 19 begonnen ofzo...

Terug grijpen:

je hebt grofweg 3 besturingen:
sequentiële besturingen
combinatorische besturingen
regelingen.

de eerste is goed te doen met statemachine, flow charts of andere zaken

de 2e is VEEL lastiger te doen, en moet je goed opletten op voorwaarden en vereist veel inzicht om het GOED te doen en GOED te begrijpen. Je kunt hiervoor eigenlijk alleen flowcharts gebruiken. SFC is hier eigenlijk ook meteen uitgesloten

de laatste regelingen is met PID bouwstenen goed te doen. kan ook in ST, met een FUB, maar ladder of SFC is uitgesloten

Bedenk wel dat je ook besturingsvormen kunt combineren! Je kunt in een sequentiële besturing in een bepaalde state prima een regeling toepassen.
of in een combinatorische regeling ook.

je kunt ook bepaalde stukken in een sequentiële besturing combinatorisch maken of omgekeerd....

wat je zeker NIET moet doen i.m.o. meerdere programma's maken voor 1 machine.
ik werk altijd met POU!
daarbinnen wel meerdere functies of andere zaken maar ik wil NOOIT en dan ook NOOIT afhankelijk zijn van hoe de PLC mijn prioriteiten indeelt! heb dus heel veel moeite met task schedulers in embedded omgevingen...

Als je dus een goed programma schrijft, bevat dit geen delays en loopt op maximale snelheid steeds alles af te checken... je krijgt dus steeds een state van: moet in dit deel iets veranderen? NEE? door naar volgende blok...

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???

@HmH,

Acht u de Sequential Function Chart ongeschikt voor sequentiële besturingen?
Edit @hieronder, ik las de volgorde van uw opsomming verkeerd.

[Bericht gewijzigd door (nog) amateur op 13 juni 2017 23:02:09 (29%)]

High met Henk

Special Member

Op 13 juni 2017 22:49:31 schreef (nog) amateur:
@HmH,

Acht u de Sequential Function Chart ongeschikt voor sequentiële besturingen?

heb het stuk nog 3x doorgelezen en zie niet waar dat staat: dat is namelijk het enige waar hij dus juist voor geschikt is ook niet gek als het Sequential function chart heet!

De andere kant van het verhaal is als je VEEL beslissingen hebt in je sequenties dat het ding een compleet drama wordt met veel zijsprongen.. Dus bij complexe sequentiële besturingen (wil niet altijd grote programma's zeggen, maar ik gebruik in mijn lessen een sluis en dan zal het probleem ineens pijnlijk duidelijk zijn!)
als een boot 1 kant op gaat is het makkelijk, maar als je dezelfde states gebruikt voor 2 kanten is het meteen een zooitje!

[Bericht gewijzigd door High met Henk op 13 juni 2017 22:55:19 (38%)]

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???
GJ_

Moderator

Op 13 juni 2017 18:59:57 schreef SparkyGSX:
[...]Echt? Ik heb een paar jaar niets anders dan IL gedaan (de S7-200 serie kende geen structured text)...

De 200 met IL? Dan ben je waarschijnlijk de enige op het oostelijk halfrond. :-)

Ik vond het heerlijk om in IL te werken; prima overzichtelijk, achter elke instructie heb je een hele regel voor commentaar (probeer maar eens zinvol commentaar in een ladderdiagram te zetten), en de instructieset is heel simpel. Met een apart documentje waarin ik had uitgelegd hoe het state machine framework werkte, en een flowchart per state machine konden andere programmeurs het ook best begrijpen, nadat ze van de eerste "what the fuck" waren bekomen.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

In de S7-200 heb je helemaal geen statemachine framework nodig. Dat zit er standaard al in.
In de S7-300 zit helemaal niks in voor statemachines, dat met je zelf allemaal maken. Dat was toen ik van de 200 naar de 300 overstapte wel een teleurstelling.

Henri's Law 1: De wet van behoud van ellende. Law 2: Ellende komt nooit alleen.
GJ_

Moderator

Er gaat niks boven een zelfgemaakte statemachine. Persoonlijk vind ik AWL voor de 300/400 wel een stuk fijner dan die voor de 200.

Op 14 juni 2017 17:18:13 schreef SparkyGSX:...nadat ze van de eerste "what the fuck" waren bekomen.

AWL werkt gewoon fijner. Bovendien klop je het een heeeeel stuk sneller in dan LAD of FUP. Een programmeur die problemen heeft met AWL is geen programmeur.

AWL blijft toch wel lastig. Ik gebruik het zelf meestal alleen in FC's of instance FB's als er wat met pointers gewerkt moet worden.

@GJ_: ik heb best al behoorlijk wat documentatie van siemens doorgespit maar een goed model hoe de cpu met zijn acc stack omgaat heb ik nog niet gezien. Dat is wel essentieel om goed/effficient in AWL te kunnen programmeren.

Verder is het debuggen van AWL een klein drama. (Gebruik zelf de vipa winplc sw).

Henri's Law 1: De wet van behoud van ellende. Law 2: Ellende komt nooit alleen.
GJ_

Moderator

Debuggen van AWL is juist een stuk eenvoudiger vind ik, in Step7 en in WinPLC.
En hoe moeilijk zijn die accu's? Er zijn er twee. Als je iets laadt komt dat in accu1 en schuift zijn inhoud naar accu2.

Ik kan veel sneller typen dan blokjes uit een bibliotheek slepen, en ik kon dus veel beter commentaar kwijt. Wellicht komt het door de achtergrond; veel PLC programmeurs zijn werktuigbouwers die ooit beginnen met een kleine besturing omdat er niemand anders is die het doet, maar ik was een embedded systems engineer (in wording, destijds) die software maakte waarmee toevallig een machine bestuurd werd. Tracking & tracing en communicatie met bovenliggende systemen waren op die manier vrij eenvoudig. Ik heb toen ook een eigen protocol over RS485 geschreven voor die communicatie met een server, want het standaard pakket van Siemens was destijds duur, traag en vooral heel onbetrouwbaar.

Anyway, voor de TS: Siemens is hier voorlopig nog wel, maar alle echt leuke dingen (motion control e.d.) worden toch wel in CodeSys gedaan.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Op 14 juni 2017 19:14:40 schreef GJ_:
Debuggen van AWL is juist een stuk eenvoudiger vind ik, in Step7 en in WinPLC.

Nou met winplc niet, totaal niet te zien wat er gebeurd en wat er in de accus staat.

Wat ik doe is de accu storen in een MD variable en die monitoren anders is er niet uit te komen helaas.

LD is nog het makkelijkste te debuggen, op een afstandje van het scherm kun je de meeste netwerken gewoon direct volgen.

Ook codesys heb ik gebruikt, kwa debuggen wel een stuk handiger. Behalve de echte statemachine logic.
Wat ik ook mis bij codesys is het runtime kunnen updaten van code. Dat schijnt wel in 3.5 te zitten maar in die brakke 2.3 niet.

Henri's Law 1: De wet van behoud van ellende. Law 2: Ellende komt nooit alleen.