Forum Home › Forums › Communicating with Devices › OPC › OPC DA to OPC UA pipeline: “uncertain” tags are becoming “BAD”
- This topic has 12 replies, 2 voices, and was last updated 4 months, 2 weeks ago by
Mikhail.
-
AuthorPosts
-
December 18, 2025 at 11:04 am #17422
_FIreDemon_
ParticipantI was trying to use Rapid-Scada Communicator to transfer tags from OPC DA server (Yokogawa Exaopc) to Linux client machine via OPC UA protocol. Everything works fine for tags with “GOOD” quality, however, tags with “uncertain” quality are transferred as “BAD” quality with now value in them. More strangely, I can write in these tags from Linux client with no errors but the quality will remain “BAD”.
December 18, 2025 at 11:17 am #17423_FIreDemon_
ParticipantOPC DA
https://drive.google.com/file/d/1y8m5wg-oXUFpGq9bavAB-_p8a24wRZ0s/view?usp=sharingRapid-Scada
https://drive.google.com/file/d/1TCACIux7n7zkb4oDHjWiY51Z_hrItb5O/view?usp=sharingOPC UA
https://drive.google.com/file/d/11GEcDLJRHR_lI0dfSCKKMhj1ejalNUvv/view?usp=sharing-
This reply was modified 4 months, 3 weeks ago by
Mikhail.
December 18, 2025 at 12:36 pm #17424_FIreDemon_
ParticipantSorry, don’t know why the images were not properly loaded, here is the link on imgur:
ImagesDecember 18, 2025 at 2:14 pm #17426
MikhailModeratorHello,
The OPC Classic driver requires GOOD quality to display data as valid. Otherwise, it marks the tag as undefined. Undefined tags are provided to OPC UA with BAD quality.December 19, 2025 at 6:29 am #17430_FIreDemon_
ParticipantThank you for your answer, Mikhail. Is there any way to bypass this?
December 19, 2025 at 2:08 pm #17435
MikhailModeratorI suppose, it’s better to fix the OPC server to get GOOD values.
Alternatively, you can change the source code of the driver to solve this certain issue for your needs. There is no plan to change the driver for all users, because “uncertain” means that data is not good.-
This reply was modified 4 months, 3 weeks ago by
Mikhail.
December 22, 2025 at 6:43 am #17441_FIreDemon_
ParticipantAs far as I know, this is an expected behavior for tags in manual mode.
Anyways, do you mind sharing a guide or a link for the already existing solution on how to compile a new driver with this bypass?December 22, 2025 at 12:50 pm #17443
MikhailModeratorDecember 23, 2025 at 9:24 am #17451_FIreDemon_
ParticipantSo, I’ve built everything. The only problem was that my NuGet couldn’t find
<PackageReference Include=”OpcComRcw” Version=”2.1.108″ />
<PackageReference Include=”OpcNetApi” Version=”2.1.108″ />
<PackageReference Include=”OpcNetApi.Com” Version=”2.1.108″ />
and I had to use “Quick.” version of these packagesDecember 23, 2025 at 12:35 pm #17452
MikhailModeratorYou can find that DLLs in the Rapid SCADA installation folder.
December 24, 2025 at 8:30 am #17462_FIreDemon_
ParticipantOk, I’ve compiled everything using those DLLs
December 26, 2025 at 8:42 am #17493_FIreDemon_
ParticipantI’ve changed condition in DevOpcClassicLogic.cs from
/// <summary> /// Gets the tag status corresponding to the item quality. /// </summary> private static int GetTagStatus(Opc.Da.ItemValueResult itemValue) { return itemValue.QualitySpecified && itemValue.Quality.QualityBits == Opc.Da.qualityBits.good ? CnlStatusID.Defined : CnlStatusID.Undefined; }to
private static int GetTagStatus(Opc.Da.ItemValueResult itemValue) { return itemValue.QualitySpecified && itemValue.Quality.QualityBits == Opc.Da.qualityBits.good || itemValue.QualitySpecified && itemValue.Quality.QualityBits == Opc.Da.qualityBits.uncertain ? CnlStatusID.Defined : CnlStatusID.Undefined; }Then I’ve compiled DrvOpcClassic.Logic.csproj and swapped the driver logic DLL. Now “uncertain” tags are showing in OPC UA. Hope this is a somewhat safe change.
Thanks a lot for the help!-
This reply was modified 4 months, 2 weeks ago by
_FIreDemon_.
December 26, 2025 at 3:27 pm #17495
MikhailModerator🙂
-
This reply was modified 4 months, 3 weeks ago by
-
AuthorPosts
- You must be logged in to reply to this topic.