<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[SDS PLC/PAC: Měření Energie & OnlineTechnology.cz - CRC Modbus]]></title>
	<link rel="self" href="https://forum.sds.an-d.cz/extern.php?action=feed&amp;tid=330&amp;type=atom" />
	<updated>2012-11-02T17:33:05Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.sds.an-d.cz/viewtopic.php?id=330</id>
		<entry>
			<title type="html"><![CDATA[Re: CRC Modbus]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2572#p2572" />
			<content type="html"><![CDATA[<p>MODBUS využije určitě řada dalších uživatelů. Jsem zvědav jak to dopadne.<br />Nevýhoda u MODBUSu přes sériovou linku je (u běžných verzí MODBUSu) nutnost &quot;trvalé&quot; komunikace mezi zařízeními... snad to tady nebude problém.</p>]]></content>
			<author>
				<name><![CDATA[adamn]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=7</uri>
			</author>
			<updated>2012-11-02T17:33:05Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2572#p2572</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CRC Modbus]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2568#p2568" />
			<content type="html"><![CDATA[<p>Díky moc, jdu to hned zkusit rozchodit.</p>]]></content>
			<author>
				<name><![CDATA[akinek]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=716</uri>
			</author>
			<updated>2012-11-01T18:50:19Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2568#p2568</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CRC Modbus]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2521#p2521" />
			<content type="html"><![CDATA[<p>Předpokládám realizaci jako program v SDS-C.<br />Popisu algoritmu pro výpočet CRC je plný Internet, takže to chce najít něco a přepsat do SDS-C.</p><div class="codebox"><pre><code>var CRC16;
var b;

#define SEED 0xFFFF  //inicializace pro CRC16
#define GP   0xA001  //generujici polynom (zmenit v pripade jineho protokolu)

Calc_CRC
{
   var carry;
   var i;

   CRC16 = CRC16 ^ (b &amp; 0xFF);
   
   CRC16 = CRC16 &amp; 0xFFFF;


   i=0; 
nextb:
   if (i&lt;8)
   {
      carry = CRC16 &amp; 0x0001;

      CRC16 = CRC16 &gt;&gt; 1;

      if (carry != 0) 
       { CRC16 = CRC16 ^ GP; };

      CRC16 = CRC16 &amp; 0xFFFF;

      i++;
      goto nextb;
   }
}

main
{

 //priklad
 // spocitat CRC pro text[0] az text[3] (v poli text[0] az text[3] je zprava - toto je priklad...)

 // start
 CRC16 = SEED; // vzdy spravne nastavit na zacatek

 // provest
 b = text[0];
 Calc_CRC();
 b = text[1];
 Calc_CRC();
 b = text[2];
 Calc_CRC();
 b = text[3];
 Calc_CRC();

 // vysledek
 echo(&#039; crc je = &#039;, CRC16);

}</code></pre></div><p>Budu velmi rád když se se svým projektem (a výsledkem) pochlubíte zde na fóru, aby z toho měli ostatní uživatelé také užitek.</p>]]></content>
			<author>
				<name><![CDATA[adamn]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=7</uri>
			</author>
			<updated>2012-10-29T18:17:13Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2521#p2521</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CRC Modbus]]></title>
			<link rel="alternate" href="https://forum.sds.an-d.cz/viewtopic.php?pid=2510#p2510" />
			<content type="html"><![CDATA[<p>Dobrý den,<br />potřeboval bych poradit s realizací výpočtu CRC.&nbsp; Jde mi o odesílání teplot na zařízení s Modbus komunikací po RS485.</p><p>Díky</p>]]></content>
			<author>
				<name><![CDATA[akinek]]></name>
				<uri>https://forum.sds.an-d.cz/profile.php?id=716</uri>
			</author>
			<updated>2012-10-28T23:05:52Z</updated>
			<id>https://forum.sds.an-d.cz/viewtopic.php?pid=2510#p2510</id>
		</entry>
</feed>
