It is currently Tue 23. May 2017, 11:43


All times are UTC + 1 hour




Post new topic Reply to topic  [ 17 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: PLC als serielle Brücke
PostPosted: Sat 16. Jul 2011, 20:11 
Offline

Joined: Sat 16. Jul 2011, 20:01
Posts: 3
Hallo

ich verstehe die Doku wohl nicht so ganz.
Ist es Möglich zB 30 Bytes von einem Modul zum anderen zu senden?

Ich sende zB vom PC der mit einem PLC verbunden ist den String GetState an ein bestimtes Modul. An dem Modul habe ich an der ser. Schnittstelle einen Atmel der den Befehl empfängt und dann antwortet. Der Atmel zB sendet dann 20 Bytes als Antwort zurück die dann der PC empfängt.

Also eine Art PLC adressierbare serielle Brücke.


Top
 Profile  
 
PostPosted: Mon 18. Jul 2011, 07:20 
Offline
Administrator
User avatar

Joined: Tue 11. Aug 2009, 13:18
Posts: 175
Theoretisch kann man schon eine serielle Brücke bauen.
Dann muss man aber alles mit Chip-Modulen und Controllern selbst bauen.

Mit bestehenden PLC-BUS Modulen geht das nicht.
Nur zur Info: der Befehl GetState sendet kein String sondern nur eine Befehls ID.

_________________
www.p-b-e.de


Top
 Profile  
 
PostPosted: Mon 18. Jul 2011, 17:05 
Offline

Joined: Sat 16. Jul 2011, 20:01
Posts: 3
Hallo

Danke für die Antwort. Der Befehl GetState ist ein Befehl von einem Modul welches ich entwickelt habe. Das war nur ein Beispiel. Ich sende diesen Befehl über ein ZigBee und bekomme dann bis zu 20 Bytes als Antwort.

Im Moment nutze ich ZigBee Module als adressierbare Serielle Schnittstellen.

Ich nehme mal an das die PLC Chip Module eine ser. Schnitstelle mit TTL Pegeln hat und ich dann mittels den low level Zugriffen ein anderes PLC Modul adressieren kann und dann dorthin Befehle senden kann. Stimmt das so?


Top
 Profile  
 
PostPosted: Mon 18. Jul 2011, 17:57 
Offline
Administrator
User avatar

Joined: Tue 11. Aug 2009, 13:18
Posts: 175
Die Chip-Module haben eine I²C-Schnittstelle.

Das PC Interface-Modul 1141 z.B. hat intern einen Controller der die Umsetzung I²C auf RS232 vornimmt.
Die Umsetzung erfolgt aber im PLC-BUS High-Level Protokoll.

_________________
www.p-b-e.de


Top
 Profile  
 
PostPosted: Wed 20. Jul 2011, 11:22 
Offline

Joined: Sat 16. Jul 2011, 20:01
Posts: 3
Ok. Was ich aber noch nicht verstehe ist wie ich z.B. 20 beliebige Bytes an ein Modul schicken kann.

Nehmen wir mal an ich kaufe mir also 2 PC Interface-Modul 1141 und gleiche sie ab und vergebe 2 Adressen, so das sie untereinander senden und empfangen können.
An beide Module klemme ich jeweils einen PC mit ser. Schnittstelle an.

Wie muss jetzt der zu sendene String lauten, damit der 2te PC "Dies ist ein Test" empfangen kann.
Im String muss ein Startbit,eine Datenlänge, Daten und Stopbit enthalten sein. In den Daten ist der Homecode und Usercode enthalten und die eigentlichen Daten und zum Schluss das Stopbit. Das Command und das Data1 und Data2 sind ja 16Bit lang. D.h. für mich ich müsste 9 Befehle senden , da ich pro Befehl nur 2 Bytes übertragen kann.

Sind meine Gedanken so richtig oder kann ich mehr Bytes senden? Wenn ja wie müsste dann ein Beispiel Befehl lauten?


Top
 Profile  
 
PostPosted: Wed 20. Jul 2011, 12:07 
Offline
Administrator
User avatar

Joined: Tue 11. Aug 2009, 13:18
Posts: 175
Kurze Antwort: Das geht nicht

Wie ich oben geschieben habe setzt das RS232 Interface 1141 das High-Level Protokol um.
Da werden nur Befehls-IDs gesendet. Damit kann man keine "Nutzdaten" übertragen!
Ein 1141 Interface hat auch keine PLC-BUS Adresse, somit kann man an ein 1141 Interface keine
Befehle/Daten schicken!

Für solche Anwednungen muss man an das Chip-Modul ran und über die I²C-Schnittstelle im
Low-Level Protokol kommunizieren.

_________________
www.p-b-e.de


Top
 Profile  
 
PostPosted: Sat 15. Dec 2012, 18:40 
Offline

Joined: Mon 4. Jun 2012, 16:09
Posts: 10
In wie fern würde eine solche I²C Protokollierung azussehen, da bekanntlich das PLCBUS-Modul über nur intern festgelegte Befehle arbeitet. Oder verstehe ich das Datasheet falsch?


Top
 Profile  
 
PostPosted: Tue 18. Dec 2012, 09:53 
Offline
Administrator
User avatar

Joined: Tue 11. Aug 2009, 13:18
Posts: 175
Über die I²C Schnittstelle greift man auf die Register zu.
Es gibt zwei Registerbereiche den Low-Level und den High-Level.

Schau dir mal das UPB System von Pulseworx an, dann wirst du das Low-Level Protokoll verstehen.

PLC-BUS ist nicht anders als UPB mit einer zusätzlichen Schicht, die das Ganze adresskompatibel zu X10 macht.

_________________
www.p-b-e.de


Top
 Profile  
 
PostPosted: Tue 18. Dec 2012, 10:05 
Offline
Administrator
User avatar

Joined: Tue 11. Aug 2009, 13:18
Posts: 175
hier noch der Link zur UPB Doku

http://www.pulseworx.com/downloads/upb/ ... onv1.4.pdf

_________________
www.p-b-e.de


Top
 Profile  
 
PostPosted: Wed 19. Dec 2012, 07:46 
Offline

Joined: Mon 4. Jun 2012, 16:09
Posts: 10
Vielen Dank für die Antwort. Das UPD Pdf hatte ich auch schon gesehen. Ist aber auch sehr komplex. An sich möchte ich ja nur auf die Register so zugreifen können, das ich eventuell nur die Daten die ich auch original dem I2C entnehme, übers Stromnetz bspw. am empfangenen PLCBUS Modul wieder ausgeben. Heisst eigentlich ganz einfach 1:1 übertragen.

Dabei bezweifle ich, das wegen der festen Register die man benötigt, um es anzusprechen eine direkte Übertragung der Daten nicht möglich ist.

Wobei Du geschrieben hast, was mich jetzt ein wenig verwirrt das man auf beide Ebenen (High und Low) zugreifen kann. Ist das nicht so das man nur auf das low protokoll zugriff hat? Da ja bekanntlich das Highprotokoll die direkte Übertragung ausübt.

Weiter ist mir aufgefallen, da ich schon Platinen mit den PLBUS- Modulen selber gebaut habe das beispielsweise bei dem Controller 1141+ die Beschaltung unterschiedlich zu der des Controller 4034 ist. Sprich die LC- Einheit auf den PIN 21 abgeändert wurde.

Weisst Du vielleicht aus wechem Grund das geschehen ist. Habe nämlich meine eigenen Platinen nach 4034-Standard gebaut.
Diese werden allerdings nicht vom Controller (1141+) gefunden.


Schon mal vielen Dank im Voraus für deine Bemühungen.

East


Achso vielleicht noch eine Frage. Habe die Zerocrossdetection in C geschrieben. Weiss aber nicht ob diese Funktiioniert, da ich mich noch nicht mit dem Übertragen per TWI beschäftigt habe, weil ich erst einmal das Protokoll verstehen muss.

Hier ein kleiner auszug:

SR(INT1_vect) //Zero crossing interrupt
{

//FILTER Zeitfenster wenn erster Nulldurchgang nicht registriert wurde

if (TMR1_on && (TMR1 < Sine_wave_min_period)) return;
if (TMR1_on && (TMR1 > Sine_wave_max_period)) return;

//*******************************************************************
//Sicherheit das Zerocross >15uS ist

for (unsigned char i=0;i<ZeroCross_sample_number;i++)
{
if (ZeroCross_pin == current_half)
return;



//Synkronisation nur mit positiver Halbwelle current_half = 0
}

//*******************************************************************

// Hier wird die komplette Zerocross registriert
//Timer1 hat Priorität
//da zuvor der Kondensator geladen werden muss!!!! sonst wird Zerocross nicht registriert

TMR1 = 0; //Reset des Timer1 bei Halbwelle
Start_Timer1; //starte Timer für erste Zerocross

//*******************************************************************


wdt_reset(); //setze alle ca. 9-11ms zurück

//*******************************************************************

//wird benötigt für Empfangsfilterung (RX)

if (ZeroCross_pin)
current_half = 1;
else
current_half = 0;

//*******************************************************************


Disable_Comp_int;
Disable_Comparator;

Step_counters();


//*******************************************************************

// erster Start!


current_noise_threshold = min_noise_threshold;


//
Set_Ext_Vref_To_Current_Level();

//*******************************************************************

//Less sensitive to timing!
//if TX is needed charge cap

//Wenn gesendet wird, wird die Aufladung des Kondensators zuvor benötigt

if (TXmode == 1 && Double_Bit_out_flag == 1 && Double_Bit_buffer < 4)
{
_delay_us(500);
Fire_Triacs();
CAP_active = 1;


}



//********************************************************************



}


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 17 posts ]  Go to page 1, 2  Next

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Imprint