Witam,
Proszę o pomoc w moim projekcie komunikacji z PLC z poziomu Pythona. Poniższy kod działa dobrze:
main.py
import S71200
from time import sleep
import snap7
from snap7.util import *
import struct
plc = S71200.S7_200("192.168.1.51",1000,0301)
plc.writeMem('QX0.7',True)
plc.writeMem('QX0.7',False)
print plc.getMem()
W konsoli otrzymuję komunikat o połączeniu ze sterownikiem S 400 siemens i zmieniam wartość wyjścia Q 0.7.
Jeśli użyję przycisku z Tkinker niestety nie jest widziana metoda z modułu S71200.
main.py
from Tkinter import *
import S71200
import _tkinter
from time import sleep
import snap7
from snap7.util import *
import struct
def Pressed():
plc.writeMem('QX0.4',True)
def Pressed1():
plc.writeMem('QX0.4',False)
def Connect():
plc = S71200.S7_200("192.168.1.51",1000,0301)
def DissConnect():
plc.disconnect()
root = Tk() #main window
button = Button(root, text = 'On', command = Pressed)
button.pack(pady=20, padx = 20)
button1 = Button(root, text = 'Off', command = Pressed1)
button1.pack(pady=20, padx = 20)
button2 = Button(root, text = 'Conn', command = Connect)
button2.pack(pady=20, padx = 20)
button3 = Button(root, text = 'Diss', command = DissConnect)
button3.pack(pady=20, padx = 20)
root.mainloop()
Co robię źle że w konsoli dostaję błędy o braku deklaracji zmiennej PLC ?
Marek Wojciechowski