Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.


Themen - Juergen Maier

Seiten: [1]
1
Hallo,
ich habe ein Problem beim einlesen meines Analogwertes.
Ich benutze die CoDeSys 2.3 SP RTE und einen Wago Controller 750-333 mit der Analogeingangskarte 750-456.
Die Karte ist eine -10 bis +10 Volt Karte.
Ich bekomme von der Karte ein Dezimalwert (WORD) 0 Volt = Dezimalwert = 0, 10 Volt = Dezimalwert 32760, -10 Volt = Dezimalwert 32768.
Die Karte hat eine 12 Bit Auflösung, Bit3 bis Bit14, Bit0 = Überlauf (Analogeingang außerhalb +-10 Volt), Bit1 = Kurzschluss, Bit2 = nicht Benutzt.
Das Problem ist das mein errechneter Messwert nicht übereinstimmt, d.h ich möchte den Analogeingang -10 bis +10 Volt auch so Anzeigen.
Ich habe im AIN1 folgende Einstellung:
in:=  wInput , ""Das ist mein Dezimalwert von der Karte""
error_bit:= 1,
error_code_en:=FALSE ,
error_code:= ,
overflow_bit:= 0,
overflow_code_en:=FALSE ,
overflow_code:= ,
Bit_0:=3 ,
Bit_N:=14 ,
out_min:= -10.0,
out_max:= 10.0,
code_min:=0 ,
code_max:=32760 ,
error_output:= ,
overflow_output:= ,

Hat jemand eine Idee woran der falsche Messwertausgang des AIN1 kommen kann.

2
Hallo,
ich möchte lange Texte in eine Datei schreiben. Leider ist die Länge meiner Variable begrenzt.
Ich definiere meine Variable zum bsp. => sMeineVariable: STRING(800);
Diese Variable übergebe ich dann meiner Funktion (SysFileWrite).
Wenn ich jetzt aber einen sehr langen Text habe > 800 Zeichen schreibt er nicht alle Zeichen
in die Datei. Wie kann ich diesen langen Text am besten in meine Datei schreiben.
Vielleicht hat jemand eine gute Idee.

Kann mir jemand sagen wie viele Zeichen ich max. in eine Stringvariable speichern kann ?
 
CoDeSys V2.3.9.25 RTE

3
oscat.lib fuer TwinCAT/CoDeSys / Mittelwertbildung
« am: 12. Mai 2011, 16:18:30 »
Hallo, gibt es bei OSCAT einen Baustein mit dem ich eine Mittelwertbildung durchführen kann.
Hintergrund: Ich lese über meinen Profibus einen Messwert ein der schwankt. Diesen Messwert
möchte ich mit einer Mittelwertfunktion "beruhigen".

Danke!
Jürgen

4
Hallo, ich möchte mit CoDeSys ein Gerät ansprechen, dass auf einer
USB Schnittstelle steckt. Hat jemand eine Idee wie ich die USB Schnittstelle
ansprechen kann.
Ich habe einmal gehört das man die USB Schnittstelle im System "mounten"
muss, wenn ja wie ?

IPC mit WIN XP, CoDeSys V2.3 + RTE

5
Bestehende Module / Existing Modules / Probleme mit TCP/IP
« am: 24. Februar 2010, 07:38:23 »
Hallo,
ich habe ein Problem mit der TCPIP übertragung. Ich habe ein Programm dass mir
als Server dient. Mit meiner Steuerung möchte ich mich mit diesem Server
verbinden, und anmelden. Mit meinem Testprogramm funktioniert das auch teilweise.
Ich bekomme beim Serverprogramm angezeigt das ich mich als Client verbunden habe.
Die Meldung am Server als Client verbunden wird angezeigt, sobald ich die Schleife
"Login an Server senden" ausführe. Normalerweise sollte der Server mir anzeigen,
als Client verbunden und Login empfangen. Die Meldung Login empfangen bekomme ich
aber nicht. Leider kann ich vom Server auch nichts empfangen, absolute Funkstille.

Was ich an dem IP_CONTROL Baustein nicht verstehe ist das C_MODE. Muss ich
bei jedem senden C_MODE "belegen", oder bleibt C_MODE immer auf 0, in meinem Fall.
Der Server erwartet für den Login im 1.Byte=1, im 2.Byte=0 und im 3.Byte=0. Wie
"lege" ich diese Wertigkeiten in den SendeBuffer?

Da ich nicht genügend bewandert bin mit TCPIP, hoffe ich mir kann bei meinem Problem
jemand weiterhelfen.

CoDeSys 2.3.9.13; RTE 2.3.7.6; WinXp Professional V2002 SP3
___________________________________________________________________________________________________________
PROGRAM PLC_PRG
VAR
   IP_CONTROL1:IP_CONTROL;
   IP_C1:IP_C;
   S_BUF1: NETWORK_BUFFER;
   R_BUF1: NETWORK_BUFFER;
   IPServer_Adr:DWORD;
   IPClient_Adr:DWORD;
   gbyLogin_CS: ARRAY[1..3] OF BYTE:= 1,0,0;   (* Login Server *)
   gabyPing_CS_Echo: ARRAY[1..1] OF BYTE:= 6;   (* Echo Lifesign, Ping vom Server *)
   send : BOOL;
   xsendEcho: BOOL;
END_VAR


IPServer_Adr:=IP4_DECODE('192.168.001.11');
IPClient_Adr:=IP4_DECODE('192.168.001.10');

(* Login an Server senden *)
IF send THEN
   IP_C1.C_MODE := 0;
   IP_C1.C_ENABLE:= TRUE; (* Verbindungsaufbau freigeben *)
   IP_C1.R_OBSERVE:= TRUE; (* Datenempfang überwachen *)
   IP_C1.TIME_RESET:= TRUE;
   S_BUF1.BUFFER[0] := BYTE#16#01;
   S_BUF1.BUFFER[1] := BYTE#16#00;
   S_BUF1.BUFFER[2] := BYTE#16#00;
   S_BUF1.SIZE :=3;
   send := FALSE;
END_IF;

(* Lifesign an Server senden *)
IF xsendEcho THEN
   IP_C1.C_MODE := 0;
   IP_C1.C_ENABLE:= TRUE; (* Verbindungsaufbau freigeben *)
   IP_C1.R_OBSERVE:= TRUE; (* Datenempfang überwachen *)
   IP_C1.TIME_RESET:= TRUE;
   S_BUF1.BUFFER[0] := gabyPing_CS_Echo[1];
   S_BUF1.SIZE :=1;
   xsendEcho := FALSE;
END_IF;

IP_C1.C_STATE;
IP_C1.C_ENABLE;
IP_C1.C_IP:= IPServer_Adr;
IP_C1.C_MODE;
IP_C1.C_PORT:= 1000;
IP_C1.ERROR;
IP_C1.FIFO;
IP_C1.R_OBSERVE;
IP_C1.TIME_RESET;


IP_CONTROL1(IP:=IPClient_Adr ,PORT:=1000 ,TIME_OUT:=T#10s,IP_C:= IP_C1,S_BUF:=S_BUF1, R_BUF:=R_BUF1 );
IP_CONTROL1.c_enable;

6
Hallo,
hat jemand eine Funktion, mit der ich abhängig von einem Bit den Rechner
aus den CoDeSys RTE runterfahren kann ?

Seiten: [1]