Új hozzászólás Aktív témák
-
Szirty
őstag
válasz
who_a_way
#3071
üzenetére
Helló who_a_way!
"közben megoldottam a gyorsítós dolgot is"
Hmm. Én is. De most már leírom ne legyen kárbaveszett munka.
Én S5TIME típusú változó értékét változtatom egy blokkal 0-9.99 másodperc között.A második képen két timer megy azzal az idővel ami ebben a változóban van és villogtatja a Q4.0 kimenetet 50% kitöltéssel.
-
Szirty
őstag
válasz
who_a_way
#3065
üzenetére
Helló who_a_way!
"Valami ötlet, hogy miért nem resetelődik a számláló amikor a feltétel teljesül?"
Szerintem azért, mert a baj nem ott van ahol keresed (vagyis nem a képen is látható programrészletben).
Feltételezem, hogy nem ez az egész program.Pl. a DB1.DBW18 című szót a programod máshol is írja, vagy a C1 számlálót újra felhasználtad még egyszer (vagy többször) a programban (én az előbbire gyanakszom).
Ha a program csak annyiból áll amennyit a képen is lehet látni, akkor jól működik!

-
Szirty
őstag
válasz
who_a_way
#3056
üzenetére
Hali who_a_way!
Igen, annak hogy visszafele számolnak az az előnye, hogy a beállított idő ismerete nélkül is tudod mennyi idő múlva fog lejárni ha megjeleníted a futó timer állapotát (pl. OP-n, SCADA-n, egyéb HMI-n, ahol nem látszik a beállított idő, csak a hátralevő).
Szóval akkor marad az IEC timer, vagy saját megoldás...
-
Szirty
őstag
válasz
who_a_way
#3054
üzenetére
Helló who_a_way!
"Tudtok olyan timert, ami egyfolytában ad ki jelet és közben számol is?"
S_OFFDT, S_PULSE és S_PEXT is ilyen.
Visszatérve az előző problémádra:
Megnéztem IEC számlálóval mi van, az üzenetet azért küldi, mert kér fontos szabályt kell betartani a használatakor:The following rules apply to the use of IEC timers and IEC counters on the target system:
The Q output may only be interconnected with a coil.
The CU input may not be connected by a T-branch with another CU input.A kimenete után közvetlenül "tekercset" kell rakni, további feltételeket nem szabad.
A CU bemenetét pedig nem szabad elágaztatni.Nálad az első miatt volt az üzenet. Tehát a számláló Q kimenete után nem tehetsz összehaonlítást (sem).
(Engem is félrevezetett az üzenet, sorry)Az S_CU-t lehet resetelni, hiszen van egy reset bemenete. Ha az aktív, akkor a számláló tartalma nulla lesz.
A kimenete word, a típuseltérés miatt nem lehet összehasonlítást használni (a CMP intet akar).
De meg lehet kerülni a problémát, ha csinálsz egy integer lokális változót és egy move-al beleteszed a számláló word értékét.
Vagy kikapcsolod a típus ellenőrzést a TIA portálban (nem tudom hol kell, nem kerestem még, Step7-et használok inkább). -
Szirty
őstag
válasz
who_a_way
#3051
üzenetére
Helló who_a_way!
Mert ezt az IEC számláló blokkot nem használhatod ahhoz a PLC-hez aminek a programjába beletetted.
Használj IEC számláló helyett natív számlálót!
Ahhoz nem kell program blokk, nem kell DB se.(Timerrel is ugyanezt szívtad meg korábban, IEC timert használtál)
-
Szirty
őstag
válasz
who_a_way
#3023
üzenetére
Helló who_a_way!
Az alábbi két írást javasolnám:
http://szirty.taviroda.com/Alapfokon/Valtozok2/Valtozok2.html
http://szirty.taviroda.com/Alapfokon/S7Prog/S7Prog.html -
Szirty
őstag
válasz
who_a_way
#3020
üzenetére
Üdv who_a_way!
"Mindenesetre a te megoldásod egyszerűbb mint az enyém, csak nálad nincs lekezelve, hogy 10 másodpercig 50%-on menjen. Vagy azt nem is kell?"
Nos kérlek amíg a T2 időtag telik, addig megy 50% sebességgel. Amikor az letelt akkor megy 80% sebességgel, ezt a T3 állítja be. Amikor az is letelt, akkor megy 100% sebességgel.
Tehát:
T2: 50% ideje
T3: 80% ideje -
Szirty
őstag
válasz
who_a_way
#3017
üzenetére
Hali who_a_way!
"Mégse mordul fel a frekiváltó :S Meg valami DC under volt [W8] alarmja van neki.."
Akkor hiányzik egy (vagy több) fázis, vagy alacsony a tápláló feszültség, esetleg hibás a bemeneti egyenirányító híd.
A 16-30-as paraméterben (DC Link Voltage) meg tudod nézni mennyi az a kevés.
Ha a frekvenciaváltó 3x380-500V-os, akkor itt minimum 373V-nak kell lennie. -
Szirty
őstag
válasz
who_a_way
#3010
üzenetére
Helló who_a_way!
"Viszont a megoldásodat kipróbálva nem futott le:"
Mert én Step7-ben csináltam meg, te pedig el nem árultad, de a screenshotokból kiderült, hogy TIA portálban.
Nincsenek benne egyébként IEC timerek, ezek S5 timerek!A megoldást kipróbáltam, működik. Délután csinálok neked TIA portálos verziót.
-
Szirty
őstag
válasz
who_a_way
#3008
üzenetére
Helló who_a_way!
A web oldalamon (remélhetőleg) sok infót találsz.
A Q137.0-t úgyanúgy kell elképzelni mint bármely más bitet, azzal a különbséggel, hogy logikai 1 állapota bekapcsol egy fizikai kimenetet is. Hivatkozni ugyanúgy lehet rá a programban, mint bármely más bitre.A kimeneti bitek, mint pl. a Q137.0 olyan mint egy relé tekercse, aminek végtelen sok segédérintkezője van, amelyeket korlátlan számban használhatsz fel a programban. Ha a kimenetet a program valahol bekapcsolja (relé tekercs), akkor a rá való hivatkozás (amit te bemeneti feltételnek neveztél) ugyanúgy be lesz kapcsolva (a relé érintkezője)...
-
Szirty
őstag
válasz
who_a_way
#3006
üzenetére
Hali who_a_way!
Kezdj újat! Ez így nagyon nem jó!
javaslatom:
Nézd át hogyan működik a blokk hívás! Tudd meg mi egy blokk EN "bemenete" és mit csinál az ENO "kimenete"!
Vedd át a programblokkok paraméter átadásával kapcsolatos szabályokat (bár a feladathoz nincs szükség ilyesmire, de lehet belőle tanulni ha így csinálod).
Fuss végig a DB blokkok kezelésén, címzésén is. -
Szirty
őstag
válasz
who_a_way
#3003
üzenetére
Szia who_a_way!
Hogy a programod miért nem működik, arra továbbra sem tudok így válaszolni hogy nem tudom milyen programot írtál rá.
Ezért most is csak azt tudom mondani, hogy küldd el a programot akár screenshot akár project file formájában, hogy meg tudjam nézni mi a gond benne.Bár a működést meghatározó leírásod nem teljesen hiánytalan, megmutatom én hogyan oldanám meg a feladatot, hátha az segít:
-
Szirty
őstag
válasz
who_a_way
#3001
üzenetére
Helló who_a_way!
Akkor megpróbálok minden kérdésedre válaszolni egyben.
"van lehetőség az SR tároló Q kimenetét egy globális változóba kimenteni, hogy bárhonnan elérhető legyen?"
A kérdésnek félig nincs értelme, mert az SR tárolónak eleve kötelezően meg kell adnod egy változót.
Ez persze lehet globális meg lokális.
Lokális változót SR tárolónak megadni nincs értelme (Network 1), mert a blokk lefutása után elveszti értékét, az SR tároló lényege pedig az, hogy megtartsa előző állapotát amíg azon nem akarunk változtatni. Így az SR tárolónak sem lesz értelme ott.Az SR tároló Q kimenetén viheted tovább a logikai vonalat, oda tehetsz egy globális változót közvetlenül is anélkül, hogy további feltételeket is megadnál (Network 2). Akkor az a változó fel fogja venni magának az SR tárolónak az állapotát . De mivel az előbbi lokális, a blokk lefutása után tartalma véletlenszerű lesz, ezért legalább annyira nincs értelme a Q kimenet felhasználásának mint magának az SR tárolónak ebben az esetben.
Na most ha kötelezően meg kell adni neki egy változót és nincs értelme hogy az lokális legyen, akkor ugye csak globális lehet.
Akkor viszont eleve eléred azt a változót mindenhonnan, hivatkozhatsz rá így annak nem lesz értelme, hogy az SR tároló Q kimenetét közvetlenül egy másik változóba tedd (Network 3) hiszen hivatkozhatsz közvetlenül arra, amelyik az SR tárolót realizálja."Egyébként ez a bit nekem eléggé beragadt, tehát állandóan true, habár default false értéke van."
Ha lokális változót használtál SR tárolónak, akkor nem csoda.
"meg úgy általában számlálókat, időzítőket hogyan kell kinullázni a program indulásakor?"
Ilyesmire nagyon ritkán van szükség, főleg az ellenkezője szokott kelleni, vagyis hogy megtartsa az értékét kikapcsoláskor és visszakapcsoláskor folytatódjon a folyamat, ahol abbamaradt.
Ha mégis szükséges a törlés, akkor két eset lehetséges, az egyik függ attól milyen CPU-d van pontosan. Ha ugyanis a T vagy C, vagy M terület amit "nullázni" akarsz kikapcsoláskor nem esik bele a HW configban megadható retentív területbe, akkor biza felejteni fog. Hogy ott mit lehet beállítani az meg CPU függő.
Igaz írtad hogy 314-es a CPU, de abból is konkrétan 27 (!) fajta van.
A másik lehetőség,,hogy létrehozol egy OB100-at, (ez egyszer lefut amikor a CPU futtatni kezdi a programot) amiben bebillentesz egy bitet, amit az OB1 utolsó sorában törölsz (Reset).
Majd ezt a bitet berakod minden számlálód SR tárolód timered stb Reset bemenetére."Azzal szívok egy ideje, hogy beragadnak a bitek.."
Ezzel így nem lehet kezdeni semmit
Fejtsd ki!"Azt próbáltam megvalósítani, hogy egy kimeneten állandóan megy ki jel (start jel).
A maradék 3 kimeneten pedig 10 másodpercenként aktiválódik a jel. Timerrel és SR tárolóval valósítottam meg, de nem úgy működik ahogy kéne."Ebben pedig csak akkor tudok segíteni valószínűleg, ha megmutatod mit csináltál és leírod mellé mit akartál csinálni.
Új hozzászólás Aktív témák
- Dell Precision 7560 AI -ra és Gamer/Munkára LAPTOP I7-11850H/ 32GB RAM / 1TB SSD / NVIDIA RTX A3000
- Dell Latitude 7420 Prémium laptop 14" FHD IPS kijelző / 16GB memória / Intel Core I5-1145G7 / gar.
- Fujitsu Esprimo P520 E85+ PC, i5-4570 Proci, 8 GB DDR3 RAM, 240 GB SSD
- MSI GeForce RTX 5090 VANGUARD SOC /// ÚJ BONTATLAN /// 2028.12.01.-ig GARI /// 2025.12.01. gyártás!
- Gaming PC GTX 1660 Ti / 16GB RAM Azonnal vihető (CSGO,LOL,VALORANT,FORTNITE)
- Legjobb kijelzős!!! HP ZBook Power 15 G8 i7-11850H 32GB 1000GB Nvidia RTX A2000 1 év garancia
- szinteÚJ 2030 Gar! Dell Pro Max 14 Ryzen AI 9 HX PRO 370 32GB LPDDR5X 1TB NVMe SSD
- Veszünk: PS5 Fat/Slim/Digital/Pro konzolt, játékokat, Portalt stb. Kérj ajánlatot!
- HIBÁTLAN iPhone 15 128GB Yellow-1 ÉV GARANCIA - Kártyafüggetlen, MS4489, 100% Akksi
- BESZÁMÍTÁS! Asrock B450M R5 5600X 16GB DDR4 512GB SSD RTX 3070 8GB Zalman T3 Plus FSP 650W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

