Új hozzászólás Aktív témák
-
asdeerhun
újonc
válasz Tomika86 #8035 üzenetére
Update.
Megnéztem, nekem nincs USB lehetőség. COM1 és COM3 között tudok választani, egyikkel sem látja a PLC-t. Megnéztem 100%, hogy a COM1 porton van a dolog. (A COM3 az EasyVeep portja de már azzal is megpróbáltam hátha...) Viszont azóta olvastam olyat, hogy ha Win10-en, USB kábellel szeretnénk S7-200-at programozni akkor 99%, hogy nem fogja látni mert valami nem kompatibilis. Ebben mennyi igazság lehet? -
asdeerhun
újonc
válasz Tomika86 #8049 üzenetére
El sem hiszem, de megvan.
Egy ezer éves SP2(!)-es változatot adtak meg amit a Win10 hírből sem ismer.
Meg kellett keresnem az SP9-es változatot, leszedni az összes régebbit aztán be kellett kapcsolnom az MSMQ szolgáltatásokat és már látja is. 3 órát szenvedtem vele de csak meglett. -
n0rbert0
senior tag
válasz Tomika86 #8047 üzenetére
Szia.
Bal oldalt a fában az axis-nál vagy a hajtásnál a diagostics menüre kattintva nem ír részletesebb dolgot? Esetleg lent a Properties és az Info fülek mellet lévő Diagnostics-ra rákattintva?
Első blikkre talán valamilyen szoftveres limit van beállítva a target range-re vagy valamiért a pozíciót nem tudja lekövetni, bár a beállított sebesség és gyorsulás nem túl nagy. -
spkkill
tag
válasz Tomika86 #8070 üzenetére
Sajnos Siemens hajtásban még nem láttam hasonló megoldást. Pilz hajtással már igen ,egy préselési feladatot lát el a berendezés. Ott pozícionálja a szerszámot és egy bizonyos ponton átvált nyomaték szabályzásra. A motor áramot figyeli (PLC komparátor) ,ha túllép egy bizonyos értéket X másodpercig megáll és visszavált pozícionálás üzemmódra majd felveszi az alaphelyzetet.
-
n0rbert0
senior tag
válasz Tomika86 #8070 üzenetére
Szia,
Szerintem megoldható kétféleképpen.
Az egyikhez TIA V16 kell. Ez gondolom nálad nem opció, mert úgy rémlik V15 vagy 15.1-et használsz.
Ebben az esetben V-ASSISTANT programmal kell beállítani a hajtásban a paramétereket.
TIA-ban a hajtást konfigjába behúzod pl. standard telegram 3-at + supplementary telegram 750-et. Ezután a TO-t beállítod értelem szerűen, majd a V-ASSISTANT-ban a PROFINET fűlnél megadod, hogy milyen telegramokat állítottál be a TIA-ban. Ha más paramétert nem akarsz állítani, ne felejtsd el elmenteni a ROM-ba a beállításokat (Tools->Save parameters to ROM).
Ha ezekkel megvagy, akkor amit TIA-ban a supplementary telegram-ban megadtál IO-tartományt a kimeneteknél a 2 .word lesz pozitív irányban a forgatónyomaték limit a 3. word pedig negatív irányban. Az input wordon az aktuális forgatónyomaték értéket látod. (Azt hiszem ezek skálázott értékek -nominális forgató nyomaték és +nominális fogatónyomaték -> -4000H és +4000H, de erre most nem esküdnék meg.)
Ezután a mechanikai paraméterek ismeretében könnyen ki lehet számolni, hogy adott erő kifejtéséhez mekkora forgatónyomaték szükséges.
Ha nem adsz meg limitet akkor 0 érték van benne, tehát nem fog forogni a motorod.
Arra is ügyelj, hogy ha nyomaték korlátba ütközik a motor, akkor nagy valószínűséggel a pozíciószabályzó az nem fogja tudni tartani a megadott pályát/pozíciót, így ha eléri a megadott toleranciát, akkor hibával meg fog állni. Ezt le kell kezeled programból.(TIA V16-tól már nem kell a V-ASSISTANT ott annyival másabb beállítani.)
[ Szerkesztve ]
-
n0rbert0
senior tag
válasz Tomika86 #8074 üzenetére
Szia,
Nem az M_ADD1-nek kell adni értéket. Leírást nem találtam róla, de szerintem az azt csinálja, hogy amit a hajtás kiszámol nyomaték setpoint-ot ahhoz ezt az értéket hozzá adja. Magyarul ha nem csinálsz a motorral semmit, éppen áll, de be van kapcsolva, akkor a nyomatékot próbálja 0-án tartani, de ha te beleírsz ebbe az M_ADD1 értékbe, akkor az hozzáadódik a (hajtás által) kiszámolt nyomaték setpoint-hoz, ergo az nem 0 lesz. Így a motor forogni fog.
Mint említettem neked a 2. és 3. kimeneti word fog kelleni a 750-es telegramból. Az M_LIMIT_POS és M_LIMIT_NEG.
A 102-es telegramban meg valószínűleg azért nem tudsz semmit sem állítani, mert a TO "ráül" és írogatja a háttérben. Mivel gondolom észrevetted, hogy a Supplementary Telegram-ot nem tudod megadni a TO "wizzard"-ban, ezért ezt a TO nem írja, ez a felhasználói programra van bízva.
Azon nem kell csodálkozni, hogy 1200-ben nem működik minden, mert ez a TO-s dolog 1500-re lett fejlesztve és 1200-re csak rá van "erőszakolva".Próbáld meg azt amit fentebb írtam.
Így sebesség szabályzó üzemmódba lesz a motorod nyomaték korláttal.TIA V16-hoz természetesen nem jó a 15-ös licence.
[ Szerkesztve ]
-
n0rbert0
senior tag
válasz Tomika86 #8079 üzenetére
Szia,
V-ASSISTANT-ban a Select drive fülön a control mode az speed control?
A Set Profinet fül valahogy így néz ki?
A TIA-ban a hajtás konfigja valami hasonló?Megnéztem 0-4000H közé skálázza a nyomatékot, a referencia nyomatékot a P2003-as paraméterben találod (azt rendeli a 4000H-hoz).
V-ASSISTANT-ból eltudod indítani a motort?
[ Szerkesztve ]
-
n0rbert0
senior tag
válasz Tomika86 #8081 üzenetére
Igen az elég érdekes, hogy a telegram első word-je átmegy a 2. és a 3. meg nem.
Biztosan jó címet írsz? Nem írja más? Azért kérdezem, mert kezdek kifogyni az ötletekbőlIgen, nyilván ha a limitek 0-ák, akkor nem fog elindulni. Kezdésnek -4000H és 4000H írnék bele.
"A Traverse to fixed endstop-ot írták a másik telegramban az aktiválónak. Ez itt nem kell?"
Megpróbálhatod írni, de szerintem nem fog menni. Elvileg az a standard telegram 4. word-jének a 8.bitje (ami a fordított bájt sorrend miatt a PLC-ben az első bit lesz).[ Szerkesztve ]
-
n0rbert0
senior tag
válasz Tomika86 #8084 üzenetére
Akkor még a basic positioner traversing blokokkal lehet játszani. Az szerintem egy kicsit bonyolultabb, de elvileg ott van egy olyan funkció, hogy "FIXED_STOP". Ezt a "FIXED_STOP"-ot még nem használtam, arról nem tudok nyilatkozni, de egy ilyet találtam róla: [link]
A basic positioner-hez itt találsz lib-et, leírással együtt: [link]Nyilván ebben az esetben más telegramot kell használni és a TO kimarad a mókából.
[ Szerkesztve ]
-
n0rbert0
senior tag
válasz Tomika86 #8088 üzenetére
Szia,
A global lib-ek közé adja hozzá.Nekem az volt furcsa, hogy a 750-es telegram első szava (M_ADD1) átmegy a hajtásba a többi meg nem.
Neked a SINA_POS függvény kell, ha traversing blokkot akarsz használni. Ez úgy működik, hogy a hajtásban V-ASSISTANT segítségével előre definiálod a pályát és azt tudod "végrehajtatni".
A SINA_PARA, mint ahogy a neve is mutatja arra való hogy a hajtásból/hajtásba paramétereket olvassunk/írjunk. -
n0rbert0
senior tag
válasz Tomika86 #8093 üzenetére
Szia,
Akkor ezek szerint átmegy a nyomaték limit is?
Az első kép tanulsága szerint igen, mert a beállított nyomaték limit 2 és az aktuális is 2. Az már jó kérdés, hogy miért nem mutatja a V-ASSISTANT.
Egyébként csodálkozom, hogy ilyen kis limittel egyáltalán megmozdul a motor."Arról van leírás hogy ez pontosan mit csinál?"
Mire gondolsz a nyomaték limitekre? Gondolom a V90 operating manuáljában van valami írás róla. De a lényeg, hogy a beállított értékek alá/fölé nem engedi a motor forgatónyomatékát, úgy állítja a sebességet, áramot, stb...Fontos, amit korábban is említettem, hogy a nyomaték limitek amit telegramban küldesz azt skálázni kell! A skálázás meg úgy történik, hogy 0=0NM, -4000H=P2003-ban megadott érték * -1, 4000H=P2003.
A mechanika figyelembevételével állítsd a nyomaték limiteket, mert nyilván ha már pl. van egy áttétel a rendszerben, akkor azzal is számolni kell. A kiszámolt értéket beírod az M_LIMIT_POS-be, a -1 szeresét meg a M_LIMIT_NEG-be és akkor a motorod közel akkora erőt fog kifejteni a kupakra bármerre is forogjon. Ha az egyik irányba nem akarod limitálni, akkor oda írj 4000H-t vagy -4000H-t attól függően melyik irányról beszélünk.Elvileg ugye TO-t akarsz használni pozicionáló tengellyel. Ez esetben én valahogy úgy csinálnám, hogy beállítanám a nyomaték limiteket, majd elküldeném a tengelyt egy olyan pozícióba amit soha nem érhet el. Közben figyelném az aktuális nyomatékot és ha eléri a kívánt értéket, akkor megszakítanám a mozgást és kész a folyamat. (Esetleg ezután még a tengelyt visszaállítanám 0-ra ha van rá idő.) Ekkor azért a követési hiba figyelést tanácsos kikapcsolni...
-
Zoli54213
aktív tag
válasz Tomika86 #8131 üzenetére
Igen rajta van a burkolat. Még meg is tisztítottam, hogy biztosan érintkezzen.
GigaByte X570 Aorus Elite ::|:: 48GB DDR4 3200Mhz ::|:: AMD Ryzen 7 5800X3D + NZXT Kraken Z63 ::|:: RTX 4080 Phantom 16GB ::|:: Samsung 980 Pro 1TB + 860EVO 1+1TB + 250GB ::|:: Acer XV322QK KV 32" 4K 144hz 10bpc ::|:: Logitech Z906 ::|:: Corsair HX850i
-
Zoli54213
aktív tag
válasz Tomika86 #8131 üzenetére
Végül jó lett. A végén a záró burkolatban az érintkezők között szakadás volt.
GigaByte X570 Aorus Elite ::|:: 48GB DDR4 3200Mhz ::|:: AMD Ryzen 7 5800X3D + NZXT Kraken Z63 ::|:: RTX 4080 Phantom 16GB ::|:: Samsung 980 Pro 1TB + 860EVO 1+1TB + 250GB ::|:: Acer XV322QK KV 32" 4K 144hz 10bpc ::|:: Logitech Z906 ::|:: Corsair HX850i
-
Szirty
őstag
válasz Tomika86 #8138 üzenetére
Fontos, hogy az idő BCD formátumban kell hogy legyen!!
No meg van egy gyakoriság (acquistion cycle) ami alapból 1 perc, tehát csak percenként szinkronizál, nem azonnal.
Ha van a projectetben olyan alarm view ami system message-re van állítva, akkor azt nézd meg. Igen hasznos dolog amúgy egy ilyen ablak, nekem sokszor segített már. Ide írja az OP ha valami kínja van, -
spkkill
tag
-
spkkill
tag
-
spkkill
tag
válasz Tomika86 #8199 üzenetére
Szerintem a recept elemeknek nincs "visibility" tulajdonsága. A Recipe view viszont rendelkezik ezzel a tulajdonsággal. Több lehetőség is eszembe jutott. 1. Két receptet hozol létre és két külön Recipe view -ban kezeled őket. Így a biteddel tudsz váltani a két Recipe view között. 2. Benne hagyon az elemet a recepteb és PLC-ben tiltod a betöltését a bit állapotától függően. 3. Készítesz egy saját recept kezelés a HMI-re ,input field-ekkel azokat már el tudod rejteni.
-
n0rbert0
senior tag
válasz Tomika86 #8227 üzenetére
Szia,
A "DeviceStates" funkcióval kitudod olvasni, hogy az adott hálózaton az eszközök milyen állapotban vannak csak az OUT bemenetére a megfelelő módot kell kiválasztani:
Így a STATE inout-ra megkapod a kívánt státuszt az összes eszközre (példában a MODE 2 van):Az eszközök kikapcsolására meg a "D_ACT_DP" funkciót kell használod. Itt szintén a MODE bemeneten meg kell adnod mit szeretnél csinálni az adott eszközzel:
És amikor a REQ bemenetre felfutó el jön, akkor végrehajtja a MODE-ban kiválasztott job-ot.
Annyi korlátozás van, hogy 1200-as PLC esetében csak profinet eszközökre használhatod ezt az utasítást, de a Te arra is akarod használni.[ Szerkesztve ]
-
moseras
tag
válasz Tomika86 #8231 üzenetére
Üdv!
> egy FB-t feltételesen meghívok
Szerintem amikor meghívod, akkor végrehajtódik a "benne lévő" program, amikor viszont nem hívod meg, akkor nem hajtódik végre a "benne lévő" program, és a benne lévő változók (legyenek azok kimeneti, vagy belső változók) megtartják értéküket.
Tehát ha egy változó egy korábbi meghívás után adott értékre állt be (mert a program úgy állította be), akkor az így marad mindaddig, amíg újból meg nem hívódik, és a program nem állítja más értékre.
> kimenetek 0-ák legyenek?
Akkor ne feltételesen hívd meg, és programozd le, hogy mikor legyen 1 vagy 0. Ettől még használhatod a SET, RESET-et, kapuzd ki, hogy mi a SET és mi a RESET feltétel (lehet, hogy egyik feltétel sem fog teljesülni, ekkor a kimenet marad a korábbi állapotában).
-
spkkill
tag
válasz Tomika86 #8236 üzenetére
Szia!
FB-n kívülröl is meg tudod címezni az FB adaterületeit (IN,STATIC,OUT.....). Ha az FB után írod a reseteket akkor felül tudod írni a nem aktív FB váltózóit. Működik, de nem túl elegáns megoldás. Inkább az FB-nek rakj egy engedélyező bemenetet és ha nem aktív reseteld a kimeneteket és lépj ki a blokkból az adott nyelvhez passzoló utasítással (BEC,RETURN.....). -
ZetorGumi
addikt
válasz Tomika86 #8245 üzenetére
Puding próbája az evés.
Elvileg annak kéne lenni. Addig próbálkozik a konfiguráció megkeresésével, aztán elindul hibával.
Ez azért van benne, hogy ha bonyolultabb profinetes hálózat van, sok külső eszközzel, akkor legyen ideje mindennek elindulni a vezérlés indulása előtt.[ Szerkesztve ]
New Mixes: http://www.mixcloud.com/ZetorGumi | VW Passat B8 2.0CRTDI CRL
-
spkkill
tag
válasz Tomika86 #8262 üzenetére
Természetesen kívül kell megadnod. Meghívhatod az FB-n belül is közvetlenül az időzítőt a száma alapján. Ha csak 1-szer használod az FB-t semmi gond ezzel. Viszont ha többször használod fel akkor a következőeghívott FB-ben felülíródik.
Láttam már ilyen baki miatt gyártósort megállni. -
Szirty
őstag
válasz Tomika86 #8278 üzenetére
Szia!
Az összehasonlítás szerint ugrik M001-re ha DB15.DBW15 tartalma nulla. Ha nem nulla akkor nem ugrik, megy tovább.
"M13. 0 miért O, miértnem A? "
Miért nem A? Ezt a kérdést nem értem.
"Elötte hol íródik az RLO?"
Itt: O M13.0
Mivel az O előtti utasítás, ami a status word /FC (first contact) bitjét 1-be rakja az a ==I összehasonlítás, az O M13.0 nem hajt végre OR műveletet semmivel, egyszerűen az RLO-ba helyezi az M13.0 értékét. -
Szirty
őstag
válasz Tomika86 #8281 üzenetére
Szia!
"DB értéke ha 0 akkor nem történik semmi, ha NEM 0 akkor meghívódik az FC, de csak akkor ha M13.0 FALSE"
Igen. Ez van a kódban.
A CALL FC62 csak akkor fut, ha DB15.DBW15 nem nulla ÉS M13.0=FALSE.
Minden más esetben ugrik és elkerüli a az FC62 hívását.
Nem tudom mi a szerepe az M13.0 bitnek és a DB15.DBW15 értékének, én csak azt látom amit ide beírtál.
Mellesleg a DB15.DBW15 tartalmát nullázza ha az nem nulla.
O helyett A is lehetne. Mivel az /FC status bit értéke itt 1, nem hajt végre sem ÉS sem VAGY műveletet. -
Szirty
őstag
válasz Tomika86 #8283 üzenetére
Kicsit körülményesen, de megoldható.
A csúnyább megoldás az, ha ráteszel egy gomb méretű és háttér színű téglalapot aminek a láthatóságát a másik bittel vezérled. A téglalappal így eltakarod a gombot.
A gond ezzel az lehet, hogy ha billentyűzetet csatlakoztatnak a panelhez és az eltakart gombra helyezik a fókuszt, akkor aktiválni lehet Enterrel.
Ez ellen lehet védekezni azzal, hogy a téglalapot megjelenítő bit egyben letiltja a gombot (Animation/Enable object)Esetleg az is megoldás lehet neked hogy nem tünteted el a gommbot, csak letiltod (hatástalan lesz) ezzel az Animation/Enable object lehetőséggel. Esetleg Apperance megfelelő használatával ki is szürkítheted hogy látszódjon hogy tiltva van.
A másik lehetőség hogy írsz rá egy scriptet.
Létrehozol egy boolean belső változót (internal tag), a gomb láthatóságát beállítod erre.
A scriptet function-ra állítod, adsz neki két paramétert, a scriptben megírod a logikai összefüggést az eredményt a belső változóba teszed.
A két Tag-nek amivel a gombot akarod eltüntetni pedig a change value eventjéhez hozzárendeled a scriptet.
Ne felejtsd el ennek a két tag-nek az adatgyűjtését folytonosra állítani (Acquistion mode = Cyclic continuous)!
Új hozzászólás Aktív témák
- Nagyrobogósok baráti topikja
- gban: Ingyen kellene, de tegnapra
- Milyen billentyűzetet vegyek?
- Kerékpárosok, bringások ide!
- Parfüm topik
- Autós topik
- Konteó topic
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Napelem - 100%-os támogatású pályázat
- Debrecen és környéke adok-veszek-beszélgetek
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs