- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Atomenergiával dübörögnek tovább az Amazon adatközpontok, SMR-ek is jöhetnek
- Macron betiltatná az EU-ban a közösségi médiát a 15 év alattiaknak
- Az NVIDIA ipari AI-felhőt épít a németeknek, együtt az OpenAI és a Google
- Két új Ryzen közül választhatnak a kézikonzolok
Új hozzászólás Aktív témák
-
DasBoot
aktív tag
Már ezt is megtettem, de gy púpos gondit sem találtam. Feszültségeket próbáltam vizsgálni, de nem tudom, hogy mit kellene mérjek. Próbáltam valami service Műmanual-t keresni, de még az AB oldalon sincsen. Nyilván ez nem igazán publikus. Ennél többet Én sem tudok tenni. Amúgy tényleg csak úgy, egyik pillanatrólm, a másikra megállt a PLC.
-
Tanis_G
újonc
Mégis sikerült megoldanom!
A FESTO CPX-FB36 fejegység a Ethernet/IP és Modbus TCP protokolt támogatja.
Való igaz, hogy nem SIEMENS PLC-hez találták ki, de...
Modbus TCP protokollal sikerült müködtetnem a FESTO szelepszigetet.
Ethernet/IP-val csak Gateway-en keresztül tudtam volna csak megoldani elvileg.
Az igazsághoz annyi még hozzátartozik, hogy CPU-t kellett cserélnem (volt másik a polcon), de FESTO egységböl csak ez volt...Nem a legszebb megoldás, de a sehogyhoz képest azért szerintem nem is annyira rossz.
-
joci9
tag
Szasza!
Bő óradíjjal és óraszámmal mondok kissé drágábbat vagy csak egy jó nagy számot. De ez tartalmazza a gondozást egy darabig, a rugalmasságot, a jó minőséget. és az esetleges plusz munkát is, ami közben derül ki. Így a végén mindenki boldog, és nem kell utólag kérni (az szerintem rosszul veszi ki magát). Általában a vállalkozónak kell kitalálni a feladat jó részét. Ha meg ügyes voltam többet nyerek :-)
ü
J -
Szirty
őstag
"Az első mondatod nem teljesen igaz, mert ott az M-es terület! "
Sőt ott az I terület is. Meg a Q, No meg a PI, a PQ...
Igazából csak definíció kérdése és nincs éles határ sem, mert igaz hogy a DB-kre nem lehet hivatkozni amíg azt létre nem hoztuk, de maga a memória a HW-ben ott van azért.
No meg az M-es (és többi) területre hivatkozás is úgy megy hogy be kell írni a symbol táblába (kvázi deklarálni kell, csak másképpen). -
crucified
tag
Szervusz, adott egy tüzelési rendszer (ha minden igaz 4 kép plusz a forráskép mellékelve). Amennyiben nem mentek át a fileok elküldöm egy email címre ha gondolod. Balról és jobbról felváltva történik a tüzelés. Balról 21 percig ég a tüzelőanyag, jobbról 19 percig. Az okot ne kérdezd.
A running time alatt látható az eltelt idő, alul a set running time-nál lehet beállítani a 21 illetve a 19 percet. Eddig csak egy helyen lehetett ezt beállítani, közben kiegészítettem (pirossal) a jobb oldalra is, így a kezelőnek nincs szüksége minden tüzelésváltásnál módosítani azt. A running time és a set time tulajdonságait is kimásoltam (ARRAYREG....). A jobb oldali tüzeléshez kerestem egy szabad ARRAYREG-et (256). Gondolom valahol a programban ha az eltelt idő eléri a megadott időt, akkor vált tüzelést. Sosem foglalkoztam Proficy-vel, ezért kérem a segítséget, hol tudom ezt átírni, mire kell vigyáznom, stb.
Nagyon köszönöm előre is.
üdv.
-
tibi-d
tag
-
Szirty
őstag
"Meg lassan el kellene már felejteni az abszolút címzést..."
Szerintem mindenki felejtsen úgy, ahogy akar.
Az abszolút címzésnek van sok előnye és vannak hátrányai. A szimbolikus címzésnek pedig vannak előnyei és hátrányai. :-)
(minél jobban kavarjuk a xart, annál büdösebb lesz) -
TotoThomas
csendes tag
-
TotoThomas
csendes tag
A start value alapból nulla. Ez lehetne más érték, de nekem ez sajnos nem fix.
A kijelzőtől jövő értéket kellen megtartani.
Tehát ha beírom hogy 100, akkor a következő indulásnál is 100.-nak kellene lennie. Ezzel csak az a baj, hogy amint a kommunikáció elkezdődik a kijelzővel, a kijelző szépen nullát küld.
Azon gondolkodom most, hogy hogyan tudom megoldani azt, hogy első induláskor visszaküldje a mentett értéket. -
moseras
tag
Amiket láttam eddig tartályt, azokban több helyen volt mérőhüvelynek hely.
Hol célszerű mérni ?
HMV esetén általában felülről van elvétel, így ott felül.
Napkollektoros rendszer esetén az ajánlás szerint alul.
Egyéb esetben pedig ott, ahol a kivétel történik (ha több helyen is van kivétel, akkor szerintem a legalsó kivételi pont környékén).Csövön történő mérés:
Amikor a csőben nincs áramlás, akkor nem tudom, hogy mennyire lesz pontos.
Szerintem inkább a köpenyen mérjél, ha más lehetőség nincs.
-
KLR
csendes tag
Szia.
Nekem van működő VD 6.2, HMI STO/STU -hoz ingyenes. Alapvetően nem sok driver van benne, valószínüleg nem céljuk, hogy nagyon mással kombinálják. Ami van: Schneider komplett, Omron ( Sysmac, Sysmaclink, FINS), Siemens (PPI/MPI), jó pár Mitsubishi, AB (DF1, DH485, Eth/IP) stb.
Ha regisztrált VD példányod van, a Technical Support-on keresztül kaphatsz még pár ismertebb gyártóhoz drivert, mint Upgrade pack.
Többször használtam már ezeket a paneleket, mert olcsók, és mégis brand. A driver kérdést úgy oldottam meg, hogy majd minden PLC, frekiváltó, stb, alapból ismeri a Modbus-t.
Mihez szeretnél csatlakozni?
-
Achilles83
csendes tag
Kisebb programokat tudok írni, csak az utasításkészletéről egy kicsit többet megtudni jó lenne.A súgója eléggé hiányos.Mivel én Omronos vagyok úgy vettem észre hogy Fanuc, Omron eléggé hasonlítanak egymásra gondolom mert mindkettő Japán egyforma a gondolkodásuk.Nálunk inkább 16i-s től van 31i-s vezérlőig.
-
byte-by
tag
halo!
egy startup OB meghívásával esetleg nem megoldható move utasítással bemásolni a kritikus regiszterekbe az adatokat?
ezeket az OB1 végén valamilyen blokkban el lehetne menteni retain memóriákba amiket máshol nem írsz , így mindíg a legutolsó másolódna be be újraindításkor.byte
-
Szirty
őstag
Helló!
Ha SF van, akkor van hiba is szerintem.
A diag buffer egyébként sem lehet üres, mert minimum az benne kell hogy legyen, amikor a CPU elindult (hacsak nem törli a program).Ha van lehetőség törölj minden hibakezelő OB-t a CPU-ból az OB1 első sorába meg tegyél egy BE-t
Nyisd meg online-ban a HW configot. Az eszközöknek van saját diag bufferük, nézd meg azokat is.
Sok DP eszköznél lehet állítani a diagnosztikát hogy mi történjen amikor... Lehet hogy ez van tiltva.De ha maga az eszköz nem is szól (nem okoz interruptot) SFC hívásokkal akkor is le lehet kérdezgetni tőlük hogy érzik magukat. Én ebbe az irányba nézelődnék...
-
Szirty
őstag
Helló!
Használj másik skálázó blokkot. Vagy írj egyet.
Vagy itt van egy: FC109FUNCTION FC 109 : VOID
TITLE =
//Skálázás
//Az #InMin-#InMax tartományt #OutMin-#OutMax tartományra skálázza
//
//Out=((In-InMin)*((OutMax-OutMin)/(InMax-InMin)))+OutMin
//InRng=InMax-InMin
//OutRng=OutMax-OutMin
//R=OutRng/InRng
//Out=((In-InMin)*R)+OutMin
AUTHOR : Szirty
VERSION : 0.1
VAR_INPUT
In : INT ; //Skálázandó érték
InMin : INT ; //Bemenő tartomány minimuma
InMax : INT ; //Bemenő tartomány maximuma
OutMin : REAL ; //Kimenő tartomány minimuma
OutMax : REAL ; //Kimenő tartomány mximuma
END_VAR
VAR_OUTPUT
Out : REAL ; //Skálázott érték
END_VAR
VAR_TEMP
InRng : REAL ; //Bementi tartomány
R : REAL ; //Szorzó részeredmény
END_VAR
BEGIN
NETWORK
TITLE =
//
//
//
//InRng=InMax-InMin
L #InMin;
ITD ;
DTR ;
L #InMax;
ITD ;
DTR ;
-R ;
T #InRng;
//OutRng=OutMax-OutMin
L #OutMin;
L #OutMax;
-R ;
//R=OutRng/InRng
L #InRng;
/R ;
T #R;
L #In;
L #InMin;
-I ;
ITD ;
DTR ;
L #R;
*R ;
L #OutMin;
+R ;
T #Out;
END_FUNCTION -
byte-by
tag
halo !
a tia portal-nál is van online edit.
rendszeresen használok tia-t.online monitorozok, majd ledobok egy merkert , rátöltöm és visszaáll online monitor módba, az új kiegészítéssel.a megállapítás a más plc online szerkesztési tulajdonságairól sem teljesen ilyen egyszerű ahogy írtad.
az omronnál run-ból , monitor módba kell kapcsolni, amíg ezt nem teszed az "online edit" nem aktív, ráadásul a memóriákat csak monitor módban tudod le vagy feltölteni, vagy editálni.
az AB-nél (500 -as serial) egy külön futó networköt hoz létre a módosítandó alatt , és legalább kétszer rákérdez "biztos, hogy ezt akarod?"
mondjuk ez azért jó , mert látod az eredetit és a változtatott közti különbséget.a mitsubishi-nél (FX3G) külön vany reading és writing online mód.értelem szerűen csak író monitor módban lehet editálni a programot. érdekesség, hogy a D terület módosítható reading monitor módban is.(pl. d300-ba 0-át akarsz írni. ez is 16 bites így a teljes szó nulla lesz. ( hacsak nincs lefagyva a rosszult megírt program, mint nálunk,néhány osztrák fostalicskánál.)
pont a tia portal működi úgy , (legalább is nálunk) hogy online monitorozok, ledobok egy zárókontaktust és azonnal offline-ra vált. feltöltöm majd a változtatásokkal együtt újra online monitorra vált.
az undo tényleg nem megy bizonyos körülmények között, de pl. ez engem nem zavar. MINDÍG van elmentett futó programom.
az, hogy online vagy nem jelenti azt, hogy monitorozol. vagyis kapcsolódhatsz a plc-re , megnyithatsz akár 20 fc-t is, de ha valamelyik komponense a plc-nek online módban van, akkor nincs undo. pl. fc 10 online módban van, de épp fc23-at vizsgálgatok ami nincs online módban, akkor ne mlesz undo.
van "go online" és van "go offline".
nyomj go offline-t , akkor minden kacsolódó blokkot levesz a hálózatról és akkor lehet, hogy lesz undo. olyan, mintha nem kapcsolódnál.persze ha már nyomtál valamikor Save projekt-et , akkor biztos nem lesz.az ugyan valóban némileg zavaró, ha változtatsz majd azonnal kitörlöd, és online mész , akkor különbséget jelez. valójában nem is különbséget jelez, hanem arra utal, hogy belenyúltak a programba, és újra rá kell tölteni.
akkor minden bezöldül.ezektől eltekintve a tia DB kezelése szerintem jó, sima TAG alapú , a típusokat akkor változtatod amikor akarod, az OB-k létrehozása , értelmezése is egyszerű.
összekötöttem két 1500-as plc-t és két KTP1000-es hmi-t a HW configban PN /ETN csatlakozással, fizikailag pedig egy moxa switch-en keresztül, automatikusan kiosztotta a címeket , átírtam az eszközökben , rátöltöttem és működik.ez is jó.
byte
-
Szirty
őstag
Helló rsf!
"A Siemensnél nincs Online edit mint pl az omronnál vagy az AB-nél."
Nem tudok róla hogy ne lenne, hiszen használom ezt a módot.
Bár ritkán. Csak olyankor, amikor az offline blokk nem azonos az online blokkal és nem akarom összehasonlítani vagy ide-oda töltögetni csak meg akarom nézni miért nem megy valami, akkor online nyitom meg.
Semmi gond nincs ezzel. Az undo meg éppen úgy működik ahogy az előző üzenetben leírtam. Igaz Step7-re vonatkozik, de megjegyzem, hogy az is SIEMENS :-)
TIA portállal nem próbáltam. Szerintem ha belenyúlsz akkor megváltozik a blokk time stamp-ja és onnantól kezdve különbözőnek tekinti.Ha lesz időm megnézem TIA-ban ezt hátha tudok neked segíteni (egyelőre ritkán TIA-zok).
De lehet hogy addig magadtól is rájössz... -
Szirty
őstag
Üdv!
"online-ban miért nem működik az undo??"
Most már megkérdezem: TIA portálra vonatkozik a kérdés?
Egyébként régi step7-ben nem lehet undozni ha a blokkot elmented. Amíg el nem mented, addig lehet.
Hha online blokk listából nyitott blokkot szerkesztesz, akkor a blokk PLC-be letöltése után nincs undo, mivel az a blokk elmentésével egyenértékű (de előtte van).Ha offline blokkot szerkesztesz, vagy offline blokkot online monitorozol és úgy kezdeményezed a szerkesztést, akkor letöltés után is van undo, mert az nem minősül a blokk mentésének (offline blokk mentése file-ba történik, nem a PLC-be). Ha azonban elmented, akkor ott sincs undo lehetőség.
(Merész dolog online blokkot szerkeszteni)Más:
Akartam írni a múltkor a P terület BLKMOV-olása kapcsán, hogy nem tudom mire kell ez neked és milyen P-ket akarsz másolni, de szerintem ha eltűnik egy P byte a másolt területről, akkor szerintem a BLKMOV hibát fog visszaadni és nem másol semmit (tehát ekkor azt sem ami megmaradt). -
Dezsi82
tag
Benne van a System Software for S7-300/400 System and Standard Functions Volume 1/2-ben is:
You use SFC 20 "BLKMOV" (block move) to
copy the contents of a memory area
(= source area) to another memory area (= destination area).
Permissible source areas are the following:
•Parts of data blocks
•Memory bits
•Process-image partition (part process image) for inputs
•Process-image partition (part process image) for outputs -
Szirty
őstag
Helló!
"A TIA Portal helpjében az s7300-as CPU-knál az Input paraméter: ANY I, Q, M, D, L, P"
A "System Software for S7-300/400 System and Standard Functions Volume 1/2 Reference Manual" szerint és a Simatic STEP7 V5.4 helpje szerint a BLKMOV (SFC20) SOURCE és DESTINATION paramétere a következő területekre mutathat: I, Q, M, D, L
P-re tehát nem."És az Any tipusnál is szerepel a P terület aminek a kódja a 80."
Természetes hogy szerepel, mert az ANY pointer eredendő feladata (létezésének oka) hogy minden memóriaterületet címezni lehessen vele és nem az, hogy minden ami ANY pointert használni képes tud minden memóriaterületet címezni! (ok/okozat felcserélés).
Ezért az hogy ha valami ANY-t használ, önmagában még nem garantálja hogy az ANY lehetőségeit kötelezően ki is tudja (vagy akarja) használni. -
-
Szirty
őstag
-
Szirty
őstag
Üdv rsf!
A DBk számát csökkentheted ha az IEC timereket egy FB-ből hívod és használod a multiple instance lehetőséget.
Akkor csak egyetlen DB-kell akárhány IEC timert használsz.
-
Szirty
őstag
Hali!
Én úgy szoktam megkerülni a hibát (workaround) hogy átmenetileg megadok egy általa helyesnek vélt típust és kimentem, majd bezárom a szerkesztőt.
Újra megnyitva megint átírom a hibás típusú változót jóra (mert ekkor derül ki, mint a videón is hogy még mindig hibás, nem íródott át). Megint elmentem és bezárom, harmadszor megnyitva már jó a típus és visszaírom a változót az utasításnál. -
Szirty
őstag
Hát van ilyen bug is...
Nyilván erre gondolsz... -
Szirty
őstag
Helló rsf!
"Temp változókat nem nagyon szoktam használni és most teljesen elvitte a gondolataimat, hogy az STL-ben van elrontva vmi. Ugyanis STL-ben totál kezdő vagyok ez az első "művem"."
Nem gond amíg baj nem lesz belőle, ezért érdemes kipróbálni amit lehet.
Legalább megjegyzed. Mit gonolsz én hogy tanultam meg ennyire a TEMP tulajdonságait, hogy ezt mindenkinek az orra alá tolom? :-) -
Szirty
őstag
Üdv!
"> FB1 NW11-en a #PLC_Msg_Count_Tmp -be mindig belekerül a 35 (Ha elötte az
> olvasás át van ugorva akkor is)
> FB1 NW13-on a #PLC_Msg_RCount_Tmp -be mindig belekerül a 416(Ha elötte az
> olvasás át van ugorva akkor is)"Az ökölszabályt be kell tartani! Mindig! Nincs kivétel!
1. Avagy a TEMP változók tartalmát nem szabad felhasználni az értékadás előtt a blokk lefutása során!
2. A TEMP változók tartalma minden alkalommal elveszettnek tekintendő, amikor a blokk lefutott!Ok.: Minden blokk ugyanazt a memóriaterületet használja a TEMP változók tárolására (Stack).
Volt már róla szó.Ha egy TEMP változót olvasol értékadás előtt, akkor az azelőtt lefutott blokk memória szemetét találod benne! Ha nem fut másik blokk vagy az nem használja azt az L címet, akkor ugyanaz van benne amit a blokk beleírt, de ez igen csalóka és rettentő nagy szívás oka lehet!
Hiába adtál te valamikor értéket az FB1-ben #PLC_Msg_Count_Tmp-nek, ahogy a blokk lefutott, huss, az értéknek annyi lesz, elvész. Amikor az FB2 megint fut, már szemét van benne!
Az #PLC_Msg_Count_Tmp az FB1-ben történetesen a 4-es lokális címen van:
Az FB2-ben a 4-es címet az S_ANY pointer 4. byte-ja foglalja el, ami a DB száma:
L #PC_DBNum // Source DB
T LW 4#PC_DBNum meg az FB2 inputja, aminek éppen 35-ös értéket adsz híváskor:
Az LW4 tartalma marad az LW4-ben amikor az FB2 lefut, legközelebb fut az FB1, ahol az LW4-re épp a #PLC_Msg_Count_Tmp változó kerül. Ezért amíg az FB1 nem írja (nem ad neki értéket) a 35 ott ül benne!
Soha, de SOHA nem szabad TEMP változó értékét felhasználni azelőtt, hogy értéket adtunk neki amikor a blokk lefut. Az előző futáskori értékadás itt nem számít. Ahogy a blokk kilép, le van futva, TEMP változó el van veszve!
Emiatt arra is nagyon kell figyelni, hogy ha egy TMP változó értékadása feltételtől függ (pl. elágazás van előtte) de az tartalmának a feldolgozása feltételtől független vagy más feltételtől függ, akkor az elágazás(ok) teljesülésétől fog függni a szívás, vagyis az hogy épp szemét van benne vagy hasznos érték!
Erre NAGYON oda kell figyelni! -
moseras
tag
Szia!
Annyira nem értek a Siemens-hez, de az nem lehet, hogy túlcímzed a pointert, és olyan helyre mutat, ami már nem a saját lokális változói, hanem mondjuk a mögötte lévő terület (ami mondjuk épp a másik blokk lokális változói) ?
Ha a 2 név különbözik, akkor jól működik ?
Imi.
-
Szirty
őstag
Üdv!
"Sok álláshirdetést is lehet látni amelyben villamosmérnököt keresnek PLC és Autocad ismeretekkel."
- És társalgás szintű nyelvismerettel.
- Jogosítvánnyal, saját autóval
- Gyakori külföldi távolléttel
- Több éves gyakorlati tapasztalattal
- Számítógép kezelési ismerettel
- Saját laptoppalAztán mehetsz európa minden országába gépsort beüzemelni :-)
-
Szirty
őstag
Helló rsf!
"Szerintem a BLKMOV-nak teljesen mindegy, hogy mi van a DB-ben."
Persze. Egészen addig, amíg nem 2120 byte-os DB-t akarsz 12 byte-osba másolni. Range error rulez!
Vagy 87 byte-ot másolsz egy másikba és ezzel félbevágsz egy stringet.
Igaz ez a BLKMOV-nak tényleg mindegy, aki a programot írja annak nem annyira:-) -
Szirty
őstag
Üdv!
"Ha azt szeretném, hogy a végrehajtás egy bit állapotától függjön akkor mit érdemes használni?"
Feltételes vezérlés átadó utasítást. Leggyakrabban RLO függő jump van ilyen helyen.
A compiler is azt csinálja, alacsony szintű nyelvben más lehetőség nem nagyon van.
Ha megnézed hogyan néz ki egy ilyen létra STL-ben, láthatod:Hopp egy kis hibajavítás a képhez: _002 címke helyett _001 van természetesen!
-
-
Szirty
őstag
Szevasz!
Nem tudom miért van.
Én mindig igyekszem nagyon odafigyelni azokra a program részletekre amikkel másoknak példálózok. Peresze én is félreérthetek dolgokat és követhetek el hibákat.
De azt a programrészt is kipróbáltam amit neked javasoltam. Nekem működött. Kimásolta a megadott részt iDB-ből shared DB-be elsőre.Nem tudom nálad mi lehet a gond. De ha elküldesz egy olyan programrészletet amivel a probléma egyértelműen reprodukálható, akkor kiderítjük!
-
Szirty
őstag
Üdv!
Azért nem működik, mert az IEC string műveleteknek a kimenete STRING típusú. vagyis nem ANY, nem adhatsz meg ott string karaktereire mutató pointert. A string változó nevét add meg! Ahogy a példában amit küldtem.
Megint megkérdezem, hogy az miért nem jó amit írtam? Átírom ha kell, de ha nem tudom mi bajod vele, akkor nem tudom mit írjak át hogyan.Mellesleg szerintem egyszerűbb lenne ha olyan FC blokkot írnál, amelyik előállít egy megadott számú "A" betűt tartalmazó stringet ahelyett hogy másolgatod.
Bár a te módszered is eredményes, de én így csinálnám. -
Szirty
őstag
Helló!
Akkor ott az FC26 amit írtam az előbb. Megadott string megadott helyéről vesz ki megadott hosszú karakterláncot. Amit leírtál annak pont megfelel.
Bár az még mindig nem világos, hogy az az iDB amiből a stringet olvasod ahoz az FB blokkhoz tartozik amiből olvasod, vagy másikhoz?
Meg azt sem értem teljesen, hogy ha feltöltöd a forrás stringet nullákkal (nem tudom nulla alatt mit kell érteni, üres stringet, vagy "0" karaktereket) akkor abból miért kell másolni, hisz pontosan lehet tudni hogy nullákkal van tele. :-)
-
Szirty
őstag
Hali!
Használd az IEC FC26 MID beépített blokkot: FC26 (Libraries/stdlibs/iec/FC26 MID IEC).
Itt a DB1.DSTSTR egy string egy shared DB-ben.
Kivesz az instance DB-ben lévő #EgyString nevű stringből a 4. karaktertől kezdve 2 karaktert és DB1.DSTSTR stringbe teszi.Bár nem volt világos a kérdésedben, hogy az iDB-ből abból azon FB blokkon belül akarsz string részt kivenni amelyik a stringet tartalmazó iDB a "tulajdonosa", avyg kívülről, teljesen másik FC/FB blokkban fut ez a manipuláció? Nem mindegy.
-
Szirty
őstag
Üdv!
A hívásnál egymás után raktad őket és a másodikat nem engedte lefutni az első?
Tehát az egyik hívás ENO-ja után jött a másik EN-je így?:Erre a szabály (szerintem) a következő:
Ha a blokk nem ad vissza semmilyen logikai eredményt illetve ha ad akkor azt nem az ENO "kimeneten" teszi, hanem OUT vagy INOUT paraméterben, vagy a blokkon belül címzett biten, akkor a blokk ENO kimenetét a blokkon belül 1-be kell beállítani közvetlenül kilépés előtt.
Erre a legegyszerűbb a
SET
SAVEutasítások alkalmazása.
-
KLR
csendes tag
Sziasztok. A problémám pont a lokális változók témába vág, ezért írom ennek a folytatásába.
Egy kis előtörténet: eddig nem sok szerencsém volt Siemens-hez, de mivel a következő munkát ezzel kell megoldani, beszereztem Step7 Lite + PLCSim, meg az ST-Pro1 anyagát. Neki is fogtam a tanulgatásnak, heti/napi 1-2 órát (amennyi időt tudok szánni rá). Az FC-ket lokális változókkal deklaráltam, az OB1-ben meghíváskor rendeltem hozzá fizikai címeket. Minden működött is szépen, addig még nem írtam még egy FC-ét. Ezután állandóan elejtette az egyik blokban az SR flip-flop értékét. Néztem keresztbe is, meg hosszába, minden OK volt, semmi nem aktiválja az R ágat, de mégis... Pár nap olvasgatás után (fórum, Szirty oldala, stb), megtaláltam a hiba okát. A két FC ugyanazt a temp 0.0 cimet használja, és a második FC törli az értéket. Hogy lehet kivédeni az ilyen hibákat?A lokális változók címét nem tudom megváltoztatni, automatikusan rendeli a program a változókhoz.
-
byte-by
tag
halo !
a könyvtárak létrehozása jó dolog. ha megengedtek némi kevésbé profi hozzá szólást.
magam is kezdem összerakni a saját blokkjaimat siemens-ben. omron után azért más.
a TIA Portal- nal egyébként látható és tapasztalható a változás, erősen húz az FBD és a LAD felé.
ebben egyébként segítséget is próbál nyújtani, a blokkokkal , utasításokkal.mi S7-1500 sorozatú vezérlőket használunk.
kell még fejleszteni a programon, ez nem gond.
jók a matematikai utasítások, a Compact PID is jó.
az AB CPT blokkja itt a CALCULATE funkció, itt nem Destiny van hanem a megszokott OUT. itt ebben írhatod meg a matematikai függvényeket.olyan gép gyártó aki komoly termelő gépsorokat szállított le, és eddig stl-ban írtak programokat, úgy tapasztaltam, hogy miután TIA Portal-ra váltottak de a vezérlő még S7-300 -as sorozatú, inkább FBD-ben írt programmal hozták az új sorokat. persze tele van paraméterezett FC blokkokkal. pár program blokk stl. legalább is a nálunk lévő új gépeket így programozták.
byte
-
Szirty
őstag
Helló rsf!
Létrában is lehet byte-okat kezelni minden probléma nélkül. Jól használható shift regiszter is van több fajta is.
SHR_I, SHR_DI, SHR_W, SHR_DW, SHL_DW, SHL_W, ROL_DW, ROR_DW. Ezek utasítások, de vannak beépített funbkciók is. Az WSR és az SRHB. Ezek nem felelnek meg?Alapból kb 250 funkcióblokk van. Ebben nincs benne a letölthető (pl. PID control) vagy HW eszköz mellé kapott (Pl. motion controller, stepper, terepi buszos eszközök kezelése) blokkok.
Persze hogy melyik milyen komplex és mit értesz pontosan komplex alatt azon biztosan lehetne vitatkozni.Elvárhatnánk hogy legyen palackozó funkció blokk. Jól jönne egy palackozó gép vezérlésében. :-)
Viccet félre téve én erre azt tudom mondani, hogy bármennyi blokk legyen is a könyvtárban, mindig olyan kell ami nincs benne, vagy ami van benne arról nem tudunk. Vagy tudunk, de nem pont úgy működik ahogy nekünk kell, vagy van ugyan olyan valami, de fogalmunk sincsen hogyan működik.
Minél komplexebb blokkokról beszélünk annak esélye, hogy így járunk exponenciálisan egyre nagyobb.
Ami nincs meg azt meg lehet írni. Én is ezt csinálom. Könyvtárat is csináltam amibe a saját blokkjaimat tartom és onnan veszem elő ha kell. Kb 90 funkció van benne de még mindig ott tartok hogy sokszor pont az nincs ami épp kellene. Megírom, beleteszem. Erről szól az a munka amit programozásnak hívnak. :-)A különböző gyártók eszközei eltérőek. Eltérő tudásúak, eltérő koncepciót követnek.
Engem omronnál bosszant konkrétan, hogy kevés időtag fajta van benne, az is mind on delay jellegű. Meg az, hogy a számtalan adattípusaival káoszba sodorja a programozást. Meg az, hogy a dátum típusú adatok kezelése körülményes. Meg az hogy kétféle indirekt címzés van, BCD és bináris (az újabbaknál indexelt, ami jó). Sorolhatnám még, de minek? Az Omron ilyen, hit vitát semmiképp nem szeretnék folytatni.Indirekt címzés nincs és adatkezelés nehézkes létrában ez tény.
Ennek szerintem az az oka, hogy a létradiagram nem arra való. Számítgatásokhoz alkalmasabb az STL vagy egy magasabb szintű szöveges nyelv (SCL pl).
Ha egy nem is olyan összetett számítást létrában csinálsz 4-5 oldal lesz tele négyzetekkel amik mellett feliratok vannak. STL-ben meg elfér egy képernyőn, könnyebben áttekinthető. Ugyanúgy, ahogy létrában meg a logikai hálózatokat könnyebb átlátni. Főleg amikor hibát keres az ember (monitorozza).Nem hiszem hogy érdemes lenne egyenruhaként létradiagramot húzni minden feladatra vagy épp mindent STL-ben csinálni.
-
Új hozzászólás Aktív témák
Hirdetés
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Google Pixel topik
- Honor 400 Pro - gép a képben
- Proxmox VE
- Személyesen Zuckerberg toborozza a szuperintelligenciát építő AI-csapatot
- OFF TOPIC 44 - Te mondd, hogy offtopic, a te hangod mélyebb!
- TCL LCD és LED TV-k
- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- Elektromos cigaretta 🔞
- Ingatlanos topic!
- További aktív témák...
- ÁRGARANCIA! Épített KomPhone Ryzen 7 5800X 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Bomba ár! Fujitsu LifeBook U758 - i5-8GEN I 8GB I 256GB SSD I HDMI I 15,6" FHD I W11 I Garancia!
- Bomba ár! Lenovo ThinkPad T590 - i5-8GEN I 16GB I 256GB SSD I 15,6" FHD Touch I Cam I W11 I Gari!
- Lenovo LEGION Pro 5 / Pro 7, Lenovo Yoga Pro gépek (RTX 4060 / 4070 / 4080 / 4090)
- REFURBISHED - DELL Thunderbolt Dock WD19TBS docking station (210-AZBV)
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged