Re: Auswertung mehrere I2C-CNT2-HS Module (#1828) Kategorie: Programmierung (von André H. - 8.08.2012 10:20) | ||
Als Antwort auf Auswertung mehrere I2C-CNT2-HS Module (#1828) von Dirk - 27.07.2012 13:47 | ||
| ||
Hallo Dirk, > Zum Zwecke der PV-Anlagen-�berwachung würde ich nun gerne die diversen S0-Impulse der neuen > Smart-Zähler (PV-Erzeugungszähler und Zweiweg-Zähler) als auch der zusätzlich installierten > elektronischen 230V-Wechselstromzähler auswerten wollen. > Insgesamt sind es dann mittlerweile 10x S0-Impulse, welche ich per CC2-Station auswerten möchte. > > Wie würdet Ihr vorgehen unter Nutzung welcher Hardware, um die besagten 10 S0-Impuls-Geber > auszuwerten, so dass die Belastung für den I2C-Bus als auch der CC2-Station so gering wie möglich > ist. Es ist auszugehen, da� die Impulse eher selten eintreffen. Bei hher Laste evtl. jede Sekunde. Ansonsten kann es schon, je nach Zähler, bis zu einer Minute dauern, bis ein Impuls erzeugt wird. Der I²C-Bus pakt dis auch bei 10 Zählern ohne Probleme. > Bei den I2C-CNT2-Modulen existiert ein INT-Ausgang, welcher widerum theoretisch > auf der CC2-Station an den 8 digitalen Ports P0 ... P7 abgefragt werden könnte, das ist bekannt. > Allerdings habe ich die Herausforderung, dass die Impulsintervalle bei den versch. S0-Gebern > extrem auseinander liegen können => jedesmal, wenn einer der 10 CNT-Eingang über INT einen > Zählimpuls anzeigen würde, werden alle 10x CNT-Zähler abgefragt, halte ich nicht gerade > für besonders effektiv. Wenn Du alle INT-Ausgänge an einen Eingang der CC2 legst, mu�t Du nicht unbedingt alle Zählermodule abfragen. Du frägst nur solange ab, wie der Interrupt besteht. D.h. Du prüfst nach jedem Abfragen eines Zählermoduls, ob die INT-Leitung noch low ist. Ist sie es nicht, brichst Du das Abragen der weiteren Counter ab. Es ist hier hilfreich, die Zähler zuerst abzufragen, bei denen es wahrscheinlich ist, da� öfter Impulse eintreffen. Der Zähler, bei dem am seltensten ein Impuls eintrifft, wird beim Interrupt zum Schlu� abgefragt. So bleibt die Buslast relativ gering. > Klar würde das funktionieren, allerdings hätte ich hier von Hause aus eine Effektivität > von gerade 10%. Jedes einzelne I2C-CNT2-Modul per INT-Signal einzeln auszuwerten funktioniert > aufgrund der zukünftigen Doppelbelegung (swcom an P1 und P2) und der bereits > etablierten Auswertung der I2C-Eingangsmodule für die diversen Taster auf P4 bis P7 > rein technisch nicht. Man kann natürlich auch mit mehreren Interruptleitungen arbeiten. Aber bei der geringen Buslast ist das nicht notwendig. �brigens kann man die AD-Ports auch als digitale Eingänge nutzen. Das wäre dann P5. inline function get_P5() returns byte { inline vmcodes.VM_LOAD_ABSOLUTE_BYTE; inline 0xFFA2; } Diese Funktion gibt das Bitmuster der 8 AD-Ports als Digitalports wieder. Es mu� aber u.U. erst über as P5DIDIS-Register der Portpin mit dem Digital-Input-Stage verbunden werden. Dies ginge mit folgender Funktion: inline function set_P5DIDIS(int data) { inline vmcodes.VM_STORE_ABSOLUTE_INT; inline 0xFFA4; } Nähere Infos dazu im User-Manual zum C164CI-Controller Kapitel 7.8. MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: Re: Auswertung mehrere I2C-CNT2-HS Module (#1828) (von Dirk - 15.08.2012 13:57) |