Fórum témák

» Több friss téma
Fórum » Nextion érintőképernyős HMI, UART kommunikációval
Lapozás: OK   10 / 50
(#) wbt válasza dcsabi hozzászólására (») Okt 17, 2016 /
 
Erre szokták mondani, hogy kinőtted a nyelv lehetőségeit. Hitvita nélkül, én le akartam beszélni cimborát a Parsic-ról, de gyors sikerélmény miatt ebben ácsolta a dolgait. Kb 1 hónap alatt a 0-ról már ki is nőtte. Ha a nyelv nem támogat a változó hosszúságú blokkok vételében, akkor vagy megírod magad hozzá a bővítményt vagy vársz mondjuk time-out-ra (addigra biztos bent a pufferben az adat, amit jól túlméretezel). De az is lehet, hogy a SWfejlesztők már megírták hozzá a plug-in-t vagy írni kell nekik, hogy ilyen kijelzőkhöz kellene legalább annyi támogatás, hogy a blokkokat szépen el lehessen kapni. Jelzem, én nem használom az említett fordítót, csak egy kicsit beleláttam. A Parsic-topicban nem tudnak ebben segíteni a tapasztaltabbak?
(#) dcsabi válasza wbt hozzászólására (») Okt 17, 2016 /
 
A legutolsó frissítés még nem tartalmazta, csupán a Modbus kezelést. Jelzem a fejlesztónek általában, ha ésszerű dolgot jelzek akkor az benne lesz... Nem igazán akarok váltani, mert kevés az időm egy-egy projekt megírására, ez általában 1-2nap vagy néhány óra. Ezt más programnyelven (ill fejlesztóvel) nehéz megoldani, főleg terepen egy berendezés mellett, esetleg szabadtéren...egyedi igények szerint rögtönözni... Egyébként amit a Nextion HMI-s csapat fejleszt az nekem már régóta álmom, hogy a kijelzőt gyakorlatilag mélyebb programozói jártasság nélkül is lehessen kezelni, ne kelljen több tizezer sort gépelgetni. Itteni kérdésem,: kezelt-e valaki már sikeresen egy nagyobb IO felületet ennek a HMI-nek a segítségével. Előbb utóbb úgyis veszek 1-2db-t és kipróbálom, talán nem zsákutca az én elgondolásaimnak.
(#) wbt hozzászólása Okt 17, 2016 /
 
Ha Te írod magát a vezérlő-SW-t is, akkor a protokol teljesen a kezedben van, feldolgozhatod a soros adatokat akár karakterenként is a TFT-vel; mivel aránylag lassú kommunikáció is beállítható és nincs nagy szükség gyors válaszidőre. Amikor nekem nagyon sok I/O adattal volt dolgom (futás közbeni paraméterezés is persze) akkor mondhatni eseménykezelőt kellett vésni, egyik task csinálta a sok I/O vezérlést a másik meg szabad idejében a kijelzést, változtatásokat. Egy pufferen keresztül beszélgettek, nem is tudtak egymásról. Most, hogy a Parsic-al ezt hogyan lehet megoldani, azt nem tudom, már hogy két rutin mondjuk duplapufferen keresztül adhasson-vehessen át adatokat. Ezt elsőre hálátlan megírni, de utána nagyon kényelmes, hogy a főprogram csak egy üres ciklus (vagy oda be lehet tenni látványdolgokat csicsákat). Szóval Neked is kellene egy task, ami teszi a vezérlési dolgokat, egy nagy puffer, amit szinkronizálnak a TFTkezelő task-al. (igazából, ha "on-the-fly" szerkesztés is van, akkor 3-as puffer kell, mert kell egy "Mégsem" lehetőség) Ha megírod a menürendszered és byte-onként kommunikálsz a TFT-vel (tehát egy pufferbe/-ből kommunikálsz), azonnal kiderül mennyi szabadidő marad a vezérlésre. Szerintem a PIC 2x körbekerüli a teljes vezérlési ciklust mire a TFT válaszol egy byte-ot.
(#) Lamprologus hozzászólása Okt 17, 2016 /
 
Én munkálkodom egy projekten, egy ablakban tudok állítani 10-12 numerikus változót, meg 10-12 check boxot ... amikor kész akkor mentés gombra szépen elküldi a soros vonalon a PIC-nek ...
print, printh parancsokat használok az adatküldéshez ... ezzel jobban kézben tudom tartani a PIC oldalon az adatok fogadását.
Valami ilyesmi formában:
  1. printh 23 1D
  2. print n0.val
  3. //delay=100
  4. printh 23 1E
  5. print n1.val
  6. //delay=100
  7. printh 23 1F
  8. print n2.val

a 23 jelenti a PIC-nek hogy az én adatom ( nem valami rendszer üzenet)
1D, 1E ... hogy konkrétan melyik változó jön.
Utána meg a változó (pl. n1.val) értéke.
Így mindig azonos számú karaktert kell feldolgoznom.
Eleinte még benn volt a késleltetés, de a PIC programja mos már megoldja az adatok szétválogatását, így nincs rá szükségem.
(#) Bakman válasza dcsabi hozzászólására (») Okt 17, 2016 /
 
Használd a kijelzőt úgy, mint egy átlagos kijelzőt, tehát csak küldj adatot a HMI-nek. Gombokhoz rendelj hozzá küldendő adatot, pl. A0. Ha ezt fogadja a kontroller megnövelsz egy változót és ezt az értéket küldöd vissza a kijelzőnek. Kb. így a legegyszerűbb célba érni.
(#) Lamprologus válasza Bakman hozzászólására (») Okt 17, 2016 /
 
Hááát ... szerintem néha érdemes mérlegelni, hogy mit bízunk a kijelzőre és mit a PIC-re!

pl. számmező értékének növelését/csökkentését simán rá merem bízni a HMI-re.
Felteszek egy + és egy - gombot, egyik növeli a másik csökkenti az értéket ( if feltételekkel határértékek is megadhatók ... )
Ha több mezőt kell változtatni akkor felteszek egy numerikus változót, abba tárolom, hogy épp melyik az aktív mező ( emelyikre elötte ráböktem, annak a háttérszínét meg is változtatom hogy egyértelmű legyen) és annak az értékét változtatják a gombok.

pl a + gomb:
  1. if(allitando.val==1)
  2. {
  3.   if(n0.val<100)
  4.   {
  5.     n0.val=n0.val+1
  6.   }
  7. }
  8. if(allitando.val==2)
  9. {
  10.   if(n1.val<100)
  11.   {
  12.     n1.val=n1.val+1
  13.   }
  14. }
  15. if(allitando.val==3)
  16. {
  17.   if(n2.val<100)
  18.   {
  19.     n2.val=n2.val+1
  20.   }
  21. }
  22. if(allitando.val==4)
  23. {
  24.   if(n3.val<100)
  25.   {
  26.     n3.val=n3.val+1
  27.   }
  28. }
  29. if(allitando.val==5)
  30. {
  31.   if(n4.val<100)
  32.   {
  33.     n4.val=n4.val+1
  34.   }
  35. }
  36. if(allitando.val==6)
  37. {
  38.   if(n5.val<100)
  39.   {
  40.     n5.val=n5.val+1
  41.   }
  42. }
  43. if(allitando.val==7)
  44. {
  45.   if(n6.val<100)
  46.   {
  47.     n6.val=n6.val+1
  48.   }
  49. }
  50. if(allitando.val==8)
  51. {
  52.   if(n7.val<100)
  53.   {
  54.     n7.val=n7.val+1
  55.   }
  56. }
  57. if(allitando.val==9)
  58. {
  59.   if(n8.val<100)
  60.   {
  61.     n8.val=n8.val+1
  62.   }
  63. }
  64. if(allitando.val==10)
  65. {
  66.   if(n9.val<100)
  67.   {
  68.     n9.val=n9.val+1
  69.   }
  70. }
  71. if(allitando.val==11)
  72. {
  73.   if(n10.val<100)
  74.   {
  75.     n10.val=n10.val+1
  76.   }
  77. }
  78. if(allitando.val==12)
  79. {
  80.   if(n11.val<100)
  81.   {
  82.     n11.val=n11.val+1
  83.   }
  84. }
  85. if(allitando.val==13)
  86. {
  87.   if(n12.val<10)
  88.   {
  89.     n12.val=n12.val+1
  90.   }


A gombok átszinezéséhez én egy időzítőt hazsnáltam fel 50ms-re állitva
  1. if(allitando.val==1)
  2. {
  3.   n0.bco=RED
  4. }else
  5. {
  6.   n0.bco=WHITE
  7. }
  8. if(allitando.val==2)
  9. {
  10.   n1.bco=RED
  11. }else
  12. {
  13.   n1.bco=WHITE
  14. }
  15. if(allitando.val==3)
  16. {
  17.   n2.bco=RED
  18. }else
  19. {
  20.   n2.bco=WHITE
  21. }
  22. if(allitando.val==4)
  23. {
  24.   n3.bco=RED
  25. }else
  26. {
  27.   n3.bco=WHITE
  28. }
  29. if(allitando.val==5)
  30. {
  31.   n4.bco=RED
  32. }else
  33. {
  34.   n4.bco=WHITE
  35. }
  36. if(allitando.val==6)
  37. {
  38.   n5.bco=RED
  39. }else
  40. {
  41.   n5.bco=WHITE
  42. }
  43. if(allitando.val==7)
  44. {
  45.   n6.bco=RED
  46. }else
  47. {
  48.   n6.bco=WHITE
  49. }
  50. if(allitando.val==8)
  51. {
  52.   n7.bco=RED
  53. }else
  54. {
  55.   n7.bco=WHITE
  56. }
  57. if(allitando.val==9)
  58. {
  59.   n8.bco=RED
  60. }else
  61. {
  62.   n8.bco=WHITE
  63. }
  64. if(allitando.val==10)
  65. {
  66.   n9.bco=RED
  67. }else
  68. {
  69.   n9.bco=WHITE
  70. }
  71. if(allitando.val==11)
  72. {
  73.   n10.bco=RED
  74. }else
  75. {
  76.   n10.bco=WHITE
  77. }
  78. if(allitando.val==12)
  79. {
  80.   n11.bco=RED
  81. }else
  82. {
  83.   n11.bco=WHITE
  84. }
  85. if(allitando.val==13)
  86. {
  87.   n12.bco=RED
  88. }else
  89. {
  90.   n12.bco=WHITE
  91. }
  92. ref n0
  93. ref n1
  94. ref n2
  95. ref n3
  96. ref n4
  97. ref n5
  98. ref n6
  99. ref n7
  100. ref n8
  101. ref n9
  102. ref n10
  103. ref n11
  104. ref n12
  105. tm0.en=0


A számmezőre kattintásnál:
  1. allitando.val=1
  2. tm0.en=1


De pl a lapváltást már én sem mertem a HMI-re bízni ... néha elkóborolt, és akkor a PIC küldte az adatokat csak épp nem tudta hová!
(#) Bakman válasza Lamprologus hozzászólására (») Okt 17, 2016 /
 
Ha van egy növelő és egy csökkentő gombod, akkor én így csinálnám:

Növelő gomb küldi: A0
Csökkentő gomb küldi: A1

Kontroller veszi az adást, növeli vagy csökkenti a változót, visszaküldi a változó értékét:

t0.txt="34"

Így kikerülhető az az eset, hogy a kijelző változó hosszúságú adatcsomagot küldjön. Ebben az esetben a kijelző kódja is csak egy soros, gombonként. A lényeg: A vételi oldalon nem kell mindenféle trükkökre figyelni, csak két karaktert.
A hozzászólás módosítva: Okt 17, 2016
(#) Lamprologus válasza Bakman hozzászólására (») Okt 17, 2016 /
 
Próbálj meg egy lapon 20 mezőnek az adatát változtatni 2 gombbal!
Számmező mindig azonos hosszúságú adatcsomagot küld!
(#) Bakman válasza Lamprologus hozzászólására (») Okt 17, 2016 /
 
Vedd elő a fantáziád! Gombok küldik: A0, A1, A2, A3.....X0, X1, X2, X3......Z0, Z1, Z2, Z3...

A kontrollerben jóval egyszerűbb ezt kezelni, mint figyelni három - négy típusú adatot. Szerintem. Egyébként pedig mindenki úgy maszatol, ahogy akar.
(#) Lamprologus válasza Bakman hozzászólására (») Okt 17, 2016 /
 
Idézet:
„20 mezőnek az adatát változtatni 2 gombbal!”


És minek küldözgessem az adatot a PIC-nek, vagy a PIC a HMI-nek, ha még lehet, hogy változni fog...
(#) dcsabi hozzászólása Okt 18, 2016 /
 
Azt hiszem rendelek egy kicsit és egy közepeset RTC-vel... 7-8 éve ezt akartam megoldani, kisebb nagyobb nekilódulásokkal, csak sokan lenéztek miatta, mivel nem 30-40e sor bepötyögésével akarok egy feladatot megoldani. A kinaiak olcsón elénk tárják a HW és SW részét is... Ezt a technikát legalább 10-15éve használják az ipari elektronika területén OPLC "fantázia néven" lásd, pl: Unitronics gyártmányok...
(#) nedudgi válasza dcsabi hozzászólására (») Okt 18, 2016 /
 
A történeti hűség kedvéért említem meg, hogy a Videoton harminc évvel ezelőtt árult ilyen terminálokat VDT521xx alapokon.
(#) Bakman válasza Lamprologus hozzászólására (») Okt 18, 2016 /
 
A 20 mező, két gombos megoldásodat megnézném "élőben" is. Egy lapra 20 mezőt rakni, kicsit soknak tűnik.
(#) Lamprologus hozzászólása Okt 18, 2016 /
 
Frissült az editor!

V039 update list
1, add passowrd input type for text component
2, add display style for text, button and digital components
3, add system variable "wup"
4, add support for executing "get,print,printh" under sleep mode
5, 20% faster in code parsing than usual
6, code highlighting (adopt ICSharpCode.TextEditorL)
7, automatically refresh components automatically afer change, no manual refresh required
8, fix a few known bugs
(#) Kovabe válasza Lamprologus hozzászólására (») Okt 18, 2016 /
 
Ez nagyszerű már csak jó volna ezt magyarúl is és akkor boldogabb lennék ja és itt nem a fordítóra gondolok.
(#) Lamprologus válasza Bakman hozzászólására (») Okt 18, 2016 /
 
Nem pont 20 ... de azért elég sok ... főleg ha a checkboxokat is hozzá vesszük!
(#) wbt válasza Kovabe hozzászólására (») Okt 18, 2016 / 1
 
Csak úgy belekukkantottam:
1. Jelszó szerű szövegbevitel, a szövegboxnál megjelent egy PW tulajdonság, választható hogy jelszó vagy szöveg (gondolom nem írja ki a karaktereket)
2. Különféle stílusok a szövegdoboznál, gomboknál: van automatikus 3D, 3D benyomva, 3D kifelé, lapos, keret stílus, szövegdoboznál a keret 3D-szerű lehet pl.
3. Felébredéskor mit frissítsen automatikusan (255=mindent)
4. get/print... megy alvó módban is
5. 20% gyorsabb értelmező
6. a beírt kód szép színes lesz, kiemelések, tényleg jobban olvasható
7. automatikusan frissül a komponens, ha változik az értéke (asszem ez gyógyír lesz annak a villódzásnak, amit megírtam nekik)
8. van még elszúrás, de igyekszünk javítani
(#) Lamprologus hozzászólása Okt 18, 2016 /
 
3-as pontot ha jól értelmezem akkor azt lehet megadni, hogy felébredéskor melyik lapot töltse be.
( 255 azt ami volt az alvó mód előtt.)
(#) Kovabe válasza wbt hozzászólására (») Okt 18, 2016 /
 
Minden igényt kimerítő ésvelős válasz, nagyonszépen köszönöm az angol nyelvhiányosok nevében is.
(#) wbt válasza Lamprologus hozzászólására (») Okt 18, 2016 /
 
Ja, igen, bocs, csak már kétfelé járt az agyam
(#) Elektro.on válasza Lamprologus hozzászólására (») Okt 18, 2016 /
 
Nahát. Azértdolgoznak a srácok!
(#) wbt hozzászólása Okt 19, 2016 /
 
Van itt nagyon ráérő, Arduino-hoz értő és TJC TFT-vel rendelkező ember? A soros adatokat átverő kis programot kellene módosítani.
(#) helektro válasza wbt hozzászólására (») Okt 20, 2016 /
 
Nálam az 1. nem működik.
Ahol ki lehet választani a tulajdonságot (pw), ott a legördülő lista üres.
Másnál ez működik?
(#) wbt válasza helektro hozzászólására (») Okt 20, 2016 /
 
Nálam először működött, akkor az alatta lévő paraméter volt üres, most meg a PW lett üres. Kipróbálom más oprendszer alatt, hát ha... Ha vacak, akkor megírom nekik, szerintem már a hócipőjük tele van velem.
(#) helektro válasza wbt hozzászólására (») Okt 20, 2016 /
 
Hova szoktál írni hiba miatt?
Ill. új cuccokat lehet tőlük kérni? Lehet én is írnék, mert lenne néhány.
Bár ahogy látom szép lassan fejlesztgetik
(#) wbt válasza helektro hozzászólására (») Okt 20, 2016 /
 
Van FORUMuk a főoldalról csak regisztrálni kell. Nyithatsz új témát, ha nem találtál hasonlót, előbb érdemes rákeresni. Az új kéréseknek külön témacsoportja is van. A support-team-től nekem Jack Liu szokott válaszolni. Közben kipróbáltam friss felrakással a 0.39-es editort W7/64-biten, ugyan az a jelenség (bár van még 1-2 furcsaság pluszban, néhány paramétermező szürke alapú lett). Belenéztem pár file-ba, ott van a password és csillagokra van állítva, csak hát ugye kiválasztani nem lehet. Most megint nincs kijelzőm, hogy élesben próbálkozzak (hogy más sirámaimat kijavították-e), de tesztelgetem, ahogy időm engedi.
(#) wbt válasza helektro hozzászólására (») Okt 20, 2016 /
 
Megírtam Jacknek a password attributum problémát.
(#) Lamprologus hozzászólása Okt 20, 2016 /
 
Megoldhatnák azt is, hogy a kijelzőt lehessen nagyítani a szerkesztő ablakban, a jobb pozicionálhatóság érdekében!
(#) wbt válasza Lamprologus hozzászólására (») Okt 20, 2016 /
 
Már benne van a kívánságlistában, elég régen.
(#) Lamprologus válasza wbt hozzászólására (») Okt 20, 2016 /
 
Akkor megvárjuk!
Következő: »»   10 / 50
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem