Hirdetés

2024. április 26., péntek

Gyorskeresés

Útvonal

Fórumok  »  Egyéb hardverek  »  PLC programozás

Hozzászólások

(#551) DP_Joci válasza moseras (#550) üzenetére


DP_Joci
tag

Szia,
Meg kell próbálni a bemenetet frissíteni sűrűbben.

PL. siemens-nél OB35-ben perifériálisan ( L PIW0 ) meghívod az aktuális bájtot, wordöt az OB35 ciklusidejének megfelelően. Ha az OB35 ciklus ideje 10ms akkor ennyi időnként "számlálhatsz" az aktuális bemenettel.

Azt meg kell nézni, hogy a Wago –nak van-e ilyen lehetősége.

(#552) petv4


petv4
csendes tag

Üdv Mindenkinek!

Omron cpm1- hez adatkábelt, vagy bármilyen elkészítési információt keresnék.

Köszönöm!

Sziasztok!

(#553) petv4 válasza Szirty (#545) üzenetére


petv4
csendes tag

Szia Szirty!

Ennek a kábelnek a megépítéséről tudnál nekem valamilyen információt adni?

Köszönöm. Üdv!!

(#554) Szirty válasza petv4 (#553) üzenetére


Szirty
őstag

Hali petv4!

"Ennek a kábelnek a megépítéséről tudnál nekem valamilyen információt adni?"

Kb. ugyanerre a kérdésre m.gabornak ezt a választ adtam:
Sajna nincs ilyen rajzom és nem is tudok róla hogy közkézen forogna ilyesmi.

Sajnos neked sem tudok mást mondani :-/

(#555) aLávaló válasza petv4 (#552) üzenetére


aLávaló
csendes tag

Mint szakmabeli ajánlom nektek ezt az oldalt:
[link]
Itt sok "okossság" van fent. Az ékes orosz nyelvtől ne ijedj meg elég ha a képet megnézed!
De fel is teheted itt a kérdésed biztos segítenek orosz testvéreink:)
Laci

(#556) arita


arita
csendes tag

Sziasztok!
Egy Omron SRM1 típusú PLCre írtam programot, amihez HMI felületet kell készítenem egy NT30 típusú PT-vel. A bajom az, hogy amit rátöltöm a programokat a cuccokra és összedugom a PLC-t és az NT30-at, egy pillanatra megjelenik az általam készített kép, de aztán el is tűnik. :W Bármit csinálok nem jön elő :) A jó ebben az, hogy a múlt héten még működött és nem módosítottam semmit azóta. CQM1-el nem megy el a kép. Mi lehet ennek az oka?

(#557) moseras válasza DP_Joci (#551) üzenetére


moseras
tag

Szia.

Lehetnek független taszkok, akkor abba kell a "kritikus" bemenetem beolvasását belerakni. Annak megadom, hogy pl. 10msec, akkor az a másik általános-tól függetlenül 10msec-ként lefut.

Köszi.

Imi.

(#558) Szirty válasza arita (#556) üzenetére


Szirty
őstag

Helló arita!

"A bajom az, hogy amit rátöltöm a programokat a cuccokra és összedugom a PLC-t és az NT30-at, egy pillanatra megjelenik az általam készített kép, de aztán el is tűnik."

Ilyet akkor csinál az NT30, ha a start screen ugyan jól van beállítva (ezért az meg is jelenik egy pillanatra) de a PT Control area Screen number byte (vagy word, már nem emlékszem) egy olyan képre váltja át, ami nem létezik (vagy az említett byte/word tartalma nulla).

(#559) Szirty válasza moseras (#557) üzenetére


Szirty
őstag

Hali!

"Lehetnek független taszkok, akkor abba kell a "kritikus" bemenetem beolvasását belerakni."

Csak arra kell vigyázni, hogy ilyenkor a fizikai bemenetet kell olvasni (erre külön módszer van ugye), mert a hagyományos input olvasás nem a fizikai bemenetet olvassa, hanem a "process image" táblát, ami akkor is csak normál PLC ciklusonként frissül, ha egy bemenetet 10 gyorsabban olvasunk (hagyományosan).

(#560) arita


arita
csendes tag

Szia Szirty!
Gondoltam hogy ezzel van a probléma. Sajnos nem nagyon értem mi az a PT Notify Area és a PT Control Area. Hiába olvasom a leírást :( Mit jelentenek ezel pontosan? Hogy kell beállítani ezeket a helyes működéshez?
Köszi a segítséget!!!

(#561) Szirty válasza arita (#560) üzenetére


Szirty
őstag

Hali arita!

Nem tudom mivel konfigurálod, én még NT support tool-t használtam.

"Sajnos nem nagyon értem mi az a PT Notify Area és a PT Control Area. Hiába olvasom a leírást :( Mit jelentenek ezel pontosan?"

Nos mindkettő egy memóriaterület a PLC-ben, aminek a kezdőcímét az NT configjában be kell állítani.
A PT status Control area 4 word méretű. Segítségével a PLC-ből a kijelzőt vezérelheted:
Az egyik word arra szolgál, hogy a PLC-ből átválts egy megadott számú képernyőre.
A PT status Notify Area word-jeit a terminál írja. Pl. megjelenik ott hogy éppen hanyas kép van kijelezve, megnyomtak-e nyomógombot, történt-e adatbevitel, stb.

A leírását ebben a doksiban találod: NT reference manual
A 64. oldalon (a PDF belső oldalszáma alapján ez az 52. oldal).

(#562) moseras válasza Szirty (#559) üzenetére


moseras
tag

Szia.

Köszi.

>fizikai bemenetet kell olvasni (erre külön módszer van ugye)

Remélem, még ilyennel nem találkoztam. Ha pl. egy %IX4.0-át írok, akkor a 64.-ik bitre hivatkozik, de mindig a process image-ben. Hogy direktben hogy lehet portot olvasni, azt még nem tudom.

Imi.

(#563) Szirty válasza moseras (#562) üzenetére


Szirty
őstag

Hali moseras!

"Hogy direktben hogy lehet portot olvasni, azt még nem tudom."

Az teljesen típusfüggő!
Rendszerint speciális utasítás vagy speciális memóriaterület elérésével lehetséges (esetleg sehogy némyelyik típusnál).

Omron CS1 esetén pl. IO REFRESH (IORF) avagy FUN(097)
S7-300/400-nál PIW olvasás

(#564) bazsi1219


bazsi1219
csendes tag

sziasztok!

én plc-ből írom a szakdolgozatomat.van olyan aki tart ebből különórát illetve tud ebben segíteni? a választ előre is köszönöm!

(#565) akoel


akoel
csendes tag

Sziasztok
Van egy házifeladatom Omron plc-re.
Nem kell megijedni, nem mással akarom elkészíttetni, csak segítség kellene megértetni a dolgokat? Mellékeltem egy konzultációs feladatot (nem az enyém).
Szóval az első három grafikon adott, a tobbit nekem kell megrajzolni.
Azt gondolom, hogy az elvet értem, de lehet, hogy nem:
-Van egy start jel ST, aminek a hatására valmi1 elmozdul, ezért az s1 véghelyzet érzékelő kikapcsol.
-Amikor a valami1 elér egy pontot, az s2 végálláskapcsoló bekapcsol, a valmi1 megáll, elindul a valami2 és az s3 végálláskapcsoló kikapcsol.
-Amikor valami2 elérte az s4 végálláskapcsolót, akkor az bekapcsol és a valami2 iránya megfordul.
-Amikor végül a valami2 visszatér a kiindulási pontra, az s3 végálláskapcsoló bekapcsol, a valami2 megáll, az s2 kikapcsol és a valami1 elindul visszafelé.
-Amikor a valami1 elérkezik a kiindulási pontra, akkor az s1 bekapcsol és a valami1 megáll.

Remélem, hogy jól értelmeztem a rajzot.

Namost, kérdéseim:
-miért van az s2s3 jel külön ábrázolva?
-mit jelent az F diagram?
-Nem tudom hogyan jelöli a Set-Reset táblában és a létradiagramban a megállást és az irányváltást, mit jelent az Y1 és Y2

előre is köszi a segítséget

(#566) Szirty válasza akoel (#565) üzenetére


Szirty
őstag

Helló akoel!

Szerintem valami keveredés van.
A leírásodból valami ilyesmi idődiagram jön ki:

A kéziraton lévő programrészlet azonban ezt nem tudja megcsinálni szerintem...

(#567) Fary86


Fary86
csendes tag

Helló sziasztok.
Segítséget szeretnék tőletek kérni! Szakdolgozat írásba vagyok, és nagyon elakadtam. Az a problémám hogy a témám nem valami kirobbanóan érdekes dolog, de sajnos mikor leadtam arra még nem gondoltam hogy majd nem tudok róla mit írni, csak arra hogy ezt a programot talán még én is meg tudom csinálni. Egy SAMSUNG FARA F700 as PLC-vel vezérlünk, egy gyártósorvégi lehordót, ami pozícióba állatja a dobozolt TV-ket úgy, hogy azok egymással szemben helyezkedjenek el négyesével a targonca előtt. Na most nekem az lenne a kérésem, hogy adjatok nekem ötleteket mégis miről lehetne összeírni 60.000 karaktert ezzel kapcsolatban. Nagyon tudnék örülni, hasonló témával, vagy bármilyen FARA plc-vel foglalkozó írásnak, esetleg szakdolgozatnak. Minden segítséget előre is köszönök szépen!

(#568) Szirty válasza Fary86 (#567) üzenetére


Szirty
őstag

Helló Fary86!

"Na most nekem az lenne a kérésem, hogy adjatok nekem ötleteket mégis miről lehetne összeírni 60.000 karaktert ezzel kapcsolatban."

Szerintem kisebb képet kéne berakni, mert így csak kb. a fele lesz látható...
Szóval szerintem le kell írni a berendezést. Mi a feladata, milyen részekből áll. Hol milyen motorok, beavatkozó szervek, érzékrelők vannak, azoknak mi a feladata.
le kell írni a program működését, A program mikor milyen helyzetben mit tesz. Ha esetleg alternatív működésmódok vannak, akkor azokat is.
Kell egy ki/bemeneti lista, hogy a PLC melyik kimenetére és bemenetére mi van kötve. Ezeket az itt is mellékelt rajzzal alá lehet támasztani.
Leírni a kezelőszerveket és azok funkcióit. Milyen lehetőségeket biztosít a kezelő számára a berendezés, hogyan kell kezelni.
Ha a berendezésben van valami különlegesség (pl. különleges működésmód, esteleg egy frekvenciaváltós hajtás) akkor arra külön ki lehet térni.
A programlista, gazdagon kommentezve, magyarázva hogy mi miért ban és mit csinál benne.
Ilyesmivel össze lehet hozni a kívánt terjedelmet.

(#569) akoel válasza Szirty (#566) üzenetére


akoel
csendes tag

Szirty
Köszi a gyors reagálásért.
Mivel tudtál ilyen ábrákat csinálni?
Szóval, mint mondtam nem az enyém a jegyzet hanem a hugomé, akit ki kellene okosítanom. De összesen ez a jegyzet, amivel információt kaphattam. Nem állítom, hogy tökéletesen rajzolta le a táblán lévő dolgokat. De mondjuk az általd gyártott diagramok, ha jól látom alapvetően csak az előre és hátra rajzokban különbözik, na meg a késleletetésekben.
Légyszi magyarázd el, hogy mi az Y1, Y2 és az F

Azt mondod, hogy a program nem azt csinálja, amit én gondoltam, hogy csinál. Amit én gondoltam, azt a diagramok alapján képzeltem csak el. (Ha ez alapján másként van, légyszives javíts ki). Akkor ezek szerint a diagram és a létradiagram nem ugyanazt mutatják?

(#570) Szirty válasza akoel (#569) üzenetére


Szirty
őstag

Helló akoel!

"Mivel tudtál ilyen ábrákat csinálni?"

OpenOffice draw-al készítettem az ábrákat. Szerintem kiváló ilyesmire. Ebben a cikkben lévő diagramok és ábrák is azzal készültek (kivéve a programrészlet screenshotok persze).

"Légyszi magyarázd el, hogy mi az Y1, Y2 és az F"

Hát többet írtam volna ha többet sikerül kihámoznom belőle.
Az ábrák azért ugyanazok, mert a te leírásod alapján készültek. És beletettem még a programban lévő változókat Y1, Y2 és az F. Szerintem az a létradiagram nem azt csinálja, mint amit az idődiagramok leírnak. Mint ha hiányozna a fele.
Az Y1, Y2 és az F nyilván a beavatkozók lennének, tehát amik mozgásra késztetik a "valamiket".

(#571) akoel válasza Szirty (#570) üzenetére


akoel
csendes tag

Köszi mégegyszer.
Kipróbáltam a openoffice Draw-t, de nagyon nehézkes. Azt hittem van valami spéci program, ami még a programot is legenerálja. :)
Nem tudom, hogy hogyan szokták használni, de ha egy dolognak két irányba is tudnia kell mozogni, akkor ahhoz nem elég egy beavatkozó szerv ki- és bekapcsolása (gondolom a Set Y1 jelenti a beavatkozó szerv elindítását és a Rset Y1 pedig a kikapcsolását). sztem kellene a Valmi1-hez egy Y11 és Y12 beavatkozó szerv, aminek az előremozgását az Y11, a hátramozgását meg az Y12 végezné. Persze gond adódik ha mind a két szerv Set állapotban van.
Mi a szokás? Milyen jelölésmódot alkalmaznak ilyen esetekben?
Igérem nem zargatlak többet :)

(#572) Fary86


Fary86
csendes tag

Köszi szépen a segítséget!
Lelkesen próbálkozok :)
Nem tudod hogy hol tudnék magyar nyelven találni alkatrész leírásokat? pl omron xy érzékelő vagy munkahenger, frekvenciaváltó. Esetleg FARA plc magyar nyelvű leírás, vagy a hozzá tartozó WINFPST program ismertetése :)
Köszi előre is!

(#573) Szirty válasza akoel (#571) üzenetére


Szirty
őstag

Hali!

"Kipróbáltam a openoffice Draw-t, de nagyon nehézkes."

Szerintem nagyon hasznos. De tény, hogy ez nem az a program ami helyetted rajzol. Ez az a program, amivel te rajzolsz.

"sztem kellene a Valmi1-hez egy Y11 és Y12 beavatkozó szerv, aminek az előremozgását az Y11, a hátramozgását meg az Y12 végezné. Persze gond adódik ha mind a két szerv Set állapotban van."

Jól gondolod.
Van pár "ökölszabály" amikor ilyen két irányú mozgást kell vezérelni.
- Keresztbe kell reteszelni az irány kimeneteket, ami megakadályozza, hogy egyszerre két irány legyen aktív
- Nem használunk R/S tárolót ilyen kimeneteknél (max a közvetett vezérlésükhöz)

"Milyen jelölésmódot alkalmaznak ilyen esetekben?"

Hát a kérdésre nehéz egyértelműen válaszolni. Alapvetően a PLC memóriaterületeinek jelölése szerepel ott. Kimenet gyakran Q, bemenet általában I, stb.
De lehetséges soknál a szimbolikus címzés is. Ennél a felhasználó adhatja meg a szimbólum nevet és ezt lehet odaírni. Szimbólumnévnek meg kézenfekvő a berendezés elektromos tervdoksijában szereplő tervjeleket használni. Pl. szelepek: Y, motorkapcsolók KM, Relék KA, visszajelzők H, stb, stb. (már ha kól értettem a kérdést)...

(#574) Szirty válasza Fary86 (#572) üzenetére


Szirty
őstag

Helló Fary86!

Nem tudod hogy hol tudnék magyar nyelven találni alkatrész leírásokat? pl omron xy érzékelő vagy munkahenger, frekvenciaváltó.

Danfoss FC300 frekvenciaváltó (magyar)
Danfoss VLT5000 frekvenciaváltó (magyar)
Omron CQM1H PLC (magyar)
A Siemens S7-300 programozás alapjai (magyar)
Mindenféle Omron doksik
Siemens S7-200 PLC általános ismertető (magyar)
Siemens S7-200 PLC részletes ismertető (magyar)

"Esetleg FARA plc magyar nyelvű leírás"

Ilyet sajnos nem tudok.

(#575) Pato7 válasza petv4 (#553) üzenetére


Pato7
csendes tag

Szia!
Nekem van egy ilyen kábelem, és még eladó is!
Ha érdekel, árban megegyezünk!

(#576) Pato7


Pato7
csendes tag

Szirty!

Ha szeretnék egy S7-es PLC-t programozni, vagyis elkezdeni, megtanulni, a programozói szoftvert hogyan érhetem el?Simatic manager a neve?Letölthető valahonnan?Vagy meg kell vásárolni a Siemenstől?

Köszi..

(#577) Szirty válasza Pato7 (#576) üzenetére


Szirty
őstag

Helló Pato7!

A szoftver neve Step 7 (nem Step 7 MicroWin!)
Sajnos nem tudok konkrét linket adni, de létezik hozzá 30 napos licensz.
Elvileg ez való arra hogy kipróbáld.

Illetve van olyan is, hogy Step7 Lite, de arról meg nem tudom milyen licensz van hozzá.

[ Szerkesztve ]

(#578) And


And
veterán

Üdv! Szintén Siemens PLC-s kérdés: megoldható-e, hogy az egyik analóg bemenetet átskálázzuk? Magyarul van egy 4..20mA-es távadó, amelyik elromlott, és nem pont ugyanolyan méréstartományú eszközt tesznek a helyére, mert az eredetivel megegyező épp nincs kéznél. Ettől pedig a 20mA-es jel nyilván más értelmezést kap (a tartomány alja változatlan marad). Hogyan lehet ezt egyszerűen megváltoztatni, ha egyáltalán? Az eszközeink adottak a Siemens programjának módosításhoz, de sajnos ez egy komplett berendezés része, mi pedig hivatalból más PLC-vel szoktunk dolgozni (annál viszonylag egyszerűen meg tudnánk oldani a dolgot).

(#579) Szirty válasza And (#578) üzenetére


Szirty
őstag

Helló And!

"Magyarul van egy 4..20mA-es távadó, amelyik elromlott, és nem pont ugyanolyan méréstartományú eszközt tesznek a helyére, mert az eredetivel megegyező épp nincs kéznél."

Természetesen megoldható, lényegében egyszerű szorzással és összeadással át lehet skálázni.
De valószínűnek tartom, hogy az eredeti program is tartalmaz skálázást. Legalábbis ha van a rendszerben valami megjelenítő és a mért értéket kiírja, akkor mindenképpen.
Én ezt a programrészt keresném és módosítanám megfelelően.

Én az analóg jelek kezelését mindig úgy csinálom meg, hogy a program módosítása nélkül egyszerűen beállításokkal módosítható legyen a skálázás. persze ha van HMI a rendszerben.
Ha az említett progra nem így van megcsinálva, akkor meg kell keresni benne hogyan kezeli a eolvasott értéket.

Persze azt is meg lehet csinálni, hogy az eredetileg beolvasott értéket skálázva adjuk át neki. Ezt valószínűleg egyszerűbb megcsinálni, mert így nem kell nagyon belenyúlni az eredeti programba, csak a PIW olvasását kell átirányítani egy változóra, amit egy általunk írt blokk szolgáltat...

Ezen a linken van ilyesmiről szó. Az FC109 skáláz. (de ha jól emlékszek, akkor ennek REAL a kimenete).

(#580) moseras


moseras
tag

Sziasztok

Újabb kérdéseim lennének PLC-vel kapcsolatban:

1.Van egy PLC (WAGO), van benne RTC. A gyártó azt javasolja, hogy az RTC-t olvasó részt külön programba tegyük, azt szervezzük külön taszkba, és ezt T#1s0ms időnként alacsony prioritással futtassuk meg. Az RTC értékét pedig ez a taszk tegye le egy GLOBAL DT-be. Ez így jól hangzik, de mi van akkor, ha el kell indítanom valamit 17:40:28-kor, és az RTC-t olvasó taszk mondjuk 17:40:27 legvégén olvasott be értéket, és legközelebb pedig csak 17:40:29 legelején (ez elvileg megtörténhet, hogy mondjuk 1002 msec-enként kerül sorra, hiszen az ütemező több nagyobb prioritással futó taszkot ütemezett be). Szóval ilyenkor kimaradt az én várt másodpercem !? Mi ennek a korrekt megoldása ?

2. Ha van n darab taszkom, amik egy közös GLOBAL területen lévő változót írnak/olvasnak (mint pl. az előbb), akkor mi a megoldása annak, hogy az olvasó taszk csak akkor nyúljon bele, ha az író taszk már végzett az írással (illetve fordítva, addig ne írjon bele, amíg a másik ki nem olvasta) ? Tehát semaphor(), mutex(). lock() stb-re gondolok...
Kell e ilyen ide ?

Köszi.

Imi.

(#581) moseras


moseras
tag

Sziasztok

Meg lehet e oldani a direkt címzésű változók tömb-be rakását ?

Tehát e helyett

Valtozo AT %QX0.0: BOOL;

valami ilyent:

ValtozoTomb: ARRAY [1..8] OF BOOL :=
AT %QX0.0,
AT %QX0.1,
AT %QX0.2,
AT %QX0.3,
AT %QX0.4,
AT %QX0.5,
AT %QX0.6,
AT %QX0.7;

Persze ezt a fordító nem fogadja el, de a probléma szemléltetésére jó.

Köszi.

Imi.

(#582) Szirty válasza moseras (#580) üzenetére


Szirty
őstag

Hali moseras!

"Ez így jól hangzik, de mi van akkor, ha el kell indítanom valamit 17:40:28-kor, és az RTC-t olvasó taszk mondjuk 17:40:27 legvégén olvasott be értéket"

Ha te végzed az idő bekövetkeztének a figyelését, akkor ezt a problémát elkerülheted, ha az idő összehasonlítását (beállított és az óra) nem egyenlőségre vizsgálod, hanem nagyobb relációra és erre teszel egy él figyelést.
Vagyis ha az RTC-ből olvasott idő nagyobb mint a beállított, akkor bebillentesz egy bitet. Ezt a bitet figyeli a programod, hogy mikor változik 0-ról 1-re.
Ennél csak arra kell figyelni, hogy ha állítják az RTC-t, átállás van téli nyári időszámításra, vagy a beállított időt állítják úgy, hogy az állítás következtében teljesül a feltétel, akkor is "jelezni" fog.

Ha az idő figyelését a rendszerre bízod, akkor nyilván rajta múlik hogyan kezeli az ilyen esetet. Mint pl. S7-nél vannak timer interruptok (beállított időpontban meghív egy blokkot).

"Ha van n darab taszkom, amik egy közös GLOBAL területen lévő változót írnak/olvasnak (mint pl. az előbb), akkor mi a megoldása annak, hogy az olvasó taszk csak akkor nyúljon bele, ha az író taszk már végzett az írással"

Ez nagyon rendszerfüggő.
De szerintem nem kell ezzel as problémával számolni, mivel a több taszk ellenére is csak egy dolgot képes elvégezni egy időben. Tehát amikor éppen ír, akkor biztos hogy nem fog olvasni, és viszont.
Ha az írás/olvasás több adatot érint amely hosszabb idő és elvileg megszakítható, akkor csak onnan kapsz választ a kérdésedre ha megnézed az adott rendszer timing dolgait. S7-hez van ilyen, nem tudom wagohoz van-e. Ebben le van írva hogy minek mekkora a prioritása és mi mit képes félbeszakítani és mit nem.

Szerintem két taszk nem egymástól teljesen függetlenül aszinkron módon fut.
Nekem akkor volt ilyen jellegű problémám, amikor operátorpanellel kellett kommunikálni (PLC JOB-ok futtatása a panelen). De ott voltak szemafor jellegű jelzések, amivel lehett koordinálni nikor ki írjon.

(#583) And válasza Szirty (#579) üzenetére


And
veterán

Köszönöm a válaszod! A program több helyen hivatkozik az említett PIW-re, amely az érték megjelenítésén túl egy PID-szabályozásnak is az ellenőrzőjele. Ezért az utolsó javaslatodnak megfelelően létrehoztam egy FC-t, amelyik átskálázza a bemeneti értéket. Azzal valóban nem mentem volna sokra, ha csak a kijelzőn változik az érték. Az alany egyébként egy C7-621-es volt, ezért a változó megtalálása sem ment olyan egyszerűen az 'ömlesztett' I/O-címek miatt, de egy 4..20mA-es szimulátor segített ebben. Eredetileg valamilyen globális, már a bemenet konfigurációjánál megadható skálázásra gondoltam, de sajna úgy nem megy. Kicsit macerás volt így elsőre, bújni kellett a helpet, de végül sikerült. Kösz :R!

(#584) Szirty válasza And (#583) üzenetére


Szirty
őstag

Hali And!

"Az alany egyébként egy C7-621-es volt, ezért a változó megtalálása sem ment olyan egyszerűen az 'ömlesztett' I/O-címek miatt"

Ilyenkor legjobb a HW configból kiindulni. Ott látható melyik bemenetnek mi a címe.

"Eredetileg valamilyen globális, már a bemenet konfigurációjánál megadható skálázásra gondoltam, de sajna úgy nem megy."

Ilyet az Omron analóg modulok tudnak (pl.)
Itt csak annyit lehet tenni, hogy beállítjuk a modul méréshatárát (0-5V, 0-10V, -10-+10V, stb)

"Kicsit macerás volt így elsőre, bújni kellett a helpet, de végül sikerült."

A következő gyorsabban megy majd :)

(#585) And válasza Szirty (#584) üzenetére


And
veterán

(Szia! Próbáltam én a HW-konfigurációból kiindulni, de nem sok sikerrel. Ez C7-es, úgyhogy a hw-konfigban egyedül a 621-es CPU látszódik, egyetlen I/O-tömbbel. A ki- és bemenetek címe ugyanaz a bazinagy tartomány. Ennek nincsenek fizikai moduljai, mint pl. egy S7-300-nak, az összes I/O-ja integrált, ezért okozott problémát. Mondjuk szerencsére csak 4 analóg bemenete van ;).)

(#586) moseras válasza Szirty (#582) üzenetére


moseras
tag

Szia Szirty!

"Vagyis ha az RTC-ből olvasott idő nagyobb mint a beállított, akkor bebillentesz egy bitet. Ezt a bitet figyeli a programod, hogy mikor változik 0-ról 1-re"

Ez jó ötlet. Tehát akkor a probléma ezek szerint valós...
Akkor fogom bekapcsolni, ha "valós_idő >= bekapcs_idő AND valós_idő < kikapcs_idő"

"timing dolgait. S7-hez van ilyen, nem tudom wagohoz van-e."

Nyomozok, de eddig nem találtam.

"Ebben le van írva hogy minek mekkora a prioritása és mi mit képes félbeszakítani és mit nem."

Igen, nyilván ez a kérdés. A demo-kban nem figyelnek erre a problémára. Arra gondoltam, hogy lehet, hogy a taszkok nem is szakíthatóak félbe. Így nem jelentkezne a probléma. Ha ez nem lenne megoldva, akkor biztos találtam volna rá utalást, hogy erre figyelni kell.

Köszi.

Imi.

[ Szerkesztve ]

(#587) moseras válasza Szirty (#582) üzenetére


moseras
tag

Szia Szirty!

Mint pl. S7-nél vannak timer interruptok (beállított időpontban meghív egy blokkot).

Ilyen itt is van, akkor ezt fogom használni. Csak azt nem értem, hogy akkor az example-ek miért nem ezzel oldják meg ?

Köszi az ötleteket.

Imi.

(#588) moseras


moseras
tag

Sziasztok

Használtátok e már a PLC-k filerendszerét naplózásra ?

A példákban azt látom, hogy bizonyos változókat (egész struktúrákat) lementenek a filerendszerbe egy adott néven, majd PLC_START eseménykor visszaolvassák. Gondolom ez egy FLASH alapú eszköz, ha én ezt folyamatos naplózásra használnám, akkor ez nem fog behalni 100k-200k írás után ? Vagy ne használjam naplózásra ?

A másik kérdésem, hogy ha otthonról frissítem a PLC progiját (router-en VPN+dyndns beállítva), és mondjuk a feltöltés közepén beüt valami krakk, akkor mi lesz a PLC-vel ? Timeout-ra fut, és újraindul a régi progival, vagy leáll az egész ?

Erre sem találok utalást a pdf-ekben :(

Köszi.

Imi.

(#589) Bandi18


Bandi18
tag

Hellosztok

Egy kis segítségre lenne szükségem. Itech tárgynév alatt PLC-t kell programoznunk illetve csak szimulálnunk. A Zelio Soft 2-őt használjuk, és problémám lenne egy feldattal. Lényege hogy adott Q1-Q4 kiménetek és ezeket sorban kellene villogtatni gombnyomásra timerrel illetve mind a 4-et egy bizonyos idő elteltével. Utóbbit sikerült megvalósítanom de a többivel küszködök. Ha valaki tudna segítnei azt megköszönném :)

Üdv Bandi

(#590) Szirty válasza moseras (#588) üzenetére


Szirty
őstag

Szevasz moseras!

"Gondolom ez egy FLASH alapú eszköz, ha én ezt folyamatos naplózásra használnám, akkor ez nem fog behalni 100k-200k írás után ?"

S7-nél alapból nincs kifejezetten olyan, hogy file rendszer.
A háttértárat inkább memóriaként kezeli nem file-szerűen.
A programot FLASH memóriában tárolja. Legalábbis az újabb típusok, a régebbiek háttértelepes RAM-ban, de most maradjunk a FLASH-es verziónál.
Szerintem úgy megy, hogy amikor elindul a PLC, akkor mindent betölt a FLASH-ból RAM-ba (aminek nincs háttértelepes tápja) és üzem közben csak a RAM-ot használja. Abba írja az adatokat és abból is olvassa. Amikor elmegy atápfesz, akkor a RAM teljes tartalmát kiírja FLASH memóriába. Persze úgy, hogy a CPU értesül a tápfesz megszünéséről, de ő maga pufferről néhányszáz ms ideig még üzemel, amennyi idő alatt iztonságosan kírja a RAM tartalmat.
Ha tényleg így van, akkor ebből az következik, hogy teljesen mindegy hogy programból milyen gyakorisággal írsz adatokat.

"A másik kérdésem, hogy ha otthonról frissítem a PLC progiját (router-en VPN+dyndns beállítva), és mondjuk a feltöltés közepén beüt valami krakk, akkor mi lesz a PLC-vel ?"

S7-nél ez úgy megy, hogy a feltöltés alatt lévő blokk semmilyen szerepet nem kap mindaddig, amíg a feltöltés teljes egészében és sikeresen be nem fejeződött. Amíg ez meg nem történik, a régi változat fut, ami feltöltés előtt is benne volt.
Ezért ha a feltöltés megszakad vagy adathiba következik be, a feltöltött adatok nem jutnak szerephez.

[ Szerkesztve ]

(#591) Szirty válasza Bandi18 (#589) üzenetére


Szirty
őstag

Szia Bandi18!

Szerintem kicsit pontosabban kellene meghatározni a feladatot, hogy érthető legyen.

"Q1-Q4 kiménetek és ezeket sorban kellene villogtatni gombnyomásra timerrel illetve mind a 4-et egy bizonyos idő elteltével."

Gombnyomásra, vagy timerrel (időre)? Vagy gombnyomás után időzítve?
Egymás után pontosan mit jelent? Bekapcsol az egyik, majd a másik, harmadik, stb? Vagy bekapcsol az egyik, majd amikor a második, akkor ez első kikapcsol, majd bekapcsol a harmadik és a második ki, vagy hogy?
Mind a 4 villogtatása hogyan értendő? Egyszerre felvillannak (ki be kapcsolnak)?

(#592) moseras válasza Bandi18 (#589) üzenetére


moseras
tag

Szia.

- készíts egy időzítőt, ami a kívánt ütemet adja
- legyen 4 ÉS kapu, amiknek a kimenete megy Q1...Q4-re, egyik bemenetük az időzítőre, másik bemenetük pedig egy shiftregiszterként használt BYTE-os változó bitjeire (a shiftregisztert töltsd fel kezdőértékkel, mondjuk 1-el)
- a gomb felfutó éleinél léptesd a shift regisztert (SHL, SHR)
- ha végiglépett, akkor töltsd fel a kívánt kezdőértékkel újból

Így a SHIFT_BIT(1) van, akkor az első lámpa villog, ha SHIFT_BIT(2), akkor a második, stb. Vagyis a kívánt ÉS kaput engedélyezed a SHIFT-el, a többi kimenete néma marad.

Imi.

(#593) moseras válasza Szirty (#590) üzenetére


moseras
tag

Szia Szirty

"S7-nél alapból nincs kifejezetten olyan, hogy file rendszer."

WAGO-ban van ilyen, de nem mindegyikben. 1.5M a 750-841-nél, de van CF-es változat is (max. 4GB). Azt hiszem a 8+3-at támogatja csak, de ez nem biztos. Itt tárolódik a PLC-hez írt program, az esetleges feltöltött WEBHMI (ha van ilyen, akkor html file-ok és java *.jar-ok), illetve ha valamit progiból ide mentesz a PLC működése közben, akkor az is. Van egy SysLibFile.Lib, benne open(), close(), seek(), delete(), meg minden egyéb FUNCTION-ban. És van erre épülő magasabb szintű FB (SaveVariable néven), megadsz neki egy változót, a változó méretét, Load vagy Save illetve a file nevét, és van 2 kimenete (error flag, és egy timestamp a file-ról). Ha beFTP-zek, akkor is ezeket látom. Azt hiszem, hogy könyvtárak nincsenek.

"Persze úgy, hogy a CPU értesül a tápfesz megszünéséről, de ő maga pufferről néhányszáz ms ideig még üzemel, amennyi idő alatt iztonságosan kírja a RAM tartalmat."

Igen, ez valószínű. Pl. most találtam: van ShutDown esemény, amihez POU hívást-t lehet rendelni. Ha nem lenne puffer, akkor ez nem lenne megvalósítható. Hopp, itt egy kérdésem lenne: van olyan speciális pufferes modul bármilyen PLC-hez, ami annyit pufferel, hogy 2-3 SMS-t is el tudjon küldeni ilyenkor ?

"Ha tényleg így van, akkor ebből az következik, hogy teljesen mindegy hogy programból milyen gyakorisággal írsz adatokat"

Megkérdezem a WAGO-t, remélem igen. Ha mégsem, akkor nem használom naplózásra. Bár gyanús, mert 1.5M a flash, 512k a program RAM és 256k az adat RAM mérete, itt nem tudja tárolni a teljes filerendszert.

"Ezért ha a feltöltés megszakad vagy adathiba következik be, a feltöltött adatok nem jutnak szerephez."

Ok.

Köszi a segítséget.

Imi.

(#594) Bandi18 válasza Szirty (#591) üzenetére


Bandi18
tag

Igen valóban lehet hogy így pontatlan sorry :). Szóval gombnyomásra elindul a program ami meghúz egy időzítőt elvileg. Lényeg hogy felvilan az első ég x mp-ig elalszik felvillan a 2. ég x mp-ig és így tovább. És Zelioban van egy olyan opció hogy megadhatunk idősávot amíg ezt csinálja (pontosan a nevét most nem tudom...) majd ha ez lejár akkor váltson át arra hogy mind a4 villog egyszerre. Pl a 6-20-ig terjedő időtartományban menjen az első ciklus majd ha eléri a 20 órát akkor váltson át arra hogy mind a 4 villog és így tovább.

Remélem így már érthetőbb kicsit. És köszönöm hogy próbáltok segíteni .

(#595) Szirty válasza moseras (#593) üzenetére


Szirty
őstag

Hali moseras!

"Van egy SysLibFile.Lib, benne open(), close(), seek(), delete(), meg minden egyéb FUNCTION-ban."

Jut eszembe: Omron CS1G-nél használtam ilyet. Ott van file szintű hozzáférés és éppen logra használtam.
Valószínű, hogy ott minden írás ténylegesen a flash-re ment. Tehát hosszú távon tönkreteszi. De ha nem ms-enként kell bele írni, akkor 10 év is eltelhet mire probléma jelentkezik. Az említett gép minden munkafolyamat közben méréseket végzett és ezek eredményeit írta ki CSV file-ba CompactFlash kártyára. 10-20 mp-enként írt egy-egy adatcsomagot. Kb 8 éve megy, amennyire tudom nem kellett még CF kártyát cserélni (nem is lenne egyszerű, mert néhány MB-os a mérete).

Nyilván egy 2GB-os flash memóriát nem tud 512k RAM-ban tárolni, hogy ne a flasht cseszegesse íráskor.
De azt megteheti, hogy úgy működik mint a write cache memória: Olvasni a flash-ről olvas (vagy a RAM-ból ha változott már) de írni a RAM-ba ír. Így a RAM csak a változásokat tartalmazza, nem az egész filerendszert. Ha meg nagyon nagy mennyiségű adatot ír, akkor úgy sincs mit tenni, ki kell írni üzem közben is néha.

"Hopp, itt egy kérdésem lenne: van olyan speciális pufferes modul bármilyen PLC-hez, ami annyit pufferel, hogy 2-3 SMS-t is el tudjon küldeni ilyenkor ?"

Ezt így konkrétan nem tudom, de könnyen megoldható a dolog egy aksival. :]

(#596) Bandi18 válasza moseras (#592) üzenetére


Bandi18
tag

Lehet hogy ez jó megoldás de nekem létranyelvben kell mindezt megvalósítanom :).

(#597) Szirty válasza Bandi18 (#596) üzenetére


Szirty
őstag

Helló Bandi18!

"Lehet hogy ez jó megoldás de nekem létranyelvben kell mindezt megvalósítanom :)"

Ezt létrában is meg lehet csinálni :)

[ Szerkesztve ]

(#598) Bandi18 válasza Szirty (#597) üzenetére


Bandi18
tag

Igen csak van egy kis problémám vele, ez a feladat beadandó lenne egy tárgyból amiből egész félévben volt 3 óránk és semmit nem értünk belőle sajnos :D Mert ami volt óra azon is csak annyi volt hogy csináljátok. Így gyakorlatilag létrában egy és kapcsolatot nem tudok megvalósítani vagy hogy milyen komponensekkel lehet...

(#599) Szirty válasza Bandi18 (#598) üzenetére


Szirty
őstag

Hali!

"Igen csak van egy kis problémám vele, ez a feladat beadandó lenne egy tárgyból amiből egész félévben volt 3 óránk és semmit nem értünk belőle sajnos"

Tehát akkor lényegében két lehetséges megoldás van:
1. Megcsinálja valaki helyetted
2. Megpróbálja valaki megtanítani

(#600) moseras válasza Bandi18 (#598) üzenetére


moseras
tag

Szia.

"Így gyakorlatilag létrában egy és kapcsolatot nem tudok megvalósítani vagy hogy milyen komponensekkel lehet"

Ez elég szomorú. Akkor nem tudom, hogy mit tanítanak ottan...

Először is én akkor félreértettem a problémát, mert amit írtam megoldásként, az csak arra jó, amit először írtál (illetve amit én abból megértettem).

Itt egy lehetséges megoldás létrában (ez CodeSys alapú, a te rendszeredet nem ismerem, ezt neked kell adaptálni). Tehát ez az általam először leírt megoldás, nem az ami neked ténylegesen kell, de ha ezt megérted, akkor már azt is meg tudod oldani:

1. és 2. sor: 1Hz/50% kitöltésben előállítása
3. és 4. sor: ez lépteti az "sh"-ban a bitet, illetve ellenőrzi, hogy fel kell e tölteni újból
5.,6.,7.,8. sor: ezek 2 bemenetű ÉS kaput valósítanak meg, és kapcsolgatják Q0...Q3-at

Az "sh.0" azt jelenti, hogy az "sh" nevű változó 0.-ik bitje. Általánosan igaz, hogy egy 1 bitesnél nagyobb változónak "változónév.bitszám" módon lehet hivatkozni a bitjeire (0-tól indul az index).

Az időzítő-nél leveheted a jelet az m0-áról is és az m1-ről is. m0 alapból alacsony, m1 alapból magas.

Változólista:

VAR
sh: BYTE := 1;
m0: BOOL;
m1: BOOL;
ton1: TON;
ton2: TON;
ftrig1: F_TRIG;
sh_eq_8: BOOL;
ftrig2: F_TRIG;
END_VAR
VAR_OUTPUT
Q0: BOOL;
Q1: BOOL;
Q2: BOOL;
Q3: BOOL;
END_VAR
VAR_INPUT
I0: BOOL;
END_VAR

Imi.

Útvonal

Fórumok  »  Egyéb hardverek  »  PLC programozás
Copyright © 2000-2024 PROHARDVER Informatikai Kft.