Új hozzászólás Aktív témák
-
kojak79
újonc
-
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. -
rsf
senior tag
Sziasztok!
Siemens 300-as CPU-nál miért nem működik a BLKMOV PIW területről?
A help szerint kellene működnie, de az internetes fórumok szerint nem.
És én is ugy tapasztalom, hogy nem.
Van vmi működő megoldásotok, mert nem akarom 20db MOVE-al megoldani a feladatot.
Köszi. -
Szirty
őstag
válasz
plutokas #4740 üzenetére
Üdv plutokas!
Ismét csak tudni kellene, hogy mit hogyan állítottál be. Pl. az screen number areapointert. Ugyanis az nem csak egy word, hanem rögtön öt! Ezért a DB-ben amire ráállítod 5 word (10 byte) helyet kell neki hagyni.
Ráadásul nem az első word a kép száma, hanem a második. Az elsőben meg azt közli, hogy normal screen van-e a képernyőn vagy system screen. Azt is illik figyelembe venni. Ha nem hagytál neki 5 word helyet, akkor a DB-ben szépen felülfirkálja a megadott cím utána következő 8 byte-ot. Ha éppen oda tettél valamit, netán pont azt az integert amivel át akarod vátani a screen-t, akkor baj van.Továbbá: A screen number areapointerben a panel mondja meg melyik kép van kijelezve és nem te neki hogy melyiket jelezze ki.
"Létreehoztam egy TAG-et amiben ActivateScreenByNumber eseménnyel összepárosítottam és erre az adatbázisra kapcsoltam."
Az ActivateScreenByNumber nem esemény, hanem egy funkció. A funkciót lehet eseményhez rendelni.
Milyen eseményhez rendelted tehát ezt a funkciót?
Ha netán éppen a TAG change value eseményéhez, akkor beállítottad-e a TAG acquistion cycle-jét cyclic on use-ról cyclic continuous-ra? Ha nem, akkor nem fog létrejönni az esemény, ha a TAG-et a panel nem olvassa, a TAG-et a panel márpedig nem olvassa ha nincs az aktív képen olyan in/out aktív elem, amihez ez a TAG hozzá van rendelve stb, stb...Megint találgatni kell! Kérdezz pontosabban!
Ui.:
Hasznos lenne, ha csinálnál egy olyan screent, amire tennél egy AlarmView objektumot, amit beállítanál a rendszer üzenetek megjelenítésére.(Display: Alarm events, Classes: System).
Ezt az ablakot a HMI ugyanis szépen telesírja ha valami fáj neki. Ilyenkor igen hasznos erre ránézni. Szerintem neked ott most olyasmi üzenet lenne, hogy "Invalid screen number"... -
plutokas
csendes tag
Sziasztok. Megint egy rejtélyes esetbe futottam bele.
Van egy TP170-em amin a fő ablak 1-es és van 12 másik képernyőm.
Létrehoztam egy DB-t amiben az ablakszámot word formátumban tárolom. DB2 DBW2.0
A TP-ben a communicationban a screen area pointert ezzel összekapcsoltam.
Létreehoztam egy TAG-et amiben ActivateScreenByNumber eseménnyel összepárosítottam és erre az adatbázisra kapcsoltam.
Elinditom a szimulátort és megváltoztatom az értéket mondjuk 12-re akkor frankón átvált erre a képernyőre.
Ha PLC-ből éles környezetben beirom az adatbázisba bármelyik ablakot nem lép át.
Sőt már odáig vetemedtem, hogy egy dobozt kiraktam a képernyőre hogy beirva egy számot váltson át egy másikra (Az is ezt a word értéket változtatja) de semmi.
Mi a fenét ronthatok el már megint?
Üdv! -
Szirty
őstag
válasz
plutokas #4738 üzenetére
Helló plutokas!
"Megmondom őszintén lövésem sincs mi lehetett a hiba."
Én pontosan megmondom neked mi volt a hiba ha elárulod mit hogyan állítottál be, de addig erre nincs lehetőségem! De ezt már kifejtettem.
"Esetleg valaki tudja fejből hogyan lehet beállitani azt ha megszűnik az alarm esemény akkor hogyan tűnjön el az alarm a képernyőről automatikusan?"
Igen.
A Display opciónál csak a Pendig alarm legyen bejelölve, az Unacknowledged alarms ne.Akkor csak azok az alarmok lesznek az ablakban, amelyekhez tartozó trigger bit állapota TRUE. Ha FALSE lesz, a listából a hozzá tartozó alarm eltűnik, ha özben újabb TRUE lesz, akkor hozzá íródik.
Még mindig nem tudom, hogy Alarm view, vagy Alarm Window objektummal kapcsolatban kérdezel-e, egyszerűen nem vagy hajlandó ezt elárulni akárhányszor kérem. Nem érted a kérdést, vagy nem tartod fontosnak hogy válaszolj rá?
Alarm Window esetén maga az ablak is automatikusan eltűnik, ha a lista üressé válik. Egyébként csak akkor tűnik el ha bezárod.
Feltéve persze, hogy a Mode beállításánál az Automatic display be van jelölve (egyébként magától nem jelenik meg és nem is tűnik el). -
plutokas
csendes tag
Sziasztok!
Köszönöm a segitségetek. Megmondom őszintén lövésem sincs mi lehetett a hiba. CSináltam egy projektet varázslóval onnan átmásoltam az alarm dolgokat kitöltöttem a discrete alarm panelt és már megy is.
Ugyan ezt csináltam meg amikor feltettem felétek a kérdést csak manuálisan.Esetleg valaki tudja fejből hogyan lehet beállitani azt ha megszűnik az alarm esemény akkor hogyan tűnjön el az alarm a képernyőről automatikusan?
Illetve hogyan lehetne legegyszerűbben bool-ból word-ot csinálni?
-
joci9
tag
válasz
Achilles83 #4736 üzenetére
Igen.
-
Achilles83
csendes tag
Sziasztok!Van egy CJ1M-CPU22-es Omron PLC-m.Ha van egy soros-Ethernet átalakítóm, akkor elvileg routeren keresztül is lehet rá csatlakozni?
-
Szirty
őstag
válasz
plutokas #4734 üzenetére
Helló!
Így nem tudok segíteni!
Alarmot kétféleképpen lehet megjeleníteni: Alarm view és Alarm vindow objektummal.
Az előbbit egy tetszőleges screenre lerakhatod, akkor látszik ha az a kép van megjelenítve, egyébként nem.
Az utóbbit csak template screenen lehet elhelyezni és lehet előugró ablak (amikor hiba jön megjelenik akármelyik screen van épp a kijelzőn) de ki is kapcsolható, hogy felugró legyen (automatic display).ha nem felugrónak van beállítva, akkor a ShowAlarmWindow funkcióval lehet előcsalni és eltüntetni, amit szinte bármihez hozzárendelhetsz (akár egy gombhoz is). Megjelenítés funkcióra megjelenik akármelyik screen van a képernyőn.
Az sem mindegy hogy van beállítva ez a két objektum, mert be lehet úgy állítani hogy az alarmokat nem is jeleníti meg, vagy csak bizonyos alarmokat. Teljesen beállítás függő!
Továbbá nem árt tudni, hogy a trigger bitnek legalább egy másodpercig aktívnak kell lennie,hogy a panel észrevegye, mivel az alarm word acq. ciklusa 1 sec alapesetben!
-
plutokas
csendes tag
válasz
Dezsi82 #4733 üzenetére
Este próbálkozom még vele, de ha nem megy akkor készitek képeket.
Már csináltam a discrete alarm-ból 16db-ot, hogy bármi változásra megjelenjen egy hiba üzenet.
Egy meglévő ablakra dobtam fel az alarmot.A Step7-ben a DB-ben látni, hogy hiba esetén megjelenik a tartalom a hiba kezelő adatbázisban, tehát a probléma valahol HMI oldalon lehet majd.
-
Szirty
őstag
válasz
Dezsi82 #4731 üzenetére
Üdv!
Elvileg nincs szükség külön állítgatni az alarm trigger bitet tartalmazó word acquistion módját, mert akármire is van beállítva abban a pillanatban ahogy a discrete alarm listába berak belőle egy bitet, átállítja cyclic continuous-ra.
Persze utólag vissza lehet állítani másra, de amikor megint berak egy másik bitet, megint átállítja.
Ha azt is visszaállítja, akkor jön a fordítási Warning, miszerint:"Acquistion mode cyclic continuous requires for trigger tag"
-
byte-by
tag
válasz
plutokas #4727 üzenetére
halo!
ez ugyan tia portal, de talán hasonló.milyen trigger alkalmaztál?
a trigger a hibaszónak az aktív bitje.
a mellékelt képen látható, hogy létrehoztam egy hibaszót , majd ahogy ujabb hibákat vettem fel láthatóak a "trigger address " oszlopban a hibaszó bitjei.ezeket a biteket kell aktivvá tenni ha egy hiba keletjezik.
tia portal-ban ez a hmi alarm menüben van , de alapértelmezett discrete alarms.a hmi-n egy "alarm view " ablakot teszek ki , ez alapértelmezettként a hmi alarm hibaszó bitjeihez rendelt hibákat fogja kiírni.
u.i: látom Sirty megelőzött.
byte
-
Szirty
őstag
válasz
plutokas #4727 üzenetére
Helló plutokas!
Nem szeretnék pimasz lenni, de velem előfordul hogy olykor screenshot részletekkel is alátámasztom a válaszaimat, hogy az még jobban érthető legyen.
Megtennéd a kedvemért, hogy néhány képpel és/vagy további információval teszed érthetőbbé a kérdést?
Olyan információkra gondolok itt mint az alábbiak:- Hova rakod a triggerelő bitet, és azzal mit csinál és mikor a PLC? Ki kell hogy derüljön kevered-e az alsó és felső byte-ot a wordben vagy nem (a trigger address segít)!
- A discrete alarm-ot pontosan hogyan állítottad be?
- Milyen alarm screent állítottál be miféle eseményre? (nincs olyan hogy alarm screen. Olayn van hogy alarm window és alarm view)
- Ha ezekre gondoltál, azt pontosan hova tetted, milyen screen-re és hogyan állítottad be?
- És nem utolsó sorban: "de semmi nem történik." írd le mit szeretnél, hogy mi történjen? -
plutokas
csendes tag
Köszönöm sikerült!
Még egy nagy problémám van a hibakezelés. (STEP7 5.4)
Létrehoztam egy adtabázist amiben tárolom a hibákat INT tipusú mezőben.
Adok neki értéket MOV paranccsal próbaképpen.Wincc-vel TP177-re elkészítek discrete alarm-ot. Beadom neki a triggerelő bitet. Beállítom eseményre az Alarmscreen-t, de semmi nem történik.
Hol ronthaom el a hibakezelés létrehozását? -
aky01
tag
Sziasztok!
Eladó 6GK1561-1AA00 CP5611 PCI kártya hibátlan állapotban 20e Ft.
Akit érdekel PM-ben keressen. -
Dezsi82
tag
válasz
KB.Pifu #4723 üzenetére
Üdv
Valóban nincs a Mitsubishinek intelligens súgója (legalábbis a GX Developernek, amit én használok), de azért vannak súgófájlok (legalábbis egy jogtisztának, egész biztos) ami a súgó menüből elérhető. De én is jobban kedvelem az Omron súgóját, Viszont tapasztalataim szerint a Mitsubishi és az Omron nagyon sokban hasonlítanak (mindkettő japán, hasonló a gondolkodás), sokkal jobban,mint Siemens és Omron.
A példa amit írtál, érdekes. Az L terület a Latch terület, vagyis megőrzi a tartalmát, kikapcsolás után is.
A szorzás már érdekes dolog, én két esetre tudok gondolni:
- az M területet is lehet kezelni számként, ilyenkor mögé kell írni hány digitet akarsz címezni (ha jól emlékszem). pl M10K2, ami egy 8 bites integer. Tehát lehet, hogy összeszoroz két ilyen számot, és kiírja retentív területre
- a másik, hogy a két bittel XOR műveletet hajt végre, és ezt menti retentív területre. Bár nem találtam meg a XOR műveletet Mitshibishire, de lehet könnyen be lehet nézni szorzásnak -
KB.Pifu
tag
válasz
Dezsi82 #4722 üzenetére
szia!
örülök, hogy ezekre a különbségekre rávilágítottál, utána kell néznem egyesével mind, én inkább grafikai és logikai hasonlóságokra gondolok, ami egy átlag user-t segít a tájékozódásban, pl mindkettőnél paraméterátadás nagyban hasonlatos, tehát ha nem is tudja akkor sejti hogy hol lehet a válasz, ami pedig a legfontosabb, hogy az F1, itt segíti az embert.
Sokat gondolkodtam, hogy mitsubishi vagy omron legyen a következő, ez akkor eldőlt, amikor élőben kelett monitorozni a mitsubishi PLC-t és semmi súgó vagy hasonló támasz nem volt, lehet verziószám hiba, de akkor sem volt túl megnyerő, pl internet csatlakozás nélkül meg voltam lőve, amikor két merker bitet logikailag összeszorzott és az eredmény az L1018-ba adta meg. Azóta se tudom milyen adat terület ez, de talán most megmondja valaki -
Dezsi82
tag
válasz
KB.Pifu #4720 üzenetére
Üdv!
Nem, Omronnál azért egy kicsit másként működik. Alapvetően Omronnál nem beállítható, hanem a H terület szolgál adatmegőrző területként, illetve a D terület, ami megőrzi a tartalmát, de az mindig.Én úgy gondolom, hogy az Omron és a Siemens PLC nagyban eltér egymástól. Minimum a memóriacímzésben, hiszen míg az omronnak Wordos a memóriaszerkezete, addig a Siemensnek bájtos. A legértékesebb címben is eltérnek. Míg az Omronnál a felső bájt az értékesebb, addig Siemensnél az alsó. Amíg siemensnél az egyes funkcióknak, mint kommunikáció, stb függvények vannak, addig Omronnál a megfelelő címekre kell a megfelelő értékeket beírnod.
Nyilván, mivel mindkettő PLC, ezért vonatkoznak rájuk bizonyos szabványok, amelyeket a gyártóknak be kell tartani, ezért nagyban egyeznek, de azért sok az egyedi vonás. Ha valaki tud PLCt programozni, akkor tudja mindegyik PLCt programozni. Kérdés, hogy mennyi idejébe telik, mire az adott gyártó saját tulajdonságait megszokja.
-
Dezsi82
tag
-
KB.Pifu
tag
Köszönet!
Ezekért az információmorzsákért járok ide fórumozni
Gondolom Omronnál hasonló módon de önállóan megtalálom, egy személyes vélemény bár omront annyira nem nézegettem, de a hasonlóság a felépítésben és megjelenítésben igencsak szembeszökő.
(pl elsőre sikerült a paraméter átadós blokkot írni a hasonlóság miatt) -
byte-by
tag
halo,
a vitához annyit tennék hozzá, hogy " (#4702) plutokas", kérdésére válaszoltam az ob100 beépített restart ciklusával.
nem helyette , nem kész programmal, de onnan biztos meg tudja oldani, ha nem akkor természetesen tovább segít az ember ha tud.annyit azért hozzátennék, hogy én nem szoktam kitalálni még egyszer amit már megoldottak.
nyilván azért van a legtöbb gyakran használatos gyártónál akár "first cycle" akár "last cycle" blokk vagy változó, mert igény van rá, de ne kelljen ezzel különösebben foglalkozni.
beépített megoldások, csak használni kell.
aztán ezzel ki mit kezd az legyen az ő gondja, ezt hívják tapasztalatnak.személy szerint már nem használok omront (sajnos csak ritkán), csak s7-1200 és s7-1500 sorozatokat TIA portal-lal. ott eleve "startup"-nak hivják és auto ob100...101... címet kap.
egyszerűen beírok 1-egy egy memóriába, amit majd törlök.
megjegyzem még omronnál szoktam rá, hogy bizonyos kritikus memóriákat indításkor feltöltöm az alap paraméterekkel, pl. poka-yoke céllal.byte
-
Szirty
őstag
válasz
Dezsi82 #4715 üzenetére
Üdv Dezsi82!
"De találkoztam már jó pár S7-300s CPUval, így úgy gondolom ez nem lehet De találkoztam már jó pár S7-300s CPUval, így úgy gondolom ez nem lehet nagyon gyakori.nagyon gyakori."
Az újabbak ilyenek. A 400-asok közül a régebbiek is.
Nekem a legelső CPU-n nem működött emiatt amin kipróbáltam!
Főleg hogy alacsony című merker címet írtál a példába és a retentív terület beállításánál a kezdőcím rendszerint 0!!
Tehát az alacsony címeknél a legvalószínűbb, hogy nem fog működni ez a módszer.Ez a megoldás ellenjavalt. Senkinek nem ajánlom!
A restart OB-t találták ki arra, hogy indításkor elvégzendő feladatokat az végezze el. -
Dezsi82
tag
válasz
Mazsika #4708 üzenetére
Üdv!
Egy rövid keresés után én ezt találtam
http://cache.automation.siemens.com/dnl/DUyNDEwOQAA_23330722_DL/23330722_Getting_LED_Status.pdf -
Dezsi82
tag
Üdv!
Részemről az, hogy "csak" nem retentív területen működik egyáltalán nem komoly hátrány. Tény, hogy nem találkoztam még olyan S7-300s CPUval, ahol mindegyik terület retentív, és ebben esetleg hibáztam. De találkoztam már jó pár S7-300s CPUval, így úgy gondolom ez nem lehet nagyon gyakori. De nyilván tévedhetek.Még szép, hogy ajánlom a megoldásom, hiszen az elmúlt 14 évben még egyszer sem okozott gondot.
-
Szirty
őstag
válasz
KB.Pifu #4713 üzenetére
Üdv KB.Pifu!
Nem így működik. Abban az van leírva mekkora az adatmegtartó terület mérete.
Hogy mi tartsa meg az meg állítható (ha nem mind az). Itt egy példa. Ez egy S7-300 CPU351-2 DP (2AG10-es):Itt azt látni, hogy enél a CPU-nál a DB-k mindegyike adatmegtartó, a merkerek közül meg MB0 címtől annyi byte amennyit megadunk neki. Illetve ugyanez a timerekre és counterekre.
Ez pedig szintén egy S7-300 CPU351-2 DP, de régebbi típus, (2AF02):Itt összesen csak 4k retentív memória van ezért a DB-k-nél is meg kell adni melyikből, honnantól mennyi legyen adatmegtartó.
-
KB.Pifu
tag
Sziasztok!
ugye még nem kellett élesben egy plc-vel sem foglalkoznom, itt beszélgettek különböző plc-k különböző retentív memóra-területeiről.
Tehát a kérdés, felcsapok egy siemenss7-300 xxxx típusú plc datasheetet, akkor abban le van írva ,hogy címzés szerint melyik memória terület lehet retentív?
Vagy itt pl csak a DB -re M -re gondoltok?üdv
Pifu -
Szirty
őstag
válasz
Dezsi82 #4711 üzenetére
Helló Dezsi82!
Az rendben van hogy minden feladatra van sok megoldás és ezek között több megfelelően helyes.
Bár kifejezetten a megoldást nem ajánlottad, csak leírtad te hogyan csinálod, de ezt egy olyan kérdésre írtad, amiben azt kérdezik hogyan lehet first cycle impulzust létrehozni.
Ha már akkor is tisztában voltál a módszer komoly hátrányával (amikor az illető bit nem "felejt") akkor ezt nem ártott volna megemlíteni, mert akinek ilyen tipped adsz, azt bevezeted az erdőbe. Ő meg ír egy időzített bombát egy programba.
Nyilván úgy csinálod, ahogy akarod, rendben van. De mint írtam, van CPU, aminél minden retentív (kivéve a process image bitek). Az ilyennél hogy oldod meg ezt? Vagy nem találkoztál még ilyennel? -
Dezsi82
tag
Üdv!
Részemről nem volt semmi probléma a gondolatmeneteddel, teljesen igazad van, ha retentív területet választ az ember nem fog működni. Teljesen felesleges tesztelnem, tisztában vagyok vele, hogy így fog működni, ahogy azzal is hogy teljesen hibátlanul működik, ha nem retentív területen használja az ember.Én úgy gondolom, hogy nincs abszolút jó megoldás egy feladat leprogramozásánál. Nyilván rosszak vannak, de a programozás épp egy olyan feladat, ahol a programozó döntésére van bízva, hogy mit, hogyan programoz le. Láthatjuk másként a dolgokat, megvitathatjuk az ezek egymással szemközti előnyeit, hátrányait, de alapvetően mindenki maga dönti el, hogy melyik megoldást használja a saját programjában. Én sosem fogom használni az OB-s megoldást, de sosem a felejtő memóriaterületet. És nincs ezzel semmi baj.
-
Szirty
őstag
válasz
Dezsi82 #4707 üzenetére
Helló Dezsi82!
Azt hiszem az imént túlságosan lehengerlő voltam, elnézést!
Szóval azért nem jó az a always on bittel létrehozott impulzus mint first cycle flag, mert ha a kiszemelt bit értéke 1 marad kikapcsolás után majd újabb bekapcsolás alakalmával, az impulzus nem fog létrejönni, mert nem lesz 0->1 átmenet.
És hát az adatmegtartó terület éppen ilyen tulajdonsággal bír.Próbáltam indokolni, elnézést ha nem fejtettem ki kellő mélységben! Teszteld széleskörűen azt a módszert, látni fogod!
-
Mazsika
őstag
Arra van valakinek ötlete, hogy a siemens plcken lévő ledek állapotát jogyan lehet megtudni? Pl.: pb, sf, run, stb...
-
Dezsi82
tag
Üdv.
Hát ennyi erővel az sem megfelelő, ha OB100-ban van, mert ha valaki írja azt a bitet (amit Te is írtál), akkor ugyanúgy megszívja.
Vagy ha mondjuk az ember a clock byte-ot állítja be úgy, hogy átfedésben legyen ezekkel a bitekkel. Vagy MPI Global Datának, de szerintem lehetne még sorolni.
és nem kell külön merker bit sem a -(P)- miatt.
Külön bit ugyan nem kell, csak külön OB.
Persze, hogy nem lehet ész nélkül programozni, de ez nem csak erre a feladatra igaz. -
Szirty
őstag
válasz
Dezsi82 #4705 üzenetére
Helló Dezsi82!
Óha!
Sajnos nem értek egyet! Ez a megoldás nagyon szívatós!
Senkinek nem ajánlom!!!Ha az M0.0 retentív területen van, akkor nem fog működni. Márpedig van olyan CPU aminél te mondod meg melyik merker terület legyen retentív és melyik ne, és van olyan CPU amelyiknél mindenképpen mind az. Na annál fogják megszívni.
Mindenki használja azt ahol OB100-ban SET bit
OB1 utolsó sorában RESET bit.
Bomba biztos és nem kell külön merker bit sem a -(P)- miatt. -
Dezsi82
tag
válasz
plutokas #4702 üzenetére
Üdv!
A korábban vázolt megoldások is tökéletesek, de én máshogy szoktam.
Két megoldást alkalmazok:
- Általában szoktam használni egy mindig1 és egy mindig0 bitet is. M0.0 a mindig hamis, M0.1 a mindig igaz, és M0.2 az első scan
Az OB1 első sorai:
- Vagy ha nem akarom cifrázni, akkor az ob1 utolsó sorában setelek egy bitet, ha ezt negáltan lekérdezem a programban, akkor ez egy első ciklus bit -
Szirty
őstag
válasz
plutokas #4702 üzenetére
Helló
De ide berakom, mert az írás nem erről szól, csak tartalmazza:
-----------------------------
Az elsőhöz szükség lesz egy "first scan flag" jellegű bitre, ami egy ciklus ideig bekapcsol, amikor a PLC feléled. Ilyet nekünk kell létrehozni, ami nem túl bonyolult.
Hozzunk létre egy OB100-at, egy OB101-et, és egy OB102 blokkot. Ezek a blokkok egyszer lefutnak újraindításkor. Mindegyik más-más esetben:
OB100 - Warm restart
OB101 - Hot restart
OB102 - Cold restart
Mind a három blokkba írjuk be az alábbi három STL utasítást:
SET
= M 0.4
BE
Ez a pár sor bekapcsolja az M0.4 merkert amikor a blokk lefut (vagyis újrainduláskor).
Megjegyzés: Bizonyos CPU típusokba nem tudjuk mindhárom blokkot feltölteni, mert nem mindegyik ismeri mindhárom módot. Ez nem baj, azokat töltsük fel amelyeket enged).
Az OB1 utolsó sora pedig ez legyen:
CLR
= M 0.4
Minden más utasítást (a "BE" kivételével) a fenti két sor elé írjunk (pl. a blokk hívásokat).
Ez a két sor kikapcsolja az M0.4-es merkert.
Újrainduláskor tehát az M0.4-et bekapcsolja valamelyik restart OB, az OB1 első lefutása után pedig kikapcsolódik és úgy marad.
Természetesen az M0.4 funkciója mostantól az, hogy újrainduláskor ad egy impulzust, így a programban máshol nem változtathatjuk meg az értékét (csak olvasni szabad).
----------------------------- -
byte-by
tag
válasz
plutokas #4702 üzenetére
halo .
ob100, "complete restart " .
ez lefut bekpcsoláskor, aztán inaktív lesz.legalább is tia portal-ban.
meghivsz egy ob-t aztán a számát átírod 100-ra, ha beágyazod, mellékeli a symbol name-t ami a "complete restart" lesz, simatic manger-ben.
tia-ban autó cimzéssel megy.byte
-
plutokas
csendes tag
Elég kezdő kérdésnek tűnik de nem találom.
Siemens S7-300-on szeretném a bekapcsolás utáni első ciklust megkülönböztetni. Nem tudjátok van rá valami funkció, hogy az első ciklust érzékeljük vagy írni kell rá valamit? -
byte-by
tag
halo!
a siemens honlapjáról , az automation software opció alatt letölthetők 21 napos verziók.
a simatic basic v13 trial a hozzáférhető, és egyéb komponensek.sajnos a 21 nap alig több a semminél.
byte
Új hozzászólás Aktív témák
- Intel Core i7-14700K 20-Core 3.4GHz LGA1700 (33M Cache, up to 5.60 GHz) Processzor! BeszámítOK
- Intel Core i9-14900K 24-Core 3.2GHz LGA1700 oem(36M Cache, up to 6.00 GHz) Processzor! BeszámítOK
- ASUS TUF Gaming RX 6700 XT OC 12GB GDDR6 Videokártya!
- Latitude 5350 2-in-1 13.3" FHD IPS érintő Ultra 5 135U 16GB 512GB NVMe magyar vbill gar
- iPhone 15 Pro Max / Natural Titanium / 256 Gb
- Azonnali készpénzes Microsoft XBOX Series S és Series X felvásárlás személyesen/csomagküldéssel
- HP 440 G9 /I3-1215U/4GB/ Esztétikai hibás és kijelző hibás
- BESZÁMÍTÁS! ASRock A520M R3 3100 16GB DDR4 512GB SSD RX 6500XT 4GB BitFenix Neos Thermaltake 500W
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Újra Akcióban!!! Ducky One 2 Mini és SF billentyűzetek a bolti ár töredékéért! Számla+Gari
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest