- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Mini-ITX
- Autós kamerák
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- OLED TV topic
- Hisense LCD és LED TV-k
- TCL LCD és LED TV-k
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- Home server / házi szerver építése
Hirdetés
-
Letartóztatták a bitcoin-Jézust
it Amerikai adókerülés vádjával, Spanyolországban tartóztatták le a bitcoin-Jézusként ismert Roger Vert.
-
Egyre nagyobb a balhé a Helldivers II körül
gp Úgy tűnik, hogy egyre több sötét felhő kezd gyűlni a játék körül a Sony döntése miatt.
-
Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
ma Részletes anyag került fel az internetre a Sony idei középkategóriás telefonjáról, három helyett két hátlapi kamera várható.
Új hozzászólás Aktív témák
-
rsf
senior tag
Hoppá, eddig én még sosem csalódtam a LOGO szimulátorában.
Biztosan a legújabb a progi?
A B3 kimenetére tegyél kimenetként egy M-et. Úgy már nem fog reklamálni.
Üdv.[ Szerkesztve ]
“Az a baj a világgal, hogy a buták mindenben holtbiztosak, az okosak meg tele vannak kételyekkel.“
-
Szakbarbár
aktív tag
Üdv
Bocs az amatőr kérdésért, de csak most ismerkedek az Omron PLC-kel hobby szinten.
FOR-NEXT ciklusban lehetséges a ciklus számlálónak megfelelően címezni? Pl ötször lefut a ciklus, és az eredményeket a D0-tól D4-ig szeretném tárolni.
Hőmérsékletet mérek és az értékeket szeretném eltárolni, majd kijelzőn megjeleníteni grafikonon.Ez a hozzászólás nem jöhetett volna létre elektromosság nélkül.
-
Szirty
őstag
válasz Szakbarbár #3952 üzenetére
Üdv Szakbarbár!
Nem tudom pontosan milyen PLC-vel próbálkozol, nem mindegy, nem írtad le.
Ahogy a FOR-NEXT-ből látom structured text-ben akarod megírni. Megpróbálok a lényegre válaszolni...Létrehozol egy tömböt a FB interface részében (változó definíció): Insert variable -> Array variable bepipál.
Array size-hez beírod a kívánt méretet. AT setting bepipál, Address-hez berod a kívánt kezdőcímet.
Itt egy példa:Ez DM0-DM9-ig feltölti a tömböt 0-9 értékekkel (a ciklusváltozót írja bele).
-
-
Szakbarbár
aktív tag
Köszönöm, mindjárt kipróbálom. A PLC Omron Sysmac CJ2H-CPU65EIP, a hőfokszabályzó CJ1W-TC003.
Egyelőre még csak a létradiagrammal barátkozok, a funkció blokkokat nem is néztem. Sok mindent kell még tanulnom, de magamtól elég lassan jövök rá a dolgokra. A CX programmer súgója és fórum alapján haladok az alapoktól.Ez a hozzászólás nem jöhetett volna létre elektromosság nélkül.
-
Szirty
őstag
válasz Szakbarbár #3958 üzenetére
Üdv Szakbarbár!
"Egyelőre még csak a létradiagrammal barátkozok"
Akkor hol akadtál te FOR-NEXT ciklusra?
-
Szakbarbár
aktív tag
Ebben a PDF-ben:Omron utasítások kézikönyve
239. oldalEz a hozzászólás nem jöhetett volna létre elektromosság nélkül.
-
Szirty
őstag
válasz Szakbarbár #3960 üzenetére
Helló Szakbarbár!
Hála a pontatlan kérdésednek, fölöslegesen írtam egy választ.
Most csak egy másik fórumon "elhangzottakat" tudom idézni, ami az indirekt címzésről szól:lukacsp írta:
Tegyük fel, hogy a D100 a pointer. A D100 tartalma #0150.
Indirekt címzéshez csak annyit kell tenni, hogy mondjuk azt mondom:
MOV #0001 *D100
Akkor ez az utasítás azt fogja csinálni, hogy a #0001 konstanst beteszi a D150 memória szóba.Tehát végső soron a * előtét jelenti azt, hogy abban a D-ben egy pointer van.
********************************************
Ezt fűztem hozzá:
Nos lukacsp fórumtárs megírta a lényeget, de annyival kiegészíteném, hogy:- Az említett indirekt címzést csak DM memóriaterületre lehet alkalmazni, tehát nem írhatsz olyat, hogy *6 vagy *T20.
- A * prefixumú pointer azt feltételezi, hogy a megadott számú DM memória rekeszben lévő cím BCD formátumú, tehát a címet BCD számkként kell kezelned. Avagy #-el kell megadnod a konstans értékeket, cím számításához BCD műveleteket kell használnod! Ha ezt nem veszed figyelembe, akkor hibát fogsz kapni, vagy elcímzed magad.
- Hasonlóan csak DM területre alkalmazható indirekt címzési mód a @ prefixumú pointer, ami a fentihez hasonló, de a hivatkozott DM tartalmát bináris számként kezeli, így a konstansok megadásánál és a cím számításoknál ennek megfelelő utasításokkal kell dolgoznod.
- Az indirekt címzés harmadik módja az index regiszteres címzés, ahol 15 címző regiszter van fenntartva (IR00-IR15) a pointerek számára. Ezekkel való címzéshez külön címzésmód tartozik és külön utasítások szolgálnak az index regiszterek kezelésére. Operation manualban külön fejezet foglalkozik a használatával (191. oldal). Ezzel nem csak DM területek címezhetők.
-
Szakbarbár
aktív tag
Üdv
Nem volt fölösleges a válasz, mert tegnap délután egész sokat foglalkoztam a funkció blokk írásával, úgyhogy volt mit tanulnom. Köszönöm a segítséget. Közben rájöttem, hogy a kijelző alapból tudja azt a funkciót amire én ciklust szerettem volna írni.
Ez a hozzászólás nem jöhetett volna létre elektromosság nélkül.
-
Szirty
őstag
válasz Szakbarbár #3962 üzenetére
Helló Szakbarbár!
Örülök hogy sikerült!
"Közben rájöttem, hogy a kijelző alapból tudja azt a funkciót amire én ciklust szerettem volna írni."
Ezért mindig jobb ha a kérdés arra irányul amit meg szeretnél valósítani és nem arra, hogy a módszer amit kitaláltál a megoldásra hogyan valósítható meg.
-
Shirchy
tag
Köszi!
Írtam privátban is neked!
Utánna olvasva a Jazz-nek egész jókat írnak róla,szóval lehet az lesz az itthonra megvételezett okosság.
Természetesen később nem tudom majd kikerülni a siemens-t és az omron-t sem,így azokat is meg kell majd tanulnom,de kezdésnek így ránézésre a LOGO marad szoftveresen,a JAZZ meg fizikailag gyakorolni.Jah igen azt eddig nem írtam,hogy villamosmérnöki levelezőn vagyok, ezért szeretnék gyakorlati oldalról ismerekedni a PLC-kel,mert megvallva az őszíntét... levelezőn a gyarolat nem sok mindenre jó.
Üdv
"jobb adni,mint kapni" mondta a boxoló... :P
-
attrax
aktív tag
Végül is sikerült.
A titok nyitja ,hogy a változókat a logon kell beállítani mindent nem tölt föl a program értékekkel.Tetszik hogy mind az időalapot ill. szorzót be lehet szépen állítani.Nekem 1-2 mp-es idő kellett azt kellett felosztanom egy 10kilós potira.Az analóg erősítőre meg kellett tennem egy analog kimenetet.Köszi a helpet.Unterschreiben
-
Teuton99
csendes tag
Sziasztok!
Az a feladatom,hogy egy adott DB-ben, amelyben csak INT-ek vannak, megkeressem a legynagyobb adatot.
Namost amikor futtatni akarom(mentés->letöltés->monitorozás) a PLC SIM stop-ba ugrik. Megnéztem egyszerűbb feladatoknál, pl. csak egy adott adat kimentése egy MW-be és akkor is stop-ba ugrik. Tud valaki segíteni?Köszi előre is
Az általam helyesnek vélt kód:
OPN DB 1 //DB megnyitasa
L P#DBX 0.0
LAR1
L 0
T MW 20 //temp változóL DBLG
L 2
/I
T MW 22 //eltároljuk a DB hosszátL MW 22
L 1
-I
CIM: T MW 24 //a hurokváltozó
L W [AR1,P#0.0] //ha az aktuális nagyobb, mint a temp--> csere
L MW 20 // egyebkent ugras
>I
JCN CIM2
//csere
L W [AR1,P#0.0]
T MW 20//index leptetes
CIM2: TAR1
L 10
+I
LAR1
L MW 24
LOOP CIM -
Szirty
őstag
válasz Teuton99 #3966 üzenetére
Üdv Teuton99!
Nem lett volna baj ha azon kívül, hogy hiba keletkezik elárulod azt is hogy milyen hiba... (Diagnosztikai buffer kiolvasása).
De gondolom "Area error when reading, Incorrect area ID: 0" volt a hiba.Az L W [AR1,P#0.0] címzésednél nem tudta eldönteni milyen memódiaterületről serettél volna olvasni. Hiába raktad az address regiszter töltésénél oda a terület azonosítót (L P#DBX 0.0)
Ezért a L P#DBX 0.0-t L P#0.0-ra, az L W [AR1,P#0.0] pedig L DBW [AR1,P#0.0]-ra kell cserélni.Ha megteszed, akkor meg a ciklus második lefutásakor szintén lesz CPU stop és kapsz egy szép kövér Alignment errort, mert a ciklusmag végén a cím kiszámításakor nem kezelheted az address rekiszter tartalmát integerként:
CIM2: TAR1
L 10
+I
LAR1Újra ki kell számolnod a pointert a ciklusváltozó aktuális tartalmából!
Ez így nem jó, a cím alsó 3 bitje bit cím, neked meg byte cím kell.
Nézd át ezt, ez így működik:OPN DB 1 //DB megnyitasa
L P#0.0
LAR1
L 0
T MW 20 //temp változó
L DBLG
L 2
/I
T MW 22 //eltároljuk a DB hosszát
L MW 22
L 1
-I
CIM: T MW 24 //a hurokváltozó
L DBW [AR1,P#0.0] //ha az aktuális nagyobb, mint a temp--> csere
L MW 20 // egyebkent ugras
>I
JCN CIM2
//csere
L DBW [AR1,P#0.0]
T MW 20
//index leptetes
CIM2: L MW 24
L 2
*I
SLD 3
LAR1
L MW 24
LOOP CIMUi.: Ha program kódot idézel a fórum üzenetbe, akkor légy szíves használd a "Programkód" nyomógombot a fomázáshoz, mert ha csak bemásolod eléggé szétesik az egész.
[ Szerkesztve ]
-
attrax
aktív tag
Az újabb feladat az lenne, hogy egy logot beállítani úgy hogy egy hétig 5-14 ig a másik héten 14-22ig adjon kimenetet tehát váltott műszakról van szó és persze egy áramszünet ne befolyásolja.Az időtagokkal nem tudom ezt megcsinálni
Unterschreiben
-
Szirty
őstag
Üdv attrax!
"őőő bocs hát nyilván azokkal próbálkoztam de nem lehet,mert csak napi/havi/éves időkapcsoló van benne heti nincs!"
Attól hogy nincs rá kész funkció, még megoldható. Ezt programozásnak hívják ;-)
Szóval fogsz 3 darab heti kapcsoló órát. Az egyiket beállítod a hét legelejére (vagy legvégére), aminek a kimenetével on/off módon billegtetsz egy bitet.
Egy másik kapcsoló óra lesz a páros hetekhez tartozó a harmadik a páratlan hetekhez tartozó. Az említett bittel meg választasz közülük, hogy melyik legyen hatásos. -
Teuton99
csendes tag
Üdv Szirty!
A hiba az volt, amit te is írtál
Átnéztem az általad küldött kódot, majd módosítottam aszerint az enyémet, de sajnos megint stop-ba tette a PLC-t. Megnéztem a diagnosztikát és a következőt kaptam:"New startup information in STOP mode
Startup prevented by:
-STOP request exists
-Cold restart or warm restart necessary
Startup information:
-Time for time stamp at the last non bracket up power on
-Single processor operation
Current/last startup type:
-Warm restart triggered by switch setting; last power on not backed up
Permissibility of certain startup types:
-Manual warm restart permitted
-Automatic warm restart permitted
Last valid operation or setting of automatic startup type at power on:
-Warm restart triggered by switch setting; last power on not backed up
Operating mode: STOP (internal)
Incoming event"Mit csinálok rosszul? :
Ui: Még annyira nem ismerem a PH-n a fórumos opciókat (másrészt siettem ), de igyekszem ezentúl esztétikus hozzászólásokat tenni
-
Teuton99
csendes tag
Szia Szirty!
A probléma megoldódott: a program végén lévő index léptetésnél SLD-t haszáltam, ami azért nem jó, mert csak INT-eket tárolok és így a double word miatt túlcímzés alakult ki (ez volt az amit a hibaüzenetből kihagytam, túlment a program a megadott címtartományon). Ezért átírtam SLW-re, ami már passzolt az INT-ekhez és a program lefutott.
Mégegyszer köszönöm a segítséget
Ui: a hibaüzenet az utókornak:
"STOP caused by programming error (OB not loaded or not possible, or not FB)
Breakpoint in user program: Cyclic program (OB1)
Priority class: 1
OB number: 1
Module address: 36" -
KB.Pifu
tag
szia!
Én is pontosan ezzel a feladattal kezdtem, mondjuk nekem másfél hónap volt "egyedül" rájönni de mostmár azért egyre jobb vagyok, de egy kérdésem azért van, hogy a későbbiekben ne kövessek el hibákat.
L MW 24
L 2
*I
SLD 3
LAR1
L MW 24ugye itt készítünk pointert a sorszámból, INT -en megszorozzuk kettővel utána DoubleWordben léptetjük a biteket amivel azt érjük el, hogy 8-val szorozzuk.
Ezzel nem egyenértékű a SLD 4 használata? -
Szirty
őstag
válasz KB.Pifu #3978 üzenetére
Üdv KB.Pifu!
"Ezzel nem egyenértékű a SLD 4 használata?"
A program működése szempontjából teljesen egyenértékű.
Mégis a "szószátyárabb" megoldást szoktam használni (és javasolni), mert így olvashatóbb a kód és kényelmesebb a felhasználása.
Ha pl. nem INT típust akarok címezni, hanem DINT-et, akkor csak átírom a szorzást 4-re. Ha byte-ot, akkor kiveszem a szorzást és a Load-ot. De a pointernél mindig ott marad az SLD 3. -
Szakbarbár
aktív tag
Üdv
Készített már valaki PLC-hez alkonykapcsolót? Digitális bemenetre szerettem volna egyet készíteni, de sajnos túlmutat az elektronikai tudásomon. Omron CJ1W-ID211-es a bemeneti modul.
Ez a hozzászólás nem jöhetett volna létre elektromosság nélkül.
-
Szirty
őstag
válasz Szakbarbár #3980 üzenetére
Üdv Szakbarbár!
Készített már valaki PLC-hez alkonykapcsolót?
Igen. Pontosabban nem hozzá, hanem vele.
Egy 25000 négyzetméteres csarnok világításához annak idején. Világítási zónák különböző (állítható) fényerőnél kapcsolnak be és ki (+beállítható időre).
Én egy olyan relés alkonykapcsoló fényérzékelőjét használtam, aminek külön van beltéri (az elektronika) és kültéri (a fény érzékelő) része.
A fény érzékelőjét (fotoellenállás) használtam fel de én 0-10V-os analóg bemenetre kötöttem, hogy a kapcsolási küszöb szoftveresen állítható legyen.Ha digitális jelet akarsz, akkor mi sem egyszerűbb, az alkonykapcsoló reléjét egy az egyben rákötöd a PLC digitális bemenetére.
Vagy nem kész alkonykapcsolóban gondolkozol, hanem te építenéd? Akkor mi lenne az érzékelő elem (ami a fényt érzékeli)?
[ Szerkesztve ]
-
moseras
tag
válasz Szakbarbár #3980 üzenetére
Üdv!
Te magad akarsz alkonykapcsolót tervezni és készíteni ? Ha igen, akkor a hobbielektronika.hu-n kellene körülnézni...
Imi.
-
Szakbarbár
aktív tag
Én építettem volna, de véletlenül rövidre zártam a fototranzisztort, így már tárgytalan a kérdésem. Sajnos nekem nincs analóg bemenetem, csak digitális.
Moseras: Ez alapján indultam el a tervezésben, csak eléggé hiányos az elektronikai ismeretem.
[ Szerkesztve ]
Ez a hozzászólás nem jöhetett volna létre elektromosság nélkül.
-
moseras
tag
válasz Szakbarbár #3983 üzenetére
Üdv!
A LED és a 330-500 Ohm nem kell, helyükre egy ilyen relé (vagy valami hasonló):
Ez már 6.8V felett meghúz, tekercsárama 15.5 mA. Kell még a relével párhuzamosan egy dióda (mondjuk 1N4001) úgy, hogy a katód van a +9V felé. A relével már vissza tudod röptetni a 24V-t a PLC DI felé.
Imi.
[ Szerkesztve ]
-
artiny
őstag
Helotok,
van egy feladat amiben segítseget kérnék,hogy szerintetek mit fog csinalni ez a program? -
rsf
senior tag
Hali
2mp-ig világit a LED majd 3mp-ig nem.Majd megáll.
A trükk ott van,hogy a RES utasítás csak számlálókra vonatkozik Timerekre nem.
De ha azoknál is működik akkor ujraindul a folyamat. (A .tt akkor aktív,ha fut a timer.)
Üdv.[ Szerkesztve ]
“Az a baj a világgal, hogy a buták mindenben holtbiztosak, az okosak meg tele vannak kételyekkel.“
-
artiny
őstag
koszonom a válaszokat,
igen azt hiszem AB
egy utolso ilyen feladat:
http://i.imgur.com/XE07Rve.pngKet szállíto D1,D2. Optikai szenzor S1 >> ture állapotban = foglalt
S2 >> ture állapotban = foglalt
Alkosson programot a szallitmany hosssza alapján D1 >megáll a kozepen D2 nek. A tovabbitas soran megall D.
(feltelezzuk hogy a szallitok elvannak inditva,vár a szállítmanyra es ha a felere ert a D2.nek a szallitmany .1 szallitmanyt kell venni mint ket D hez)[ Szerkesztve ]
-
KB.Pifu
tag
sziasztok!
Írtam, hogy szeretném kiválasztani a móduszt egy rendezett adatsorból, sajnos nem volt időm még megcsinálni, nem nagyon akar összejönni, azt a bizonyos növekvő értékű adatsort ez szolgáltatja (siemens oldalon találtam)
FUNCTION FC 1 : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
Data_DB : BLOCK_DB ;
DB_length : WORD ;
END_VAR
VAR_TEMP
Sort_done : BOOL ;
Temp : WORD ;
Count : WORD ;
END_VAR
BEGIN
NETWORK
TITLE =Sort a Data Block using the bubble sort method
//Data Block will be sorted in ascending order.
//
OPN #Data_DB; //Open Data Block
M002: LAR1 P#DBX 0.0;
SET ; //LET #Sort_done = TRUE
S #Sort_done;
L #DB_length;
L 1;
-I ;
Loop: T #Count; //FOR INDEX = Count TO DB_length
L W [AR1,P#0.0]; //IF M(INDEX) > M(INDEX+1) THEN
L W [AR1,P#2.0];
<=I ;
JC M003;
// change M(INDEX+1) for M(INDEX)
L W [AR1,P#0.0]; //LET TEMP = M(INDEX)
T #Temp;
L W [AR1,P#2.0]; //LET M(INDEX) = M(INDEX+1)
T W [AR1,P#0.0];
L #Temp; //LET M(INDEX+1) = TEMP
T W [AR1,P#2.0];
SET ; // ??
R #Sort_done; //LET #Sort_done = FALSE ??
M003: TAR1 ;
L 16; //NEXT INDEX
+D ;
LAR1 ;
L #Count;
LOOP Loop; //End of sorting pass
AN #Sort_done; //If sorting is not done
JC M002; //Jump Conditionally to M002
BE ;
END_FUNCTIONstl-ben még nem vagyok profi, de azért ha magyaráznak megértem, szóval amit belinkeltem az nem egy black-box, szürkének mondanám.
szóval nem sikerült megérteni teljes tökéletességgel hogyan működik a Sort_Done bool változó használata
a dupla kérdőjeles sorokra volnék kíváncsi, miért kell SET-be állítani az RLO-t?azért büszkén mondom, hogy magamtól rájöttem, m003 után az AR-t egyszerűbben is lehet növelni
szóval akinek van ideje ne kíméljen, szeretnék melót találni ahhoz meg manapság kevés a papír, a tudás kell!
-
Szabónagymer
aktív tag
Sziasztok!
Éppen végzőben vagyok egy erősáramú villanyszerelő okj-s tanfolyammal, és úgy gondoltam megfejelném még egy plc tanfolyammal!
Keresőben meg is néztem, se szeri, se száma a rengeteg tanfolyamnak!!
Ebben kérnék segédletet, hova érdemes jelentkezni, hol a legjobb az oktatás szinvonala, és felszereltsége.
A kettőt nem véletlenűl említem külön, ugan is most végzett tanfolyam is elég magas szinvonalú volt, remek tanárok, de a képzés eszközi szinvonala sajna nem a legmodernebb, de amit kellett még is meg tudtam tanúlni. Ez egy elfogadható kompromisszum.Ezek a képzések hétvégi képzések, 6-9 hónapon át. Ha összegzem az órák számát, a hétvégéket levonva, kb egy hónapra jönne ki, ha mindenapos okatás lenne. Az érdekelne, hogy mennyire lehet megtanulni a programozást ennyi idő alatt?
-
byte-by
tag
válasz Szabónagymer #3996 üzenetére
halo Szabónagymer !
megtanulni nem lehet ennyi idő alatt.
erős késztetést érezni arra , hogy még többet tanulni róla , azt lehet ennyi idő alatt.két dolog történhet egy, hogy megfog és még többet akarsz tudni és gyakorolni és csinálni,
kettő, hogy érdekel, de nem ásod bele magad igazán, nem foglalkozol vele eleget, aztán már arra a pár izgalmas dologra sem emlékszel ami a tanfolyamon elhangzott.
de ne add fel.
amúgy ezen a fórumon, ha visszanézel ez a kérdéskör már felmerült, talán többször is.
az ott leírtak nem változtak.más.
napokkal ezelőtt feldobtam egy gőz szabályzós problémát.PID szabályzás téma.
úgy néz ki megoldottam, (némi utána járással) publikálom az eredményeket, s7-1500 -as tapasztalat.byte-by
-
attrax
aktív tag
-
Szabónagymer
aktív tag
válasz byte-by #3997 üzenetére
Köszönöm a választ!
Teljesen új vagyok ebben a topikban, csak pár nappal ezelőtt találtam rá, nem is kerestem, hogy volt-e már téma.
Érdekelni maximálisan érdekel, hardver szinten már dolgoztam is PLC-vel, de program szinten laikus vagyok.Elszomorított a kapott válasz, mert "egyhónapos" képsért 200 ezer forintot kiköhögni igen drága dolog...! De hát ez van!
Új hozzászólás Aktív témák
- Lenovo Legion 7, 16,0"WQXGA, Ryzen 9 6900HX, 32 GB DDR5, RX6850M XT 12 GB, 1TB SSD, 1,5+ év garancia
- Corsair RM850e 850W Gold Moduláris Tápegység
- Samsung Odyssey Neo G9 Super Ultrawide Gamer Monitor!49"/Mini LED/5120x1440/240hz/1ms/+Ajándék
- Apple Macbook Pro 16" 2019 i7-9th 6Magos 32/512 -75% Touch Bar HUN Radeon Pro 5300M 4GB 3K Retina
- Apple Mac mini M2 2023 8GB 256GB + Xiaomi Mi Desktop 27"-os FullHD monitor egyben
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest