from time import sleep
import snap7
from snap7.util import*
import struct
db = 390
length = 1
Start = 2
def main()
while True:
try:
plc = snap7.client.Client()
plc.connect("192.168.178.30",0,2)
con = plc.get_connected()
print "Connect", con
byte = plc.db_read(390,2,1)
print "Bit1:",get_bool(byte,0,0)
print "Bit2:",get_bool(byte,0,1)
print "Bit3:",get_bool(byte,0,2)
print "Bit4:",get_bool(byte,0,3)
print "Bit5:",get_bool(byte,0,4)
data = bytearray(1)
set_bool(data,0,0,True)
set_bool(data,0,1,True)
set_bool(data,0,2,True)
set_bool(data,0,3,True)
set_bool(data,0,4,True)
plc.db_write(390,0,data)
plc.disconnect()
sleep(0,2)
except Exception as ex:
print "Verbindungsfehler"
if __name__ == "__main__":
main()
from time import sleep
import snap7
from snap7.util import*
import struct
db = 390
length = 1
Start = 2
def main()
plc = snap7.client.Client()
plc.connect("192.168.178.30",0,2)
con = plc.get_connected()
print "Connect", con
while True:
try:
byte = plc.db_read(390,2,1)
print "Bit1:",get_bool(byte,0,0)
print "Bit2:",get_bool(byte,0,1)
print "Bit3:",get_bool(byte,0,2)
print "Bit4:",get_bool(byte,0,3)
print "Bit5:",get_bool(byte,0,4)
data = bytearray(1)
set_bool(data,0,0,True)
set_bool(data,0,1,True)
set_bool(data,0,2,True)
set_bool(data,0,3,True)
set_bool(data,0,4,True)
plc.db_write(390,0,data)
plc.disconnect()
sleep(0,2)
except Exception as ex:
print "Verbindungsfehler"
if __name__ == "__main__":
main()
from time import sleep
import snap7
from snap7.util import*
import struct
def main()
plc = snap7.client.Client()
con = Flase
while True:
try:
if con == False:
plc.connect("192.168.178.30",0,2)
con = plc.get_connected()
print "Connect", con
con = True
byte = plc.db_read(390,2,1)
print "Bit1:",get_bool(byte,0,0)
print "Bit2:",get_bool(byte,0,1)
print "Bit3:",get_bool(byte,0,2)
print "Bit4:",get_bool(byte,0,3)
print "Bit5:",get_bool(byte,0,4)
data = bytearray(1)
set_bool(data,0,0,True)
set_bool(data,0,1,True)
set_bool(data,0,2,True)
set_bool(data,0,3,True)
set_bool(data,0,4,True)
plc.db_write(390,0,data)
sleep(0,2)
except Exception as ex:
print "Verbindungsfehler"
con = False
plc.disconnect()
plc.destroy()
if __name__ == "__main__":
main()
python siemens.py > siemens_error.log
/CODE]
Grüße
Marcel
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from time import sleep
from time import strftime
from datetime import datetime
import snap7
from snap7.util import*
import struct
import string
from time import*
import serial, time
from RPi import GPIO
import os
import sys
############################ Doorpi Datenpfad ###############################
# Datenpfat virtual Keyboard
Dateipfad_imput1 = '/var/DoorPI/keyboard/inputs/e1'
Dateipfad_output1 = '/var/DoorPI/keyboard/outputs/a1'
############################## Parameter SPS ################################
ip='192.168.178.30' # IP Adrresse SPS
rack = 0
slot = 2
S7_DRead = [69,2,90] #Adresse bit lesen aus SPS
S7_DWrite = [69,0] # Adresse bit schreiben in SPS
plc = snap7.client.Client()
############################# Nextion Display ################################
EndCom = "\xff\xff\xff"
ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1)
LCD_Display_Zeile = ["*","*","*","*","*"]
################################ GIPO Pins ###################################
# Zählweise der Pins festlegen
GPIO.setmode(GPIO.BOARD)
# Pin 16 (GPIO 23) Bewegungsmelder als Eingang festlegen
PIR_PIN = 16
GPIO.setup(PIR_PIN, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
################################ Logfile ####################################
#Logfile Ordner
logfile = '/home/pi/S7/Log/logfile_'+time.strftime("%d.%m.%Y")+'.log'
############################## Funktionen ###################################
def Write_V_Keyboard (value):
try:
f = open (Dateipfad_imput1 ,"w")
v =str(value)
f.write(v)
f.close()
except Exception as ex:
print ("Fehlerm beim schreiben in Virtual Keyboard",ex)
log("Fehlerm beim schreiben in Virtual Keyboard")
sleep(5.0)
def Read_V_Keyboard():
try:
#print "Value aus Doorpi Virtual Keyboard lesen"
f = open (Dateipfad_output1,"r")
v = f.readline()
f.close()
BOOL = State_BOOL(v)
return BOOL
except Exception as ex:
print ("Fehlerm beim lesen aus Virtual Keyboard",ex)
log("Fehlerm beim lesen aus Virtual Keyboard")
sleep(5.0)
def Nextion_Write_Text(serial_obj, input_str, Nr):
try:
#Nextion_Write(ser, 't0.txt='+'"'+LCD_Display_Zeile0+'"')
Nex_str = 't'+str(Nr)+'.txt='+'"'+input_str+'"'
serial_write = Nex_str + EndCom
serial_obj.write(serial_write)
except Exception as ex:
print ("Fehler Display",ex)
log("Fehler Display")
sleep(5.0)
def Nextion_Write(serial_obj, input_str):
try:
serial_write = input_str + EndCom
serial_obj.write(serial_write)
except Exception as ex:
print ("Fehler Display",ex)
log("Fehler Display")
sleep(5.0)
def Nextion_Dim(dim):
Nextion_Write(ser, 'dim='+str(dim))
def State_BOOL(Value):
if 'True' in Value:
BOOL = True
else:
BOOL = False
return BOOL
def log(msg):
#Log
file = open(logfile,"a")
file.write("%s: %s\n" % (time.strftime("%d.%m.%Y %H:%M:%S"), msg))
file.close
##################### Hauptprogramm ##############################
def main():
Verbindung = False
con = False
Bewegungsmelder = False
Nextion_Licht = False
DELTA = 5
sleep(2.0)
start = datetime.now()
try:
while True:
try:
if con == False:
#print "Verbindungsaufbau"
plc.connect(ip,rack,slot)
con = plc.get_connected()
print "Connect", con
sleep(3.0)
#print"lese Daten aus SPS"
data = plc.db_read(S7_DRead[0],S7_DRead[1],S7_DRead[2])
#schreibe Daten von SPS in Variablen
Klingeltaster_1 = get_bool(data,0,0)
print "Klingeltaster_1 ",Klingeltaster_1
#Klingeltaster_2 = get_bool(data,0,1)
#print "Klingeltaster_2 ",Klingeltaster_2
LCD_Display_Zeile[0] = get_string(data,2,22)
LCD_Display_Zeile[1] = get_string(data,24,22)
LCD_Display_Zeile[2] = get_string(data,46,22)
LCD_Display_Zeile[3] = get_string(data,68,22)
#schreibe Daten (Klingeltaster_1) in Virtual Keyboard
Write_V_Keyboard(Klingeltaster_1)
#schreibe Daten (Klingeltaster_2) in Virtual Keyboard
#Write_V_Keyboard(Klingeltaster_2)
#print"lese Daten aus Virtual Keyboard"
Tuer_Oeffner = Read_V_Keyboard()
print "Tür Öffner ",Tuer_Oeffner
#Schreibe Text in Display (Zeile 0-3)
for i in range (0,4):
Nextion_Write_Text(ser,LCD_Display_Zeile[i],i)
#sleep(0.3)
#Bewegungsmelder auslesen
Bewegungsmelder = GPIO.input(PIR_PIN)
#print ('Bewegungsmelder False' if Bewegungsmelder < 1 else 'Bewegungsmelder True')
#Nextion Display aufdimmen bei Bewegung
if Bewegungsmelder == 1:
Nextion_Licht = True
action_time = datetime.now()
#print "Start_Time" , action_time
print "Licht an " ,Nextion_Licht
Nextion_Dim(100)
#Ausschaltverzögerung Nextion Display Belechtung
if Nextion_Licht and (datetime.now() - action_time).seconds > DELTA:
Nextion_Licht = False
print "Licht aus " ,Nextion_Licht
#print "Start_Time" , datetime.now()
#Nextion Display adimmen nach ablauf der Verzögerungszeit DELTA
Nextion_Dim(1)
#Verbindungssstatus Toggen
if Verbindung == True:
Verbindung = False
else:
Verbindung = True
#print"schreibe Daten in Sendedatei"
data_send = bytearray(2)
set_bool(data_send,0,0,Verbindung,)
set_bool(data_send,0,1,Tuer_Oeffner,)
set_bool(data_send,0,2,Bewegungsmelder,)
#set_bool(data_send,0,3,Stoerung,)
#print "Störung", Stoerung
#print"Schreibe Daten in SPS"
plc.db_write(S7_DWrite[0],S7_DWrite[1],data_send)
#Wartezeit
sleep(0.2)
os.system('cls')
except Exception as ex:
print ("Verbindungsfehler",ex)
con = False
plc.disconnect()
plc.destroy()
log(ex)
sleep(10.0)
except KeyboardInterrupt:
print "GIPO cleanup"
GPIO.cleanup()
print "PLC disconnect"
plc.disconnect()
plc.destroy()
print "Beende...."
sys.exit(0)
if __name__ == "__main__":
main()
pi@raspberrypi:~ $ vcgencmd measure_temp
temp=49.9'C
pi@raspberrypi:~ $ vcgencmd measure_volts
volt=1.2000V
pi@raspberrypi:~ $ vcgencmd measure_clock arm
frequency(45)=600000000
[FONT=Courier New]import os
def getCpuTemperature():
tempFile = open( "/sys/class/thermal/thermal_zone0/temp" )
cpu_temp = tempFile.read()
tempFile.close()
return float(cpu_temp)/1000
print(getCpuTemperature())
[/FONT]
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?