Fórum témák
» Több friss téma |
Fórum » PLC kérdések
Témaindító: Thomas10100, idő: Nov 12, 2005
Az előző hsz.-ben leírtam. Nem kell küldeni semmit, a Master PLC (jelen esetben a Siemens) képes kiolvasni a regiszterek értékét. A Siemens-ben az "MB_Comm_Load" utasítással létre kell hozni a kapcsolatot (elég indulás után 1x lefuttatni), majd ezután az "MB_Master" utasítással olvashatók (és írhatók) a regiszterek. Maradva a fenti példánál a Kinco VW2000 területe a 1100 regiszteren található, ami a Siemens-nél a 41100 lenne, de a csúszás miatt a 41101 címen lesz elérhető (a mellékelt ábrák Kinco frkiváltóhoz vannak, de az elv ugyanaz), az eredmény a DB300.DBW0 címre kerül:
A hozzászólás módosítva: Feb 17, 2025
Unitronics Bumpless PIDSziasztok!Valakinek van tapasztalata Unitronics Visilogic PLC bumpless PID transferről? Auto/PID és kézi üzemmód váltáskor "ugrik" a szabályzó az utolsó error integral-ban tárolt érték miatt. Üdv, Krisz
Beckhoff PLC, PID vezérlésSziasztok!Van itt olyan közületek, aki foglalkozott már Beckhoff PLC-vel (TwinCAT), konkrétán egy PID szabályzót szeretnék csinálni hőmérővel és fűtőszállal PWM szabályzóval, például Setpoint := 100, akkor 100 fokon tartja a hőmérsékletet. Controllino-val sikerült megcsinálni ott működött is, viszont most PLC-vel szeretném ugyanezt, a beépített FB_BasicPID funkció blokkal, de valahogy neten sem találok róla semmi információt. Például olyan gondom van, hogy a PWM vezérlő (Beckhoff EL2535 modul), -32000től megy +32000 értékig, és valahogy felkéne skálazni a PID kimenetét a PWM jelre. Esetleg valaki tudna ebben segíteni ? Előre is köszönöm.
PT100 használata 24v-alÜdv.Mielőtt hülyének lennék nézve el kell mondjam soha nem voltam az analóg világ királya, az elektronikából meg eléggé ki is estem az évek során. A kérdésem a következő lenne. Lehet valahogy használni PT100-as szondát PLC-vel 24V-al ha a PLC analóg bemenete 0-20mA-re van skálázva? Most egy saját pojektem (PLC tanulgatás folyamatában) szeretnék hőmésékletet mérni PLC-vel. Az előző munkahelyemen emlékszem hogy egy PT100-assal mért egy S7-1200 hőmésékletet egyéb külső táp nélkül (ami más lett volna mint 24V), persze nemtudom hogy mennyi volt a S7-es inputja. Na de ha PT100 100ohm 0 fokon akkor 24V-al 24mA-áramot tolok be a PLC-be. Jól feltételezem hogy ez igy nem működhet és egy sorba kötött ellenállás kellene a PT100-hoz hogy ne lépjem túl a 20mA-t? Köszönöm
Szia!
Emlékeim szerint 3-4 mA-nél többet nem adtam a PT-100-nak.. Általában kell "alája és föléje" egy-egy ellenállás és úgy beállítani egy megfelelő csatlakozást, munkapontot a 0 fokos kezdetnek. Nyilván a követő erősítővel állítottam be a kivett jelváltozás határait. A te esetedben ezt még "konvertálni" kell a 0-20 mA-hez...
Szia.
Na és mi lenne a megfelelő professzionális megoldás egy ipari automatizációban? Csak mert nem gyakran látni ellenálásokat és egyéb elektonikai alkatrészeket egy ipari vezérlő szekrény termináljaiban. Talán egy PT1000 használata?
Ehhez nem tudok hozzászólni.. - szerintem vannak direkt olyan egységek, modulok, amik fogadják a Pt-bármelyiket és a kimenetük csatlakoztathatók a plc 0-20 mA-es bemenetéhez.
Néhol megtalálható a max 5 mA-es "mérőáram" ( és jóval kevesebb! ), nem ajánlatos saját magát melegíteni ezzel is. Passz.
Közben sikerült utánnajártam. Az S7-es bővitő modulja tudja kezelni a PT100-at nativan. Ráadásul szinte bármilyen PT-t. Igy volt anno megoldva és ezért nem volt ellenálásozva. Na sebaj majd valahogy megoldom. Köszi!
Pontosan csak megfelelő integrált áramkörrel lehet mérni. 16 éve XTR105P áramkörrel oldottam meg a mérést (akkor még más árak voltak, de akkor sem volt olcsó). Azóta is jól működik, nem törekedtem nagyon nagy pontosságra, 1˚C pontosság körül van. A napkollektor rendszerem hőmérsékleteit mérem ezekkel.
Biztosan máshogy is meg lehet oldani, de a platina ellenállása nem sokat változik a hőmérséklettel, sok minden vihet be hibát (pl. a túl nagy mérőáram a platina érzékelőt is melegíti, ami meghamisítja a mérést, stb.) XTR105 adatlap
Hőmérséklet távadó!!
Például: https://mall.industry.siemens.com/mall/en/UK/Catalog/Product/?mlfb=...ode=GB De ilyet gyárt sok cég.
dB_Thunder válasza döbbentett rá, hogy pár éve az Aliról én is vettem hőmérséklet távadót, valami ilyesmit.
Lehet válogatni, hogy mekkora hőmérsékleti tartománya legyen, és milyen legyen a kimenete. FX1N-20M kinaiA Temun vettem egy Mitsubishi kompatibilis PLC-t.A GX és Works programok fizetősek. Játszadozni és próbálkozni szeretnék egy lehetőleg free programmal. Tudtok-e ilyen letöltési helyet ? Ki , hogy oldotta meg ?
Ha írsz a kínainak, hogy adjon hozzá egy GX-works-öt, vagy Developert, fog küldeni ftp linket mert van nekik.
Torrent oldalakon is hozzá lehet férni e szoftverekhez. Ha nagyon nem jön össze szólj privátban.
Klón FX3U-t lehet programozni az OpenPlc progival. Ki kellene próbálni ezt is.
Siemens WinCC pc runtimeSziasztok,S7-1500 PLC-t programozgatok, és szükségem lenne egy HMI-re, arra gondoltam, hogy egy meglévő PC-ből csinálok, pc runtime futtatásával. A kérdésem az, hogy TIA V18 (vagy V19,V20) -hoz honnan tudok letölteni PC runtime-ot? Ahogy látom az a "runtime" amit felrak a TIA telepítésekor, csak szimulációra való azon a gépen, ahol a TIA is fut. De nekem a "rendes" runtime kellene, Comfort panelhez nem Unified panelhez. Köszönöm!
S7-1200 HSCSziasztok!Adott egy Siemens S7-1214 plc és egy kuebler inkrementális enkóder 1000 impulzus/fordulattal. Az enkóder maximum 80fordulat/perc-el forog. Hogy tudom megvalósítani a következőt: - Van 4db értékeim amiket HMI-ről tudok módosítani, ezek enkóder poziciók és adott pozicióban feladatot kell végrehajtani a plc-vel. például ha megnyomom a megállító gombot, akkor álljon meg a "Gép megállítás pozició" értéken (mondjuk 200) forgás közben egy másik értéknél(mondjuk 500) ellenőrzöm a gépen lévő termék megfelelősségét, ha rossz, akkor 800-as pozicióban beírom merkerbe hogy rossz volt, majd 900as pozicóban selejtezem. Tudom, hogy 200-as értéken nem fog megállni a gép tehetetlensége miatt, de ez nem is baj annyira(amúgy is csak példa volt). A fent leírtakon kívül a gép még sok mindent csinál és a ciklus idő 10-15ms körül mozog. Valahogyan megszakítással kellene kezelnem, de nem tudom hogy lehetne hatékonyan megcsinálni. Köszönöm ha valaki tud segíteni!
Szia!
Ehhez counter modulra van szükséged a pontos pozícionáláshoz, ha nem buszos az encodered. Erre a feladatra általában egy window (ablak) funckiót szoktunk használni valamekkora toleranciával, pl. +-5 inkrement. Ezen kívül, ha lassítani is kell akkor közelítési tartományt is meg szoktunk határozni. Ehhez komparátorokat kell használnod. Az a lefutáshoz amit leírtál egy állapotgépes verézlést kell készítened, lépésről lépésre vagy jelekből összebarkácsolod "tanfolyami szinten" ami nem túl elegáns.
Szia!
Abszolút encoderrel csináltam már hasonlót, ahol a mozgások bizonyos pozíciókhoz voltak kötve. Leegyszerűsítve: pl. 360 fok legyen a teljes ciklus, ezen belül 6 műveletet csinál a gép. Az 1-es művelet 20-40 foknál , 2-es művelet 70-80 fok, és így tovább volt elosztva... Szerintem használj egy számlálót, és számold meg, hogy hány impulzus egy teljes gépciklus. Ha ez tapasztalati úton megvan, akkor reseteld ki ezzel az értékkel a számlálót. Azt, hogy ez mennyire fog pontatlan lenni és mi a gép igénye nem tudom. Ha már megvan egy ciklusnyi impulzus, akkor azt feltudod osztani ütemekre, és komparátorokkal ki-be tudsz kapcsolni műveleteket. Annyi biztos, hogy a gép napi indításkakor fel kellene venni egy home pozíciót, amire szintén kinullázod a számlálót. Üdv. Laci
Sziasztok!
Igen, ablakkal próbálom, inkrementális enkóderrel A/B bemenettel, bemeneti filter us tartományban. Jelenleg az a bajom, hogyha az ablakban van az enkóder értéke akkor keletkezik még egy trigger jel is. Ha az ablak 10 akkor többször. Kézzel tekerem az enkódert
Ez elég szemmel látható hiba. Az "ablak" funkciód jelenleg 200 és 205 között van beállítva. A Te funkciód 200-nál generál egy felfutó élt illletve visszafelé 205-nél. Megállítod 200-nál, megfogod a tengely, egy pillanatra 199 lesz az érték majd megint 200 és már meg is van a második él. Ez jól kivehető a trace-ből, hogy amikor tovább tekerted akkor keletkezet az impulzus. A probléma, hogy ez a funkció amit összeraktál nem egy valódik ablak funkció, negatív irányba nincs tolerancia.
Valahogy így kellene kinéznie. Ha 200 a cél és 5 inkrement toleranciát szeretnél akkor kell negatív és pozitív irányba is valamennyi, pont az általad generált hiba miatt is.
Így is megvan a hiba, de így van hogy az "igazi" után még 3 jön közvetlen.
Illetve marad is ki trigger valamelyik bit esetén, véletlenszerűen.
Én ezt látom itt kinagyítva. Amikor felfele számol azért néha van egy pici ugrás benne vissza. Tehát tekered az encodert és a kép szerint meg is jön az impulzusod 395-nél, majd tekered tovább és 405 felett kimegy az ablakból, majd azon a ponton 2 impulzus is jön. Nem látszik a trace-en, de valószínüleg ott is picit bizonytalan a jel és 406-ról 405-re ugrik, így az impulzus újra generálódik. Próbáld meg nagyon lassan forgatni, hogy időben reszletesebben lásd a dolgot. Illetve egy pár ms-es timert rádobhatsz az IN_RANGE után.
A hozzászólás módosítva: Szo, 6:46
Nincs irányvàltás lekezelve az enkóderrel, ha ellentétesen tekerem is felfelé számol. A tracen nem emiatt van amit jelöltél.
Az encoder jelet hogy kezeled?
Gyorsszámláló kártya (counter modul)fogadja? Illetve még annyi jutott eszembe,hogy meg lehetne próbálni hazárdmentesítés céljából átlagolni az encoderjelet. Pl.10 érték átlagát venni.
A=I0.0, B=I0.1, Z=I0.2 PLC bemenetei
S7-1214 plcről van szó és a HSC1 számlálót használom. Bemeneti filterek us tartományban. A hozzászólás módosítva: Szo, 11:33
Gondolom az "edge" static bit az FB-ben, az nem lehet hiba. A PLC csak azt csinálja amire programozták. Tehát valamiért ott 0-1-0-1 váltás volt az IN_RANGE kimenetén. Pont az ablak felső határánál. Próbáld meg így, szimulációban így megszűnik a chattering jelenség. A PulseTemp egy temp változó a többi static.
A hozzászólás módosítva: Szo, 12:43
Így eltünt a hiba, ahogy nézem.
Még tesztelem. Köszönöm!
Ezek szerint csak valamiért van negatív ugrás a számlálóban. Ezzel a megoldással összehasonlítjuk az elöző PLC ciklusban tárolt encoder értékkel és ha kisebb az érték mint az előző ciklusban akkor 1-re vált a Dechatter bit. Fontos hogy az encoder érték mentése a komparálás után maradjon, illetve az InPositionPulse írása is a megfelelő helyen legyen.
A hozzászólás módosítva: Szo, 14:19
|
Bejelentkezés
Hirdetés |











Valahogy így kellene kinéznie. Ha 200 a cél és 5 inkrement toleranciát szeretnél akkor kell negatív és pozitív irányba is valamennyi, pont az általad generált hiba miatt is. 











