sharps
Reģistrētie lietotāji-
Posts
33 -
Joined
-
Last visited
sharps's Achievements
Newbie (1/14)
-
Nav jau māksla iepostēt AMI tīkla strukturas ideju un tad pateikt lūk cik tas kruts. Vispār zini kas ir M-BUS. Pat ja tai tīkla iemetīsi vairākus "gudros sensorus". Viņi tik un tā būs sakomunicējami pa vienam. Tas viss to pasākumu tikai sarežģī. Man tā lieta ir krietni vienkaršāka bez liekvārdības. Sensoram lieku taisīt tikai tās matemātiskās darbības, kas attiecas uz mērījumu. Sensors veic 100 mērījumus sekundē. Izvelk vidējo vertību. Noglabā reģistrā. Ja Master pavaica, tad izsūtu viņam datus. Viss. Kamēr nevaicā, tikmēr loopā veicu merijumu un aprēķinu vidējo vertību. VISS
-
to F3llony Tu nevari zināt vai sensors ir dzīvs vai nē, kamēr master nepavaicās viņam. Ja tev sistēmā ir 10 sensori. Viņi nedrikst vienā laikā runāt. Katrs sensors ir unikāls ar savu adresi. Master apvaicā visus sensorus secīgi. Ja kads neatbild, tad tiek uzskatīts, ka viņš ir bojāts kaut kādu iemeslu dēļ. Ugunsdzēsības sistēmās arī tāpat visu sensoru apjautāšana notiek. Kā kāds sensors ar adresi xx neatbild tā sistēma bļauj par bojājumu, ja atbild jā man te viss deg, ta tiek padota trauksmes sirēna. Bet ja sensoriem ļautu runāt tīklā, tad va gadīties ka dati nemaz nenonak līdz līdz pultij vai nonāk kļūdaini tikai tādēļ ka vienlaikus pēkšņi izdomāja runāt divi vai varbūt desmit sensori. Pēc tava komenta jautājums tev. Vai maz zini RS485 datu tīkla arhitektūru un ka ierīcēm šajā tīkla jāruna vienai ar otru un kas notiksies ja pēkšņi vienā laikā datus sāks sūtīt visi? Tev kā programmistam tas liekas nepieņemami, bet fiziski nekādi citādi tu nevari tos sakarus realizēt. Paskaidrošu mana gadījuma vienkāršumu un stabilitāti gadījumā bez konekta pie PC. Master kontrolieris ar LCD. Pievienots caur ST485 mikreni pie RS485 tīkla uz kabeļa sēž 10mit sensori. Uz displeja ar funkciju UP/DOWN izvēlos sensoru Nr5 un ENTER. Master sūta tīklā sensora Nr5 adreses identifikatoru uz ko pienāk dati no šī sensora. Tādā veida skrullējot uz LCD displeja varu zvēlēties jebkuru sensoru un nolasīt tā datus.
-
Drusku jau aizgāja pa sarežgītu desmit sensoru nolasīšanā. Principā ir pieejami maksas risinājumi konkrētiem kontrolieriem un izpaužas kā web serveris uz html. Tā pati Niagara, shneiderim bija kaut kas utml ražotājiem. Tas arī datus nolasa un iegrūž SQL datu bāzē. Man tīri zinātniska interese tīri par PHP. Vēl neesmu pieķēries klāt Blitz ieteiktajam variantam laika trūkuma dēļ. PS iemetu blokshēmu tam visam.
-
F3llony tieši sensorus ir jālasa. Iedomājies kas par bardaku būs ja vairāki slave sensori pēkšņi izdomās RS485 tīklā sūtīt datus. Tam ir domāta viena Master ierīce, kas secīgi apvaicā visus sensorus pēc to adresēm. Manā gadījumā vienlaikus nevar runāt divas ierīces. Sensors ir digitalizēts, t.i. tīri fizikāls sensora elements temperatūras devējs, kā rezistīvs PT100 vai kāda cita tipa devējs. Tad ACP, kas šo signālu nociparo un tālāk pa I2C vai SPI tiek sūtīti dati uz kontrolieri, kas šo Bināro kodu pārveido decimālā formātā un apstrādā saprotamā formātā ierakstot noteiktā reģistrā. Visas šīs darbības notiek onlainā. Teiksim sekundē tiek veikti daži simti mērījumi un tad izvilkta vidējā vērtība uz laika vienību. To tālāk pieprasa Master ierīce. Iedomājies, kas notiks ja to visu Slave ierīces sāks nonstopa grūst vados iekšā. Sākumā masteram ir jāpieprasa viena slave adrese, tad tā atbild. Viss ok. Tālāk tiek apvaicāta otra slave adrese utt. Elektronikā tikai šādi tā saziņa notiek. Principā no elektronikas puses to var organizēt dažādi. Ir daudz gatavi (ne lēti) risinājumi ar Master kontrolieri un IO moduļiem (tie savā starpā sazinās pa specifiskiem protokoliem), kas pa tiešo nolasa analogo signālu un tad nociparo. Tur ir teiksim viena ACP 16bitu ieeja kuru multipleksē uz vairākiem sensoriem. Tā ka arī šeit sensors nu nekādi nevar runāt īpaši jau rezistīvs elements.
-
Jā būtība jau no tā nemainās izmanojot to vai citu PHP bibliotēku (manā gadījumā tā ir dio_ext.dll). Manā gadījumā RS485 nav kā MODBUS. Es savu adresācijas un datu sūtīšanas/saņemšanas sistēmu izveidoju, kas ir vienkāršota. MODBUS tomēr ir pakāpi sarežģītāks un paplašinātāks. Neērti ir arī tas ka katram RS485 tīklā esošam mazajam kontrolierim jābūt ar MODBUS. PS Vieglāk laikam būu iemest skici ar RS485 konfigurāciju, lai saprastu pa ko iet runa. Vēlāk iemetīšu.
-
Wuu Jā zinu par TCP/IP risinājumiem. Arduino, Wiznet utml. Es pieķēros RS485 tīklam, to dabūt uz USB/RS232 dabūt nav problēmu. Nav vēlme pagaidam čakarēties ar TCP/IP mikrokontrolieru risinājumiem. Tāda lēkāšana vien sanāktu no viena produkta pie otra. Esmu jau pietiekami tālu attīstījis RS485 risinājumu. Teorētiski var pat MODBUSā ielīst, bet pašlaik neredzu tam pielietojumu. Tātad nolasu dažus temperatūras, pH u.c. devējus (līdz 10gab, nav man tūkstoši). Paši "devēji/sensori" ir pēc savas būtības ir mikrokontrolieri ar sensoru, kas apstrādā analogo signālu (ACP) un tālāk nosūta datus pa RS485 tīklu pēc piepasījuma uz galveno mikrokontrolieri, kas uz displeja indicē šo informāciju. Pašreizējā stadija ir tāda, ka vēlos šos datus noglabāt uz PC datubāzes un izvadīt WEBā nepieciešamības gadījumā. Nolasīšana no sensoriem nu reize minūtē vai pusminūte. Sekundē tas būtu mazliet pa šerpu, jo sensoru rādījumu izmaiņas nav tik straujas. Seriālā konsolē es tos datus pēc atilstošu komandu nosūtīšanas varu saņemt reālā laikā. Kādēļ izvēlējos PHP, nu var arī Javā vai HTML. Šie piederas pie maniem hobijiem un apgūstu PHP mazliem solīšiem. Daudzas līdzīgas kontrolieru programmas bāzētas HTML un sajūdzas ar MS SQL. Savā laikā kaut ko MATLAB vidē taisīju. Bija arī tāds Liberty Basic ar kuru varēja pa tiešo griezties pie portiem. Bet tas bija tik ļoti nograizīts rīks, ka atmetu to domu. Kā mācību līdzeklis labs. Tas tā īsumā. e-remit Ja varbūt tev taisnība, ka neizvlejos pareizo risinājumu pa PHP runājot. Esmu redzējis rūpnieciskos kontrolierus uz Java risinājumu. Tomēr cik saprotu beidzamā laikā arī no Java sāk atteikties. PS Kaut gan skatos šie bliež augšā uz HTML5.
-
Paldies Blitz. Papētīšu sīkāk. PS F3llony tā kā es zinātu kas ir scala? Neesmu programmēšanas profesionālis un nezinu visas novitātes. Kontrolierus gan man tīk programmēt. Tur cita specifika. rpr kāda starpība cik bieži iepostoju? Es pamazām PHP apgūstu pašmācības ceļā un nezinu visus tos smalkumus. Man tuvāka ir elektronika. "Nesenā" laikā radusies interese, kā to visu sajūgt kopā ar WEBu.
-
Sveicināti zināma pārtraukuma! RS232 lasīšanu/rakstīšanu izmantojot PHP esmu apmuļājis. Nemaz tik traki neizskatās .Ir savas nianses ujn knifi. Tagad radusies cita veida problēma. Principā sistēma ir klasiska, kas izskatās šādi. PC (web+mysql serveris) => USB/RS232 => Mikrokontrolieris+sensors. Principā izveidoju COM porta nolasīšanu un datu ierakstīšanu mysql datu bāzē. Atverot lapu dati sāk ierakstīties. Aizverot lapu ieraksts pārtrūkst. Kā panākt datu ierakstīšanu nepātraukti? Kurā virzienā rakt?
-
Diemžēl neesmu linuxā. Skatos ka tomēr tas DIO aizgājis. $output = array(); exec ('mode COM1: baud=19200 data=8 stop=1 parity=n',$output); $fd = dio_open('COM1:', O_RDONLY); if(!$fd) { echo "Connection not working"; } else { echo "Connection working"; } Beigās webs nobļaustās "Connection working". Visa lieta bija tajā ka iepriekšs bija jāslēdz konekcija ar COM1. Tikai tad viss aizgāja. Tikko palaižu putty un mēģinu webā konektēties klāt, tā nobļaustās. "Warning: dio_open(): cannot open file COM1: with flags 0 and permissions 0: Permission denied in F:\WEB\TEST\test.php on line 8 Connection not working:" Tagad tikai japacīnās ar kaut kādu datu nolasīšanu un ierakstīšanu.
-
Sveicināti! Ir pagājis zināms laiciņs. Pieķēros vecajai lietai no jauna. Ideja tehniskai pusei ir sekojoša. Ir mikrokontrolieris ar USART portu. Caur līmeņu pārveidotāju mikreni tas pievienosts pie datora RS232 porta. Uz datora griežas Apache+PHP. No web lapas jāvar aizsūtīt datus kontrolierim un arī nolasīt informāciju no kontroliera. Respektīvi jāsaskaras ar veselu gūzmu sīku un ne tik sīku problēmu. Ilgi dikti googlējos. Meklēju risinājumus. Risinājumi ir relatīvi daudz. Tikai daži ir dārgāki citi ne tik dārgi finasiālajā plāksnē un arī tehniskajā izpildījumā dažādas sarežģītības pakāpes. Galu galā apstājos pie viena interesanta risinājuma. Šeit arī padomos izskanēja par ko līdzīgu. http://www.easyvitools.com/phpserial/index.html. Diemžēl ta ir tikai Trial versija ar zinamiem nepatīkamiem ierobezojumiem. Tomēr testiem tīri labi noderēja. Tātad. Uz datora uzkrāmēju Apache (v2.4.4) + PHP (v5.4.9). Kādu laiciņu pacīnījos ar tām versiju saderībām un iepazinos ar to kas VC6, VC9 utt. Šeit cik noprotu kompilatoru versiju saskaņai ir liela nozīme. Tad nu izvēlējos atbilstošo bibliotēku un nokonfigurēju Apache un PHP. Patestēju piedāvātos kodus un pats proveju ko rakstīt. Sākumā no kontroliera sūtīju vienkārši taimera signālu ar sekundēm. Jā lieliski nolasa. Tikai demo versijas ierobežojumi to ļauj izdarīt ar zināmu aizkavejuma laiku. Arī datu sūtīšana uz kontrolieri notiek lieliski. Tikai lūk Trial versijas ierobežojumi. Neceļās pagaidām roka pirkt full versiju. Paralēli šim visam pētīju iespējas kodu dzenāt "reālajā laikā". Respektīvi reizi sekundē nolasīt konstroliera nolasīto analogo signālu izvest iekšs web lapas. Cik esmu izpētījis, tad pastāvot PHP+Ajax tehnologija. Tas ir kas saistīts ar java cik noprotu. Vai kāds ko sīkāk var par šo pastāstīt un ko tas ziemā īsti ēd? Meklējumi turpinājās. Atdūros pret vēl vienu līdzīgu ideju - Direct input output DIO bibliotēkas. To arī iedabūju iekšs PHP. Diemžēl kodēšanas lietas jau vairs tik gludi neiet, jo COM ports neatsaucas. ...Mazliet vēlāk paturpināšu savu gaitu izklāstu. Ja kadam ir interese par šo tēmu, tad varu sīkak padalīties ar pieredzi un protams pieņemšu arī jūsu padomus.
-
To pashu tu ieteici jurchikam. Man doma pastraadaat ar io modulkjiem prieksh seriaalaa porta. taadeelj arii gribu izprast lietas buutiibu.
-
Iekšs PHP radusies neliela problēma. Drusku parakos pa forumu un atradu topiku "Apache nepatīk mans PHP". Pie šādas pat Apache un PHP versijas izdarot visu to pašu ko jurchiks uzrādās tie paši gļuki. Kā es to atrisinaju. Vienkārši iekomentēju PHPIniDir "C:/PHP" rindiņu. Tad nu lapa palaidās, bet iekš PHP info parādās šāda informācija. Configuration File (php.ini) Path C:\WINDOWS Tomēr PHP.ini fails nav iekš windows direktorijas, bet gan iekš ta paša C:/PHP. Mēģinot iekopēt iekš windows direktorijas PHP.ini un pārstratējot serveri tiek izmesti visi tie paši gļuki. Tikko to izdzēšu tā viss normāli aiziet. Man jautājums kas tas par gļuku? Tad kur man to PHP.ini dabūt, lai normali nokonfigurētu?
-
Izskatās ka nē. Nekur arī tada neparādās. Requirements No external libraries are needed to build this extension.
-
Ok pagaidām aktuāls ir RS323. USB mazliet vēlāk. Kas tajā python tāds īpašs? Pieķēros klāt manis augstāk minētajam kodam. Mēģinu to padarbināt, bet tiek izmests errors: Fatal error: Call to undefined function: dio_open() in D:\WEB\sharps.lv\test\test.php on line 5 Kādēļ dio_open ir nedefinēta funkcija??? Kur problēma varētu būt?