Hi, ich möchte das Logging durch eine Variablenänderung in der angeschlossenen SPS ausführen. dazu Habe ich eine Variable (Variable_2) im External Register angelegt:
Code:
[<SetConfig _="PROCCFG" ver="y">
<External>
<Bus Name="Bus1" _="COM2" family="Siemens" Product="S7-300/400-A" protocol="Siemens,S7-300/400-A" baud="115200" handshake="none" type="Master" TS="1" MAXADR="15" GUF="1" RC="1">
<Device Name="Device_0" NameUser="S7-300/400-A" _="2" Pollrate="1s">
<Variable_0 Name="Temperatur" _="DBW" simpleType="Uint16" db="10" ind="0" acc="R"/>
<Variable_1 Name="Druck" _="DBW" simpleType="Uint16" db="150" ind="156" acc="R"/>
<Variable_2 Name="Loggbit" _="DBX" simpleType="Bit" db="150" ind="30.1" acc="R"/>
</Device>
</Bus>
</External>
</SetConfig>]
In der Logdefinition einen Datenlogger (_2):
Code:
[<SetConfig _="LOG" ver="y">
<LogDefinition>
<LogFiles>
<JobReport size="10240"/>
<Event size="10240"/>
<Login size="10240"/>
<IncomingMessage size="10240"/>
<FailedIncomingCall size="10240"/>
<SupportLog size="10240"/>
<Datalogging_0 size="30000" contenttype="binary" record="Datalogging_0"/>
<Datalogging_1 size="30000" contenttype="binary" record="Datalogging_1"/>
<Datalogging_2 size="30000" contenttype="binary" record="Datalogging_2"/>
</LogFiles>
<Records>
<Datalogging_0>
<Temperatur _="Uint16" path="/Process/Bus1/Device_0/Variable_0"/>
</Datalogging_0>
<Datalogging_1>
<Druck _="Uint16" path="/Process/Bus1/Device_0/Variable_1"/>
</Datalogging_1>
<Datalogging_2>
<Temp _="Uint16" path="/Process/Bus1/Device_0/Variable_1"/>
</Datalogging_2>
</Records>
</LogDefinition>
</SetConfig>]
und im Eventhandler eine If-Anweisung die das Loggen auslösen soll:
Code:
<If _="/Process/Bus1/Device_0/Variable_2">
<BinLog _="Datalogging_2"/>
</If>
Leider klappt es aber nicht.Habe ich etwas vergessen oder geht das so nicht? Habe versucht auch einen Scheduler um die If-Anweisung zu legen der Täglich (Ohne Uhrzeit) ausgelöst wird, hat aberleider auch nicht geholfen.