- OLED TV topic
- TCL LCD és LED TV-k
- Milyen billentyűzetet vegyek?
- Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen videókártyát?
- Internet Rádió építése (hardver), és programozása
- Épített vízhűtés (nem kompakt) topic
- Milyen TV-t vegyek?
- Az árnyak közül lépett spotfénybe az MSI 16 GB-os grafikus kártyája
Hirdetés
-
Júliustól kötelező biztosítást kell fizetni egyes rollerek után is!
ma A mikromobilitási eszköz nettó tömege és tervezési sebessége fogja eldönteni, hogy szükséges-e megkötni rá a felelősségbiztosítást.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
-
Indika - Napokon belül konzolokra is elérhető lesz
gp A PC-s verzót már korábban befutott, a hétvégén PlayStationre és Xbox-ra is elérhető lesz a teljes kiadás.
Új hozzászólás Aktív témák
-
Szirty
őstag
Helló Börcz!
Rendben.
Készítettem egy programot, ami azt csinálja amit szeretnél:Az első sor a 0.0 bemenetre kötött gomb megnyomásakor növeli a T1 beállított idejét 1 másodperccel, ha az idő nem nagyobb 30 másodpercnél.
A második sor a 0.1 bemenetre kötött gomb megnyomásakor csökkenti a T1 beállított idejét 1 másodperccel, ha az idő nem kisebb 10 másodpercnél.
A harmadik sor a 0.2 bemenetre kötött gomb megnyomásakor visszaállítja a T1 idejét 10 másodpercre.
A negyedik sor tartalmazza a T1 időzítőt, amit a 0.3-as bemenet indít. A T1 időzítő annyi idő múlva telik le, amennyi idő van a DM0 memóriacímen.
Ezt a DM0 címet változtatják a növelő, csökkentő és visszaállító gombok.(A program működik, kipróbáltam)
Remélem így már sikerül!Ui.: természetesen a DM0 címet a programodban máshol már nem használhatod másra.
[ Szerkesztve ]
-
Szirty
őstag
Helló Börcz!
Azt ugyan nem írtam, de visszafele is igaz. Ha a meglévő program amibe ezt be akarod illeszteni használ DM memóriát akkor arra figyelni kell, hogy az általad használt címet a program ne használja.
Illetve ha a DM0-át használja akkor neked ahelyett egy másikat kell választani.Továbbá lényeges, hogy a +B és -B "kukacos" legyen (@) vagyis élvezérelt. Ellenkező esetben a gomb megnyomásakor nem egyszer fog hozzáadni vagy kivonni, hanem minden PLC ciklusban, vagyis elszalad a végére azonnal.
[ Szerkesztve ]
-
Szirty
őstag
válasz Szabest #2516 üzenetére
Helló Szabest!
Hát nagyon szájbarágós választ most nem fogok kidolgozni (rajzolnom kéne ezerrel), de megpróbálok válaszolni minden kérdésre.
Az RS485 és az RS422 fizikai kialakítása olyan, hogy nem pont-pont, hanem pont-multipont huzalozást is megenged. (RS485 2 vezetékkel half duplex, RS422 4 vezetékkel full duplex).
Tehát felfűzheted RS485-re az összes adatforrást, DE!
A több pontos kommunikációt az adott eszközöknek ismernie / támogatnia kell (protokol kérdése).
Tehát a "buszos" huzalozást támogatja, de azt nem tudom hogy az eszközök amik neked adatot küldenek támogatják-e. Nyilván ha több eszköz van egy buszon, akkor azok nem vezérelhetik egyidőben a buszt, valamilyen megegyezés alapján kell hogy menjen a kommunikáció. Pl. Master-slave hierarchia esetén a PLC lehet a master és az a slave válaszol, amelyiket a master megcímez és lekérdez. Protokol kérdése tehát, a slave-eket valahogy meg kell különböztetni egyrészt hogy meg tudja állapítani a PLC hogy melyik eszköz küldte az adatot, illetve hogy meg tudja őket szólítani egyenként.
De mivel semmit nem tudok arról az eszközről amit említettél (még a nevét sem) nyilván nem tudom megmondani hogy ezekhez ez az elvárásokhoz hogyan viszonyulnak."Ha az előbbi megoldás is létezik, akkor milyen alapbeállításokat kell belőni a HW konfigban??"
Interface: Half duplex (RS485) Two-Wire Mode.
Data Flow control beállítása attól függ hogy az amivel kommunikálsz melyiket "szereti""Továbbá a minta irja, hogy az FB2 P_RCV CP340 és a FB3 P_SEND CP340 blokkokat kell használnom, jól olvastam?"
Igen.
Én 400-as CPU-n használtam CP440-et. Ez ua az elvileg mint a 300-ashoz a CP340.
Így nézett ki a küldés és fogadást végző hívás:M431.1 impulzus hatására küldte az adatot.
M434.2 -vel lehetett alaphelyzetbe állítani a kommunikációt
LADDR a HW configban szereplő kezdőcíme a CP kártyának:DB_NO a DB száma ahol a küldendő adatok vannak
DBB_NO byte cím a DB-n belül, ahol a küldendő adatok kezdődnek
#Len Itt kapja meg a blokk, hogy hány byte-ot kell küldeniAz FB9 fogadta az adatokat. Ahol:
M0.6 Mindig TRUE
Az R bemenet sorában lévő két feltétel szintén a reset (alahelyzetbe állítás)
LADDR a kártya címe
DB_NO és DBB_NO a DB száma és azon belüli byte cím, ahova a vett adatokat le kell raknia.
A LEN kimenő paraméterben mondja meg a blokk hány byte adat érkezett ami a DB-ben van.
Az M433.2 akkor billent be, amikor a blokk hibátlan adatot vett.M433.3 meg akkor, amikor adat érkezett, de hibával.A DB20-ban volt egy 32 byte-os adási buffer és egy 256 byte-os vételi buffer. Adáskor az FB10 elküldte a benne levő adatot, ami vételkor jött az beesett a vételi bufferbe.
A DB20:
STRUCT
Tx : ARRAY [0 .. 31 ] OF //Host link adás puffer
BYTE ;
Rx : ARRAY [0 .. 255 ] OF //Host link vételi puffer
BYTE ;
END_STRUCT ;"Jó lenne valamit villantani neki...."
Akkor küzdj! Komoly eredményhez komoly küzdelem vezet!
-
Szirty
őstag
válasz Szabest #2518 üzenetére
Helló Szabest!
Igen, nem kell feltétlenül küldened is a fogadáshoz, de... (lásd alább). Ha egyáltalán nem akarsz semmit küldeni, akkor nem kell az adatküldő FB (FB3 P_SEND CP340).
Igen, a vett adat mindig felülírja az előző vett adatot a DB-ben a vételi pufferben. Ha a vett adat rövidebb mint az előző vett adat, akkor csak részben írja felül.
De neked mindig jelzi az FB2 P_RCV CP340 blokk hogy ha érkezett adat, nem kell ciklikusan olvasgatni a DB-t. Elég akkor amikor szól,hogy adat jött.És itt a "de".
Az előző üzenetben próbáltam felhívni a figyelmed arra, hogy ha az RS485 buszon kettőnél több eszköz van, tehát itt pl. egynél több eszköz van a PLC-re kötve és azok adatot küldenek, akkor elengedhetetlen, hogy valamilyen módon egyeztessék a küldést és azonosítsák magukat.
Ha ugyanis minden RS485-re kötött eszközöd adott időközönként adatot küld se szó se beszéd, akkor:
- 1. Véletlenszerűen össze fognak beszélni, óhatatlan lesz, hogy egymás adásába belepofázzanak, aminek hibás vétel lesz az eredménye a PLC-ben!-2. Amikor valahogy a fentiek ellenére ép adatot vesz a PLC, akkor fogalma sem lesz ki küldte.
Ezt is meg kell oldani valahogy.
-
Szirty
őstag
válasz Szabest #2520 üzenetére
Helló Szabest!
Nem kell resetelgetni, fölösleges. Amúgy szerintem a reset nem törli a vételi puffert.
De nem is kell azt törölni, mindegy mi van benne, szól amikor jött valami és azt is megmondja hogy az adat milyen hosszú."arra gondoltam, mi van ha tényleg 3 ilyen RS485-ös kártyát akasztok rá , és ugye más címek lesznek, és így nincs esély a kavarodásra...járható út ez is, nem??"
Természetesen. Csak így jó drága
Azonban ha azok az eszközök amik adatot küldenek nem támogatják a multipoint működést, akkor egyszerűen nem nagyon marad más választásod."Amúgy egy ilyen küldött adat, milyen formátumban fog megérkezni? Milyenek az elterjedt átviteli módok, mert gondolom ezt még valahogy kódolnom is kéne, hogy pl egy DEC számot kapjak belőle...(0-32767) jól sejtem?"
Az adat olyan formában fog megérkezni, ahogy azt elküldték.
A vételi pufferben pontosan azt fogod találni, amit a küldő eszköz elküldött bitről bitre, byte-ról byte-ra!
Hogy a külső eszköz mit küld és az amit küld mit jelent pontosan (azt hogyan kell értelmezni) nekem halovány lila elképzelésem sincsen, ahogy azt az előző üzenetben is már megjegyeztem.
Ez teljes mértékben a küldő eszköz magánügye és én még annyit sem tudok róla hogy mi a neve, nem hogy azt mit küld és a küldött adat hogyan értelmezhető.
Ez a kérdésed olyan, mint ha tőlem kérdeznéd meg, hogy az az e-mail, amit 1 perce kaptál valahonnan - olyan valakitől akiről én soha nem hallottam, nem hogy ismerném - mit tartalmaz. Mennyi esélyem van kitalálni szerinted?Egyszerűen meg kell nézni az adott eszköz leírásában, hogy mit és hogyan, milyen formában küldözget.
-
Szirty
őstag
válasz peterx88 #2525 üzenetére
Helló peterx88!
Nyilván a belső háló és az internet között lévő routeren beállított port átirányítás a PLC IP címére nem lesz jó.
Technikailag működhet, de feltételezem, hogy nem szeretnéd ha mindenki tudná programozni bármikor a PLC-t.
Szerintem egy IpSEC-es VPN kapcsolat megfelelhet a célnak.
Ehhez kintről egy VPN klienssel először be kell jelentkezned a belső hálózatba és csak azután érhető el a PLC. Akkor már ugyanúgy, mint ha mellette ülnél. -
Szirty
őstag
válasz miclucky #2528 üzenetére
Hali miclucky!
Egyes frekvenciaváltókat lehet nyomaték szabályzós üzemmódban is használni.
Ilyenkor a motort nem az alapjellel arányos sebességgel hajtják, hanem arra törekszenek, hogy a motortengelyen az alapjellel arányos nyomaték hasson.
Ez működhet nyílt vagy zárt hurokban is (nyílt huroknál nincs nyomaték jeladó, a rive a nyomatékot számolja, de ez nyilván pontatlanabb).
Főleg feszítésre szokták használni.Ilyen frekiváltó pl a Danfoss VLT5000 és FC301 sorozatban is van, de több gyártónak is biztosan van ilyene.
Azt sem tudom mit hajt nálad a motor, és hogy egy ilyen megoldás megfelelne-e, majd eldöntöd. Csak leírtam ami eszembe jutott.
-
Szirty
őstag
válasz Szabest #2531 üzenetére
Hali Szabest!
Amit írtál, annak alapján sokat nem tudok mondani.
A sikeres adatfogadáshoz a következő feltételek egyidejű teljesülése szükséges:- A soros kapcsolat helyes bekötése (Rx/Tx jelek, stb)
- A RCV 340 blokk megfelelően paraméterezett hívása, pontos és valós LADDR, DB_No, DBB_No paraméterekkel.
- A CP340 kapcsolatnak megfelelő beállítása a HW configban, különös tekintettel arra, hogy az adatsebesség, az adat és stop bitek száma, valamint a paritás, továbbá hadshaking (data flow control) ugyanúgy legyen beállytva mind a küldő, mind a fogadó (CP340) félnél.Pl. h aaz egyik 18200-al ad, de a CP340 9600-ra van beállítva, az életben nem fog venni semmit, max szemetet.
"-viszont ezt a DB-t nem tudom hogy kellene előkészíteni"
Melyik DB-t? Az RCV blokk instance DB-jét nem kell előkészíteni, maga a Step7 megalkotja magától az FB alapján, azzal semmit nem kell foglalkoznod azon kívül, hogy a CPU-ba töltöd miután létrejött.
A fogadó puffer DB-je egy egyszerű tömb, ezt le is írtam a #2517-es üzenetben.
A vételi puffert alkotó DB méretének azonosnak vagy nagyobbnak kell lennie az egyszerre venni kívánt adatmennyiségnél.
Amit a CP vesz, ebbe a DB-be teszi bele.
Az általad linkelt DB-nek semmi köze a jelenlegi problémához... -
Szirty
őstag
válasz Robit1976 #2534 üzenetére
Hali Robit1976!
Az OPC a Microsoft próbálkozása arra, hogy Windows alatt létrehozzon egy szabványosított kommunikációs felületet, ami a végponton lévő készülék fajtájától (viszonylag) függetlenné és szabványossá teszi az automatizálási rendszerrel való kommunikációt.
Az OPC szerver egy API. Az a feladata, hogy kapcsolatban van a PLC-vel, miközben az OPC-nek megfelelő szabványos kommunikációs felületet biztosít a PC-n futó alkalmazás felé (ami általában scada vagy HMI program).
Tehát a PC-s program az OPC szerverrel kommunikál, az OPC szerver pedig a PLC-vel és a programmal.
Az OPC az MS-hez méltón mélyen és összetett, kibogozhatatlan módon kapcsolódik a windowshoz.WinCC project módosításához a WinCC-re van szükség. Persze nem az RT-re (ami a project futtatását végzi), hanem a szerkesztő engineering szoftverre.
[ Szerkesztve ]
-
Szirty
őstag
válasz Szabest #2542 üzenetére
Helló Szabest!
Most nem azért, de ha számokat írsz ilyen problémakörrel kapcsolatban, akkor nem árt tisztázni, hogy az a szám ASCII karakter, BCD szám, hexában vagy decimálisan kell-e értelmezni amit írsz stb. Sok félreértést és fölösleges írást kerülnél el vele.
Pl.:
"String-et akarok küdleni, és beírom a fentebb irt, 31 32 kódokat, akkor szépen hozza az 1 2-t külön külön byte-okba, ez így normális? vagy mi maga az a string...?? "Az eddigiek alapján már sejthető, hogy te itt ASCII karakterkódokról írsz méghozzá hexadecimális formában. Mivel a 31h="1" ASCII karakter, a 32h pedig "2"...
Úgy tűnik ezekből kell összesakkozni egy integert. Dezsi82 pont ezt írta le tömören, de pontosan.A string egyébként egy olyan (többnyire byte-okból álló) adatsorozat, aminek az egyes elemei karakter kódokat tartalmaznak. A kódok ASCII kódok. Tehát szöveg, vagy írásjelek sorozata.
A string általában tartalmaz olyan adatot, amiből kideríthető a hossza.De lehet fix méretű is (ilyenkor nincs benne hossz információ, mert arra nincs szükség). Pl. az első byte megmondja a hosszt, vagy a karaktersorozat végén nulla van (null terminated string). -
Szirty
őstag
válasz Dezsi82 #2558 üzenetére
Helló Dezsi82!
"Köszi a tippet, de ha jól sejtem, akkor ez nem jöhet létre, mivel ott a rövidzár."
Látod! Ezért kértelek, hogy ha nem ez a baj, akkor ne válaszolj!
Senki nem tudott arról, hogyan van bekötve a soros kábel, mivel azt nem közölted. Most ezzel együtt azt írod nem tudod milyen infót nem közöltél.
Pl. ezt sem -
Szirty
őstag
válasz Watercolour #2557 üzenetére
Helló Watercolour!
A megoldás kell?
"A feladat nem az enyém, hanem barátnőmé, én ehhez teljesen hülye vagyok."
Ő is teljesen hülye hozzá?
Ha most bárki leírja a megoldást, akkor nem lesz már hülye hozzá?Mellesleg csókoltatom az egyetemi tanárt is! Vagy téged ha a két ábrán kívül egyéb infót elhallgattál. :>
-
Szirty
őstag
válasz peterx88 #2564 üzenetére
Hali peterx88!
Attól függ milyen modul, és hogy a modul 3 vezetékes, vagy 2/4 vezetékes bekötést használ, továbbá attól, hogy a filter hogy van beállítva,
Ennek megfelelően az update time a következő: 125, 142, 205, 222, 245, 262, 284, 444, 524, 1205, 1222 vagy 2444 msec...
SIMATIC S7-1200 SM 1231 Thermocouple Signal Module
SIMATIC S7-1200 SM 1231 RTD Signal Module
Mind a két doksiban a 4. oldalon van leírva."És az ugye úgy van, hogy a PLC CPU-ja matematikai műveletet 18us logikait 0,1us alatt hajt végre?"
Igen.
SIMATIC S7 S7-1200 Programmable controller 18. oldal. -
Szirty
őstag
válasz peterx88 #2569 üzenetére
Hali peterx88!
Ha nem túl gyakran (több tíz másodpercenként vagy ritkábban) és rendszertelenül (nem pontosan ugyanolyan időközönként) kell a véletlen szám, akkor az SFC 64 "TIME_TCK" által visszaadott értékből képezhető kvázi-véletlen.
Ez egy 1 ms-onként egyesével növekvő számláló, ami 2147483647 ms után újrakezdi a számlálást. -
Szirty
őstag
válasz Szabest #2580 üzenetére
Helló Szabest!
Erre a kérdésre Dezsi82 már válaszolt a #2538-ban
Szerintem nem ártana tisztázni, hogy milyen adattípust akarsz átalakítani, mert sejteni épp lehet, de ha pontos választ akarsz, akkor ez nem elég.
Milyen formátumban jönnek a számjegyek azokban a byte-okban?A számok ASCII kódja? "0" = 48 (dec) "1" = 49 (dec)?
Tehát amikor 0;1;2;3;4, érték jön, akkor a 48, 49, 50, 51, 52 tartalmú byte sorozatot kapod?
Netán BCD-ben jönnek az értékek, esetleg binárisan, külön byte-okban a helyiértékenként? -
Szirty
őstag
válasz Szabest #2582 üzenetére
Hali Szabest!
ASCII
Továbbra is Dezsi82 megoldására kell hivatkoznom: Az IEC funkciók között lévő STRNG_I (FC38) átalakítja neked integerré, csak össze kell lapátolnod az érkező karakterekből egy stringet, mert a STRNG_I funkció stringet igényel.Segítek ebben, ha meg tudod mondani, hogy az ASCII-ben a soros portról beolvasott karakterek száma állandó vagy változik.
Tehát mindig 5 byte érkezik, és ha a számérték rövidebb 5 helyiértéknél, akkor bevezető nullákat tartalmaz, vagy a beolvasott karakterek száma mindig változik?
A string felépítéséhez ez az információ szükséges.Pl. a 6 hogy érkezik? '0', '0', '0', '0', '6'
vagy: '6'
? -
Szirty
őstag
válasz Szabest #2584 üzenetére
Helló Szabest!
Itt a blokk tessék:
FUNCTION FC 13 : VOID
TITLE =
VERSION : 0.1VAR_INPUT
N0 : CHAR ; //Bemenő karakter (legkiebb helyiérték)
N1 : CHAR ; //Bemenő karakter
N2 : CHAR ; //Bemenő karakter
N3 : CHAR ; //Bemenő karakter
N4 : CHAR ; //Bemenő karakter (legnagyobb helyiérték)
END_VAR
VAR_OUTPUT
VOut : REAL ; //Kimenő érték
END_VAR
VAR_TEMP
String5 : STRING [5 ]; //5 elemű string az átalakításhoz
Ok : BOOL ; //Konverzió sikeres (= TRUE)
VOutD : DINT ; //Kimenő érték DINT-ben
END_VAR
BEGIN
NETWORK
TITLE =L 5;
T LB 0;
T LB 1;
L #N0;
T #String5[1];
L #N1;
T #String5[2];
L #N2;
T #String5[3];
L #N3;
T #String5[4];
L #N4;
T #String5[5];CALL FC 37 (
S := #String5,
RET_VAL := #VOutD);L #VOutD;
DTR ;
JCN L001;
L 1.000000e+002; //100.0
/R ;
T #VOut;
BE ;
L001: L 0.000000e+000;
T #VOut;
END_FUNCTIONÍgy kell hívni:
Ha az N0-N4 byte-okban olyan karakter van, amiből nem lehet számot létrehozni, akkor a blokk ENO kimenete FALSE lesz és a visszaadott érték, pedig nulla.
Ha a konverzió sikeres, akkor a blokk ENO kimenete TRUE. -
Szirty
őstag
Hi!
Az előző (#2586) üzenetben lévő programban attól tartok összekevertem a legkisebb és legnagyobb helyiértékek szövegeket a megjegyzésben (N0 és N4).
A működésre ez semmilyen hatással nincs, de a program értelmezésében félrevezethet.
Elnézést! -
Szirty
őstag
válasz levelko #2590 üzenetére
Helló levelko!
Pedig a fórumokat olvasva közismerten működik 64 biten az 5.5-ös.
Igen, az lehet hogy SPx kell neki. Meg az is lehet, hogy az opcionális dolgok nem. Pl. PC adapter driver, szervó konfig kiegészítés, TS adapter stb...To all:
Egyébként aki Step7-ezik miért használ 64 bites wint? Mert szebb és magasabb?
Tényleg megéri a szívást? (költői kérdés volt, a válasz kívül esne a topic témakörén)[ Szerkesztve ]
-
Szirty
őstag
válasz Szabest #2593 üzenetére
Helló Szabest!
Én nem tudom mit nyomtál meg, hogy ez lett belőle.
Az első sorba konkrétan mi van ehelyett hogy:
FUNCTION FC 13 : VOIDMert gyanítom nem ez
Meg hova másoltad a forrást? Mit hogyan csináltál?
Megjegyzés: Az FC37-et majd ki kell emelned a projectbe a fordítás előtt a libraryból:
Libraries / stdlibs / iec / FC37 STRING_DI IECHa nem tudod hogyan kell STL forrást lefordítani kérdezd meg.
[ Szerkesztve ]
-
Szirty
őstag
válasz Szabest #2595 üzenetére
Hali Szabest!
Én is kipróbáltam, innen a fórumból visszamásolt blokk elsőre lefordul.
Compiler result: 0 Error(s), 0 Warning(s)
Milyen verziójú a LAD/STL/FBD editor? Ez V5.4 + SP4 + HF6
Érdekes, hogy FC0-t ír, holott ez FC13
Érdekes, hogy az első sorban vesszőt vagy kettőspontot hiányol, holott oda nem kell.[ Szerkesztve ]
-
Szirty
őstag
válasz Szabest #2598 üzenetére
Hali Szabest!
Megvan mi a baj!
SCL source file-t hoztál létre, de ez STL és nem SCL!"De igen, az van 1 az 1-be amit te beirtál, és a Sources en belül készítettem egy SCL sourcet, abba beillesztettem, majd mentés, és compile."
Ez így nem jó. Az SCL fordító nem fog neked STL forrást fordítani.
Ismételd meg STL source létrehozása után.
Szerintem jó lesz.[ Szerkesztve ]
-
Szirty
őstag
válasz raceboy #2604 üzenetére
Helló raceboy!
"Elküldtem privátban"
Leírtam privátban neked mi ezzel a baj. Itt nem részletezném.
Amit a problémával kapcsolatban az üzenetedből értettem (és itt nem a szavak önálló jelentésére az értelmezésére gondolok), az az alábbi:
- Világítás vezérlése plc-vel
- Van kézi és automata üzemmód
- Moeller ps4-341 plcAmit pedig nem értek:
- Mi (mennyi) az az "összes égő" amire hivatkoztál?
- Mit jelent a "gyenge gomb"?
- Mi az, hogy "M5 név"?
- Hol az a táblázat (mi a tartalma), amiben összefoglaltad?
- Mi a bool és mi a byte
- Miféle sorok és oszlopok vannak? -
Szirty
őstag
válasz raceboy #2606 üzenetére
Helló raceboy!
Tehát ha jól értem, akkor azt szeretnéd, hogy abból amit leírtál előbb találjuk ki hogy mi a feladat, majd utána fejtsük meg azt... :]
Amúgy más sem érti, vagy csak én vagyok másik bolygón?
Vannak tehát gombok, nem tudjuk hány darab, de némelyikről tudjuk mit csinálnak ha megnyomják.
Aztán vannak kapcsolók is (K1, K2, K3, K4) amikről pontosan tudjuk, hogy 4 darab van, de azt nem, hogy mi a szerepük.
Meg van a kézi üzemmód, ami M5, bár azt nem tudjuk miért van kézi üzemmód, ha nincs automata (vagy van, csak nem tudjuk, hogy van és ha van azt sem, hogy akkor mit kell csinálnia a "valaminek").
Tudjuk, hogy az m6 már nem üzemmód, hanem állapot, amikor az összes égő ég, amit az összes gombbal kapcsolunk be. Bár az "összes gombbal bekapcsolni" jelentése nem egyértelmű nekem, mert:
- Megnyomjuk egyszerre az összes gombot (bár nem tudni mennyi az az összes)?
- Vagy megnyomjuk az összes gombot egymás után valamilyen sorrendben bármikor?No meg van az m8 állapot, ami meg már olyan állapot, hogy több állapot, hiszen különböző gombokkal az égőket kapcsolgatni lehet.
Tudjuk, hogy valamit deklarálni kell és hogy ebben az állapot bool a többi byte, bár nem tudom mi lehet az a "többi".Jancskárné tanárnő jegyzetére való hivatkozás ebben a formában sokat nem segített a feladat megértésében, mert nem közölted melyik kötet melyik oldalára kellene "gondolni".
A táblázatodban egyszerű bináris sorozat van, amit egy számlálóval is lehet produkálni. (A számláló "Kimenet" oszlopban található tartalmának megfelelő bináris minták vannak a 4 bites oszlopokban).
A K1-K4 oszlopok tartalma teljesen azonos az elöl, hátul, középen, vetítő oszlopokban található bináris mintával.A képet ide felrakni nem bonyolult. Ahova az üzenetet írod alatta 4 cm-re van egy felirat, miszerint: "Új kép feltöltése a szöveghez" mellette egy Browse gomb. na azt kell megnyomni, kiválasztani a képet, majd a generált linket berakni a "Kép" feliratú gomb megnyomása után.
Ui.: Gondolom ez egy iskolai példa feladat, mert a gyakorlatban ilyen világítás vezérlést szerintem sehol nem csinálnak... Az iskolai gyakorlati feladatokra pedig sajnos nagyon jellemző az ilyesmi.
-
Szirty
őstag
válasz qwaqay1 #2613 üzenetére
Helló qwaqay1!
Az AQ területre kell írni hogy az analóg kimenetre értéket küldj (AQW n).
S7-200 Programozható vezérl rendszer Kézikönyv 44. oldal.
Pl. MOV_W utasítással tudsz bele értéket írni...
-
Szirty
őstag
válasz qwaqay1 #2615 üzenetére
Hali qwaqay1!
"Ez azt jelenti ,hogy cpu222 01.11 verziójú plc-mel nem lehet analóg kimenetet működtetni?"
Nem hiszem hogy ne lehetne.
Az output tables nem arról szól. Az output tables arra való, hogy meghatározd mi történjen az analóg kimeneten lévő értékkel, amikor a CPU RUN módból STOP módba vált.
A 02.00 verziójú PLC-nél lehetőséged van arra, hogy STOP-ra váltáskor az analóg kimenet befagyassza az értéket ami épp akkor volt, vagy beírhatod hogy ilyenkor mit küldjön ki.
A 01.11-es verziójú CPU meg nem tud ilyen funkciót, az nyilván nulla értéket küld ki ilyenkor. De attól analóg kimenetet még tud kezelni. -
Szirty
őstag
válasz qwaqay1 #2617 üzenetére
Hi qwaqay1!
"Szóval MOV W.
In és az OUT -hoz miket lehet beírni?"A már említett kézikönyv 177. oldala épp erről szól.
A MOVE adatmozgató utasítás. Az In-hez írt adatot átrakja az out-hoz írt címre.
Az in lehet cím vagy konstans, az out pedig cím.Az analóg kimenet egy 16 bites regiszter. Az analóg kimeneten mérhető feszültség vagy áram arányos az analóg csatorna címére írt értékkel. 0V-ot 0 beírásával tudsz produkálni 10V-ot az értékmaximum beírásával (ami halvány fogalmam sincs mennyi S7-200 esetében, de S7 300/400-nál ez jellemzően 27648).
"Hogy lehetne egy olyan programot írni, hogy I0.0 digitális bemenetre adott jelre az analóg 0.0 kimenetére mondjuk 3V-os jel, I0.1-re adottra 5V-os jel és I0.2-re 10V analóg jelet csináljon az analóg kimenetre."
Minden lépcsőhöz írsz egy megfelelő MOV_W utasítást a kívánt analóg jelnek megfelelő konstanssal a MOVE IN oldalán és a kívánt analóg kimenet címével a MOVE OUT oldalán.
A MOV_W utasítás elé (EN) pedig berakod a megfelelő feltételt, jelen esetben az I0.1, I0.2 stb bemeneteket.
Úgy kell megvalósítani, hogy mindig csak az egyik MOV_W utasítás előtti feltétel tudjon teljesülni.
Hogy ezt miképpen csinálod az attól függ milyen elsőbbségi sorrendet szeretnél felállítani arra az esetre, ha egyszerre egynél több bemenet is aktív (mivel egyszerre egynél több feszültség vagy áram nem lehet jelen egy kimeneten). -
Szirty
őstag
válasz qwaqay1 #2619 üzenetére
Helló qwaqay1!
Az a körülbelül 32000 valószínűleg pontosan 32767 lesz.
Ennek az integer típusú számábrázolás az oka. Te egy 16 bites értéket írsz az analóg kimenet regiszterébe.
16 biten 65536 féle bit kombináció lehetséges. Hogy negatív érték is ábrázolható legyen, kitalálták az integer számábrázolást, ami az előbbi tartományt két részre osztja:
Egy pozitív tartományra: 0..+32767
és egy negatívra: 0..-32768
Bizonyos okokból (aminek utána lehet nézni ha részletesen érdekel) a negatív tartomány kettes komplemens alapú, ami kb. annyit tesz, hogy a negatív szám abszolút értékének bináris mintája azonos a hozzá tartozó pozitív érték inverzével.
Ha megpróbálsz 32767-nél nagyobb értéket beleírni, akkor túlcsordul és az érték negatív lesz (pl.: 32777 -32759-nek felel meg). -
Szirty
őstag
Hali vopi86!
Kapcsolókon meg LED-eken kívül olyasmit köthetsz rá, ami "csinál valamit". Pl. szelepet, motort, ami mozgat valamit, aminek a helyzetét érzékelő érzékeli, ami bemenetre megy.
Tehát építesz köré egy gépet, amit majd a megírt programmal vezérelsz. A PLC erről szólA LED-ek és kapcsolók szintjéig könnyen el lehet jutni PLC nélkül is PLC szimulátor programmal. Ugyanúgy világít egy kimenet és egérrel kapcsolgathatod a bemeneteket.
Egy másik megoldás lehet valamilyen szimuláció, ami a vezérelt gépet (vagy egy részét) szimulálja. Készen ilyet omronra nem tudok, de készíteni a megfelelő szoftver környezetben biztosan lehet. Ezzel csak az a gond, hogy a szimulációs környezet kialakítása mindig sokkal nagyobb munka, mint annak a berendezésnek a programozása, a PLC-ben, amit szimulálsz.
A CIF01-es problémával kapcsolatban annyit tudok mondani, hogy fontos beállítások a következők:
- A PLC és azon belül a CPU beállított típusa a projectben
- A SYSMAC WAY-re állított kommunikációs mód
- A network settings-nél a Host Link Unit Number
- A network settings-nél a Port Name, Baud rate (asszem 9600), data bits 7, Parity E, Stop bits 2Jah és a Device Name ne tartalmazzon ékezetes karaktereket lehetőleg, mert így járhatsz:
[ Szerkesztve ]
-
Szirty
őstag
Hali vopi86!
"Esetleg a CX-Programmerhez nem tudtok valami leírást ami az instruction-ökről szól?"
HELP menüt láttad már?
Help / Instruction reference. Minden egyes utasításról van benne részletes leírás, de még példaprogram is!
Neked egyébként inkább a PLC-hez kell ilyen leírás és nem CX-Programmerhez, mert az utóbbi többféle előbbit is ismer és ezek utasításkészlete eltérő. -
Szirty
őstag
válasz qwaqay1 #2652 üzenetére
Helló qwaqay1!
Egyszer már feltettél egy hasonló kérdést analóg kimenettel kapcsolatban.
Akkor én az S7-200 Programozható vezérlő rendszer kézikönyvet ajánlottam neked.
Bár nem tudom milyen az analóg bemenetet, mert azt nem árultad el ha jól emlékszem (több mint tíz fajta van belőle), de ha fellapozod azt a kézikönyvet, akkor a PDF file oldalszámozása szerinti 417. oldalon mit találsz? Ezt:"a bekötésben nem vagyok biztos."
Ugyanezen dokumentum 415. oldalán az A-12-es ábra mutatja a modulok bekötését (az ábra címe: Huzalozási rajzok az analóg bővítő modulokhoz). Ezt az ábrát nem érted, vagy meg sem nézted?
[ Szerkesztve ]
-
Szirty
őstag
válasz qwaqay1 #2655 üzenetére
Helló qwaqay1!
Ne haragudj de leírnád már végre, hogy pontosan milyen az a rohadt modul?
Azt már lejött, hogy nem Siemens, hanem Co-trust, mert mellékesen megjegyezted a sokadik üzenetedben véletlenül. De ők is gyártanak vagy hatfélét!Neked egy Co-Trust EM231 CTS7 231-1HF32 modulod van? Vagy milyen?
Ha ilyen, akkor az egy 8 bemenetű 0-20mA 4-20mA-es áram mérésre alkalmas modul, amivel te nem fogsz feszültséget mérni és nem is javaslom ha nem akarod tönkretenni!
Jót tanács: kérdéseid előtt számolj el tízig és gondolj arra, hogy a kérdésedre adott válasz csak ritkán lehet pontosabb, mint amilyen pontos a kérdésed!
-
Szirty
őstag
-
Szirty
őstag
válasz qwaqay1 #2660 üzenetére
Helló qwaqay1!
"az AIW0 értéke nem változik akárhogy variálom a jelezőségét."
Azt az oldalt nézd, amit az előbb magad linkeltél!
Az alján ez áll:The EM231 8AI module has different beginning input address in different slot and its address is not in AIW but in VW, you can calculate the address by the following formula,
Itt azt magyarázza,hogy az egyes bemenetek kezdőcíme függ attól melyik slotba kerül a modul, továbbá, hogy a bemenetek nem az AIW adatterületen, hanem a VW adatterületen érhetők el.
Majd az alatta lévő táblázat egészen konkrétan felsorolja, hogy melyik bemenetnek mi a címe, amikor ilyen meg olyan slotban van.Mondtam hogy számolj el 10-ig!
-
Szirty
őstag
válasz qwaqay1 #2671 üzenetére
Hali qwaqay1!
"A bemeneti címzéssel volt a gond, az hittem AQW0, AQW2 AQW4 stb az analóg bemenetei"
AQW legfeljebb kimenet lehetne. Esetleg AIW lehetne.
"el is számoltam 10-ig, de mivel nem tudok angolul nem sokra mentem vele."
Én konkrétan nem tudtam, hogy nem tudsz angolul (nem írtad hogy magyar leírást szeretnél).
"A plc-hez kaptam egy Siemens Em 231 AI4x12Bit 321-0hc22-0xa0 analóg bemeneti modult"
Nem lehet 231-0hc22-0xa0? csak kerestem, kerestem és nem létezik ilyen modul amit írtál
Szerintem is biztosíték. Amit megerősít az a valószínű tény, hogy a második sorkapocs pont ahova látszólag be van kötve éppen az L+ tápfesz bemenet.
Mielőtt próbálkozol én mérnék egy ellenállást az M ill GND ponthoz képest az L+-on lévő kiolvadt bizti belső oldalán. Ha ott nulla ohm mérhető, akkor keress túlfesz levezető VDR-t, mert lehet hogy az túlfesz. miatt zárlatba ment és attól olvadt ki. Még az is lehet, hogy a mellette lévő sárga képződmény az... -
Szirty
őstag
válasz mcwizard #2678 üzenetére
Helló mcwizard!
Én a siemens technical fórumon keresném a választ.
Új hozzászólás Aktív témák
- OLED TV topic
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Aliexpress tapasztalatok
- Hamarosan bárki hazavihet egy Apple Vision Pro headsetet
- Júliustól kötelező biztosítást kell fizetni egyes rollerek után is!
- Kerékpárosok, bringások ide!
- Luck Dragon: Asszociációs játék. :)
- TCL LCD és LED TV-k
- Realme GT 2 - aláírjuk
- Mobil flották
- További aktív témák...
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Promenade Publishing House Kft.
Város: Budapest