Fórum témák

» Több friss téma
Fórum » PLC kérdések
 
Témaindító: Thomas10100, idő: Nov 12, 2005
Témakörök:
Lapozás: OK   68 / 129
(#) Szirty válasza csikosgabi hozzászólására (») Ápr 28, 2014 /
 
Üdv!

Idézet:
„Sikerült megoldani a problémát. Hogy is gondolhattam, hogy élvezérlés legyen mikor nem is adtam meg neki MB-t...”


Ez nekem nem teljesen világos, mert a linkelt képeden egyértelműen rendeltél hozzá MB-t. Legalábbis az egyik -[P]- hez. Amásikat bele se tetted csak a helye van ott.

Idézet:
„a "Lista" típusú változóba "be tudok írni" 10 karaktert de ahhoz nem tudok MB-t rendelni (csak MI-t, SI-t lehet). Mi lehet a megoldás?”


A megoldás szerintem az, hogy e közül a kettő közül választasz
Tehát vagy beéred a 6 karakterrel és bithez rendeled a szövegeket, vagy 16 karakteres listát készítesz, de integerhez rendeled a szövegeket.

Ez utóbbi esetben (amennyiben egy bit állapotát szeretnéd így kijelezni) kell valamiféle MOVE a programba ami a bit állapotától függően a megfelelő értéket beírja a változóba amit a listában rendeltél hozzá. Ezzel nem csak kétféle, hanem sokféle (de előre rögzített) szöveget lehet kiíratni egyébként, de attól hogy kettőnél többet is lehet, természetesen kettőt is lehet...

Van egy határeset megoldás is. Csalsz kissé és ugyanahhoz az MB változóhoz több HMI on/off változót rendelsz hozz, de más más szöveggel. Méghozzá a kiírandó teljes szöveg hat karakteres részleteivel, majd ezeket elhelyezed közvetlenül egymás mellett a kijelzőn
A hozzászólás módosítva: Ápr 28, 2014
(#) csikosgabi válasza Szirty hozzászólására (») Ápr 28, 2014 /
 
Pont ez az. A felfutó él képzőt (P betűs érintkezőt) elneveztem (azt hiszem MB3-nak) de nem is csináltam MB3-at! Mind egy, most már értem (legalább is ezt a részét). A kijelzés is sikerült, ezzel a szótagolós módszerrel . Kezdetnek jó lesz. Biztosan fogok még jelentkezni, a következő akadálynál. Addig is nagyon szépen köszönöm a segítséget! És külön gratulálok a honlapjához. Nagyon sok infó, érthetően megfogalmazva. Sokat segített.
Minden jót!
(#) csikosgabi hozzászólása Máj 4, 2014 /
 
Üdv. Ismét Unitronics JZ20 R31 PLC programozásban kénék segítséget. Most analog bemenetet kellene használnom. Hogy tudok mondjuk egy küszöbérték kapcsolót megvalósítani a létrába? Amikor kiválasztom az analog input-ot, megadom mondjuk az A0 bementet. Megadom, hogy 4-20mA -es áramjelet akarok figyelni. Amikor ez megvan kéri, hogy rendeljem ezt egy MI-hez. Eddig ok. De hogyan tudok ezzel az MI-vel bármit is kezdeni? Mondjuk egy nyomás távadó esetén?Mondjuk 12,5mA átfolyó áramnál hogyan tudom bekapcsolni a O0 kimentet (amivel mondjuk egy szivattyút kapcsolok)? Kár, hogy semmi magyar nyelvű leírás nincs ehhez a PLC-hez (vagy csak Én nem tudok róla?)...
A segítséget előre is köszönöm.
CsG
(#) Szirty válasza csikosgabi hozzászólására (») Máj 5, 2014 /
 
Üdv!

Idézet:
„Eddig ok. De hogyan tudok ezzel az MI-vel bármit is kezdeni?”


Úgy, hogy pl. összehasonlító utasítást alkalmazol rá.

Ha jól sejtem a Jazz-ban 10 bites A/D van, az azt jelenti ,hogy 0-1023 tartományt fogsz kapni 0-20mA-re.
Egyébként nem árt az analóg bemenetről érkező értéket fizikai mennyiséggé skálázni. Azzal könnyebb dolgozni.
(#) csikosgabi válasza Szirty hozzászólására (») Máj 5, 2014 /
 
A skálázás alatt azt érted, hogy mondjuk egy nyomás távadónál a 0 bar = 4mA = 0 (belső érték),
10 bar = 20mA = 1023 (belső érték) ? És azt a " #20 "-at hogyan tudom paraméterezni? Vagy mi is az egyáltalán ?
A hozzászólás módosítva: Máj 5, 2014
(#) csikosgabi válasza csikosgabi hozzászólására (») Máj 5, 2014 /
 
A " #20 " is egy ilyen "belső érték" lenne? Az lehetne akár #1023 ?
(#) Szirty válasza csikosgabi hozzászólására (») Máj 5, 2014 /
 
Üdv!

Idézet:
„A skálázás alatt azt érted, hogy mondjuk egy nyomás távadónál a 0 bar = 4mA = 0 (belső érték), 10 bar = 20mA = 1023 (belső érték) ?”


Azt. Van egy nyomás távadód, aminek van egy méréstartománya (legyen pl. 0-10 bar).
Van egy analóg áram jeled, aminek szintén van egy tartománya (4-20mA).
És van egy analóg bemenetről beolvasott értéked a programban, ami 0-1023 a 0-20mA-re vonatkoztatva.
0 bar nyomáshoz 4mA áram jel fog tartozni, 10 bar nyomáshoz pedig 20mA.
4 mA áramnál elvileg 204-et fogsz olvasni az analóg bemenetről és 1023-at 10 bar nyomásnál.
Az érték kezelése könnyebb a programban ha bar-ban számolsz és hasonlítgatsz össze értékeket és nem a bemenetről olvasott 204-1023 tartományban.
Ehhez kell skálázni, tehát a 204-1023 tartományt átkonvertálni (lineárisan) 0-10-re (félszerűen valós számmá, vagy 0-1000-re fix pontos ábrázolás használatával, ekkor az 1000 jelentése 10.00 bar).
Ha az analóg kártyáról olvasott érték az In, a skálázott eredmény bar-ban az Out, a bemenet tartimány minimuma InMin, maximuma InMax, a kimeneti tartomány minimuma OutMin, maximuma OutMax, akkor így skálázhatsz:
Out=((In-InMin)*((OutMax-OutMin)/(InMax-InMin)))+OutMin
Az eseteben tehát ez:
Nyomás=((In-204)*((10-0)/(1023-204)))+0
Egyszerűsítve:
Nyomás=(In-204)*0,01221001221001221

A #20 egy konstans. Azt hasonlítja össze a példa komparátor a bemeneten olvasott értékkel. Bármennyit írhattam volna a lényeg az összehasonlítás volt.
(#) csikosgabi válasza Szirty hozzászólására (») Máj 5, 2014 /
 
Az első része amit írtál (a skálázásról) az tiszta. De ez a "#20" konstans dolog nem teljesen. Ez úgy működne, hogy ha a "B" bemeneten #20, az "A" bemeneten is "20" az érték akkor az "ENO" H szinten lesz?
(#) Szirty válasza csikosgabi hozzászólására (») Máj 5, 2014 /
 
Helló csikosgabi!

Idézet:
„De ez a "#20" konstans dolog nem teljesen. Ez úgy működne, hogy ha a "B" bemeneten #20, az "A" bemeneten is "20" az érték akkor az "ENO" H szinten lesz?”


Dehogy!
Ott van az utasításon rajta A > B
Tehát ha az A nagyobb mint B akkor az ENO TRUE lesz. De nézd meg a help-ben hogyan működik a komparátor!
(#) csikosgabi válasza Szirty hozzászólására (») Máj 5, 2014 /
 
Rendben. Így már tiszta.
Köszönöm szépen!
(#) Szirty válasza csikosgabi hozzászólására (») Máj 5, 2014 /
 
Persze vannak egyenlőségre, és egyebekre is összehasonlító utasítások, nézd át őket!
(#) Placi84 hozzászólása Máj 16, 2014 /
 
Sziasztok!

Az lenne a kérdésem, hogy TIME, DATE, TIME_AND_DATE adatot hogyan lehet mondjuk egy SCADA-val, vagy egy HMI-vel kezelni?
Pl.:
Adott egy timer. A PT paraméterét a köv. formában kell megadni "T#5m2s300ms".
De ugye ez egy fix érték. Nekem arra lenne szükségem, hogy ez az érték változtatható legyen HMI-n vagy SCADAN keresztül (vagy akárhogyan).
Kell valami konverzió (INT to DT)?
Most kezdtem el a CoDeSys környezettel foglalkozni, de ezt nem igazán tudom hogyan kellene megoldani.

A válaszokat előre is köszönöm!

Üdv.: Laci
A hozzászólás módosítva: Máj 16, 2014
(#) Szirty válasza Placi84 hozzászólására (») Máj 16, 2014 /
 
Üdv!

Nem ismerem a codesyst. Siemens környezetben egyszerűen ilyen típusú változót kell létrehozni a HMI/SCADA eszközben és kész.
(#) Thomas10100 hozzászólása Máj 18, 2014 /
 
Sziasztok!

Segítséget szeretnék kérni. Azt szeretném kérdezni, hogy mit változtat a képen látható beállítás.
Mit eredményez ha "Default"-on van, és ha "No filter"-en.
A 0.00 számlálóként van használva.

Köszönöm!

Konstans.jpg
    
(#) jym válasza Placi84 hozzászólására (») Máj 18, 2014 /
 
Üdv!

A TIME típus gyakorlatilag egy DWORD, vagyis 32 bites unsigned. A benne lévő szám millisec-et tárol. Ha millisec-ben kell megadni a TIME értékét, akkor letárolsz egy DWORD értéket, majd DWORD_TO_TIME(változó), ha sec-ben, akkor 1000*DWORD_TO_TIME(változó), ha perc-ben, akkor 60000*DWORD_TO_TIME(változó). A változó értelemszerűen millisec-et vagy sec-et vagy perc-et tárol.

Bonyolultabb átalakításokrta van open source megoldás itt:

http://www.oscat.de/

Imi.
(#) Szirty válasza Thomas10100 hozzászólására (») Máj 18, 2014 /
 
Helló Thomas10100!

Az input filter time beállítása véleményem szerint azt jelenti, hogy a bemeneten csak az így meghatározott időnél hosszabb jelállapot változást veszi figyelembe.
Pl. ha 8ms-ra van állítva, akkor 8ms-nál hosszabb ideig kell a bemenet állapotának megváltoznia ahhoz, hogy a PLC által olvasott bináris érték is megváltozzon.
A dolog célja a rövid impulzusok zavaró hatásának kiküszöbölése (ezért az a neve hogy filter).

Idézet:
„Mit eredményez ha "Default"-on van, és ha "No filter"-en.
A 0.00 számlálóként van használva.”


Ha a "számlálóként van használva" alatt azt kell érteni, hogy a 0.00 bemenet HSP-t léptet, akkor arra a bemenetre nem vonatkozik az input filter, így arra a bemenetre nincs hatással a beállítás (csak a csatorna többi bemenetére).

Ha azt kell érteni alatta, hogy a 0.00 bemenet egy számlálót léptet a programban (CNT) akkor a számláló csak 8ms-nál hosszabb impulzusra fog lépni amennyiben ez a beállítás Defalult.
(#) Thomas10100 válasza Szirty hozzászólására (») Máj 18, 2014 /
 
Helló Szirty!

Eredetileg egy csomagológépnek a programjáról lenne szó. A meghajtó motor tengelyén van egy fogas tárcsa, ezt számolja a 0.00 belső számlálója a PLC-nek(70 fog van), a 0.01-en van egy alaphelyzet érzékelő (ennek a felfutó éle a 252.00). Ezt szimulálom én most egy sima felfelé számlálóval, mintha forogna a tengely.

A 220-221 szó van felhasználva a termék léptetésre(ha van utasításlevétel(220.00-án)) az alaphelyzet érzékelő lépteti előre. Itt ha valamelyik bit-et egybe rakom, az olyan mintha egy termék menne ott.

0.05 az utasítás figyelés(megadott fogszám között, D100 és D101), ha van utas akkor a 220.10-es bitről tovább lép a termék, ha nincs utas akkor törlődik a bit. És a gép végén selejtezés van ebben az esetben.

A gondom az hogy egy egy működő program egy csomagoló gépben. Viszont nekem egy másikra átültetve nem működött, CP1L PLC van mindkét gépben. 220.10-en van a bit törlése és a bit számolása is, ez a D40 ha utashiány volt. De ha RSET van 220.10-en akkor nem növel a D40, terméket törli és selejtez. Ha RSET-et "Always Off"-olom akkor számol, de nem selejtez. Másik gépen viszont ugyanígy működik, és nem jövök rá, hogy nekem miért nem megy.
Megkérhetlek hogy megnéznéd nekem? Valamit nagyon nem veszek észre, szerintem valami időben nem jó helyen történik, csak nem jövök rá mi.

Köszi a segítséget!
(#) Placi84 válasza jym hozzászólására (») Máj 18, 2014 /
 
Szia!

Igen, erre jutottam én is. De akkor ez azt jelenti, hogy minden esetben meg kell csinálni a konverziót. Kár, de ha csak így lehet...
Még egy kérdés:
Azt valahogyan be lehet állítani a CoDeSys-ben, hogy csak akkor töltse le a változók initial értékeit, mikor azt én akarom? Tehát, hogy letöltésnél ne töltse le a változók init értékét? Esetleg, hogy letöltés előtt megkérdezze, le akarom-e tölteni őket?

Köszi a választ!

Üdv.: Laci
(#) jym válasza Placi84 hozzászólására (») Máj 18, 2014 /
 
Üdv!

Tudomásom szerint ilyent nem tud.

DE:
ha RETAIN PERSISTENT-be teszel változót, úgy, hogy adsz neki init értéket, akkor azt csak először tölti fel (vagyis amikor a változót a RETAIN-ben létrehozza az általad megadott címen vagy automatikus címkiosztással). Ha ezeknek a változóknak az értékét módosítod (mondjuk VISU-ból), majd ezután új programot töltesz a PLC-re (úgy, hogy ezek a RETAIN PERSISTENT változók továbbra is szerepelnek a programban), akkor sem fogja a programban lévő init érték felülírni a tényleges értéket. Tehát ami épp a RETAIN-ben van, az is marad benne, amíg nem írod át. De ehhez a változóhoz tartozó init érték módosításával a változó értéke nem fog megváltozni. Legalábbis WAGO-nál így van, Codesys 2.3.x alatt.

Imi.
(#) jym válasza Placi84 hozzászólására (») Máj 18, 2014 /
 
Üdv!

Még valami ehhez:

Idézet:
„Kár, de ha csak így lehet...”


Gondolom te most a WEBVISU-t érted HMI alatt (legalábbis nem írtad, hogy milyen HMI-re gondolsz). Tegyük fel, hogy lehetne ilyent. Jövő héten valami oknál fogva egy másik HMI-re váltasz, ami viszont nem tudja a TIME típust. Na akkor gáz van, mert mindenképp vissza kell menni a PLC programba, módosítani azt, hogy DWORD-ből tudjon TIME típust, ha viszont már eleve DWORD-ből indulsz ki, akkor nem érhet ilyen meglepetés, mert a DWORD-öt szerintem minden HMI/SCADA ismeri.

Imi.
(#) Szirty válasza Thomas10100 hozzászólására (») Máj 18, 2014 /
 
Üdv!

Én ebben a programban nem látok 0.00-t!
(#) Thomas10100 válasza Szirty hozzászólására (») Máj 18, 2014 /
 
Az eredetiben van a 0.00 felhasználva belső számlálónak, a programban nincs.
Amit feltettem abban 0.01 és C0 van, de ezt csak a szimuláció miatt csináltam.
(#) Szirty válasza Thomas10100 hozzászólására (») Máj 18, 2014 /
 
A te értelmezésed szerint mit jelent az hogy "belső számláló"?
HSP (High Speed Counter)?
(#) Thomas10100 válasza Szirty hozzászólására (») Máj 18, 2014 /
 
Igen Hsp
(#) Szirty válasza Thomas10100 hozzászólására (») Máj 18, 2014 /
 
Nincs most sok kedvem belemélyedni a programba hogy visszafejtsem a működését. De ha konkrétabb kérdésed van arra megpróbálok válaszolni...
(#) Thomas10100 válasza Szirty hozzászólására (») Máj 18, 2014 /
 
"A gondom az hogy egy egy működő program egy csomagoló gépben. Viszont nekem egy másikra átültetve nem működött, CP1L PLC van mindkét gépben. 220.10-en van a bit törlése és a bit számolása is, ez a D40 ha utashiány volt. De ha RSET van 220.10-en akkor nem növel a D40, terméket törli és selejtez. Ha RSET-et "Always Off"-olom akkor számol, de nem selejtez."

Ez lenne a probléma. Ráérsz, nem gondoltam, hogy egyből jön a válasz.

Köszi előre is!
(#) Szirty válasza Thomas10100 hozzászólására (») Máj 18, 2014 /
 
Ez így oké, csakhogy nem tudom mit jelent egy csomagológépnél az hogy "utas" és mit is csinál az amit "utasításnak" definiálsz, stb.

Az is világos,hogy van egy motor impulzus számlálással. De hogy a motor mit hajt, arról fogalmam sincsen.
Így azt sem tudom mi az az "utasítás figyelés" meg hogy van egy alaphelyzet ok. De minek az alaphelyzete és konkrétan miféle helyzet az, azt sem tudom.

Ilyen töredék információk alapján én nem foglalkozok ezzel a problémával.
(#) Thomas10100 válasza Szirty hozzászólására (») Máj 18, 2014 /
 
Elég hosszú lenne leírni végig. Ez csak egy részlet a programból ami a használati utasítást ellenőrzi hogy megvan-e az a termékhez. Alaphelyzet: a fogszám=0.
A szalagot hajtja amin a termék, és a használati utasítás együtt megy. Az utasításfigyelés azért kell, ha leesne az utasítás fogó csipeszből, és így kimaradna a termékből.

Bocsánat, hogy nem volt részletes a leírás, de leírni elég bonyolult. Meg azt is megértem, hogy így nem mond semmit a program.

A teszt rész, csak a cx-one simulator miatt van benne, mintha menne a gép...

Köszi!
Bocsi a zavarásért.
(#) Szirty válasza Thomas10100 hozzászólására (») Máj 18, 2014 /
 
Idézet:
„"Elég hosszú lenne leírni végig."”


De hogy ha nem vagy hajlandó a válaszhoz szükséges információk átadására mert úgy ítéled meg hogy az túlságosan nagy erőfeszítésbe kerülne a számodra, akkor milyen alapon vársz erőfeszítéseseket másoktól?

Illetve szerinted milyen módon születhetne meg a helyes válasz ilyen körülmények között?
Vagy blöfföljünk oszt hátha bejön?
Nem értem!
(#) Thomas10100 válasza Szirty hozzászólására (») Máj 18, 2014 /
 
Leírtam amit tudtam, ha valami kell még akkor megírom.

Köszi!
Következő: »»   68 / 129
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem