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)