Hirdetés
-
Stellar Blade - Befutottak az első tesztek
gp A beszámolók alapján talán elmondható, hogy a stílus kedvelőinek érdeme lehet beszerezni a teljes kiadást.
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
Középkori építgetést preferál az új Arc meghajtó
ph A 31.0.101.5445-ös, WHQL aláírással rendelkező csomag egy hibát is javít.
Új hozzászólás Aktív témák
-
Szirty
őstag
válasz Shirchy #4400 üzenetére
Helló Shirchy!
Ott követted el a hibát, hogy "összeakasztottál" két változót.
Az FC105 RET_VAL kimenetét az MW100-ba küldöd, a skálázás eredményét pedig MD100-ba!Ez azért nem jó, mert az MD100 és az MW100 két byte-ja azonos, így a két változó 2 byte átfedésben van egymással ezért részben felülírják egymást. Hogy hogyan azt az alábbi ábra személteti más címekkel:
Ez talán figyelmetlenség, de ha nem, akkor ajánlom figyelmedbe ezt:
Siemens S7 300-400 adatterületek és címzésmódokMeg kell szüntetned ezt a konfliktust.
Vagy a RET_VAL legyen MW100 helyett MW98, vagy az OUT legyen MD100 helyett MD102 (feltéve persze hogy ezzel nem kerülnek máshol használt változóval hasonlóképpen átfedésbe).[ Szerkesztve ]
-
Shirchy
tag
Helló,Szirty!
Most,hogy átírtam már működik,és ahogy végignéztem amit eddig csináltam,sajnos több helyen is elnéztem. Nagyon kezdő vagyok még,de igyekszem pótolni a hiányosságokat,és nagyon köszönöm a gyors,korrekt segítséget!
"Egyszer nagy leszek és meghálálom,ha tudom"
"jobb adni,mint kapni" mondta a boxoló... :P
-
Shirchy
tag
Sziasztok!
Akadt egy kis problémám (S7 300),amit nem értek. Megosztott DB-ben elkezdtem letárolni a változóimat és jelenleg
2-nél több változót nem tudok beletenni. A többiben legalább 5-6 változót engedett a jelenlegiben meg 2 BOOL típusu van,és hiába veszi fel a többit a sorba nem tudom meghívni őket a programban. Az address oszlop legvégén továbbra is =2 marad.A segítséget előre is köszönöm!
[ Szerkesztve ]
"jobb adni,mint kapni" mondta a boxoló... :P
-
Shirchy
tag
Összesen van 3 FB amihez tartozik 3DB mindegyikben 3 real van tárolva,illetve lenne még 29 változóm egy megosztott db-ben,amiből 6 real tipusu. Létezik,hogy megtelt a memória?
Vagy az a baj,hogy adott fc-ken belül több DB-ből kérem be az adatot?
A pontos típusa: 315-2 PN/DP 6ES7 315-2EH14-0AB0
[ Szerkesztve ]
"jobb adni,mint kapni" mondta a boxoló... :P
-
Mazsika
őstag
válasz Shirchy #4405 üzenetére
Ez még így mindig nem világos, talán ha tennél be képet jobban megértenénk. Ki van zárva hogy egy ekkora program megtöltsön bármilyen kicsi memóriát, ráadásul azt a rátöltéskor irná, hogy nem fér fel a db! Amúgy pedig valahol online-ba lehet ellenőrizni a memóriát...
Dáccsika
-
Shirchy
tag
válasz Mazsika #4406 üzenetére
Megvan mi a baj. A DB-ben töröltem egy REAL változót,majd a helyére INT tipusut akartam tenni. Ezután a művelet után a változó látszólag ott volt a DB-ben,de amikor hivatkozni akartam rá akkor piros színnel írta a ki a program a változó nevét és menteni sem tudtam mert érvénytelennek látta a változót.
Most újraírtam a db-t,de esetleg van más megoldás hasonló probléma esetén?
A DB változóit utólag már nem lehet módosítani csak az első megíráskor?"jobb adni,mint kapni" mondta a boxoló... :P
-
Mazsika
őstag
válasz Shirchy #4407 üzenetére
Lehet természesen később is módosítani, menteve feltöltve tovább lehet dolgozni vele, viszont arra ügyelni kell hogy ilyenkor felülíródnak az aktuális adatok, mondhatni 'nullázódnak'.
Szerk.: csak annyi lehetett a problémád, hogy nem mentetted a DB-t igy a program nem tudott hivatkozni rá![ Szerkesztve ]
Dáccsika
-
Szirty
őstag
válasz Shirchy #4407 üzenetére
Üdv Shirchy!
"A DB változóit utólag már nem lehet módosítani csak az első megíráskor?"
A shared DB tartalmát úgy módosítod ahogy csak akarod. Bármikor akármennyi változót tehetsz bele akárhova vagy törölhetsz vagy írhatod át a nevét vagy típusát. Erre semmiféle korlátozás nincsen leszámítva hogy túlságosan nagy nem lehet.
Csakhogy az ezzel járó összes következménnyel számolnod kell ám!
Az egyik amit Mazsika írt, hogy ezzel a DB aktuális tartalma a PLC-ben elvész amikor áttöltöd (felülíródik).
A másik, hogy ha törölsz egy változót a DB-ből vagy annak nevét átírod, és arra a változóra a programod már hivatkozik valahol szimbolikus címzéssel, akkor ez a hivatkozás abban a pillanatban hibás lesz, ami nem meglepő, lévén a változó azon a néven megszűnik létezni!
A harmadik hogy ha változót illesztesz a DB-be (nem a végére) vagy törölsz vagy úgy írod át az adattípusát, hogy az új típus hossza nem azonos a régiével (pl. REAL-t INT-re módosítod) akkor az összes változó címe eltolódik ami az átírt után van. Ezért a programban minden abszolút hivatkozás ami az átírt változó utáni többi változóra vonatkozik (amelyikhez hozzá sem nyúltál) hibás lesz!
-
Shirchy
tag
Így már értem,bár tényleg muszáj volt újraírnom egyszer. Utána viszont már minden úgy ment ahogy írtátok. Néha mikor mentem a DB szerkesztőt,majd ki x-elem az ablakot windwos-os memória hivatkozási hibaüzenetet kapok,amit bezárva minden más megy tovább látszólag semmi baja....bár lehet,hogy ez kavart be,és valami nem százas a programmal amim van.
Köszönöm a segítséget Mazsika és Szirty!.
[ Szerkesztve ]
"jobb adni,mint kapni" mondta a boxoló... :P
-
Shirchy
tag
Lenne még egy kérdésem... word-be valahogy ki lehet varázsolni a programot anélkül,hogy a tartalom szétesne,vagy csak a print screen megoldás marad?
"jobb adni,mint kapni" mondta a boxoló... :P
-
rsf
senior tag
válasz Shirchy #4407 üzenetére
Ez szerintem egy bug a Step 7-ben.
Én is már többször találkoztam olyannal, hogy megváltoztattam egy változó tipusát.
Majd elmentettem a DB-t. Ezután a programba a megváltoztatott változót nem tudtam beírni, mert a fordító még a régi tipust látta és nem fogadta el az újat.
Ilyenkor az egész networkot vágólapra kell tenni Ctrl-X-el (Igy megszünik a hiba a progiban) majd menteni kell egyet, ezután Ctrl-V-vel az egészet vissza.
Mentés után már frissül a compiller infója a megváltozott DB tartalmáról és igy már jó lesz.
Üdv.“Az a baj a világgal, hogy a buták mindenben holtbiztosak, az okosak meg tele vannak kételyekkel.“
-
Szirty
őstag
Hát van ilyen bug is...
Nyilván erre gondolsz... -
Szirty
őstag
Hali!
Én úgy szoktam megkerülni a hibát (workaround) hogy átmenetileg megadok egy általa helyesnek vélt típust és kimentem, majd bezárom a szerkesztőt.
Újra megnyitva megint átírom a hibás típusú változót jóra (mert ekkor derül ki, mint a videón is hogy még mindig hibás, nem íródott át). Megint elmentem és bezárom, harmadszor megnyitva már jó a típus és visszaírom a változót az utasításnál. -
Shirchy
tag
Szia Szirty!
A programomban STL,illetve létra diagramm van.
Az STL a gyári FC105 skálázó,így azt nem tudtam a szerkesztővel sem megnyitni,de ha erre is tudsz trükköt szívesen fogadom az instrukciókat.
A lenyegesebb az általam kreált létradiagram lenne,hogy azt tudjam egy word-be beilleszteni.
Bocs a pontatlan kérdésért.
"jobb adni,mint kapni" mondta a boxoló... :P
-
Szirty
őstag
válasz Shirchy #4417 üzenetére
Helló Shirchy!
Az STL forrást Copy-Paste módszerrel be tudod illeszteni.
Azért esik szét, mert proporcionális karakterkészlettel illeszted be. Hogy ne essen szét, válaszz monospaced készletet! Pl. Courier new.A létradiagramot, mivel grafikusan van ábrázolva nyilván képként tudod beilleszteni.
A képet elkészítheted prtscr-el is, de én inkább egy képkivágó programot vagy olyan rajzoló programot ajánlanék ami támogatja a screenshotok készítését.Megoldás lehet még a nyomtatás képbe funkció is. Ha van MS office telepítve akkor nyomtathatsz "Mocrosoft image dokument writer" eszközre ami egy MDI file-t hoz létre amit szabadon beilleszthetsz bármilyen wörd dokumentumba.
Vagy telepíted a PDF Creatort, ami egy PDF nyomtatót hoz létre, stb...
Az FC105-öt miért akarod kinyomtatni?
-
Shirchy
tag
Szia Szirty!
Az FC105 annyira nem lényeges,csak gondoltam,ha nem túl bonyolult kiszedni,akkor azt is beillesztem.
A gépen fent van az office 2010-es csomag,de a nyomtatást fájlba után létrehoz egy xps nevü fájlt amit nem tudok beilleszteni."jobb adni,mint kapni" mondta a boxoló... :P
-
Szirty
őstag
válasz Shirchy #4422 üzenetére
Üdv!
Jó. Akkor itt az FC105 forráskódja:
FUNCTION FC 105 : WORD
TITLE =SCALING VALUES
//
AUTHOR : SEA
FAMILY : CONVERT
NAME : SCALE
VERSION : 2.1
VAR_INPUT
IN : INT ; // input value to be scaled
HI_LIM : REAL ; // upper limit in engineering units
LO_LIM : REAL ; // lower limit in engineering units
BIPOLAR : BOOL ; // 1=bipolar; 0=unipolar
END_VAR
VAR_OUTPUT
OUT : REAL ; // result of the scale conversion
END_VAR
VAR_TEMP
IN_REAL : REAL ; // input value as a REAL number
K1 : REAL ; // low limit for input value
K2 : REAL ; // high limit for input value
SPAN : REAL ; // HI_LIM - LO_LIM
TEMP1 : REAL ; // temporary result
END_VAR
BEGIN
NETWORK
TITLE =
//
// set K1 and K2 constants based upon BIPOLAR
//
SET ; // if(BIPOLAR=0)
A #BIPOLAR; // .
JC EL01; // {
L 0.000000e+000; // K1=0
T #K1; // .
JU EI01; // } else {
EL01: L -2.764800e+004; // K1=-27648.0
T #K1; // .
EI01: NOP 0; // }
L 2.764800e+004; // K2=+27648.0
T #K2; // .
//
// convert input (IN) to real
//
L #IN; // ACC1=IN
ITD ; // convert to double integer
DTR ; // convert to real
T #IN_REAL; // IN_REAL-IN as a real
//
// determine SPAN = HI_LIM - LO_LIM
//
L #HI_LIM; // SPAN=HI_LIM-LO_LIM
L #LO_LIM; // .
-R ; // .
T #SPAN; // .
//
// If the input value is outside the K1 and K2 range, the output
// is clamped to the nearer of either the LO_LIM or the HI_LIM
// and an error is logged. If the input value is exactly at a limit the
// output will be set to the computed limit with no error returned.
// changed 2/14/00 by ERI per RQ210693
L #IN_REAL; // if(IN_REAL<K1)
L #K1; // .
>=R ; // .
JC EL02; // {
L 8; // error
T #RET_VAL; // .
L #LO_LIM; // ACC1=LO_LIM
T #OUT; // OUT=ACC1
JU FAIL; // error
EL02: POP ; // } else {
L #K2; // if(IN_REAL>K2)
<=R ; // .
JC EI04; // {
L 8; // error
T #RET_VAL; // .
L #HI_LIM; // ACC1=HI_LIM
T #OUT; // OUT=ACC1
JU FAIL; // error
EI04: NOP 0; // }
NOP 0; // }
//
// scale the input
//
L #K2; // TEMP1=K2-K1
L #K1; // .
-R ; // .
T #TEMP1; // .
L #IN_REAL; // IN_REAL-K1
L #K1; // .
-R ; // .
L #TEMP1; // divide by TEMP1
/R ; // .
L #SPAN; // multiply by SPAN
*R ; // .
L #LO_LIM; // add LO_LIM
+R ; // .
T #OUT; // OUT=scale(IN_REAL)
//
// set BR bit : no error-set BR bit to 1; with error-set BR bit to 0.
//
L 0; // return error code 0
T #RET_VAL; //
SET ; // RLO = 1 (NO ERROR)
JU SVBR; //
FAIL: CLR ; // RLO = 0 (ERROR)
SVBR: SAVE ; // BR = RLO
END_FUNCTION -
rsf
senior tag
IEC Timereket be lehet pakolni Shared DB-be?
iDB sajnos nem jó.
Üdv.“Az a baj a világgal, hogy a buták mindenben holtbiztosak, az okosak meg tele vannak kételyekkel.“
-
zoli147
újonc
Üdv Mindenkinek.
Olyan kérdésem lenne, hogy van egy Siemens Logó műszerem, és szakaszolni kellene egy távot. Kb 9 másodperces úthossz és ezen belül kellene 6 szakasz, úgy, hogy 1 mp működés, és 0.5 mp szünet. A Logóval megoldható e ilyen rövid idő kapcsolása vagy más jeladós módszer kell hozzá? Köszönöm. -
Szirty
őstag
válasz zoli147 #4427 üzenetére
Üdv zoli147!
Így blöffre (tehát anélkül hogy pontos adatnak utána néztem volna) azt mondanám, hogy igen.
Nem tudom mennyi egy Logo ciklus ideje (átlagos felhasználásnál), de ciklus időnyi és kimenet (főleg ha relés) késleltetésnyi pontatlansággal valószínűleg számolni kell. Ez a pontatlanság nagyságrendileg (szintén blöffre) szerintem max. 10-20ms.
Ha ilyen pontatlanság (tehát ez esetben a fél másodpercet 10-20ms szórással hozza) még megfelel, akkor érdemes utánanézni a pontosabb adatoknak.
Nagyon kicentizni azért nem érdemes... -
Mazsika
őstag
Szia Szirty!
Gyári BT_LT FC61-es blokkot (Basic time to local time) szeretnék használni, beadom neki a read_clk-al kiolvasott date and time típust majd egy DB-t amit az adott UDT-vel feltöltöttem, és végül egy kimeneti date and time típusú területet. Sajnos ebbe nem íródik semmi, és a ret_val-on 1es érték van. A help infoja sajnos nem segit, mert erre azt írja, hogy 'no error but date jump', vagy valami hasonlót. Tudnál nekem ebbe segíteni? Köszönöm!
Dáccsika
-
rsf
senior tag
DB szám csökkentés céljából az FB-ben lévő IEC timereket kellene kiváltani.
Az eddigi 5FB+5iDB helyett kellene 5FC és 1DB. A DB-ben lenne 5UDT ami az eredeti FB iDB-jét váltaná ki.
De úgy látom ezt nem lehet megvalósítani a timerek miatt.
Üdv.“Az a baj a világgal, hogy a buták mindenben holtbiztosak, az okosak meg tele vannak kételyekkel.“
-
KB.Pifu
tag
Sziasztok!
Ide most azt kellene írnom, hogy hol akadtam el, de hála istennek a súgó megmentett!
Viszont, felmerült pár kérdés közben.
Analóg bementet szerettem volna skálázni a szimulátorban és olvastam a fórumon a fc105 -ről én pedig megkerestem és megtaláltam...Természetesen nem akart működni mert FC105 választottam, aminek a vége S5_Cnvrt.
(működhetett volna ezzel is? a hw config-ban 6es7 kártya van, ez az FC pedig a 6es5-re hivatkozika súgóban, de ez egy szoftweres szimuláció az adatot pedig a szimulátor adja PIW-en keresztül)
Közben meg kellett vizsgálnom a hw configot, ott nem találtam egyezést stb.Azután persze rájöttem a titok nyitjára, találtam egy másik FC105 -t ami már jó lett de a kérdés megmaradt, ezeket a S5_Cnvrt. blokkokat akkor használjuk a Step7-tel akarunk s5-t programozni?
[ Szerkesztve ]
-
Szirty
őstag
Üdv rsf!
A DBk számát csökkentheted ha az IEC timereket egy FB-ből hívod és használod a multiple instance lehetőséget.
Akkor csak egyetlen DB-kell akárhány IEC timert használsz.
[ Szerkesztve ]
-
Szirty
őstag
válasz KB.Pifu #4432 üzenetére
Helló KB.Pifu!
Annyi FC105 lehetséges amennyi library van. Hogy melyik mit csinál az teljesen fakultatív.
A blokk neve egyébként AE_464_2. Az S5_Cnvrt a family, amihez tartozik, ez alá sok blokk tartozik.
Szerintem ez a blokk akkor használatos, amikor S7 PLC-n S5 PLC-ről konvertált programot akarunk futtatni (migráció), mert az S5 másképpen kezeli az analóg bemeneteket (sok egyéb különbség mellett). -
moseras
tag
Üdv!
Pont ez jött elő nálam is, nálam ugyan Tia Portal van (per pillanat S7-300-as CPU, de csak azért, hogy szimulálni tudjak, de egyébként S7-1200 CPU lesz, csak sajnos az S7-1200-at nem lehet szimulálni).
Szóval én így csináltam:
Tehát az Fb_Redony Fb-ben a Static-ok között létrehoztam egy xton nevű, TON típusú IEC TON-t. Ha mondjuk a Main(OB1) OB-ben ebből az Fb_Redony-ből létrehozok X darabot (persze külön DB-ben mindegyiket), és ezek meghívódnak, akkor mivel bennük static-ként adtam meg a TON-t, ezért ezek egymástól független TON-ok lesznek, jól gondolom ?
Elolvastam a [multiple instance] írásod, ott is így van, ha jól értettem.
Még valami: S_ODT, S_PULSE-t lehet így használni multiple instance-al ? Vagy ott a %Txx miatt ezt nem lehet ?
Köszi.
Imi.
-
Onishi
tag
Sziasztok!
WinCC Flex-el kapcsolatos segítség kellene. Azt kellene megoldanom, hogy egy adott termék gyártási adatait el kell menteni egy csv fájlba ami tartamazza, hogy ki végezte a gyártást, mikor, mi volt a termék száma, melyik programmal gyártotta stb. Na most az még megy, hogy elmentem a csv fájlokat, de kellene egy képernyő, ahol vissza tudják keresni ezeket az adatokat. Tehát beírják a megrendelés számát, és akkor a kijelző megjeleníti a hozzá tartozó adatokat a csv fájlból. Hogyan lehetne ezt megoldani?
Mindez PC-n lenne, Flexible-el.Előre is köszi a tippeket.
-
Shirchy
tag
Szia Szirty!
Köszönöm szépen.
Menet közben akadt még egy apró problémám. WinCC Flexible-ben csináltam egy felületet. Elkezdtem elnevezni az elemeket rajta,de amikor a legvégén szimulációval elindítottam a runtime-ot akkor nem mutatja azokat a neveket amiket névnek adtam az egyes elemeknek. Kinyomtatási nézetben jó nevet ír,de akkor ugye a grafikus rész szétesik,és úgy takarásba kerül részlegesen pár dolog. Runtime-ban,csak az üres szöveg helyek látszanak,viszont nem mindnél ahogy képeken is.
Tudnál/tudnátok segíteni mi lehet a hiba?
A jobb oldali kiírások nem probléma,hogy nem látszanak. A probléma a bal oldali nevekkel van.
Előre is köszönöm![ Szerkesztve ]
"jobb adni,mint kapni" mondta a boxoló... :P
-
Szirty
őstag
válasz Shirchy #4440 üzenetére
Helló Shirchy!
A WinCC Flexible-ben minden objektumnak neve van.
Ezt a nevet automatikusan kapja (BUTTON_1, BUTTON_2, Text_Field_34, stb).
Ezt természetesen utólag átírhatod ha akarod, de két azonos nevű objektum egy képen nem lehet.
Továbbá az objektumok neve (NAME) semmilyen formában nem jelenik meg a runtime képernyőjén!Ennek fényében kérdezném, hogy mit kell érteni nevek alatt a problémád esetében? Mert ebből azt gondolom, hogy nem az objektumok nevét!
-
Shirchy
tag
Text_Field-eket tettem ki minden elemhez és ezeket a jobb oldalon megjeleníti ahogy kell,a bal oldalon pedig nem látszanak a feliratok. Először arra gondoltam,hogy amiatt akadt be,mert pár Text_Field-et ctrl+c ctrl+v billentyűkombinációval lemásoltam,ezután már csak átírtam a szöveget... Szóval fogtam és kitörölgettem azokat amiket másoltam és illesztettem be újakat,de továbbra is csak a szöveg panelja látszik,maga a szöveg nem.
"jobb adni,mint kapni" mondta a boxoló... :P
-
Szirty
őstag
-
Szirty
őstag
válasz moseras #4437 üzenetére
Üdv moseras!
"hogy szimulálni tudjak, de egyébként S7-1200 CPU lesz, csak sajnos az S7-1200-at nem lehet szimulálni)."
Szerintem lehet. TIA portal 12-vel...
"Elolvastam a [multiple instance] írásod, ott is így van, ha jól értettem."
Az egész multiple instances lényege az, hogy ha egy level1 FB-ből másik FB-t hívsz (level2) akkor level1 FB instance DB-jében a level2 idbje struktúraként beilleszthető.
Mindez többszörös mélységig megtehető. -
rsf
senior tag
Ó erre nem is gondoltam! FB-ből lesznek meghívva a kis FB-k amik a hivó FB iDB-jét használják majd.
Az iDB-t el tudja érni(R/W) külső eszköz?
Amúgy több száz DB-ről lenne szó.
Van ahol kb.600-al lehet számolni. Ezt igy le tudnám csökkenteni 60-ra.
Üdv.“Az a baj a világgal, hogy a buták mindenben holtbiztosak, az okosak meg tele vannak kételyekkel.“
-
moseras
tag
Üdv!
"Szerintem lehet. TIA portal 12-vel..."
Nekem V12-vel nem működik. Nem is aktív a hozzátartozó menü. S7-300/400/1500-al működik.
Ezt írja a Siemens: S7-PLCSIM is not yet enabled for the S7-1200 in STEP 7 (TIA Portal) V12."Mindez többszörös mélységig megtehető"
Ok, akkor jól gondoltam.
Köszönöm.
Imi.
[ Szerkesztve ]
-
rsf
senior tag
Mert a blokkoknak kell ugyanennyi Timer és még a működésre is kell hagyni.
S5 Timer meg csak 512db van.
De ha van más megoldásod timerekre akkor ne fogd vissza magad.
Amúgy úgy tűnik működik ez a multiple idb -s móka.
Üdv.“Az a baj a világgal, hogy a buták mindenben holtbiztosak, az okosak meg tele vannak kételyekkel.“
Új hozzászólás Aktív témák
- TCL LCD és LED TV-k
- Azonnali játékos kérdések órája
- Napelem
- Milyen monitort vegyek?
- Kerékpárosok, bringások ide!
- Hobby elektronika
- Júniusban végre bemutatkozhat az új Gears of War játék
- Lightyear - befektetési app
- Xbox tulajok OFF topicja
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- További aktív témák...
- Samsung Galaxy S22 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! GAMER PC - RTX 3060Ti - i5 10400F/11400F - 16GB DDR4 - 500GB Nvme SSD - 500W 80+
- GAMER PC - GTX 1060 6GB - i5 10400F/11400F - 16GB RAM - 120- 480GB SSD - 500GB HDD
- GAMER PC - GTX 1080 8GB - i5 10400F/11400F - 16GB RAM - 240GB SSD - 1TB HDD
- IPhone 12 128GB 100% hibátlan gyári független akku 97%