Page 1 of 1

RS-485 mit logiCAD3

Posted: 24 Sep 2019, 11:43
by Frido
Hallo zusammen,

dies ist ein Doppel-Post, der schon auf der logi cals Seite gepostet wrde, dort jedoch bisher ohne Antwort blieb. Sieh hier.

Für unser Projekt mit einem RevolutionPi als SPS könnten wir Kosten einsparen, wenn wir unsere Wägezellen direkt via RS-485 auslesen könnten. Der Hersteller hat dafür ein eigenes kleines Kommunikations-Protokoll geschrieben, siehe [url=http://support.fliegl.com/user/pages/02.dosiertechnik/01.Anleitungen/04.biogas-steuerungsanleitungen/04._teil-a-Anleitung_Biogas_Steuerung/Bedienungsanleitung_Teil%20A_EC1000_ab_29.04.2019.pdf]hier[/url] hier auf S. 65ff.

Meine Frage: Gibt es einen Treiber in logiCAD für ST für RS-485? Die Code-Schnippsel, die mir vom Hersteller zugespielt wurden, sehen so aus und müssen scheinbar auf einen Treiber zugreifen:

Code: Select all

wBitsNIO.0 := (Com.aRxBuffer[0] <> byResponse0);
wBitsNIO.1 := ((Com.aRxBuffer[1] < 16#2B) OR (Com.aRxBuffer[1] > 16#2D));  (*   + oder - an der 2. Stelle *)
wBitsNIO.2 := ((Com.aRxBuffer[2] < 16#2F) OR (Com.aRxBuffer[2]  > 16#3A)); (* zwischen 0 und 9 *)
wBitsNIO.3 := ((Com.aRxBuffer[3] < 16#2F) OR (Com.aRxBuffer[3]  > 16#3A)); (* zwischen 0 und 9 *)
wBitsNIO.4 := ((Com.aRxBuffer[4] < 16#2F) OR (Com.aRxBuffer[4]  > 16#3A)); (* zwischen 0 und 9 *)
wBitsNIO.5 := ((Com.aRxBuffer[5] < 16#2F) OR (Com.aRxBuffer[5]  > 16#3A)); (* zwischen 0 und 9 *)
wBitsNIO.6 := ((Com.aRxBuffer[6] < 16#2F) OR (Com.aRxBuffer[6]  > 16#3A)); (* zwischen 0 und 9 *)
wBitsNIO.7 := ((Com.aRxBuffer[7] < 16#2F) OR (Com.aRxBuffer[7]  > 16#3A)); (* zwischen 0 und 9 *)
wBitsNIO.8 := ((Com.aRxBuffer[8] <> 16#0F));

tmp_weight := 0;
tmp_weight := tmp_weight * 10 + Buffer_R[1] - ZERO;
tmp_weight := tmp_weight * 10 + Buffer_R[2] - ZERO;
tmp_weight := tmp_weight * 10 + Buffer_R[3] - ZERO;
tmp_weight := tmp_weight * 10 + Buffer_R[4] - ZERO;
tmp_weight := tmp_weight * 10 + Buffer_R[5] - ZERO;
tmp_weight := tmp_weight * 10 + Buffer_R[6] - ZERO;
IF Buffer_R[0] = 45 (*  -  *)THEN
tmp_weight := -tmp_weight;
END_IF
weight := tmp_weight;

VAR CONSTANT
ZERO : BYTE:= 48;
END_VAR
Leider bin ich auf diesem Gebiet kompletter Anfänger und bin daher um jede Hilfe dankbar!

Re: RS-485 mit logiCAD3

Posted: 08 Oct 2019, 14:03
by Walter
Hallo Frido,

danke für das Posten deines Projektes und deiner Frage im Forum und Sorry für die späte Beantwortung!
Nach Rücksprache mit mittlerweile allen Kollegen muss ich dir mitteilen, dass wir dazu keine "fertige" Lösung haben.
"Treiber" für structured Text machen aus meiner Sicht hier wenig Sinn. Der Treiber müsste vom Betriebssystem geladen werden, nicht erst vom SPS Code ausgeführt.
Du kannst auch C-Code in ein logi.CAD 3 Projekt einbinden - vielleicht existiert da von Hersteller etwas integrierbares.

liebe Grüße
Walter

Re: RS-485 mit logiCAD3

Posted: 08 Oct 2019, 15:29
by Frido
Danke trotzdem für die Antwort, macht nichts.

Gibt es alternativ eine Ethernet-API für logiCAD3? Ich könnte von RS485 auf Ethernet mit einem kleinen Wandler gehen (z.B. sowas hier). Es gibt ja das Kommunikationsprotokoll für Ethernet (UDP) in logiCAD3 (Quelle). Wäre das geeignet? Ich verwende ein RevolutionPi Core 3 als SPS. In der Hilfe finde ich aber nur Hinweise zu EtherCAT und nicht zu Ethernet.

Re: RS-485 mit logiCAD3

Posted: 17 Oct 2019, 11:36
by Walter
Hallo,

mit einer API können wir hier leider aktuell nicht dienen. Für Ethernet Kommunikation findest du in unserer Hilfe UDP und TCP Bausteine, mit denen sich die Kommunikation realisieren lässt. Wir gehen davon aus, dass die UDP Bausteine für Seine Anwendung besser geeignet sind:
https://help.logicals.com/lco3docu/late ... e-baustein

liebe Grüße
Walter