Aanmaken van een merker

Arduino specifieke Software
Berichten: 20
Geregistreerd: 15 Okt 2019, 20:00

Aanmaken van een merker

Berichtdoor jean-paul » 15 Okt 2019, 20:12

Beste,

Ben onlangs als mecanicien gestart met Arduino. Weet uit een vroeger leven dat er zoiets als een merker bij Siemens bestond. Je moest hiervoor
geen fysische uitgang gebruiken, dacht ik.
Heb al zitten zoeken , maar kan dit niet vinden;
Als voorbeeld graag 2 ingangen in een AND functie die een merker hoog zetten.
Daarna dezelfde merker in een AND functie met een ingang die een UITGANG hoog zetten.
Hopelijk is dit een beetje duidelijk
Alvast iemand bedankt voor mogelijke hulp

Advertisement

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Aanmaken van een merker

Berichtdoor Gij Kieken » 15 Okt 2019, 20:31

In arduino wordt er niet gesproken over merkers.
Je kunt naar lieve lust zelf een variabele declareren en die verder gebruiken zoals je wilt.
Het is een andere denkwijze dan een plc of logo (bijvoorbeeld merker 8).
Je programma schrijf je in een sketch en daar kun je AND OR NAND of wat je maar wilt in kwijt.

Berichten: 20
Geregistreerd: 15 Okt 2019, 20:00

Re: Aanmaken van een merker

Berichtdoor jean-paul » 16 Okt 2019, 09:14

Bedankt voor je snelle reactie. Kan je zoals eerder gevraagd een concreet voorbeeld opstellen aub.
vb input 1 en input2 geeft een variabele !!! Deze variable en ingang3 zetten uitgang5 hoog
Ik heb al verscheidene pogingen gedaan, zonder succes echter. Het gebruik van functies daarentegen lukt wel

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Aanmaken van een merker

Berichtdoor Koepel » 16 Okt 2019, 09:42

Laat je pogingen zien, en beschrijf goed wat je wilt dat het doet.

Berichten: 20
Geregistreerd: 15 Okt 2019, 20:00

Re: Aanmaken van een merker

Berichtdoor jean-paul » 16 Okt 2019, 13:04

Hoi Koepel,

De onderstaande sketch werkt natuurlijk niet. De bedoeling is om met 2 ingangen een merker hoog te zetten en geen echte uitgang te gebruiken . Daarna deze merker samen met een ingang gebruiken en een uitgang(vb een LED) hoog te zetten.
Kan je onderstaande sketch aanpassen aub






const int knop1=3;
const int knop2=7;
const int knop3=9;
int merker1=LOW;
int statusknop1 ;
int statusknop2;
int statusknop3;
int(statusmerker1);
int redLED=12;
int dt=500;


void setup() {
Serial.begin(9600);
pinMode(knop1,INPUT);
pinMode(knop2,INPUT);
pinMode(knop3,INPUT);
pinMode(merker1,OUTPUT);
}

void loop() {
statusknop1=digitalRead(knop1);
statusknop2=digitalRead(knop2);
statusknop3=digitalRead(knop3);
if (statusknop1==HIGH && statusknop2==HIGH) {
digitalWrite (statusmerker1,HIGH);
if (statusmerker1==HIGH && statusknop3==HIGH);
digitalWrite (redLED,HIGH)

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Aanmaken van een merker

Berichtdoor Koepel » 16 Okt 2019, 16:00

Maar ik weet niet eens wat een merker is :o

Je kunt zoveel variabelen toevoegen als je wilt. Je kunt tijdelijke dingen in een variabele stoppen, of een lang if-statement maken.

Als ik jouw beschrijving lees, dan lees ik dat de led aan gaat als drie ingangen hoog zijn. Klopt dat ?
Maar hoe gaat de led dan uit ?

Hieronder staat een alternatieve manier voor jouw sketch.

cpp code
// Pin nummers
const int knop1Pin = 3;
const int knop2Pin = 7;
const int knop3Pin = 9;
const int redLedPin = 12;

// Globale variabelen
int merker; // Combinatie van knop 1 en knop 2
int dt=500; // ?

void setup()
{
Serial.begin( 9600);
pinMode( knop1Pin, INPUT);
pinMode( knop2Pin, INPUT);
pinMode( knop3Pin, INPUT);
pinMode( redLedPin, OUTPUT);
}

void loop()
{
// Verzamel de knoppen in lokale (tijdelijke) variabelen
int statusknop1 = digitalRead( knop1Pin);
int statusknop2 = digitalRead( knop2Pin);
int statusknop3 = digitalRead( knop3Pin);

// Kijk of knop 1 en 2 hoog zijn, en maak dan de variabele 'merker' hoog.
if( statusknop1 == HIGH && statusknop2 == HIGH)
{
merker = HIGH;
}
else
{
merker = LOW;
}

// Knop 1 en 2 zijn gecombineerd in de variabele 'merker'.
// Als die hoog is, gaat de led aan als knop 3 hoog is.
// De led gaat nooit uit.
if( merker == HIGH && statusknop3 == HIGH)
{
digitalWrite( redLedPin, HIGH);
}
}


Je mag de conditie van een if-statement zo lang maken als je wilt. Dat is het deel tussen de '(' en ')' haakjes: if( conditie ) { doe iets; }
Soms is die conditie meerdere regels lang.
Bij jouw sketch zou je de 'merker' weg kunnen laten, en meteen een if-statement:
cpp code
// Verzamel de knoppen in lokale (tijdelijke) variabelen
int statusknop1 = digitalRead( knop1Pin);
int statusknop2 = digitalRead( knop2Pin);
int statusknop3 = digitalRead( knop3Pin);

// Alle knoppen hoog ? Dan led aan.
// De led gaat nooit uit.
if( statusknop1 == HIGH && statusknop2 == HIGH && statusknop3 == HIGH)
{
digitalWrite( redLedPin, HIGH);
}

Berichten: 20
Geregistreerd: 15 Okt 2019, 20:00

Re: Aanmaken van een merker

Berichtdoor jean-paul » 16 Okt 2019, 17:17

Dag Koepel,

Is ogenschijnlijk heel eenvoudig voor mensen die goed op de hoogte zijn van Arduino.
Als ik het nu lees vind ik het zelfs eenvoudig. In elk geval heel hartelijk dank voor je hulp
Ben nu al een stuk verder.

Ik vermoed echter dat ik niet voldoende I/O ga hebben voor mijn toepassing (automatisatie van mijn plooibank). Ik heb gelezen dat de Arduino Mega meer I/O heeft
dan de Uno. Jij weet misschien of er een verschil qua programmeren is tussen beiden of
misschien nog andere verschillen. Nogmaals hartelijk dank voor je hulp

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Aanmaken van een merker

Berichtdoor Gij Kieken » 16 Okt 2019, 19:20

Tel hoeveel ingangen (bv knoppen , microswitchen, voetpedaal ,etc...) je nodig hebt.
Tel hoeveel uitgangen je nodig hebt (bv spoel hydraulische kleppen voor op en neer).
Dan weet je het aantal I/O.
Maak een flow chart van wat je wilt.
De Mega is op een soortgelijke manier te programmeren, er zit van alles een meer op( meer I/O, meer geheugen, meer interrupts,etc...).

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Aanmaken van een merker

Berichtdoor shooter » 16 Okt 2019, 21:07

Een merker komt inderdaad uit de PLC omgeving.
de ingangen kun je benoemen met pinnummers en eventueel namen.
in de setup geef je aan op welke pinnen ingangen zitten en waar uitgangen.
in de loop schrijf je dan bijvoorbeeld
in1 =digitalRead(2);
in2 = digitalRead(3);
uit1=(in1&&in2)
digitalWrite(13,uit1)
je mag ook een merker ertussen zetten
zoals int merker1=in3 || in4;
wel even kijken want dit is maar een voorbeeld.
als je de referentie erbij haalt dan snap je dit wel hoop ik.
paul deelen
shooter@home.nl

Berichten: 20
Geregistreerd: 15 Okt 2019, 20:00

Re: Aanmaken van een merker

Berichtdoor jean-paul » 17 Okt 2019, 08:51

Dag Shooter,

Bedankt voor je uitleg. Na de uitleg van Koepel heb ik "een merker" getest in een sketch en het werkt.
Bedank aan iedereen voor de hulp. Voor mij kan dit onderwerp worden afgesloten.

groeten
jp

Volgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 16 gasten