Új hozzászólás Aktív témák
-
KB.Pifu
tag
sziasztok!
nem tudom, hogy jó helyen kopogtatok, de azért csak megkérdezem.
Újonc vagyok, szeretnék plc programozó lenni és tanulom most az stl-t.
Vannak egyszerűbb számolgatós kész kódjaim, szeretnék valami bemutatható (állásinterjún) dolgot csinálni.ami kész
Adott egy adathalmaz (mondjuk a selejtek határértékei) kiválasztottam már a legkisebbet legnagyobbat stb.
Növekvő sorba is vannak rendezve ( ezt a kódot neten találtam kicsit át is alakítottam), de egyszerűen ötletem sincs, hogyan szedhetném ki ebből az adatsorból a móduszt (sorozatok leggyakoribb eleme).van valami ötletetek ?
még nem kérek kész kódot, csak pár gondolatot, hogy merre tovább, mivel sorba vannak rendezve
egyenlőséget vizsgálok, és ha igaz akkor növel egy számlálót, de itt akad el a logikám, az hogy hány darab egyenlőség van az még nem elég, azt is tudnom kellene ,hogy melyik érték az.remélem érthetően sikerült előadnom
-
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? -
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!
-
KB.Pifu
tag
üdv!
Hát azt csak ezért mondtam, hogy látszódjon, hogy nem csak kérdezek, hanem magam erejéből is előre akarok jutni.
Kérdésedre válaszolva pedig úgy, hogy megnyomtam az f1-et a Tar1 -nél és rájöttem mire megy ki a játék.
Értem a célzást, megnyomom legközelebb magam is.Megmondom őszintén azt hittem a SET a program lefutásában valami magasabbrendű kulcspozíciót játszik, eszembe se jutott hogy megnézzem a súgót egy bit állapotának állításához (csak ma reggel a buszon, akkor már sejtettem hogy hülyeséget kérdeztem), annyira egyértelműnek tűnt hogy tudom.
-
KB.Pifu
tag
válasz Szabónagymer #3996 üzenetére
Szia!
Én csak elmondom a saját tapasztalatomat.
Én is keresek munkát, és mivel nincs még tapasztalatom ezért nem is nagyon találok magamnak megfelelőt, azért is vagyok itt, hogy ellessem a programozáshoz szükséges infókat.A mi cégünknél senki sem használja a plc programokat, még csak nem is monitorozzuk nemhogy módosítsuk, egy kisebb gép, mondjuk egy 4-10 állomásos összeszerelő automata ( ne gondolj nagy rendszerekre, különálló gépek, saját csomagolóval) esetében a gép kiírja a hibás állomást és szemmel,tapasztalattal*, manuális üzemmóddal keressük a hibát. Felvettek engem mint plc technikust csak éppen soha nem kellett még hozzányúlnom semmihez, szóval ilyen formában nem tudom használni amit tanultam.
Egyedüli ami megnyugtat, hogy mégis van értelme csinálnom és belemerülni az STL-be is, hogy a Xenon (német) gyártótól olyan gépek jöttek amiket stl-ben kellett programozniuk az igazgatójuk utasítására.
Viszont olyan jól meg vannak írva, hogy nem kell senkinek sem online nézni.A tapasztaltak szerintem meg fogják erősíteni a gyanúmat, hogy termelő területen a villamos és plc -s hibák elenyésző mennyiségűek a mechanikus hibákhoz képest.
én már inkább gépésztechnikuson gondolkodom, karbantartásban nagyobb hasznát venném!
vagy én vagyok rossz helyen...* itt a tized mm hézagoló használata a mindennapos, ellentétben a Bit szót még nem halottam senkitől sem...
-
KB.Pifu
tag
Üdv!
Nálunk egy robotkar fél órán át dobálta el a terméket látszólag minden ok nélkül, pontosan ráfog, felemeli, lefényképezi a DMC kódot majd kivágja a kukába, ami nem volna gond ha a kód rossz lenne, bőszen kapcsolgattuk kifele hátha megjavul "magától", és csak utána derült ki, hogy a megfogón egy két csavar a megfogó fejben fel volt lazulva és lehetséges, hogy rosszul tartotta kicsit mikor lefényképezte a kódot.
Jah és persze mindenféle hibaüzenet nélkül tette mindeztDe ezt már sosem tudjuk meg, felvettek mint PLC-st és se laptop se program, még a kézi ellenőrzőket is mind külsős csinálja (meg minden mást is) én meg gondolkodom hogy ezek hülyék-e.
-
KB.Pifu
tag
szia!
Szeretném kérdezni, hogy van-e valami olyan különbség a két módszer között, ami miatt érdemes csak az egyikre koncentrálni. A kettő nekem ugyanaz, kiválasztja a legnagyobbat és legkisebbet 10 word adathosszon, dbw 0-tól kezdve.
ezt a verziót láttam a bubble_sortban amit linkeltem
OPN DB 2
L DBW 0
T DBW 20 // min eredmény helye
T DBW 22 // max eredmény helye
LAR1 P#DBX 0.0
L 10
loop: T #Loop1
L DBW [AR1,P#0.0]
L DBW 22
<I
JC ver1
TAK
ver1: T DBW 22
L DBW [AR1,P#0.0]
L DBW 20
>I
JC ver2
TAK
ver2: T DBW 20
+AR1 P#2.0
L #Loop1
LOOP loopés
OPN DB 2
L DBW 0
T DBW 20 // min eredmény helye
T DBW 22 // max eredmény helye
L 10
next: T #tmpLoop
DEC 1
SLD 4
LAR1
L DBW [AR1,P#0.0]
L DBW 22
<I
JC ver1
TAK
ver1: T DBW 24
L DBW [AR1,P#0.0]
L DBW 20
>I
JC ver2
TAK
ver2: T DBW 26
L #tmpLoop
LOOP nextvan valami oka, hogy következetesen a második verziót használod az AR1 növelésére ?
Ez volt a feladat ami miatt elkezdtem programozni, állásinterjún megkérdezték hogy ezt hogy csinálnám...üdv
Pifu[ Szerkesztve ]
-
KB.Pifu
tag
sziasztok!
Még mindig a (többek között) módusz keresésen töröm fejem ( növekvő sorrendbe rendezett adatsorból), nem hagy nyugodni a gondolat, hogy nem akar összejönni.
Mi a bevált módja egy hurkon belül az N. és N-1. adat tárolásának és összehasonlításának?
(s7-ben gondolkodom)üdv
Pifu -
KB.Pifu
tag
Köszönöm válaszod, de sajnos rosszul fogalmaztam! Többek között ez különböztet meg egy mérnököt tőlem
loop: L 10
DEC 1
SLW4
T #Count
L W [AR1,P#0.0]
L W [AR1,P#2.0]
==I
jcn m001
L #counter // "egyenlőség számláló" végső soron ezt lesz módusz értéke
INC 1
T #counter
m001: ... // itt akadok el,Én a #counter értékét szeretném menteni, ugye ha talál pár egyforma számot akkor azt növeli, de ha ==I -ra nem talál egyenlőséget akkor jelenti azt, hogy az érték megváltozott és nullázni valamint menteni kell hogy a következő alkalommal mikor szintén 0 az RLO az össze tudjam hasonlítani.
Nem is tudom hogy kellene szépen megfogalmazni, talán a hurok N és N+1 számolt értékét szeretném úgy összehasonlítani, hogy csak a nagyobb maradjon vagy a következő ciklusban csak akkor írja felül ha én szeretném
üdv
Pifu -
KB.Pifu
tag
üdv!
Már megint egy kicsit félrevezettelek
A min/max keresés az első gyakorlófeladatom volt, hogy az AR -t és a LOOP-ot megtanuljam, és azért másoltam be kétféle módon, mert pontatlan lettem volna, mikor megkérdeztem, hogy miért jobb az egyik AR növelés a másik AR növelésnél.
A mostani helyzet, hogy keresem egy adatsor móduszát és talán a legkönnyebben úgy találom meg ha sorba rendezem és számolom az egyenlőséget.
A bubble_sortot pedig azért linkeltem be, mert nem értettem hogy működik, én még csak nagyjából 2-3 hónapja foglalkozok komolyan a programozással, nekem egy trükk/módszer megtanulása is eredmény!Szóval adott a rendezett adathalmazom (feltételezve, hogy mindegyik értékből egynél több van, és minden RLO=0 után mindenképp talál bizonyos mennyiségű egyforma értéket), számolom az első szám gyakoriságát, ha nem talál több egyenlőséget, akkor törölnöm kell a számlálót mentés után és a következő értéknek a gyakoriságát tölteni bele, majd a következő RLO = 0 esetén összehasonlítani a kettőt, megtartani a nagyobbat és folytatni tovább.
Csak nekem ez nem akar összejönni, és nem látom be hogy miért.
Most azon gondolkozok, hogy egy boolean változó használata megoldja a problémát? Vagy ehhez külső és belső ciklus kell vagy esetleg mindkettő?üdv:
Pifu[ Szerkesztve ]
-
KB.Pifu
tag
szia!
idézlek (#3931)
"Ha már sorba van rendezve, akkor csak meg kell számolni mennyi egyforma van egymás után. Ha a darabszám mellé rögzíted azt is melyiket számoltad, akkor mire a végére érsz tudni fogod melyikből van a legtöbb ha így csinálod.
Elég kettőt nyilvántartani. Az egyik az előző, a másik amit éppen számolsz. A számolás végén, ha az kevesebb mint amit rögzítettél eldobod. Ha több, akkor felülírod az előzőleg tároltat."
Nekem valahogy nem megy, nem tudom kezelni az "előző" - értéket, hogy valahol véletlenül felül ne írjam a jelenlegivel.
-
KB.Pifu
tag
Sziasztok!
Sajnos igazi PLC-vel még nem sok dolgom volt, ma megkérdezték miért tanulok STL- mikor ott a ladder.
Ha jól tudom minden program a PLC -ben STL-ben fut.Mondjuk letöltök a PLC-ről egy programot, amit valaha ladderban írtak, azt minden esetben vissza lehet alakítani?
-
KB.Pifu
tag
Sziasztok!
Szükségem volna némi iránymutatásra, sajnos mivel nem dolgozok PLC programozóként nincs túl sok gyakorlatom.
Olyan ötletekre vagyok kíváncsi, amiket előre megírhatok (természetesen nem tökéletesen, gondolok a szimulálás határaira), még ha nem is úgy sikerülnek de legalább most gondolkodok rajta és mikor oda kerülök már van miből dolgozni, gondolok itt Szirty weboldaláról a forgásfigyelőre, az indirekt címzéses határérték ellenőrzésre stb, munkahengerek végállás ellenőrzése adott időhöz kötve stb...
Bármi amin lehet gondolkodni és van is értelme, szórakozásból csináltam egy "random csipogó"-t amit szúrópróbaszerű ellenőrzésnél lehet használni beléptetőkapuknál, jó is, sokat is tanultam, de nem hiszem hogy valaha kelleni fog.
A másik kérdés, ha már itthon PLC -kel foglalkozok, melyik legyen a következő?
Elterjedt nagyon az Omron, de mintha azt látnám, hogy a Mitsubishi kezdene feljönni, lehet azért mert japán érdekeltségű gyárban dolgozok és ez téveszt meg?üdv
Pifu -
KB.Pifu
tag
válasz byte-by #4064 üzenetére
Szia!
Köszi a gyors választ!
Az a gond, hogy állásra vadászok és ugye cége válogatja, hogy melyiket szeretnék viszontlátni és a másodikkal egy olyat szeretnék megcélozni ami valószínűleg talál is ez lesz az Omron.
(A Siemens-sel "nálunk" csak az a baj, hogy olyan egyszerű gépekhez, mint egy kézi kis ellenőrző túl drágának találtatott és csak a német import gépekben van, azok viszont nagyon szépen mennek anélkül, hogy rájuk kellene nézni)
És bizony állásinterjúkon tudnak cifrákat kérdezni, nekem meg nagyon le kell nyűgözni őket elsőre ,hogy sikerüljön.Sajnos ez a munkahely ahol vagyok nem fog soká tartani, visszajött az az ember akinek anno még a helyére felvettek és létszámfeletti lettem (3 tapasztalt technikus a 3 műszakra, én volnék az újonc negyedik). Mérnöknek meg nem vesznek át, nekik mindenképp senior kell.
Mik a vélemények a Mitsubishi PLC-kről?
Kezembe akadt egy prospektus és egész jónak tűnik a rendszer egyben.üdv
Pifu[ Szerkesztve ]
-
KB.Pifu
tag
Sziasztok!
Oktató jellegű segítségre volna szükségem, ha valakinek van itt lementett system+scene data OMRON FZ4 kamerarendszerhez annak tudnék örülni!
Megszereztem a szoftware-t és kicsit játszanék itthon vele, de sajnos oda se sikerült eljutni, hogy egy képet betöltessek vele és mondjuk nézni rajta, hogy a brightness állítgatás mennyire segít az élkeresésben.
Szeretek hülyeséget kérdezni, egyáltalán BMP image kiterjesztést használ? vagy az csak az amit elment a screen capture.
Van egy szép nagy ikon, hogy select image, ott hagyja kiválasztani a BMP kiterjesztést, csak éppen nem tudom használni, lehet valami beállítás felett elsiklottam?A kérdés tehát, be lehet neki állítani egy tetszőleges bmp képet inputnak (és ha igen hogyan) vagy mindenképpen a saját kamerájától származó kép kell neki?
üdv
Pifu -
KB.Pifu
tag
sziasztok!
Itthon, "játékból" írogatok programkódokat és szeretnék valami "látványos" szimulációt készíteni, WinCC Flexible-lel!
Amit kitaláltam, ami az alap, hogy egy 6 állomásos körasztal lesz animálva, zöld, piros (OK, NG) termékekkel.
Ezzel nem is volna gond, egy merker el tudja dönteni
De hogy kellene megcsinálni, hogy az üres jig, mondjuk szürke legyen? mert ez ugye már 3 állapot és két merker bit kell hozzá.WinCC-ben ez hogy nézne ki? Egymás fölé kellene tenni más layerben a kettőt?
Amit akarok csinálni, mondjuk megy a körasztal, lenne kijáratás, kézi üzemmód (egy állomáson), meg ami szerintem jó ötlet a "véletlenszám" generátoromat tudnám használni,selejtgenerálásra, stb stb.
Egyrészt mert érdekel a dolog, másrészt szeretnék már valami bemutatható dolgot is elvinni állásinterjúra.
üdv
Pifu -
KB.Pifu
tag
szia!
Én a mai napig nem futottam bele hasonló hibába, eddig csak különálló egymástól gyakorlatilag független blokkokat írogattam.
Eddig azt hittem, elég ha a blokkban adok értéket mondjuk M1.0 -nak és azt a következő blokkban lekérdezem és minden menni fog szépen...
De legalább ma is tanultam valami!
-
KB.Pifu
tag
Szia!
Most gondolkodtam, ha az egyik FC-ben írok egy merker bitet, amit egy másikban csak olvasok azt is in-out-ba kell tenni?
És a másik kérdés, attól félek hogy nem sikerült maradéktalanul megérteni a program lefutásának a ciklikusságát.
Amit látsz azzal szeretném előállítani trigger jelet, ami lépteti a körasztalt a szimuláláshoz (itt csak a bytokat pakolom, ami a termékek színét jelenti a sorszámának megfelelő jigben.).A T1-nek egyetlen ciklus erejéig 1 értékűnek kellene lennie és a pozitív élfigyeléssel indítani az adatok léptetését a 3-as Network-ben.
De ehelyett nem történik semmi. Valamit nagyon félreértettem? Vagy ez a PLCSim-nek egy elvi határa lenne?[ Szerkesztve ]
-
KB.Pifu
tag
szia!
Köszönöm a timer-re vonatkozó tanácsot, már látom a lényegét.
De még kérdezek, mert nem világos minden.
Az hogy a merker adatterület globális az világos, de akkor minden esetben mikor két különböző blockban akarom ugyanazt a merkert használni ,definiálnom kell az In, Out, In-out részben?Csak mert én azt hittem mivel globális ezért ezzel nem kell foglalkozni.
-
KB.Pifu
tag
szia!
Köszönöm a részletes választ, idővel majd ha olyan munkám lesz én is csinálok magamnak univerzálisan használható blokkokat.
De az egész abból indult ki, hogy az itthoni programocskámban nem ment át az egyik FC-ből a másikba a merkerbit állapota és nem találtam rá rendes indokot, deklarálás után működött rendesen.
Lehetséges, hogy a PLCSim hibázik néha? Vagy mindenképpen códban kell keresni a hibát?
-
KB.Pifu
tag
Sziasztok!
Mivel még sosem programoztam gépet, csak tanulok de szeretnék kérdezni.
Végzett villamosmérnök vagyok, nagyjából ismerem a szabályokat (azért nagyjából mert az oktatásból ennyire futotta, azért kérdezek mert be akarom pótolni ami elmaradt)
A biztonságot szem előtt tartva, mik a kötelező szabályok amit nem szabad megszegni.Gondolok olyanra, hogy Vész-stop megnyomásakor a motortól nemcsak a vezérlést, hanem a feszültséget is el kell venni. Vagy a vészkapcsolók NC gombokkal vannak kiépítve stb.
hasonló dogokat szeretnék tudni, gondolok én arra ,hogy a vész-kör sorosan van kiépítve és közvetlenül a plc vezérli, vagy mondjuk a biztonsági relé és csak az adja a jelet plc-nek.
Minden olyan fontos dolgot tudnom kellene ami a gépek programozásánál a biztonságot garantálja. Például addig nem indul a gép, míg van nyitott ajtó stb.
Nagyobb teljesítményű gépeknél kétkezes indítás van, azt kötelező biztonsági relével megoldani, vagy azt vezérelheti a plc?
-
KB.Pifu
tag
Sziasztok!
Köszönöm a segítőkészséget.
Szerintem a legfontosabb témát sikerült kiválasztanom, mert amíg a safety nincs a helyén addig semmi sincs.
Ez csak azért szomorú, mert elvégre végzett mérnök vagyok, de főiskola alatt még csak nem is esett szó a biztonsági reléről. De talán mentségemre szól, hogy azelőtt akarom bepótolni a hiányosságokat mielőtt még egyáltalán élesben kellene foglalkozni vele.Ezt szem előtt tartva, tudnátok pár olyan fontos dolgot mondani, ami mondjuk egy állásinterjún is megfelelően hangzik és még után is tudnék nézni. például a cégnél mikor unatkoztam a preventa datasheeteket nézegettem, szerintem ez elég hasznos időtöltés.
A helyzet az, hogy mindennél jobban szeretnék egy célgépépítő cégnél dolgozni, de bekerülni ilyen helyre nagyon nehéz, most karbantartásban dolgozom, ahol leginkább gépészeti kihívások fogadnak amire egyszerűen nem vagyok felkészülve. Pl múltkor két napig állt a gép mire sikerült bebizonyítani a hozzá értőnek, hogy a szerszám tized mm kopása miatt nem megfelelő a beültetés, mondjuk ezzel nincs semmi gond, leolvassuk a szerszám rajzáról méreteket és a tűrést és utánanézünk, de a bajok ott kezdődnek, hogy meg kell találni azt amiről feltételezzük, hogy elkopott.
Egy szó mint száz, napjában többször hallom, hogy tized mm és tűrés, ellenben a byte szót még senki nem vette a szájára.üdv
Pifu -
KB.Pifu
tag
Nem épp úgy tűnik, hogy újoncnak való szakma ez, de valahol el kell kezdeni.
Mondhatni úgy is, hogy sikerült kicsit rám ijeszteni
Ehhez képest az áramszolgáltatónál gyöngy életem volt, mikor 3-kor szépen elmentem haza az irodából... -
KB.Pifu
tag
válasz byte-by #4149 üzenetére
Üdv!
Manapság változnak az idők, mindent azonnal kell és nincs idő molyolni.
Mostanság járogatok állásinterjúkra, minden kérdés azt feszegeti , hogy programoztam-e már gépet.
Pályakezdőként is legyen minimum 3 év tapasztalat , nem is kapok munkát (legalábbis nem azokban a megyékben ahol én szeretnék)Sokan nem tudják, de az amit oktatnak az semmi, alapok, egyszerű sorrendi vezérlések maximum, ha eljutunk egyáltalán gép közelébe, anno nekem (5 éve) valami 27 éves matuzsálem Spartan3 (talán ez volt) volt gyakorló PLC-m.
Kb a logika az amit lehetett a kis relével húzogatott ledeken nézegetni.
Ez meg beugrónak nagyon kevés, gyakorlatilag semmi. Most itthon játszogatok az S7-tel és a PLCSim-mel, sajnos ez a maximum amit tehetek. -
KB.Pifu
tag
válasz sörösló #4152 üzenetére
szia!
Jó hogy emlékeztettél erre, el is felejtettem, hogy bizonyos létezik az a bizonyos fékellenállás és ráadásul jó okkal.
Lehet én túlreagálom a dolgot, de például nem szívesen mennék pályakezdőként olyan üzembe, ahol nagyobb a felelősség és emberélet múlhat rajta, nekem egyelőre a pneumatikus összeszerelő gépek és robotcellák a megcélzott kategória.
Ezért hoztam fel a safety témát, mert méltánytalanul elhanyagolt szerintem. Bármelyik cég túléli ha valaki véletlen összetör egy-két 150 ezer forintos munkahengert, de csak egyszer törjön el valakinek a keze vagy sérüljön meg és azt évekig emlegetni fogják.
-
KB.Pifu
tag
Szia Szirty!
Olvasva a weboldalad lopkodom az ötleteket a kis szimulátoromhoz.
Pl byte-ban tárolom a "jig-ek" ben található termék azonosítóját (ok, ng, üres, emlékezz vissza a HMI ra feltett kérdésemre, hogy ugyanaz az alakzat hogy vehet fel kettőnél több színt).Szóval amit ellestem az a byte ladderban történő összehasonlítása Integerrel a Move utasítás segítségével.
Az én értékeim csak 1, 2, 3 , szóval a megengedett tartományon belül találhatók, a kérdésem az lenne, hogyha a bytot-t integer típusú lokális változóba "mozgatjuk" akkor az integer nulladik sorszámú byte-ja mindig 0-val lesz feltöltve? -
KB.Pifu
tag
Sziasztok!
Utolsó állásinterjún előjött a Festo PLC-s téma. Látni még nem láttam, érdemes lenne vele is foglalkozni kicsit, vagy az már nagyon specifikus?
-
KB.Pifu
tag
Szia!
Ez így igaz, csak ha nagyon új akkor sokat kell vele foglalkoznom, nekem meg limitált az erre fordítható energiám, úgymond inkább a biztosra kell hogy menjek és az elterjedteket nézegetni.
Meg egy másik téma is feljött ami fontos.
A szervómotorok, azt már tényleg csak élesben lehet megtanulni, nem?
Most teszem azt tisztában vagyok a nyomatékok, forgásmennyiségek fizikai vonzatával stb, még talán egy pidet is össze tudnék rakni sőt, ha mindent tudok akkor még a Wissim-ben is rajzolok egy jelleggörbét, de ezek még vagy már nagyon elméletiek. Év elején nagyon sok energiát fektettem a differenciális egyenletekbe és az átviteli függvényekbe. Bánni nem bánom, csak éppen hasznát még nem látni. -
KB.Pifu
tag
Szia!
Valahogy jobban bele kell merülnöm, mert egy elég érdekes problémába futott bele a cég.
heteken át a stancoló (műanyag lapokból üti ki megfelelő helyen a lyukat a különböző típusú csatiknak) szerszámot állandóan ki kellett szedni és babrálni.
A stancolt anyagot egy szervó hajtás pakolta be és vette ki.amióta meghalt a Lexium motor (béke poraira) és új lett berakva, azóta egyszer nem láttam kivéve a szerszámot. Ha ezt úgymond előre lehet látni és bebizonyítani, hogy bizony nem tized vagy századmm-re a végálláson áll meg (amit nem érzékel, csak az inkrementális jeladóra hagyatkozik) akkor nagyon súlyoz ezer eurókat lehetett volna spórolni.
Meg amúgy is érdekel a téma, szerintem a hajtástechnika a sava borsa a villamos szakmának
Úgyhogy ha lemegy az audit miatti fejetlenség a cégnél újra beleásom magam a körmozgás és a villamos motorok rejtelmeibeüdv Pifu
-
KB.Pifu
tag
Sziasztok!
Nem örülök neki, de kénytelen vagyok füllenteni álláskeresés közben (még csak a kísérőlevélnél tartok) a szervó paraméterezési tudásomról.
Simodrive-l kapcsolatos ötleteket várnék, szívesen letölteném valahonnan a SimoCom-t is tanulmányozáscéljából, de sehol semmi. Pedig nemcsak füllenteni akarok, tényleg utána is nézni, de mire visszacsörögnek addig eltelik két hét szóval van időm.
Az a baj, hogy a program leírása nagyon száraz, nem látom benne , hogy minek tudnék valóban utánajárni.
Elég sokat foglalkoztam a hajtástechnikával, tehát a trapézgörbe, a nyomaték, gyorsulás stb.. és fizikai leírásuk mind megvan, de ez még mindig kevés, ha egy specifikált rendszert akarok megismerni, tehát mondhatjuk hogy az alapok megvannak.
Bármilyen Simodrive-l kapcsolatos ötletet, linket szívesen várok
Köszönettel
Pifu -
KB.Pifu
tag
sziasztok!
Tovább játszok a szimulátorral, jelenleg szeretnék egy folyamatosan növekvő/csökkenő értéket előállítani az idő függvényében. A szimulálás célja, írni egy olyan kódot, amivel a hiszterézissel tudok barátkozni. Mondjuk 120-nál kapcsol be emelkedő érték esetén, de csak 108-nál kapcsol ki a bit mikor csökken az érték.
a tervem az volt, hogy az OB38-al hívom a funkció blokkot és a program minden egyes lefutásánál növelek egy integert ( vagy csökkentek ugye ha elérte a maxot, ez az érték a tervek szerint kb 3000-ig futna, mintha egy analóg jel lenne és ezt osztom, hogy egy adott skálázásba beleférjen ami 0-200)
A gondom, hogy a lefutásonként növelt érték minden alkalommal mikor eléri a 256-t nullázódik. Kipróbáltam, hogy esetleg a kódban van-e a hiba, de az ob35 (amiben CSAK az integert növelem minden alkalommal) is újrakezdi a számlálást ha eléri a 256-t.
valami felett elsiklottam valószínű
Azt olvastam, hogy gondok lehetnek, egy Cyclic_Interrupt blokkal, ha önidejénél nagyobb idejű funkcióblokkot hívunk meg, szerintem ezzel nincs probléma, de meg szeretném nézni, hol látom, hogy egyes blokkoknak mennyi a lefutási ideje?
Köszi előre is
-
KB.Pifu
tag
Szia!
Gyanakvás helytálló, szép kerek szám, legalábbis számunkra.
Azt hogy néha stop-ba megy a CPU még nem is feszegettem.OB38 hívja Fc8-at, Ob35 FC9-et, mindkettő helytelenül működik és mindkettő a DB8-at használja.
Először memóriaszavakat használtam, de az sem volt jóa kód messze nincs még kész, valószínű akad benne bug elég.
Ob35
CALL FC 9
inout:=DB8.DBW10FC9 (=ez csak a teszt, ami szintén 255-ig megy, aztán újrakezdi)
inout változó, egy integer az In_Out paraméterek közöttL #inout
INC 1
T #inoutOB38
CALL FC8
bit :=DB8.DBX6.0
Pre_state:=DB8.DBW4 //integer az In_Out paraméterek között
Inc_val :=DB8.DBW0 //integer az In_Out paraméterek között
Calc_val :=DB8.DBW2 // integer az In_Out paraméterek közöttFC8 ahol a csodának kellene történnie
VAR_OUTPUT
bit : BOOL ;
END_VAR
VAR_IN_OUT
Pre_state : INT ;
Inc_val : INT ;
Calc_val : INT ;
END_VAR
BEGIN
NETWORK
TITLE =
//
//L #Inc_val; //határértékfigyelés
L 0;
>=I ;
JCN end;
L #Inc_val;
L 2000;
<=I ;
JCN end;
L #Calc_val; //előző állapot mntése, hogy eldönthető legyen, hogy csökken-e vagy nő
T #Pre_state;
A "hist_up"; // i1.0
JCN end2;
L #Inc_val;
INC 1;
T #Inc_val;
end2: A "hist down"; // i1.1
JCN end3;
L #Inc_val;
DEC 1;
T #Inc_val;
end3: L 10;
/I ; // ezt lehet real-ben fogom ha eljutok odáig
T #Calc_val;
L #Calc_val;
L 120;
>I ;
JCN end1;
SET ;
= #bit;
end1: L #Calc_val; //azt már látom, hogy ez mivel integeren számolok a legtöbbször meg fog egyezni,
L #Pre_state;
<I ;
JCN end;
L #Calc_val;
L 108;
<I ;
CLR ;
= #bit;
end: BE ;ez pedig az adatmegjelenítésre használt DB8
DATA_BLOCK DB 8
TITLE =
VERSION : 0.1
STRUCT
Inc_Val : INT ; //Temporary placeholder variable
Calc_Val : INT ;
pre_state : INT ;
bit : BOOL ;
dummy : INT ;
Obb35 : INT ;
END_STRUCT ;
BEGIN
Inc_Val := 0;
Calc_Val := 0;
pre_state := 0;
bit := FALSE;
dummy := 0;
Obb35 := 0;
END_DATA_BLOCKEzekkel csak azt szerettem volna megmutatni, hogy sehol sincs byte, és mivel nem memóriaszót használok, még a keresztbecímzés sem fordul elő
Remélem elég olvashatóra sikerült ez a kis bejegyzésÜdv
Pifu -
KB.Pifu
tag
szia!
Időközben kipróbáltam egy másik projektben, ott úgy működött ahogy elvárható tőle.
Az amit írtam, ahol nem működött, az egy elég vegyes projekt, azért hogy minden szépen egy helyen legyen ne kelljen ugrálni a különböző projektek között, meg így legalább van értelme a szimbólumtáblának és a "go to location" használatának.
De a kérdés még mindig nyitott és nem értem hogy miért csak 256-ig számol, mikor a többi FC nincsen aktiválva a PLCSIM bemenetein, de ha aktiválva lennének elvileg akkor sem lenne keresztbecímzés.
Tudom, hogy valahol én rontottam el, de ez nagyon nem egyértelmű.
-
KB.Pifu
tag
Szia Szirty!
ezt írtad nekem régebben
"- Készíts olyan blokkot, ami analóg bemenetről érkező (0-27648) értéket beállítható fizikai mennyiséggé skáláz. Pl. ha az analóg bemeneten egy 200 bar-os távadó van, akkor a 0-27648-at alakítsa 0-200 tartományra. Ilyesmire gyakran van szükség.
- Valósíts meg az előző blokkal (vagy azt egészítsd ki) olyan küszöb érték kapcsolót, aminek állítható hiszterézise van. Tehát beállítasz 114 bar nyomást, az legyen a hiszterézis tartomány fele. Ha a mért érték átlépi hiszterézis tartomány tetejét, akkor kapcsoljon be egy bitet, és csak akkor kapcsolja ki, ha a mért érték a hiszterézistartomány alja alá esik"a múltkori segítséged az INC parancsnál ennek a megvalósításának az első lépései.
Mivel nincs PLC-m nem tudok analóg bemenetet szimulálni csak tizedmásodpercenként változtatom az integer értékét.Nem foglalkoztam még élőben olyan folyamattal ami hiszteréziskapcsolót használt volna ezért nem minden tiszta nekem.
tehát tizedmásodpercenként (ob38) növelem az értéket vagy csökkentem, 1200-nál bekapcsol egy bitet 1080-nál pedig ki.
Első megoldásomban a bit resetelése előtt figyeltem, hogy tényleg csökkenő tendenciát mutat-e az integer. De szükséges ez? Mert 1200 felett mindig 1 a bit értéke, 1080 alatt pedig mindig 0.1. eset: szimulátor 0-ról indul fel 2000-ig aztán vissza, akkor OK
2. eset: mondjuk rögvest az érték 1195-ről indul, és csökken, akkor a bitnek 0 -nak kell lennie? Gondolok arra, hogy mivel fizikai folyamat aminek idő kell a megváltozásához, akár mondjuk át is léphette a küszöbértéket, csak akkor mi nem mértük.
Az ilyen hiszterézis kapcsolóra mondanál egy példát? A feladat alapján a nyomás figyelése, de azt az idő vagy hőmérséklet függvényében történik?
üdv
Pifu -
KB.Pifu
tag
szia!
Sokat lehetne mesélni, milyen előtanulmányokat nem vesznek figyelembe a felsőoktatásban, vagy általánosságban mennyit tanítanak.
IEC-60617 szabványismerettel hogy állsz? Nekünk nem nagyon regéltek róla, mivel ez egy szabvány nem is forog közkézen (bár tudom, honnan kell megszerezni).
De hogy tiszta legyen, és még tényleg hasznos is
Symbol Preview Guide --> IEC-60617 Symbols
[link]ezeket nézegesd meg, tuti lesz olyan amit még nem láttál
-
KB.Pifu
tag
Szia!
Még valami
pdf-saját oldalszámozásában a 10 oldaltól olvasd el figyelmesen (adobe-ban 14.)
ne ess bele abba a hibába, hogy az NC kontaktust a létrában automatikusan NC (fordított) lekérdezéssel [ --|\|-- ] használod. Nagyon sok helyen előforduló hiba oktató anyagokban is!
Többieket is kérdezném, mi a véleményetek erről a jelenségről, vagy most én vagyok a hülye mert mindenhol az NC érintkezős stop gombot fordított lekérdezéssel használják a létrában?
oktatási anyagokban az öntartó kapcsolás NC érintkezőjét elég gyakran fordított lekérdezéssel mutatják be.Rossz Példa
[link][ Szerkesztve ]
Új hozzászólás Aktív témák
- Borotva, szakállnyíró, szakállvágó topic
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Kínai, és egyéb olcsó órák topikja
- DIGI internet
- Mibe tegyem a megtakarításaimat?
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Milyen légkondit a lakásba?
- Gaming notebook topik
- Stellar Blade
- Popcorn Hour topik
- További aktív témák...