FreeOpcUa / opcua-asyncio

OPC UA library for python >= 3.7
GNU Lesser General Public License v3.0
1.04k stars 345 forks source link

Disconnect sometimes #1620

Closed Stebe242 closed 2 months ago

Stebe242 commented 2 months ago

Does anybody have an idea fo rmy problem.

Sometimes i get disconnects sometimes not.

Latest version of all libraries.

I want wo connect my script with an siemens s7 1215C plc.

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:01.242] DEBUG [main:930] Create OPCUA subscriptions

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:01.564] ERROR [iams.aio.opcua:98] Error evaluating datachanges

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | Traceback (most recent call last):

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/aio/opcua.py", line 96, in datachange_notifications

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | await self.parent.opcua_datachanges(changes)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/src/app/ims/belt.py", line 1021, in opcua_datachanges

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | power, status = self.data.as_influx()

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^^^^^^^^^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/src/app/ims/data.py", line 336, in as_influx

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | "B1": int(self.B1),

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | AttributeError: 'Belt' object has no attribute 'B1'

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:01.769] ERROR [iams.aio.opcua:98] Error evaluating datachanges

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | Traceback (most recent call last):

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/aio/opcua.py", line 96, in datachange_notifications

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | await self.parent.opcua_datachanges(changes)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/src/app/ims/belt.py", line 1021, in opcua_datachanges

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | power, status = self.data.as_influx()

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^^^^^^^^^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/src/app/ims/data.py", line 336, in as_influx

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | "B1": int(self.B1),

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | AttributeError: 'Belt' object has no attribute 'B1'

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:01.980] ERROR [iams.aio.opcua:98] Error evaluating datachanges

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | Traceback (most recent call last):

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/aio/opcua.py", line 96, in datachange_notifications

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | await self.parent.opcua_datachanges(changes)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/src/app/ims/belt.py", line 1021, in opcua_datachanges

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | power, status = self.data.as_influx()

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^^^^^^^^^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/src/app/ims/data.py", line 336, in as_influx

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | "B1": int(self.B1),

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | AttributeError: 'Belt' object has no attribute 'B1'

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.159] INFO [market.mixins:955] All tasks started, load data from MES

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.159] DEBUG [iams.aio.interfaces:32] ERPLabCoroutine start running loop

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.160] INFO [main:813] Updating data from ERPLab

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.161] INFO [market.mixins:594] All tasks started, load data from MES

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.162] DEBUG [iams.aio.interfaces:32] OrderCoroutine start running loop

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.163] DEBUG [iams.aio.interfaces:32] GRPCCoroutine start running loop

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.163] INFO [iams.aio.manager:83] A Coroutine stopped - shutdown agent

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.166] ERROR [iams.aio.manager:93] Exception raised from coroutine OPCUACoroutine.call

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | Traceback (most recent call last):

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/lib/python3.11/asyncio/tasks.py", line 490, in wait_for

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | return fut.result()

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | asyncio.exceptions.CancelledError

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox |

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | The above exception was the direct cause of the following exception:

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox |

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | Traceback (most recent call last):

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/aio/interfaces.py", line 27, in call

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | await self.wait(setups)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/aio/interfaces.py", line 66, in wait

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | await asyncio.wait_for(tasks[str(self)], timeout=None)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/lib/python3.11/asyncio/tasks.py", line 442, in wait_for

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | return await fut

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/aio/interfaces.py", line 55, in _start

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | await self.start()

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/aio/opcua.py", line 184, in start

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | await self._parent.opcua_start()

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/src/app/ims/belt.py", line 931, in opcua_start

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | await self.opcua_subscribe(self.opcnodes, 100)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/aio/opcua.py", line 363, in opcua_subscribe

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | return await self._opcua.subscribe(nodes, interval)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/aio/opcua.py", line 250, in subscribe

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | await subscription.subscribe_data_change(nodes)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/asyncua/common/subscription.py", line 212, in subscribe_data_change

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | return await self._subscribe(

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^^^^^^^^^^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/asyncua/common/subscription.py", line 311, in _subscribe

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | mids = await self.create_monitored_items(mirs)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/asyncua/common/subscription.py", line 367, in create_monitored_items

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | results = await self.server.create_monitored_items(params)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/asyncua/client/ua_client.py", line 640, in create_monitored_items

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | data = await self.protocol.send_request(request)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/asyncua/client/ua_client.py", line 160, in send_request

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | data = await asyncio.wait_for(self._send_request(request, timeout, message_type), timeout if timeout else None)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/lib/python3.11/asyncio/tasks.py", line 492, in wait_for

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | raise exceptions.TimeoutError() from exc

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | TimeoutError

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | Stack (most recent call last):

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "", line 198, in _run_module_as_main

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "", line 88, in _run_code

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/src/app/ims/belt.py", line 1419, in

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | run()

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/agent.py", line 95, in call

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | self.aio_manager(self, executor)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/aio/manager.py", line 36, in call

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | loop.run_until_complete(self.main(parent, executor))

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in run_until_complete

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | self.run_forever()

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | self._run_once()

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/lib/python3.11/asyncio/base_events.py", line 1922, in _run_once

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | handle._run()

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | self._context.run(self._callback, *self._args)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/aio/manager.py", line 93, in main

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | logger.error(

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.168] DEBUG [iams.aio.manager:103] Sending cancel to coroutine OrderCoroutine.call

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.168] DEBUG [iams.aio.manager:103] Sending cancel to coroutine GRPCCoroutine.call

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.168] DEBUG [iams.aio.manager:103] Sending cancel to coroutine MQTTCoroutine.call

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.168] DEBUG [iams.aio.manager:103] Sending cancel to coroutine prod_imsbelt-LN1-7.call

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.168] DEBUG [iams.aio.manager:103] Sending cancel to coroutine InfluxCoroutine.call

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.168] DEBUG [iams.aio.manager:103] Sending cancel to coroutine ERPLabCoroutine.call

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.169] DEBUG [iams.aio.interfaces:38] GRPCCoroutine is stopped

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.169] DEBUG [iams.aio.interfaces:36] MQTTCoroutine received the cancel signal

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.169] DEBUG [iams.aio.interfaces:38] MQTTCoroutine is stopped

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.169] DEBUG [iams.aio.interfaces:36] InfluxCoroutine received the cancel signal

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.169] DEBUG [iams.aio.interfaces:38] InfluxCoroutine is stopped

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.170] DEBUG [iams.aio.interfaces:160] ERPLabCoroutine() received the cancel signal

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.170] DEBUG [iams.aio.interfaces:38] ERPLabCoroutine is stopped

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.170] DEBUG [iams.aio.interfaces:160] OrderCoroutine() received the cancel signal

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.170] DEBUG [iams.aio.interfaces:38] OrderCoroutine is stopped

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.170] DEBUG [iams.aio.interfaces:160] <BeltServicer(prod_imsbelt-LN1-7)> received the cancel signal

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.170] DEBUG [iams.aio.interfaces:38] prod_imsbelt-LN1-7 is stopped

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.171] DEBUG [iams.aio.manager:37] Exit Coroutine-Manager

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.171] DEBUG [iams.agent:100] Removed pidfile /run/iams_agent.pid

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.171] DEBUG [iams.agent:104] Shutdown ...

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.171] DEBUG [iams.agent:106] Sending SIGKILL to kill all processes

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | [14:41:02.211] DEBUG [iams.aio.manager:136] Exception in asyncio

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | Stack (most recent call last):

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/lib/python3.11/asyncio/base_events.py", line 1808, in call_exception_handler

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | self._exception_handler(self, context)

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | File "/usr/local/lib/python3.11/dist-packages/iams/aio/manager.py", line 136, in exception_handler

prod_imsbelt-LN1-7.1.h1k1d03ibxdn@erplab-VirtualBox | logger.debug("Exception in asyncio", stack_info=True)

schroeder- commented 2 months ago

Looks like a error in your code...