IP-Symcon + ModBus: Einsteigerfragen und Empfehlungen

Hallo Leute,

Ich bin ganz neu hier - also bei Symcon und in der Hausautomation - und will mein neues Haus intelligent machen :smiley:
Ich selbst hab Elektrotechnik & Programmierausbildung & -erfahrung.

Ich hab mich mal soweit festgelegt, dass ich gerne Modbus (Komponenten von ICP DAS) verwenden möchte. Ein guter Freund hat mich dann auf Symcon für die Visualierung hingewiesen.

Hab mir schon die site angesehn und auch die Doku durchgeschaut - vor allem den Modbus Teil. Ich würd gern Modbus RTU und TCP Komponenten verwenden.

Die Anbindung & Zugriff von TCP ist mir klar - geht ja über die IP Adresse. Aber wie greife ich die RTU Komponenten zu? Da ja Symcon auf Windows läuft brauch ich ja zum einen eine Hardware - wahrscheinlich einen Modbus zu USB Adapter - passende Treiber und zusätzlich muss ja noch Symcon darauf zugreifen können.
Dazu habe ich leider noch nichts gefunden…

Wenn mir wer hier mal weiterhelfen könnte wie das funkt und vielleicht sogar einige Hardwareempfehlungen abgeben kann wäre es super!

Sollte das obige alles kein Problem sein dann noch eine ganz blöde Frage: Ist Modbus voll unterstützt von Symcon? Im Forum hier liest man nicht viel davon?

Herzlichen Dank
Soko

Voll unterstützt ist es nicht. Sobald man Ca. 100 Merker schneller als 1/Sekunde abruft, blockiert der TCP Kanal. Als Alternative kann man „alle“ gleichzeitig abrufen, das unterstützt IPS aber nicht.

Gesendet von meinem HTC Desire

OK, danke für die Info. Sind mit „Merker“ Komponenten gemeint? Zählt zB eine Komponente für 12 Digitale Eingänge als ein Merker? Wenn ja sollt ich für ein kleines Einfamilienhaus weit unter 100 liegen…

Das kann ich so nicht bestätigen. Ich mache viel mit Modbus TCP und RTU und es läuft.

Wenn du Modbus RTU/ASCII(auf RS485) machen willst brauchst du nur einen USB->RS485 Adapter.

Als Hardware empfehle ich ger Beckhoff oder Wago

OK, danke für die Info. Sind mit „Merker“ Komponenten gemeint? Zählt zB eine Komponente für 12 Digitale Eingänge als ein Merker? Wenn ja sollt ich für ein kleines Einfamilienhaus weit unter 100 liegen…

Was meinst du mit Komponenten?

Du rufst ja mit Modbus Register ab die dann z.B auf Merkern usw liegen. Das je nach Hersteller unterschiedlich.

Hi Sallos & herzlichen Dank.

Mit Komponente meine ich, ein Stück Hardware das ich entweder per TCP mit dem Netzwerk verbinde oder zweiadrig an den „RTU bus“. Sorry… ich kenn die Fachbegriffe dafür (noch) nicht.

OK, also ich brauch einen Modbus RTU/ASCII auf USB Adapter - was gleich einem RS485 auf USB Adapter ist. Super info. Und Beckhoff bzw. Wago haben sowas im Programm? Einen Wago USB Adapter hab ich bei Conrad gefunden… kostet 80 Euronen.
Oder reicht sowas:
http://www.mts-shop.eu/Hardware-Zubehoer/Kabel-Zubehoer/Kabel/USB/Adapter/USB-RS485-Adapter-USB2-0-USBASTRS485::202169.html

Sobald ich also so einen Adapter habe kann ich mit IPS vom Modbus RTU lesen & schreiben? Ich nehm mal an, dass ich dann auf das vom Adapter erstellte RS485 Gerät zugreife, richtig?

Danke nochmals
Soko

Moin,

du brauchst nur mal bei ebay nach USB RS485 suchen(~10€).

Im Windows ist das einfach eine Serielle Schnittstelle COM XX

Hersteller handbus brauchste noch hier steht welches Register was ist. Bei Wago kann man z.B direkt per Register auf die Ausgänge schreiben.

war ich zu langsam mit meinem Edit oben :wink:

Also wie gesagt… sowas meinst du:
USB RS485 Adapter USB2.0,USBAST RS485 - MTS-Shop.eu

Ich habe für jeden Status aus der SPS (Wago 881) einen Merker. Sprich für ca. 100 Stati sind es dann 100 Merker.
Wenn man die mittels IPS in den 16bit Blöcken abrufen könnte, wäre das super, aber dafür habe ich noch keine Lösung gefunden.

Vielleicht stellst du deine Lösung mal vor sallos?

Habe ich :wink:

Ich kann nachher mal ein Beispiel Programm posten.

Für IPS habe ich auch ein Word->Bit Script. Dann hättest du mit einem Abruf 16Bits.

auch haben wollen :slight_smile:

Gruß Stephan

da hätt ich auch Interesse
gehen die Änderungen per Bit in beide Richtungen also von SPS zu IPS aber auch IPS zu sps

gruss Roman

Moin,

si bin nun @ Home.

Hier erst mal das Programm aus der SPS:

Und nun der IPS Code:
INT_TO_BIT

<?
//Übergeordnete Kategorie
$parent = 20549 /*[I/O\Eingänge\%MW0]*/ ;
//Merker Wort vom Eingang
$word = GetValueInteger(14463 /*[I/O\Eingänge\%MW0\%MW0\Value]*/ );

$bit = array();

for ($i=15; $i>=0; $i--)
{
    $bit[$i] = ($word >> $i) & 1;           // liefert 0 oder 1
} 

for ($i=15; $i>=0; $i--)
{

	$ID = IPS_GetObjectIDByName($i,$parent);
	SetValue($ID, $bit[$i]);

}


?>

BIT_TO_INT

<?
//Übergeordnete Kategorie
$parent = 25644 /*[I/O\Ausgänge\%MW10]*/  ;

$bit = array();
$integer= 0;


for ($i=15; $i>=0; $i--)
{

	$ID = IPS_GetObjectIDByName($i,$parent);
	$bit[$i] = GETValue($ID);

}

for ($i=0; $i<=15; $i++)
{

$integer += $bit[$i] << $i;

}
//Zu Schreibende Modbus Merker
ModBus_WriteRegisterSmallInt(57094 /*[I/O\Ausgänge\%MW10\%MW10]*/ , $integer);

?>

Unbenannt1.JPG

Wieso fragst du nicht die Merkerregister (16bit) direkt ab? Du kannst auf die bits je Register (MX0, MX1, etc.) auch direkt zugreifen ohne Umweg über INT in der SPS.
PS: ich versuche das ganze in ein Modul auszulagern, welches dass ganze richtig flott (gefühlt in Echtzeit) erledigen kann. Erste Tests mit 100 bits, 10 ints und 10 REALs laufen seit ca. 48 Stunden ohne Ausfall als php-cli Script.

Weil ich das sonst nicht einfach kopieren kann.

Es gibt auch noch andere möglichkeiten in die Wago zu kommen…Z.B die Http API

Http api erklärt genauer

Gesendet von meinem Gedanken-Maschine Interface mit einem digital Technik Konverter

Bitte:

http://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCoQFjAB&url=http%3A%2F%2Fwagoandroid.googlecode.com%2Ffiles%2Freadwrite_0_3b.pdf&ei=c_3HVMDbLMn3UrGegrgB&usg=AFQjCNELx5kwkt9__VMlQzc6TT2p9ArPUg&sig2=7korzObE48M-mWQz-2heSg&bvm=bv.84607526,bs.1,d.ZWU&cad=rja