Spridarprovare, Arduino eller PLC

Planering och tankar kring eventuella framtida projekt.
Johnny Borg
Inlägg: 10
Blev medlem: 4 december 2013, 09:23:16

Spridarprovare, Arduino eller PLC

Inlägg av Johnny Borg »

Hejsan.

Har lite funderingar på att uppgradera nuvarande spridarflödesbänk jag använder.

De jag behöver lite hjälp o tips med är just styrsystemet.

Systemet är alltså en timer styrd pulstestare.
________________
Funktioner / justeringsmöjligheter

Timer ( sec ) 10 - 600
Pulstid ( ms ) 1 - 22
Frekvens ( hz ) 10 - 150
________________

Utgångar

2 st jordande utgångar ( cirka 8 amp styck )

________________

Användarsätt

1 st potentiometer för att justera i varje meny
1 st knapp för att gå vidare i menyn och starta testet.

________________


Om systemet styrs via PC mjukvara eller via till exempel arudinos display spelar ingen roll.

Jag har hört talas om att dagen PLC mjukvaror ska vara väldigt användarvänliga till just sånt här.
Men har aldrig testat det själv så.

Antar att detta är ett rätt simpelt system för er insatta så ni kanske har nå smarta lösningar på detta.

MVH Johnny Borg

Edit:

Fick förövrigt hem en färdig från Venezuela häromdagen och vill nån se bilder på hur en sån kan se ut så kan ni få se lite skräckexempel.
Därav att jag bygger en egen nu ist.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Spridarprovare, Arduino eller PLC

Inlägg av Icecap »

Jag är rimligt säker på att det inte är potentiometer men pulsgivare du menar för inställningerna. Dessa finns med inbyggd tryckknapp om man vil.

Jag ser för mig ett ganska enkelt system med en enkel ųC och ett textdisplay. Mjukvaran blir rimligt enkel också - men personligt ville jag inte röra Arduino.
Johnny Borg
Inlägg: 10
Blev medlem: 4 december 2013, 09:23:16

Re: Spridarprovare, Arduino eller PLC

Inlägg av Johnny Borg »

Hej.

Hade Pot i tanken då de satt de på de systemet ja köpte. Men de funkade ju också skit dåligt så.

Men ja. En pulsgivare vore ju väldigt mycket lyxigare och praktiskt med knapp inbyggt också.

Hur ser din ide ut?

MVH Johnny Borg
larky
Inlägg: 1095
Blev medlem: 7 mars 2007, 07:54:18
Ort: Skellefteå
Kontakt:

Re: Spridarprovare, Arduino eller PLC

Inlägg av larky »

Minimalt strul med knappar får du nog med en "LCD shield" till din arduino, med knappar färdigt.
Finns på kjell.com, Kjell&Company: 87876
Johnny Borg
Inlägg: 10
Blev medlem: 4 december 2013, 09:23:16

Re: Spridarprovare, Arduino eller PLC

Inlägg av Johnny Borg »

Ja den där LCD shield såg ju också väldigt smidig ut.
Väldigt enkelt att sätta lite rejälare knappar externt då de där inte håller för verkstadsbruk.

Måste man skriva hela programvaran själv där eller finns de nått liknande färdigt tro?
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: Spridarprovare, Arduino eller PLC

Inlägg av Icecap »

Det blir till att skriva det själv är ja säker på.

Jag hade tagit en PIC18Fnånting, kopplat till ett LCD och en pulsgivare eller knappar samt tagit några MOSFET som drivsteg.

Resten är mjukvara.
Janson1
Inlägg: 1338
Blev medlem: 1 december 2016, 09:06:02
Ort: Marks Kommun

Re: Spridarprovare, Arduino eller PLC

Inlägg av Janson1 »

Kunde inte låta bli så jag gjorde i Arduino i alla fall, då jag inte kan nåt annat...
Den har just nu tre potentiometrar med:
Pot 1: 10-150 HZ (X)
Pot 2: 1-22 mS pulstid (Y)
Pot 3: 10-600 sekunder ontid (Z)
Och varje gång man startar/resetar den så går den i Z tid med X frekvens och Y puls...
Jag gjorde den med bara en utgång men det går lätt att lägga till flera...
Johnny Borg
Inlägg: 10
Blev medlem: 4 december 2013, 09:23:16

Re: Spridarprovare, Arduino eller PLC

Inlägg av Johnny Borg »

Janson1.

Skrev du ett program nu eller vad menade du?

Isånnafall. Är de nått du vill dela med dig av?
Vet inte hur öppna ni brukar vara på de här formet ja ;)

MVH Johnny Borg
Janson1
Inlägg: 1338
Blev medlem: 1 december 2016, 09:06:02
Ort: Marks Kommun

Re: Spridarprovare, Arduino eller PLC

Inlägg av Janson1 »

Javisst, inga problem. Den här är gjord för tre potar på 10-100 kohm lin som ansluts på A0, A1, A2. på en Uno/NANO/MEGA
Jag har valt ben 10 som utgång, den kan driva valfri MOS-transistor, jag kör med en som är på mer än 25 Amp.

Kod: Markera allt

int pulsut1 = 10;                                // ben 10 skall användas som utgång
//int pulsut2 = 11;                              // ben 11 reserv
                                                 // lite olika variabler.
unsigned long sekunder;
int state1 = LOW;
//int state2 = LOW;
unsigned long privMicroson = 0;
unsigned long privMicrosoff = 0;
long intervallon;
long intervalloff;
long intervall;
long interalltot;
unsigned long privMicros = 0;                
unsigned long privMillis = 0;


void setup() 
{
  pinMode(pulsut1, OUTPUT);                             // satt pulsut1 som utgång
  //pinMode(pulsut2, OUTPUT);                           // reserv

}

void loop() 
{
 intervalloff = analogRead(A0);                         // Satt analogingång A0 som intervall off ingång
 intervalloff = map(intervalloff,0,1023,1000,6500);    // mapar om värde 0-1023 till 1000-6500 mikrosekunder (1-6,5 mS)
 
 intervallon = analogRead(A1);                          // Satt analogingång A1 som intervall on ingång
 intervallon = map(intervallon,0,1023,100000,6666);     // mapar om värde 0-1023 till 100000-6666 mikrosekunder (10-150 hz)
 intervalltot = intervallon - intervalloff;          // för att behålla samma totaltid
 sekunder = analogRead(A2);                             // Satt analogingång A2 som sunkundinställning.
 sekunder = map(sekunder,0,1023,1000,600000);           // Mapar om värde 0-1023 till 1000-600000 millisek (10 - 600 sekunder)
 
 unsigned long currMillis = millis();                   // Här läggs ett millisek-tal in varje varv i loopen

 unsigned long currMicros = micros();                   // Här läggs ett microsek-tal in varje varv i loopen 
                                                        
  if(currMicros - privMicros >= intervall)              // OM nuvarande micros-tal - föregående micros-tal är större eller lika med intervall
  {
   privMicros = currMicros;                             // då skall: föregående bli nuvarnde micros-tal

     if(state1 == LOW)                                  // OM pulsut1 status är låg 
     {
      state1 = HIGH;                                    // så blir pulsut1 status hög 
     }

     else                                               // annars...
     {
      state1 = LOW;                                     // om pulsut1 status är hög  blir den låg 
     } 
     
     digitalWrite(pulsut1, state1);                    // här styrs hög/låg ut till utgången (pulsut1 i detta fall)

     if(currMillis -privMillis >= sekunder)            // när total tid är slut så stannar testen
     {
      state1 = HIGH;                                   // genom att state "fastnar" i hög
     }
  
     if(digitalRead(pulsut1) == LOW)                   // OM lpulsut1 ÄR låg 
     {
      intervall = intervalltot;                         // så skall Aintervall-tot läggas in som intervall
     }

     if(digitalRead(pulsut1) == HIGH)                  // OM pulsut1 ÄR hög 
     {
     intervall = intervalloff;                         // så skall intervall-off 1 läggas in som  intervall
     }
                  
  }                                                    // Slut

}   
Jag kan inte avgöra om det är bra eller dåligt programmerat men den funkar... Håll till godo!
edit: ändrat för bättre funkton
Senast redigerad av Janson1 12 oktober 2018, 07:17:30, redigerad totalt 1 gång.
Johnny Borg
Inlägg: 10
Blev medlem: 4 december 2013, 09:23:16

Re: Spridarprovare, Arduino eller PLC

Inlägg av Johnny Borg »

Tackar så mycket du ;)

Hur gör jag med displayen?

Är de bara plugga i den så kommer allt upp där eller måste ja lägga in en kod för den också?

Tror jag har ett sånt där Arduino UNO start kit där de ingår nån 16x2 LCD.
larky
Inlägg: 1095
Blev medlem: 7 mars 2007, 07:54:18
Ort: Skellefteå
Kontakt:

Re: Spridarprovare, Arduino eller PLC

Inlägg av larky »

Den koden som presenterats kommer bara att aktivera en utgång, inget för displayen.
Du behöver någon typ av bibliotek för displayen och lägga till texten för att visa något.

Eventuellt göra något i koden för att vänta i inställningsläge för att starta med en knapp när inställningarna är klara, nu tolkar jag koden som att den kommer att starta så snart den får ström, och går sedan tiden ut och stannar där.
Johnny Borg
Inlägg: 10
Blev medlem: 4 december 2013, 09:23:16

Re: Spridarprovare, Arduino eller PLC

Inlägg av Johnny Borg »

Okej. De stämmer nog det.

Nån som skulle vilja utveckla den koden som är påbörjad med en tryckknapp och display?

MVH Johnny Borg
larky
Inlägg: 1095
Blev medlem: 7 mars 2007, 07:54:18
Ort: Skellefteå
Kontakt:

Re: Spridarprovare, Arduino eller PLC

Inlägg av larky »

Janson1
Inlägg: 1338
Blev medlem: 1 december 2016, 09:06:02
Ort: Marks Kommun

Re: Spridarprovare, Arduino eller PLC

Inlägg av Janson1 »

Att ha en display som samtidigt visar inställningarna kommer att störa utgången så den inte funkar som den bör... Ev så kanske en seriell display funkar bättre? Som denna sketch är gjord så är den väldigt enkel att använda med omedelbar respons från knapparna. Jag tror det nästan är lättare att ha en till Arduino som lyssnar av utsignalen och via tex pulseIn() funktionen lyssnar av pulsbredd och frekvens. Sätter man en stereopot som total tiddsjustering så kan man även få totaltid presenterad på displayen.
Det kanske kommer flera bättre förslag på en dylig grunka fast med display...
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14819
Blev medlem: 16 april 2006, 17:04:10

Re: Spridarprovare, Arduino eller PLC

Inlägg av mrfrenzy »

Enklaste är enligt följande:
Låt displayen visa inställt värde vid boot och justera det med potentiometrarna.
När man trycker start slocknar displayen och utgången kör i önskad tid.
Skriv svar