OPC UA with Python

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ก.พ. 2023
  • OPC UA server stores data and clients read and write data for real-time monitoring and control applications. OPC (Object Linking and Embedding (OLE) for Process Control) is commonly used with a Distributed Control Systems (DCS), Programmable Logic Controllers (PLCs), Human Machine Interfaces (HMIs), and other data transfer applications. It is a newer standard than the older Modbus protocol. OPC UA is platform independent version while OPC DA or OPC HDA (older version) relies on the Microsoft DCOM communication that has inadequate security controls and is not cross-platform. OPC UA support access to current data as well as historical events, multiple hierarchies, and provides commands (methods and programs).
    The opcua Python package is a full-featured set of methods that include an OPC UA server and OPC UA client. Install the opcua, opcua-client, and opcua-webclient packages with pip from PyPI repositories.
    Source Code: apmonitor.com/dde/index.php/M...
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 18

  • @nrdesign1991
    @nrdesign1991 ปีที่แล้ว +3

    Used OPC UA in my Bachelor's thesis, albeit with the LabVIEW extension. The company insisted the software being done in LabVIEW, so they're the ones to pay the yearly subscription. It's a great way of accessing the entire memory space of the PLC.

  • @destroyo5457
    @destroyo5457 9 หลายเดือนก่อน +2

    This video just saved my day at work 💯

  • @bhys570
    @bhys570 3 หลายเดือนก่อน +1

    Very useful content, go on

  • @arifkarisman1016
    @arifkarisman1016 ปีที่แล้ว +1

    amazing

  • @darshmishra6475
    @darshmishra6475 2 หลายเดือนก่อน +1

    How do we handle cases where we have a subscription based getting data and suppose there is a connection drop. So we still go with latest value assuming it has remained constant and not updated
    ?

    • @apm
      @apm  2 หลายเดือนก่อน

      When working with OPC servers, identifying and managing stale or outdated data values is important in industrial applications where data integrity is vital for operation safety and efficiency. Here are strategies to detect stale values with OPC UA:
      1. Timestamp Checking
      Each value read from an OPC UA server includes a timestamp that can be used to detect when data becomes stale if the timestamp remains unchanged over an extended period.
      2. Subscription and Monitored Items
      Instead of polling data (repeatedly reading values), OPC UA supports subscriptions where the server notifies the client of changes. You can specify a publishing interval and a "deadband" to filter out unnecessary updates. Monitored items can be set to notify only on significant changes or after a certain time of inactivity.
      3. Setting Data Quality Flags
      OPC UA servers can be configured to include data quality flags with each value. These flags can indicate issues such as communication errors, sensor malfunctions, or configuration errors. By checking these flags, you can determine if the data should be considered reliable.
      4. Implement Heartbeat Signals
      For critical variables that must be updated regularly, implementing a "heartbeat" signal can be effective. This is a write operation performed by the data source at a regular interval to a specific variable, indicating that the source is still operational. The absence of recent updates to this heartbeat variable can signal an issue with the data source.
      5. Analyzing Historical Data Patterns
      In some cases, analyzing the historical patterns of data updates can help identify anomalies in data freshness. If certain variables typically update at regular intervals, deviations from this pattern can be flagged for further investigation.

  • @hannabelavus568
    @hannabelavus568 7 หลายเดือนก่อน +2

    Great video, thanks! Although i struggle to connect to server from webclient interface. I'm getting "Unexpected token 'T', "Traceback "... is not valid JSON" when i click connect. Where can I fix JSON parsing in my server?

    • @pro_mechanical3360
      @pro_mechanical3360 6 หลายเดือนก่อน +1

      I am facing the similar isssue while connecting a codesys softplc controller, Please reply to this thread if you find any solution, will be really greatful to your help.

    • @apm
      @apm  4 หลายเดือนก่อน

      It looks like this is a common issue that everyone is facing with the current version. I recommend contacting the developers or else use an earlier version of the library.

  • @Wtf95
    @Wtf95 29 วันที่ผ่านมา +1

    Nice video! Thanks! May be you can make video about OPC UA TSN? And IEC/IEEE 60802 TSN?

    • @apm
      @apm  23 วันที่ผ่านมา

      Time-Sensitive Networking (TSN) is important in many applications. I typically use MODBUS when speed is important. It is an older standard, but specializes in high-speed numerical data.

  • @tejaswinirajput1576
    @tejaswinirajput1576 4 หลายเดือนก่อน +1

    Hello !!
    Actually at 9.21 minute of video time-stamp I am not able to connect due to error "Unexpected token 'T', "Traceback"... is not valid JSON.
    Can you please help me with it. Also I had followed all your steps as you guided and codes too still fcaing this error.
    Please look into it.

    • @apm
      @apm  4 หลายเดือนก่อน +1

      It looks like this is a common issue that everyone is facing with the current version. I recommend contacting the developers or else use an earlier version of the library.

    • @tejaswinirajput1576
      @tejaswinirajput1576 4 หลายเดือนก่อน

      @@apm okay!! can you please recommend the versions you have used in your video ?

  • @yorha2b278
    @yorha2b278 หลายเดือนก่อน

    Code doesn't work for me. I got this error: "The requested operation has no match to return."(BadNoMatch)

    • @apm
      @apm  หลายเดือนก่อน

      The error message "The requested operation has no match to return." (BadNoMatch) from the Python OPC UA package generally indicates that the operation you attempted to perform did not find a valid target or match in the server's address space or data structures.

  • @randybenedict3306
    @randybenedict3306 8 หลายเดือนก่อน +1

    I can't get past using the base environment

    • @apm
      @apm  8 หลายเดือนก่อน

      Here is more on managing Python environments: apmonitor.com/dde/index.php/Main/InstallPythonPackages