<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=12&amp;t=1021&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-04-22T11:55:59+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=12&amp;t=1021&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-22T11:55:59+01:00</updated>
<published>2012-04-22T11:55:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5668#p5668</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5668#p5668"/>
<title type="html"><![CDATA[Re: komunikacja rs485 w BSC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5668#p5668"><![CDATA[
No to właśnie potrenuj tą transmisję ASCII - bo w Bascomie też ci wyjdzie - a jak pisał SunRiver w 99,9% można to wykorzystywać<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 22 kwi 2012, o 11:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sirk77]]></name></author>
<updated>2012-04-22T11:34:40+01:00</updated>
<published>2012-04-22T11:34:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5667#p5667</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5667#p5667"/>
<title type="html"><![CDATA[Re: komunikacja rs485 w BSC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5667#p5667"><![CDATA[
Panowie dzięki za obrazujące przedstawienie problematyki tematu,<br />jednym słowem muszę obrać inny kierunek(w komunikacji rs485),<br /><br />co do C, uczę się go równolegle i oczywiście czekam na 2 książkę,<br /><br />ale obecnie muszę zakończyć ten projekcić, który rozpocząłem w BSC, potem przyjdzie kolej na przenoszenie wszystkiego do C<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=187">sirk77</a> — 22 kwi 2012, o 11:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-04-22T10:28:09+01:00</updated>
<published>2012-04-22T10:28:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5664#p5664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5664#p5664"/>
<title type="html"><![CDATA[Re: komunikacja rs485 w BSC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5664#p5664"><![CDATA[
I w ten sposób Mirku ująłeś całą praktycznie spuściznę tragizmu jakim niewątpliwie jest komunikacja realizowana na poziomie binarnym. I to jak zwykle w poetycki sposób <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Reasumując komunikacja ASCII jest w naprawdę jak najbardziej idealna do 99.9% zastosowań <br />zwłaszcza w Bascomie gdzie jest ona bardzo dobrze udokumentowana choć w istocie zasobożerna,<br />ale to tylko BSC tu w zasadzie do końca nie wiadomo co właściwie kompilator robi z kodem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Jeśli kolego jeszcze nie ugrzęzłeś na dobre w bascomowym Bagnie szybko z niego uciekaj, <br />nie bynajmniej nie mam na myśli że jest zły , bo mi się też zdarza z niego korzystać jeszcze, <br />głównie do mniej ambitnych projektów , choć wypiera go powoli Arduino gdzie jest jeszcze prościej<br />i ma się większą kontrolę nad kodem.  Bo z czasem nabierzesz dziwnych nawyków , a później przyjdzie rozgoryczenie i frustracja.<br /><br />Wysyłanie łańcuchów  ASCII to prosta i sprawdzona metoda, ta droga powinieneś iść .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 22 kwi 2012, o 10:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-22T10:14:20+01:00</updated>
<published>2012-04-22T10:14:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5660#p5660</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5660#p5660"/>
<title type="html"><![CDATA[Re: komunikacja rs485 w BSC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5660#p5660"><![CDATA[
Ja powiem tak - z doświadczenia już wiem bo widzę - że ogromna ilość ludzi tak się boi i obawia komunikacji za pomocą znaków ASCII - Ten twój sposób nr.2) ..... że od razu przechodzą na tryb transmisji binarnej - bo ten wydaje się TAK oczywisty i prosty że szok.<br /><br />Tyle że ta ogromna większość ludzi nie zdaje sobie sprawy że tylko im się tak WYDAJE i czycha na nich pułapka .... proszę bardzo - właśnie w nią wpadasz ale dodam że jeszcze nie doleciałeś do dna tego wilczego dołu - pułapki - bo na dole czekają na ciebie jeszcze ostre kolce <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Tylko proszę mnie źle nie zrozumieć - nie chcę przez to powiedzieć, że transmisja binarna jest jakaś mega koszmarnie trudna i do zrealizowania tylko dla jakichś orłów. Raczej chodzi mi tu o przedstawienie takie obrazowe - różnicy pomiędzy transmisją ASCII a binarną ....<br /><br />Bo transmisja ASCII to w porównaniu do tych wilczych szańców jak - spacer na boso o poranku po pięknej zielonej łące wilgotnej od porannej rosy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />ale cóż - na początku - zwykle każdy widzi niestety to inaczej na swój pohybel <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Tak pokrótce o co chodzi:<br /><br />1. jeśli transmisja binarna to musisz pan opanować:<br />  a. budowanie prawidłowych ramek zawierających znaczniki startu, końca i ew sumy kontrolen<br />  b. posługiwanie się timeoutami !!!!!! - tak o tym długo nikt nie wie i stąd ten ból i kolce<br /><br />jeśli nie wierzysz to sprawdź sobie jak wygląda pięknie zrobiona transmisja MODBUS RTU - tylko uwaga żeby ci się nie zrobiło niedobrze od analizy kodu - bo mi się zrobiło niedobrze - jak kiedyś to zobaczyłem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />reasumując trzeba ściśle pilnować czasu pomiędzy ramkami, dbać o odstępy prawidłowe - i reagować na opóźnione albo uszkodzone ramki - bez tego masz i będziesz miał kaszankę najwyższej jakości<br /><br /><br />Gdybyś zaś zdecydował się na transmisję ASCII - którą nawet w Bascomie łatwo do pewnego stopnia zrobić na na pewno łatwiej niż binarną (tak mi się wydaje) ..... to wiesz jak może wyglądać ramka ????<br /><br />coś pięknego - jedna ramka to po prostu najzwyklejszy łańcuch danych tekstowych zakończony znakiem ENTER !!!! może także zawierać CRC ale również jako tekst np liczby HEC (ASCII)<br /><br />obsługa nadlatujących końców linii w postaci znaków ENTER gigantycznie ułatwia pracę - jak myślisz dlaczego praktycznie większość modemów posługuje się właśnie ASCII - znane ci pewnie ze słyszenia chociaż &quot;komendy AT&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ????<br /><br />dlatego że to super proste do implementacji<br /><br />no tak a czego tak się boją początkujący w tej transmisji ASCII i to jak wielkiego włochatego jeża ???<br /><br /><br />a no tego że jak tu przesłać kilka zmiennych różnego typu gdy jedna to liczba, druga to tekst a trzecia to np liczba z przecinkiem<br /><br />nic prostszego - zamieniasz te liczby na tekst (w Bascomie to pryszcz) i formujesz łańcuch gdzie każda dana oddzielona jest np przecinkiem, np:<br /><br />zmienna WORD A = 183<br />zmienna SINGLE B = 27.83<br />zmienna tekstowa STRING = &quot;ala i as<br /><br />proszę bardzo po złączeniu może być przesłany taki łańcuch:<br /><br />&quot;183,27.83,ala i as&quot; i od razu po tym znak ENTER<br /><br />no tak o ile to jeszcze wydaje się proste to już jak to po drugiej stronie rozłożyć na kawałki? <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> każdy myśli ... a co ? Od czego macie panowie w Bascomie polecenia typu mid(), left(), right(), val(), str() itp ?????<br /><br />toż to proste jak drut - no ale ..... niestety coś za coś - jeśli to ma być w Bascomie to niestety zajmie to sporo miejsca we Flash i nie ma co liczyć na realizację zawrotnych prędkości - ale bez przesady - da się !!!! nawet z prędkościami 115200 bps !!!!!!!!! Jak mówię o zawrotnych to np 3MBit/s <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Wtedy warto przesiąść się na C a szczególnie że w drugiej części mojej książki mam nadzieję że pięknie odczaruję tą transmisję ASCII, której wszyscy się tak boją <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />spójrz na ostatni element z listy tego co będzie w tej książce - szczerze ci to polecam i nie tylko tobie, ma to w linku poniżej:<br /><br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/post4396.html#p4396">post4396.html#p4396</a><!-- l --><br /><br />wracając do Bascoma - zanim poznałem C to z powodzeniem w ten opisany przeze mnie sposób i z użyciem buforowania dobrze przygotowanego przez Bascom - realizowałem transmisje w sterownikach swoich pracujących na RS232 ale i na RS485<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 22 kwi 2012, o 10:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sirk77]]></name></author>
<updated>2012-04-22T09:37:03+01:00</updated>
<published>2012-04-22T09:37:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5653#p5653</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5653#p5653"/>
<title type="html"><![CDATA[komunikacja rs485 w BSC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1021&amp;p=5653#p5653"><![CDATA[
postanowiłem dokończyć rozgrzebany projekt, ale ostatnio utknąłem na komunikacji rs485 między dwoma modułami, które wymieniają się danymi dwu-kierunkowo,<br /><br />generalnie w BSC można wybrać dwa sposoby wymianę danych:<br />1. printbin &lt;-&gt; inputbin<br />2. print  &lt;-&gt;  Inkey()<br /><br />ja wybrałem ten 1, no i pytanie czy to słuszny kierunek, bo w większości rozwiązań na sieci dominuje ten 2(zmienna zamieniana jest na stringa i wysyłana w postaci znakowej)<br /><br />w moim przypadku komunikacja działa bez zakłóceń w trybie jedno-kierunkowym, natomiast problemy zaczynają się w momencie trybu dwu-kierunkowego - od czasu do czasu moduły zawieszają się, poniżej załączam listingi(&quot;identyczne w obu modułach&quot;),<br /><br />proszę o opinię osób, które wcześniej uporały się z komunikacją rs485 <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /> <br /><br />&gt;konfiguracja rs485<br />[syntax=basic4gl]Config Serialin = Buffered , Size = 15                    <br />Config Serialout = Buffered , Size = 30<br /><br />Config Print0 = Portd.4 , Mode = Set<br />Config Portd.4 = Output[/syntax]<br /><br />&gt;podprogram wysłania(przesyłam komendę i zmienną )<br />[syntax=basic4gl]Sub Wyslij_rs485(byval _comm As Byte , Byval _data_rs485 As Byte)<br /><br />   _data(1) = _comm : _data(2) = _data_rs485<br />   _crc8 = Crc8(_data(1) , 2)<br /><br />   Clear Serialout<br />   Printbin _data(1) ; _data(2) ; _crc8<br /><br />   'wysyłam dane na PC w celu podglądu<br />   Print #1 , &quot;--------- WYSLANO&quot;<br />   Print #1 , _data(1) ; &quot;__&quot; ; _data(2) ; &quot;__&quot; ; _crc8<br />   Waitms 100<br />end sub[/syntax]<br /><br />&gt;podprogram odbioru danych<br />[syntax=basic4gl]Sub Odbierz_rs485:<br />If _rs_head_ptr0 &lt;&gt; _rs_tail_ptr0 Then<br /><br />   Disable Timer0 : Disable Timer2 : Disable Int1<br />   Inputbin Dana(1) , Dana(2) , _crc8<br /><br />   'wysyłam dane na PC w celu podglądu<br />   Print #1 , &quot;--------------- ODEBRANO&quot;<br />   Print #1 , Dana(1) ; &quot;_&quot; ; Dana(2) ; &quot;_&quot; ; _crc8<br /><br />   Enable Timer0 : Enable Timer2 : Enable Int1<br />   Waitms 6 : Clear Serialin<br /><br />   'jeżeli CRC OK wtedy przypisz dane z rs485<br />   If _crc8 = Crc8(dana(1) , 2) Then<br />      Select Case Dana(1):<br />         Case 1:<br />         Case 2 : Todnp = Dana(2)<br />         Case 3 : Todnb = Dana(2)<br />         Case 4:<br />           Nc_on = Dana(2)<br />           If Nc_on = 0 Then Kontrola = 0 Else Kontrola = 1<br />            Tp = 0<br />         Case 5:<br />            If Comrs = 1 Then Writeeeprom Adr_print , 99<br />            Start Watchdog : Wait 1<br />         Case 6 : Redukcja = Dana(2)<br />         Case 7 :<br />            Adr_config = Dana(2)<br />         Case 8 :<br />            Adr_co = Dana(2)<br />            Writeeeprom Adr_co , 40<br />            Timer_2 = 60<br />         Case 9 :<br />            Adr_cwu = Dana(2)<br />            Writeeeprom Adr_cwu , 41<br />            Timer_2 = 60<br />         Case 10 :<br />            Adr_tz = Dana(2)<br />            Writeeeprom Adr_tz , 42<br />            Timer_2 = 60<br />      End Select<br />   Else<br />      Call Buzz<br />      Alarm.0 = 1<br />      Clear Serialin : Clear Serialout<br />   End If<br /><br />End If<br />end sub[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=187">sirk77</a> — 22 kwi 2012, o 09:37</p><hr />
]]></content>
</entry>
</feed>