TIA Wie kann man einen DB symbolisch aus einem DB adressieren

AutomationSE

Level-2
Beiträge
35
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich möchte momentan für eine S7-1500 Datenzielbereiche symbolisch aus einem anderen DB ansprechen:

Ich habe einen Global-DB erstellt, der aus einem Array von Struct's besteht:

DATA_BLOCK "ModbusReadJobs"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
NON_RETAIN
VAR
ModbusReadJobs : Array[0..100] of Struct
SlaveId : Byte;
FunctionCode : UInt;
RegisterOffset : UInt;
NrOfRegister : UInt;
"DB" : DInt;
END_STRUCT;
END_VAR




BEGIN
ModbusReadJobs[0].SlaveId := 16#2;
ModbusReadJobs[0].FunctionCode := 104;
ModbusReadJobs[0].RegisterOffset := 1500;
ModbusReadJobs[0].NrOfRegister := 4;
ModbusReadJobs[0]."DB" := 9;
ModbusReadJobs[1].SlaveId := 16#2;
ModbusReadJobs[1].FunctionCode := 102;
ModbusReadJobs[1].RegisterOffset := 21000;
ModbusReadJobs[1].NrOfRegister := 4;
ModbusReadJobs[1]."DB" := 8;
END_DATA_BLOCK

Anwendung wäre die Nutzung des Modbus-Slave Baustein, bei dem ich verschiedene Modbus-Datenbereiche in unterschiedlichen Datenbausteinen ablegen möchte.
ich möchte bei meinen Lese-Aufträgen direkt den Ziel-Datenbaustein mitgeben. Leider habe ich bisher keinen Weg gefunden im Struct den Parameter "DB" als Datenbaustein-Namen zu definieren. Momentan habe ich hier die DB Nummer verwendet und kann auch hiermit mit dem POKE_BLK Befehl die Daten kopieren. Ich würde allerdings lieber das ganze symbolisch adressieren.

Eine weitere Frage wäre, falls die vorher gehende Frage nicht geht, ob ich in einer AWL Quelle sowohl eine DB Nummer als auch den DB-Namen (Symbol) mit geben kann?

Vielen Dank vorab.

mfg.
Markus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald,

vielen Dank für deine Antwort. Eine Adressierung mittels DB_ANY bekomme ich jetzt soweit hin. Es fehlt mir jetzt noch die Möglichkeit DB's aus externen Quellen (AWL Files) zu generieren, in denen ich den Symbolnamen und die DB-Nummer festlegen kann. Bisher konnte ich lediglich entweder den DB-Namen festlegen und damit die DB-Nummer automatisch vergeben lassen oder die DB-Nummer festlegen, dann wird allerdings kein aussagekräftiges Symbol vergeben. Deshalb war ein Gedanke zu Beginn, die Namen komplett symbolisch zu adressieren.

Besten Dank.

Markus
 
Zurück
Oben