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