H​irde​té​s

2017. november 23., csütörtök

Útvonal

Fórumok  »  Egyéb hardverek  »  PLC programozás

Hozzászólások

(#3001) who_a_way válasza Szirty (#3000) üzenetére


who_a_way
(lelkes újonc)

S7-314-esről van szó.
Azt próbáltam megvalósítani, hogy egy kimeneten állandóan megy ki jel (start jel).
A maradék 3 kimeneten pedig 10 másodpercenként aktiválódik a jel. Timerrel és SR tárolóval valósítottam meg, de nem úgy működik ahogy kéne.

LG Optimus 2X, Dell Inspiron 7520

(#3002) Szirty válasza who_a_way (#3001) üzenetére


Szirty
(Topikgazda)

Helló who_a_way!

Akkor megpróbálok minden kérdésedre válaszolni egyben.

"van lehetőség az SR tároló Q kimenetét egy globális változóba kimenteni, hogy bárhonnan elérhető legyen?"

A kérdésnek félig nincs értelme, mert az SR tárolónak eleve kötelezően meg kell adnod egy változót.
Ez persze lehet globális meg lokális.
Lokális változót SR tárolónak megadni nincs értelme (Network 1), mert a blokk lefutása után elveszti értékét, az SR tároló lényege pedig az, hogy megtartsa előző állapotát amíg azon nem akarunk változtatni. Így az SR tárolónak sem lesz értelme ott.

Az SR tároló Q kimenetén viheted tovább a logikai vonalat, oda tehetsz egy globális változót közvetlenül is anélkül, hogy további feltételeket is megadnál (Network 2). Akkor az a változó fel fogja venni magának az SR tárolónak az állapotát . De mivel az előbbi lokális, a blokk lefutása után tartalma véletlenszerű lesz, ezért legalább annyira nincs értelme a Q kimenet felhasználásának mint magának az SR tárolónak ebben az esetben.

Na most ha kötelezően meg kell adni neki egy változót és nincs értelme hogy az lokális legyen, akkor ugye csak globális lehet.
Akkor viszont eleve eléred azt a változót mindenhonnan, hivatkozhatsz rá így annak nem lesz értelme, hogy az SR tároló Q kimenetét közvetlenül egy másik változóba tedd (Network 3) hiszen hivatkozhatsz közvetlenül arra, amelyik az SR tárolót realizálja.

"Egyébként ez a bit nekem eléggé beragadt, tehát állandóan true, habár default false értéke van."

Ha lokális változót használtál SR tárolónak, akkor nem csoda.

"meg úgy általában számlálókat, időzítőket hogyan kell kinullázni a program indulásakor?"

Ilyesmire nagyon ritkán van szükség, főleg az ellenkezője szokott kelleni, vagyis hogy megtartsa az értékét kikapcsoláskor és visszakapcsoláskor folytatódjon a folyamat, ahol abbamaradt.
Ha mégis szükséges a törlés, akkor két eset lehetséges, az egyik függ attól milyen CPU-d van pontosan. Ha ugyanis a T vagy C, vagy M terület amit "nullázni" akarsz kikapcsoláskor nem esik bele a HW configban megadható retentív területbe, akkor biza felejteni fog. Hogy ott mit lehet beállítani az meg CPU függő.
Igaz írtad hogy 314-es a CPU, de abból is konkrétan 27 (!) fajta van.
A másik lehetőség,,hogy létrehozol egy OB100-at, (ez egyszer lefut amikor a CPU futtatni kezdi a programot) amiben bebillentesz egy bitet, amit az OB1 utolsó sorában törölsz (Reset).
Majd ezt a bitet berakod minden számlálód SR tárolód timered stb Reset bemenetére.

"Azzal szívok egy ideje, hogy beragadnak a bitek.."

Ezzel így nem lehet kezdeni semmit :) Fejtsd ki!

"Azt próbáltam megvalósítani, hogy egy kimeneten állandóan megy ki jel (start jel).
A maradék 3 kimeneten pedig 10 másodpercenként aktiválódik a jel. Timerrel és SR tárolóval valósítottam meg, de nem úgy működik ahogy kéne."

Ebben pedig csak akkor tudok segíteni valószínűleg, ha megmutatod mit csináltál és leírod mellé mit akartál csinálni.

(#3003) who_a_way válasza Szirty (#3002) üzenetére


who_a_way
(lelkes újonc)

köszönöm a részletes választ. Akkor megpróbálom érthetően felvázolni a problémát:

Egy frekiváltót szeretnék PLC-vel először 50%-ra majd 80%-ra majd végül 100%-ra felfuttatni. Danfoss FC300-as frekiváltóról van szó, van is hozzá gépkönyvem meg minden, egyelőre nem is ezzel a résszel van gond, még a PLC része se működik rendesen.

Jelenleg ezek a specifikációk vannak:

INPUT:
%I136.0 -> START_GOMB
%I136.1 -> STOP_GOMB

OUTPUT:
%Q137.0 -> START jel
%Q137.1 -> 50%-os referencia jel
%Q137.2 -> 80%-os referencia jel
%Q137.3 -> 100%-os referencia jel

A kimenetek nyilván sima bool értékek, a fordulatszámokat a frekiváltóban állítottam be.

1. csatorna:
- start gomb lenyomására 1. csatornán indul a start jel az outputra (mindig aktív)
2. csatorna:
- start jel-re indul a számláló (T1), ha eléri a kívánt értéket beállít egy SR tárolót és a 137.1 aktív lesz.
- az SR tároló akkor resetelődik ha a következő számláló (T2) elérte a beállított értékét
- az SR tároló értéke ki van mentve globális változóba, melyre később hivatkozok (legyen SR1)
3. csatorna:
- az SR1 indítja a második számlálót (T2), ami ha eléri a kívánt értéket beállítja SR2-t
- SR2 resetelődik ha T3 elérte a kívánt értéket
4. csatorna:
- SR2 indtja T3-at, ami beállítja SR3-at.
- SR3 resetelődik ha a STOP_GOMB aktív

Ez elméletben így kéne, hogy működjön, gyakorlatban viszont állandóan beragad valami. A dolgok jelenlegi állásánál éppen a 137.2 és 137.3 vannak beragadva, mert a tárolók nem hajlandók elejteni a jelet. Ezért adtam nekik default false értéket indításkor, de ez vajmi keveset ér. Amikor a PLC-t bekapcsolom ez a két kimenet már világít..
OB100-as blokkal ki se lehet nullázni, mert bool érték. Elfogytak az ötleteim, tudnátok segíteni? Kérésre a progit is elküldhetem.

LG Optimus 2X, Dell Inspiron 7520

(#3004) csoki46


csoki46
(senior tag)

Sziasztok!
Egy kis segítséget kérnék. PLC programozást tanulok hobbiból easy veeep-es modulokat csinálgatom, viszont egy példát sehogy se tudok megoldani. Ez a garázsajtós feladat. Valaki esetleg megcsinálta már ezt? Nem nagyon tudom, hogy hogy kezdjek hozzá. Gondolkoztam már számlálóval megcsinálni, az számolja a kapcsolások számát, de nem sikerült. Siemens plc csinálom. Tudnátok segíteni?

(#3005) Szirty válasza who_a_way (#3003) üzenetére


Szirty
(Topikgazda)

Szia who_a_way!

Hogy a programod miért nem működik, arra továbbra sem tudok így válaszolni hogy nem tudom milyen programot írtál rá.
Ezért most is csak azt tudom mondani, hogy küldd el a programot akár screenshot akár project file formájában, hogy meg tudjam nézni mi a gond benne.

Bár a működést meghatározó leírásod nem teljesen hiánytalan, megmutatom én hogyan oldanám meg a feladatot, hátha az segít:

(#3006) who_a_way válasza Szirty (#3005) üzenetére


who_a_way
(lelkes újonc)

Nos én valahogy így csináltam, OB:

FC:

A többi FC ugyanez ugyebár csak más flip-floppal és timerrel. De a te megoldásod egyszerűbbnek tűnik, holnap megpróbálkozok vele.

LG Optimus 2X, Dell Inspiron 7520

(#3007) Szirty válasza who_a_way (#3006) üzenetére


Szirty
(Topikgazda)

Hali who_a_way!

Kezdj újat! Ez így nagyon nem jó!

javaslatom:
Nézd át hogyan működik a blokk hívás! Tudd meg mi egy blokk EN "bemenete" és mit csinál az ENO "kimenete"!
Vedd át a programblokkok paraméter átadásával kapcsolatos szabályokat (bár a feladathoz nincs szükség ilyesmire, de lehet belőle tanulni ha így csinálod).
Fuss végig a DB blokkok kezelésén, címzésén is.

[ Szerkesztve ]

(#3008) who_a_way válasza Szirty (#3007) üzenetére


who_a_way
(lelkes újonc)

van erről valami jó doksid esetleg?

szerk:
meg azt se nagyon értem, hogy a Q137.0 hogy lehet egyszerre bemeneti feltétel és kimenet is.

[ Szerkesztve ]

LG Optimus 2X, Dell Inspiron 7520

(#3009) Szirty válasza who_a_way (#3008) üzenetére


Szirty
(Topikgazda)

Helló who_a_way!

A web oldalamon (remélhetőleg) sok infót találsz.
A Q137.0-t úgyanúgy kell elképzelni mint bármely más bitet, azzal a különbséggel, hogy logikai 1 állapota bekapcsol egy fizikai kimenetet is. Hivatkozni ugyanúgy lehet rá a programban, mint bármely más bitre.

A kimeneti bitek, mint pl. a Q137.0 olyan mint egy relé tekercse, aminek végtelen sok segédérintkezője van, amelyeket korlátlan számban használhatsz fel a programban. Ha a kimenetet a program valahol bekapcsolja (relé tekercs), akkor a rá való hivatkozás (amit te bemeneti feltételnek neveztél) ugyanúgy be lesz kapcsolva (a relé érintkezője)...

(#3010) who_a_way válasza Szirty (#3009) üzenetére


who_a_way
(lelkes újonc)

nagyjából kapisgálom akkor.
Viszont a megoldásodat kipróbálva nem futott le:
"Network 1,This use of IEC timers / IEC counters is not possible in this target system.,1,0,8:53:49 AM"

LG Optimus 2X, Dell Inspiron 7520

(#3011) Szirty válasza who_a_way (#3010) üzenetére


Szirty
(Topikgazda)

Helló who_a_way!

"Viszont a megoldásodat kipróbálva nem futott le:"

Mert én Step7-ben csináltam meg, te pedig el nem árultad, de a screenshotokból kiderült, hogy TIA portálban.
Nincsenek benne egyébként IEC timerek, ezek S5 timerek!

A megoldást kipróbáltam, működik. Délután csinálok neked TIA portálos verziót.

[ Szerkesztve ]

(#3012) who_a_way válasza Szirty (#3011) üzenetére


who_a_way
(lelkes újonc)

köszönöm és várom!

LG Optimus 2X, Dell Inspiron 7520

(#3013) who_a_way válasza who_a_way (#3012) üzenetére


who_a_way
(lelkes újonc)

már nem tudtam szerkeszteni. Annyit kérhetnék még, hogy legyen objektumorientált amilyen az enyém is és ne mindent egy networkre. Ezért kérték.

LG Optimus 2X, Dell Inspiron 7520

(#3014) Szirty válasza who_a_way (#3013) üzenetére


Szirty
(Topikgazda)

Szevasz who_a_way!

Az "objektum orientált" mást jelent, de látom mit akarsz, felhígítottam neked külön network-ökre:

(Ezt is kipróbáltam, ez is működik)

(#3015) who_a_way válasza Szirty (#3014) üzenetére


who_a_way
(lelkes újonc)

igen nálam is működik, köszönöm a segítséget. Új probléma merült fel közben. Ilyen formában nem lehet bekötni a Danfoss-ba. Kell egy "belső ref. 0 bit" és egy "belső ref 1 bit", legalábbis a gépkönyv ezt írja.
2 kimenetem kell hogy legyen, ami néha 00, néha 01, néha 10 és néha 11 értéket ad. Ezeket timerrel kell váltogatni. Ezt próbálgatom, de azért tudnál kicsit segíteni?

LG Optimus 2X, Dell Inspiron 7520

(#3016) Szirty válasza who_a_way (#3015) üzenetére


Szirty
(Topikgazda)

Helló who_a_way!

Jó. majd késő délután.
Egyébként a preset referenciák közül ezzel a módszerrel is választ (ráadásul négy állapot van nem három, de ezt írtad a leírásban) :)

(#3017) who_a_way válasza Szirty (#3016) üzenetére


who_a_way
(lelkes újonc)

Elvileg megcsináltam. A PLC része működik. 10 másodpercig mindkét bitet [0][0]-ra állítja, 10 másodpercig [0][1]-bit van beállítva és végül [1][0]. Elvileg jól van bekötve Danfossba.
A DAnfoss menüjében a referenciák alatt beállítátottam 3 referenciát, 50%-ot, 80%-ot és 100%-ot.

VISZONT

Mégse mordul fel a frekiváltó :S Meg valami DC under volt [W8] alarmja van neki..

LG Optimus 2X, Dell Inspiron 7520

(#3018) Szirty válasza who_a_way (#3017) üzenetére


Szirty
(Topikgazda)

Hali who_a_way!

"Mégse mordul fel a frekiváltó :S Meg valami DC under volt [W8] alarmja van neki.."

Akkor hiányzik egy (vagy több) fázis, vagy alacsony a tápláló feszültség, esetleg hibás a bemeneti egyenirányító híd.

A 16-30-as paraméterben (DC Link Voltage) meg tudod nézni mennyi az a kevés.
Ha a frekvenciaváltó 3x380-500V-os, akkor itt minimum 373V-nak kell lennie.

(#3019) Szirty válasza who_a_way (#3017) üzenetére


Szirty
(Topikgazda)

Hali who_a_way!

Mivel megígértem, megcsináltam:

(#3020) who_a_way válasza Szirty (#3019) üzenetére


who_a_way
(lelkes újonc)

köszönöm :) Közben nekem is sikerült megoldani. Mint kiderült a progi már jó volt az előbb is, csak a frekiváltó nem volt jól beparaméterezve..
Mindenesetre a te megoldásod egyszerűbb mint az enyém, csak nálad nincs lekezelve, hogy 10 másodpercig 50%-on menjen. Vagy azt nem is kell?

LG Optimus 2X, Dell Inspiron 7520

(#3021) Szirty válasza who_a_way (#3020) üzenetére


Szirty
(Topikgazda)

Üdv who_a_way!

"Mindenesetre a te megoldásod egyszerűbb mint az enyém, csak nálad nincs lekezelve, hogy 10 másodpercig 50%-on menjen. Vagy azt nem is kell?"

Nos kérlek amíg a T2 időtag telik, addig megy 50% sebességgel. Amikor az letelt akkor megy 80% sebességgel, ezt a T3 állítja be. Amikor az is letelt, akkor megy 100% sebességgel.

Tehát:
T2: 50% ideje
T3: 80% ideje

(#3022) who_a_way válasza Szirty (#3021) üzenetére


who_a_way
(lelkes újonc)

abban tudnál segíteni, hogy hogyan kell az FC-ket korrekten berakni? Ugyanis bővíteni szeretném a projektet úgy hogy 2 nyomástávadó értékét számolgassa és ezeket FC-kbe szeretném rakni.
Azzal viszont az a problémám, hogy az FC-nek is kell mindig egy kezdőimpulzus ( -||- ) jel, meg az FC elé se árt a csatorna elejére. Kimenetekkel úgyszintén. Ilyenkor ezt hogyan kéne normálisan megoldani?

LG Optimus 2X, Dell Inspiron 7520

(#3023) who_a_way válasza who_a_way (#3022) üzenetére


who_a_way
(lelkes újonc)

mármint nem a nyomástávadós történet megvalósítását kérem tőled, az menni fog. Az FC-k meghívása és annak korrekt módja érdekelne.

LG Optimus 2X, Dell Inspiron 7520

(#3024) Szirty válasza who_a_way (#3023) üzenetére


Szirty
(Topikgazda)

(#3025) who_a_way válasza Szirty (#3024) üzenetére


who_a_way
(lelkes újonc)

ez érvényes TIA Portalra is?

LG Optimus 2X, Dell Inspiron 7520

(#3026) who_a_way válasza who_a_way (#3025) üzenetére


who_a_way
(lelkes újonc)

gondolkozok hogy átállok Step7-re, mert ahhoz sokkal több az anyag :S

LG Optimus 2X, Dell Inspiron 7520

(#3027) Szirty válasza who_a_way (#3025) üzenetére


Szirty
(Topikgazda)

Helló who_a_way!

"ez érvényes TIA Portalra is?

Természetesen. A PLC ugyanúgy működik attól függetlenül, hogy mivel programozzák. (Már ha továbbra is S7-300-ról beszélünk, mert 1200-nál vannak eltérések ahhoz képest).

(#3028) 01101010111


01101010111
(lelkes újonc)

Nem illik ilyent kérdezni, de virágbolti 5.2-es protool-t és 5.2-es Step7-t láttatok valamerre, angol vagy orosz nyelvű fórumokon? Ha látott valaki windows NT 4.0-t valamerre az is nagy segítség lenne.

(#3029) byte-by


byte-by
(tag)

Minden PLC-s és automatizálással foglalkozó kollégának kellemes karácsonyi ünnepeket és eredményekben gazdag, tranziensmentes boldog új évet kívánok !

byte-by

(#3030) byte-by


byte-by
(tag)

halo!

a következő problémához van -e valakinek ötlete.

egy omron plc programjáról van szó.
OMRON CJ1M CPU 13
egy TASK van engedélyezve , ún. "utolsó lehelet", a kérdés miért nem működik.

a program

a task létre van hozva

és a beállításokban engedélyezve is.

a program az év-hó regiszter tartalmát másolná egy memóriába, amikor kikapcsolják a gépet.
ezért hívják az omron berkeiben "utolsó lehelet" task-nak.mert állítólag az utolsó amit megtesz, az ez a task.

de valamiért nem másolja át a tartalmat.
esetleg ötlet valakinek?

byte-by

(#3031) murena2


murena2
(újonc)

Szervusztok,

Kis segítséget kérnék. Kezdő PLC-s gyanánt. SIEMENS S7 esetén hogyan történik az analóg jelek kezelése? Olvastam sokat utána mind a gyári irományban mind pedig a neten amit találtam, de nem nagyon sikerült megértenem.
Ha mondjuk van egy analóg bemenetem (hőmérséklet 0-250°C), alsó és felső határ között szeretném tartani azt hogyan oldható meg? A bemeneti kártya 0-10V -ot hogyan tudom felskálázni a 0-250-re?
Kezdő révén az analóg a gyengém de harcolok vele hogy megértsem.

A segítséget előre is köszi :R

(#3032) Dezsi82 válasza byte-by (#3030) üzenetére


Dezsi82
(tag)

Szia!
Elvileg működnie kellene, bár én kivenném a MOV elől a @-t. Nem tudom, hogy viselkedik llyenkor a felfutó él figyelés. Esetleg fixen setelj be egy bitet ellenőrzésként.

(#3033) Dezsi82 válasza murena2 (#3031) üzenetére


Dezsi82
(tag)

Szia!
Gondolom S7-300-ról beszélünk.
Ennél részletesebb leírás nem kell
Szerintem olvasd el, ha utána is van kérdés, már könnyebb segíteni
A végén lévő átalakítás helyett esetleg könnyebb a gyári SCALE blokk használata
Az alsó és felső határérték között tartásnál, nekem nem világos teljesen a kérdés

[ Szerkesztve ]

(#3034) Szirty válasza murena2 (#3031) üzenetére


Szirty
(Topikgazda)

Helló!

Csatlakoznék Dezsi82 kolléga hozzászólásához (mindkét témában, a kukacot tényleg ki kellene venni, elvileg always ON-nak csak egy felfutó éle volt, az ősrobbanás idején :) )

murena2!

Pontosítom a linket ha meg nem találtad magadtól is:
Analóg jelek kezelése
és Analóg jelek kezelése S7-300/400 PLC-vel

Amúgy tényleg nem ártana tisztázni milyen fajta S7, mert több féle van és nagyon eltérőek. (S7-300/400, S7-200, Sz-1200)
A lényeg, hogy skálázni kell.
De pl. ha az az S7 300/400 és hőmérsékletet akarsz mérni mondjuk Pt100-al, amihez nem távadót és pl. 0-10V-os jelet használsz, hanem a bemenetre kötöd a Pt100-at, akkor a modul skáláz (és linearizál) helyetted. Olyankor tized fokban közvetlenül a hőmérsékletet adja vissza.

Szóval pontosan írd le mit akarsz és pontosan mivel.

(#3035) murena2 válasza Szirty (#3034) üzenetére


murena2
(újonc)

Hali.

Köszi a gyors választ.S7-300 PLC-ről lévén szó. a dolgok nehezítése miatt (kombinált, nyomás és hőmérséklet) távadó és 0-10V vagy 4-20mA sajnos(mindegy melyik mert HARt-on konfigolható a távadó). Azért írtam a 0-10V-ot mert kerekebbek a számok az átszámolásokhoz.Mérem kéne a kád tartalmát és közben az anyag hőfokát.
A nyomás része 0-1250 mmH2O a hőmérséklet 0-250°C között. a hőmérsékletet hőntartás miatt érdekes a nyomás pedig a szint szabályzás miatt, mert időközönként iszapolni kell egy szivattyúval a leülepedett anyagot.

(#3036) Szirty válasza murena2 (#3035) üzenetére


Szirty
(Topikgazda)

Hali murena2!

Akkor a nyomás esetében az analóg kártyáról olvasott értéket (PIW) 0-27648 tartományról kell 0-1250 tartományra skálázni.
Hőmérsékletnél pedig a 0-27648 tartományt 0-250-re és készen is van.

Az említett linkeken vannak részletek, például programpélda a skálázásra.

(#3037) akosf válasza byte-by (#3030) üzenetére


akosf
(PH! kedvence)

Ebben az esetben kár tökölni az IT-vel, másold folyamatosan a tartalmat.

(#3038) murena2 válasza Szirty (#3036) üzenetére


murena2
(újonc)

Hali.

Köszi szépen a segítséget.

(#3039) Szirty válasza akosf (#3037) üzenetére


Szirty
(Topikgazda)

Hali akosf!

"Ebben az esetben kár tökölni az IT-vel, másold folyamatosan a tartalmat."

Jó ötlet. De ebben az esetben a legközelebbi indítás azonnal megsemmisíti a mentett eredményt. Ezt akkor valahogy meg kell akadályozni...

(#3040) byte-by válasza Szirty (#3034) üzenetére


byte-by
(tag)

halo Dezsi82 és Szirty !

kösz a választ.
lehet a @ a baj, akkor ez ki fog derülni január 1-én :)

elvileg így is jónak kellene lennie , mert ugyan az allways_on 1 lesz a program futása alatt is, de a task referencia vezetéke nem aktív csak a plc lekapcsolásának utolsó pillanatában.

(lehet, hogy az allways_on meg akkor nem lesz aktív ?)

módosítom az move utasítást, aztán meglátjuk.

köszi, byte-by

(#3041) byte-by válasza akosf (#3037) üzenetére


byte-by
(tag)

halo akosf !

a folyamatos másolással az a baj amit Szirty irt.
a program lényege, hogy ha hónapváltás előtt kikapcsolják a gépet, a következő bekapcsoláskor
detektálni tudjam a megtörtént váltást.

egyébként eredetileg másolgatom , majd összehasonlítom.ez működik is bekapcsolt gépnél.

a bekapcsolás dolgot megoldottam azzal, hogy a dátumregiszter tartalmát bekapcsoláskor azonnal bemásoltam egy memóriába, majd ezt a memóriát összehasonlítottam azzal a memóriával ahová folyamatosan másolom, de amit a bekapcsolás után csak 3 s-mal kezdek el.
így bekapcsoláskor a folyamatosan másolt memória 3 s-ig még a kikapcsolás elötti tartalommal rendelkezik.

köszönöm, byte-by

[ Szerkesztve ]

(#3042) Szirty válasza byte-by (#3041) üzenetére


Szirty
(Topikgazda)

Helló byte-by!

"majd ezt a memóriát összehasonlítottam azzal a memóriával ahová folyamatosan másolom, de amit a bekapcsolás után csak 3 s-mal kezdek el.
így bekapcsoláskor a folyamatosan másolt memória 3 s-ig még a kikapcsolás elötti tartalommal rendelkezik."

Ha pont ezalatt a 3 másodperc alatt jön megint egy kikapcsolás, akkor mi lesz? :)
Tudom, kicsi az esélye, de nem lehet kizárni, így megtörténhet.

(Engem sokszor hívtak már fel élszaka olyan miatt, ami elvileg soha nem történhet meg...)

(#3043) byte-by válasza Szirty (#3042) üzenetére


byte-by
(tag)

szia Szirty!

igaz, de ha a 3 s alatt újra kikapcsolják , akkor , mivel még nem kezdődött el a folyamatos másolgatás, az erre használt memória tartalma még mindíg a kikapcsolás elötti érték lesz.
tehát ha újra bekapcsolják akkor a dátumregiszter újra bemásolodik azonnal egy adott memóriába, és újra összehasonlítom a folyamatosan másolt memóriával, ami írása újra csak 3 s múlva kezdődik el.
ez a szekvencia csak bekapcsoláskor működik.

persze annyi történik, hogy a dátumváltás újra detektálódik, és az erre használt bit újra 1 lesz.
de ez nem probléma.

egyébként biztos vagyok abban , hogy valaki képes lesz pont akkor kikapcsolni , amikor a 3 másodperc a ciklusidő szerint lejár, ugyhogy majd én is bemegyek éjjel:)

byte-by

(#3044) akosf válasza byte-by (#3041) üzenetére


akosf
(PH! kedvence)

Á... csak tippnek szántam, nem komplett megoldásnak.

P_FirstCycle -> MOV reg1 -> reg2
P_On -> MOV time -> reg1

reg2 bármikor felhasználható.

(#3045) murena2 válasza Szirty (#3034) üzenetére


murena2
(újonc)

Köszönöm.

Sikerült az egészet megoldanom a leírás alapján.
Bár magamtól nem tudtam volna megírni STL-ben az fc-ket. Még egy kérdésem volna ezzel kapcsolatba. Tanulmányozom az OMRON PLC-ket (C1JM-CPU23) is. Próbáltam valami hasonlót elkövetni mint a SIEMENS-nél de az végkép nem megy.

Esetleg ha türelmed van tudnál segíteni. Már olvastam a programozói kézikönyvet de abból semmi konkrétat nem tudtam meg. Az ok hogy vannak benne olyan modulok amik kezelik a határértéket.
Azt megnéztem hogy analóg bemeneti kártyán külön engedélyezni kell a csatorna működését, skálázását, stb amit meg is tettem. De nem igazán tudtam eligazodni rajta.
A feladat a 3035 hozzászólásban van.

[ Szerkesztve ]

(#3046) Szirty válasza murena2 (#3045) üzenetére


Szirty
(Topikgazda)

Üdv murena2!

Az analóg kártya csatornáit S7-nél is ki-be lehet kapcsolni.
Omronnál lehet skálázni is igen. Ha ezt beállítod, akkor nincs szükség szoftveres számolgatásra.
Ha beállítod a skálázást, akkor a beolvasott érték a mért fizikai mennyiség lesz.
Mi volt vele a gond?

(#3047) murena2 válasza Szirty (#3046) üzenetére


murena2
(újonc)

BUÉK Szirty.

Abban nem voltam biztos hogy ha beállítom a skálázást akkor nincs szükségem egy külön rutint írni rá. Egy kicsit egyszerűbb mint a S7.
Lehet hogy ha figyelmesebben olvasnám manualokat nem kérdeznék annyi hülyeséget. Csak hát az OMRON tényleg csak próbálkozás.

Köszi.

(#3048) Szirty válasza murena2 (#3047) üzenetére


Szirty
(Topikgazda)

Helló murena2!

B.Ú.É.K.!

"Abban nem voltam biztos hogy ha beállítom a skálázást akkor nincs szükségem egy külön rutint írni rá. Egy kicsit egyszerűbb mint a S7."

Már miért lenne egyszerűbb? 3 perc megcsinálni bármelyiken!

Most képzeld el a következő szituációt (ami mellesleg életszerű és gyakorlatias, mert előfordul olykor):
Tönkremegy a 0...250 fokos távadó. Vesznek egy másikat és kiderül, hogy az -50-300 fokos :>
Mit kell csinálni? Át kell állítani a skálázás paramétereit. Ha a programozó (te) előrelátó, akkor eleve úgy csinálja meg, hogy a skálázást operátorpanelen lehet állítani a program futása közben. csak egy-egy paraméter kell átírni.
De ha a skálázás az analóg modulba van bebetonozva, akkor máshogy mennek a dolgok. Persze ott is lehet DM paraméter memóriákkal kavarni, de akkor már nem is biztos hogy egyszerűbb :>

Mind a két megoldásnak van előnye és hátránya is.

[ Szerkesztve ]

(#3049) murena2 válasza Szirty (#3048) üzenetére


murena2
(újonc)

Hali Szirty!

Ebben teljesen igazad van.
Nekem a 3 percel van egy kis problémám az én agyam még nincs teljesen ráálva.
Régóta használom az STEP7-et, de csak debugra esetleg kisebb módosításokra a rendszerben ha valami plusz jött be.Soha nem írtam programot a 0-ról ( Amit szeretnék elkezdeni.). A komolyabb dolgokat mindíg meghagytam az IT-nak így sosem foglalkoztam pl analóg jelekkel, PID vezérléssel stb.
Csak sokszor ütköztem olyan dolgokba hogy kb 3 órát kellett várnom az IT-ra egy 5 perces meló miatt. Így döntöttem úgy hogy kicsit jobban belemrülök a PLC rejtelmeibe.
Szépen be is iratkoztam oskolába (ÓE KVK levelezőn) amit jövőre elvégzek. De eddig mind olyat tanítottak amit én is tudok és analóg az még a közelbe sem jött. Így alapnak jó de vannak hiányosságok amit az életből kell összednem.
Ezért vállalkozom olyan feladatokra is amit sose csináltam a cégnél. Mivel 2 fő típus van nálunk ( SIEMENS, OMRON) ezért próbálok autodidakta módon mind a kettővel foglalkozni. Amihez a honlapodon nagyon sok jó infót találtam. Úgyhogy ha nem bánod lehet hogy a közeljövőben kicsit többet leszek jelen a forumon és kérdezek majd sok nekem még nem egyértelmű dolgot.

(#3050) Szirty válasza murena2 (#3049) üzenetére


Szirty
(Topikgazda)

Helló murena2!

A törekvésed dícséretes. Ez a fórum is főleg ezért van.

Idegen programokban turkálással is nagyon sokat lehet tanulni ha komolyabban beleássa magát az ember. Eleinte, amíg nincs meg a kellő ismeret nehezen, döcögősen halad. Saját project is kell, a kettő együtt kellő mélységben művelve komoly tapasztalattal szolgálhat.

Step7 szimulátora is hasznos. Sok apró kis dolgot ki lehet vele próbálni hogy hogyan is működik...

Útvonal

Fórumok  »  Egyéb hardverek  »  PLC programozás
Copyright © 2000-2017 PROHARDVER Informatikai Kft.