- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eBay-es kütyük kis pénzért
- Okos Otthon kezdőknek
- Elektromos rásegítésű kerékpárok
- Szoszo94: Xiaomi Mi Router 3G - Padavanra fel!
- vrob: Az utolsó DOS játékok 1996 - 1997-ben, egy korszak lezárul
- Magga: PLEX: multimédia az egész lakásban
- hcl: Döglött tabletből wifis kijelző kókány
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
Új hozzászólás Aktív témák
-
Onishi
tag
Sziasztok!
Előre is bocsi a kisregényért.
A feladat a következő lenne:
2db fényújságot kell soros porton vezérelni egy gyárban, a kiküldendő adatokat egy HMI PC-ből kell venni amin WinCC Flexible 2005 Runtime fut. A PC és a fényújságok között egy-egy soros-ethernet átalakító van. Az eredeti WinCC projekt megvan, így abban egy script segítségével oldottam meg a feladatot. Ez a script végzi az adatok összegyűjtését, a kiírandó szövegek generálását, az időzítések számolását valamint a soros porton történő kiküldést a fényújság felé.
A tesztelés során 2 problémába ütköztem:1.) A script szépen küldi ki az adatokat a fényújság felé, de ha tegyük fel áramtalanítják a fényújságot, vagy valamiért nem elérhető, attól a program még küldi az adatokat, amely egy bufferbe tölti őket, majd ha a fényújságot tegyük fel visszakapcsolják, akkor a bufferből elkezdi folyamatosan ontani az adatokat, amitől a fényújság megkergül. Namost erre az MSCOMM32 objektum OutBufferCount = 0 parancsa valószínű jó lenne, de az MSCOMM32 objektum nem használható VBScript alól, licenszet kér hozzá, ezért letöltöttem az ingyenes NetCommOCX-et, ami ugyanazt tudja mint az MSCOMM32 kivéve az OutBufferCount-ot, mert azt nem tudja, vagy legalábbis nem működik :-). Először a soros port kezelésre egy másik eljárást, a sima OpenTextFile-t használtam, amivel szintén lehet soros portra adatokat küldeni, de a port tulajdonságait tudomásom szerint nem lehet vele megadni és az mindig átállítja a baudrate-et 1200-ra, szóval az sem használható. Más eljárást VBScript-re nem találtam, ami soros port kezelésre lenne való.
Erre a buffertöltéses problémára már kitaláltam egy megoldást: a soros-ethernet átalakítókat pingelni fogom, és ha nem elérhető, nem küldök adatot. Más nem jut eszembe amivel ezt ki tudnám védeni, de nektek hátha van jobb ötletetek.2.) A script látszólag jól működik küldi azt amit kell, de van amikor valami meghülyül és elkezdi magából ontani az adatokat. Ez vagy csak 0, vagy látszólag random karakterek. De ezt olyan sebességgel végzi, amit én tuti nem tudok a sciptből küldeni, mert azt csak másoodpercenként hívom meg, és kb 5-20 másodpercenként küldöm a fényújságba az adatokat. Először gyanakodtam a soros-ethernet átalakítóra, hogy az zavarodik össze, de kipróbáltam az ottani gép saját soros portján küldeni, és azon is előjön. Ezt a megzavarodást, csak úgy tudom megszüntetni, hogy leállítom a runtime-ot, és a soros drivert újraindítom. Azt még meg fogom próbálni, hogy csak a runtime indításakor nyitom meg a portokat, és nem zárogatom mindig le, hanem, csak ha a runtime-ot leállítják akkor. Lehet az állandó port nyitás, meg zárás okozza, nem tudom.
Végső megoldásként azt is lehet, hogyha a gyárban tudnának jogtiszta excelt feltenni a gépre, akkor abban sima Visual Basic-ben is meg lehetne oldani a soros porton kiküldést, ami lehet stabilabb lenne. WinCC scripttel pedig egy fáljba írnám az adatokat, amit a nagy VB olvasna, de kiküldené már ő küldené ki.
Bemásolom a soros port kezelés részt a scriptből:
Set objComport = CreateObject("NETCommOCX.NETComm")
objComport.CommPort = 2
objComport.Settings = "9600,N,8,N"
objComport.PortOpen = True
objComport.Output = Chr(21)
objComport.Output = Chr(18)
objComport.Output = Chr(5)
'Küldendő szöveg:
objComport.Output = fenyero + out + kifutas
'Lezárás:
objComport.Output = Chr(254)
objComport.Output = Chr(lezaras)
objComport.PortOpen = FalseRemélem van köztetek valaki a ki csinált már hasonlót és belefutott már ilyen problémákba.
Előre is köszönöm a segítséget.
Új hozzászólás Aktív témák
- Újabb magyar banknál elérhető a Xiaomi Pay
- És akkor egy fejlesztőstúdió rájött, hogy vissza is élhetne a felskálázással
- Jogász topic
- Sütés, főzés és konyhai praktikák
- A Redmi 15 5G-t power bankként is lehet majd használni
- Arcfelismerő topik
- Battlefield 6 - Bemutatkozik a többjátékos mód
- Miért álltak az oldalak egy hétig, mi történt?
- Itt egy pár fotó az iPhone 17 sorozatról
- Mobil flották
- További aktív témák...
- Samsung 32" M8 4k Smart Monitor!32"/4k/VA/Smart Remote/DEX /Airplay/Type-C/Slimfit Kamera/Beszámítá
- VW/ Skoda fejegység Android 13, 6/64gb eladó
- Lenovo Loq Gaming 15IRX9
- Dell Precision M4700- I7 4. generációs - 16Gb - Nvidia Quadro
- Panasonic Toughbook CF-MX4-1 12.5" Érintős- - Akár 8-10 órás akkuval
- Gamer egerek és billentyűzetek kitűnő árakon! Most extra 10% kedvezmény!
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- Telefon felvásárlás!! Xiaomi Redmi Note 13, Xiaomi Redmi Note 13 Pro, Xiaomi Redmi Note 13 Pro+
- Telefon felvásárlás!! Samsung Galaxy A12/Samsung Galaxy A22/Samsung Galaxy A32/Samsung Galaxy A52
- Xiaomi 11T Pro 256GB Kártyafüggetlen 1 év Garanciával
Állásajánlatok
Cég: FOTC
Város: Budapest