question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

OPC Publisher Module - Issue with multiple endpoints in pn.json

See original GitHub issue

Describe the bug When I configure multiple endpoints in the OPC Publisher configuration file pn.json the behaviour is weird and random seemingly. Sometimes, only the first subscription job is executed but twice. And sometimes both subscription jobs are executed correctly. When the first behaviour occurs, sometimes it helps to switch the order of the endpoint configurations in pn.json and restart the module. Sometimes it also helps to remove the second endpoint configuration, restart the module, add it again and restart the module again. It’s also strange that I have to restart the module manually. Previously the module detected file changes automatically and restarted itself.

To Reproduce Steps to reproduce the behavior:

  1. Configure multiple endpoints in pn.json:
[
  {
    "EndpointUrl": "opc.tcp://<OPC-UA-Server1>:49580",
    "OpcNodes": [
      {
        "Id": "ns=2;s=NodeId1",
        "OpcPublishingInterval": 20000,
        "OpcSamplingInterval": 20000,
        "DisplayName": "NodeId1"
      },
...
    ]
  },
  {
    "EndpointUrl": "opc.tcp://<OPC-UA-Server2>:49580",
    "OpcNodes": [
      {
        "Id": "ns=2;s=NodeId1",
        "OpcPublishingInterval": 5000,
        "OpcSamplingInterval": 5000,
        "DisplayName": "NodeId1"
      },
...
    ]
  }
]
  1. See logs iotedge logs OPCPublisher
  2. Sometimes the first endpoint configuration is executed twice:
[09:19:09 INF Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Engine.DataFlowProcessingEngine] 
  DIAGNOSTICS INFORMATION for          : opc.tcp://<OPC-UA-Server1>:49580_4f305e5cae5a136d38ea46deae0d53b2bde57121
  # Ingestion duration                 :    00:17:52:32 (dd:hh:mm:ss)
  # Ingress DataChanges (from OPC)     :              1 (0/s)
  # Ingress ValueChanges (from OPC)    :              2 (0/s)
  # Ingress BatchBlock buffer size     :              0
  # Encoding Block input/output size   :              0 | 0
  # Encoder Notifications processed    :              2
  # Encoder Notifications dropped      :              0
  # Encoder IoT Messages processed     :              1
  # Encoder avg Notifications/Message  :              2
  # Encoder avg IoT Message body size  :         10,521 (4%)
  # Encoder avg IoT Chunk (4 KB) usage :            2.6
  # Estimated IoT Chunks (4 KB) per day:              4
  # Outgress Batch Block buffer size   :              0
  # Outgress input buffer count        :              0
  # Outgress IoT message count         :              1 (0/s)
  # Connection retries                 :              0
  
[09:19:09 INF Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Engine.DataFlowProcessingEngine] 
  DIAGNOSTICS INFORMATION for          : opc.tcp://<OPC-UA-Server1>:49580_4f305e5cae5a136d38ea46deae0d53b2bde57121
  # Ingestion duration                 :    00:17:52:32 (dd:hh:mm:ss)
  # Ingress DataChanges (from OPC)     :              1 (0/s)
  # Ingress ValueChanges (from OPC)    :              2 (0/s)
  # Ingress BatchBlock buffer size     :              0
  # Encoding Block input/output size   :              0 | 0
  # Encoder Notifications processed    :              2
  # Encoder Notifications dropped      :              0
  # Encoder IoT Messages processed     :              1
  # Encoder avg Notifications/Message  :              2
  # Encoder avg IoT Message body size  :         10,521 (4%)
  # Encoder avg IoT Chunk (4 KB) usage :            2.6
  # Estimated IoT Chunks (4 KB) per day:              4
  # Outgress Batch Block buffer size   :              0
  # Outgress input buffer count        :              0
  # Outgress IoT message count         :              1 (0/s)
  # Connection retries                 :              0

And sometimes both endpoint configurations are executed correctly:

[09:19:09 INF Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Engine.DataFlowProcessingEngine] 
  DIAGNOSTICS INFORMATION for          : opc.tcp://<OPC-UA-Server1>:49580_4f305e5cae5a136d38ea46deae0d53b2bde57121
  # Ingestion duration                 :    00:17:52:32 (dd:hh:mm:ss)
  # Ingress DataChanges (from OPC)     :              1 (0/s)
  # Ingress ValueChanges (from OPC)    :              2 (0/s)
  # Ingress BatchBlock buffer size     :              0
  # Encoding Block input/output size   :              0 | 0
  # Encoder Notifications processed    :              2
  # Encoder Notifications dropped      :              0
  # Encoder IoT Messages processed     :              1
  # Encoder avg Notifications/Message  :              2
  # Encoder avg IoT Message body size  :         10,521 (4%)
  # Encoder avg IoT Chunk (4 KB) usage :            2.6
  # Estimated IoT Chunks (4 KB) per day:              4
  # Outgress Batch Block buffer size   :              0
  # Outgress input buffer count        :              0
  # Outgress IoT message count         :              1 (0/s)
  # Connection retries                 :              0
 
[09:19:09 INF Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Engine.DataFlowProcessingEngine] 
  DIAGNOSTICS INFORMATION for          : opc.tcp://<OPC-UA-Server2>:49580_33921d4bbb3237f118d4da4eaa0e2d39717e7a9f
  # Ingestion duration                 :    00:17:52:17 (dd:hh:mm:ss)
  # Ingress DataChanges (from OPC)     :          3,217 (0.05/s)
  # Ingress ValueChanges (from OPC)    :         44,995 (0.7/s)
  # Ingress BatchBlock buffer size     :              0
  # Encoding Block input/output size   :              0 | 0
  # Encoder Notifications processed    :         44,995
  # Encoder Notifications dropped      :              0
  # Encoder IoT Messages processed     :          3,216
  # Encoder avg Notifications/Message  :             14
  # Encoder avg IoT Message body size  :          3,454 (1%)
  # Encoder avg IoT Chunk (4 KB) usage :            0.8
  # Estimated IoT Chunks (4 KB) per day:          4,319
  # Outgress Batch Block buffer size   :              0
  # Outgress input buffer count        :              0
  # Outgress IoT message count         :          3,216 (0.05/s)
  # Connection retries                 :              0

Expected behavior Both subscription jobs are executed according endpoint configurations.

Versions

  • OS: Ubuntu Linux 18.4
  • Edge Runtime: 1.0.9.3
  • OPC Publisher Module: 2.7.170 and 2.1.183

EDIT: The full log of the wrong behaviour after a module restart is here (IP addresses have been replaced by placeholders. And <OPC-UA-Server1> actually has 16 monitored items and <OPC-UA-Server2> actually has 2 monitored items):

[10:06:29 INF Root] Starting module OpcPublisher version 2.7.170.10628.
[10:06:29 INF Root] Initiating prometheus at port 9702/metrics
[10:06:29 INF Root] Prometheus metric server started.
[10:06:29 WRN Microsoft.Azure.IIoT.Module.Framework.Client.IoTSdkFactory] Bypassing certificate validation for client.
[10:06:29 INF Microsoft.Azure.IIoT.Module.Framework.Client.IoTSdkFactory] Running in iotedge context.
[10:06:32 INF Microsoft.Azure.IIoT.Module.Framework.Client.IoTSdkFactory] 0: Module bcag-nmc_OPCPublisher reconnected due to Connection_Ok.
[10:06:32 INF Microsoft.Azure.IIoT.Module.Framework.Hosting.ModuleHost] Initialize device twin for bcag-nmc - OPCPublisher
[10:06:33 INF Microsoft.Azure.IIoT.Module.Framework.Hosting.ModuleHost] Applying initial desired state.
[10:06:33 INF Microsoft.Azure.IIoT.Module.Framework.Hosting.ModuleHost] Reporting currently initial state.
[10:06:33 INF Microsoft.Azure.IIoT.Module.Framework.Hosting.ModuleHost] Module Host started.
[10:06:33 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.WorkerSupervisor] Creating new worker...
[10:06:33 INF Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Engine.LegacyJobOrchestrator] File /appdata/pn.json has changed, reloading...
[10:06:33 INF Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Models.PublishedNodesJobConverter] Read 2 items from published nodes file in 00:00:00.0803425
[10:06:33 INF Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Models.PublishedNodesJobConverter] Converted items to jobs in 00:00:00.1400330
[10:06:34 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.WorkerSupervisor] Starting worker 'StandalonePublisher_0'...
[10:06:34 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.Worker] Worker StandalonePublisher_0: {}
[10:06:34 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.WorkerSupervisor] Creating new worker...
[10:06:34 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.WorkerSupervisor] Starting worker 'StandalonePublisher_1'...
[10:06:34 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.Worker] Worker StandalonePublisher_1: {}
[10:06:34 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.Worker] Worker: StandalonePublisher_0 processing job: Standalone_bcag-nmc_OPCPublisher, mode: Active
[10:06:34 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.Worker] Worker: StandalonePublisher_1 processing job: Standalone_bcag-nmc_OPCPublisher, mode: Active
[10:06:35 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Subscription 'opc.tcp://<OPC-UA-Server2>:49580_37aa5b2ccebc7d8a230c1c18f83a3410f622f2bf' registered/updated in session '4f305e5cae5a136d38ea46deae0d53b2bde57121' in state Init
[10:06:35 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Subscription 'opc.tcp://<OPC-UA-Server2>:49580_37aa5b2ccebc7d8a230c1c18f83a3410f622f2bf' registered/updated in session '4f305e5cae5a136d38ea46deae0d53b2bde57121' in state Init
[10:06:35 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Subscription 'opc.tcp://<OPC-UA-Server2>:49580_37aa5b2ccebc7d8a230c1c18f83a3410f622f2bf' registered/updated in session '4f305e5cae5a136d38ea46deae0d53b2bde57121' in state Init
[10:06:35 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Subscription 'opc.tcp://<OPC-UA-Server2>:49580_37aa5b2ccebc7d8a230c1c18f83a3410f622f2bf' registered/updated in session '4f305e5cae5a136d38ea46deae0d53b2bde57121' in state Init
[10:06:35 WRN Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Although the use of security was configured, there was no security-enabled endpoint available at url opc.tcp://<OPC-UA-Server2>:49580. An endpoint with no security will be used.
[10:06:35 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Creating session '4f305e5cae5a136d38ea46deae0d53b2bde57121' for endpoint 'opc.tcp://<OPC-UA-Server2>:49580'...
[10:06:36 WRN Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Accepting untrusted peer certificate 58BC74F5CD0A2E47CDE12904AE5A4E76CEB02AA8, 'CN=NI OPC UA App, DC=W120M020' due to AutoAccept(UntrustedCertificates) set!
[10:06:36 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Session '4f305e5cae5a136d38ea46deae0d53b2bde57121' created, loading complex type system ...
[10:06:37 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Session '4f305e5cae5a136d38ea46deae0d53b2bde57121' complex type system loaded
[10:06:37 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Azure IIoT 4f305e5cae5a136d38ea46deae0d53b2bde57121 took 00:00:01.0192698.
[10:06:37 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Connected to 'opc.tcp://<OPC-UA-Server2>:49580'
[10:06:37 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.SubscriptionServices+SubscriptionWrapper] Added 2 monitored items to subscription opc.tcp://<OPC-UA-Server2>:49580_37aa5b2ccebc7d8a230c1c18f83a3410f622f2bf
[10:06:37 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.SubscriptionServices+SubscriptionWrapper] Now monitoring 2 nodes in subscription opc.tcp://<OPC-UA-Server2>:49580_37aa5b2ccebc7d8a230c1c18f83a3410f622f2bf
[10:06:37 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.SubscriptionServices+SubscriptionWrapper] Set Monitoring to Reporting for 2 nodes in subscription opc.tcp://<OPC-UA-Server2>:49580_37aa5b2ccebc7d8a230c1c18f83a3410f622f2bf

And the successful case log:

[10:07:35 INF Root] Starting module OpcPublisher version 2.7.170.10628.
[10:07:35 INF Root] Initiating prometheus at port 9702/metrics
[10:07:35 INF Root] Prometheus metric server started.
[10:07:35 WRN Microsoft.Azure.IIoT.Module.Framework.Client.IoTSdkFactory] Bypassing certificate validation for client.
[10:07:35 INF Microsoft.Azure.IIoT.Module.Framework.Client.IoTSdkFactory] Running in iotedge context.
[10:07:37 INF Microsoft.Azure.IIoT.Module.Framework.Client.IoTSdkFactory] 0: Module bcag-nmc_OPCPublisher reconnected due to Connection_Ok.
[10:07:38 INF Microsoft.Azure.IIoT.Module.Framework.Hosting.ModuleHost] Initialize device twin for bcag-nmc - OPCPublisher
[10:07:38 INF Microsoft.Azure.IIoT.Module.Framework.Hosting.ModuleHost] Applying initial desired state.
[10:07:38 INF Microsoft.Azure.IIoT.Module.Framework.Hosting.ModuleHost] Reporting currently initial state.
[10:07:38 INF Microsoft.Azure.IIoT.Module.Framework.Hosting.ModuleHost] Module Host started.
[10:07:38 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.WorkerSupervisor] Creating new worker...
[10:07:38 INF Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Engine.LegacyJobOrchestrator] File /appdata/pn.json has changed, reloading...
[10:07:39 INF Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Models.PublishedNodesJobConverter] Read 2 items from published nodes file in 00:00:00.0848279
[10:07:39 INF Microsoft.Azure.IIoT.OpcUa.Edge.Publisher.Models.PublishedNodesJobConverter] Converted items to jobs in 00:00:00.1403216
[10:07:39 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.WorkerSupervisor] Starting worker 'StandalonePublisher_0'...
[10:07:39 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.Worker] Worker StandalonePublisher_0: {}
[10:07:39 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.WorkerSupervisor] Creating new worker...
[10:07:39 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.WorkerSupervisor] Starting worker 'StandalonePublisher_1'...
[10:07:39 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.Worker] Worker StandalonePublisher_1: {}
[10:07:39 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.Worker] Worker: StandalonePublisher_1 processing job: Standalone_bcag-nmc_OPCPublisher, mode: Active
[10:07:39 INF Microsoft.Azure.IIoT.Agent.Framework.Agent.Worker] Worker: StandalonePublisher_0 processing job: Standalone_bcag-nmc_OPCPublisher, mode: Active
[10:07:40 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Subscription 'opc.tcp://<OPC-UA-Server1>:49580_c54ca60e5fe0a448c2e05598f46ef372702bbea8' registered/updated in session '33921d4bbb3237f118d4da4eaa0e2d39717e7a9f' in state Init
[10:07:40 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Subscription 'opc.tcp://<OPC-UA-Server2>:49580_37aa5b2ccebc7d8a230c1c18f83a3410f622f2bf' registered/updated in session '4f305e5cae5a136d38ea46deae0d53b2bde57121' in state Init
[10:07:40 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Subscription 'opc.tcp://<OPC-UA-Server2>:49580_37aa5b2ccebc7d8a230c1c18f83a3410f622f2bf' registered/updated in session '4f305e5cae5a136d38ea46deae0d53b2bde57121' in state Init
[10:07:40 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Subscription 'opc.tcp://<OPC-UA-Server1>:49580_c54ca60e5fe0a448c2e05598f46ef372702bbea8' registered/updated in session '33921d4bbb3237f118d4da4eaa0e2d39717e7a9f' in state Init
[10:07:41 WRN Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Although the use of security was configured, there was no security-enabled endpoint available at url opc.tcp://<OPC-UA-Server1>:49580. An endpoint with no security will be used.
[10:07:41 WRN Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Although the use of security was configured, there was no security-enabled endpoint available at url opc.tcp://<OPC-UA-Server2>:49580. An endpoint with no security will be used.
[10:07:41 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Creating session '33921d4bbb3237f118d4da4eaa0e2d39717e7a9f' for endpoint 'opc.tcp://<OPC-UA-Server1>:49580'...
[10:07:41 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Creating session '4f305e5cae5a136d38ea46deae0d53b2bde57121' for endpoint 'opc.tcp://<OPC-UA-Server2>:49580'...
[10:07:41 WRN Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Accepting untrusted peer certificate 58BC74F5CD0A2E47CDE12904AE5A4E76CEB02AA8, 'CN=NI OPC UA App, DC=W120M020' due to AutoAccept(UntrustedCertificates) set!
[10:07:41 WRN Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Accepting untrusted peer certificate 428A8E07D031432F00A3ECA97225814C23243410, 'CN=NI OPC UA App, DC=cRIO-NMC' due to AutoAccept(UntrustedCertificates) set!
[10:07:41 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Session '33921d4bbb3237f118d4da4eaa0e2d39717e7a9f' created, loading complex type system ...
[10:07:41 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Session '4f305e5cae5a136d38ea46deae0d53b2bde57121' created, loading complex type system ...
[10:07:42 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Session '33921d4bbb3237f118d4da4eaa0e2d39717e7a9f' complex type system loaded
[10:07:42 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Azure IIoT 33921d4bbb3237f118d4da4eaa0e2d39717e7a9f took 00:00:00.8735098.
[10:07:42 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Connected to 'opc.tcp://<OPC-UA-Server1>:49580'
[10:07:42 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Session '4f305e5cae5a136d38ea46deae0d53b2bde57121' complex type system loaded
[10:07:42 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Azure IIoT 4f305e5cae5a136d38ea46deae0d53b2bde57121 took 00:00:00.9633015.
[10:07:42 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.DefaultSessionManager] Connected to 'opc.tcp://<OPC-UA-Server2>:49580'
[10:07:42 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.SubscriptionServices+SubscriptionWrapper] Added 16 monitored items to subscription opc.tcp://<OPC-UA-Server1>:49580_c54ca60e5fe0a448c2e05598f46ef372702bbea8
[10:07:42 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.SubscriptionServices+SubscriptionWrapper] Added 2 monitored items to subscription opc.tcp://<OPC-UA-Server2>:49580_37aa5b2ccebc7d8a230c1c18f83a3410f622f2bf
[10:07:42 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.SubscriptionServices+SubscriptionWrapper] Now monitoring 2 nodes in subscription opc.tcp://<OPC-UA-Server2>:49580_37aa5b2ccebc7d8a230c1c18f83a3410f622f2bf
[10:07:42 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.SubscriptionServices+SubscriptionWrapper] Now monitoring 16 nodes in subscription opc.tcp://<OPC-UA-Server1>:49580_c54ca60e5fe0a448c2e05598f46ef372702bbea8
[10:07:42 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.SubscriptionServices+SubscriptionWrapper] Set Monitoring to Reporting for 16 nodes in subscription opc.tcp://<OPC-UA-Server1>:49580_c54ca60e5fe0a448c2e05598f46ef372702bbea8
[10:07:42 INF Microsoft.Azure.IIoT.OpcUa.Protocol.Services.SubscriptionServices+SubscriptionWrapper] Set Monitoring to Reporting for 2 nodes in subscription opc.tcp://<OPC-UA-Server2>:49580_37aa5b2ccebc7d8a230c1c18f83a3410f622f2bf

After a module restart the behaviour was wrong again.

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:9 (8 by maintainers)

github_iconTop GitHub Comments

1reaction
oliverchristencommented, Sep 9, 2020

@luiscantero thanks for this hint.

1reaction
erlendpcommented, Aug 24, 2020

I believe this issue is also happening when there are multiple dataset writers, which can happen if different publishing intervals have been specified.

Thanks for creating a PR - hopefully it gets up-streamed quickly!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Migrate from previous versions of OPC Publisher to 2.9 and ...
Upgrading OPC Publisher published nodes configuration file (pn.json). OPC Publisher can consume published nodes JSON files version 2.5.x or ...
Read more >
Tutorial: Configure the OPC Publisher
In this tutorial contains information on the configuration of the OPC Publisher. Several interfaces can be used to configure it.
Read more >
Microsoft OPC Publisher
OPC Publisher is a module that runs on Azure IoT Edge and bridges the gap between industrial assets and the Microsoft Azure cloud....
Read more >
Managing nodes from the cloud in the OPC-UA Publisher Edge
The OPC Publisher has capabilities to manipulate the published nodes using DirectMethods. An example is provided by Microsoft in this sample ...
Read more >
OPC Publisher command-line arguments
This article describes the command-line arguments that you can use to set global settings for Open Platform Communications (OPC) Publisher.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found