Ошибка Python Tkinter во время связи с snap7

Я столкнулся с ошибкой во время связи приложения Tkinter с моим контроллером ПЛК: "Не удалось найти обработчики для регистратора"snap7.common"". Проблема в том, что когда это происходит, моя связь при рукопожатии не работает, и мои значения в реестре перезаписываются дважды, а не один раз. Я не могу установить связь с помощью рукопожатия. Эта часть кода выглядит так:

def CHECK():
    if __name__ == "__main__":
        try:
            plc = c.Client()
            plc.connect('192.168.0.1', 0, 1)
            ReadMemoryCheck(plc, 0, 0, S7WLBit) 

            if ReadMemoryCheck(plc, 0, 2, S7WLBit) == True and len(df)>0:
                #with toExcel_upis_csv_gotovo fun i write to csv file that part is done and call for second one
                toExcel_upis_csv_gotovo()

                #with Start function I write new value to controller with 
                Start()

                #with WriteMemoryCheck fun I set bit to 0 signalling to controller that I have written new value
                WriteMemoryCheck(plc, 0, 0, S7WLBit, False)

        except:
            pass

#call CHECK fun every 2 sec
root.after(2000, CHECK)

Во время этого шага я получаю сообщение об ошибке "Не удалось найти обработчики для регистратора"snap7.common"", и я не знаю, что происходит. Из-за этой ошибки я не могу писать в ПЛК, а Tkinter полностью пропускает "Проверочную функцию", поэтому технически я вызываю его дважды, потому что мой бит флага (отправка новых значений в ПЛК) не устанавливается в 0? Как я могу убедиться, что, если появится эта ошибка, она запишет все, как должно? каждые 20 пишет, это не всегда и не точно.

0 ответов

Другие вопросы по тегам