Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Teodor

Stran: 1 2 3 [4] 5
46
Vývoj / Re:Detekce náběžné hrany
« kdy: 07. 08. 2016, 17:07:21 »
Nechtěl bys poslat celý kód?

Ok, tady je:

Kód: [Vybrat]
#include <stdio.h> //g++ -o scanner_vstupu vstupy-vystupy.cpp -m32 -std=c++11 -I /usr/include/i386-linux-gnu/ -L . -lico300 -pthread
#include <unistd.h>
#include <cstdint>
#include <thread>
#include <iostream>
#include <iomanip>
#include "boost/date_time/posix_time/posix_time.hpp"



extern "C" {

#include "libico300.h"
}

using namespace std;
using namespace boost::posix_time;







void wait(int milli_seconds)
{
  this_thread::sleep_for(chrono::milliseconds(milli_seconds));
}

bool endflag = false;





void threadf(int cas)
{
int a = 0;




  while(true)
  {


wait(cas);

std::uint8_t stav; //preda referenci stav jednotlivych bitu

ICO300_get_DI(&stav); //ziska stav DI pinů

if (stav != a )

{

cout << " PULS " << " " << " hexadecimalni cislo: " << hex << " " <<  (int)stav << " dekadicke cislo: " << dec << (int)stav << endl;

}

else

{
cout << " MEZERA " << " " << " hexadecimalni cislo: " << hex << " " <<  (int)stav << " dekadicke cislo: " << dec << (int)stav << endl;
}

a = stav;

/*
for(int i =0; i < 8; ++i){ //Daviduv optimalizacni algoritmus
  cout << (int)(stav & 1);
  stav >>= 1;
 }

*/

if(endflag)
break;
       
  }
}


struct bits
{
   
unsigned bit0 : 1;
unsigned bit1 : 1;
unsigned bit2 : 1;
unsigned bit3 : 1;
unsigned bit4 : 1;
unsigned bit5 : 1;
unsigned bit6 : 1;
unsigned bit7 : 1;

};



union u  {
    unsigned char status;
    bits b;
};

struct time
{
  boost::posix_time::ptime start_time, end_time;
int posledni_hodnota;

} times[8];

void delka_impulsu(int CAS){


u STAV, ps;

ps.status = 0;





while(true)

{

ptime current_time = microsec_clock::local_time();


ICO300_get_DI(&STAV.status);

if (STAV.b.bit0 != ps.b.bit0)

{
if(STAV.b.bit0 == 1)

{
times[0].start_time = current_time;
}
else

{
times[0].end_time = current_time;
}
}

wait(CAS);




}
}


int main()

{ char c;  
ICO300_set_DIO_mode(0xff); //Vsechny piny jsou vstupni
int b;
cout << "Zadejte cas v [ms]: " << endl;
cin >> b;
 
  std::thread t{threadf, b}; //Inicializace vlakna


cout << "Pro odpojeni vlakna stisknete lib. klavesu od 'Q'" << endl;
cin >> c;

if (c != 'Q')
{

endflag = true;


}

t.join();

delka_impulsu(b);

ptime t1 = times[0].start_time;
ptime t2 = times[0].end_time;
time_duration diff = t1 - t2;


cout << "Delka pulsu je: " << diff << endl;


return 0;  
}

47
Vývoj / Re:Detekce náběžné hrany
« kdy: 07. 08. 2016, 12:30:39 »
Prosím o kontrolu kódu;

Tady je fce délku pulsu, zatím pro jeden bit.
Kód: [Vybrat]
void delka_impulsu(int CAS){


u STAV, ps;

ps.status = 0;

while(true)

{

ptime current_time = microsec_clock::local_time();


ICO300_get_DI(&STAV.status);

if (STAV.b.bit0 != ps.b.bit0)

{
if(STAV.b.bit0 == 1)

{
times[0].start_time = current_time;
}
else

{
times[0].end_time = current_time;
}
}

wait(CAS);




}
}

v mainu potřebuji spočítat délku trvání pulsu, s boostem teprve začínám tak bych potřeboval poradit jestli na to jdu správně.
Mám to tam jako ptime a rozdíl jako time_duration diff

Kód: [Vybrat]
int b;
cout << "Zadejte cas v [ms]: " << endl;
cin >> b;
 
  std::thread t{threadf, b}; //Inicializace vlakna


cout << "Pro odpojeni vlakna stisknete lib. klavesu od 'Q'" << endl;
cin >> c;

if (c != 'Q')
{

endflag = true;


}

t.join();

delka_impulsu(b);

ptime t1 = times[0].start_time;
ptime t2 = times[0].end_time;
time_duration diff = t1 - t2;


cout << "Delka pulsu je: " << diff <<  endl;

48
Vývoj / Re:Detekce náběžné hrany
« kdy: 29. 07. 2016, 10:21:29 »
Co vím, tak detekce pulsů není jednoznačná. Řešil bych to přes numerický diferenciál a podmínku if |dy|>"hodnota" then začátek/konec pulsu.

Já mám fyzický DO, takže si zatím jen zobrazuji 0 nebo 1, ale potřebuju spočítat délku trvání pulzu. A nemůžu na to za boha přijít a ani na BOOSTu jsem nic nenašel :-/

Z čeho chceš počítat délku pulzu? Z té tvé otázky to není úplně jasné.

Jo, psal jsem to včera ve spěchu.
Z rozdílu času, prostě přijde nábežná hrana nějaká proměnná si zapamatuje čas, odejde nábežná hrana zase si nějaká proměnná zapamatuje čas a pak z toho udělám rozdíl.

49
Vývoj / Re:Detekce náběžné hrany
« kdy: 28. 07. 2016, 18:35:34 »
Co vím, tak detekce pulsů není jednoznačná. Řešil bych to přes numerický diferenciál a podmínku if |dy|>"hodnota" then začátek/konec pulsu.

Já mám fyzický DO, takže si zatím jen zobrazuji 0 nebo 1, ale potřebuju spočítat délku trvání pulzu. A nemůžu na to za boha přijít a ani na BOOSTu jsem nic nenašel :-/

50
Vývoj / Detekce náběžné hrany
« kdy: 28. 07. 2016, 18:07:39 »
Zdravim,
potřebuju poradit.
V c++ píšu čítač pulsů s generátorem pulsů.
Jenže se potýkám s problémem čítače pulsů, je mi jasný že je to detekce náběžné a sestupné hrany, že to souvisí se strojovým časem procesoru, ale nemůžu to za boha nějak domyslet. Dělal jste to tu někdo? Nebo se setkal třeba na BOOSTu s touto funkcí???

51
Sítě / Re:Převodník MOXA
« kdy: 17. 07. 2016, 22:28:53 »
Teď jsem ho instaloval, přesná syntaxe pro zmapování je?

Ja ho pouzivam prilis malo na to, abych premohl lenosty a cetl manual a pak to zase hned zapomnel. Takze to resim tak, ze si k nemu nainstaluju frontend a naklikam si to. Me jsou zname zenmap a nmapfe, mozna existuji dalsi.

No, to budu laborovat zítra v práci.

52
Sítě / Re:Převodník MOXA
« kdy: 17. 07. 2016, 21:01:32 »
Co na to pustit nmap, jestli to vubec ma nejake otevrene porty?

Teď jsem ho instaloval, přesná syntaxe pro zmapování je?

53
Sítě / Re:Převodník MOXA
« kdy: 17. 07. 2016, 19:43:47 »
A jakou IP/síť máš v tom počítači? Pokud nemáš ani kompl nastavne na IP ze segmentu té moxy, tak se nespojíš.
 192.168.127.254 je tovární výchozí IP té moxy, tka si kompl nastav do stjené sítě a pak se spojíš a nejlépe bude nastavit moxu do tvé sítě, ať nemusíš dělat šaškárny. Moxa odpovídá normálně na ping, takže dokud nebude fungovat odpověď na ping, nemá smysl s telnet/prohlížečem něco nastavovat.
Takže bnych do počítače vrazil něco jako:
ip addr add 192.168.127.250/24 dev eth0
A pak se snad půjde na tu Moxu spojit a nastavit ji k obrazu svému a aby zapadla do lokální sítě.

Na stejný síti to mam nastavený od začátku co jsem deaktivoval DHCP.
Moje nastavení v laptopu: IP: 192.168.127.200
                                         netmask: 255.255.255.0
                                         brána: 255.255.255.0

Na ping to odesílá a ethernet LED u moxy bliká, nicméně opravdu v browseru se po zadání IP nic nezobrazí a ani telnet nic nenajde :(

54
Sítě / Re:Převodník MOXA
« kdy: 17. 07. 2016, 18:37:15 »
Musíš vlézt přímo na lokální web interface té moxy (nebo přes telnet) a v ní nastavit režim v jakém se s ní bude komunikovat. Pokud chceš používat moxa driver v PC, tak požadovaný režim je "Real COM Mode" nastavit pro každý port. Aspoň u modelu IA5250A, co bude stejné s tím tvým čtyřportovým (u některých se režim jmenuje "Host Based / Driver Mode"). Nicméně dlouholeté zkušenosti z provozu, tak používáme jen "TCP server" mode a na drivery od Moxy kašleme (aplikace se spojuje přímo na TCP port vyhrazený pro daný port a komunikuje přes něj).

Jinak u některých typů Mox ještě bývají zrady terminátory pro RS422/485 linku. Ty se nastavují přes switche uvnitř. Pokud jsou zapnuté a Moxa je používána jako RS232 linka, tak některé zařízení dělají kraviny, musí se switchema ty odpory odpojit a je to v klidu (ten problém ale asi jsme měli jen u osmi  a víceportových verzí do racku z řady 5650).

Ta MOXA je marná, ani přes telnet se tam nepřipojí, zadání IP do browseru je taky marný.
Tak to asi bude kravit díky těm odporům..

55
Sítě / Re:Převodník MOXA
« kdy: 17. 07. 2016, 17:35:18 »
Musíš vlézt přímo na lokální web interface té moxy (nebo přes telnet) a v ní nastavit režim v jakém se s ní bude komunikovat. Pokud chceš používat moxa driver v PC, tak požadovaný režim je "Real COM Mode" nastavit pro každý port. Aspoň u modelu IA5250A, co bude stejné s tím tvým čtyřportovým (u některých se režim jmenuje "Host Based / Driver Mode"). Nicméně dlouholeté zkušenosti z provozu, tak používáme jen "TCP server" mode a na drivery od Moxy kašleme (aplikace se spojuje přímo na TCP port vyhrazený pro daný port a komunikuje přes něj).

Jinak u některých typů Mox ještě bývají zrady terminátory pro RS422/485 linku. Ty se nastavují přes switche uvnitř. Pokud jsou zapnuté a Moxa je používána jako RS232 linka, tak některé zařízení dělají kraviny, musí se switchema ty odpory odpojit a je to v klidu (ten problém ale asi jsme měli jen u osmi  a víceportových verzí do racku z řady 5650).

Tohle je teda dost zapeklitý, instaloval jsem si na Mint telnet,
v terminálu dal telnet IP a napíše to jen tohle: telnet: unable to connect to remote host: No route to host.

56
Sítě / Re:Převodník MOXA
« kdy: 16. 07. 2016, 23:53:22 »
Musíš vlézt přímo na lokální web interface té moxy (nebo přes telnet) a v ní nastavit režim v jakém se s ní bude komunikovat. Pokud chceš používat moxa driver v PC, tak požadovaný režim je "Real COM Mode" nastavit pro každý port. Aspoň u modelu IA5250A, co bude stejné s tím tvým čtyřportovým (u některých se režim jmenuje "Host Based / Driver Mode"). Nicméně dlouholeté zkušenosti z provozu, tak používáme jen "TCP server" mode a na drivery od Moxy kašleme (aplikace se spojuje přímo na TCP port vyhrazený pro daný port a komunikuje přes něj).

Jinak u některých typů Mox ještě bývají zrady terminátory pro RS422/485 linku. Ty se nastavují přes switche uvnitř. Pokud jsou zapnuté a Moxa je používána jako RS232 linka, tak některé zařízení dělají kraviny, musí se switchema ty odpory odpojit a je to v klidu (ten problém ale asi jsme měli jen u osmi  a víceportových verzí do racku z řady 5650).

Můžeš mi dát na sebe mail, abychom to probrali hloubš? Tohle vypadá dost sofistikovaně a nerad bych se v tom ztratil...

57
Sítě / Re:Převodník MOXA
« kdy: 16. 07. 2016, 21:59:10 »
A v jakém režimu máš nastavenou tu vlastní Moxu? Je vůbec v tom tom host/driver mode, kdy funguje s Moxáckým ovladačem z PC?
Přeonul byc his ji na TCP server režim, pak máš dostupné t 4 porty na portech 4001 až 4004 a normálně si tlenetme vyzkoušel, že data choí mezi porty, že je elektricky v pořádku.

No takhle, teď se ji snažím testovat takto:

pomocí příkazu : sudo ./mxaddsvr 192.168.127.254 4 nastavím IP a porty, nenastavuju data port a command port
Fyzicky jí mam momentálně takto: COM 1 vysílá data a COM 3 je zachytává - přes jeden terminál v Linuxu naslouchám a druhým posílám, jenže tohle právě nejde. Jak jí teda přepnout v Linuxu? Při nastavení driveru jsem si ničeho nevšiml..

58
Sítě / Re:Převodník MOXA
« kdy: 16. 07. 2016, 21:23:33 »
No a já si všiml, že se MOXA občas připojí drátem k laptopu a občas prostě ne.
Co tym mylis, ze sa obcas sa pripoji a obcas nie?

Ak ti system zahlasi chybu vstupu/vystupu, tak spojenie s moxou nefunguje a ten port ttyr01 je neaktivny. Ci tomu vadi DHCP neviem, nikdy som to tak nepouzival.
Pouzivam moxy tak10 rokov a je s nimi minum problemov(ak neratam instalaciu drivera na nove jadra). Nastavi sa moxa, na PC sa nainstaloval driver, pridala sa moxa do systemu a uz sa komunikovalo.

Vypnute sifrovanie nevadi, len je potrebne dat pozor aby si napriklad nezapol sifrovanie na moxe a instalacia drivera bola urobena bez podpory sifrovania.

Tak fakt netušim, po vypnutí dhcp se MOXA nahlásí, ping IP jí taky najde, podle blikání LEDky komunikuje po ethernetu, výpis logu dmesg | grep tty jí taky najde, ale prostě příkaz cat /dev/ttyr00 nahlásí chybu vstupu/výstupu.  Možná to bude nějaká prkotina, ale já jí nemlžu najít :-/

59
Sítě / Re:Převodník MOXA
« kdy: 16. 07. 2016, 19:54:23 »
No a já si všiml, že se MOXA občas připojí drátem k laptopu a občas prostě ne.
Co tym mylis, ze sa obcas sa pripoji a obcas nie?

Ak ti system zahlasi chybu vstupu/vystupu, tak spojenie s moxou nefunguje a ten port ttyr01 je neaktivny. Ci tomu vadi DHCP neviem, nikdy som to tak nepouzival.
Pouzivam moxy tak10 rokov a je s nimi minum problemov(ak neratam instalaciu drivera na nove jadra). Nastavi sa moxa, na PC sa nainstaloval driver, pridala sa moxa do systemu a uz sa komunikovalo.

Vypnute sifrovanie nevadi, len je potrebne dat pozor aby si napriklad nezapol sifrovanie na moxe a instalacia drivera bola urobena bez podpory sifrovania.

No, vypl jsem DHCP, pingnul jsem se a spojení fungovalo, tak jdu zkusit port, jestli ho to otevře.

60
Sítě / Re:Převodník MOXA
« kdy: 16. 07. 2016, 11:18:42 »
Aky je to presny model? Aky operacny system pouzivas? Co presne robis?
Co to znamena, ze po vyndani konektoru se uz znova nepripojila? Moxa sa nikde do systemu nepripaja(ak je to moxa ethernet/RS-232). Do linuxu sa namapuju porty cez prikaz
Kód: [Vybrat]
mxaddsvr ip_adresa_moxy pocet_rs-232_portov
a v systeme su bez toho, ci je moxa v sieti alebo nie. V subore npreal2d.cf by si mal vidiet ako su porty namapovane. Ak nic nezachytis na porte /dev/ttyr00, tak bud moxa neposlala ziadne data alebo dany PC a moxa z nejakej priciny nevedia spolu komunikovat.

V prvom pripade ako zakladna kontrola sluzia kontrolky na moxe. Ak sa poslu data do moxy, tak na moxe musi pri prenose dat blikat ledka prisluchajuca danemu RS-232 portu. Ak neblikne, tak do moxy ziadne data neprisli a nema, co poslat do PC.
V druhom pripade je zaklad skusit pingnut moxu a skusit sa na nu prihlasit cez webove rozhranie alebo cez telnet. Alebo je aj moxa zle nastavena.Mas nastaveny spravny mod RS-232 portov, sifrovanie,....?

Samozrejme je dobre skusit pouzit najnovsi ovladac z uz spominaneho ruskeho fora.

Zdravim,
je to přesně MOXA NPort AI5450IA, má to dva ethernetový vstupy a 4 sériové. Po připojení k firemnímu zařízení začne blikat u patřičného sériového portu LED oranžově, což znamená, že přijímá data.
Ano, do systému ho zadávám pomocí příkazu: sudo ./mxaddsvr IP počet portů
Mám Linux Mint 17.3 Rosa, balík používám ten nejnovětší z RF, nicméně si je stejně budu muset sám upravovat, kvůli jádru.
Poprvé jsme to připojili na firemní testovací zařízení a blikala oranžově LED u patřičného portu, ale chtěl jsem vidět posílaná data nebo se připojit na ten sériový port pomocí příkazu: cat /dev/ttyr01 a padla hláška, že je chyba vstupu/výstupu.
No a já si všiml, že se MOXA občas připojí drátem k laptopu a občas prostě ne. Včera jsem zkoušel nacpat svýmu laptopu pevnou IP a vypadalo to, že to bude fungovat, vypnul jsem DNS a směrování.
Šifrování nemám, mám ho vyplé u portů, je to chyba??
Pak jsem zkoušel propojit dva sériové porty a poslat si skrze terminál text a ve druhém terminálu ho zobrazit. Ale zase nenašlo to sériový port skrze výše uvedený příkaz. Mne napadlo, že tomu vadilo DHCP, včera jsem mu nastavil IP natvrdo, tak uvidíme jestli to dneska půjde. Chyba v instalaci určitě nebude, to by se mi nepovedlo ty porty zavést.

Stran: 1 2 3 [4] 5