- Saved searches
- Use saved searches to filter your results more quickly
- read_raw_history(). OSError: [WinError 10038] #1015
- read_raw_history(). OSError: [WinError 10038] #1015
- Comments
- Исключения в python. Конструкция try — except для обработки исключений
- Python-сообщество
- #1 Май 12, 2011 08:40:01
- Ошибка при работе с элементарным потоком
- #2 Май 12, 2011 09:03:07
- Ошибка при работе с элементарным потоком
- #3 Май 12, 2011 12:35:43
- Ошибка при работе с элементарным потоком
- #4 Май 12, 2011 16:29:54
- Ошибка при работе с элементарным потоком
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
read_raw_history(). OSError: [WinError 10038] #1015
read_raw_history(). OSError: [WinError 10038] #1015
Comments
Good evening, I tried to create an example opc ua client for reading historical data. Received the following error. Please tell me where I made a mistake?
from opcua import Client import os
client=Client("opc.tcp://YOKOGAWA:YOKOGAWA@apc0466:34430") client.set_security_string("Basic256,SignAndEncrypt,certificate-example.der,private-key-example.pem") client.application_uri='urn:example.org:FreeOpcUa:python-opcua'
DEPRECATED! Do not use SecurityPolicyBasic256 anymore!
try: client.connect() tag1 = client.get_node("ns=4;s=Root/Objects/APC/Applications/CDU_App/Live/Variables/AI133C.PV/MeasuredValueValidated") print("tag1 is: [] with value ".format(tag1, tag1.get_value(), tag1.get_description())) finally: client.disconnect() result=tag1.read_raw_history(starttime=datetime(2017,5,4,13,44,30), endtime=datetime(2017,5,4,16,59,30), numvalues=10)
tag1 is: Node(StringNodeId(ns=4;s=Root/Objects/APC/Applications/CDU_App/Live/Variables/AI133C.PV/MeasuredValueValidated)) [LocalizedText(Encoding:0, Locale:None, Text:None)] with value nan --------------------------------------------------------------------------- OSError Traceback (most recent call last) in 5 finally: 6 client.disconnect() ----> 7 result=tag1.read_raw_history(starttime=datetime(2017,5,4,13,44,30), endtime=datetime(2017,5,4,16,59,30), numvalues=10) c:\users\lofa\appdata\local\programs\python\python37\lib\site-packages\opcua\common\node.py in read_raw_history(self, starttime, endtime, numvalues) 506 details.NumValuesPerNode = numvalues 507 details.ReturnBounds = True --> 508 result = self.history_read(details) 509 return result.HistoryData.DataValues 510 c:\users\lofa\appdata\local\programs\python\python37\lib\site-packages\opcua\common\node.py in history_read(self, details) 523 params.ReleaseContinuationPoints = False 524 params.NodesToRead.append(valueid) --> 525 result = self.server.history_read(params)[0] 526 return result 527 c:\users\lofa\appdata\local\programs\python\python37\lib\site-packages\opcua\client\ua_client.py in history_read(self, params) 600 request = ua.HistoryReadRequest() 601 request.Parameters = params --> 602 data = self._uasocket.send_request(request) 603 response = struct_from_binary(ua.HistoryReadResponse, data) 604 self.logger.debug(response) c:\users\lofa\appdata\local\programs\python\python37\lib\site-packages\opcua\client\ua_client.py in send_request(self, request, callback, timeout, message_type) 79 returns response object if no callback is provided 80 """ ---> 81 future = self._send_request(request, callback, timeout, message_type) 82 if not callback: 83 data = future.result(self.timeout) c:\users\lofa\appdata\local\programs\python\python37\lib\site-packages\opcua\client\ua_client.py in _send_request(self, request, callback, timeout, message_type) 70 71 msg = self._connection.message_to_binary(binreq, message_type=message_type, request_id=self._request_id) ---> 72 self._socket.write(msg) 73 return future 74 c:\users\lofa\appdata\local\programs\python\python37\lib\site-packages\opcua\common\utils.py in write(self, data) 116 117 def write(self, data): --> 118 self.socket.sendall(data) 119 120 OSError: [WinError 10038] Сделана попытка выполнить операцию на объекте, не являющемся сокетом
The text was updated successfully, but these errors were encountered:
Исключения в python. Конструкция try — except для обработки исключений
Исключения (exceptions) — ещё один тип данных в python. Исключения необходимы для того, чтобы сообщать программисту об ошибках.
Самый простейший пример исключения — деление на ноль:
Разберём это сообщение подробнее: интерпретатор нам сообщает о том, что он поймал исключение и напечатал информацию (Traceback (most recent call last)).
Далее имя файла (File «»). Имя пустое, потому что мы находимся в интерактивном режиме, строка в файле (line 1);
Выражение, в котором произошла ошибка (100 / 0).
Название исключения (ZeroDivisionError) и краткое описание исключения (division by zero).
Разумеется, возможны и другие исключения:
В этих двух примерах генерируются исключения TypeError и ValueError соответственно. Подсказки дают нам полную информацию о том, где порождено исключение, и с чем оно связано.
Рассмотрим иерархию встроенных в python исключений, хотя иногда вам могут встретиться и другие, так как программисты могут создавать собственные исключения. Данный список актуален для python 3.3, в более ранних версиях есть незначительные изменения.
- BaseException — базовое исключение, от которого берут начало все остальные.
- SystemExit — исключение, порождаемое функцией sys.exit при выходе из программы.
- KeyboardInterrupt — порождается при прерывании программы пользователем (обычно сочетанием клавиш Ctrl+C).
- GeneratorExit — порождается при вызове метода close объекта generator.
- Exception — а вот тут уже заканчиваются полностью системные исключения (которые лучше не трогать) и начинаются обыкновенные, с которыми можно работать.
- StopIteration — порождается встроенной функцией next, если в итераторе больше нет элементов.
- ArithmeticError — арифметическая ошибка.
- FloatingPointError — порождается при неудачном выполнении операции с плавающей запятой. На практике встречается нечасто.
- OverflowError — возникает, когда результат арифметической операции слишком велик для представления. Не появляется при обычной работе с целыми числами (так как python поддерживает длинные числа), но может возникать в некоторых других случаях.
- ZeroDivisionError — деление на ноль.
- IndexError — индекс не входит в диапазон элементов.
- KeyError — несуществующий ключ (в словаре, множестве или другом объекте).
- UnboundLocalError — сделана ссылка на локальную переменную в функции, но переменная не определена ранее.
- BlockingIOError
- ChildProcessError — неудача при операции с дочерним процессом.
- ConnectionError — базовый класс для исключений, связанных с подключениями.
- BrokenPipeError
- ConnectionAbortedError
- ConnectionRefusedError
- ConnectionResetError
- IndentationError — неправильные отступы.
- TabError — смешивание в отступах табуляции и пробелов.
- UnicodeEncodeError — исключение, связанное с кодированием unicode.
- UnicodeDecodeError — исключение, связанное с декодированием unicode.
- UnicodeTranslateError — исключение, связанное с переводом unicode.
Теперь, зная, когда и при каких обстоятельствах могут возникнуть исключения, мы можем их обрабатывать. Для обработки исключений используется конструкция try — except.
Первый пример применения этой конструкции:
Ещё две инструкции, относящиеся к нашей проблеме, это finally и else. Finally выполняет блок инструкций в любом случае, было ли исключение, или нет (применима, когда нужно непременно что-то сделать, к примеру, закрыть файл). Инструкция else выполняется в том случае, если исключения не было.
Для вставки кода на Python в комментарий заключайте его в теги
Python-сообщество
- Начало
- » Python для новичков
- » Ошибка при работе с элементарным потоком
#1 Май 12, 2011 08:40:01
Ошибка при работе с элементарным потоком
Всем доброго дня! Уважаемые знатоки, подскажите пожалуйста, из-за чего возникает ошибка:
Exception in thread Thread-1:
Traceback (most recent call last):
File “c:\Python32\lib\threading.py”, line 736, in _bootstrap_inner
self.run()
File “C:\Users\maksimys\Documents\NetBeansProjects\client1\src\client1.py”, line 26, in run
self._connector.send (bytes(sendData,'utf-8'))
socket.error: Сделана попытка выполнить операцию на объекте, не являющемся сокетомПри попытке запустить работу клиентского кода:
import socket, string
import threading
debug = True
_connector = None
_running = True
_host = '127.0.0.1'
_port = 12345
_recvBuffer = 2000
_connector = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
_connector.connect ((str(_host), int(_port)))
class MyThread1 (threading.Thread):
def __init__(self, _connector):
self._connector = _connector
threading.Thread.__init__(self)
def run (self):
while 1:
sendData = input ("> ")
self._connector.send (bytes(sendData,'utf-8'))
MyThread1(_connector).start()
_connector.close ()#2 Май 12, 2011 09:03:07
Ошибка при работе с элементарным потоком
Ты же делаешь _connector.close () сразу.
#3 Май 12, 2011 12:35:43
Ошибка при работе с элементарным потоком
И правда помогло, спасибо agalen.
Странно одно, что ошибка была на другую строку…#4 Май 12, 2011 16:29:54
Ошибка при работе с элементарным потоком
Попробовал перенести консольное приложение в GUI, появилась ошибка:
Exception in thread Thread-1:
Traceback (most recent call last):
File “c:\Python32\lib\threading.py”, line 736, in _bootstrap_inner
self.run()
File “C:\Users\maksimys\Documents\NetBeansProjects\GUI_CLIENT\src\gui_client.py”, line 15, in run
recvData = self._connector.recv (_recvBuffer)
socket.error: Запрос на отправку или получение данных (when sending on a datagram socket using a sendto call) no address was suppliedИз-за малого опыта программирования python и работы с сокетами не получается определить из-за чего возникает ошибка. Помогите пожалуйста 🙂
import datetime
import socket
import threading
from tkinter import *
_recvBuffer = 2000
class MyThread2 (threading.Thread):
def __init__(self, sock):
self._connector = sock
threading.Thread.__init__(self)
def run (self):
while 1:
recvData = self._connector.recv (_recvBuffer)
obj.history.insert(END, " "+ str(hour) + ":" + str(minutes) + ":" + str(sec)+": "+str(recvData,encoding="utf-8")+"\n")
class MyThread1 (threading.Thread):
def run(self):
obj.but_send.bind("", sendMessage)
obj.but_exit.bind("", exit)
obj.but_reg.bind("", reg)
class Main:
def __init__(self):
self.but_reg = Button(root)
self.but_reg["text"] = "Client register!"
self.lab_nic = Label(root, text="NIC-name:", font="Arial 11")
#self.lab_ip = Label(root, text="Client IP-address:", font="Arial 11")
self.lab_ip_srv = Label(root, text="Server IP-address:", font="Arial 11")
self.ent_nic = Entry(root, width = 20, bd = 3)
#self.ent_ip = Entry(root, width = 20, bd = 3)
ip_add = StringVar()
ip_add.set("127.0.0.1")
self.ent_ip_srv = Entry(root, textvariable = ip_add, width = 20, bd = 3)
self.but_send = Button(root)
self.but_send['text'] = "Send Message!"
self.but_send['state'] = 'disabled'
self.history = Text(root,width=30,height=10, font="Verdana 12")
self.message = Entry(root, width = 50, bd = 3)
self.but_exit = Button(root)
self.but_exit['text'] = "Close&Exit"
self.lab_nic.grid(row=0,column=0, padx = 20, sticky = "nw")
self.ent_nic.grid(row=1,column=0, padx = 20, sticky = "nw")
#self.lab_ip.grid(row=2,column=0, padx = 20, sticky = "nw")
#self.ent_ip.grid(row=3,column=0, padx = 20, sticky = "nw")
self.lab_ip_srv.grid(row=0,column=0, padx = 20, sticky = "se")
self.ent_ip_srv.grid(row=1,column=0, padx = 20, sticky = "se")
self.but_reg.grid(row=3,column = 2, pady = 15, padx = 10)
self.history. grid(row = 4, column = 0, padx = 20,columnspan = 2)
self.message.grid(row=5,column =0, padx = 20, pady = 10)
self.but_send.grid(row = 6, column = 0, padx = 20, pady = 10, sticky = "se")
self.but_exit.grid(row = 6, column = 2, padx = 20, pady = 10)
def func(event):
now = datetime.datetime.now()
year, month, day, hour, minutes, sec, wday, yday, isdst = now.timetuple()
obj.history.insert(END, obj.ent_nic.get()+ " "+ str(hour) + ":" + str(minutes) + ":" + str(sec)+": "+obj.message.get()+"\n" )
def exit(event):
root.destroy()
sock.close()
def reg(event):
obj.but_send['state'] = 'active'
HOST = obj.ent_ip_srv.get()
PORT = 12345
sock.connect((HOST, PORT))
def sendMessage(event):
sock.send(bytes(obj.message.get(),"utf-8"))
#result = sock.recv(1024)
#history.insert(result)
root = Tk()
root.title("Client")
obj = Main()
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
MyThread2(sock).start()
MyThread1().start()
root.mainloop()