Hi Szabest!
Fogalmam sincs mi az amit írtál.
Én törekszem a pontos információ közlésre amennyire lehetséges.
Durva lenne-e ha ugyanezt kérném tőled?
[ Szerkesztve ]
Szirty

Hi Szabest!
Fogalmam sincs mi az amit írtál.
Én törekszem a pontos információ közlésre amennyire lehetséges.
Durva lenne-e ha ugyanezt kérném tőled?
[ Szerkesztve ]
Szirty

Hello
Egy olyan kérdésem lenne, hogy egy függvénytáblázatot, hogy lehetne hozzárendelni egy állapothoz? Mert az a gondom, hogy az egyik bool a másik byte és nem tudom, hogy lehetne megoldani, hogy felismerje és jól is működjön?
Előre is köszi

Helló raceboy!
Egy kicsit konkrétabban lehetne?
Pontosan mit mivel hogyan akarsz megcsinálni min?
Szirty

Hello Szirty
Elküldtem privátban

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 plc
Amit 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

igen értem
Ez egy konferencia terem és vannak elől, hátul, középen és a vetítő mögött is égők. Az összes azt jelenti, hogy a fent leírt égők mind világítanak. A gyenge gomb azt jelenti, hogy egy vetítő üzemmódban ég vagyis gyengébben. Az M5 a kézi üzemmód neve. Ezek után vannak még gombok. A további állapotokba való lépésbe. Pl az m6 üzemmód azt jelenti, hogy az összes égő ég és az összes gombal kapcsolom be. A kev gombbal pedig kapcsolom át az m8-as állapotba. És ezen állapoton szeretném beállítani, hogy az elől, hátul, középen lévő égőket különböző gombokkal tudjam kapcsolni.
Deklaráláskor meg kell adni, hogy az állapot az bool, és a többi az byte.
A képet ide nem tudom, hogy kell feltölteni de az alábbi linken letölthető
A K1,k2... jelenti a kapcsolót. A felíratok pedig, hogy hol égne az égő.
Jancskárné tanárnő jegyzetében találtam hasonlót. Csak pontosan nem tudom, hogy lehet megvalósítani.
Előre is köszi
http://data.hu/get/5078919/IMG053.jpg

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

Hello Szirty
Igen ez egy iskolai feladat. Szakdolgozathoz kellene ezt megvalósítani. Autómata üzemmód természetesen van. Az működik is ez egy más ág. Feltöltöm az állapotgráfot hátha úgy egyszerűbb megérteni.
A K1, K2, K3, K4 azok gombok és azok azt csinálják, hogy elől, hátul, középen, vetítő mögött kapcsolják fel az égőket. És ezek variációi.
Ezt csak az m8-as állapotra vonatkozik. Vagyis ezek akkor fognak működni amikor az m8 állapotban kerül.
Valahogy bool to byte vagy esetleg más módszerrel, hogy lehetne?
Így érhető vagy még így se?

Szia raceboy!
Valahogy így kell felépíteni a logikát:
LD M8
AND K1
S L1 (* elöl bekapcsol *)
LD M8
ANDN K1
R L1 (* elöl kikapcsol *)
Nyilván csak úgy van értelme, ha biztosított, hogy az M8-on kívül a többi állapot / üzemmód 0.
A bool változók a deklarációs részben szervezhetők bájtba:
(Möllernél valahogy így néz ki, más PLC-n máshogy...)
VAR
Kapcsolok AT %IB0.0.0.0 : BYTE ; (* az első 8 bemenet a PLC-n *)
K1 AT %IB0.0.0.0.0 : BOOL ; (* a Kapcsolok bájt 0. bitje, de már BOOL típus *)
K2 AT %IB0.0.0.0.1 : BOOL ; (* a Kapcsolok bájt 1. bitje *)
stb., ugyanez a kimeneteknél is.
END_VAR

Elszúrtam, a "K1 AT %IB0.0.0.0.0 : BOOL ;" és a "K2 AT %IB0.0.0.0.1 : BOOL ;" nem jó, a B nem kell bele, helyesen:
K1 AT %I0.0.0.0.0 : BOOL ;
K2 AT %I0.0.0.0.1 : BOOL ;
...lényeg, hogy az input bájt címén belülre hivatkozik.

Hello Watchdog!
Köszi szépen így már működik
[ Szerkesztve ]

Sziasztok,
UNITRONICS programozót keresek néhány megbízásra, lehetséges a jövőben több is. Légy szíves küldjetek elérhetőséget!
Kösz!
Ui.: Kösz Gugli!
Kösz RIOS!

Sziasztok
Segítségre lenne szükségem. Siemens s7 200-as plc-m van (cpu 222), amit hobbi szinten programozok, a digitális be és kimenetekkel nincs is gond. Nemrég sikerült beszereznem analóg bemeneti modult, analóg kimeneti modult és 1db Pid modult. Sajnos az analóg jelről csak annyit tudok,hogy 0-20mA vagy 4-20mA vagy 0-10V között lehet.
Az internetem próbáltam hozzáprogramozási példákat keresni, de nem sikerült. 
Első lépésként valami,olyan programot szeretnék írni, hogy digitális bemenetekre adott kapcsolásokra különböző analóg kimenetek keletkezzenek.
Például: Q0.0 = 1V vagy 2mA , Q0.1 = 2V vagy 4mA
Ez megoldható?
Megköszönném, ha valaki segítene. 

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

Sajnos az Output Tables analóg részébe nem tudok beírni értékeket, ha a cpu tipusa 222
és a verziója 01.11 -re van állítva, ha a verzió szám 02.00 vagy nagyobb akkor lehet.
Ez azt jelenti ,hogy cpu222 01.11 verziójú plc-mel nem lehet analóg kimenetet működtetni?

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

Értem, a kézikönyv 44. oldalát néztem nem a tényleges 44. oldalt. 
Szóval MOV W.
In és az OUT -hoz miket lehet beírni?
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.
Sajnos analóg jelekre még sosem programoztam. Segítségedet előre is köszönöm.

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

Köszönöm, óriási segítség volt.
Működik

Körülbelül 32000-nél adja ki a 10V-ot, nagyobb számoknál polaritást vált és csökken,szóval -10V +10V-ot is kezel. 

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

Sziasztok,
akkor ez nem állás pályázó portál
Ha valakit tudnátok UNITRONICS programozásra mégis, érdekelne...
Kösz:
Surd
[ Szerkesztve ]

Sziasztok, valaki nem tudja, hogy a képen látható nullás utasítás ami a programban majd lentebb folytatódik (a kettő közt még van jó néhány utasítás) az mit jelent? neten nem találtam semmit. Azt hittem valami jump, de nem vagyok benne biztos. Ez egy mitsubishi PLC
Köszi

[ Szerkesztve ]

Válasz: nem fért ki az utasítás és ez egy sortörés.

Sziasztok! Még új vagyok a fórumon. Üdvözlök mindenkit!
Olyan kérdéssel fordulok hozzátok, hogy lenne-e esetleg itt olyan emberke,
aki vállalna néhány órás "korepetálást" omron cpm1/2 plc programozásból...
Pesti vagyok, légyszi magánba írjatok, megbeszéljük a részleteket... 
Köszi!

Helló vopi86!
Én a magam részéről annyit szívesen ígérhetek, hogy itt a fórumon segítek neked ha tudok.
Szirty

Hello
A leírt megoldás nagyszerűen működik, csak egy olyan kiegészítés kellene hozzá, hogy a gomb lenyomás után még egy pár másodpercig még világítson, azt melyik időzítő típussal lehetne megoldani és hogyan?
előre is köszi

Helló raceboy!
A megoldás a TON (bekapcsolás késleltetés) típusú időzítők használata lesz. A lámpa bekapcsoló (SET) programrészek rendben vannak, a lámpa kikapcsoló (RESET) programrészekbe kell beilleszteni egy-egy időzítőt. Ha az M8 üzemmódban elengedik a gombot, az időzítő kimenete "t" idő múlva logikai 1-be megy. Az időzítő bemenetére az kerüljön, hogy M8 üzemmódban nem nyomják a gombot, a kimenetével pedig resetelni kell a megfelelő lámpát. A bemenet közvetlenül a logikai feltételek után az "ST Időzítőneve.IN" utasítással érhető el. Az időzítőket deklarálni kell, majd a CAL Időzítőneve(attributumok) formában illeszthetők be. Az időzítő kimeneti bool jelét a reseteléshez úgy tudod kiolvasni, hogy "LD Időzítőneve.Q".
Ezzel a megoldással úgy fog viselkedni a vezérlés, hogy ha bekapcsolt lámpával váltasz üzemmódot, akkor az új üzemmód feltételrendszere szerint marad égve, vagy alszik ki a lámpa (ha pl. égő lámpával kerül M8 üzemmódba, akkor "t" idő múlva kikapcsol).
[ Szerkesztve ]

Hello
ldn me2
and t1.q
r f1
gondolom ez megy a reset ágra. és az időzítőt? hogy írom meg?
ld m8
andn me2
s t1.in
ld t#10s
st t1.pt
cal t1
így próbáltam de így nem volt jó. hogy javítsam át?
előre is köszi

Üdv!
LD M8 (* csak ebben az üzemmódban figyeli a gombot *)
ANDN ME2 (* ME2 nevű gomb bemenet *)
ST T1.IN (* nem S - azaz set, hanem ST - azaz store *)
CAL T1 ( IN := , PT := T#10s | := Q , := ET ) (* ezt nem kell fejből begépelni, gyorsmenüből is be lehet szúrni, már nem emlékszem, hogy - tán F2??? a help-ben biztos benne van... én egy kiexportált programrészből másoltam ki, nincs a gépemen a fejlesztő... *)
LD T1.Q (* ha M8 üzemmódban, T1 ideje a gomb elengedve *)
R F1 (* az F1 nevű lámpa kimenet kikapcsol *)
A zárójeles részen belül közvetlenül is hozzá lehet rendelni bool változókat az időzítő be/kimenetekhez, bonyolult program esetén megéri felvenni párat. De S/R, vagy más logikai összefüggés nem lehet a zárójelen belül.

Hello
Moeller plc-nél a rendszer időt (év, hó, nap, +óra és perc) hogyan lehet lekérdezni? mert össze szeretném hasonlítani egy konstansban megadott dátummal, azt tudom, hogy EQ-val kell, csak a lekérdezést nem találtam.

Szia!
Köszönöm előre is. Most vásároltam egy CPM1-es PLC-t gyakorolni,
esetleg van ötleted, hogy mivel tudom elkezdeni? Tehát bemenetekre kapcsolókon túl miket tudok tenni, illetve a kimenetekre a ledeken kívűl? 
Köszi,
vopi 