- Meggyi001: Nyilvános wc-k.....még mindig hiánypótló...
- Szoszo94: Xiaomi Mi Router 3G - Padavanra fel!
- bitpork: Phautós tali a Balcsinál 2025 Augusztus 2 napján (szombat)
- Luck Dragon: Asszociációs játék. :)
- Meggyi001: Anya, tudsz segíteni a matekban?....Nem érek rá kisfiam, majd segít a ChatGPT...
- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- Parci: Milyen mosógépet vegyek?
- Gurulunk, WAZE?!
- Ndruu: Segíts kereshetővé tenni a PH-s arcképeket!
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
Új hozzászólás Aktív témák
-
Szirty
őstag
válasz
ebyborz #3126 üzenetére
Üdv ebyborz!
"Kérdésem, a szimulációt futtatni csak csatlakoztatott plc-vel lehet?"
Nem, ha a PLC szimulátorra gondolsz. Annak a lényege éppen az, hogy nem kell hozzá PLC. A PLCSIM azt szimulálja.
Ha a gyakorló WinCCFlexes gép szimulációra, akkor az futtatható valós PLC-n is, de PLCSIM-e n is.A kérdés többi részét nem teljesen értem.
-
Szirty
őstag
válasz
murena2 #3124 üzenetére
Hali murena2!
Igen, ez ismerős probléma. Sajnos valamiért a grafikák színére nem lehet hatással lenni az "animation" módszereivel.
Egy workaround-ot javasolnék:A grafika hátterét tedd átlátszóvá (transparent pipa) bár alapból is az.
Rajzolj egy grafika méretű közönséges téglalapot (rectangle) amit beraksz a grafika mögé.
És ennek a téglalapnak a háttér és előtér színét vagy láthatóságát (visibility) módosítsd változóval. A hatás ugyanaz lesz, csak kicsit több munka. -
Szirty
őstag
válasz
ebyborz #3122 üzenetére
Üdv ebyborz!
Köszönöm az elismerő szavakat!
Megszületett, bár lehet hogy kicsit hevenyészett:Hogyan töltsük át a működő PLC-ből a teljes programot, ha nincs meg a forrás project?
-
Szirty
őstag
válasz
n0rbert0 #3113 üzenetére
Helló n0rbert0!
Szóval ilyen vizualizációra gondolsz...
Nem ördöngős, de rendesen bele lehet mélyedni azért.Az Unitronics szoftverei "ingyenesek" bár ha nincs unitronics OPLC-d, sokra nem mész vele. Amennyire tudom nincs benne szimulátor, de már régen foglalkoztam vele.
-
Szirty
őstag
válasz
n0rbert0 #3111 üzenetére
Helló n0rbert0!
Vizualizálni PLC-s vezérlést is lehet (HMI, SCADA).
Építészeti programot nem tudok ajánlani, nem mozgok olyan területen.Áramkör, áramút tervezőt ingyenest nem tudok. Nem nagyon van ilyen szerintem, de ha van akkor nagyon alap funkciókkal. De Eplan, Splan WSCAD programoknak van demó változata ami ingyenes, de korlátozott tudású.
Esetleg valamilyen "mezítlábas" megoldás képzelhető még el közönséges rajzolóval, pl. OpenOffice draw.
De azzal rajzolni nagyobb tervek esetén nagyon sok többletmunkát jelentene, mivel nem támogatja az villanyos tervezést. -
Szirty
őstag
válasz
n0rbert0 #3109 üzenetére
Helló n0rbert0!
Erre a kérdésre addig nem lehet válaszolni amíg le nem írod pontosan mit értesz "ipari rendszerek tervezése" alatt.
Áramút terv? Kábelezési terv? Építészeti terv? Teljrsítmény méretezés? Munkabiztonsági terv? Kockázat elemzés? Gépészeti tervek? Pneumatika, hidraulika, PLC program? Robot? Épület gépészet? Épület automatizálás? Energia elosztás?
-
Szirty
őstag
válasz
sörösló #3106 üzenetére
Üdv sörösló!
Az én személyes "kedvencem" amikor a pneumatika szelepeket a kapcsolószekrényben helyezik el. Kezdetben jó ötletnek tűnhet, de hosszú távon nem kifizetődő.
Még ha a szelepek kipufogóját ki is vezetik a szekrényből, idővel akkor is vastag olajsár réteg alakul ki mindenen ami a szekrényben van. Az ilyesmi eléggé aláássa a megbízhatóságot, nem beszélve arról, hogy senkinek nincs kedve hozzányúlni, mert sikamlós fekete hányás lesz az egész úgy ahogy van.
A legjobb amikor a rajz is benne van a szekrényben ami az olvashatatlanságig szennyeződik.Olyan is akad, hogy a hidraulika tápegységet a kapcsolószekrény fölé teszik a gép tetejére.
Mint tudjuk NINCS az a pneumatika ami nem szelel valahol és olyan hidraulika ami nem csöpög folyik előbb-utóbb (főleg előbb). Az olaj hova máshova folyna mint a kapcsolószekrénybe?!
Guszta! -
Szirty
őstag
válasz
n0rbert0 #3102 üzenetére
Helló n0rbert0!
"Akkor gyakorlatilag a programkód ugyan úgy néz ki, mintha digitális kimeneteken ledeket kapcsolgatnék?!
Csak itt ugyebár analóg kimeneten a reléket fogom vezérelni."Igen ugyanúgy néz ki, de nem analóg kimenetek ezek, hanem digitális kimenetek.
Itt valami fogalom zavart sejtek.
A digitális kimenet itt azt jelenti, hogy két állapota van: Be és kikapcsolt állapota.Az általam linkelt képek WSCAD programmal készültek. Részletet mutatnak egy ipari berendezés áramút tervéből.
"Kár, hogy nálunk az egyetemen nem nagyon foglalkoznak (ilyen szinten) a gyakorlattal...
Sajnos ilyen helyzetben nagyon elveszettnek érzi magát az ember."Maximálisan egyetértek! Az oktatás gyakorlati oldala mínusz nulla
-
Szirty
őstag
válasz
n0rbert0 #3097 üzenetére
Hali n0rbert0!
Itt egy példa:
Ezen az oldalon a PLC 24V- DC kimenetei 24v DC behúzó tekercsű reléket (-KA...) és 24V DC behúzó tekercsű mágneskapcsolókat (-KM...) működtetnek.
Itt az előző oldalon PLC kimenetek által működtetett relék szelepeket kapcsolgatnak. Igaz ezek is 24V-osak, de lehetnek 230V-osak is természetesen:
Itt pedig a -KM... mágneskapcsolók 400V-os három fázisű motorokat kapcsolnak:
-
Szirty
őstag
válasz
murena2 #3093 üzenetére
Helló murena2!
Nos ha a virtuális gép és a PLC közötti kapcsolat nincs meg, akkor nyilván minden hiába. Abban sajnos nem tudok segíteni (Win7 + VM rulz)
A kapcsolat ellenőrzéséhez inkább a Simatic manager PLC menüjének a Display accessible nodes pontját használd...
(Bár az Upload station to PG után nyiló Select Node Address ablak View gombjának is hasonló a hatása) -
Szirty
őstag
válasz
murena2 #3091 üzenetére
Helló murena2!
"Az a baj hogy nem tudtam csatlakozni a hálózathoz."
...
"(beállítottam PG csatlakozási módot is) nem látok semmit. ONLINE módban sem tudom megnézni programot. "
...
"Csatlakozáskor kiírja hogy nem jött létre a csatlakozás."
...
"Én már az összes létező hálózati beállítást kipróbáltam."Miért nem írtad le részletesen hogyan próbáltál csatlakozni? Én nem voltam ott, nem tudom mit csináltál.
Az hogy nem kapcsolódik érthető. Beállítottad a PG csatlakozást is, de hogyan, mire?
Mindent kipróbáltál, de mi az a minden? Ha nem tudom mit csináltál, azt sem tudom megmondani mi a baj.Csak blöffölni tudok. Amivel viszont az a baj, hogy míg te nagyvonalúan elintézted kb. 10 sorral, addig nekem 10 oldalt kéne írni hogy milyen elképzelhető okai lehet a problémának.
Őszintén szólva ez meglehetősen csökkenti a kedvem ami a válaszolást illeti. Csak két lehetséges (számomra valószínű) okot fogok felsorolni. Amire te nagy valószínűséggel azt fogod válaszolni, hogy azt is próbáltad.Tehát:
A Step7 normál használat közben létező project esetében a projectben szereplő HW beállítások alapján veszi fel a kapcsolatot a PLC-vel.
Ha ilyened nincs, mert a PLC-ről akarsz mindent áttölteni, akkor értelemszerűen nincsenek kapcsolódási beállítások így azt neked kell kézzel megadnod! A legfontosabb a PC/PG interface úgy legyen beállítva amilyen útona csatlakozás létrejöhet. Ha neked ethernetes A PLC-d, akkor pl. TCP/IP Auto a megfelelő beállítás.Ha ezután létrehozol egy új, üres projectet (NEM a varázslóval!!) és ott a PLC menüből kiválasztod az Upload station to PG pontot, akkor kapsz egy ilyen ablakot:
Itt az OP address mezőben meg kell adnod a PLC IP címét, aminek természetesen elérhetőnek kell lennie a gépről (pl. ugyanabban az alhálózatban legyen ha nincs router a géped és a PLC között, stb). Ez gondolom egyértelmű.
A másik nagyon fontos az, hogy ha nem adod (vagy rosszul adod meg) meg a rack/slot beállítást, akkor NEM fogja tudni elérni a PLC-t!
Ha ez egy S7-300, akkor leggyakrabban a beállítás Rack: 0, Slot: 2. -
Szirty
őstag
válasz
murena2 #3088 üzenetére
Helló murena2!
"Ezzel a megoldással hozza magával a hardver konfigot is?"
Igen. Mindent hoz. A halózati konfigurációt, a HW összeállítást és beállításokat, a program blokkokat, az adatblokkokat azok éppen aktuális tartalmával együtt.
Nem hozza a szimbólum infókat és megjegyzéseket. A DB-kben nem lesznek meg az eredeti szimbólum infók, nem lesznek benne megjegyzések, a szimbólum tábla üres marad, a programblokkokból hiányozni fognak a változó nevek és blokk kommentek.
Továbbá ha az összeállítás tartalmazott olyan HW elemet, amihez a Step7-edben nem tartozik eszköz (nem ismeri) akkor a HW config megnyitásakor esetleg üzenget.
Továbbá nem hozza át az operátorpanelek HMI runtime-ok programját sem!
Mivel ezek nincsenek benne a PLC memóriájában (a működéséhez nem szükségesek)... -
Szirty
őstag
válasz
Centaurus #3085 üzenetére
Üdv Centaurus!
A web oldalamon nézz szét. Nem kimondottan kezdőknek szól, de hátha segít irányba állni.
A linkek között van pár hasznos (bár ma már nem működik mindegyik link).Választani olyan típust érdemes, ami elterjedt.
-
Szirty
őstag
Hali aLávaló!
"Szerinted érdemes megvenni a TIA-Portal V11 full csomag-ot?"
Ha szükség van rá. Ha még nincsenek 1200-as PLC-itek, akkor ne vetesd meg. Majd ha szükség lesz rá akkor kell megvenni. Addig talán még az újabb verzió is kijöhet.
"2S-1200-at lehet programozni Step7 V5.5-el?"
S7-1200-at nem lehet csak TIA portállal programozni.
"Meg nem sok jót olvastam a TIA- Portálról. Nagy gépigény, lassú, nem felhasználóbarát Siemens ígéretének ellenére. Bár lassan 2 éve hogy megjelent."
Nagyon más mint a Step7. Sajnos jó pár dolgot nem lehet megcsinálni vele ami Step7-ben alap volt (vagy nem tudom hogyan kell). Pl. nagyon erőlteti a szimbolikus címzést és elfedi az abszolút címeket. Lehet éppen erőltetni az abszolút címzést is, de nem hálája meg. Nem lehet kikapcsolni a típusvizsgálatot sem. ha egy byte-ot akarok összehasonlítani integerrel pl. akkor hosszas konverziókba kell bocsátkozni, rontva a program olvashatóságát és növelve a változó erdő méretét. Vagy STL-ben kell írni.
Nem engedi hogy egy blokkban többféle nyelv legyen, Step7 engedte.
Szóval próbálgattam, de nehezen születik meg a barátság...Valamilyen okból a Siemens újrakezdte nulláról a fejlesztői környezet kifejlesztését (ebből lett a TIA portál). De hogy egy ilyen szoftver kiforrott legyen kell 3-5 év.
"USB kábelt tudom, csak PLC-re lehet használni."
Pedig nem (és ilyet én nem is állítottam). Természetesen a HMI paneleket és PC runtime-okat is lehet vele töltögetni.
-
Szirty
őstag
Hali aLávaló!
Abból kell kiindulni milyen eszközöket használtok és azokhoz kell rendelni a szoftvert.
A PC ADAPTER USB jó lesz. Én is olyat használok, bár két hátránya azért van:
- Nem tud 12 Mbps sebességet. Ha ilyen busz van valahol, arra nem lehet csatlakozni vele.
- Az RS485 felől kapja a tápfeszültséget nem az USB felől. Emiatt csak akkor működik, ha PLC-re dugod rá. Ha pl. egy HMI-re vagy ET200-ra vagy egyéb buszon lévő periféria PG csatlakozós busz csatlakozójára, akkor nenm fog tápfeszt kapni :-/Amit a külföldi kollégák írtak az megfelelő, csak ha nincs S7-200-asotok, akkor a Microwint nem kell megvenni.
Továbbé a WinCC fölösleges.2. TIA-Portal V11 full csomag és akkor elviekben jó vagyok mindenhez(S7300-1200 és HMI) legalábbis a Siemens szerint...de megszívhatom régebbi munka esetén
Kivéve S7-200. Ahhoz Microwin kell.
"HMI programozás. Ehhez a WinCC kell elviekben és ezt is külön kell megvenni tudtommal."
Nem. A HMI programozáshoz WinCC Flexible, ProTool, és TIA portálos WinCC kellhet. A WinCC egy SCADA rendszer.
A régi paneleket (nem "7-es" típusverzió) ProTool-al lehet programozni. Nem tudom van-e ilyen ott.
Az újabbakat ("7-es" típusok) WinCC Flexible programmal lehet. A még újabbakat (KP, KTP Basic stb) meg TIA WinCC-vel lehet.A Step7 és Flexible rendelésnél oda kell figyelni, mert többféle opció létezik hogy melyik mit tartalmaz.
-
Szirty
őstag
-
Szirty
őstag
válasz
makrodom #3074 üzenetére
Helló makrodom!
"Érdekelne,h az OMRON OD261 output modul jelének a kimenet típusát valahogy tudom-e válztoztatni?"
A típus alatt a polaritást érted (NPN/PNP alias sink/source?)
Ha igen, akkor a válasz az hogy nem hiszem.Ha megnézed a sémáját szembeötlő lesz:
Ezen szoftverből nyilvánvalóan nem állítható semmi.
De lehet felhúzó/lehúzó ellenállásokkal vagy további tranzisztorokkal bűvészkedni. -
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
makrodom #3061 üzenetére
Hali makrodom!
A HMI eszközöket a saját szoftverükkel lehet programozni, amit a gyártó fejlesztett hozzá. Hiába van pl WinCC Flexible szoftvered, más gyártó HMI eszközéhez nem lehet használni vele, csak Siemens egyes típusait (még gyártón belül is előfordul, hogy két különböző HMI-jez két különböző szoftver kell).
Ezek között nagyon kevés ingyenes van. Az Unitronics-é pl. ilyen, de ott meg külön HMI szoftver nincs, egybe van gyúrva a PLC fejlesztői környezetével. És nyilván az is úgy ingyenes, hogy a vevő kifizeti az eszközzel, mert annak árába be van építve.Annyi átjárhatóság adódhat, hogy X gyártó HMI eszközére fel lehet telepíteni Y gyártó HMI runtime szoftverét. Akkor az a HMI eszköz Y gyártó HMI fejlesztői szoftverével kezelhető, mással nem.
-
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
murena2 #3049 üzenetére
Helló murena2!
A törekvésed dícséretes. Ez a fórum is főleg ezért van.
Idegen programokban turkálással is nagyon sokat lehet tanulni ha komolyabban beleássa magát az ember. Eleinte, amíg nincs meg a kellő ismeret nehezen, döcögősen halad. Saját project is kell, a kettő együtt kellő mélységben művelve komoly tapasztalattal szolgálhat.
Step7 szimulátora is hasznos. Sok apró kis dolgot ki lehet vele próbálni hogy hogyan is működik...
-
Szirty
őstag
válasz
murena2 #3047 üzenetére
Helló murena2!
B.Ú.É.K.!
"Abban nem voltam biztos hogy ha beállítom a skálázást akkor nincs szükségem egy külön rutint írni rá. Egy kicsit egyszerűbb mint a S7."
Már miért lenne egyszerűbb? 3 perc megcsinálni bármelyiken!
Most képzeld el a következő szituációt (ami mellesleg életszerű és gyakorlatias, mert előfordul olykor):
Tönkremegy a 0...250 fokos távadó. Vesznek egy másikat és kiderül, hogy az -50-300 fokos :>
Mit kell csinálni? Át kell állítani a skálázás paramétereit. Ha a programozó (te) előrelátó, akkor eleve úgy csinálja meg, hogy a skálázást operátorpanelen lehet állítani a program futása közben. csak egy-egy paraméter kell átírni.
De ha a skálázás az analóg modulba van bebetonozva, akkor máshogy mennek a dolgok. Persze ott is lehet DM paraméter memóriákkal kavarni, de akkor már nem is biztos hogy egyszerűbb :>Mind a két megoldásnak van előnye és hátránya is.
-
Szirty
őstag
válasz
murena2 #3045 üzenetére
Üdv murena2!
Az analóg kártya csatornáit S7-nél is ki-be lehet kapcsolni.
Omronnál lehet skálázni is igen. Ha ezt beállítod, akkor nincs szükség szoftveres számolgatásra.
Ha beállítod a skálázást, akkor a beolvasott érték a mért fizikai mennyiség lesz.
Mi volt vele a gond? -
Szirty
őstag
válasz
byte-by #3041 üzenetére
Helló byte-by!
"majd ezt a memóriát összehasonlítottam azzal a memóriával ahová folyamatosan másolom, de amit a bekapcsolás után csak 3 s-mal kezdek el.
így bekapcsoláskor a folyamatosan másolt memória 3 s-ig még a kikapcsolás elötti tartalommal rendelkezik."Ha pont ezalatt a 3 másodperc alatt jön megint egy kikapcsolás, akkor mi lesz?
Tudom, kicsi az esélye, de nem lehet kizárni, így megtörténhet.(Engem sokszor hívtak már fel élszaka olyan miatt, ami elvileg soha nem történhet meg...)
-
Szirty
őstag
válasz
murena2 #3035 üzenetére
Hali murena2!
Akkor a nyomás esetében az analóg kártyáról olvasott értéket (PIW) 0-27648 tartományról kell 0-1250 tartományra skálázni.
Hőmérsékletnél pedig a 0-27648 tartományt 0-250-re és készen is van.Az említett linkeken vannak részletek, például programpélda a skálázásra.
-
Szirty
őstag
válasz
murena2 #3031 üzenetére
Helló!
Csatlakoznék Dezsi82 kolléga hozzászólásához (mindkét témában, a kukacot tényleg ki kellene venni, elvileg always ON-nak csak egy felfutó éle volt, az ősrobbanás idején
)
murena2!
Pontosítom a linket ha meg nem találtad magadtól is:
Analóg jelek kezelése
és Analóg jelek kezelése S7-300/400 PLC-velAmúgy tényleg nem ártana tisztázni milyen fajta S7, mert több féle van és nagyon eltérőek. (S7-300/400, S7-200, Sz-1200)
A lényeg, hogy skálázni kell.
De pl. ha az az S7 300/400 és hőmérsékletet akarsz mérni mondjuk Pt100-al, amihez nem távadót és pl. 0-10V-os jelet használsz, hanem a bemenetre kötöd a Pt100-at, akkor a modul skáláz (és linearizál) helyetted. Olyankor tized fokban közvetlenül a hőmérsékletet adja vissza.Szóval pontosan írd le mit akarsz és pontosan mivel.
-
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.
-
Szirty
őstag
válasz
balazsovics #2985 üzenetére
Üdv balazsovics!
Vannak épület automatizálásra kitenyésztett vezérlők. Azokat ajánlanám. Típust nem tudok, nem ismerem behatóan azokat.
De lényeg hogy kialakításuk (előlapba építhető, kijelzővel rendelkezhetnek, sok analóg bemenet, a témához kapcsolódó beépített funkciók, számítógéphez, GSM-hez illeszthetőségük, esetleg ethernet csatlakozás, beéípette web szerver, stb.) miatt hatékonyabban alkalmazhatók azon a területen.
Drágák azok is.Mivel nem tudom mit akarsz kihozni belőlük, pontosan milyen feladatot szánnál nekik és mennyi pénzt szánsz rá, ennél konkrétabbat nincs sok értelme válaszolni.
Esetleg nézd meg az Unitronics-ot. Remélhetőleg fejlődött azóta hogy összehozott vele a sors. -
Szirty
őstag
Kiegészítés:
"A diagnosztikai bufferből mindig kiderül melyik hibakezelő OB hiánya miatt áll meg."
Kivéve amikor OB122-t tesznek a programba, nem kezelik az eszköz leválást és épp le van szakadva egy eszköz. Ilyenkor CPU stop ugyan nem lesz, de a program minden nem létező címhez való hozzáférési kísérletnél beír egy IO access error-t a diag bufferbe ami pár 10 vagy 100 msec alatt kisöpör minden más bejegyzést onnan.
-
Szirty
őstag
válasz
Dezsi82 #2982 üzenetére
Helló Dezsi82!
A diagnosztikai bufferből mindig kiderül melyik hibakezelő OB hiánya miatt áll meg.
Így csak blöffölni tudok.Szerintem OB122 (I/O Access Error Organization Block)
Gondolom nem csinálták meg rendesen a buszos eszköz hibakezelését és akkor is írni és/vagy olvasni akarja amikor még nincs jelen a buszon.
Nézd meg a diag buffert.Ha ez a probléma, akkor úgy lehet kezelni, hogy OB1-ben meghívod SFC 51 "RDSYSST"-t amivel megállapítod melyik konfigurált eszközök vannak jelen a buszon és a PIW/PQW írását csak akkor engeded ha jelen van.
-
Szirty
őstag
válasz
Csakénvagyok #2980 üzenetére
Hali!
Én ezt írtam:
"...nem engednénk az indítást ha a számlálóban több mint 50 van? :>"Erre te ezt válaszolod:
"Bizonyos idő múlva lehetetlen lesz az indítás, mivel a számláló 50 alá csökken"Csak én látok itt ellentmondást?
Akkor nem engedi az indítást ha 50-nél nagyobb és nem akkor amikor kisebb.
De még be is idézted...No mindegy. Valószínűleg ebből a témából már nem tudunk többet kihozni
-
Szirty
őstag
válasz
Csakénvagyok #2978 üzenetére
Hali Csakénvagyok!
Én nem akarok veszekedni, de elolvastad amire reagáltál?
-
Szirty
őstag
válasz
Csakénvagyok #2976 üzenetére
Hali Csakénvagyok!
"Természetesen egy számláló sosem vesz negatív értéket, amennyiben Countereket használunk, s nem valamilyen memóriaterületen képzett számlálókat."
Ha már feltételezted, hogy az óránkénti max 6 indítás valamilyen technikai követelmény, feltételezhetted volna azt is hogy S7 Counterről, azaz számlálóról van szó...
Na jó ennek már mindegy.. (Általában nem kedvelem a feltételezéseket és a blöfföt, csak azért reagáltam így)No és mi volna, ha minden indításkor egy számláló tartalmához hozzáadnánk 10-et és a számlálót percenként csökkentenénk (nulláig) és nem engednénk az indítást ha a számlálóban több mint 50 van? :>
"Összegezve, még mindig egy LIFO listás időmérést tartok leginkább javasoltnak."
Jó megoldás.
Azonban az alternatív megoldások vizsgálata hasznos lehet... -
Szirty
őstag
válasz
Csakénvagyok #2973 üzenetére
Helló Csakénvagyok!
"De mivel csak óránként eggyel csökkented a számláló értékét, s valamint ha az előző órában már 6szor beindították akkor ebben az órában már maximálisan csak egyszer indíthatsz."
És mi van, ha az előző óra 59. percében elindították hatszor, majd a következő óra 1. percében megint hatszor? Akkor 2 percen belül 12x indították, pedig óránként kell maximum hatot megengednie
Az eredeti kérdésben az sem egyértelmű tehát, hogy az 1 órás időtartamot hogyan is kell mérni.
A jelen időtől visszafele mért elmúlt egy óra (relatív) az az 1 óra, vagy Reggel 8:00-9:00 9:00-10:00 stb fix időpontok között eltelt (abszolút) 1 óra.Mivel minimális értéket nem adtál meg a számlálónak, ez akár 0 értéknél kisebbet is felvehet, ami azt eredményezi hogy akár 6nál többször is el lehet indítani
A SIMATIC S7-300 PLC-ben a számlálók értéke soha nem lesz negatív.
-
Szirty
őstag
-
Szirty
őstag
válasz
Csakénvagyok #2970 üzenetére
Helló Csakénvagyok!
Nem tudom mit értesz kezdeti állapot "figyelésen". Nyilván van egy "kezdet", amikor a programot először elindítod. Mivel a program nem tudja hogy a születését megelőző órában volt-e indítás és hányszor, feltételezhetjük, hogy nem volt. Ha a 6-nál több indítás nagyon kritikus, akkor feltételezhetjük azt, hogy volt már hat indítás, így egy óráig a program futásának kezdetétől nem enged indítást végezni, tehát teljesülni fog az hogy ne legyen több hatnál.
"szóval az első órákban csak óránként lehet indítani,"
Nem!
Az első órában akár hatszor is el lehet indítani, akár egy másodpercenként is (bármilyen gyakorisággal, de csak hatszor).
Honnan veszed hogy csak óránként lehet? Feltételezzük, hogy a számláló tartalma a program indításakor nulla, és az indítást csak akkor gátolja hat vagy több, akkor miért ne lehetne többször indítani?"de még később is csak akkor lehet egynél többször bekapcsolni ha előtte párszor kimaradt."
Bármikor lehet egynél többször indítani, ha abban az órában 5-nél kevesebb indítás történt.
"Ugyanakkor ha előtte többször is kimaradt egy idő után lehetséges többször is mint 6 indítani."
Soha nem lehetséges egy órán belül hatnál többször indítani, mert a számláló 6 után tiltja az indítást.
Természetesen ha az egy órát nem aszinkron módon kell mérni amin belül nem lehet 6-nál több indítás, hanem az első indításhoz mérjük, akkor más a helyzet.
De a probléma megfogalmazásában ilyen kikötés nem volt, ezért a számlálós megoldás is megfelel."Egy megoldás úgy is lehet hibás, hogy rosszul van megfogalmazva maga a probléma!"
-
Szirty
őstag
válasz
Csakénvagyok #2965 üzenetére
Szia!
Abszolút!
Mellé lőttem, elnézést!
Gallusz nem nyilatkozik! Az ő nevét kell behelyettesíteni a tieddel.
Sorry! -
Szirty
őstag
válasz
isvarga #2962 üzenetére
Hali isvarga!
Veled értek egyet. Venni kell bővítő modult a 200-ashoz és nem ilyen megoldásokhoz folyamodni.
A tárolós megoldás ugrott be elsőre nekem is, de ahelyett inkább elleneztem ezt a kimenet sokszorozást, ezért nem írtam le.Ennek is van egy pár hátránya.
Pl. szint illesztésről kell gondoskodni, a 4094 max 20V-ot visel el, kell egy külön tápegység is az egészhez.
A PLC elejti az összes kimenetét ha pl. egy hiba miatt STOP állapotba kerül. Ezzel a megoldással azonban úgy maradnak a relék ahogy voltak.
Fogalmam sincs, hogy ez a megoldás mihez kell (hiába kérdezem, Csakénvagyok nem hajlandó válaszolni) de ha otthoni fényjátékhoz karácsonyra, akkor ez nem gond, de ha valamilyen ipari berendezést kell vele vezérelni, akkor probléma lehet, erre is gondolni kell.
A kimenetek kapcsolási sebessége is tizedelődni fog, ha a PLC 30ms ciklus idővel fut, akkor egy ilyen multiplexelt kimenet kapcsolása akár 240ms késést is szenvedhet. De mivel nem árulta el mire kell megint csak nem lehet tudni ez a tulajdonság jelent-e akadályt. -
Szirty
őstag
válasz
Gallusz #2956 üzenetére
Hali Gallusz!
Azért kell ez, mert kevés a 16 kimenet? Ilyen megoldást csak végső esetben szerintem.
Milyen kimenet az a 16 azon kívül, hogy digitális? 24V, 230V, relés?
Van a 16-on kívül még 2 vagy 4 kimenet aamit fel lehet használni a multiplexeléshez, vagy ez a 16 van csak? -
Szirty
őstag
válasz
01101010111 #2952 üzenetére
Üdv 01101010111!
Azt elfelejtettem megjegyezni, hogy az előző hozzászólásommal tulajdonképpen nem is válaszoltam a kérdésedre, mert te TAG-be akartad tenni az aktuális screen számát, és WinCC-ben akartad megoldani. Én meg Areapointerbe raktam és WinCC Flexible-ben adtam példát.
A WinCC Flexible vs WinCC kérdésre utaltam, a második hiányosságot pedig most küszöbölöm ki:
Ha a HMI-ben is tudni akarod, hogy melyik az éppen kijelzett kép (mert pl. scripttel akarod feldolgozni vagy éppen kiírni ezt a számot a template screen-en), akkor készíts a DB10.DBW12-re mutató integer TAG-et.
Abban az előző üzenetem alapján automatikusan az aktuális képernyő száma lesz. Ha fontos hogy a system screenek ne keveredjenek bele, akkor a PLC-ben elkülönülő címre kell tenned a TAG-et (nem az areapointerre) és programban összehasonlítással kizárni a system screent, és csak akkor írni pl. nullától eltérő értéket a TAG-be amikor user screen van a képernyőn. -
Szirty
őstag
válasz
01101010111 #2952 üzenetére
Szevasz 01101010111!
Gondolm WinCC helyett WinCC Flexible-ről van szó.
Tehát azt akarod, hogy a PLC tudja melyik screen van a HMI-n megjelenítve.
A dolog többféleképpen is kivitelezhető, leírom ln hogy szoktam.
A dolog mechanizmusa az, hogy a HMI-ben felvejető egy areapointer, ami 5 integert tartalmaz. Ezekben minden képernyőváltáskor közli, hogy hanyas kép van kiválasztva és az user kép vagy rendszer kép, továbbá megadja azt is, hogy az adott képernyőn melyik mező van kiválasztva (ha van kiválasztható mező a képernyőn, pl. input field).A megvalósításhoz a következő lépéseket kell követned:
1.
A PLC-ben valamelyik DB blokkban kijelölsz 5 szó (10 byte) hosszúságú helyet. Célszerő az operátorpanellel való foglalkozáshoz egy külön DB-t használni,de egyébként mindegy mi van még a DB blokkban. 5 integer típusú bejegyzésre lesz szükség:A példában én a DB10-et használtam erre, a kép tehát a DB 10 egy részletét mutatja.
2.
A WinCC Flexben Communications / Connections képen átváltasz az Areapointer fülre és For all connections sorban megadod a létrehozott 5 integer kezdőcímét (DB10.DBW10)TIA portál esetén ugyanez a beállítás szükséges (de arról nem csinálok külön screenshotot).
3.
A PLC-ben ezután a DB10.DBW12-ben megkapod hányas számú kép van kijelezve. De ez csak akkor igaz, ha a DB10.DBW10 tartalma =1 (ebből derül ki, hogy nem rendszer képernyőről, hanem felhasználóiról van szó).
Ha biteket akarsz bekapcsolni amikor egyes képernyők vannak kijelezve, akkor egyszerű összehasonlításokkal könnyen megteheted.
Pl.:Ha sok képernyőhöz kell külön-külön ilyen biteket kapcsolgatni, akkor érdemes csinálni egy program blokkot ami ezzel foglalkozik.
-
Szirty
őstag
-
Szirty
őstag
Hali vopi86!
"Azt hogyan kell beállítani, hogy minden alkalommal kérje a jelszót ill. felh.nevet?"
Minden alkalommal kéri, amikor nincsenek bejelentkezve.
Tehát hogy újra jelszót kérjen ki kell jelentkezni (logoff). Alapból ez 5 perc tétlenség után magától megtörténik. Ha a panelt 5 percig magára hagyod, megint kérni fogja a jelszót.
Ez az idő állítható az User administration / Properties / General / Atomatic logoff /Minutes to logoff beállításnál:Ki is kapcsolható, akkor magától nem jelentkezik ki.
Ha az időzített automatikus kilépés nem felel meg neked, és azt akarod, hogy ha bármilyen rövid időn belül újra megnyomják a gombot akkor megint be kelljen lépni, használd a Logoff funkciót a SetBit után a nyomógomb Eventjénél:Ekkor a következő történik:
A gombot megnyomják, de mivel annak Security / Authorisation beállítása nem üres, a gombhoz rendelt események nem kerülnek végrehajtásra.
Mivel ekkor a felhasználó nincs bejelentkezve, feldobja a jelszó kérő ablakot. A felhasználó bejelentkezik, majd ismét megnyomja a gombot. Mivel ekkor be van jelentkezve ledutnak a gomb eseményhez rendelt funkciók, vagyis bekapcsolja a bitet a SetBit funkció, majd azonnal ki is jelentkezik.
Így ha ismét megnyomják a gombot, megint jelszót fog kérni..."m66.1-es merkert hogy lehet beállítani, hogy kikapcsolás után is megtartsa az értékét?"
Lásd az előző üzenetet (Retentive Memory beállítás!
-
Szirty
őstag
Szevasz vopi86!
Úgy, hogy a hardver konfigban, a CPU tulajdonságoknál beállítod a Renetive Memory fülnél hogy mit őrizzen meg feszmentes állapotban:
Gondolom a táblázat kitöltése magától értetődő, nem magyarázom.
Az azonban fontos, hogy amit itt látsz az függ a CPU típusától is.
Van olyan CPU pl. aminél a DB-k mindenképpen megtartják az adatokat, ezért azt itt be sem lehet állítani melyikből mennyit tartson meg.
Amennyiben a képen látható módon DB-nként beállítható miből mennyit tartson meg, neked kell eldöntened mely adatok fontosak.
Komolyabb project esetén az ilyen CPU típusnál ezzel előre kell számolni és a megtartandó fontos adatokat (üzemállapot, beállítások) egy helyre kell csoportosítani, hogy átfedésbe lehessen hozni az adatmegtartásra kijelölt memória területekkel. (Ha össze-vissza lennének ezek a megtartandó adatok, akkor ez nem biztos hogy maradéktalanul sikerülne)
Az gondolom logikus, hogy az összes DB-t és merkert nem biztos hogy be tudod adatmegtartásra állítani, hisz a retentív terület mérete korlátozott (különben értelme sem volna ennek a beállításnak). -
Szirty
őstag
Hali vopi86!
Ha jelszóhoz akarod kötni egy bit bekapcsolását, akkor ne úcs csináld, hanem így:
1. Leraksz egy gombot (button) aminek az egyik eventjéhez beállítod a SetBit funkciót, annak megadod a kívánt bitre mutató Tag-et.
2. Létrehozol egy felhasználót (user administration) annak adsz egy megfelelő hozzáférési szintet és jelszót rendelsz hozzá
3. Az iménti nyomógombnál bekapcsolod a jelszavas védelmet (Properties/Operate) és megadod neki azt a felhasználói csoportot, amelyikhez az imént a felhasználót hozzárendelted.
Kész.
Ha megnyomod a gombot kéri a jelszót. Ha megadod a jelszót megnyomhatod és akkor bekapcsolja a bitet. Ha nem adsz meg jelszót vagy rosszat írsz be akkor hiába nyomod, csak újra kéri a jelszót, a bitet nem kapcsolja be.
-
Szirty
őstag
Hali belys!
Tehát a T101 idejét akarod felezni indítás után. T101 ideje DM8-ban van.
Gondolom DM8 tartalmát állítja a HMI panel egy input mezője.A T101-nél DM8-at kicseréled egy szabad D memória címre (legyen DM100, hogy a szövegben legyen mire hivatkozni).
Ezután a DM8 tartalmát vagy MOVE-al átteszed DM100-ba, vagy elosztod kettővel és az eredményt teszed DM100-ba, amikor fele időt akarsz.
BCD osztást használj, a timer SV BCD típusú adat.Így ha változtatnak a bekapcsolás idején, a rövidebb idő is változni fog, mindig a beállított fele lesz, bármennyit állítanak be panelen.
-
Szirty
őstag
Helló DizzyP!
PtP-s CPU-t még nem használtam, de külön PtP-s CP-t igen.
Ahhoz adtak egy CD-t azon voltak olyan program blokkok amikkel lehet kommunikációt megvalósítani (azok nélkül is lehet ha megírja magának az ember).Szóval azoknál a működés lényege az, hogy van egy adási puffer (egy DB blokkban) meg egy vételi puffer.
Amikor adni akarsz valamit, azt beleteszed az adás pufferbe, maly megcsiklandozod az adással foglalkozó blokkot a request bemenetén, erre az elküldi. az adási puffer tartalmát (jelzi is amikor küldi meg azt is amikor készen van.A vétellel foglalkozó blokk folyamatosan figyeli jött-e valami. Ha igen, azt belepakolja a vételi pufferbe és szól hogy adat jött.
HW configban sokmindent be lehet állítani az adatsebességen, bitek számán paritáson kívül is, azt át kell nézni. Pl. az adás végét jelző karaktar (ha van ilyen) időzítések, legyen-e adatfolyam vezérlés, felülírja-e a vételi puffert, stb.)
Sajnos nem tudom a PtP CPU-nál ez a dolog hogy néz ki, de valószínűleg ehhez hasonló lehet.Közben megnéztem (bár nem tudom az öt féle 314C-2DP PtP közül melyik van neked, én találomra a 6BG03-at néztem) nagyon hasonlóak a beállítások.
Nem akartam túllihegni a válaszom, nem ismerem a háttered és ezek szerint a kérdést is félreértettem...
Amikor én ezzel foglalkoztam, a PLC---Eszköz összekapcsolása mellett párhuzamosan az eszköz adás vonalára rákötöttem a PC soros portját is (egy RS422/485-ös átalakítón keresztül). Így azt az adatot amit a PLC kapott, a PC is megkapta és egy terminálprogrammal (ZOC) tudtam nézni mik jönnek. Sokat segített.
-
Szirty
őstag
Helló DizzyP!
"Terminallal csináltam. Inkább magánál a plc program írásánál akadtam el: hogy küldi el a kérést, hogy fogadja az adatokat és azzal én mit tudok kezdeni."
Írtam neked, hogy egy koordinátát fogsz kapni (néhány járulékos egyéb infóval együtt) ami pontosan megmondja hol a daru!
Egy egy dimenziós 32 bites koordináta értéket. Azzal miért nem tudsz mit kezdeni?
Ha azt akarod hogy a daru menjen 22254 koordinátára és a pillanatnyi koordinátája ennél kisebb, akkor elindítod előre, ha nagyobb akkor hátra. Közben folyamatosan (ciklikusan) lekérdezed a pillanatnyi koordinátát és összehasonlítod a 22254-el, ahol meg akarod állítani.
Ha a az aktuális pozíció (koordináta) egy ésszerű tűréssel együtt megfelel a 22254-nek, akkor megállítod.Amúgy nem fogod elárulni milyen kommunikációs lehetőség van azon a PLC-n?
-
Szirty
őstag
Helló DizzyP!
Hát ez lehet hogy nem lesz olyan egyszerű, mint amilyennek látszik.
Először is lehetővé kell tenned, hogy a PLC kommunikálni tudjon az olvasóval. Ez azzal jár, hogy a PLC-ben kell hogy legyen egy PtP kommunikációs lehetőség. Ez vagy egy RS232/485 PtP kártya, vagy ha PtP-s a CPU, akkor annak a PtP portja megfelelő.
A CPU-ban a PtP porthoz van gyári blokk, amivel tudsz adatot küldeni és fogadni rajta keresztül.Az olvasóhoz való Leuze konfig programmal beállítod az olvasót ahogy neked kell.
- Telegram típusa (egy változtathatót és két fixet ismer)
- Skálázás, ha szükséges
- A növekmény irány (melyik mozgásirányba nőjön az olvasó által küldött pozíció koordináta)
- Preset felvétele ha szükséges (a koordináta rendszer nulla pontjának meghatározása)Amennyire látom, az olvasó a neki küldött kérésekre küldözget válaszokat. Kérés meg van diagnosztikai, pozíció lekérdezés, stb.
Írni kell tehát egy programot a PLC-re, ami ciklikusan lekérdezi a pozíciót az olvasóról és a vett adatokat feldolgozza. Pozíció lekérdezéskor mm-ben fog visszaadni egy 32 bites pozíció értéket, de minden ilyennel együtt küld egy status byte-ot is.
Ezzel is foglalkozni kell, mert ha az olvasónak baja van (ERR) akkor bekapcsol egy bitet amiben jelzi, hogy nicns visszaadható pozíció. Pl. ha szennyeződés miatt nem tudja leolvasni a vonalkódot.
Továbbá küld egy XOR kódot is, amivel neked XOR műveletet kell végrehajtanod, ez az adatbiztonságot szolgálja.
Ha nem akarod, hogy a daru koppanásig menjen valamilyen hiba miatt, akkor ezekkel mindenképp kell foglalkozni!A lényeg, hogy kapni fogsz egy bináris pozíciót, ami megmondja hol van a daru.Ezeket beállított értékekkel összehasonlítva tudod vezérelni a lassítását (ha van neki) és a megállítását.
Néhány jó tanács:
- A megállási pozíciót soha ne egyenlőségre vizsgáld, hanem tartományra!
- Figyelni kell arra, hogy ha a pozíciók nem fixek, hanem lehet állítani pl. HMI-ről, akkor ne kerülhessenek átfedésbe egymással pl. hibásan megadott érték esetén.
- Tanulmányozd a BPS 8 leírását
- Használd a SLEEP funkciót amikor a berendezésed olyan üzemállapotban van hogy egy darabig nem fog megmozdulni. SLEEP módban kikapcsolja a lézert és az eltérítő tükör forgató motorját. Ha ezek éjjel-nappal aktívak az nyilván csökkenti az olvasó élettartamát
- Legyen a pálya két végén külön vészleállító végállás, hogy hibás pozícionáláskor ne legyen nagy baj.
- Esetleg ha használni akarod a pereset funkciót, akkor kell egy fix referencia pont, nyilván szintén egy végállással. -
Szirty
őstag
Helló drgab!
"Nem fordulhat elő, hogy a set-elő ág később értékelődik ki, mint ahogy a shift regiszter beolvassa a bemenetén a setelt bitet tartalmazó byte-ot?"
Nem.
Azért nem, mert a program balról jobbra / fentről lefele kerül végrehajtásra, ami sosem változik meg, mindig így csinálja.
Ha ezt a sort beírod létrában és megnézed a kódot STL-ben egyértelmű lesz.Köszönöm az elismerő szavakat!
-
Szirty
őstag
Helló drgab!
Igen, SHL_W word-öt (16 bitet) shiftel. De ez nem baj, mert az a 3 ami neked kell benne van ebben a 16 ban
Persze megvan az a hátránya, hogy ha csak az alsó 3 bit kell neked, akkor a többi kvázi fölösleges (elvész).
De ha nagyon fontos hogy őgí működjön mint az FC92, az is megoldható.
Három változatot csináltam. Az első egy teljes byte-ot használ fel a léptetésre:Igaz, hogy az SHL_W 16 bitet shiftel, de csak 8-at (byte) töltöttem bele.
Igaz ezt alapból el sem fogadja a fordító, sajnos ki kell kapcsolni hozzá a típus ellenőrzést (Type check of addresses).
Ez a módszer az egész MB222 merker byte-ot használja, tehát az MB222.3-MB222.7-ig terjedő 5 bitet nem használhatjuk fel a programban, ám ezek a bitek tartalmazzák a 4. az 5. a 6. stb lépéssel azelőtti állapotot (ha netán szükség lenne rá).Ha azt akarod, hogy csak az alsó 3 bitet léptesse az MB222-ben, akkor maszkolni kell és átmeneti változókra is szükség lesz. Létrában ez:
STL-ben egyszerűbb megcsinálni, nem kell hozzá csak egy átmeneti változó. Bár azt is ki lehetne talán küszöbölni egy kis trükkel:
-
Szirty
őstag
Helló drgab!
Egy screenshot sokat mondott volna arról mit hogyan csináltál.
Kipróbáltam, nálam működik, így csináltam:Amikor M200.0 +-ból 0-be vált, akkor lép egyet, majd beírja M200.1 pillanatnyi állapotát a shift regiszter elejére (M222.0-ba). 3 bitet tol el balra, az eredmény M222.2-es biten jön ki.
"reset:???? ez miért kell? és mi lesz"
Ha a RESET TRUE amikor a blokk lefut, akkor törli a shift regisztert (avagy annak összes bitjébe nullát ír).
"Whenever the RESET input is set to 1, the locations in the table are set to 0 rather than being shifted."
Hogy kell-e, azt döntsd el te.Van, ez egy lehetőség, nem kell kihasználni ha nincs rá szükség.
Bár ennek a blokknak a használata kényelmes (ez a blokk inkább akkor kap fontos szerepet ha több mint 32 bitet kell léptetni), de megjegyzem, hogy vannak bit léptető (shift és rotate) utasítások is:
Létrában és FBD-ben: SHR_I, SHR_DI, SHR_W, SHR_DW, SHL_I, SHL_DI, SHL_W, SHL_DW, ROL_DV, ROR_DW. Azokkal is megoldható a feladat. -
Szirty
őstag
válasz
byte-by #2912 üzenetére
Helló byte-by!
Én a mai napig Dell Latitude D630-at használok a cégnél WinXP 32 bit SP3-al.
Ezen kívül:Nem volt semmi baja telepítéskor. De ennek semmi köze a HW-hez, ez egy installer hiba.
A Step7 szoftverek SQL-t hazsnálnak és érzékenyek az SQL verziókra. Ez sokszor okoz problémát. Továbbá ilyen kiherélt "hacker" XP módosításokkal sem szívesen működik együtt. Ez szintén független a HW-től. -
Szirty
őstag
-
Szirty
őstag
válasz
byte-by #2896 üzenetére
Hali!
Omron CP1E-t én is tudom ajánlani. Kapuhoz annyira nem, de tanulni kiváló, mert könnyen tanulható, az Omron doksik megfogalmazása angolul gyengén tudók számára is jól érthető, sok ábrával magyaráz.
A CX-Programmer pedig hatékony és könnyen használható.
Nem kell hozzá külön drága programozó kábel, egy közönséges A-B-s USB kábel megfelel: -
Szirty
őstag
-
Szirty
őstag
Helló d3kk!
Talán ha valaki ismeri ezt a rendszert, majd ír valami neked megfelelő tippet.
Ha egy másik rendszer működését akarod lemásolni, akkor két dolog elengedhetetlen ehhez:
- A másik rendszer működésének a pontos ismerete, mivel anélkül esélyed sincs olyat építeni ami ugyanúgy működik
- A te "másolat" rendszered tulajdonságainak meg kell egyeznie a másolandó rendszer tulajdonságaival lehetőleg pontosan (eltérés esetén a másolat is eltérhet).Az üzeneteidből nem úgy tűnik, hogy ezek a feltételek teljesülnek.
Így ránézésre a "termosztát" ami egy bizonyos (beállított) hőmérsékletnél egy digitális jelet kapcsol ki vagy be nem biztos hogy elég lesz ahhoz amit leírtál..."adot homersekleteknel be ill ki kell kapcsolja a szivattyukat kulon kulon illetv szbalyoznia kell a keveroszelep allasat"
-
Szirty
őstag
válasz
liderces #2877 üzenetére
Helló liderces!
"Nem kötekednék de szeretném kivesézni miért nem való ilyen célra a PLC?"
Mert nem költség hatékony. Nincs értelme a legtöbb esetben ilyesminek, senkin nem akarja PC-n monitorozni vagy gyakran módosítani a kapunyitója vezérlő programját.
A kpaut nyitni akarja meg zárni, tovább a dolog nem érdekli.
Persze lehet kivétel, pl. TeEz egy minimál mikrovezérlőnek is nagyon egyszerű feladat. PLC-t használni ide olyan mint ágyúval lőni verébre. Nagy pazarlás. Tanulni persze lehet belőle valamennyit, de őszintén szólva a feladat olyan mértékben egyszerű, hogy nem túl sokat.
Én nem mondom hogy ne csináld, de vállalkozást ne építs ilyen projectre.
-
Szirty
őstag
válasz
Dezsi82 #2869 üzenetére
Helló Dezsi82!
Természetesen az összes ellenszenvem a virtuális géppel kapcsolatban a mindennapi "éles" használatra vonatkozik.
Kétségtelenül előny, hogy lehet gyentelni egy VM-et ritkán használt, más szoftverekkel együtt nem működő programokat havonta/évente egyszer-egyszer használni, vagy szoftvert kipróbálni. Arra tökéletes."- Több fejlesztő környezetet használsz és nem akarod hogy az összes környezet összes kis kommunikációs, sql, meg minden egyéb kis kütyüje fusson olyankor is, amikor nem is használod."
Ne viccelj ez meg milyen érv? Azt akarod,hogy a virtualizálás állandó jelleggel két pofára GByte számra zabálja a RAM, ot és felezze a a CPU teljesítményt, mert nem akarod, hogy néhány service elhasználjon 10% CPU időt meg pár-tíz MB memóriát?
Milliókat költünk pár forint megspórolására...
Persze akarhatod, magánügy, nem akarlak meggyőzni semmiről én csak azért írom le miét nem akarom. (Az ellentétek ütköztetése segíthet másoknak eldönteni ők mit vagy mit ne akarjanak)Nyilván megvan az előnye és emiatt a létjogosultsága a VM-nek is. De azért azt merész lenne kijelenteni hogy ezzel együtt nincs hátránya és hogy mindig probléma mentes.
Számomra két alapvető hátránya teszi problémássá a a mindennapi használatát.
Az egyik a mértéktelen erőforrás igénye, és teljesen mindegy hány csillió teraHertzes a CPU (és ezen az erőforrás zabáló VM-en futtatunk erőforrás zabáló szoftvert (.NET-es alkalmazás rulez)). Persze a sebesség még ha mérhető is, van annyira szubjektív, hogy talán ami neked "nem lassú" azt én állni látom, benne van ez is.Mindenesetre szarul nézett ki, amikor baj volt egy géppel és terepen bekapcsoltuk a gépet, a BIOS szokásos fél perces parádéja után feltápászkodott a Win 1-2 perc alatt, aztán az egész boot műveletet megismételtük további 2-3 perc alatt a virtuális gépen, majd további fél perc mire betöltődik a fejlesztői környzet, aztán egy 20-30 másodperc "kiböngészni" a projectet és annak betöltődésekor nézni a homok órát, miközben a fél műszak, a művezető, az üzemvezető meg a karbantartók kérdezgetik hogy na mi a baj, mit csinálsz...
Persze tudom jöhetnek az ellen érvek: Pl. hogy vegyünk gyorsabb gépet. Vagy a notebookban van akku, nem kell leállítani amikor kivisszük (akku van, csak épp egy percet sem bír már szegény).
Vagy hiberbnáljuk, ne bootoljunk, akkor gyorsabban lesz üzemkész. Sajnos van hogy a "sztázisból" bal lábbal ébred a windows és nem jut eszébe hogy hálózat is volt még mielőtt elaludt. Így lehet újra bootolni, ami a leállással együtt, meg a hibernációból való ébredéssel együtt a fenti folyamatra rádob még pár percet. Ezt persze nem mindig csinálja, de ilyenkor (amikor sietni kellene) valószínű :-/Mivel a sok kicsi sokra megy a végén mit látnak? Azt, hogy áll a gépsor, én meg negyed óráig állok tétlenül a gép előtt...
Mióta natív XP megy és nincs VM a gyakran használt fejlesztői rendszer alatt, azóta sokkal hatékonyabb a munka. Ezért javaslom mindenkinek hogy ha teheti kerülje a VM használatát."...és nem szeretnéd, hogy elrontsa a korábbi szoftvert és újra kelljen telepíteni, akkor csak csinálsz egy snapshotot, és bármikor vissza tudsz állni."
A host gépen végrehajtott image mentéssel megoldható.
-
Szirty
őstag
válasz
Csakénvagyok #2865 üzenetére
Helló Csakénvagyok!
Ahh. Szóval a telepítőnek kevés a felbontás, nem a Step7-nek (az megy akár 800x600-ban is).
A virtuális gépen használni akkor érdemes, ha nincs mód megszabadulni a Win7-től (pl. mert a géphez nincsenek már driverek XP alá). Valamilyen szinten használható, de összehasonlíthatatlanul kényelmetlenebb, lassabb, körülményesebb és nem ritkán szívás.
Ettől neked még megfelelhet, próba szerencse. -
Szirty
őstag
válasz
Csakénvagyok #2862 üzenetére
Helló Csakénvagyok!
"Azt szeretném kérdezni hogy valakinek sikerült már Virtuális XPről csatlakozni S7-300as procikhoz"
Igen. De etherneten keresztül (TCP/IP). Egy darabig mi is Win7+VM+XP+Step7 felállással próbálkoztunk.
Úgy-ahogy működik a dolog, de rettentő kényelmetlen és nyögve nyelős. Ekkor kialakult és azóta azt javaslom mindenkinek, hogy aki nem szopni akar, hanem hatékonyan dolgozni az nem hogy Win8-at, de Win7-et sem használ ilyen célra (egyelőre).
Aki meg akar, annak jó étvágyat...
Gyanítom,hogy az USB-s megoldás csak akkor fog menni, ha a virtuális gép hajlandó/képes korrekten átvenni a host rendszertől az USB kezelést."nagyobb rezolciót kért volna az S7, de igazán nem a felbontással volt a gond."
Még nem találkoztam olyannal, hogy a felbontással kapcsolatban bármi megjegyzése lett volna (Már ha "S7" alatt a Simatic Manager-t és a Step7-et érted, mert az S7 az maga a PLC).
-
Szirty
őstag
válasz
sörösló #2860 üzenetére
Hali sörösló!
"Láttam már csúnya géptörést a refpont hibás érzékelője miatt."
Ó hogyne! A keresés és nem találás ilyesmibe gyakran torkollik...
Jobb esetben tényleg elsettenkedik ütközésig aztán jön a szervó hiba (overload, tracking error, stb.).
Sajnos volt már, hogy az ütközést az energia lánc valósította meg. Az meg ugye nem erős, de okos volt, engedett.
No meg játszott már ütközősdit profibuszos abszolút encoder is... -
Szirty
őstag
válasz
sörösló #2858 üzenetére
Hali sörösló!
"Néhány kolléga szerint CNC gépeknél az abszolút útadó az egyetlen járható megoldás"
Meg kell jegyeznem, hogy az abszolút jeladó valóban bír határozottan pozitív előnyökkel. Ugyanakkor a fentebb vázolt problémát az sem kerüli meg, de más jelleget ad neki
Nálunk sok szervó működik abszolút jeladóval (Nem CNC). Azoknak is mindenképpen kell referencia pont, legfeljebb ritkábban látogatják.
Ezért előfordul, hogy a refpont érzékelőjét leszerelik és elhasználják másik géphez, mert épp nincs induktív érzékelő a raktárban és az meg pont olyan. Természetesen ezután így is marad, a gép megy tovább, üzemszerű működése közben a refpont közelébe se szagol.
Míg nem aztán ahogy telik-múlik az idő és fluktuálódik a kezelő személyzet megtalálják a "referencia menet" funkciót, mert épp valami baj van és úgy vélek ez kell az üdvösséghez (vagy ennél prózaibb ok alakul ki: szervó drive csere történik).
Szerencsétlen keresi a refpontot bőszen, de az már régen messze jár...(van olyan szervóhajtás, amit 3 éve nem állítottak refpontra)
-
Szirty
őstag
válasz
Tomika86 #2853 üzenetére
Helló Tomika86!
Igen a kijelzőt lehúzod és onnan is programozható.
Ha nincsenek elállítva a soros port paraméterei, akkor mást nem is kell tenned csak rádugni.Máskülönben szerintem inkább egy CPM1-CIF01kell...
Továbbá ha jól sejtem mindkét megoldáshoz egy ilyen kábel:
Új hozzászólás Aktív témák
- TCL LCD és LED TV-k
- Hardcore café
- exHWSW - Értünk mindenhez IS
- iPhone topik
- Melyik tápegységet vegyem?
- Xbox Series X|S
- ARC Raiders - Új előzetesen a hamarosan induló tech teszt
- Milyen okostelefont vegyek?
- One otthoni szolgáltatások (TV, internet, telefon)
- Eredeti játékok OFF topik
- További aktív témák...
- Garmin Vivoactive 5 Okosóra, Bontatlan, Új, 0 Perces, Fekete, 1 Év Garancia
- Akció! Hordozható GAMER Monitor! MSI MAG162V ! 15.6 1920x1080 FULLHD! Bolti ár fele!
- Garmin Vivoactive 5 Okosóra, Bontatlan, Új, 0 Perces, Kék, 1 Év Garancia
- Garmin Vivoactive 5 Okosóra, Bontatlan, Új, 0 Perces, Kék, 1 Év Garancia
- Garmin Vivoactive 5 Okosóra, Bontatlan, Új, 0 Perces, Fekete, 1 Év Garancia
- Bomba ár! Fujitsu LifeBook U939x- i5-8GEN I 8GB I 256SSD I 13,3" FHD Touch I HDMI I Cam I W11 I Gari
- AKCIÓ! GIGABYTE AORUS ELITE Z790 i7 14700K 64GB DDR5 1TB SSD 7900 XTX 24GB be quiet! SB 802 1000W
- LG 55G4 - 55" OLED evo - 4K 144Hz & 0.1ms - MLA Plus - 3000 Nits - NVIDIA G-Sync - FreeSync Premium
- Telefon felvásárlás!! Samsung Galaxy S25, Samsung Galaxy S25 Plus, Samsung Galaxy S25 Ultra
- Bomba ár! Dell Latitude 5495 - Ryzen 5 I 16GB I 256SSD I 14" FHD I HDMI I Radeon I Cam I W10 I Gari