Sari la conținut

Pornire pe rand a 3 motorase


Gialdi77

Postări Recomandate

  • Răspunsuri 57
  • Created
  • Ultimul Răspuns

Top Posters In This Topic

Problema nu este cum sa opresc sau cum sa pornesc . Problema este cum sa fac sa lucreze pe rand, primul moator primeste impuls de la un limitator porneste deschide si inchide clapeta se opreste ,de la acelasi limitator primeste impuls motor 2 si la fel si motor 3 dupa care sa o ia de la capat, in 60 de secunde 20 cicluri .

Editat de Gialdi77
Link spre comentariu
Distribuie pe alte site-uri

Problema nu este cum sa opresc sau cum sa pornesc

Eu acum nu mai inteleg, doriti sa faca o singura rotatie si sa se opreasca pana la urmatoarea actionare, sau nu? Editat de miron1947
Link spre comentariu
Distribuie pe alte site-uri

Nu stiu ce nu se intelege ? Am 3 motorase si vreau sa porneasca pe rand cate unul, actionate de acelasi limitator .Primul impuls limitator porneste motor nr1, face o rotatie se opreste, al doilea impuls limitator porneste motor 2 face o rotatie si se opreste, al treilea impuls limitator porneste motor 3 face o rotatie si se opreste,al 4 impuls limitator o ia de la inceput.

Link spre comentariu
Distribuie pe alte site-uri

Atunci nu m-ati inteles Dvs. daca la solutia mea de sezizare a unei rotatii complete, ati scris "Problema nu este cum sa opresc sau cum sa pornesc".

Editat de miron1947
Link spre comentariu
Distribuie pe alte site-uri

Gialdi77,

 

Miron are perfecta dreptate, - fiecare motor are nevoie de cate o cama pentru a determina (confirma) capatul de cursa al bielei, controland timpul de functionare nu vei reusii sa deplasezi motorul repetabil (1 tura exact la arbore) pentru ca, sarcina nu e constanta, si nu cred ca vrei sa comanzi intr-o bucla de control curentul prin motor (in sensul ca e complicat nu ca ar fi imposibil)

Tot automatul tau se reduce la 3 intrari de confirmare, de la cele trei biele, eventual 1/2 intrari de comanda pentru start respectiv stop de la niste butoane plus 3 iesiri pentru comanda motoarelor.

Solutii:

1.exista PLC-uri care pot face asta pe baza unui program simplu (fara a stii programare) - pot fi programate grafic pe PC, sau chiar de la tastaura locala.

2 faci un automat de stare cu porti logice (sau cu relee)

3.Folosesti un microcontoller si programezi 20 de linii de cod in C sau asamblare.

 

Dar cel mai important, asculta si ce zic ceilalti si incearca sa si intelegi, ca altfel, ne pierdem timpul cu tine si tu-ti pierzi timpul cu noi.

RR

Editat de roadrunner
Link spre comentariu
Distribuie pe alte site-uri

Cu o investitie minima, 0,75 lei CD4013 5 rezistente doua diode si un condensator(eventual 3 led-uri pentru vizualizare), puteti verifica solutia mea post-9-0-37341200-1369216452_thumb.jpg pentru generarea celor trei pasi succesivi la comanda contactului.

Editat de miron1947
Link spre comentariu
Distribuie pe alte site-uri

problema e ca daca apasa de trei ori succesiv (la 0.5s sa zicem) vor pornii toate 3 motoarele, la interval de 0.5s

cred ca are nevoie de limitatoare (sau cama) la fiecare din ele, si fiecare sa inscrie bistabilul urmator. (dar sa speram ca partea mecanica exclude situatia asta)

RR

 

 

PS1 - cred ca trebuie un filtru debounce la contactul ala, ca o sa genereze mai multe fronturi pe clock.(sau un monostabil)

 

PS2 - daca tot va plac circuitele logice, tot automatul asta se poate sintetiza cu ~ 30 linii de cod HDL, si programa intr-un CPLD de 1$. (evident nu va costa 1$ ci 10$ cu toate cele pe langa)

Editat de roadrunner
Link spre comentariu
Distribuie pe alte site-uri

problema e ca daca apasa de trei ori succesiv (la 0.5s sa zicem) vor pornii toate 3 motoarele, la interval de 0.5s

cred ca are nevoie de limitatoare (sau cama) la fiecare din ele

Este numai partea de generare a comenzii, actionarea propriu-zisa a motoarelor presupune asa cum am scris mai sus sezizarea cursei de 3600 cu limitator si da este posibil sa functioneze toate daca nici unul nu a terminat cursa in intervalul celor trei impulsuri.

un filtru debounce la contactul ala, ca o sa genereze mai multe fronturi pe clock.(sau un monostabil)

Corect, dar intai trebuie vazut daca montajul desenat de mine chiar functioneaza practic, hartia(in cazul acesta Paint) suporta multe.

daca tot va plac circuitele logice... programa intr-un CPLD

Daca va referiti la mine, da imi plac circuitele logice dar solutia cu programarea nu este in "curtea" mea.

Editat de miron1947
Link spre comentariu
Distribuie pe alte site-uri

nu am vrut sa fiu critic doar de amorul criticii, e o schema buna, e un inceput. (e un mod bun de a clarifica ipoteza de lucru care e un pic neclara)

pana la urma era clar ca cel mai simplu e un registru de deplasare cu feeback.

 

Programarea in HDL e oarecum echivalenta cu a folosii porti logice, practic o linie de cod e sintetizata in circuite combinatoriale sau registrii, iar la sfarsit se "programeaza" (in sensul se "arde" ca la eeprom-urile vechi)

in chip. La nivel de chip se fac niste legaturi programabile (sarmele) si se incarca registrii cu valori initiale (un fel de - "ce o sa contina dupa reset") - avantajul e ca se poate simula inainte de a trece pe cip, si nu costa nimic. (adica toate tool-urile, inclusiv simulatorul sunt gratis) - iar cipurile sunt reprogramabile (flash)

- exista (la timpul trecut) si un editor schematic, care probabil v-ar fi fost pe plac, practic puteati face schema de mai sus fara probleme, si tool-ul genera fisierul pe baza schemei.

e oarecum echivalent cu fabricarea unui cip destul de complex in bucatarie cu un laptop si o ceasca de cafea.

RR

 

am pus gramada un exemplu - registru de deplasare in inel (3 registrii) - primul e initializat cu '1' restul cu '0' si plimba bitul ala la fronturile crescatoare ale semnalului contact

 

----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;
-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity top_motor3 is
   Port (
	   contact : in  STD_LOGIC;
	   motor1 : out  STD_LOGIC;
	   motor2 : out  STD_LOGIC;
	   motor3 : out  STD_LOGIC
	   );
end top_motor3;
architecture RTL of top_motor3 is

signal registrul1 : STD_LOGIC :='1';
signal registrul2 : STD_LOGIC :='0';
signal registrul3 : STD_LOGIC :='0';

signal feedback : STD_LOGIC;
begin
feedback <= registrul3 ;

--un registru de deplasare in inel cu primul FF initializat cu 1
process(contact)
begin
if rising_edge(contact) then
  registrul1 <= feedback;
  registrul2 <= registrul1;
  registrul3 <= registrul2;
 
end if;
end process;
--atribuim valorile la iesiri
motor1 <= registrul1;
motor2 <= registrul2;
motor3 <= registrul3;

end RTL;

 

 

si cum arata schema sintetizata la codul de mai sus

post-1482-0-32667000-1369224596_thumb.png

Editat de roadrunner
Link spre comentariu
Distribuie pe alte site-uri

in bucatarie cu un laptop, si o ceasca de cafea.

Partea aceasta imi place cel mai mult(daca era si o tigare..) si este realizabila chiar si pentru mine.

Editat de miron1947
Link spre comentariu
Distribuie pe alte site-uri

vedeti mai sus ca am editat postul

codul e scris babeste ca sa fie usor de inteles. (de fapt semnalul feeback e redundat, l-am pus pentru claritate)

e fain ca nu trebuie sa dai fuga la magazin sa cumperi circuite, ca le faci din tastaura, si nici sa lipesti fire, ca le faci din tastatura.

RR

 

PS - eu nu as face ca mai sus, ci as face un automat de stare Mealy sau Moore. (ca nu ma dor degetele) - in cazul de fata merge si cu registru de deplasare ca nu sunt multe stari.

Editat de roadrunner
Link spre comentariu
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.

×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock