Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, C-Control II Station, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.1
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)