Задать вопрос
Ответы пользователя по тегу Боты
  • Как отправить данные при нажатии кнопки в телеграм-боте python?

    @Proritsatel Автор вопроса
    Я переделал свой код как посоветовал коллега сверху. Добавил два потока и всё заработало
    opc = OpenOPC.client()
    servers = opc.servers()
    opc.connect("Owen.OPCNet.DA.1")
    print("Удачное подключение к " + servers[0])
    #--------------------------------------------------------------------------------------------------------#
    tagsValue = [];
    # Тр-ра Верх
    tagsValue.append(opc.list("COM4.TRM_202(adr=104)T_слой_Ср_р-ра.Оперативные параметры")[3])
    
    def send_mess():
        while True:
        print("-----------------------------------------------------------------------------------------")
        try:
            ############################################################
            # Проверка температур слоя реактора
            val = opc.read(tagsValue, update=1, include_error=True)
            if int(val[0][1]) > (react_temp + r_tmp_lim) or int(val[1][1]) > (react_temp + r_tmp_lim) or int(val[2][1]) > (react_temp + r_tmp_lim):
                try:
                    #print("here")
                    send_telegram("Слой реактора перегрет до {0:.2f} {1:.2f} {2:.2f} С".format(val[0][1], val[1][1], val[2][1]))
                except:
                    print("Включите VPN (test 1)")
            if int(val[0][1]) < (react_temp - r_tmp_lim) or int(val[1][1]) < (react_temp - r_tmp_lim) or int(val[2][1]) < (react_temp - r_tmp_lim):
        except:
            print("error read item")
        time.sleep(20)
        opc.close()
    #---------------------------#
    
    thrd_send_mess = threading.Thread(target=send_mess)
    thrd_send_mess.start()
    
    thrd_run_setting = threading.Thread(target=run_setting)
    thrd_run_setting.start()
    Ответ написан
    Комментировать