Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 49484

TIA Wie kann man einen DB symbolisch aus einem DB adressieren

$
0
0
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

Viewing all articles
Browse latest Browse all 49484


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>