- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Hobby elektronika
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Milyen videókártyát?
- Milyen egeret válasszak?
- Milyen TV-t vegyek?
- Amazon Kindle
- Amlogic S905, S912 processzoros készülékek
- A régi node-okra koncentrál a szankciók miatt Kína
- Azonnali VGA-s kérdések órája
Hirdetés
-
A Video AI lehet a One UI 6.1.1 ütőkártyája
ma Vagy hogy fogja a mesterséges intelligencia manipulálni a mozgóképeket?
-
Lenovo Essential Wireless Combo
lo Lehet-e egy billentyűzet karcsú, elegáns és különleges? A Lenovo bebizonyította, hogy igen, de bosszantó is :)
-
Miniképernyős, VIA-s Epomaker billentyűzet jött a kábelmentes szegmensbe
ph A megfizethető, szivacsokkal jól megpakolt modell ötfajta kapcsolóval és kétféle színösszeállítással/kupakprofillal szerezhető be.
Új hozzászólás Aktív témák
-
Szirty
őstag
válasz Szabest #2082 üzenetére
Hi!
Az áram kimenet áramgenerátoros, minimális terhelő ellenállás 0 Ohm, maximális 500 Ohm.
"lvileg 16mA-t kellene mérnem ha vat táblába megadom neki DEC-be a 27648-as értéket??"
Nem. Már többször is leírtam, hogy 27648=20mA
Akár 4-20mA akár 0-20mA-es.Itt egy részlet a SIMATICS7-300 Automation System Module Data Manual-ból:
[ Szerkesztve ]
-
Szirty
őstag
válasz Szabest #2084 üzenetére
Helló!
Már volt tippem miért méred a felét, nem érdekelt, nem reagáltál rá semmit.
"s majdan ha sorba kötök vele egy mezei 1W-os 1,5k-os ellenállást, lecsökken a felére kb az áramérték??"
Amikor kérdezel, el szoktad olvasni a válaszokat amiket kapsz?
Egy órája sincs, hogy ezt írtam:"minimális terhelő ellenállás 0 Ohm, maximális 500 Ohm."
Ha a maximális 500 Ohm, milyen eredményt vársz 1500 Ohm-tól, ami a megengedett maximális háromszorosa? A modul nem képes akkora feszültséget leadni, ami 1500 Ohmon át tud hajtani 20mA áramot.
[ Szerkesztve ]
-
Szirty
őstag
válasz Szabest #2095 üzenetére
Hali!
"Más nem marad MPI-on kimegyek mellé aztán ott csatlakozok rá"
A HW config módosítást érdemes körültekintően végezni. Ha levetted az analóg modult és átállítottad, akkor eleve ott voltál mellette.
Fel kell készülni rá, hogy az ilyesmit MPI-n végezze az ember ha nem akar sokat szaladgálni. Az etherneten keresztüli elérés ugyanis HW configtól is függ, ezért kizárhatja magát az ember a rendszerből."egyből SF-re állt a cpu"
Diag buffert megnézted? Mi volt benne?
-
Szirty
őstag
válasz Szabest #2098 üzenetére
Helló!
"De azért köszi a tanácsokat."
De azért szívesen!
Egy probléma okát a körülmények ismerete alapján lehet megtalálni. Ha a körülmények leírása nem pontos, akkor esetleg ráhibázni lehet.
Ezért is szokták azt mondani, hogy a válasz max. annyira pontos, amennyire a kérdés pontos. -
Szirty
őstag
válasz Szabest #2142 üzenetére
Hali Szabest!
A panelen futó protool project megvan PC-n, vagy nincs?
Ha megvan, akkor összekötöd az új panelt a PC-vel, elindítod a protoolt, betöltöd a projectet, beállítod melyik soros portra dugtad rá és elindítod a töltést."A kérdésem, hogy ezt milyen lépésekkel kell végrahajtani, úgy, hogy a meglővő program is visszamásszon rá, amit ha jól sejtek a PLC-tárol!?"
Egyáltalán nem! Honnan vetted, hogy a PLC tárolja? A panel tárolja a saját memóriájában.
Ha nincs meg a protool project, akkor letöltöd a ProSave nevű programot (ha nincs rajta a gépeden eleve). Ez egy backup tool OP-khoz.
Összekötöd soros porton a régi panelt és a PC-t a megfelelő kábellel.
Tápfeszt adsz a panelnek
Kiválasztod a prosave-ben az OP27-et
Elindítod a Prosave programot.
Kiválasztod a Backup fület, ott complete backup-ot kérsz
Megadod hova tegye a file-t amit letölt.
Megnyomod a Start backup gombot
Amikor kész kikapcsolod a panelt
Bedugod az új panelt
Tápfeszt adsz neki
ProSave-ben átváltasz a Restore fülre
Opening mezőben megadott az előbb létrejött file-t
Megnyomod a Start restore gombotNem emlékszem rá már, hogy a penlt transfer módba kell-e ehhez állítani.
ha igen, kkor a backup és restore előtt tedd transfer módba.
Ezt a panelen lévő project menüjéből teheted meg, feltéve hogy aki kélszítette a projectet, tedd bele ilyen funkciót.
Ha nem, akkor tápfesz bekapcoslása közben nyomva kell tartani az ESC és FEL nyil gombokat (egyszerre). -
Szirty
őstag
válasz Szabest #2144 üzenetére
Hali Szabest!
"A tények, van egy használt OP27 amiről a rajtalevő progit le kellene mentenem először is, Majd a Pg-n levő Step7es projektből az OP27-hez tartozó részt fel kellene rá tölteni(persze protools-on keresztül)"
Ha rendelkezel a panel ProTool forrás projectjével, miért akarod lementeni a panel tartalmát? Miért nem töltöd rá az új panelre azt?
"beállításoknál MPI, az op címét tudom, aztán ott egy backup-ot nyomok és elvileg lementené ahova szeretném, nademármost a kapcsolat nem épül fel..."
Transfer mód az OP-n? (lásd előző üzenet!!)
"ui.:prosave nem játékos, mert ahogy látom nem lehet benne kiválasztani az MPI portot szóval halott ügy"
Ha egy kicsit jobban megfigyeled, azt fogod látni, hogy ha a ProTool-ban kiválasztod a Backup menüpontot, a ProSave program indul el
"MPI-transfert, de ha ezt választom akkor újraindúl aztán meg startup gombot kér hogy nyomjak....melyik az??"
Mi kér mit? Miért is nem írod le pontosan hogy hol és mi jelenik meg?
"na de a lényeg hogy a fenti-sorok tudatában hogy álljak neki??"
Én leírtam egy megoldást, az garantáltan működik. Végig is csináltam már.
MPI-n nem próbálkoztam.
Megjegyezném, hogy egyetlen egy szóval sem írtad az eredeti kérdésedben, hogy kizárólag MPI-n keresztüli backup jöhet szóba, az ott feltett kérdéseimre sem válaszoltál.
Szerintem ha pontos választ akarsz kapni, tegyél fel pontos kérdést és lehetőleg válaszolj ha pontosítást kérnek... Ha nem így teszel, szerintem csak rabolod mások idejét.[ Szerkesztve ]
-
Szirty
őstag
válasz Szabest #2146 üzenetére
Helló Szabest!
"Van egy használt OP, amin van valami, amit le kell mentenem."
Ezt is most először írtad le.
Ezért eddig fogalmam sem volt arról, hogy azt az OP-t is le akarod menteni, amire azt a projectet akarod rátölteni, amelyik a cserélendő rossz OP-n fut. Hümm-hümm.
Nyilván ezért nem értettem mit mókolsz a a backup-al, ha egyszer megvan a project nem gondolod?"Előbb irtam hogy CSAK MPI játékos!"
Valóban! Az előbb igen. Ha azonban az első kérdésedben írod le (és nem az előbb), teljesen mást válaszolok. (Feltételezem, hogy ezt már akkor is tudtad).
Ebből következik,hogy teljesen fölöslegesen válaszoltam a pontatlan kérdésed miatt. Mert arra válaszoltam amit kérdeztél és nem arra amit tudni akartál."Tudom hogy jó a te leírásod, de soros porttal nem tudok dolgozni mert mint már irtam CSAK az MPI játékos."
Egyetlen szóval sem írtad, hogy nem tudsz soros porttal dolgozni. (Olvasd el amit írtál eddig). Csak azt írtad, hogy neked MPI kell. Nem indokoltad miért. Bár az ügy szempontjából az ok már nem lényeges.
"Honnét tudom hogy a transfer módban vagyok?? Ha leokézom, újraindul és vár amíg esc-el ki nem lépek abból a módból, és ez alatt kell hogy elvileg le tudjam menteni a projektet az OPről?"
No ez a transfer mód. Amikor vár a PC-vel való kapcsolatfelvételre.
Annyira pontosan már nem emlékszem "hogy néz ez ki" konkrétan az OP27-en, vagy 7 évvel ezelőtt foglalkoztam OP27-el.Nem tudom biztosan, de szerintem MPI-n keresztül nem is lehetséges a backup/restore csak soros porton keresztül.... (El kell olvasni a megfelelő doksit. Keresgélj kicsit... )
Ezesetben MPI-n át max a projectet tudod rátenni.
Nyilván nem véletlen az, hogy ProSave-ben (ami kifejezetten backup/restore-ra lett kitalálva) csak a serialt lehet kiválasztani.
Úgyhogy másodszor is azt mondom hogy: soros port, soros kábel, prosave! perpill ez a legjobb tippem. Ki is próbálnám, de épp nincs a fiókban OP27...
Kísérletezhetsz is persze ha úgy tetszik, de többet abban valószínűleg nem tudok segíteni. -
Szirty
őstag
válasz Szabest #2148 üzenetére
Hali Szabest!
Két dolgot nem értek a kérdéseddel kapcsolatban:
1. A MOVE nem tudom miért jelent problémát?
2. Minek ide MOVE?Szerintem ide skálázás kell, ami az PIW-ről (PEW) olvasott nyers értéket a mért fizikai mennyiségnek megfelelő mértékegységbe konvertálja.
Ehhez skálázni kell.
Biztos van pl. IEC skálázó blokk, nem tudom. Én írtam magamnak ilyet.Itt láthatod is hogyan: Analóg jelek kezelése S7-300/400 PLC-vel A "példaprogram" részt ajánlom figyelmedbe, ott is az FC109-et.
ha ez nem felel meg, akkor át kell nézni a
STEP 7 - System and Standard Functions for S7-300 and S7-400Egyébként sokan írtak már ilyen célú blokkot. Nem nehéz...
-
Szirty
őstag
válasz Szabest #2150 üzenetére
Hali Szabest!
Írtam hogy nem tudom van-e gyári, meg azt is, hogy meg kell nézni a doksiban. Abban a doksiban, amit a simatic manager telepítője feltelepít neked a gépedre a step7 mellé.
Megnéztem helyetted:
Van ilyen blokk a standard lib-ben. Mégpedig az S7stdl2b.pdf 76. oldalán, a 6.8-as számú szakaszban, "Scaling Values (SCALE): FC105" címmel.
Ezt a doksit, (ha másképp nem kérted telepítéskor) ide teszi: ...\Siemens\Step7\S7MANUAL\S7STDL2A\S7stdl2b.pdf
De ha nem akarsz olyan sokat kattintani, akkor ezzel a linkkel is eléred azt a doksit. Sajnos a 76. oldalra már neked kell lapozni. -
Szirty
őstag
válasz Szabest #2155 üzenetére
Hi Szabest!
"a példában látom előre definiálták az MD20, 30, 40-e az értékeket, amit nem tudom hogy hol s hogyan kell létrehozni .M"
Nem kell létrehozni. Az M (merker) terület eleve létező adatterület a PLC-ben.
De ha ez azért merült fel, mert a skálázó FC105-ös blokk HI_LIM és LO_LIM paraméterét nem változóban akarod megadni, akkor használj konstanst azaz írd be az értéket közvetlenül!
Ez nem lehet probléma."Másik bajom, hogy miért fáj az neki(pirosá válik, vmi typconflict) ha a Biploar bemenetet ugyanúgy bekötöm mint a példában van."
Ha ugyanúgy csinálod, el kell hogy fogadja.
Megmondom hogy mi miatt piros, ha megmondod hogy csináltad!! (screenshot előnyben)Type conflict akkor van, ha nem olyan adattípust adsz meg, mint amilyet a blokk vár.
-
oli83
tag
-
Szirty
őstag
válasz Szabest #2163 üzenetére
Helló Szabest!
"Szia, lényegében mindehol németen van, lehet hogy az fáj neki hogy nicns felvéve symbol listába??"
Pontosan úgy van, hogy azt oli83 leírta Miért nem nézed meg kicsit figyelmesebben?
"Amúgy ha ezt így ahogy van feltöltöd egy CPU-ra, neked aktív lesz a blokk?? "
Én kipróbáltam működik a skálázás, nincs vele semmi gond.
Ugye nem csak ezt (a képen látható) programot töltötted fel a CPU-ra, hanem feltöltötted rá az FC105-öt is!!!!?
Ha nem, akkor persze hogy nem működik!"Mert ha az INre nem egy konstatnsot(22) irok, be hanem pl egy analog bemenetet amire miadok egy fix értéket, akkor aktivizálódik, de az sem teljesen tiszta..."
Pontosan mi nem tiszta? Azt tudod hogyan működik az a blokk?
"Szóval mi a feltétele hogy elindúljon??"
A feltételek:
1. Legyen feltöltve a CPU-ra az FC105
2. Legyen meghívva a blokk (az EN előtti feltételnek teljesülnie kell) ahonnan hívod az a blokk is legyen meghívva. -
Szirty
őstag
válasz Szabest #2161 üzenetére
Hali Szabest!
"...lehet hogy gond lehet az ha minden németre van állítva, azFC meg angolokat(i8.1) vár??"
Ha a mnemonikok nyelve németre van állítva, akkor MINDEN blokkban német lesz MINDEN utasítás és MINDEN címhivatkozás.Ha angolra van állítva, akkor pedig ezek angol nyelvűek lesznek.
A szimbólum nevek természetesen NEM!
Teljesen függetlenül attól,hogy azt a blokkot honnan szedted, mikor írtad, ki írta, library-ben volt vagy az asztalfiókban, meg hogy amikor írták akkor mire volt állítva a nyelv!"lehet hogy az fáj neki hogy nicns felvéve symbol listába?? Mert közben amiatt sirt...ezeket amiket használok mindet előre fel kell venni??Anélkül nem engedi asználni, vagy hogy van ez??"
A symbol listára csak akkor van szükség, ha szimbolikus címzést használsz. ha közvetlen címzést (ahogy most) akkor nem kell, a symbol tábla teljesen üres is lehet. A program ettől működik. A szimbólumokra ugyanis a CPU-nak nincs semmi szüksége. Az csak az emberek miatt van.
[ Szerkesztve ]
-
Szirty
őstag
válasz Szabest #2166 üzenetére
Hali Szabest!
Igen.
De egzaktabb (leírva) az hogy Simatic manager, View menü Online pont.
Ha a megnyíló (alapból türkizkék fejlécű) ablakban látható Blocks szekcióban lévő lista tartalmazza a blokk nevét, akkor fel van töltve a PLC-re."Vagy milyen egyszerű módja van annak hogy biztosan feltöltsem??"
A blokk kiválasztása majd a Download gomb megnyomása. ha nem keletkezik hibaüzenet, akkor fel lesz töltve.
"viszont valamiért nem mutat az MD40 alatt szemüveggel semit csak 0-ákat"
Én is kipróbáltam.
Nekem 7.957176e-002 jön MD40-ben (0.07957176) amikor a BIPOLAR bemenet FALSE
Amikor TRUE, akkor pedig 5.003979e+001 (50.03979).Ha elküldöd a projectet megnézem mi a baja.
-
oli83
tag
válasz Szabest #2166 üzenetére
Üdv mindenkinek!
Szabest, ha futtatod a PLC progit, vagy szimulálod, és ráállsz az FC105-öst tartalmazó Netzwerked-re, majd nyomsz egy szemüveget, akkora a lap alján fut a RUN-os zöld csík?
Lehetséges, hogy nincs meghívva, az a valami amiben az FC105-öt meghívtad?üdv.: oli83
-
Szirty
őstag
válasz Szabest #2170 üzenetére
Hali Szabest!
"Mondom, hogy itt nem kell gondolni semmi extra programra meghívásokra stb, mert egy mezei OB1-be raktam be "
Ha beraktad OB1-be az FC105-öt, akkor az máris egy hívás.Nézd csak meg a keletkezett STL kódot az OB1-ben: Ctrl-2
A I 8.1
= L 20.0
BLD 103
CALL FC 105
IN :=MW2
HI_LIM :=1.000000e+002
LO_LIM :=0.000000e+000
BIPOLAR:=L20.0
RET_VAL:=MW0
OUT :=MD40
NOP 0CALL FC 105
Call utasítás pedig blokk hívás.
Küldd el a projectet, megnézem mi baja.
-
-
Szirty
őstag
válasz Szabest #2180 üzenetére
Hali Szabest!
Kipróbáltam a projectet amit küldtél.
Változtatás nélkül feltöltöttem és azonnal működött.
Semmi baja nincs.MD20-ban jön vissza a 7.957176e-002 érték, ahogy kell.
Vagy az 5.003979e+001 ha az I8.1 TRUE.Ezért nem tudom megmondani mi a baja, mert nincs semmi baja.
-
Szirty
őstag
válasz Szabest #2180 üzenetére
Hali!
Jah igen!
Ha legközelebb projectet küldesz valakinek, akkor a project properties-ben majd ne felejtsd el bekapcsolni a Set project language to 'Magyar' és a Can be opened under any Windows language settings (language neutral) opciókat, különben csak német windózzal lehet majd megnyitni! -
Szirty
őstag
válasz Szabest #2200 üzenetére
Heló Szabest!
Ez jó hír hogy nálad, okés, már csak az a kérdés hogy nálam miért nem billenik 1-be, az A0.0, amit a mintaprogram mutat!?
Mi lehet a bibi?"Megint nem értem amit kérdezel. Azt nem lehetne, hogy egy kicsit több infót adj a kérdéssel kapcsolatban?
Abban a "4-20mA" nevű projectben található FC105-el OB1-be írt skálázás nekem működik változtatás nélkül szimulátoron is, PLC-ben is.
Hogy most ezzel kapcsolatban kérdezed, hogy neked miért nem működik (mert az üzenet amire válaszoltál erről szól) vagy mire érted a kérdést, fogalmam sincs.
Ha erre, akkor nem tudom neked miért nem működik, akkor lenne esélyem válaszolni ha pontosan tudnám hogyan próbálod működésre bírni.Nem tudom az A0.0 miért és hol nem billen be neked. A fent említett programban nincs sem A0.0, de semmilyen más kimenet sem.
Miféle mintaprogramot emlegetsz, amiben A0.0 nem billen be? -
Szirty
őstag
válasz Szabest #2204 üzenetére
Hali Szabest!
"Szia, azFC105 nek a helpjében ami van arra godnolok."
Rendben van. Legközelebb azt is írd le amire gondolsz! (Emiatt nem akarom bekapcsolni a kristálygömböm, mert nagy az óradíjja :> )
Konkrétan mit próbáltál a másik PG-n, amin működött? Pontosan ugyanazt a programot, ami az előzőn nem működött?
Az A0.0 akkor lesz 1 ha az lábbi két feltétel egyszerre teljesül:1. Az FC105, ami kapcsolja az A0.0 kimenetet LEFUT!!!
2. Az FC105 futásakor nem keletkezik hiba"A másik meg hogy az én pgmen ha a blokk indítás elé berakok egy E8.0-t pl, akkor az piraos lesz, nem engedi menteni, typkonflikt hibát ir, vagy akár merkerrel is próbálhatom, szintén nemengedi menteni, viszont ha ugyanezt egy másik pg-n vagy egy asztali gépen csinálom simán tudom menteni"
Ilyesmit akkor is szokott csinálni, ha a symbol tábla nem megfelelően van kitöltve.
Konkrétan, amikor egy címnek olyan szimbólum neve van, ami azonos egy másik címmel.
Pl. az MW200-as címnek azt az a szimbólum neve, hogy A7.0.
Másik tippem az, hogy keveredik a szimbolikus és az abszolút címzés. Ráadásul te meg kevered a német és angol mnemonikokatA blokkok Properties menüjének kiválasztása után, a blokk folder offline ablak Address priority beállítását nézd meg.
-
Szabest
tag
válasz Szabest #2206 üzenetére
Szia, sikerült megnéznem a beállítást, de ugyanaz van kiválasztva mint amit te belinkeltél...
viszont ezt a képet kapom, ha rányomok a képen látható módon a mentésre, azaz piros lesz az E8.0. Illetve a hilftext üzenetét is megnyitottam...
nemtudom mi lehet vele a gebasz még mindig
[ Szerkesztve ]
-
-
oli83
tag
válasz Szabest #2210 üzenetére
Szervusz Szabest!
Megskubiztam a programodat.
Simán betöltve tökéletesem működik.
De ha bedobok egy "a8.0"-t, akkor furcsa dolog történik.
Itt egy kép:
A Symbolum tábládban fel van véve az E9.0-ás címhez egy a8.0-as symbolum.
A programod beállításától függ melyik címet írja az FC105-ös blokkod elé.
Így előfordulhat az az eset, hogy te piszkálod az a8.0 és látszatra semmi sem történik.
Első körbe próbáld meg úgy, hogy nem használsz szimbólumokat Legyen üres a szimbólumtáblád. Majd ha működik elnevezheted őket.üdv.: oli83
-
Szirty
őstag
válasz Szabest #2226 üzenetére
Hali Szabest!
Milyen verziójú a Step7?
Step 7 v5.4 sp2?
Úgy néz ki ez egy bug. A Siemens technical fórumon is belefutottak ugyanebbe a problémába.Azt válaszolták, hogy az SP3.1 szerviz csomag megoldja a problémát.
Jelenleg nincs jobb tippem, mint az hogy telepítsd fel (amit mi használunk az is SP3, gondolom ezért nem tudtam a hibát reprodukálni)
-
Szirty
őstag
válasz Szabest #2235 üzenetére
Halló Szabest!
Hmm.
Azt észrevetted, hogy az FC105 514-es hibával tér vissza?
A RET_VAL (MW0) ha nem nullát tartalmaz az azt jelenti, hogy a konverzió nem sikerült. Ezért nem rak semmit az OUT az MD40-be!A hiba oka is egyszerű:
A blokk HI_LIM és LO_LIM bemenetére egész számot (integert) küldesz.
Annak ellenére, hogy a blokknak ott REAL típusban kell megadni az értéket. Ezért megy hibára és ezért nem csinál semmit!De ez a dolog le van írva a help-ben az FC105-nél és abban a PDF-ben is, amit már egyszer linkeltem neked.
Itt van újra:"Van ilyen blokk a standard lib-ben. Mégpedig az S7stdl2b.pdf 76. oldalán, a 6.8-as számú szakaszban, "Scaling Values (SCALE): FC105" címmel.
Ezt a doksit, (ha másképp nem kérted telepítéskor) ide teszi: ...\Siemens\Step7\S7MANUAL\S7STDL2A\S7stdl2b.pdf
De ha nem akarsz olyan sokat kattintani, akkor ezzel a linkkel is eléred azt a doksit."[ Szerkesztve ]
-
Szirty
őstag
válasz Szabest #2269 üzenetére
Hali!
Szerintem ezek között keresgélj (remélem működni fog a link)...
Ha esetleg nem, akkor töltsd le ezt a PDF-et a 323. oldalon van olyan, hogy order numbers, és ott PROFIBUS ECOFAST Hybrid Plug 180 (ECOFAST
Cu, 5 units) 6GK1 905-0CA00 6GK1 905-0CB00 stb. Ennek alapján keresd. -
Szirty
őstag
válasz Szabest #2501 üzenetére
Helló Szabest!
Lehetséges. Több módja is van.
Amennyiben a kérdéses PLC ethernet hálózaton van:
Írni kell excelbe egy VB scriptet, ami ISO protokol segítségével kiolvas adatokat a PLC-ből.
Vagy telepíteni kell az exceles PC-re egy OPC szervert, amelyik ismeri az S7-et, és az excel OPC-n keresztül olvassa ki (vagy írja be) a kívánt adatokat.
Ha van a rendszerben HMI (WinCC Flexible RT) akkor azon keresztül is lehet adatokat cserélni. Pl. HTTP protocollon keresztül (SOAP).
Vagy maga a HMI is olvashat adatokat file-ból és beírhatja a PLC-be. -
Szirty
őstag
válasz Szabest #2506 üzenetére
Helló Szabest!
"leginkább excelből olvasni akarnék!"
Korábban ezt írtad:
"Lehetséges egy S7-318-assal hogy egy excelből beolvassak valami DB-be vagy valahova adatokat, amit ciklikusan naponta egyszer "befrissísen"??"Excelből DB-be: ezt úgy értelmeztem, hogy a DB-t írni akarod. Ha azt artíad volna, hogy "DB-ből excelbe" akkor meg azt gondolom, hogy a DB-t excellel olvasni akarod.
Az ügy szempontjából ennek szerencsére nincs nagy jelentősége, igazából mindegy ogy írni vagy olvasni akarod.
A legegyszerűbb a HMI-s CSV data logos megoldás. Az OPC szervert kezelni nem kell, csak telepíteni és konfigurálni, utána elvan a háttérben. Én nem ezt a módszert választanám, mert aki az OPC-t kitalálta és így megvalósította azt inkább elásnám a kertben de ez más kérdés.
Excelben is lehet valahogy olvasgatást írást produkálni, de nem tudok konkrétabb segítséget nyújtani, nem csináltam még ilyet. A Siemens technical fórum foglalkozik a kérdéssel, nézz szét ott. -
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 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... -
Dezsi82
tag
válasz Szabest #2537 üzenetére
Szia!
Két lehetőséged van, legalábbis amit én ismerek
-első (létrához)
DB10.DBB0-t átmozgatod MW10be
DB10.DBB1- átmozgatod MW9be (mondjuk)
MW10-ból kivonsz 48-cat, eltárolod MW10 be
MW9-ból kivonsz 48-cat, eltárolod MW9-be
MW10-t megszorzod 10-zel, eltárolod MW10be
MW10-hez hozzáadod MW9-t, tárolod MW10be
és kész. Már ha csak két karakter, ha változó, akkor kicsit nehezebb
Ha utasításlistában akarod csinálni, akkor picit egyszerűbb a logika
-második:
FC38 STRNG_I -
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 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
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 ]
Új hozzászólás Aktív témák
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Hobby elektronika
- AI generálja majd a képeket a Photoshopban
- Politika
- GTA VI
- Milyen NAS-t vegyek?
- Alkoholista nevelde
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Franciaországban nyit a Honor 200 Lite
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- További aktív témák...
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5