Möchte mich gerne einmal bedanken. Das Forum hat mir bereits sehr oft weitergeholfen.
Ich hätte 2 Fragen.
Ich soll auf einem Festo-Controller eine RS232-Schnittstelle programmieren zwischen Controller und Peripheriegerät. Ich habe ein Beispiel-Programm erhalten, dass aber leider keine Übertragung liefert. Da ich Programmieranfänger bin, kann ich leider mit dem Quelltext nichts anfangen.
Ich möchte Sie gerne fragen, ob eine Anleitung zur Erstellung eines RS232-Schnittstellen-Quelltextes bzw. eine Beschreibung der Bibliotheksfunktionen existiert.
2.
Ausserdem suche ich eine Anleitung, wie man eine TCP/IP(nicht UDP)-Schnittstelle zwischen 2 Controllern auf aufbaut.
Vielen Dank!!
Gruß
Conrad
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hast du schon mal die Verdrahtung kontrolliert? (RxD, TxD, GND richtig angeklemmt evtl. muß mann RxD & TxD Leitungen tauschen ? (Thema: Nullmodemkabel?)
Zu 2. Frag mal den Hersteller, was die sich zu diesem Thema denken. Wago SPS'n z.B. kommunizieren über eine Modbus Kommunikation miteinander.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, da ich nicht nur komplett neu im Bereich CoDeSys, sondern auch in diesem Forum bin, weiss ich nicht, ob das, was ich hier gerade schreibe, ein Beitrag zu diesem Thread, oder eine Private Message wird.. Also meine aufgabe ist es, Daten einer Waage via rs232 auf mein PLC einzulesen und zu Verarbeiten..Schreiben muss ich nicht.. Verwendet wird ein FESTO Controller CPX-CEC-RS232, .. Die Verdrahtung ist soweit korrekt, da andere Systeme..(zB. Beckhoff EL6001) mit der Verdrahtung Daten empfangen.
der Quelltext, den ich erhalten habe, ist:
(*Die Protokolldaten der Schnittstelle lauten:Baudrate : 96001 StopbitParity EVEN7 Datenbitskein handshake*)VARport:DWORD;ComPortSettings:comsettings(ex):=(Port:=COM2,dwBaudRate:=9600,byStopBits:=0,byParity:=2,dwTimeout=0,dwBufferSize:=0,dwScan:=0,cbytesize:=7);status:    INT;i:            INT;writeString  :  STRING  ;writeLength:  INT  ;readString  :  STRING;readLength:  DWORD;readFragment  :  STRING;p_readFragment:  POINTERTOARRAY[0..81]OFBYTE;p_readString  :  POINTERTOARRAY[1..80]OFBYTE;timeout:      DWORD:=0;maxReadSize:      DWORD;END_VARCASEstatusOF0:  (*init state*)  maxReadSize:=SIZEOF(readFragment);  p_readFragment:=ADR(readFragment);  p_readString:=ADR(readString);  status:=status+10;10:  (*open COM*)  port:=SysComOpen(comSettings.Port);  IF(port<>16#FFFFFFFF)AND(port<>0)THEN    SysComSetSettings(port,ADR(comSettings));    status:=status+10;  ELSE    status:=100;  END_IF20:  (*read from port until CR or LF appears*)  readLength:=SysComRead(port,p_readFragment,maxReadSize,timeout);  IFreadLength>0THEN    (*set string delimiter (0)*)    p_readFragment^[readLength]:=0;    readString:=CONCAT(readString,readFragment);    readLength:=0;  END_IF  (*search for a command delimiter (LF or CR)*)  FORi:=0TOLEN(readString)DO    IFp_readString^[i]=10ORp_readString^[i]=13THEN      (*write a string delimiter*)      p_readString^[i]:=0;      status:=status+10;      EXIT;    END_IF  END_FOR30:  (*write an answer*)  IFreadstring='exit'THEN    SysComClose(port);    status:=100;  ELSE(*    writeString:=CONCAT('The PLC recived the string: ',readString);    writeString:=CONCAT(writeString, '$R');    writeLength:=LEN(writeString);    SysComWrite( port, ADR( writeString), writeLength, timeout );    readString:='';*)    status:=20;  END_IF100:(*error status*)  ;END_CASE
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
Möchte mich gerne einmal bedanken. Das Forum hat mir bereits sehr oft weitergeholfen.
Ich hätte 2 Fragen.
Ich soll auf einem Festo-Controller eine RS232-Schnittstelle programmieren zwischen Controller und Peripheriegerät. Ich habe ein Beispiel-Programm erhalten, dass aber leider keine Übertragung liefert. Da ich Programmieranfänger bin, kann ich leider mit dem Quelltext nichts anfangen.
Ich möchte Sie gerne fragen, ob eine Anleitung zur Erstellung eines RS232-Schnittstellen-Quelltextes bzw. eine Beschreibung der Bibliotheksfunktionen existiert.
2.
Ausserdem suche ich eine Anleitung, wie man eine TCP/IP(nicht UDP)-Schnittstelle zwischen 2 Controllern auf aufbaut.
Vielen Dank!!
Gruß
Conrad
Hallo.
Zu 1. Kannst du den Quelltext mal posten?
Hast du schon mal die Verdrahtung kontrolliert? (RxD, TxD, GND richtig angeklemmt evtl. muß mann RxD & TxD Leitungen tauschen ? (Thema: Nullmodemkabel?)
Zu 2. Frag mal den Hersteller, was die sich zu diesem Thema denken. Wago SPS'n z.B. kommunizieren über eine Modbus Kommunikation miteinander.
hallo,
Default ist ein COM-Stecker für Kommunikation zwischen PLC und CoDeSys-Editor verwendet.
Wenn auf deiner PLC mehr COM-Stecker hast, kannst du andere versuchen. Falls du nur einen hast, du musst den COM-port in der Konfiguration freigeben.
Beispiel mit SIO Kommunikation:
Hi, da ich nicht nur komplett neu im Bereich CoDeSys, sondern auch in diesem Forum bin, weiss ich nicht, ob das, was ich hier gerade schreibe, ein Beitrag zu diesem Thread, oder eine Private Message wird.. Also meine aufgabe ist es, Daten einer Waage via rs232 auf mein PLC einzulesen und zu Verarbeiten..Schreiben muss ich nicht.. Verwendet wird ein FESTO Controller CPX-CEC-RS232, .. Die Verdrahtung ist soweit korrekt, da andere Systeme..(zB. Beckhoff EL6001) mit der Verdrahtung Daten empfangen.
der Quelltext, den ich erhalten habe, ist: