Closed jerickcolendres closed 4 years ago
fixed in #362
Hello,i juste tested the HeartbeatInterval from the master Branch but it seems not to be working
anyone have tested it since ?
Hello @omarine, should be working in preview. What version did you use for testing?
Hello @cristipogacean ,
My test was based on the master Branch Should i base my tests on the lasted tagged version rather?
Thanks
No, please continue to use the :preview tag for the image. We would appreciate some details on your configuration.
I actually run the opcpublisher locally ,because i have to add a feature for my client
But i can test the preview just in case.
what is the latest stable branch i have to chose to base my modifications upon please?
Hello,
Any updates on the Heartbeat ,i am launching opcpublisher as a standalone from visualstudio, just tasted from the master branch but still not working
my pn.json looks like below
As an opcua server i have matrikon opc simulator exposing DA endpoint,then i am using the Wrapper DA/UA
In case the heartbeat is working in preview,what branch is more inlined with the opcpublisher in the preview ?
Thanks in advance
The preview is aligned to master branch. Heartbeat should work fine in the master. Your publishing interval configured is a bit big in this case. Heartbeat interval should be multiple of publishing interval. Can you tune publishing interval to 1 sec or so?
not working even with publishing interval to 1000 and heartbeatinterval to 5 sec,i have only changing values :(
I did the test with constant values as well,i should have the same values sent upstream with different timestamp ,but it's not the case
The heartbeat is basically replicating the last received datachange received from the server, so the value, it's source timestamp and server timestamp are not being changed when heartbeat message is forced up. The publisher will not change these values since they are set by the server. The timestamp field in the message body will be nevertheless updated with the publisher's time. like in the example below, I just tried it out with the following arguments:
"--PkiRootPath=/mount/pki --pf=/mount/pn.json --fd=true --fm=true --bs=1 --di=20 --to --si=1"
and pn.json
[
{
"EndpointUrl": "opc.tcp://crpogace01:51210/UA/DemoServer",
"UseSecurity": true,
"OpcNodes": [
{
"Id": "http://test.org/UA/Data/#i=10217",
"OpcSamplingInterval": 1000,
"OpcPublishingInterval": 1000,
"HeartbeatInterval": 5
}
]
}
]
result in Azure IoT Explorer
5:32:48 PM, June 08, 2020:
{
"body": {
"NodeId": "http://test.org/UA/Data/#i=10217",
"EndpointUrl": "opc.tcp://crpogace01:51210/UA/DemoServer",
"ApplicationUri": "urn:CRPOGACE01:DemoServer",
"Timestamp": "2020-06-08T15:32:48.0693087Z",
"Value": {
"Value": 15,
"SourceTimestamp": "2020-06-08T08:54:32.7897422Z",
"ServerTimestamp": "2020-06-08T15:32:32.1961491Z"
},
"SequenceNumber": 2,
"ExtensionFields": {
"PublisherId": "Standalone_CRPOGACE01_publisher",
"DataSetWriterId": "opc.tcp://crpogace01:51210/UA/DemoServer_14a60b6dc4bda00e46019fd2f47c1e656deb4d6d"
}
},
"enqueuedTime": "2020-06-08T15:32:48.272Z",
"properties": {
"$$ContentType": "application/x-monitored-item-json-v1",
"iothub-message-schema": "application/opcua+uajson",
"$$ContentEncoding": "utf-8"
}
}
5:32:43 PM, June 08, 2020:
{
"body": {
"NodeId": "http://test.org/UA/Data/#i=10217",
"EndpointUrl": "opc.tcp://crpogace01:51210/UA/DemoServer",
"ApplicationUri": "urn:CRPOGACE01:DemoServer",
"Timestamp": "2020-06-08T15:32:43.091219Z",
"Value": {
"Value": 15,
"SourceTimestamp": "2020-06-08T08:54:32.7897422Z",
"ServerTimestamp": "2020-06-08T15:32:32.1961491Z"
},
"SequenceNumber": 2,
"ExtensionFields": {
"PublisherId": "Standalone_CRPOGACE01_publisher",
"DataSetWriterId": "opc.tcp://crpogace01:51210/UA/DemoServer_14a60b6dc4bda00e46019fd2f47c1e656deb4d6d"
}
},
"enqueuedTime": "2020-06-08T15:32:43.379Z",
"properties": {
"$$ContentType": "application/x-monitored-item-json-v1",
"iothub-message-schema": "application/opcua+uajson",
"$$ContentEncoding": "utf-8"
}
}
5:32:38 PM, June 08, 2020:
{
"body": {
"NodeId": "http://test.org/UA/Data/#i=10217",
"EndpointUrl": "opc.tcp://crpogace01:51210/UA/DemoServer",
"ApplicationUri": "urn:CRPOGACE01:DemoServer",
"Timestamp": "2020-06-08T15:32:38.076743Z",
"Value": {
"Value": 15,
"SourceTimestamp": "2020-06-08T08:54:32.7897422Z",
"ServerTimestamp": "2020-06-08T15:32:32.1961491Z"
},
"SequenceNumber": 2,
"ExtensionFields": {
"PublisherId": "Standalone_CRPOGACE01_publisher",
"DataSetWriterId": "opc.tcp://crpogace01:51210/UA/DemoServer_14a60b6dc4bda00e46019fd2f47c1e656deb4d6d"
}
},
"enqueuedTime": "2020-06-08T15:32:38.300Z",
"properties": {
"$$ContentType": "application/x-monitored-item-json-v1",
"iothub-message-schema": "application/opcua+uajson",
"$$ContentEncoding": "utf-8"
}
}
5:32:33 PM, June 08, 2020:
{
"body": {
"NodeId": "http://test.org/UA/Data/#i=10217",
"EndpointUrl": "opc.tcp://crpogace01:51210/UA/DemoServer",
"ApplicationUri": "urn:CRPOGACE01:DemoServer",
"Timestamp": "2020-06-08T15:32:33.0803591Z",
"Value": {
"Value": 15,
"SourceTimestamp": "2020-06-08T08:54:32.7897422Z",
"ServerTimestamp": "2020-06-08T15:32:32.1961491Z"
},
"SequenceNumber": 1,
"ExtensionFields": {
"PublisherId": "Standalone_CRPOGACE01_publisher",
"DataSetWriterId": "opc.tcp://crpogace01:51210/UA/DemoServer_14a60b6dc4bda00e46019fd2f47c1e656deb4d6d"
}
},
"enqueuedTime": "2020-06-08T15:32:33.408Z",
"properties": {
"$$ContentType": "application/x-monitored-item-json-v1",
"iothub-message-schema": "application/opcua+uajson",
"$$ContentEncoding": "utf-8"
}
}
when using --fm=false, then only the source timestamp is added to the message. In this case source timestamp will be overwritten with the publisher's actual time.
Hello,
Do you have any idea when the new version of the opcpublisher will be in GA ?
Regards, Oussama
Hi,
It seems the heartbeat functionality no longer works in OPC Publisher v2.6.96.
We configured a simulated tag Sim.CH1.NZ010_SIM_CH1_TAG1\234754a-c63-b9601 in KepServerEx to toggle the value between 0 and 1 every minute. We then configured the OPC Publisher pn.json file with the following config and expect that OPC publisher will send a sample every 5 seconds:
Here's the log from our IOT edge module that receives the samples from OPC Publisher (note that there's no sample every 5 seconds)