2
Date_and_Time
4
S7-1200 simulado
4
1567310523000
2
Date_and_Time
4
S7-1200 simulado
4
2019-09-01 01:02:03.000
2
3
Ignition OPC-UA Server
[{DeviceName}]DB{DBNumber},D{DBOffset+0}
3
Ignition OPC-UA Server
[{DeviceName}]DB{DBNumber},D{DBOffset+4}
8
dd/MM/yyyy HH:mm:ss
1
toDate(
if({[.]S7DateValHi}>>24 >= 0x90, //Año
"19" + toHex(({[.]S7DateValHi}>>24)), //90h-99h -> 1990-1999
"20" + toHex(({[.]S7DateValHi}>>24))) //00h-89h -> 2000-2089
+ "-" +
toHex({[.]S7DateValHi}>>16 & 0xff) //Mes
+ "-" +
toHex({[.]S7DateValHi}>> 8 & 0xff) //Día
+ " " +
toHex({[.]S7DateValHi}>> 0 & 0xff) //Hora
+ ":" +
toHex({[.]S7DateValLo}>>24 & 0xff) //Minutos
+ ":" +
toHex({[.]S7DateValLo}>>16 & 0xff) //Segundos
,'1990-01-01-00:00:00')
#system.util.getLogger('tagChangeRD').info("tagPath = %s, previousValue = %s, currentValue = %s" % (tagPath,previousValue.value,currentValue.value))
system.tag.write(tagPath.replace("valueRD","valueWR"), currentValue.value)
1969-12-31 21:00:00.000
8
dd/MM/yyyy HH:mm:ss
#Desarmo la fecha y hora
d = currentValue.value
YY = d.getYear()+1900
MM = d.getMonth()+1
DD = d.getDate()
hh = d.getHours()
mm = d.getMinutes()
ss = d.getSeconds()
#Armo los valores de los tags a escribir (formato BCD)
DateValHi = ''
DateValHi += '%02d' % (YY%100) #Año
DateValHi += '%02d' % (MM) #Mes
DateValHi += '%02d' % (DD) #Día
DateValHi += '%02d' % (hh) #Hora
DateValLo = ''
DateValLo += '%02d' % (mm) #Minutos
DateValLo += '%02d' % (ss) #Segundos
DateValLo += '0000'
#Escribo en los tags OPC el nuevo valor
system.tag.write(tagPath.replace("valueWR","S7DateValHi"), int(DateValHi,16))
system.tag.write(tagPath.replace("valueWR","S7DateValLo"), int(DateValLo,16))