RS-485 mit logiCAD3

Für Themen rund um logi.RTS und logi.CAD 3
Post Reply
User avatar
Frido
Posts: 53
Joined: 21 Apr 2018, 10:47
Answers: 0
Location: Stuttgart

RS-485 mit logiCAD3

Post 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!
User avatar
Walter
Official 3rd Party Support logi.cals
Posts: 77
Joined: 15 Dec 2016, 12:56
Answers: 0

Re: RS-485 mit logiCAD3

Post 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
User avatar
Frido
Posts: 53
Joined: 21 Apr 2018, 10:47
Answers: 0
Location: Stuttgart

Re: RS-485 mit logiCAD3

Post 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.
User avatar
Walter
Official 3rd Party Support logi.cals
Posts: 77
Joined: 15 Dec 2016, 12:56
Answers: 0

Re: RS-485 mit logiCAD3

Post 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
Post Reply