poppycock
Level-1
- Beiträge
- 253
- Reaktionspunkte
- 21
-> Hier kostenlos registrieren
Hallo,
ich habe mehrere selbstgebaute Busteilnehmer (RS485) über einen selbstgebauten RS232<->RS485-Wandler an einen CP340 (seriell / ASCII / 8N1, 9600) angeschlossen. Die Busteilnehmer sind alphabetisch benannt.
Nun möchte ich aus einem vorbereiteten DB (DB3) das erste Zeichen ('a') nehmen und dieses seriell mit dem CP340 verschicken. Die in der SPS ankommenden Zeichen werden analysiert und wenn ein 'a' zurückgekommen ist, soll in einem anderen DB (DB4) der verwertbare ASCII-Wert als INT gespeichert werden. Dann folgt das 'b' aus dem DB3 usw... Mit einem RS232-Teilnehmer habe ich das bereits gemacht. Nur wie "ticker" ich die Adressen in den DB's durch? Ja klar, indirekte Adressierung, aber wie?
Ablauf:
Lade DB3.'a'
Sende Inhalt.DB3.'a'
Empfange String.DB2
Verarbeite String.DB2
Wandle String.DB2.nach.INT
Speicher String.DB2.als.INT.im.DB4_Pos.'a'
---
Lade DB3.'b'
Sende Inhalt.DB3.'b'
Empfange String.DB2
Verarbeite String.DB2
Wandle String.DB2.nach.INT
Speicher String.DB2.als.INT.im.DB4_Pos.'b'
---
usw., bis man beim 'z' angekommen ist.
Dann soll das ganze wieder bei 'a' angfangen.
Es geht mir nicht um die Stringverarbeitung, sondern lediglich um das Laden der richtigen DB-Sendeposition und das Laden der dazugehörigen DB-Empfangsposition.
Anbei noch ein paar Screenshots, vielleicht wird es dann klarer.
Vielen Dank,
poppycock
ich habe mehrere selbstgebaute Busteilnehmer (RS485) über einen selbstgebauten RS232<->RS485-Wandler an einen CP340 (seriell / ASCII / 8N1, 9600) angeschlossen. Die Busteilnehmer sind alphabetisch benannt.
Nun möchte ich aus einem vorbereiteten DB (DB3) das erste Zeichen ('a') nehmen und dieses seriell mit dem CP340 verschicken. Die in der SPS ankommenden Zeichen werden analysiert und wenn ein 'a' zurückgekommen ist, soll in einem anderen DB (DB4) der verwertbare ASCII-Wert als INT gespeichert werden. Dann folgt das 'b' aus dem DB3 usw... Mit einem RS232-Teilnehmer habe ich das bereits gemacht. Nur wie "ticker" ich die Adressen in den DB's durch? Ja klar, indirekte Adressierung, aber wie?
Ablauf:
Lade DB3.'a'
Sende Inhalt.DB3.'a'
Empfange String.DB2
Verarbeite String.DB2
Wandle String.DB2.nach.INT
Speicher String.DB2.als.INT.im.DB4_Pos.'a'
---
Lade DB3.'b'
Sende Inhalt.DB3.'b'
Empfange String.DB2
Verarbeite String.DB2
Wandle String.DB2.nach.INT
Speicher String.DB2.als.INT.im.DB4_Pos.'b'
---
usw., bis man beim 'z' angekommen ist.
Dann soll das ganze wieder bei 'a' angfangen.
Es geht mir nicht um die Stringverarbeitung, sondern lediglich um das Laden der richtigen DB-Sendeposition und das Laden der dazugehörigen DB-Empfangsposition.
Anbei noch ein paar Screenshots, vielleicht wird es dann klarer.
Vielen Dank,
poppycock